00:06:25 -!- slereah__ has joined.
00:06:25 -!- Slereah has quit (Read error: 104 (Connection reset by peer)).
00:13:10 <slereah__> http://en.wikipedia.org/wiki/Water_integrator
00:22:21 <ehird`> it is the solution to all global variable redefinition messiness and thread safe global variable redefinition hell!
00:23:13 <ehird`> (global-let ((g1 v1) ...) body...) just like a let, but the variables are globals, redefined only in that body (that thread, form, etc)
00:24:46 <ehird`> it also lets you implement dynamic scoping, amusingly
00:25:09 <ehird`> (define x 2) (define (g) x) (define (f) (global-let ((x 3)) (g))
00:26:30 <ehird`> actually, if you replace all lets with global-lets, you get dynamic scoping
00:26:36 <ehird`> a better name is perhaps dynlet
00:31:51 -!- helios_ has quit ("Leaving").
00:46:39 <slereah__> Hm. What if I wrote my own awesome EsCo?
00:49:33 -!- ehird` has quit ("K-Lined by peer").
00:50:02 -!- Tritonio__ has joined.
00:50:13 -!- Tritonio_ has quit (Read error: 110 (Connection timed out)).
01:09:15 -!- sebbu2 has joined.
01:23:31 -!- jix has joined.
01:23:52 -!- sebbu has quit (Success).
02:10:14 -!- jix has quit ("CommandQ").
02:21:50 -!- immibis has joined.
02:36:55 <GregorR> SUPER DANCE EXPLOSION TIME
03:46:42 -!- immibis has quit ("my client's gone silly and i am restarting it.").
03:47:09 -!- immibis has joined.
03:53:39 -!- immibis has quit ("Hi Im a qit msg virus. Pls rplce ur old qit msg wit tis 1 & hlp me tk ovr th wrld of IRC. and dlte ur files. and email ths to).
03:53:58 -!- immibis has joined.
04:18:23 -!- oerjan has joined.
04:18:30 -!- oerjan has quit (Client Quit).
04:45:11 -!- immibis has quit (Read error: 110 (Connection timed out)).
05:21:35 -!- calamari has joined.
05:43:15 -!- immibis has joined.
06:35:20 -!- calamari has quit ("Leaving").
07:55:47 -!- immibis has quit ("Hi Im a qit msg virus. Pls rplce ur old qit msg wit tis 1 & hlp me tk ovr th wrld of IRC. and dlte ur files. and email ths to).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
09:07:13 -!- GreaseMonkey has quit ("You enabled the bomb, arsehole.").
09:16:12 -!- oklopol has quit (Read error: 110 (Connection timed out)).
09:19:16 -!- oklopol has joined.
10:26:51 -!- helios24 has joined.
11:45:19 -!- Corun has joined.
12:13:18 -!- Insane has joined.
12:13:25 <Insane> Does the BF bot in here have a console?
12:13:48 <Insane> !bf +++++++.++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
12:14:01 <Insane> That beeps on consoles
12:14:14 <Insane> but mine gives [7] instead of nothing
12:14:50 <Insane> !bf ++++++++++.++++++++++.-------.++++++++++.
12:15:21 <Insane> !bf +++++++++++++.+++++++++++++++++++++++++++++++++++.
12:16:24 <Insane> !bf ++++++++++++++++++++++++++++++++++++++++++++++++[.]
12:16:36 <Insane> !bf ++++++++++++++++++++++++++++++++++++++++++++++++[.
12:16:39 <Insane> !bf ++++++++++++++++++++++++++++++++++++++++++++++++.
12:16:50 <Insane> *debugging error messages
12:17:16 <Insane> like "unmatched [" or "infinite loop: stack overflow"
12:23:11 -!- faxathisia has joined.
12:33:10 <EgoBot> 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
12:41:50 -!- jix has joined.
12:42:20 -!- Insane has quit ("Have a nice day!").
12:49:07 -!- helios24 has quit ("Leaving").
13:05:07 -!- Corun has quit ("This computer has gone to sleep").
13:14:27 -!- oerjan has joined.
13:22:55 -!- helios24 has joined.
15:04:47 -!- Tritonio__ has quit (Remote closed the connection).
15:17:44 -!- timotiis has joined.
15:23:15 -!- ehird` has joined.
16:11:30 <ehird`> (decl map (-> (-> a b) (a) (b)))
16:13:35 <ehird`> (decl ...),in the definition
16:28:35 <slereah__> Wel, I hope the Wine thingy works.
16:34:35 <slereah__> It's not in the console, it's in, Wine.
16:35:26 <slereah__> Well, I can't wait 5 years to play!
16:37:51 <ehird`> slereah__: sudo wine foo
16:44:46 <slereah__> slereah@Vixem:~$ sudo wine c:\\Program\ Files\\Nobilis\\Hard\ to\ be\ a\ God\\AWE.exe"
16:47:30 <slereah__> Hm. Wait, is it a windows error or a Linux error?
16:58:35 <slereah__> I guess it's time for sum dual booting.
17:01:12 <slereah__> http://apcmag.com/system/files/images/linux-to-linux-and-xp.body-thumbnail.png
17:06:30 -!- ais523 has joined.
17:08:03 <ais523> sorry I haven't been online recently
17:09:00 <ais523> how is the Underload compiler getting on?
17:09:09 <ais523> you only have the Scheme version on your website
17:09:56 <ehird`> ais523: i'm not on my main machine right now so i don't have the dev version
17:11:33 <ehird`> TINEBT (This is not Emacs, but TINEBT)
17:12:05 <ais523> SNUSP's acronym works along similar lines
17:12:52 <ehird`> actually, i'm going to make it a strictly-evaluated, pointer using recursive acronym
17:13:07 <ehird`> This is not Emacs (but TINE)
17:13:15 <ehird`> where the pointer to (but TINE) is implicit in the TINE name
17:14:19 <ais523> to get round the fact that recursive acronyms otherwise have to be lazy?
17:14:29 <ais523> or at least have a termination condition?
17:15:36 <ais523> you have to go further than that
17:15:42 <ais523> make a recursive acronym that's capable of segfaulting
17:16:42 <ehird`> XINEBACEOX is not Emacs, but a copy of the expansion of X
17:18:14 <ais523> you must make this into an esolang now
17:18:35 <ehird`> how do we get the emacs relation though
17:18:41 <ais523> I like the way you managed to keep it pronounceable, though
17:18:51 <ais523> and Emacs isn't a recursive acronym anyway AFAIR
17:19:10 <ehird`> ais523: but i mean in the esolang.
17:19:19 <ehird`> maybe it's based on the expansion of acronyms in a 'source'
17:19:39 <ehird`> TIARA=TIARA is a recursive acronym
17:19:50 <ais523> its grammar would look like English; sort of like COBOL
17:20:01 <ais523> except that it's string-rewriting and you refer to other commands with acronyms
17:20:01 <ehird`> XINEBACEOX=XINEBACEOX is not Emacs, but ^XINEBACEOX
17:20:10 <ehird`> where ^ is the 'force' operator, which implies consing
17:20:23 <ais523> then you could write "a copy of the expansion of" and it would mean something in the language
17:20:29 <ehird`> also, the interpreter is graphical if you run it from a terminal
17:20:41 <ehird`> XINEBACEOX=XINEBACEOX is not Emacs, but ^XINEBACEOX
17:20:48 <ehird`> ^^ that program, when run, produces this:
17:21:15 <ehird`> XINEBACEOX, XINEBACEOX is not Emacs, but ^XINEBACEOX, XINEBACEOX is not Emacs, but XINEBACEOX is not Emacs, but ^XINEBACEOX,...
17:21:21 <ehird`> but expanded inline using ansi codes
17:21:28 <oerjan> ooh ... a recursive acronym quine!
17:22:37 <ais523> that would just be a one-letter recursive acronym
17:22:56 <ais523> like the entry from the IAQ: "C is a recursive acronym. It stands for 'C'."
17:23:17 <oerjan> CITRORI - CITRORI is the result of running itself
17:23:58 <ais523> ah... a declarative language
17:24:04 <ais523> I haven't seen any of those since Prolog
17:25:19 <ais523> why are they not more common?
17:25:38 <oklopol> because people haven't yet realized computers are unbelievably fast.
17:26:07 <ais523> you would think that someone would have tried to create another by now
17:26:16 <ais523> actually, they probably have, just I haven't heard of the result
17:26:19 <oklopol> eh... i'm fairly sure there are others
17:26:33 <ais523> and we don't seem to have any declarative esolangs yet
17:26:34 <oklopol> i've made a stub of one, for instance
17:26:56 <oklopol> anyway, matlab is kinda declarative
17:27:12 <ais523> my memory of it is that it's pure imperative
17:27:20 <ais523> but maybe I use a different set of features to you
17:27:48 -!- oerjan has quit ("Good night").
17:27:49 <oklopol> i was just assuming, since... well, it's math
17:28:30 <ais523> a declarative language is one where you say what to do but not how
17:28:35 <ais523> come to think of it, APL's a bit like that
17:28:59 <oklopol> apl is declarative, in a way, just like functional languages
17:29:18 <ais523> but not as much as Prolog
17:29:39 <oklopol> anyways, regexps and sql are declarative
17:29:39 <ais523> a proper declarative language would, in my view, solve simultaneous equations without extra language features
17:29:50 <oklopol> although the tc parts of sql are imperative, i guess
17:30:01 <ais523> but Prolog doesn't allow infinite backtracking of reals in arithmetic expressions...
17:30:18 <ais523> e.g. I can type X=Y+1, X=2*Y-3
17:30:36 <oklopol> you can do that in prolog?
17:30:37 <ais523> that can check the solution to the simultaneous equation
17:30:42 <ais523> but can't solve it if neither X nor Y are bound
17:31:05 <ais523> you can work around the problem by putting in infinite number generators for X and Y
17:31:14 <ais523> but of course that fails because the program then takes infinite time to run
17:31:19 <ais523> uncountably infinite, in fact
17:31:42 <ais523> so what's really needed is some sort of clever reference scheme that allows such code to be legal and return a right answer each time
17:31:57 <oklopol> well, i've been thinking about adding axioms to a language
17:32:28 <oklopol> i mean, so that you could specify axioms using which stuff like that is resolved.
17:34:22 <oklopol> my original idea was to get a book with mathematical proofs, and try to get my interp to solve them as i read it :D
17:34:48 <ais523> but the result was lousy
17:34:50 <oklopol> well, the ones that are done using purely by manipulating symbols
17:35:03 <ais523> it tried to prove things by blind random search through the axioms and rules of inference...
17:35:17 <oklopol> hehe, i'd go for evolution
17:35:47 <oklopol> that's actually pretty much the same in this case
17:37:21 <oklopol> did you manage to prove anything?
17:39:38 <ais523> well, everything it proved was true
17:39:43 <ais523> but mostly obvious and useless
17:40:36 <oklopol> i guess you need to give it a prod to the right direction
17:41:27 <oklopol> anyway, i think i'll try that today
17:51:50 -!- pikhq has quit (Read error: 104 (Connection reset by peer)).
18:05:40 -!- oklopol has quit (Read error: 104 (Connection reset by peer)).
18:07:20 -!- Hiato has joined.
18:08:12 -!- oklopol has joined.
18:21:39 -!- slereah__ has quit (Remote closed the connection).
18:22:21 -!- Slereah has joined.
18:34:26 <ehird`> oklopol appears not to be
18:35:23 * ais523 is usually alive when online
18:35:38 <ais523> because I actually turn my computer off when I'm not using it...
18:38:48 <ais523> do you ever try to ping people on IRC using /ping?
18:39:07 <ais523> when I'm pinged it shows up at my end
18:39:39 <ais523> but presumably doesn't set off the FLASH EVERYTHING alert
18:40:40 <ehird`> ais523: oklopol's client sucks
18:41:10 <ais523> well, even mine had beep-when-someone-says-your-nick support off by default
18:41:22 <ais523> although I now have an alternative I like better
18:41:54 <oklopol> if i'm invited somewhere, Konversation says "XXX invited you to a channel"
18:42:25 <oklopol> (and it doesn't open the channel or anything)
18:42:59 <oklopol> and indeed, i never turn off my computer, except when i have to
18:43:17 <ais523> hey, you can send any sort of ctcp request to anyone
18:44:08 <ehird`> oklopol: that's #tmpchatwithais523oklopol
18:45:51 -!- ais523 has quit ("looking for another connection...").
18:54:50 -!- Sgeo has joined.
18:57:11 -!- ais523 has joined.
19:33:19 <lament> oklopol: how would you expect Konversation to behave?
19:33:37 <ehird`> lament: perhaps telling him what the channel is
19:33:55 <Sgeo> What's going on?
19:34:39 * ais523 was having a furious argument about Lisp with ehird` in another channel
19:34:58 <ehird`> hardly a furious argument
19:44:51 <lament> so i'm thinking of writing an organizer-life application with emphasis on long-term stability and lack of bitrot
19:45:41 <lament> with the idea that 50 years from now it would work just as well as today, and compile and install very easily.
19:45:58 <ehird`> lament: paul graham wants to give you money
19:46:28 <ehird`> if you write it in arc (THE HUNDRED YEARS LANGUAGE REMEMBER) using its ASCII and <table> support it will be a working webapp in 100 years
19:46:59 <lament> i haven't heard of arc
19:48:22 <ehird`> lament: it's a laughable dialect of lisp
19:48:25 <lament> okay, it seems pretty clear that arc will not pass the "easy installation" requirement
19:48:34 <ehird`> 6 years in development, and we get a 1000 line of scheme
19:48:38 <lament> since it will most likely be completely lost
19:48:50 <ehird`> lament: ok, you need to upgrade your sarcasm detector
19:48:55 <lament> anyway my conclusion was that i have to program in C89 without using any external libraries.
19:48:57 <ehird`> but your project is infeasable
19:49:12 <ehird`> os' might be totally differnt in 50 years
19:49:23 <ais523> C89 was designed to be portable to anything
19:49:33 <ehird`> ais523: was designed to be.
19:49:43 <ais523> that seems to be the most important design rule of the standardisation
19:49:58 <ais523> it's hard to imagine an OS architecture that a C89 compiler couldn't be written for
19:50:12 <lament> ehird`: just that out of languages i know, c89 seems the most likely one to be available on any platform within my lifetime
19:50:28 <ehird`> lament: to be honest i can't see a point to your project
19:50:33 <ais523> ehird`: think of it this way. There's a reason header file names are limited to 5.1 characters
19:50:49 <ais523> umm... not 5, maybe 6?
19:51:08 <ehird`> i think that might be a myth.
19:55:11 <lament> it seems doing IO in pure c89 is pretty painful, though.
19:56:01 <ais523> yes, that's a serious problem
19:56:06 <ais523> you have to either aim at a temporary file
19:56:10 <lament> also, many modern computing devices already don't have a terminal emulator
19:56:18 <ais523> or to calculate the length in advance (which is frought with danger)
19:56:23 <ais523> or to use a different function than sprintf
19:56:33 <lament> it's quite a bit of pain to get one for, say, a cellphone, i would imagine
19:56:38 <ais523> as for the lack of a terminal emulator; C89 never says you have to have one
19:56:50 <lament> no, but you need to run the program somehow
19:56:52 <ais523> all that it requires for a hosted implementation are stdin, stdout and sterr streams
19:57:15 <ais523> which could connect to anything: files, for instance
19:57:43 <ehird`> i'm pretty sure trying to design a program still easily usable in 50 years is a mistake.
19:57:45 <ais523> likewise, the standard stipulates that they need not actually be able to do any sending-receiving on things that aren't newline-terminated
19:57:55 <ehird`> Publish the file format, make it simple and human-readable, write a MODERN program to munge it.
19:58:04 <ehird`> In the future, if anyone cares,t hey can write a program to manipulate it.
19:59:48 <ais523> <ehird`> i think that might be a myth.
20:00:07 <ais523> I checked the draft standard, which guarantees 8.1 will be available, but no more
20:00:42 <ais523> and it simply has to provide unique mappings for the filenames, so it can choose a different naming structure if it likes
20:01:05 <ais523> IIRC there's some C compiler for a computer with a weird filesystem that maps the extension of the file to a subdirectory that contains the files
20:01:21 <ais523> so a .c file is in a subdirectory called c and a .h file is in a subdirectory called h
20:01:41 <ais523> it's a method of complying with the standard while working around a stupid filename length limit
20:08:17 -!- RedDak has joined.
20:18:30 -!- Sgeo has quit (Read error: 104 (Connection reset by peer)).
20:19:15 -!- helios24 has quit ("Leaving").
20:30:48 <lament> ehird`: you don't understand. Suppose it's a to-do list.
20:31:00 <lament> with your long-term goals
20:31:12 <ehird`> so have it as a simple text file
20:31:18 <ehird`> edited with LamentsFancy2008Program
20:31:23 <ehird`> way in the future, see it
20:31:30 <ehird`> see your text-only spec of the simple, human readable file format
20:31:37 <ehird`> either read the file yourself or write a simple app to do it
20:31:47 -!- ais523 has left (?).
20:32:05 <lament> but it's nicer to have the simple app already written
20:32:19 <ehird`> then...that's about 50 lines of c
20:32:25 <ehird`> might not work in the future
20:33:42 <lament> but why not just write a program you can always use
20:33:51 <lament> then it needs to have a decent ui
20:34:12 <ehird`> it still might not run in the future.
20:34:18 <ehird`> also, i find 'a text editor' is good
20:34:33 <lament> a text editor is not a to-do list :)
20:34:49 <ehird`> a text editor is a great way to create and edit one
20:42:10 -!- Tritonio_ has joined.
21:12:58 -!- Slereah has quit (Remote closed the connection).
21:53:06 -!- RedDak has quit (Remote closed the connection).
22:01:06 -!- pikhq has joined.
22:05:49 -!- Slereah has joined.
22:17:51 -!- Hiato has quit (Read error: 110 (Connection timed out)).
22:31:12 -!- Tritonio_ has quit (Remote closed the connection).
22:52:20 -!- helios24 has joined.
23:12:26 -!- Sgeo has joined.
23:14:58 <lament> 80x24 terminals are so tiny :D
23:15:29 <lament> http://vt100.net/vt100.jpeg
23:15:29 -!- helios24 has quit ("Leaving").
23:16:09 <Slereah> 80x24? What is that, a watch?
23:31:59 <ehird`> the standard for terminals
23:32:02 <ehird`> including terminal emulators
23:32:15 <ehird`> lament: in that picture sure
23:38:51 <lament> it's not really a standard for terminals
23:39:14 <lament> which is a standard for terminal emulators :)
23:39:49 <lament> ahhhh http://en.wikipedia.org/wiki/Image:Asr33.jpg
23:46:05 <lament> they are awfully pretty, it's true
23:46:09 <lament> http://en.wikipedia.org/wiki/Image:LISP_machine.jpg
23:55:10 -!- timotiis has quit ("leaving").
00:28:52 -!- Tritonio_ has joined.
00:47:57 -!- immibis has joined.
00:55:08 -!- GreaseMonkey has joined.
01:01:21 <ehird`> you need an introspective, interacting and allt hat stuff editor for lisp
01:01:31 <ehird`> the lisp machine editor was so intwined with it
01:02:41 -!- danopia`school has joined.
01:24:05 -!- danopia has quit (Read error: 110 (Connection timed out)).
01:34:02 -!- ehird` has quit ("K-Lined by peer").
02:03:25 -!- danopia`school has changed nick to danopia.
04:06:40 -!- danopia`school has joined.
04:08:25 -!- Slereah has quit (calvino.freenode.net irc.freenode.net).
04:08:26 -!- lament has quit (calvino.freenode.net irc.freenode.net).
04:08:27 -!- danopia has quit (calvino.freenode.net irc.freenode.net).
04:08:27 -!- immibis has quit (calvino.freenode.net irc.freenode.net).
04:08:27 -!- Tritonio_ has quit (calvino.freenode.net irc.freenode.net).
04:08:29 -!- EgoBot has quit (calvino.freenode.net irc.freenode.net).
04:10:37 -!- danopia`school has changed nick to danopia.
04:17:32 -!- immibis has joined.
04:18:22 -!- Slereah has joined.
04:18:22 -!- lament has joined.
04:22:58 -!- EgoBot has joined.
04:24:09 -!- Tritonio_ has joined.
04:27:48 -!- faxathisia has quit ("If there are any aliens, time travellers or espers here, come join me!").
05:07:28 -!- oerjan has joined.
05:37:26 -!- oerjan has quit ("leaving").
06:25:58 -!- oerjan has joined.
07:38:29 -!- faxathisia has joined.
07:56:42 -!- immibis has quit ("Clap on! , Clap off! Clap@#&$NO CARRIER").
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:53:07 -!- puzzlet has quit ("Lost terminal").
08:54:57 -!- GreaseMonkey has quit ("i are sleeps gnight").
09:31:56 -!- oerjan has quit ("Some other time").
10:18:35 -!- Figs has joined.
10:20:40 -!- Figs has set topic: Why did the programmer die in the shower? He wasn't using lazy evaluation when he read the instructs "lather, rinse, repeat.".
10:21:03 -!- Figs has set topic: Why did the programmer die in the shower? He wasn't using lazy evaluation when he read the instructions "lather, rinse, repeat.".
10:35:51 -!- helios24 has joined.
11:01:50 -!- Hiato has joined.
11:15:36 -!- Figs has left (?).
11:30:49 -!- Hiato has quit ("Leaving.").
12:05:08 -!- timotiis has joined.
12:05:47 -!- helios24 has quit (Remote closed the connection).
12:06:09 -!- helios24 has joined.
12:13:57 -!- lifthrasiir has quit (Remote closed the connection).
12:20:08 -!- timotiis has quit (Remote closed the connection).
12:28:17 -!- puzzlet has joined.
12:41:22 -!- Tritonio_ has quit (Remote closed the connection).
13:29:23 -!- helios24 has quit ("Leaving").
14:18:34 -!- timotiis has joined.
15:33:33 -!- chuck has joined.
16:49:50 -!- oerjan has joined.
16:53:29 -!- ehird` has joined.
16:57:54 -!- ehird` has quit (Read error: 104 (Connection reset by peer)).
16:58:09 -!- ehird` has joined.
16:59:37 -!- ehird` has set topic: Why did the programmer die in the shower? He wasn't using lazy evaluation when he read the instructions "lather, rinse, Why did the programmer die in the shower? He wasn't.
17:07:46 -!- ehird` has quit (Read error: 113 (No route to host)).
17:07:52 -!- Slereah has quit (Remote closed the connection).
17:13:21 -!- ehird` has joined.
17:21:41 -!- ehird` has quit ("K-Lined by peer").
17:29:24 -!- ehird` has joined.
17:33:26 -!- ehird` has quit (Remote closed the connection).
17:44:25 -!- ehird` has joined.
17:54:02 -!- ehird` has quit (Remote closed the connection).
18:28:40 -!- Tritonio_ has joined.
18:52:13 -!- oerjan has quit ("Good night").
18:57:23 -!- ehird` has joined.
18:59:48 -!- Tritonio__ has joined.
19:00:58 -!- Tritonio_ has quit (Read error: 110 (Connection timed out)).
19:02:10 -!- helios24 has joined.
19:06:36 -!- ehird` has quit (Remote closed the connection).
19:12:21 -!- ehird` has joined.
19:15:51 -!- jix has quit ("CommandQ").
19:20:14 -!- rpsetzer has joined.
19:21:36 <rpsetzer> I stumbled upon some discussion logs from this channel
19:22:07 <rpsetzer> about a paper written in Japanese by Hisashi Iizawa
19:22:18 <rpsetzer> at that time, some tried to translate it
19:22:39 <ehird`> thhe 99bob sites malbolge page
19:22:43 -!- ehird` has left (?).
19:22:47 -!- ehird` has joined.
19:24:10 <rpsetzer> A link to "Programming Method in Obfuscated Language Malbolge/me" in English?
19:24:18 <rpsetzer> let me check again, I started from there
19:25:34 -!- ehird` has quit ("K-Lined by peer").
19:38:20 -!- ehird` has joined.
19:38:33 -!- ehird` has quit (Read error: 104 (Connection reset by peer)).
19:42:29 -!- ehird` has joined.
19:43:26 <rpsetzer> nope, the paper does not seem to exist in english
19:43:59 <ehird`> babelfish might be a good start
19:44:08 <ehird`> so does Sukoshi, iirc, but they're not here
19:44:33 <rpsetzer> hm I bet the translation will suck if done by a translation engine
20:00:04 -!- rpsetzer has quit ("ChatZilla 0.9.80 [Firefox 2.0.0.11/2007112718]").
20:08:19 -!- immibis has joined.
20:13:20 -!- Tritonio__ has quit (Remote closed the connection).
20:33:29 <Sgeo> ? can't talk now
20:59:51 -!- immibis has left (?).
21:19:52 -!- jix has joined.
21:32:53 -!- oklopol has quit (Read error: 104 (Connection reset by peer)).
21:34:40 -!- oklopol has joined.
21:43:39 <oklopol> i'm going to sleep, now, though :D
21:49:08 -!- chuck has quit (Read error: 104 (Connection reset by peer)).
21:49:12 -!- chuck has joined.
22:23:28 -!- jix has quit ("This computer has gone to sleep").
22:52:53 -!- slereah__ has joined.
23:30:04 -!- Tritonio_ has joined.
23:42:11 <slereah__> Though I need to reboot soon. I'm still in the dual-booting installing process
23:49:27 <ehird`> OK who is alive and alive constantly
23:55:43 -!- slereah__ has quit (Read error: 104 (Connection reset by peer)).
23:57:29 -!- timotiis has quit ("leaving").
23:58:52 -!- helios24 has quit ("Leaving").
00:24:08 -!- immibis has joined.
00:26:12 -!- Tritonio_ has quit (Read error: 110 (Connection timed out)).
00:26:34 -!- Tritonio_ has joined.
01:04:59 -!- chuck has quit (Connection timed out).
01:12:24 -!- slereah__ has joined.
01:22:35 -!- slereah__ has quit ("Konversation terminated!").
01:34:40 -!- immibis has quit (Remote closed the connection).
01:34:53 -!- immibis has joined.
01:42:55 -!- ehird` has quit ("K-Lined by peer").
01:48:53 -!- pikhq has quit ("leaving").
01:55:21 -!- pikhq has joined.
01:55:34 -!- GreaseMonkey has joined.
01:56:38 -!- pikhq has quit (Client Quit).
01:57:34 -!- pikhq has joined.
02:23:00 -!- immibis has quit (Remote closed the connection).
02:23:23 -!- immibis has joined.
02:29:23 -!- Slereah has joined.
02:33:02 -!- immibis has quit (Remote closed the connection).
02:33:15 -!- immibis has joined.
03:27:47 -!- calamari has joined.
03:44:18 -!- immibis has quit (Remote closed the connection).
03:44:48 -!- immibis has joined.
03:52:42 -!- Tritonio_ has quit (Remote closed the connection).
03:57:53 -!- immibis has quit ("Hi Im a qit msg virus. Pls rplce ur old qit msg wit tis 1 & hlp me tk ovr th wrld of IRC. and dlte ur files. and email ths to).
04:43:12 -!- immibis_ has joined.
04:56:20 -!- calamari has quit ("Leaving").
05:08:11 -!- immibis_ has changed nick to immibis.
05:09:20 -!- Sgeo has quit (Remote closed the connection).
05:55:15 -!- puzzlet has quit (Remote closed the connection).
05:55:22 -!- puzzlet has joined.
05:58:26 -!- immibis has left (?).
07:08:39 -!- pikhq has quit (Read error: 110 (Connection timed out)).
07:10:21 -!- lifthrasiir has joined.
07:29:51 -!- immibis_ has joined.
07:31:38 -!- immibis_ has left (?).
07:53:27 -!- adu has joined.
07:56:30 * faxathisia is debugging a compiler and getting nowhere :/
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:00:49 <adu> I haven't worked on my language in awhile, like a whole week
08:01:10 <adu> but I just thought of another operator I could get rid of
08:01:45 <adu> I've been trying to minimize the number of operators in my lang, and until recently I had it down to parentheses, ' ', and '='
08:02:14 <adu> and I think I can get rid of '=' and keep it Turring, complete
08:03:41 <adu> it started out as my frustration with Haskell, but it has evolved into Haskell--
08:04:13 <adu> so obviously, ' ' it the function application operator
08:04:32 <faxathisia> What is your frustration with haskell?
08:04:45 <adu> mainly with numeric types and type classes
08:04:55 <adu> the monadic stuff is really nice tho
08:05:05 <adu> I just hate how Haskell does numbers
08:05:36 <adu> Haskell has 3 exponentiation operators, I think that is rediculous
08:06:13 <adu> Haskell has 5 type classes (i.e. interfaces) for describing what Float and Double can do
08:06:27 <adu> and the names they use are rediculous
08:06:57 <faxathisia> (It makes sense to describe exp inductively on N, understand it's properties, generalize it to Z, then Q)
08:07:16 <faxathisia> then you make a new def. for R using pages and pages of calculus :S
08:07:32 <adu> faxathisia: 4 operators? thats silly you only need ^ in the (Num a) type class (which is where (*) is defined as well), and have it opperate differently when the context is (Num Float)
08:08:43 <adu> well, '()' do the obvious
08:08:55 <adu> and ' ' is function application, like Haskell
08:09:19 <adu> but '=' is not quite like assignment, its used for pairing a key and a value
08:09:25 <adu> but that key does not need to be a literal
08:10:16 <adu> for example "c = ('a' = 1, 'b' = 2)" will make a function/hash-table such that when you apply it "c 'b'" the result is 2
08:11:08 <adu> when the binding is between a pattern and an expression, the '=' operator becomes a lambda
08:11:45 <adu> so "c = (\x = (x*x))" defines the square function
08:12:09 <adu> the \ is to distinguish between symbols and pattern-variables
08:12:25 <adu> x is the symbol/unquoted-string "x"
08:12:34 <adu> \x is a pattern that matches anything and binds it to x
08:13:09 <adu> and it also resembles Haskells lambda syntax (\x -> x*x)
08:14:46 <adu> but I was thinking about the binding operator, and I was wondering if it was really needed
08:16:06 <adu> because everything can be though of as a query or a command anyways, and if there is no interpretation of either in the current namespace, then there would technically be an error, but if the error of not finding any current bindings was instead used as the method of binding, then the '=' operator is useless
08:18:12 <adu> does that make sense?
08:19:10 <faxathisia> so instead of (\x = (x*x)) you write (x*x) ?
08:19:23 <adu> so the square function would be defined as "sq \x (x*x)"
08:20:17 <adu> but this means lists could also be defined differently, as "ls 1 4" would equate to ls[1] = 4, its almost like prologizing everything
08:20:29 <adu> it reminds me of the mathematical distinction between functions and relations
08:20:34 <adu> there is very little difference
08:21:09 <adu> and since there is a binding for "ls 1", the evaluation gives the result "4"
08:22:33 <adu> cuz in prolog all functions are basically booleans, if you want to assign "X = ls[1]" you have to write "nth(1, ls x)." thats what I meant by "prolog-izing"
08:23:01 <adu> nth(1, ls, x).
08:23:33 -!- oerjan has joined.
08:27:51 <adu> faxathisia: so what compiler are you working on?
08:28:25 <faxathisia> so I need to compile programs to run in it
08:28:59 <faxathisia> now that I wrote an interpreter and compiler.. when the self interpreter doesn't work the problem could be.. anywhere :S
08:30:06 <faxathisia> I wonder if I should just write my own Sint based on theirs..
08:31:40 <adu> hmm whats Janus?
08:33:03 <faxathisia> It's like the While language (minimalsit turing complete imperative), but every program can be run forwards or backwards
08:34:31 <faxathisia> for example, http://rafb.net/p/7HtmQg50.txt
08:35:33 <adu> ok so its the forwards-backwards Janus
08:35:54 <adu> I google'd some other Janus's related to Ada95 and Prolog
08:36:29 <adu> http://www.rrsoftware.com/html/prodinf/janus95/j-ada95.htm
08:37:53 <adu> whats a "Sint"
08:44:14 -!- GreaseMonkey has quit ("Hi Im a qit msg virus. Pls rplce ur old qit msg wit tis 1 & hlp me tk ovr th wrld of IRC. and dlte ur files. thx.").
08:46:49 <adu> so is that PostScript then?
08:51:20 <adu> or is that Janus?
08:52:36 <faxathisia> That's the self interpreter I am trying to make work
09:00:18 -!- lifthrasiir has quit (Remote closed the connection).
09:02:45 -!- adu has quit (Remote closed the connection).
09:37:54 -!- RedDak has joined.
09:51:25 -!- chuck has joined.
10:12:36 -!- sebbu2 has quit (Read error: 104 (Connection reset by peer)).
10:14:59 -!- sebbu has joined.
10:34:00 -!- oerjan has quit ("leaving").
10:50:47 -!- helios24 has joined.
11:25:05 -!- timotiis has joined.
11:37:35 -!- Tritonio_ has joined.
12:28:55 -!- jix has joined.
14:05:43 -!- Slereah has quit (Remote closed the connection).
14:18:40 -!- n0nsense has joined.
14:19:15 -!- n0nsense has left (?).
14:50:14 -!- n0nsense has joined.
14:50:24 -!- n0nsense has left (?).
15:55:43 -!- oerjan has joined.
16:17:15 -!- Tritonio_ has quit (Read error: 104 (Connection reset by peer)).
16:17:59 -!- Tritonio_ has joined.
16:48:30 -!- helios24 has quit ("Leaving").
17:19:00 -!- oerjan has quit ("leaving").
17:20:35 -!- Slereah has joined.
17:56:25 -!- ehird` has joined.
17:58:01 <ehird`> wow, that's some shite networking
18:17:03 <ehird`> omfg, the asshole paul graham patented continuation-based webservers: http://www.google.com/patents?id=WE8GAAAAEBAJ&dq=6205469
18:18:06 * faxathisia also agrees with this after reading him talking nonsense about Prolog
18:18:50 <ehird`> 'Weird since Linus probably doesnβt use TextMate.' i'm suprised this had to be qualified with 'probably'
18:19:04 <ehird`> because linux definately edits on a mac
18:19:35 <faxathisia> linus sometimes uses Mac OS and TextMate
18:19:48 <faxathisia> that's when he is doing ruby on rails work
18:20:04 <ehird`> he's rewriting the kernel in rails
18:20:16 <faxathisia> whlie flying around in a pink elephant
18:20:23 <ehird`> but he's considering switching to arc
18:29:52 <ehird`> faxathisia: you'll hate this guy re: prolog too http://www.yosefk.com/blog/high-level-cpu-follow-up.html
18:31:16 <faxathisia> well he's just some guy who can't program and no-ones likely to listen to
18:32:22 <ehird`> you could question pg's programming ability too
18:32:47 <ehird`> faxathisia: he does make hardware, though: http://www.yosefk.com/blog/the-high-level-cpu-challenge.html
18:46:09 -!- Tritonio_ has quit (Read error: 110 (Connection timed out)).
18:46:30 -!- Tritonio_ has joined.
18:55:47 -!- slereah__ has joined.
19:02:03 <SimonRC> I just resurrected a 6-month-dead thread.
19:02:16 <SimonRC> That's almost a century in Internet years.
19:03:33 <SimonRC> @Paul Graham: the bastard!
19:04:11 -!- Tritonio_ has quit (Read error: 104 (Connection reset by peer)).
19:05:27 <ehird`> speaking of which, this chatterbot makes me sick: http://rome.purepistos.net/mathetes/
19:05:33 <SimonRC> It's been on his fucking website for several years!
19:05:52 <ehird`> it says i'm not a human because i'm not catholic :)
19:06:11 <ehird`> it was filed in 1997, so him describing it on his website
19:08:11 <ehird`> SimonRC: but this is an example why software patents are sickening
19:08:33 <SimonRC> have you read what he says about software patents?
19:09:57 <SimonRC> he has written an essay on why software patents are not particularly evil
19:10:46 <ehird`> to be honest the 'software patent' stuff is pretty misguided: patents, full stop, are broken
19:10:58 <ehird`> i can understand the core idea to a degree but everything on top of that is hideously wrong
19:19:25 -!- RedDak has quit (Read error: 110 (Connection timed out)).
19:20:51 -!- Tritonio_ has joined.
19:21:02 -!- Tritonio_ has quit (Read error: 104 (Connection reset by peer)).
19:23:21 -!- Slereah has quit (Connection timed out).
19:27:32 -!- slereah__ has quit (Remote closed the connection).
20:00:40 -!- chuck has changed nick to _chuck[server].
20:19:30 -!- _chuck[server] has changed nick to chuck.
20:28:48 -!- Hiato has joined.
20:34:43 -!- Hiat1 has joined.
20:35:07 -!- pikhq has joined.
20:49:56 -!- Corun has joined.
20:50:08 -!- chuck has changed nick to chuck-blah.
20:50:10 -!- chuck-blah has changed nick to chuck.
20:53:04 -!- Hiato has quit (Read error: 110 (Connection timed out)).
21:24:29 -!- und3f has joined.
21:24:34 -!- und3f has left (?).
21:25:13 -!- RedDak has joined.
21:30:26 <ehird`> bsmntbombdood: you know you talked about segfault handling for a bf interp?
21:30:33 <ehird`> http://libsigsegv.sourceforge.net/ portable lib to do it
21:41:48 -!- Hiat1 has quit (Read error: 110 (Connection timed out)).
21:45:02 <ehird`> bah why are revision controlsystems always mutable?
21:45:09 <ehird`> filesystems should never modify data!
21:47:53 <ehird`> oh well, MINE will be an immutable, garbage-collected filesystem database! :D
21:58:33 -!- jix has quit ("This computer has gone to sleep").
22:18:23 -!- RedDak has quit ("I'm quitting... Bye all").
22:50:30 -!- timotiis has quit ("leaving").
22:54:27 <ehird`> libsigsegv could be a fun way to implement a really esoteric language implementation
22:54:51 <ehird`> i'm thinking a ->C Cheney on the MTA compiler, using libsigsegv to allocate *all* memory and its stack overflow detection to unwind
00:56:01 -!- ehird` has quit (No route to host).
00:56:30 -!- ehird` has joined.
01:03:04 <ehird`> I wonder how crazy an esoteric language can get re: modifiable syntax
01:03:29 <ehird`> Maybe something that starts off dirt-simple forth-style parsing, then is extended in itself into a crazy crescendo of modifiable, extendable, pluggable, composable syntax from hell
01:24:16 -!- GreaseMonkey has joined.
01:26:51 <lament> ehird`: it's called "Perl"
01:27:23 <ehird`> not quite - it doesn't have extendable syntax to that degree
01:27:31 -!- ehird` has quit ("K-Lined by peer").
01:39:06 -!- sebbu has quit ("@+").
02:38:52 -!- immibis has joined.
02:58:55 -!- adu has joined.
02:59:25 <adu> I just found two languages which are nearly Identical to my dream language
03:04:00 -!- immibis has quit ("Hi Im a qit msg virus. Pls rplce ur old qit msg wit tis 1 & hlp me tk ovr th wrld of IRC. and dlte ur files. and email ths to).
03:04:21 -!- immibis has joined.
03:11:52 <adu> Io (no keywords, i like) and Z (functions == relations, i like)
03:12:59 <adu> Io method syntax: Object method Args<CTCP>
03:13:11 <adu> Z function syntax: Function Args
03:13:21 <adu> both have minimal syntax as well
03:36:42 -!- Corun has quit ("This computer has gone to sleep").
04:08:17 -!- danopia has quit (Read error: 110 (Connection timed out)).
05:07:33 -!- oerjan has joined.
05:21:12 -!- adu has left (?).
05:57:43 -!- oerjan has quit ("leaving").
06:07:20 -!- immibis has left (?).
06:54:18 -!- immibis has joined.
07:10:55 -!- pikhq has quit ("leaving").
07:32:49 -!- lifthrasiir has joined.
07:39:37 -!- chuck_ has joined.
07:43:37 -!- chuck has quit (Read error: 110 (Connection timed out)).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:00:09 -!- immibis has quit ("Hi Im a qit msg virus. Pls rplce ur old qit msg wit tis 1 & hlp me tk ovr th wrld of IRC. and dlte ur files. and email ths to).
08:16:47 -!- Aatch has joined.
08:36:04 -!- GreaseMonkey has quit ("Hi Im a qit msg virus. Pls rplce ur old qit msg wit tis 1 & hlp me tk ovr th wrld of IRC. and dlte ur files. thx.").
09:10:44 <faxathisia> ehird`, Just getting a really good mixfix parser and hooking it up to whatever lambda calculus you want
09:59:15 -!- Aatch has left (?).
10:01:33 -!- faxathisia has quit ("If there are any aliens, time travellers or espers here, come join me!").
10:58:37 -!- RedDak has joined.
11:49:52 -!- Corun has joined.
11:56:58 -!- Corun has quit ("This computer has gone to sleep").
12:32:30 -!- chuck_ has changed nick to chuck.
13:46:42 -!- timotiis has joined.
14:12:25 -!- RedDak has quit ("I'm quitting... Bye all").
14:48:07 -!- jix has joined.
15:36:00 -!- faxathisia has joined.
16:49:39 -!- ehird` has joined.
16:49:59 -!- ehird` has quit (Client Quit).
16:50:27 -!- ehird` has joined.
17:02:12 -!- oerjan has joined.
17:05:17 -!- helios24 has joined.
17:30:30 -!- sebbu has joined.
18:06:18 -!- Corun has joined.
18:34:44 <ehird`> b:4>@[n;&0n=n:+/_sqr 50{c+(-/x*x;2*/x)}/c:+,/(-1.5+2*(!w)%w),/:\:-1+2*(!w)%w:200;:;4];`mandel.pbm 6:"P4\n",(5:2#w),"\n",_ci 2_sv'-1 8#,/+(2#w)#b
18:34:52 <ehird`> I wish K systems still offered a free interpreter.
18:35:44 -!- jix has quit (Read error: 104 (Connection reset by peer)).
18:35:55 -!- jix has joined.
18:36:19 -!- jix has quit (Read error: 104 (Connection reset by peer)).
18:36:39 -!- jix has joined.
18:36:48 <ehird`> As it stands now I can't even see how you can pay them for one
18:39:44 * SimonRC watches "Barack Obama @ Google"
18:39:46 <SimonRC> What a pity I can't vote for him
18:40:59 <oerjan> hm... doesn't the US presidential candidate foreigners like best usually turn out too left-wing for americans?
18:41:12 <ehird`> SimonRC: he's probably the best one left.. this is unsuprising, e.g. kucinich had no hope in hell so his dropping out is unimportant (though apart from the ufo stuff he was great)
18:41:33 <ehird`> i also note that reading k comments changes how i type like this. damn you, kx systems and your commenting style
18:41:38 <lament> he dropped out because he was abducted by aliens?
18:42:04 <SimonRC> ehird`: what is this commenting style?
18:42:33 <ehird`> SimonRC: lowercase, concise, not always grammatically correct
18:42:34 <SimonRC> If they got Hillary back that would make an alarmingly-long time with only Bushes and Clintons in the House
18:42:34 <ehird`> e.g. http://www.kx.com/a/k/examples/bell.k
18:43:25 <ehird`> http://kx.com/a/k/examples/read.k some more kx systems commenting in the same style
18:44:35 <SimonRC> that is some cray line-noise syntax
18:44:47 <ehird`> SimonRC: pretty much like APL, but sans crazy characters
18:44:52 <SimonRC> I have seen it before, but it still surprises me
18:44:55 <ehird`> http://www.kuro5hin.org/story/2002/11/14/22741/791 this is good stuff
18:45:03 <ehird`> unfortunately if you go to kx.com there's no reference to it
18:45:13 <ehird`> &they seem to not offer interpreters for it any more, beyond the obvious one you need to run their kdb+ software
18:45:30 <SimonRC> you could implement one yourself maybe?
18:45:39 <SimonRC> for playing it doesn't need to be fast
18:45:51 <ehird`> SimonRC: k is a large language.
18:45:54 <ehird`> lots of built in stuff.
18:45:58 <SimonRC> nor would you need all the libraries from the beginning
18:46:06 <ehird`> all code uses most of them.
18:46:29 <ehird`> their interpreter is very concise though.
18:46:36 <ehird`> there's no language spec
18:46:41 <ehird`> an alternate interpreter would be hard
18:47:21 <SimonRC> ther is a manual and a dictionary though
18:48:10 <ehird`> SimonRC: plus i don't really want to damage kx's profits etc
18:48:19 <ehird`> i think for something like k they deserve it ;)
18:49:09 <ehird`> unfortunately i can't really afford kdb+ just to try out k
18:49:24 <SimonRC> no-one would use your terp in place of their product
18:49:37 <SimonRC> also, look at J, which is similar I hear
18:49:45 <ehird`> SimonRC: well, they used to commercially sell the interp.
18:50:07 <SimonRC> if they were still interested in that they would still be selling it
18:50:27 <SimonRC> or, you could email them about it
18:50:46 <SimonRC> I am sure they would like to hear from a fan
18:51:29 <ehird`> true, i'll keep searching for a copy of the interp though
18:51:36 <ehird`> they used to offer a free one
18:53:56 <ehird`> d has the same problem except k is more obscure so it is almost impossible
18:54:19 <ehird`> i may have to use the web archie
18:54:39 -!- slereah__ has joined.
18:54:39 <faxathisia> It's really hard to turn haskell into scheme...
18:54:54 <ehird`> Along the way I found K Links put up by the other of the kuro5hin article, and "No Stinking Loops", a collection of links for various APL-derived languages; interpreting the latter my best guess is that versions 2 and 3 of K are obsolete and version 4 is now called "Q".
18:55:08 <ehird`> It used to be the case that you could download a demo version of K from the Kx website. However, in 2003 Kx systems released Q which merges the features of K and Ksql and is meant to be the successor to both. At some point they deleted the K download since it is no longer a featured language; however they did not add a Q download. Kx still offers trial versions of Q, but it is on a by request basis. Abcarter 15:05, 25 August 2006 (U
18:55:16 <ehird`> SimonRC: i doubt an email from a fan would help then:)
18:55:39 <ehird`> A correction and a comment. I had thought that Q was the successor to both ksql and k. It is the successor to ksql and it does merge the features of ksql and k, however it is still written entirely in k, though a newer version. It would be nice for Kx to offer older versions of k without support, but it's not clear that it is in their interest to do so. Abcarter 00:19, 1 December 2006 (UTC)
18:58:56 <ehird`> SimonRC: http://en.wikipedia.org/wiki/Talk:K_%28programming_language%29 take a look at the prototype j interp
19:00:51 <ehird`> gcc complains about it :)
19:00:59 <ehird`> but sure enough it works
19:01:21 <ehird`> so does any unrecognized instruction
19:07:35 <ehird`> does it even define 'mv'?:|
19:10:17 -!- ais523 has joined.
19:11:03 <ehird`> i was just blabbing on endlessly about k
19:11:17 <ehird`> in particular arthur's first prototype j interp: http://rafb.net/p/zcG1y584.txt
19:12:41 <ais523> that looks pretty obfuscated for an interpreter...
19:13:14 <ehird`> ais523: ever read k/j code?
19:13:36 <ehird`> http://www.kx.com/a/k/examples/bell.k
19:13:54 <ehird`> http://www.kx.com/a/k/read.k translates k code into english
19:15:02 * ais523 runs the original paste through cpp and indent
19:15:34 <ais523> it might at least give me a chance of reading it more easily...
19:15:35 <ehird`> certainly if you want to understand code written in those languages you should get used to code like that
19:15:46 <ehird`> perhaps a slow read through it will be beneficial
19:15:49 * ais523 has written code like that before
19:16:01 <ehird`> ais523: ah, but has your code powered banks and stuff?
19:16:15 <ehird`> or full enterprise-quality relational databases?
19:16:23 <ais523> they'd be crazy to run code that isn't well-commented and indented
19:16:25 <ehird`> well, technically THAT doesn't but the k interp is tiny and really fast and IS used for those
19:16:29 <ais523> because it would be harder to spot the bugs
19:16:38 <ehird`> ais523: no, not with k.. it's a paradigm shift.
19:16:44 <ehird`> read the .k files i showed you
19:16:55 <ehird`> ais523: It's an APL descendant
19:17:33 <ais523> I was talking about the C code you pasted originally
19:17:37 <ehird`> http://www.kuro5hin.org/story/2002/11/14/22741/791 this is a good explanation of why k is like that
19:17:44 <ehird`> ais523: it is basically in the style of k/j code, that c code.
19:18:12 <ehird`> also, cpp+indent won't help you. i tried for amusement
19:19:32 <oerjan> ais523: do you know if there is a way to make a template or something for catseye URLs so we don't have to change them all on the wiki every time cpressey moves around?
19:19:41 <ais523> oerjan: shouldn't be too hard
19:20:51 <ehird`> template name=catseye, and i only need to handle the domain not filepaths
19:21:25 <ais523> you could do a template which was used along the lines of {{catseye|projects/worb/|description}}
19:21:32 <oerjan> er, we want to be able to do file paths
19:21:47 <ais523> by putting more between the two | signs
19:22:08 <ais523> making the template's code:
19:22:18 <ais523> [http://catseye.tc/{{{1}}} {{{2}}}]
19:22:44 <ehird`> ais523: heh, i've added fancy comments to make changing the url easy
19:22:48 <ehird`> perhaps a bit overboard
19:22:57 <ais523> no, making wikis easy to use is important
19:23:08 <ais523> you might even want to add documentation in a <noinclude>
19:24:46 <ehird`> i hope mediawiki strips comments decently
19:26:08 <ehird`> by default it uses its second parameter as the description
19:26:11 <ehird`> without the catseye.tc stuff
19:26:19 <ehird`> i think it should have the http://catseye.tc/... in with it
19:26:49 <ehird`> ais523: oo crap, you know mw right? is there a way to like save a variable or something
19:26:55 <ehird`> i guess i could do template:catseye being
19:27:01 <ehird`> {{catseye/inner|theurl}}
19:27:08 <ehird`> with /inner having nowikis around the argument places
19:27:14 <ehird`> hopefully that metaness would work.
19:27:20 <ais523> have a look at what I've done so far
19:27:33 <ais523> I'm not entirely sure what you're trying to get at
19:27:53 <ais523> the default is currently parameter 1
19:27:56 <ehird`> ais523: yeah but i was working on it
19:28:03 <ais523> but you can change it by putting things between the | and the }}}
19:31:46 <ehird`> ais523: got it, just give me a second
19:32:41 <ais523> you're only passing one param to catseye/inner, rather than 2, and MW params are 1-based not 0-based
19:32:54 <ais523> the only way to pass in {{{0}}} is to explicitly write 0= in the template call to give a named parameter
19:33:47 <ehird`> got it apart from one case
19:33:50 <ehird`> which i am about to fix now
19:34:14 <ehird`> can b include argument refs?
19:34:48 <ehird`> [http://{{{1}}}/{{{2}}} {{{3| http://{{{1}}}/{{{2}}} }}}]
19:34:57 <ehird`> the {{{1}}}{{{2}}} arent getting expanded
19:35:02 <ais523> are you passing it three arguments?
19:35:42 <ais523> ah, the problem is that you need to write {{{1|}}} and {{{2|}}} in the main catseye template
19:35:54 <ais523> because otherwise if param 2 is missing you pass it the literal string {{{2}}} rather than a blank string
19:36:18 <ehird`> we want to default to [1] etc
19:36:20 <ehird`> since htat's what MW does
19:36:39 <ehird`> so that catseye is always isomorphic to []s
19:37:00 <ais523> in that case you want a null string as the default
19:37:08 <ais523> so it autonumbers the URL
19:37:12 <ehird`> excellent, ais523 -- i fixed it up
19:37:26 <ehird`> and its dirt simple to change the url, since it's right there, easily visible
19:37:43 <ehird`> now -- how do we get all pages that link to a url containing catseye
19:37:45 <ais523> the next problem is to find all the links to catseye
19:37:58 <ais523> normally you'd do that using http://en.wikipedia.org/wiki/Special:Search?go=Go&search=Special:Linksearch, but it appears to not be installed on Esolang
19:38:47 <ehird`> if only we could run arbitary code on the wiki server!
19:39:10 <ais523> API is disabled, too, so checking all the pages by hand is likely to be the only option
19:39:51 <ehird`> ais523: I have a better idea.
19:40:09 <oerjan> i assume [[Chris Pressey]] is a good place to start
19:40:24 <ehird`> I'll write a program that wget's every entry on the language list concurrently, tries to find catseye in a url, and saves it to disk if it finds it :D
19:40:29 <ehird`> then I can run a script to do the replacement! \o/
19:41:17 <ehird`> guess i should go write it
19:41:30 <ehird`> hmm, this is either going to be a superb use for perl, or a hilariously evil use for bash
19:41:58 <oerjan> some links have been changed to catseye.tc, while some are still the broken catseye.webhop.net
19:42:22 <ehird`> oerjan: Well, they're both wrong
19:42:47 <oerjan> might even be some wayback links hiding in there, unless cpressey fixed it all
19:43:05 * ais523 tries opening up the Esolang database dump in Emacs to find the links that way
19:43:26 <ehird`> hmm, ok here's the plan
19:43:32 <ehird`> shout out a page name to me and i'll magically fix it
19:43:44 <ehird`> i will multithread and also look myself.
19:44:48 <ais523> lots in the history of the language list
19:44:58 <ais523> but I think all the external links are supposed to have been removed from there
19:45:15 <ehird`> fixed pages: befunge,ALPACA
19:47:13 <ais523> Esoteric programming language
19:47:43 <ais523> (but you've done that one already...)
19:49:22 <ehird`> we're getting some catseye.tc//foo because of the / in the links
19:49:58 <ehird`> oerjan: you're welcome to help too :-P
19:51:06 <ehird`> database is being flakey
19:51:10 <ehird`> ais523: how much more?
19:51:38 <ais523> I'm only 4% of the way through the dump but that isn't a very reliable measurement
19:51:52 <ehird`> i hope these aren't just the first 4%
19:51:56 <ehird`> ais523: did you strip all the HISTORY out?
19:52:11 <ais523> the current versions are stored separately from the history
19:52:17 <ais523> I'm viewing the current versions at the moment
19:52:23 <ais523> but the history makes up the bulk of the dump
19:52:30 <ais523> which is why 4% is such a low number
19:52:43 <ais523> i.e. we get all the links we're interested in first
19:52:51 <ehird`> ais523: can you grep to find the history section
19:52:54 <oerjan> ehird`: i tried starting from the back but someone already did ;)
19:53:16 <ais523> ehird`: I don't know enough about the layout of a MW database dump to do that reliably
19:53:33 <ehird`> ais523: grep for obvious things? :P
19:53:40 <ehird`> Like, grep for a page name you've already seen
19:53:55 <ais523> what with all the links in the wiki?
19:54:05 <ais523> it would probably be easier just to add to the list than try to find its end
19:54:05 <ehird`> grep without [[]] around?
19:55:35 <ehird`> ais523: Fixed that one already.
19:56:51 <ehird`> My mouse skills sure are improving!
19:57:03 <ais523> Sally: this page seems to have identical content to Bear Food; maybe worth investigating if one or the other of the pages are vandalism?
19:57:23 <ehird`> ais523: bear food is legit
19:57:54 <ehird`> Sally and Bear Food are legit
19:58:37 <ais523> that's it for mainspace
19:59:08 <ais523> no, wait, there's more...
19:59:30 <ais523> scratch that, I was right first time
19:59:34 <ehird`> ais523: What about other namespaces?
20:00:13 <oerjan> the Bear food link is now incorrect
20:00:43 <ais523> Esoteric Topics in Computer Programming
20:00:49 <ais523> argh, it seems they aren't sorted by namespace after all
20:01:28 <oerjan> i cannot find the right page
20:01:44 <ais523> I've gone past the end of the article-text table and ended up in the links table
20:01:47 <ais523> so I think that's everything
20:03:15 <ais523> some of the new links point to 404s at Catseye, by the way
20:03:17 <ehird`> Esoteric Topics in Computer Programming -- no suitable link
20:03:23 <ais523> we'll have to check which ones actually do need waybacking
20:03:34 <ehird`> i for one have worn out my fingers for now
20:03:48 <ehird`> i dominate Recent Changes
20:04:38 <ais523> there's also Special:Whatlinkshere/Template:Catseye if we need to find all the pages in the future for some reason
20:06:09 <ehird`> my /inner trick is no longer neccessary
20:07:44 <ais523> as for your comments about K
20:07:49 <ais523> to me it looks like what GolfScript ought to be
20:08:10 * ais523 sees no reason why a language like that cannot be serious
20:08:12 <oerjan> should the link to Cat's Eye Technologies: Esoteric Topics in Computer Programming from Esoteric programming language be reverted to wayback, or changed to projects?
20:08:21 <ehird`> oerjan: well, it was an article
20:08:24 <ais523> it's about the column itself
20:08:25 <ehird`> so find the article or leave it
20:08:30 <ais523> so it should probably be the Wayback link
20:08:36 <ais523> if the article isn't on catseye any more
20:08:59 <ehird`> http://golf.shinh.org/p.rb?Number+lines my challenge is pretty interesting!
20:09:42 <ais523> ehird`: I entered that one already
20:09:45 <ais523> I'm 9th for Perl entries
20:09:49 <ehird`> hm, speaking of which, who here uses reddit? http://reddit.com/r/programming/info/67myb/comments/ the prototype j interp
20:09:49 <ais523> which is not really very good
20:09:55 <ehird`> its at 0 points right now, so..:)
20:10:15 <ais523> I'm still winning outright on Perl ROT13s, though
20:10:39 <ehird`> http://golf.shinh.org/p.rb?Minimal+scheme+interpreter look, all the lovely cheats!
20:10:42 <ehird`> if only my examples were OK
20:10:52 <ais523> (hint: my entry doesn't rot13 punctuation marks between Z and a properly, but it doesn't need to based on the examples given)
20:11:10 <ais523> I think it may also exploit UB in the Perl implementation
20:11:26 <ehird`> http://golf.shinh.org/reveal.rb?Minimal+scheme+interpreter/notogawa%28embed%29/1201272045&hs <-- ooh, clever
20:13:06 <ais523> Haskell in the style of Prolog!
20:15:16 * ais523 is upset that there aren't more genuine entries in the Underload contest
20:16:23 <ehird`> http://golf.shinh.org/p.rb?simple+language the one challenge that nobody will not cheat on!
20:16:24 <ais523> My Perl entry is genuine (although not quite compliant); there are also Ruby and PostScript entries that look genuine
20:16:40 <ehird`> the funnest thing about mine is that the only primitive stuff is the infix ops
20:16:40 <ais523> I'm not sure about the large C one, because I don't understand the word in the parens
20:16:44 <ehird`> like : and {...} and * + etc
20:16:51 <ehird`> if is called like a composite
20:16:57 <ehird`> because {} is a lambda
20:17:21 <ehird`> ais523: i think hidoi=embed
20:17:42 <ehird`> those crazy japanese rubyist golfers
20:21:06 <ehird`> i ought to write some c code like the j interp
20:22:53 * SimonRC tries to figure out what the "rsh" thing is in that APL-like terp
20:24:14 <ehird`> SimonRC: that interp isn't intentionally like that, btw. that's just how the guy codes. he went on to create K, and his product KDB by Kx systems has *no loops at all*
20:24:19 <ehird`> and it's a full freaking rdbms
20:25:26 -!- jix has quit (Read error: 113 (No route to host)).
20:25:27 <ais523> if not, it ought to have been
20:25:50 <ais523> and there's nothing wrong with using combinators to avoid needing to write loops
20:25:56 <ais523> several languages use that method
20:26:23 <ehird`> it doesn't use combinators, really
20:26:28 <ehird`> it uses some weird stuff
20:26:36 <ehird`> ais523: and no, because that's actually the opposite of apl philosophy
20:26:51 <SimonRC> waitamo, surely it must have a wait-for-input loop?
20:26:58 <SimonRC> OTOH, few others are needed
20:27:06 <SimonRC> just implicit loops in various things
20:27:15 <ais523> ehird`: K's adverbs remind me of combinators
20:27:21 <ais523> even though technically speaking they aren't
20:27:46 <ehird`> SimonRC: beats me, all i know is that they have 0 loops in their code
20:27:51 <ehird`> which has been verified by them multiple times
20:27:59 <ais523> waiting for input isn't a loop
20:27:59 -!- RedDak has joined.
20:28:02 <ais523> it's just waiting for input
20:28:15 <ais523> just like sleep commands which wait for time needn't be loops
20:29:01 <ais523> short waits (a few microseconds) on PIC microcontrollers, for instance, are often achieved by putting in several useless flow-control commands so as to cause the microcontroller to waste time figuring out how to follow them
20:29:08 <ehird`> http://cdn-www.cracked.com/articleimages/wong/computer.jpg this is ... brilliant
20:29:32 -!- danopia has joined.
20:29:32 <ais523> aiming a CALL at a RETURN of a procedure you already have takes it a whole 4 us to process, with just one machine-language word
20:29:38 <ais523> whereas most commands run in 1 us
20:29:58 <ehird`> AnMaster: it's ironic, of course -- which loads of people don't seem to grok.
20:30:05 <ais523> come to think of it, you could create really evil obfuscated code by combining that sort of thing with the built in clock cycle counter...
20:30:07 <AnMaster> ehird`, of course it is ironic
20:30:21 <ehird`> AnMaster: some people have thought it was serious
20:30:52 <AnMaster> well with some americans, you never know, they could mean it
20:31:56 * oerjan finished checking the recent changes. Good night.
20:32:15 -!- oerjan has quit ("leaving").
20:32:48 <ehird`> 'omg..last change... i can..make it....urghfdkgh'
20:33:12 <ehird`> AnMaster: we made fun of chris pressey^H^H^H^H^H^H^H^H^H^H^H made a template for catseye links and changed all of them to it
20:33:14 <ehird`> because the domain changes often
20:34:25 <SimonRC> or the thing that waits for incoming connections to a db, or wheatever
20:35:06 <ehird`> SimonRC: it has 0 loops
20:35:29 <SimonRC> the best low-level trick I have seen is calling the next instruction: you execute everything up to the next return, return, then execute it again, and return from the original subroutine
20:36:45 <ais523> SimonRC: that's the method used for constants in Modular SNUSP
20:36:55 <ais523> which I am very impressed by
20:37:45 <ais523> there are some examples on the wiki
20:38:00 <ais523> http://esolangs.org/wiki/SNUSP
20:38:45 <SimonRC> the third line of (rsh) is an evil trick
20:38:53 <ehird`> SimonRC: what does rsh do
20:39:11 <SimonRC> reshape, on that obfuscate C thing posted earlier
20:39:46 <ehird`> its not obfuscated, SimonRC..
20:39:50 <SimonRC> the third line uses an overlapped move if the destination is much bigger than the source
20:39:51 <ehird`> that is just how arthur codes..
20:40:09 <ehird`> guy who helped create J (that's a basic interp for j), and Kx guy
20:40:22 <ehird`> he in all honesty codes C just like that link..
20:40:56 <ais523> the unusual thing is not that he codes like that, but that he codes like that even with people watching
20:41:13 <ehird`> ais523: the literal kind of people watching?
20:41:16 <ehird`> i.e. over-his-shoulder
20:41:33 <ehird`> ah, you mean publishing his code?
20:41:39 <ais523> I've written code like that, and I assume most coders have at some point, but not if anyone else is likely to read it
20:41:41 <ehird`> well, sure. he advocates concise programming like that
20:41:46 <ais523> because I would feel the need to explain it
20:41:51 <ehird`> i mean, K is totally based around that kind of stuff
20:42:17 <ais523> the point is that #defining language constructs to give them shorter names would be considered by many people to be excessive abbreviation
20:43:00 <ais523> and most companies would probably fire people for it
20:43:02 <ehird`> ais523: unless you were raised on APL, like he was :-)
20:43:18 <ehird`> ... and unless you found your own company and make loads of money selling enterprise-level database systems!
20:43:22 <ais523> are you aware of how the IOCCC got started in the first place?
20:43:35 <ehird`> ais523: It sneezed out of arthur's nose?
20:43:44 <ais523> some major piece of software, I think maybe UNIX sh, was written in C
20:43:54 <ais523> but with #defines to look like some other language, maybe ALGOL or Pascal
20:44:20 <ais523> and one of the IOCCC creators was working on the code and put out a Net-wide challenge for people to find code harder to work with
20:44:36 <ais523> (for the record: this is a paraphrase, not the literal story)
20:45:37 <ehird`> speaking of 'serious' obfuscated c: the joy interp is quite odd
20:46:07 <lament> why are you looking at the joy interpreter?
20:47:03 <ais523> there's nothing wrong with Joy
20:47:25 * ais523 thinks that 2008 will be the year of concatenative languages
20:47:34 <ais523> or at least ought to be
20:47:42 <ehird`> i'm not really a fan of concatentative languages for practical purposes
20:47:58 * SimonRC reocmmnds that people get a copy of ColorForth
20:48:07 <SimonRC> not to use, but just to read Chuck's code
20:48:09 <ais523> it depends on what you mean by 'practical'
20:48:16 <ais523> when I'm coding for speed/portability, I use C
20:48:26 <ais523> when I'm not, I use whatever lang I like
20:48:37 <SimonRC> yes, a real insite as to just how small programs can be
20:48:41 <ais523> and normally aim for what I consider elegant
20:48:45 <ehird`> SimonRC: chuck is my favourite insane outsider programmer guy!
20:48:58 <ais523> and normally consider concatenative langs to be elegant for any particular job
20:49:05 <SimonRC> he's been doing programming his whole career
20:49:10 <ehird`> chuck: unless you're chuck moore, not you
20:49:40 <SimonRC> ISTR that Chuck Moore is usually called "chipChuck"
20:50:59 <ais523> probably either depending on context
20:51:06 <SimonRC> that J terp needs at least a few comments
20:51:12 <ehird`> SimonRC: bah, comments
20:51:19 <SimonRC> something like chipChuck's commenting style would work great
20:51:26 <ehird`> comments are for losers, unless they're only used once every 15 lines, like in k code
20:51:46 <SimonRC> he thinks that 5 words and a stack picture are enough for a whole function
20:51:48 <ais523> comments are useful when learning a language
20:51:54 <SimonRC> where function is one of those things
20:51:56 <ais523> I still have some assembly code where every line is commented
20:51:59 <ehird`> ais523: arthur is hardly learning c
20:52:05 <ais523> because it was a program I was learning on
20:52:14 <ehird`> speaking of which, the colorforth distro has disappeared it seems
20:52:16 <ais523> they are also useful for helping other people understand your code
20:52:22 <SimonRC> TBH, 1 or two words for each of those operators would be enough and really help
20:52:27 <ais523> especially if it's a case of "why did you do that" rather than "what are you doing"
20:52:33 <SimonRC> I used a windows port of colorForth
20:53:37 <ehird`> where HAS his code gone
20:54:01 <ehird`> http://www.colorforth.com/install.htm
20:54:14 <ehird`> he doesn't share his source.
20:54:36 <SimonRC> "WinColorForth" or something like that
20:55:04 <SimonRC> alas the editor is not written in cf :-(
20:55:28 <SimonRC> I made a modification so you can't crash the icon editor by going beyond the last icon
20:55:41 <ehird`> i want to write some c code like that interp, but have no idea where to start :|
20:55:59 <ehird`> actually, doesn't it interpret as-read?
20:56:05 <ehird`> does plus do: read_expr() or something
20:56:19 <SimonRC> chipChuck also made a chip editor and simulator in 20k that simulates his chip better than the multi-$100,000 professional ones do
20:57:46 <ais523> if you read thedailywtf.com, that won't surprise you in the least
20:58:10 <ehird`> SimonRC: http://www.nsl.com/papers/origins.htm wowzers! the original interp had one-space indentation and some blank lines
20:58:42 <ais523> 1-space indentation is a sure sign of a golfer at heart
21:00:03 <ehird`> ais523: no -- no indentation is
21:00:20 <ais523> there are other reasons to use no indentation
21:00:35 <ais523> but 1-space gives the impression of "do I really have to indent this? Stop forcing me to indent!"
21:01:00 <ehird`> By the way, I think that interpreter may have platform-specific fragments
21:01:14 <ehird`> which is why it segfaults
21:01:54 <ehird`> i am quite confused as to what the # and , operators do
21:02:12 <ehird`> ~ also does some weird stuff
21:03:07 <ehird`> is either z or l taken as proglang names?
21:03:36 <ais523> if you want a really short lang name
21:03:56 <ais523> (I've HTML-encoded that so it shows up readably on IRC)
21:04:24 <oklopol> i wonder if is taken as a name
21:04:35 <SimonRC> the trick to writing code like that is to keep refactoring and to readily chuck away features
21:05:01 <ehird`> m/^(a*)b\1$/ a^nba^n matcher in perl
21:05:19 <SimonRC> cut away all unnecessary layers of absraction, then cut away a few ones you thought were necessary too
21:05:22 <lament> chuck away moore features
21:05:42 <ais523> then compile your code at max optimisation and decompile it again
21:05:53 <ais523> max space optimisation
21:06:01 <ais523> but optimised for 'generic'
21:06:16 <ais523> hmm... how common are compilers for a lang into itself?
21:06:24 <ais523> that optimise the code but leave it legal in the original lang
21:07:05 <ehird`> http://everything2.com/index.pl?node_id=1398015 i like this language
21:08:15 <ehird`> 'Examples of functional languages are Lisp, and Forth.' whut
21:09:15 <ais523> well, Lisp is certainly capable of being functional
21:09:37 <ehird`> i was thinking more of the forth reference
21:09:48 <ais523> I don't know that much about Forth, but from what I know I would expect that it can be written in a vaguely functional style if necessary
21:10:23 <ehird`> forth is the antifunctional language.
21:10:37 <ehird`> SimonRC: back me up here i'm lazy :P
21:11:23 <oklopol> i'm too tired to make a pun, but you get my point
21:11:33 <ais523> most langs can be written in a vaguely functional style
21:11:57 <ais523> except for the ones which are ridiculously imperative, to the extent that they don't even have second-class functions like C
21:12:20 <ais523> and for Prolog, of course, which still manages to be entirely unlike anything else and yet somehow mainstream
21:12:26 <SimonRC> forth is low-level with super-duper macros
21:12:43 <ais523> does it have an eval command?
21:12:48 <SimonRC> lots of forth doesn't even have dynamic allocation: everything is static
21:12:59 <ehird`> forth is far too old, and low-level for that
21:13:05 <ais523> ah, in that case writing it functionally would probably be quite difficult
21:13:14 <SimonRC> whereas almost all functional langs have GC
21:13:38 <ais523> Unlambda only needs reference-counting
21:14:39 <ais523> of course, most langs end up needing GC when they get advanced enough
21:15:00 <ais523> recent versions of C-INTERCAL, for instance, need GC to find and remove inaccessible portions of threads
21:15:16 <ais523> (Being able to backtrack past fork() really puts a strain on a language.)
21:15:41 <ehird`> ais523: you use the boehm gc for that? right? right?!
21:16:05 <ais523> within libickmt.a, so it's transparent to the user
21:16:27 <ais523> boehm is slower, and not always right
21:16:40 <ais523> refcount is fine because so far, luckily, there's no way to get into a loop of thread-referencing
21:17:02 <ehird`> well, boehm never frees something it shouldn't. let's put it that way
21:17:02 <SimonRC> refcount sucks on the cache behaviour
21:17:24 <ehird`> SimonRC: and naw, i'm pretty sure it never frees something it shouldn't.
21:17:30 <ehird`> since it counts everything
21:17:40 <ais523> sometimes it causes a memory leak, though
21:17:44 <SimonRC> you can legally write a pointer to a file and read it in in C, thereby hiding it from the collector
21:18:05 <ais523> luckily, so far, it's impossible to send an INTERCAL thread across a network
21:18:07 <SimonRC> ais523: yes, especially if you don't null your list pointers
21:18:17 <ais523> CLC-INTERCAL apparently allows file-handles to be sent across a network
21:18:33 <ais523> and reading or writing to them will read or write to the relevant file in the remote location
21:18:34 <SimonRC> a fake pointer that hits a linked-list node will retain the entire list unless you null pointers
21:18:48 <ehird`> SimonRC: and.. does c-intercal do this
21:19:05 <ais523> it doesn't currently null down the list, I don't think
21:19:10 <ais523> just decrements the refcount
21:19:17 <ais523> after all, those pointers might be being used by something else
21:19:30 <ais523> the refcount is necessary because it actually affects the semantics of the language
21:20:05 <ais523> the threads act sort-of like a tree. When a thread dies, one leaf of the tree is removed, making all the tree back to the next branchpoint inaccessible
21:20:41 <ais523> likewise when a thread backtracks, it will be killed unless no other threads survive at the fork() that created it
21:20:54 <ais523> although it isn't a fork() in INTERCAL, of course, but instead multiple COME FROMs aiming at the same line
21:21:39 <SimonRC> # mamaaaaaa, just segfaulted a process #
21:22:03 <SimonRC> # freed a pointer that was live, it derefed and then it died #
21:22:18 <ais523> I wonder if it's possible to use valgrind as a garbage collector?
21:22:45 <SimonRC> ais523: it would make early LISP ones look positively zippy
21:23:07 <ais523> I wasn't wondering if it was efficient, just if it was possible
21:24:01 <SimonRC> A cool trick I have seen is to have a 1-many refcount as a single bit in the pointer: when you duplicate a pointer, set the refcount to "many". Most pointers are never really duplicated, so most stuff gets freed straight away, with less left for the GC
21:24:13 <SimonRC> refcounts in the pointer are *way* better for the cache
21:24:17 -!- RedDak has quit ("I'm quitting... Bye all").
21:26:20 <SimonRC> well, that C is commented now
21:27:27 <ehird`> SimonRC you commented it?
21:27:35 <ehird`> that's a magical creation!
21:29:25 <ais523> did you at least use //-style comments?
21:29:33 <SimonRC> I did so comprehensively, with stuff like:
21:29:35 <SimonRC> if(n-=wn)mv(z->p+wn,z->p,n);R z;} // "overlapping move" to fill rest
21:29:54 <ais523> /* */ seems wrong there, even if it's more portable
21:30:10 <SimonRC> most lines have 2..3 word of comment
21:31:06 <SimonRC> All that really need documenting is the operator semantics and the two data structures involved
21:31:33 <ehird`> SimonRC: you evil evil person
21:33:46 <ehird`> SimonRC: paste it so i can burn you at the steak. mm, steak.
21:48:00 <ehird`> #define P printf // monadic op
21:48:00 <ehird`> #define R return // dyadic op
21:48:04 <ehird`> pray tell how does that help you
21:48:56 <ehird`> SimonRC: it would help if in your //operators line you did a symbol->op mapping
21:48:58 * ais523 was wondering about that too, but didn't comment for some reason
21:49:33 <ehird`> SimonRC: try linking the new one
21:49:36 <ehird`> http://pastebin.ca/891750
21:50:14 <ehird`> SimonRC: also, see where i linked above
21:50:18 <ais523> wow, that's genuine old-fashioned K&R C
21:50:24 <ehird`> it's the original version, which HAS indentation
21:50:35 <ehird`> ais523: sure. j is old.
21:50:39 <ais523> and it contains a buffer overflow
21:50:52 <ehird`> yes, it does -- but there's probably tons of those in regular K
21:51:00 <SimonRC> that is the first prototype remember
21:51:13 <ehird`> the reason being: that's the k mindset
21:51:18 <ehird`> you don't care about things like that
21:51:21 <ais523> C s[99];while(gets(s)) should never be written by anyone
21:51:32 <ais523> because there's no way to guarantee that the user types in 98 or fewer characters
21:51:42 <ehird`> ais523: thanks for the c lesson!
21:51:48 <SimonRC> you make sure the only user is you
21:51:50 <ais523> the function gets itself is very hard to use
21:51:56 <ais523> in a way that can't segfault
21:52:10 <SimonRC> actually gets is impossible to use properly
21:52:10 <ehird`> ais523: read:impossible
21:52:25 <ais523> I did write code that used it safely once as proof-of-concept
21:52:30 <ehird`> you can trap sigsegv to expand
21:52:33 <ais523> it redirected stdin to a file that it created itself
21:52:50 <ais523> and array overflows don't necessarily cause sigsegv, they just do so sometimes
21:52:58 <ais523> ehird`: no, it actually used the filesystem
21:53:02 <ais523> so as to do it in portable C89
21:54:05 -!- helios24 has quit ("Leaving").
21:54:45 <ehird`> find does do something
21:54:48 <ehird`> i just don't know what
21:55:11 <SimonRC> it is an operator that returns stack garbage
21:55:33 <ehird`> SimonRC: well, it does something in the repl
21:55:33 <SimonRC> it is supposed to look up a value in an array
21:56:11 <ehird`> thats far too conventional for that btw ;)
21:56:43 <ehird`> anyway -- switch to the indented version
21:58:11 <ehird`> I *ma(n){R(I*)malloc(n*4);}
21:58:18 <ehird`> that's wrong for today's machines
21:58:26 <ehird`> I *ma(n){R(I*)malloc(n*sizeof I);} // obviously
21:58:28 <ais523> sizeof exists for a reason
21:58:36 <ehird`> ais523: didn't back then at least not widely
21:58:39 <SimonRC> it was prototype ffs for one person's machine
21:58:51 <ais523> I write portably even just for personal code
21:58:54 <ais523> unless I have a reason not to
21:59:05 <ais523> because I often end up trying to run it on a different machine...
21:59:12 -!- pikhq has joined.
21:59:13 <SimonRC> also, odd things happen if malloc returns values near the bottom of memory...
21:59:32 <ehird`> ais523: do you know when that code was written?
21:59:32 <SimonRC> the token-classifier might misclassify them as operators or variables
21:59:53 <SimonRC> default-to-int all over the place
22:00:08 <ehird`> and abusing that to return ptrs
22:00:08 <SimonRC> it's really a B program ina disguise
22:00:10 <ais523> after all, I use Gnome/GNU/Linux, GNU/Windows, Explorer/Windows, and Common Desktop Environment/SunOS reasonably often
22:00:21 <ais523> and have been known to use DOS on occasion
22:00:34 * ais523 spells it out in full when both parts are relevant
22:00:56 <ais523> after all, using the acronym is the only way that people will realise what I mean by GNU/Windows
22:01:09 <ehird`> SimonRC: change your comments to be aligned and start them with //NB.
22:01:15 <ais523> I've never seen anyone write Explorer/Windows before, but they should more often so that people realise that the OS is not the computer or the GUI
22:01:16 <ehird`> J uses NB. as a comment indicator
22:01:20 <ehird`> and generally has them aligned
22:01:52 <SimonRC> I dont' *think* that weorksd
22:01:59 <ais523> the pp-phases are in the wrong order
22:03:10 <ais523> technically speaking, all comments have to be replaced by a positive amount of whitespace
22:04:04 <ehird`> i want a compiler that replaces comments with whitespace corresponding to fibonacci numbers, incrementing each commentused
22:04:04 <ais523> btw, has anyone here used m4?
22:04:31 <ais523> I'm used to changequote([,])-ed m4 as a result of reading the source of Autocong
22:04:52 <SimonRC> Actually, I think the #line directive is mostly for the use of seperate preprocessors
22:05:02 <ais523> m4 is capable of generating them
22:05:09 <ais523> it's also useful for things like lex and yacc
22:05:12 <ais523> when you're compiling into C
22:05:14 <ehird`> 1. gcc can report proper errors
22:05:24 <ehird`> and 2. compiler output
22:05:28 <ehird`> can do #line"srcfile" 4
22:05:29 <ais523> but that doesn't use #line, but #<space>
22:05:43 <ais523> that is, what cpp does
22:21:42 -!- ais523 has left (?).
22:27:27 <ehird`> SimonRC: q about the interp
22:27:32 <ehird`> is there any way to construct vectors?
22:30:59 <SimonRC> what do you mean "construct"?
22:34:44 <ehird`> SimonRC: make new ones from inside code
22:34:51 <ehird`> also: paul graham is a fucking idiot
22:35:00 <ehird`> he deleted my comment on the 'what would this look like in other languages'
22:35:22 <ehird`> i see probably why - he said 'joke submissions will be deleted'. apparently, because my code was concise and didn't look like a 'regular' language, it was obviously fake!
22:35:37 <SimonRC> respond with evidence to support you
22:35:55 <ehird`> SimonRC: someone asked me what language it was. i responded 'the language of paul graham deleting comments for no reason'. he'll probably see.
22:35:57 <SimonRC> to actually get numbers, you can use 0-9 which are 0-dimensional arrays if 1 number
22:36:26 <ehird`> SimonRC: it was a little language i've been making for a while
22:36:32 <ehird`> and yeah i know with 0-d arrays
22:36:40 <ehird`> http://arclanguage.org/item?id=722
22:36:47 <ehird`> rewriting it quickly, it was this:
22:37:25 <ehird`> #rg"said"[<fm[<ip[x.<a"click here"["you said: "!!x]]<sub]]
22:37:49 <ehird`> which in both his beloved code-tree measurement and characters, is much shorter
22:37:55 <ehird`> and also far more understandable, i think
22:38:43 <ehird`> he's very arrogant, i must say
22:38:49 <ehird`> calling that a 'gag submission'?
22:39:04 <ehird`> because he can't grasp the concept that maybe some languages are 1. very, VERY different and 2. much shorter than his beloved arc
22:39:18 <ehird`> 2, i believe, had a noticable effect... but i'm cynical
22:39:41 <SimonRC> it looks more specialised than arc
22:39:42 <ehird`> oh yes, and mine doesn't fuck up unicode by converting Β£ to GBP, dropping umlauts and accents and other atrocities
22:39:50 <ehird`> SimonRC: hardly. only with the web lib
22:39:56 <ehird`> and incidentally look at the original example
22:39:59 <ehird`> if that's not specialized?!
22:40:15 <ehird`> (aform [w/link (pr "you said: " (arg _ "foo"))
22:40:19 <ehird`> SimonRC: no, it has no spec
22:40:25 <SimonRC> adding a link to that would help convince him
22:40:26 <ehird`> only a 1000 line compiler that basically compiles a toy lisp dialect to scheme.
22:40:40 <ehird`> it's still under development
22:40:50 <ehird`> but fsck him, it is not a joke language
22:41:02 <SimonRC> the "for mine" changes the meaning of the line above so much
22:41:35 <SimonRC> the compiler is supposed to be the spec
22:41:49 <ehird`> SimonRC: you buy into that?
22:42:21 <SimonRC> and I suspect subtle bugs will be quickly outed
22:43:16 <ehird`> you buy into the whole arc crap, then
22:43:37 <SimonRC> I have not seen many problems with it, though I haven't been looking
22:44:09 <ehird`> i would but i'd just be repeating myself and countless others
22:44:21 <ehird`> arc is a toy that took 6 years to make and it's useless for anything but trivial web apps.
22:45:07 <SimonRC> he probably spent most of that time throwing stuff away, to get a good ballence
22:45:18 <ehird`> you really did buy into all the hype
22:45:19 <SimonRC> anyone can make a huge programming language
22:45:41 <SimonRC> OTOH, it isn't actually useful yet
22:46:06 <SimonRC> it is at the same stage of development as, say, Glass is now
22:46:13 <SimonRC> and about the same age, I'd guess
22:46:50 <SimonRC> unless Glass has modules, inwhich case Glass is more advanced
22:47:14 <ehird`> SimonRC: try posting a unicode comment on the arc forum
22:47:20 <ehird`> especially with Β£ or the yen symbol
22:47:26 <SimonRC> I can guess what will happen
22:47:57 <ehird`> i'll bet Β£100000 on it :P
22:48:50 <SimonRC> the point of abstract data types is that you can (e.g.) store strings as some kind of unicode but give them the interface of a linked list of boxed unicode codepoints
22:49:32 <SimonRC> it gets converted to "GBP" or whatever?
22:50:04 <ehird`> SimonRC: yep, and some characters get changed into completely irrelevant ones
22:51:09 <ehird`> you looked in the logs.
22:51:31 <SimonRC> looooooooooooots of scrollback
22:52:32 <ehird`> SimonRC: what would you have guessed not having looked?
22:53:07 <SimonRC> otherwise I would guess they became ?
22:53:22 <ehird`> also, http://reddit.com/r/programming/info/67l5f/comments/c03310l
22:54:28 <ehird`> i'm going to codetree-size up:
22:54:29 <ehird`> #rg"said"[<fm[<ip[x.<a"click here"["you said: "!!x]]<sub]]
22:54:30 <SimonRC> it has arc's main features
22:54:40 <ehird`> SimonRC: NO! it misses fn->lambda
22:55:16 <ehird`> (err, i can count strings as one token right? good)
22:55:22 <ehird`> [...] -> 1 nested -> 3
22:56:52 <SimonRC> do you have an implementation?
22:57:20 <ehird`> SimonRC: Just like all good languages -- no, and if I did I wouldn't have written the web server yet.
22:57:29 <ehird`> by the way, here's a translation of that into english
22:57:31 <ehird`> #rg"said"[<fm[<ip[x.<a"click here"["you said: "!!x]]<sub]]
22:57:48 <ehird`> Register "said", doing:
22:57:52 <ehird`> Display a form with the elements:
22:58:03 <ehird`> An input field, with the action taking 'x':
22:58:12 <ehird`> A link, with the text "click here" leading to:
22:58:18 <ehird`> Concatentate "you said: " with x.
22:58:22 <ehird`> (end link, input field)
22:58:27 <ehird`> (end form, registration)
22:59:04 <ehird`> I might add <ii (reminiscent of html's "ISINDEX") for a form with just a text field, a submit button and optionally a prompt :P
22:59:30 <ehird`> #rg"said"[<ii[x.<a"click here"["you said: "!!x]]]
22:59:40 <SimonRC> put a small spec online and re-try submitting that to PG
23:01:08 <ehird`> SimonRC: it would be incredibly incomplete. it's a many-nuanced language.
23:01:20 <ehird`> especially the parsing. there's no statement delimiters but variadic functions are possibly.
23:05:02 <ehird`> SimonRC: try and work out that one
23:07:08 <ehird`> p eval gets(nil).gsub(",","*")
23:07:42 -!- timotiis has quit ("leaving").
23:12:59 <ehird`> main(_,a){gets(a);...} /* this is evil */
23:21:27 <ehird`> http://www.google.com/translate?u=http%3A%2F%2Fwww.nmt.ne.jp%2F%7Eysas%2Fdiary%2F%3F200705b%23200705161&langpair=ja%7Cen&hl=en&ie=UTF8 Scroll down to the codeGolf Evil c compiler
23:21:31 <ehird`> someone actually wrote a ccompiler for it
23:21:36 <ehird`> non-mangled src:http://www.nmt.ne.jp/~ysas/diary/?200705b#200705161
23:54:09 -!- sebbu has quit ("@+").
00:08:02 * pikhq contemplates making an IRC bot
00:10:28 <RodgerTheGreat> I can link you to a Java lib that could let you finish a BF bot in about half an hour
00:11:11 <pikhq> I'm trying to make one in PEBBLE.
00:11:52 <pikhq> And I'll probably give up soon.
00:12:17 <pikhq> I'll just make a PEBBLE bot, then.
00:12:38 <pikhq> Somehow, I've lost sense of what I want to actually *do*.
00:14:04 <ehird`> pikhq: Write a bot, in PEBBLE, which can interpret PEBBLE via either brainfuck or c.
00:14:44 -!- zbrown has joined.
00:15:22 <pikhq> ehird`: Only if you implement PEBBLE in PEBBLE.
00:15:35 <ehird`> I will! ... just later
00:15:46 <ehird`> pikhq: Actually, yeah. Don't use PSOX or anything, just netcat!
00:15:57 <ehird`> ..wow, that means writing a brainfuck interp in PEBBLE
00:17:28 <ehird`> pikhq: seriously, you want a PEBBLE 2 which does automatic allocation of temporary variables.
00:19:21 <ehird`> http://pc11.2ch.net/test/read.cgi/tech/1173057314/ heh look, my submission is mentioned in the last few posts.
00:19:25 <ehird`> cute, if only i could read japanese
00:28:34 <pikhq> If only I could read *complex* Japanese.
00:29:54 * pikhq begins the PEBBLE 2 stuff
00:30:00 <pikhq> Now that I have time to actually think it over!
00:35:35 <pikhq> I'm thinking one of the things PEBBLE 2 will have is a more useful preprocessing stage.
00:35:55 <RodgerTheGreat> I present new doodles: http://nonlogic.org/dump/images/1202171064-dud1.png, http://nonlogic.org/dump/images/1202171075-dud2.png
00:36:56 <pikhq> Among other things, I'm thinking about axing the add and addvar bit. . .
00:37:28 <pikhq> There will be a += macro, which will act appropriately based upon whether one of its arguments is a variable or a number.
00:39:02 <ehird`> pikhq: omg, you'll have to implement garbage collection of temp vars
00:39:22 <RodgerTheGreat> are you thinking about building some kind of system for configuring a build to target different BF interpreters?
00:39:38 <ehird`> that makes even the c backend non-trivial!
00:39:46 <RodgerTheGreat> Like, the ability to tell the compiler things like wrapping and EOF behavior?
00:40:14 <pikhq> RodgerTheGreat: That's part of *why* I plan on having a better preprocessor.
00:40:36 <pikhq> So, you can do "IF {WRAPPING} {wrapping code} else {non-wrapping code}"
00:40:47 <ehird`> pikhq: shouldn't that be automatic and abstracted away
00:41:03 <pikhq> ehird`: That will be used for implementation of the stdlib macros.
00:41:15 <pikhq> Hopefully, I'll have all that junk abstracted away.
00:41:16 <ehird`> also, why if {wrapping}
00:41:29 <pikhq> The two would be equivalent.
00:42:13 <ehird`> pikhq: could you please write your own parser? :P
00:42:21 <ehird`> writing pebble in tcl syntax is unbearable to say the least
00:42:25 <ehird`> (my vote: s-exp! s-exp!)
00:43:05 <pikhq> Grr. You *have* to say that just as I'm thinking "let's just do proper, full-on Tcl syntax, rather than my abused bits of it".
00:43:48 <RodgerTheGreat> can you make something similar to assert() for debugging?
00:44:11 <RodgerTheGreat> even in a limited form, you could save BF coders a load of sanity
00:44:11 <ehird`> RodgerTheGreat: I can see pikhq is going to have a field day with brainfuck text generation algorithms..
00:44:34 <pikhq> Hmm. There's a thought.
00:44:38 <RodgerTheGreat> I'm looking forward to seeing what he can come up with
00:44:45 <ehird`> pikhq: What? Build text generation in to it? If so, yes.
00:45:00 <pikhq> ehird`: PEBBLE 1 has (limited) text generation already.
00:45:07 <ehird`> Yeah, but not awesome :P
00:45:08 <pikhq> To not have that much would make PEBBLE 2 a *downgrade*.
00:45:13 <ehird`> You should be able to do:
00:45:26 <ehird`> yes -- you must implement arrays!
00:45:36 <RodgerTheGreat> I'd do something like "assert cell = value [error message] " or "assert cells = 'several ascii representations' [error message]"
00:46:16 <RodgerTheGreat> if pikhq and calamari put their heads together I have no doubt the result would be incredible.
00:46:35 <ehird`> pikhq: I venture: PEBBLE2 should be totally self-hosted.
00:46:47 <ehird`> With some kind of crappy, limited tcl interpreter that you can use to compile itself.
00:46:57 <pikhq> In my current syntax, 'assert {$cell == value} "ERROR here"' or some such.
00:47:06 <pikhq> ehird`: Are you fucking insane?
00:47:13 <ehird`> pikhq: Yes. Why shouldn't I be?
00:47:15 <pikhq> I want to actually have an implementation, thanks.
00:47:26 <ehird`> You'd have one. The tcl one.
00:47:31 <ehird`> Which you could use to compile the pebble2 one. :<
00:47:48 <pikhq> If I make PEBBLE2 powerful enough, I *could* manage to do self-hosting.
00:48:03 <ehird`> Exactly! It would evolve around a REAL-WORLD PROBLEM: compiling an esoteric language.
00:48:42 <RodgerTheGreat> on one hand, some of the data structure implementations necessary would probably be excruciating, but on the other hand it would be pretty nifty
00:49:28 <pikhq> RodgerTheGreat: Given sane arrays, one could at least pull it off. ;)
00:49:34 <ehird`> RodgerTheGreat: So give it arrays and structures.
00:49:42 <ehird`> Then you just have to implement a compilation technique for them ;)
00:50:29 <RodgerTheGreat> hm. doing pointers would really suck, but heaps can be done in-place to create a non-pointer based map structure in an array
00:50:37 <ehird`> pikhq: But think how awesome an s-exp syntax would be:
00:52:27 <ehird`> pikhq: Actually, it would be very good for e.g. the macros.
00:52:40 <ehird`> Since macros are just compile-time procedures, a lot of pebble stuff would be trivial
00:52:49 <ehird`> And your preprocessor would be elegant, instead of just dumb replacement.
00:54:18 <pikhq> ehird`: You realise that I don't think functionally, right?
00:54:32 <ehird`> pikhq: s-expression syntax != functional.
00:55:16 <ehird`> pikhq: But macros like that are really elegant. Basically, whenever you see a call to one, in the compiler, you interpret it with the arguments as in the code (well, unevaluated of course). Whatever that returns is used instead of the macro call.
00:55:52 <ehird`> (defmacro thing (...) (if *wrapping* ...return wrapping code... ...return non-wrapping code...))
00:56:04 <pikhq> This is what I'm thinking of ATM: http://pastebin.ca/891941
00:56:24 <pikhq> Sorry for the Tcl syntax; it comes to mind easily.
00:57:09 <ehird`> Well yeah, but that'd be far more elegant with lisp-style macros
00:57:16 <ehird`> Although that is kind of similar
00:57:22 <ehird`> it just exposes some of the internal workings
00:58:02 <pikhq> Of course, that syntax would be a royal PITA to self-host.
00:58:43 <ehird`> The lisp syntax with those macros?
00:58:54 <ehird`> The lisp syntax wouldn't. :P
00:59:12 <ehird`> Since writing an s-expression parser is trivial, and walking one and doing stuff with it too
00:59:35 <pikhq> How would the string substitutions I have work in sexps?
00:59:50 <ehird`> pikhq: I'm not sure exactly what you mean.
01:00:03 <pikhq> "Invalid type for $out in __BRAINFUCK__+=. $out is [TYPE $out]; should be var."
01:00:07 <ehird`> Well, ERROR runs at compile-time right?
01:00:13 <pikhq> $out and [TYPE $out] are both substituted. . .
01:00:19 <ehird`> If so, you'd just make error a normal function, and make it take any arguments
01:00:52 <ehird`> (error "Invlaid type for " out "in brainfuck-+=. " out " is " (type-of out) "; should be var.")
01:00:57 <ehird`> Not the prettiest example, but you get the idea.
01:01:03 <ehird`> You could also implement a formatting langugae.
01:01:17 <ehird`> (format "Invalid type for ~ in brainfuck-+=. ..." a)
01:01:22 <pikhq> You are still not realising one thing. . .
01:01:28 <ehird`> well, maybe something like $~ if ~ is too common
01:01:40 <pikhq> A self-hosting PEBBLE. . .
01:01:48 <pikhq> And you want formatting languages in it. . .
01:01:54 <pikhq> Are you fucking mad?
01:02:09 <ehird`> pikhq: If you have enough high-level stuff in, then it should be ok. But I agree.
01:02:16 <ehird`> so use the regular error form.
01:02:27 <ehird`> And, if you must -- make it compiler-only.
01:03:07 <pikhq> -- evals to -= $out 1 which evals to __-= $out 1. . . Which is done in-compiler.
01:03:26 <ehird`> Like I said: lisp macros.
01:06:03 <ehird`> pikhq: Basically, the compiler is a bunch of functions.
01:06:09 <ehird`> 'defmacro' adds a new function to the compiler.
01:06:14 <ehird`> Whenever that function is seen as being invoked,
01:06:26 <ehird`> the function inside the compiler is called, and then the invokation is replaced with the result of that.
01:06:34 <ehird`> It's very, very simple, and doesn't require any preprocessor.
01:09:04 -!- Sgeo has joined.
01:09:28 <ehird`> pikhq: IMO the compiler would be simpler and more elegant, and so would be the code.
01:09:41 <lament> a poll on a philosophy blog:
01:09:45 <lament> "Will the most common response to this poll be 'No'?"
01:10:09 <ehird`> pikhq: Oh, maybe I should explain HOW you replace the invokation with the result of calling the compiler function (macro)
01:10:17 <ehird`> (defmacro foo () '(+ 2 2))
01:10:23 <ehird`> See? It just returns the code as a list.
01:13:19 -!- olsner has joined.
01:13:24 -!- sarehu has joined.
01:13:39 <olsner> must one join *every* channel? :P
01:14:03 <lament> It's the official one for esolangs.
01:17:02 -!- Corun has quit ("Bleh, Bunnies!").
01:17:19 -!- BMeph has joined.
01:20:54 <sarehu> why did i not join this earlier? :|
01:21:27 <lament> sarehu: are you aware of the esolangs wiki?
01:29:51 -!- calamari has joined.
01:33:29 -!- ehird` has quit (Read error: 113 (No route to host)).
01:37:11 <RodgerTheGreat> calamari: pikhq is working on a new version of Pebble. I encourage you to join forces with him and create something epic.
01:37:23 <pikhq> Mostly discussing planning ATM.
01:37:35 <pikhq> http://pastebin.ca/891941
02:01:08 -!- Sgeo has quit (Read error: 104 (Connection reset by peer)).
02:35:38 -!- olsner has quit ("Leaving").
04:20:12 -!- chuck has quit (Read error: 104 (Connection reset by peer)).
04:21:50 -!- calamari has quit (Read error: 104 (Connection reset by peer)).
04:34:49 -!- oerjan has joined.
04:38:12 -!- calamari has joined.
04:49:03 -!- GreaseMonkey has joined.
04:50:36 <faxathisia> Does anyone have a BF program that prints the prime decomposition of a number?
04:57:08 -!- calamari has quit (calvino.freenode.net irc.freenode.net).
04:57:08 -!- sarehu has quit (calvino.freenode.net irc.freenode.net).
04:57:08 -!- faxathisia has quit (calvino.freenode.net irc.freenode.net).
04:57:09 -!- oklopol has quit (calvino.freenode.net irc.freenode.net).
04:57:09 -!- bsmntbombdood has quit (calvino.freenode.net irc.freenode.net).
04:57:09 -!- AnMaster has quit (calvino.freenode.net irc.freenode.net).
04:57:10 -!- GregorR has quit (calvino.freenode.net irc.freenode.net).
04:59:12 -!- sekhmet has quit (calvino.freenode.net irc.freenode.net).
05:00:48 -!- sekhmet has joined.
05:01:31 -!- oklopol has joined.
05:01:31 -!- calamari has joined.
05:01:31 -!- sarehu has joined.
05:01:31 -!- faxathisia has joined.
05:01:31 -!- bsmntbombdood has joined.
05:01:31 -!- AnMaster has joined.
05:01:31 -!- GregorR has joined.
05:32:57 -!- pikhq has quit ("leaving").
05:55:18 -!- oerjan has quit ("leaving").
05:57:01 -!- calamari has quit (Read error: 104 (Connection reset by peer)).
06:09:45 -!- olsner has joined.
06:18:01 -!- calamari has joined.
06:23:42 -!- calamari_ has joined.
06:23:42 -!- calamari has quit (Read error: 104 (Connection reset by peer)).
06:28:24 -!- calamari_ has quit (Remote closed the connection).
07:39:31 -!- BMeph has quit ("calls it a night").
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:32:02 -!- cherez has quit (calvino.freenode.net irc.freenode.net).
08:32:03 -!- Deewiant has quit (calvino.freenode.net irc.freenode.net).
08:32:58 -!- faxathisia has quit (Remote closed the connection).
08:35:18 -!- sekhmet has quit (Remote closed the connection).
08:35:20 -!- sekhmet has joined.
08:36:41 -!- GreaseMonkey has quit ("Hi Im a qit msg virus. Pls rplce ur old qit msg wit tis 1 & hlp me tk ovr th wrld of IRC. and dlte ur files. thx.").
08:48:20 -!- olsner has quit ("Leaving").
08:51:11 -!- Deewiant has joined.
08:51:20 -!- cherez has joined.
09:56:56 -!- Corun has joined.
11:06:33 -!- sarehu has quit (Remote closed the connection).
11:06:43 -!- sarehu has joined.
11:26:44 -!- danopia has quit (Client Quit).
11:28:17 -!- danopia has joined.
11:48:52 -!- Corun has quit ("This computer has gone to sleep").
12:22:16 -!- sarehu has quit (Remote closed the connection).
12:22:32 -!- sarehu has joined.
12:56:52 -!- sebbu has joined.
13:06:52 -!- helios24 has joined.
14:28:11 -!- jix has joined.
16:12:31 -!- timotiis has joined.
16:27:16 -!- Hiato has joined.
16:33:34 -!- sarehu has quit (Remote closed the connection).
16:33:53 -!- sarehu has joined.
16:46:02 -!- oerjan has joined.
17:02:15 -!- Corun has joined.
17:02:43 -!- Hiato has quit (Read error: 110 (Connection timed out)).
17:07:22 -!- Corun has quit ("This computer has gone to sleep").
17:25:30 -!- Hiato has joined.
17:26:01 <Hiato> Meh... what does Machine Check Exception mean? That's my new BSoD flavour of the week :(
17:44:26 <slereah__> It means that the machine only takes cash.
17:44:53 <Hiato> Well, how do I fix it, I use a cheque account
17:51:03 <oerjan> cheques, how quaint. you must be american ;)
17:52:25 <oerjan> saw an article about the SA power shortage in the Economist in the library today, btw
17:52:40 <Hiato> I guess South Africa is in Mexico anyhow ;)
17:52:49 <Hiato> Really, what did it say?
17:52:58 <slereah__> Well, there's still plenty of cheques in France too!
17:53:43 <oerjan> that it's a mess caused by politicians not deciding to fix it in time, was my impression
17:54:15 <oerjan> or rather spending too much time discussing how much to privatize
17:54:50 <Hiato> well, then I guess the partial truth is escaping ;)
17:55:29 <Hiato> but it's got more to do with cheques under the table than handshakes above it (if you get my meaning :P )
17:57:46 <oerjan> oh and it was suggested it might reduce economic growth from 6 to 3 percent
17:58:14 <Hiato> I didn't even know that one
17:59:29 -!- ais523 has joined.
17:59:42 <Hiato> but yes, they shut down all of the mines in SA for about 6 weeks. Our economy is a raw materials/minerals economy. Currently, every time someone flips the switch to cut Sandton (a wealthy business suburb), SA loses in the tens of millions per hour...
18:00:11 <Hiato> that is excluding the fact that we make a vast majority of the GDP of Gold mining, which is currently not really hapenning
18:00:48 <oerjan> yeah the article mentioned the shutdown too
18:01:10 <oerjan> and that the mines managed to get a promise of reliable power out of it
18:01:26 <Hiato> yeah, they did, a 90% increase
18:02:37 <ais523> 90% of 0 is still 0...
18:03:14 <Hiato> very very true, that's the irony :P
18:04:23 <Hiato> but, that is of course, only true if you are cynical - like asi523 and I :P
18:04:34 -!- RedDak has joined.
18:13:55 <ais523> Hiato: according to Wikipedia, a Machine Check Exception is really bad
18:14:12 <ais523> it seems to mean that something went badly wrong with the hardware
18:14:18 <ais523> i.e. checksum failure on RAM or cache
18:14:28 <ais523> and it apparently is often caused by overheating
18:14:36 <ais523> at least, you have to hope that's what's causing it
18:15:40 <Hiato> yeah, I was originally under the impression that this is what occurs when I use my X86_64 cpu heavily (really heavily, been brute forcing my own encryption methods, and breadth searching conway's game of life for methuselahs) in 32bit mode.
18:16:25 <ais523> you could always try filling the computer with liquid nitrogen
18:16:35 <ais523> ISTR that method was used to set an overclocking record at one time
18:16:55 <Hiato> yes, while that would be fun, it would most certainly burn through both my tower and my pockets :P
18:17:15 <Hiato> yeah, something stupendous like 6Ghz of a Pentuim 4
18:17:28 <ais523> the computer still managed to overheat eventually even though the outside was frozen. They only just had enough time to take a photo of the screen showing the fast clock speed before the computer turned itself off for heat reasons
18:23:15 -!- AnMaster has changed nick to AnMaster_.
18:23:21 -!- AnMaster_ has changed nick to AnMaster1.
18:24:01 -!- AnMaster1 has changed nick to AnMaster.
18:28:25 -!- sarehu has quit (Remote closed the connection).
18:28:35 -!- sarehu has joined.
18:41:26 -!- RedDak has quit (Remote closed the connection).
18:42:19 <ais523> in reference to the topic:
18:42:38 <ais523> lament: wow, that was unexpected
18:44:53 <oerjan> a bit before my estimate, that
18:45:53 <ais523> besides, I didn't even finish writing the line that is actually needed to make that into an infinite loop
18:46:16 -!- ais523 has left (?).
18:46:19 -!- ais523 has joined.
18:48:32 * ais523 thinks that all langs should have some easy way to implement multithreading and backtracking
18:48:45 <ais523> because they can be hard to implement if the language doesn't give specific features that allow it
18:48:58 <ais523> call/cc is normally enough to write an implementation, though
18:49:46 <oerjan> call/cc + mutable state gives you all monads
18:50:33 <ais523> it strikes me as being more of an antimonad
18:50:42 <ais523> because monads cause things to happen in order
18:50:50 <ais523> and threading causes things to happen in an apparently random order
18:50:51 <oerjan> backtracking certainly is
18:51:50 <oerjan> cooperative threading can probably be put in a monad
18:52:33 <ais523> one thing I like about INTERCAL's threading model is the way that it's cooperative threading allows guarantees on the relative speed of threads
18:52:41 <ais523> which can be used for logic on occasion
18:52:47 <ais523> e.g. the C-INTERCAL Hello, World on the wiki
18:53:38 <ais523> OTOH, the model is completely impractical for serious langs as far as I can tell
18:53:48 <ais523> the backtracking model, on the other hand, is quite elegant while still being unusual
19:49:39 -!- oerjan has quit ("Good night").
20:11:26 -!- ehird` has joined.
20:18:21 -!- ehird` has set topic: OLD TOPIC IS GONE.
20:18:53 -!- fax has joined.
20:19:15 <fax> Anyone know anything about ABSYS?
20:20:54 <ehird`> fax: i have a question -- are you the same fax as faxastheisdfsdkf or however you spell it or are there two confusingly-similarly-named people in here
20:20:59 <fax> the first logic programming language, appanetly
20:21:29 <fax> yeah, It's me
20:22:17 <ehird`> fax: hmm, i didn't know you were UK. :p
20:22:32 <ehird`> fax: http://en.wikipedia.org/wiki/ABSYS well, one publication
20:22:35 <ehird`> i hope you have fun tracking it down
20:23:02 -!- ais523 has quit (Remote closed the connection).
20:23:47 <ehird`> there is a suprisingly large number of british folk in here
20:24:07 <fax> must be something in the water..
20:24:42 <fax> I tried to add mutable conses to haskell but failed :/
20:25:15 -!- ais523 has joined.
20:25:48 <ais523> it seemed as though the window manager went crazy; no window frames were available, just the client areas of the windows, which acted as normal
20:26:46 <ehird`> ais523: your WM crashed
20:26:51 <ehird`> morale: always keep an xterm open
20:27:09 <ais523> but logout/login solved it
20:27:50 <ais523> ehird`: was it you who added the latest anarchy golf challenges?
20:27:52 <ehird`> use twm, that never crashes :-)
20:28:08 <ais523> two versions of multiply
20:28:12 <ehird`> (speaking of which, it seems the japanese userbase of anarchy golf call it anagolf, which is far easier to type)
20:28:14 <ais523> and a simple program interpreter
20:28:19 <ehird`> i did the simple program one
20:28:25 <ehird`> which is of course not simple at all :-)
20:28:39 <ais523> well, I have a /genuine/ entry for it
20:28:49 <ehird`> ais523: show the code? that's pretty cool :D
20:28:53 <ais523> although it doesn't nest parens more than 2 deep in all circumstances
20:29:13 <ehird`> ais523: my "Multiply" entry is clever
20:29:24 <ehird`> p eval gets(nil).gsub(",","*")
20:29:35 <ais523> http://pastebin.ca/892988
20:29:38 <ehird`> $<.map{|x|p eval x.gsub(",","*")}
20:29:45 * fax is forbidden .. http://www.absysinfo.com/
20:29:51 <ehird`> ais523: wow, it compiles.
20:30:06 <ehird`> ais523: it doesn't actually do any parsing stuff though, does it?
20:30:06 <ais523> more a s/// to change the code into Perl
20:30:11 <ehird`> just transforms the non-perl bits into perl
20:30:15 <ais523> it doesn't nest parens more than 1 level deep either
20:30:37 <ais523> I could actually write a shorter version that did, but only if they upgraded Perl to 5.010
20:30:45 <ais523> which I don't think has been released yet
20:30:53 <ehird`> ais523: the thing about yours is that it isn't as conceptually elegant
20:31:02 <ehird`> well, it isn't implemented as one
20:31:04 <ehird`> but it's called as one
20:31:09 <ehird`> since {...} is a lambda
20:31:16 <ais523> I thought you might be doing that
20:31:24 <ais523> but if is your only combinator, so I optimised for that
20:31:42 <ais523> there are some shortcomings as well; you can't call a variable i or f, for instance, because those letters are part of the word if
20:31:51 <ais523> and the lexer doesn't distinguish word boundaries in keywords
20:31:58 <ehird`> the cool thing about mine is that it's... pretty hard to parse properly
20:32:07 <ehird`> that's either two lambdas, or a call to a lambda
20:32:15 <ehird`> (note: \n is not a seperator)
20:32:19 <ehird`> ack 3 4 fact 4 would work.
20:32:48 <ais523> \n in my compiler means "print the result of evaling the next expression unless it's a subroutine definition"
20:33:00 <ais523> I look for a : on a line to see whether to print or not
20:33:01 <ehird`> you know the evil c compiler entry?
20:33:18 <ais523> I have it up at the moment
20:33:29 <ehird`> ais523: yeah, well i underestimated those japanese
20:33:33 <ehird`> http://www.nmt.ne.jp/~ysas/diary/?200705b#200705161 someone made a real compiler for it.
20:33:35 <ehird`> compiles to postscript.
20:33:46 <ehird`> http://www.google.com/translate?u=http%3A%2F%2Fwww.nmt.ne.jp%2F%7Eysas%2Fdiary%2F%3F200705b%23200705161&langpair=ja%7Cen&hl=en&ie=UTF8 translated page, but the source is messed up
20:34:03 <ehird`> 'Evil C Compiler to the ANAGORU finally written in PostScript. γ¨γγγγηγγγδ»₯εγ«εδ½γγγγγγεγζ₯γγγ€γγͺεγγγηγ§γ³γγγγ Shorten work in the meantime before that, without a moment to raw binary also committed. γγγγγ§γγγγ©γγγγγ€γ³γγγͺγγ«γ‘γγγ¨γ³γ³γγ€γ«γγγ So very big, but this one, and the pseudo-respectable compilation.
20:34:03 <ehird`> γγ¨γγ°FizzBuzzγͺγγγγ For example if I FizzBuzz.'
20:34:15 <ehird`> those japanese chars weren't in my browser.
20:34:19 <ais523> is that the same person who submitted a genuine entry for the Underload compiler in PostScript?
20:34:33 <ehird`> ais523: not sure. ysas is the url name
20:34:37 <ais523> and ehird`, it's worse over here, I ended up with a paste full of mojibake
20:35:05 <ais523> the Underload entry was by yshl, not ySas
20:35:11 <ais523> but it's possible that they're the same person
20:35:34 <ehird`> ais523: there's such a language gap on anagolf, especially with the ruby focus and ruby being the biggest in japan :-)
20:36:05 <ais523> Ruby vs. Perl is probably the biggest language war in golfing
20:36:18 <ehird`> ais523: ruby's quite a newcomer to golfing though
20:36:21 <ehird`> but it's *great* at it
20:36:36 <ais523> both Ruby and Perl are pretty good
20:36:44 <ais523> and which one wins tends to depend on the details of the problem
20:36:50 <ais523> that war is interesting because it's so close
20:37:36 <ais523> ehird`: does Haskell have an eval?
20:37:44 <ehird`> ais523: no, it's a static, compiled language
20:37:48 <ehird`> even Hugs doesn't have one
20:37:49 <ais523> a 'simple language' to Haskell 'compiler' might work better than compiling into Perl
20:37:53 <ais523> because the syntax is more similar
20:38:06 <ehird`> ais523: You could call out to ghc. :-) Unless exec is denied
20:38:12 <ais523> but as you denied exec I can't even call out
20:38:37 <ais523> exec is usually denied, as it's the default
20:38:40 <ehird`> but yeah, despite haskell's dynamic 'feel', it's very very static
20:38:54 <ais523> although exec can be useful when testing
20:39:19 <ais523> while testing that simple language compiler I used recursive calls to perl rather than eval so that error messages came up on stderr
20:40:17 <ehird`> ais523: it's funny, anagolf's architechture at fisrt appears simple
20:40:21 <ehird`> but if you look at the code it's crazy
20:40:26 <ehird`> all the sandboxing tricks and all that
20:40:39 <ais523> I was writing a message about how the sandboxing must be difficult but you beat me to it
20:41:17 <ais523> pity that anagolf doesn't allow 1-byte palindromic quines
20:41:28 <ais523> because <newline> is a palindromic quine in GolfScript
20:41:32 <ehird`> ais523: http://pc11.2ch.net/test/read.cgi/tech/1173057314/ yours and mine challenges are mentioned near the end :-P
20:41:46 <ehird`> all the rest is completely unintelligable, of course.
20:41:56 <ehird`> but if you scroll down to 141 it's there
20:42:29 <ais523> I can't figure the page
20:42:37 <ais523> the links are all mailto: aimed at invalid addresses
20:42:49 <ehird`> ais523: oh, that's random wacky 2channel stuff
20:42:53 <ehird`> it stops the thread being bumped.
20:42:53 <ais523> and there seems to be no content other than the challenge names
20:43:02 <ehird`> not on that post, it appears
20:43:10 <ehird`> [all this knowledge re: 2ch is probably useless since i know no japanese]
20:43:19 <ehird`> [but i know it's the largest bbs in the world, with over 2million visitors a day]
20:44:40 <ehird`> ais523: sometimes in that thread you can work out posts from the ones following it
20:44:51 <ehird`> like, someone mentiones goruby in 122, and then what follows appears to be an implementation of it
20:45:01 <ais523> a golfing version of Ruby?
20:45:22 <ais523> I'm not surprised that that has a built-in uudecode, because it must be useful for compressing code into binary
20:45:35 <ais523> (actually, uuencode is more commonly useful for that)
20:45:50 <ehird`> ais523: yes, its included in ruby 1.9
20:45:54 <ehird`> for No Apparent Reason (TM)
20:46:13 <ehird`> 'make golf' is the best command-line invokation ever, though
20:46:22 <ais523> that cheat BF entry for the uudecode still has me amused
20:46:29 <ais523> I'm sure a genuine entry would be shorter
20:46:38 <ais523> but a BoolFuck entry would be shorter still
20:48:46 <ehird`> ais523: http://en.wikipedia.org/wiki/2ch with wikipedia articles like this, who needs knowledge of japanese?
20:49:01 <ehird`> still not any closer to reading that anagolf thread though :P
20:50:38 <ais523> hmm... I wonder how easy it is to do bitwise BF arithmetic?
20:52:54 <ais523> it would probably be easiest to split the number into bits first
20:53:12 <ais523> for that you just need a divide/modulo instruction
20:53:25 <ehird`> I wonder whether, if I find a K interpreter, I could convince shinh to add it to anagolf?
20:53:44 <ehird`> http://golf.shinh.org/langs.html there seems to be one or two propeitery interps there, so it should be ok
20:54:05 <ais523> why not write your own non-proprietary reimplementation?
20:54:12 <ehird`> ais523: it's too comprehensive, K.
20:54:16 <ehird`> also, because anagolf considers speed too.
20:54:22 <ehird`> K is incredibly fast on tons of stuff
20:54:23 <ehird`> and the interp si tiny
20:54:27 <ehird`> (fits in lvl1 cache of cpu)
20:54:51 <ais523> that's why reimplementing it shouldn't be too difficult
20:55:00 <ais523> the new version probably wouldn't be as high-quality
20:55:09 <ais523> but hopefully wouldn't take very long to write
20:55:35 <ehird`> ais523: the library is comprehensive
20:55:46 <ais523> and that's proprietary too?
20:55:51 <ais523> that could be a problem
20:56:05 <ehird`> they offered a free K3 interpreter before, it was just one binary
20:56:14 <ehird`> i can find it with google, but yeah
20:56:17 <ehird`> you have the binary, that's it
20:56:25 <ais523> what license is it under
20:56:34 <ais523> if it's public domain, it might be possible to decompile it
20:56:44 <ehird`> ais523: 'all rights reserved' kind of thing
20:56:44 <ais523> especially if you have the same code for multiple OSs
20:57:19 <ehird`> if k was easier to googlle. :|
20:59:25 <ais523> wow, searching via Wikipedia I found a page elsewhere called "K for Joy Programmers"
20:59:40 <ehird`> no stinkin' loops, that's the best k site
20:59:45 <ehird`> http://www.nsl.com/k/bf.k they have a bf interp and a ->c compiler
20:59:51 <ehird`> c:{`bf.out.c 0:"char m[9999];char*p=m;int main(){",(,/@[256#"";_ic"<>+-.,[]"
20:59:52 <ehird`> :;("--p;";"++p;";"++*p;";"--*p;";"putchar(*p);";"*p=getchar();";"while(*p){"
20:59:52 <ehird`> "}")]_ic x), "}"; `4:"gcc -o bf.out -O3 -w bf.out.c"; `3: "rm -f bf.out.c";}
21:00:33 <ais523> they're working on an Unlambda implementation as well
21:00:43 <ais523> so they certainly seem esolang-aware over there
21:00:46 <ehird`> ais523: http://www.nsl.com/k/befreak.k <-- Befreak in K, *with a gui*... certainly a new implementation would be hel
21:01:04 <ehird`> http://www.nsl.com/papers/befreak.htm take a look at how comprehensive the gui is
21:01:58 <ais523> a gui isn't very useful for golfing, generally speaking
21:02:09 <ehird`> but i wouldn't want to impact on MY k experience
21:03:42 <ehird`> is cat in unlambda even possible?
21:03:50 <ehird`> without a huge switch table for every 255 char
21:04:19 <ais523> you can use the | command
21:04:28 <ais523> sorry, combinator-like action-like object
21:06:02 -!- jix has quit ("CommandQ").
21:06:47 <ais523> that K implementation of Unlambda looks excessively long
21:07:02 <ais523> I may have to get on with writing my Underload/Unlambda/Brainfuck hybrid lang
21:07:31 <ais523> which Unlambda can be trivially compiled into
21:07:45 <ais523> and yet which can be interpreted simply as well
21:08:12 <ais523> then combining an Unlambda->Underlambda compiler and an Underlambda interp would give an Unlambda interp
21:08:13 <ehird`> ais523: want to help me find a k interp for linux? :P
21:09:29 <ais523> it was on nsl, but the link seems to be broken
21:09:32 <ais523> that is, the link from Wikipedia to it
21:09:44 <ais523> is Wayback working for you? It wasn't for me earlier
21:09:58 <ehird`> aha, wayback! good idea
21:10:30 <ais523> sufficiently slow that my browser timed out when I tried
21:10:58 <ehird`> so i'm telling it to go fish for kx.com
21:12:40 -!- helios24 has quit ("Leaving").
21:12:48 <ehird`> http://www.nsl.com/misc/k/
21:14:57 -!- GreaseMonkey has joined.
21:15:58 <ais523> incidentally, do you think that $/=$] is an abusive way to switch Perl into slurp mode?
21:16:16 <ais523> it's a golfing trick I use myself; set the newline separator to the Perl version string
21:16:21 <ais523> which is unlikely to be anywhere in the input
21:20:28 -!- ais523 has quit (Remote closed the connection).
21:22:46 -!- ais523 has joined.
21:23:06 * ais523 's window manager crashed again
21:23:31 <ehird`> (also, that's SCARY ambiguity with a /= b)
21:24:14 <ais523> not equals is != in Perl
21:24:24 <fax> doesn't it stringify 0 ?
21:24:34 <ais523> and not really, because a lone $ always gobbles up the next character at least
21:24:40 <ehird`> no golf challenges have 0 in the info iirc
21:24:42 <ais523> and yes, 0 is stringified
21:24:47 <ehird`> stringified as its char
21:25:02 <ehird`> http://web.archive.org/web/*/http://www.kx.com/download/download.htm <-- ais523: archives, but inaccessable
21:25:30 <ais523> I suppose there's probably a special variable that's undef by default, but I can't be bothered to find out which one when $] works almost as well for this purpose
21:25:59 <ais523> and ehird`: I'm the sort of person who's idealistic enough to avoid using a language if it doesn't have an open-source implementation I can mess around with
21:26:09 <ais523> although not exclusively
21:26:14 <ehird`> ais523: you owe it to yourself to try k :)
21:26:24 <ais523> but enough to not download closed-source interps for languages like K
21:26:25 <ehird`> i think kx systems have every right to keep it under wraps
21:26:28 <ehird`> it's like a secret weapon
21:26:47 <ais523> if it's really that good, someone should reimplement it
21:26:57 <ais523> sort of like the dmd/gdc thing
21:27:04 <fax> Why's k so good?
21:27:11 <fax> I couldn't really see why..
21:27:25 <ais523> it reminds me a lot of the things I like to look for in a language
21:27:28 <ehird`> ais523: gdc is not a reimplementaiton!
21:27:32 <ehird`> it shares the open source backend with dmd.
21:27:33 <ais523> although I don't like it as much as ehird`, I think
21:27:39 <ehird`> it just layers it on top of gcc.
21:27:49 <ehird`> fax: that and extreme conciseness and *speed*
21:27:51 <ais523> gcc is the backend, I think
21:27:54 <fax> I like J a lot.. I couldn't get into K
21:27:55 <ehird`> it outperforms c in a lot of cases
21:27:59 <ehird`> ais523: it uses the dmd backend.
21:28:13 <ais523> I think we're arguing over which end is the backend and which end is the frontend
21:28:17 <ehird`> fax: k is like j, but taken to the logical extreme and then whipped around until it was just that bit faster and shorter
21:28:25 <ehird`> ais523: it uses the 'guts' of dmd.
21:28:37 <ehird`> the only reason dmd isn't open is that the frontend has code by other people.
21:30:09 <ehird`> Y:{{x[{x[x]y}[y]]z}[x][{x[{x[x]y}[y]]z}[x]]y}
21:30:25 <ais523> it looks better in most syntaxes
21:30:31 <ehird`> it utilizes the fact that by default 'x,y,z' are your first arguments
21:30:35 <ehird`> you don't need to name them
21:30:47 <ais523> yes, but other langs do that as well
21:30:49 <ehird`> since most k functions take 3 or less arguments, that's probably good
21:30:54 <ais523> Mathematica uses #1, #2, #3 for instance
21:31:01 <ais523> and the pattern doesn't end there
21:31:06 <fax> longer than arc :P?
21:31:15 <ais523> on the other hand, Mathematica is even worse for excessive brackets
21:31:19 <ehird`> arc is like java compared to k!
21:31:32 <ais523> so what is Java like compared to K?
21:31:53 <lament> this K sounds like a piece of proprietary junk.
21:32:06 <ehird`> lament: proprietary, but not junk.
21:32:29 * ais523 still thinks that with enough effort it would be possible to come up with something even smaller and faster
21:32:41 <fax> (fn (m) ([_ _] (fn (y) (m [(y y) _]))))
21:32:41 -!- Tritonio_ has joined.
21:32:51 <ehird`> fax: sure, but that is in a different style
21:32:55 <ehird`> you do [_ _] and call that
21:32:57 <ehird`> you could do that in k too.
21:33:01 <ehird`> lament: http://www.kuro5hin.org/story/2002/11/14/22741/791
21:33:07 <lament> ais523: probably in forth.
21:33:12 <ehird`> ais523: k is tried and tested, though.
21:33:17 <ehird`> lament: forth is not short
21:33:24 <ehird`> ais523: KDB is used by tons of banks and governments and shiz
21:33:25 <ais523> either that or you've just fallen for their advertising
21:33:27 <ehird`> and just plain K is too
21:33:29 <fax> so it's that long for.. readability? :D
21:33:42 <ehird`> ais523: naw, kx don't acknowledge k any more
21:34:03 -!- RedDak has joined.
21:34:03 <ehird`> kx just updated their home page :|
21:34:46 <ais523> what, during this conversation?
21:36:06 * ais523 was wondering for a moment if they were monitoring #esoteric so that they could alter their website to fit the conversations
21:36:53 <ehird`> kx-if you're reading me, put up a free k3 trial. thanks
21:37:21 <ehird`> ais523: it seems, though, that concatentative languages might be the wrong way for conciseness...
21:37:28 <ehird`> i feel ninjacode2 is needed! :P
21:37:40 <ais523> what makes you think that?
21:37:46 <ais523> K is quite concatenative-like
21:37:49 <ais523> just with infix notation
21:37:56 <ehird`> well, you know what i meant
21:38:11 <ehird`> ais523: not strictly, though... because of the monadic/dyadic stuff
21:38:31 <ehird`> which seems like a really good way to pack code into small boxes
21:38:38 <ais523> the infixness is a way to use two functions on each character
21:38:58 <ais523> OTOH it makes it considerably harder to create virtual temporary variables
21:39:19 <ehird`> ais523: personally i think three would be cool
21:39:27 <ehird`> but that's basically impossible
21:39:31 <ais523> that would be ambiguous
21:39:35 <ehird`> since a!b is either a postfix, then b
21:39:54 <ehird`> i can handle only two options, but three?! no way ;)
21:40:05 <ais523> !a! would be just as bad
21:40:48 <ehird`> though infix, in itself, is ambiguious
21:41:55 <ais523> K enforces right-to-left evaluation for some reason
21:42:02 <ais523> left-to-right is more natural, I would have thought
21:42:05 <ehird`> because that's the most useful, ais523
21:42:09 <ehird`> it reduces parens in more cases
21:42:22 <ehird`> unintuitive, but they have years of practice with that kind of stuff :P
21:44:25 -!- slereah__ has quit (Read error: 104 (Connection reset by peer)).
21:52:57 -!- Hiato has quit (Read error: 110 (Connection timed out)).
22:01:41 -!- Tritonio_ has quit (Remote closed the connection).
22:03:12 -!- slereah__ has joined.
22:21:08 -!- ais523 has quit ("bye").
22:49:46 -!- RedDak has quit (Remote closed the connection).
22:54:26 -!- olsner has joined.
22:58:49 -!- Corun has joined.
23:00:30 -!- timotiis_ has joined.
23:07:52 -!- timotiis_ has quit ("leaving").
23:15:27 -!- pikhq has joined.
23:21:15 -!- Geekthras has joined.
23:27:03 <ehird`> pikhq: any thoughts re: pebble2?
23:27:35 <pikhq> Geekthras: From #xkcd, I see. ;)
23:28:38 -!- timotiis has quit (Read error: 110 (Connection timed out)).
23:35:13 <pikhq> Geekthras: So, what brings you here?
23:35:30 -!- Geekthras has changed nick to Geekthras|Dinnar.
23:42:58 -!- Geekthras|Dinnar has changed nick to Geekthras.
23:46:38 <Geekthras> finally got around to making a bf compiler
23:47:18 <pikhq> I'm finally getting around to revising PEBBLE.
23:47:36 <pikhq> ehird`: BTW, I'm thinking of implementing PEBBLE2 in Plof.
23:47:56 <ehird`> pikhq: :( but .. self-hosting lisp syntax!
23:48:29 <pikhq> I never said what syntax I'd use.
23:48:37 <pikhq> Remember: Plof has a runtime-modifiable syntax.
23:51:17 <ehird`> okay, yeah, but .. macros
23:55:20 <ehird`> http://web.archive.org/web/20041014021225/http://kx.com/cgi-bin/getSoftware_new.pl?klin.zip=y i hope this works :)
23:56:21 <pikhq> ehird`: Plof can have *everything* replaced at runtime.
23:56:42 <ehird`> i want a self-hosted, lisp-syntax pebble! :P
23:56:46 <ehird`> maybe i should make it. heh
23:57:01 <pikhq> Well, everything except for the PSL semantics, which are about as hard to replace as the machine code on a traditional CPU. . .
23:57:11 <pikhq> And I've yet to rule out sexp syntax.
23:58:27 <ehird`> pikhq: OK, but self-hosting
00:00:17 <ehird`> http://web.archive.org/web/*/http://kx.com/cgi-bin/getSoftware_new.pl?klin.zip=y damnit, none ofthem want to work
00:04:26 -!- olsner has quit ("Leaving").
00:12:35 <ehird`> speaking of which i really ought to get elliotthird.org up
00:12:48 <ehird`> eh, as soon as i settle on a programming language and get Nodist written...
00:26:09 <ehird`> does cpressey ever come by here?
00:31:28 -!- slereah__ has quit (calvino.freenode.net irc.freenode.net).
00:31:28 -!- sarehu has quit (calvino.freenode.net irc.freenode.net).
00:32:33 -!- slereah__ has joined.
00:32:33 -!- sarehu has joined.
00:32:34 -!- sebbu has quit ("@+").
00:43:42 <ehird`> what's his nick when he does, then?
00:53:21 -!- ehird` has quit ("K-Lined by peer").
01:21:36 -!- calamari has joined.
01:29:24 -!- Corun has quit ("This computer has gone to sleep").
01:56:39 <Geekthras> http://rafb.net/p/Ir9XSN95.html finally!
01:57:54 <pikhq> You say 'finally'?
01:58:26 <pikhq> Ah, an interpreter.
01:58:33 <pikhq> Only slightly harder than a compiler.
01:59:21 <Geekthras> mostly just getting loops to work recursively
02:09:27 <Geekthras> yeah much better than keeping track of depth
02:18:27 -!- GreaseMonkey has changed nick to yeknoMesaerG.
02:22:59 -!- yeknoMesaerG has changed nick to GreaseMonkey.
02:24:03 -!- calamari has quit ("Leaving").
02:24:46 -!- danopia`school has joined.
02:29:38 -!- danopia has quit (Nick collision from services.).
02:38:27 -!- immibis has joined.
02:47:05 -!- danopia`school has changed nick to danopia.
03:12:34 <GregorR> http://www.codu.org/pics/displayimage.php?album=4&pos=0 // how to choose a democratic candidate
03:18:18 -!- immibis has quit ("Hi Im a qit msg virus. Pls rplce ur old qit msg wit tis 1 & hlp me tk ovr th wrld of IRC. and dlte ur files. and email ths to).
03:18:45 -!- calamari has joined.
03:37:11 <pikhq> Hey, calamari. I plan to pick your brains for PEBBLE 2 when I code it a bit further.
03:37:32 <pikhq> Not quite yet, though.
03:37:40 <pikhq> Still got some stuff to do for my calc class. . .
06:03:43 -!- calamari has quit ("Leaving").
06:10:00 <Geekthras> Hey wait calamari was the BASIC2BF guy right?
06:18:47 <RodgerTheGreat> this is what is great about the internet: Not only can you meet your heroes, you can find out that the dude you've been chatting with for a couple days IS one of your heroes
06:31:41 -!- immibis has joined.
06:32:41 -!- immibis has set topic: THIS IS THE TOPIC.
06:35:06 -!- sarehu has quit (Remote closed the connection).
06:35:17 -!- sarehu has joined.
06:37:54 -!- Geekthras has quit ("Leaving").
06:54:27 <immibis> that is not well-formed xml on many clients.
06:54:43 <immibis> for example, ones that say (bsmntbombdood) or bsmntbombdood:
06:57:49 <immibis> (bsmntbombdood) </bsmntbombdood> is not well-formed xml.
06:58:01 <immibis> nor is bsmntbombdood: </bsmntbombdood>
06:58:01 <oklopol> immibis: get a real client
06:58:07 <oklopol> <bsmntbombdood> </bsmntbombdood>
06:58:46 <immibis> oklopol: how do you know what client i have?
06:59:03 <oklopol> you have a client that shows (nick) for privmsgs
06:59:24 <immibis> i think xchat shows nick | message
07:00:01 <oklopol> yep yep, i just seem to have missed a few of your lines
07:04:47 <immibis> </immibis> </oklopol> </oklopol> </immibis> </immibis> </immibis> </oklopol> </immibis> </oklopol> <text> Just closing some xml tags that weren't closed. </text>
07:04:47 * immibis starts netbeans (no this doesn't need a closing tag)
07:04:47 <oklopol> you already did it, didn't you?
07:05:20 <immibis> not yet, no </immibis> </oklopol>
07:09:37 -!- olsner has joined.
07:24:01 <oklopol> is "-->" the end of an html comment?
07:24:22 <oklopol> (n=salparot@cust.fiber-lan.vnet.lk.85.194.50.194.stunet.se). <<< weh have a problem
07:24:37 <oklopol> sorry, konversation fails at copypaste
07:24:42 <immibis> </immibis> </oklopol> </oklopol> </oklopol> </immibis> </immibis> </oklopol>
07:24:43 <oklopol> [09:13] --> olsner has joined this channel
07:25:14 <oklopol> anyways, i think i need to get going now, you keep up the good work! ->
07:25:54 <olsner> what was all the fuzz about?
07:26:19 <olsner> well, <!-- back at you
07:26:28 -!- XMLCloser has joined.
07:26:50 <immibis> olsner: interpreting irc client output as xml </immibis> </olsner> </immibis> </olsner> </oklopol> </immibis> </immibis> </oklopol>
07:27:24 -!- XMLCloser has quit (Read error: 104 (Connection reset by peer)).
07:28:37 -!- XMLCloser has joined.
07:28:57 <olsner> immibis: but why? it's *not* xml and shouldn't be parsed as it
07:29:08 -!- XMLCloser has quit (Read error: 104 (Connection reset by peer)).
07:29:21 -!- immibis has changed nick to immibis[A].
07:29:53 <immibis[A]> bbt (be back tomorrow) tiimtza (that is in my time zone anyway)
07:29:53 -!- immibis[A] has changed nick to immibis.
07:30:00 -!- immibis has quit ("Hi Im a qit msg virus. Pls rplce ur old qit msg wit tis 1 & hlp me tk ovr th wrld of IRC. and dlte ur files. and email ths to).
07:52:57 -!- cmeme has quit ("Client terminated by server").
07:55:04 -!- cmeme has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:18:03 -!- jix has joined.
08:31:18 -!- jix has quit ("This computer has gone to sleep").
08:33:16 -!- GreaseMonkey has quit ("Hi Im a qit msg virus. Pls rplce ur old qit msg wit tis 1 & hlp me tk ovr th wrld of IRC. and dlte ur files. thx.").
08:45:50 -!- sarehu has quit (Remote closed the connection).
08:45:59 -!- sarehu has joined.
08:52:58 -!- olsner has quit ("-> work").
09:41:39 -!- slereah__ has quit (Read error: 104 (Connection reset by peer)).
09:41:49 -!- slereah__ has joined.
10:08:31 -!- sarehu has quit (Remote closed the connection).
10:08:41 -!- sarehu has joined.
10:26:52 -!- Tritonio_ has joined.
10:45:03 -!- jix has joined.
10:45:51 -!- puzzlet_ has joined.
10:46:38 -!- puzzlet has quit (Remote closed the connection).
10:58:02 -!- Corun has joined.
11:33:46 -!- Figs has joined.
11:34:48 -!- Tritonio_ has quit (Remote closed the connection).
11:36:10 <Figs> I just wrote a silly little text adventure with absolutlely horrible style in Python :)
11:36:18 <Figs> ...but it works!
11:36:36 <Figs> It has about six poorly described rooms
11:36:54 <Figs> It involves lightbulbs, pointless stairs, and vague scents of onions
11:37:58 <Figs> and, of course, I've managed to do everything by way of global variables :D
11:38:17 <Figs> well... not everything
11:38:22 <Figs> but more than half :)
11:52:42 <Figs> You're welcome to give it a try if you want
11:52:44 <Figs> http://rafb.net/p/AWjKgu50.html
11:52:48 <Figs> let me know if you find any bugs :)
11:54:41 <slereah__> Are there actions apart from go somewhereN
11:56:21 <Figs> hehe, I forgot to put in a help
11:56:33 <Figs> try playing with the lights
11:56:42 <Figs> in the dark hall way
11:57:05 <Figs> "turn on the lights"
11:57:13 <Figs> (or just about any variation of that)
11:58:00 <Figs> type 'look' and it'll give you the description again.
11:58:05 <Figs> like I said, it's pretty minimal
11:59:06 <Figs> did you figure out how to get outside?
11:59:38 <Figs> There isn't really a goal in this, but I guess that's as close to a goal as there is
11:59:56 <slereah__> Well, without an action list, it's hard to know what to do.
12:00:08 <Figs> I take it you haven't played H2G2 :)
12:00:44 <slereah__> I've tried to play "Nine Princes in Amber"
12:00:52 <Figs> I'll remember to add better hints when I write the next silly version
12:00:52 <slereah__> It has like three pages full of actions
12:01:44 <slereah__> http://zelazny.corrupt.net/NPiA/man8.html
12:02:14 <slereah__> Also, fight scenes! http://zelazny.corrupt.net/NPiA/man5&6.html
12:02:31 <slereah__> I'm grateful for being born in the age of computers with actual graphics.
12:03:09 <slereah__> Nine princes in Amber had graphics, sort of.
12:03:20 <slereah__> A pixelated picture on top of every text
12:03:44 <Figs> I've played a couple games like that
12:04:10 <Figs> I think there was one based on the Xanth novels...
12:04:31 <Figs> It bugged me because there were things in the picture that the game didn't know
12:05:12 <slereah__> It's pretty much "Light of magic" in video game form
12:05:29 <Figs> Light of Magic?
12:05:52 <Figs> ... I haven't read the Discworld novels. :o
12:06:27 <Figs> I'll consider it, if I ever come across them.
12:07:14 <Figs> Did you get outside?
12:07:33 <slereah__> Well, I typed "exit" to see what it would do!
12:07:38 <Figs> (I'm just wondering if other people are as silly as me)
12:08:02 <Figs> that wasn't the outside I meant. I should probably add a quit guard for the next version
12:08:14 -!- sarehu has quit (Remote closed the connection).
12:08:24 -!- sarehu has joined.
12:08:30 <slereah__> And why not a save system while you're at it!
12:08:39 <slereah__> "Oh shit, I lost my hours fo games!"
12:10:51 <Figs> There's not enough in the game to have a save system
12:11:00 <Figs> but it'd be fairly easy to do
12:12:30 <Figs> At this point, I'd be a bit more interested in improving the parser and structure of the game before I worry about something like saving
12:12:45 <Figs> if you look at the code, you'll see it's totally awful
12:12:46 <slereah__> Well, I'd worry about the game itself!
12:13:00 <Figs> that's true -- it's awful too
12:13:24 <Figs> but it's easier to build a better game with a better base than to fight the base for every inch of game... at least past a certain point ;)
12:14:28 <slereah__> Here's an example of a good game : http://www.somethingawful.com/d/flash-tub/tub-adventure.php
12:16:19 <Figs> I'm halfway between considering doing a silly game and sorta serious game
12:16:39 <Figs> obviously, the example I made was very silly... :)
12:17:06 <Figs> what am I still doing up? :P
12:17:46 <Figs> I'll have to check out your flash game tomorrow
12:17:58 <Figs> need sleep... *zombie*
12:18:10 <Figs> thanks for helping me debug :)
12:20:54 -!- Figs has quit ("Java user signed off").
12:23:25 -!- puzzlet has joined.
12:36:08 -!- puzzlet_ has quit (Read error: 110 (Connection timed out)).
13:02:44 -!- Corun has quit ("This computer has gone to sleep").
13:13:19 -!- jix has quit (Success).
13:16:10 -!- jix has joined.
13:16:57 -!- sarehu has quit (Remote closed the connection).
13:17:07 -!- sarehu has joined.
13:49:37 -!- ais523 has joined.
14:10:33 -!- fax has quit ("-").
15:09:53 -!- ehird` has joined.
15:10:36 -!- Corun has joined.
15:15:39 -!- helios24 has joined.
15:26:46 -!- oerjan has joined.
15:27:40 -!- sarehu has quit (Remote closed the connection).
15:27:49 -!- sarehu has joined.
15:51:30 <ehird`> http://www.wana.at/vimshell/sshot1.png wow
15:51:34 <ehird`> you could run emacs -nw inside vim
15:52:22 <ais523> what about emacs inside emacs?
15:52:32 <ehird`> you can do that but it's not as funny
15:52:37 * ais523 frequently runs bash inside bash, but thinks it doesn't really count
15:52:46 <ehird`> emacs -nw<RET> M-x term<RET> emacs -nw<RET>
15:53:23 <ehird`> it works infinite levels
15:53:34 <ais523> well, until you run out of memory or some other resource
15:53:43 <ehird`> doesn't everyone use turing machines?
15:54:21 <ehird`> ais523: it's funny going through a file -- the line/col indicator syncs with an offset on them all
15:56:10 -!- timotiis has joined.
15:58:56 <ehird`> ais523: i was going to tell you something today; but i forgot.
15:59:08 * ais523 is still trying to write uudecode in BF
15:59:17 <ais523> especially as the anarchy golf deadline is almost up
15:59:40 <ais523> hmm... 1 min left. I won't finish it that quickly
16:00:47 <ehird`> i really need to get some info pages up about anagolf
16:00:51 <ehird`> mainly for my own sanity! :p
16:01:08 <ehird`> ais523: you can still submit!!
16:01:12 <ehird`> people can just read your code.
16:01:26 <ehird`> puts gets(gets).unpack'u'
16:01:41 <ehird`> puts gets(nil).unpack'u'
16:01:54 <ehird`> puts [*$<].join("\n").unpack"u" # longer i think though
16:01:55 <ais523> no, because they have to skip the first line, I think
16:02:17 <ehird`> it seems most languages have uudecode built in
16:02:34 <ehird`> ais523: http://golf.shinh.org/reveal.rb?uudecode/51b/1202143066&erl if you could translate this non-lib-using erlang into bash..
16:02:45 <ehird`> http://golf.shinh.org/reveal.rb?uudecode/pooq/1202119366&ijs nice J code :)
16:02:55 <ehird`> this might be easier to translate:
16:02:56 <ehird`> x;n;main(d,c){for(gets(c);c=getchar()-32,c<65;)x=c*x>0?d=d<<6|c&63,!n?n=6:putchar(d>>(n-=2)):!x;}
16:03:27 <ehird`> ais523: that brainfuck entry cheats in some kind of fscked way: http://golf.shinh.org/reveal.rb?uudecode/nuko%28cheat%29/1201122618&bf
16:03:43 <ehird`> maybe exploiting the interp used??
16:04:01 <ehird`> s re(re).u"u" # i love how pointless goruby is
16:04:20 <ehird`> 8 hours til rot13 is done
16:04:32 <ais523> then you can see my brilliant winning Perl entry
16:04:52 <ais523> unless someone else equals it it'll be the first time I've won anagolf outright in Perl
16:05:24 <ehird`> you should learn ruby, it might not be as good at general text manipulation at perl, but it's good at *golfing* text manipulation, and arithmetic
16:05:26 <ais523> my bash entry worked on the same principle, BTW, but someone beat it
16:05:42 <ais523> probably using an entirely different approach
16:06:00 <ehird`> anyway, how does that brainfuck entry work?
16:06:15 <ais523> must be a buffer overflow aimed against the interp
16:06:29 <ehird`> ais523: btw, my multiply entry is great
16:06:51 <ehird`> p eval gets.gsub(",","*")
16:07:01 <ais523> that's basically how my Perl version works
16:07:09 <ais523> which is presumably the same as everyone else's, being the same length
16:08:34 <ais523> that reminds me of Perl a lot
16:08:38 <ais523> does $_ have the same meaning?
16:09:47 * ais523 is less surprised at that
16:10:22 <ehird`> http://ruby-talk.org/cgi-bin/scat.rb/ruby/ruby-talk/179642
16:10:29 <ehird`> the design of ruby :-)
16:10:56 <ehird`> which appears to be down
16:11:25 <ehird`> my interwebs are dying
16:11:38 <ehird`> http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/179642
16:11:58 <ehird`> and that's why ruby can do perly stuff like that
16:12:16 <ehird`> along with its crazy ambiguities like "no parens required on function call" and all that, it can beat perl quite a lot
16:12:24 <ais523> Lisp+Perl isn't the first language combination I would have thought of
16:12:54 <ais523> hm... from that I'd guess that Perl would be better for the very short programs and Ruby for the slightly longer ones
16:13:03 <ais523> in terms of golfing potential
16:17:46 <ehird`> ais523: you would be suprised
16:18:34 <ehird`> ais523: also, it's Lisp->simplified&syntaxed->tiny object system->some syntactical sugar->smalltalk->perl, but prettier
16:19:16 <ehird`> i hope you can write to $*
16:19:21 <ehird`> i'm going to use it as a stack :-)
16:19:35 <ais523> $* = obsolete method of controlling /m on regexps?
16:19:42 <ais523> or am I thinking of something else?
16:21:12 <ehird`> $* = command line arguments
16:25:49 <ais523> hmm... /query ais523 actually works, and acts like cat
16:27:17 <ehird`> :ais523blahblah PRIVMSG ais523 :hi
16:27:27 <ehird`> your client looks for a window for ais523blahblah
16:27:30 <ehird`> and inserts the message
16:27:48 <ehird`> ais523: http://golf.shinh.org/p.rb?RPN+calculator this will be interesting
16:27:49 <ais523> why is my brainfuck auto-indenter not working?
16:28:49 <ais523> and ehird`: you should have made one of the examples much longer to hold off cheats
16:29:00 <ehird`> ais523: yeah, i guess so
16:29:10 -!- sebbu has joined.
16:30:45 <ehird`> ais523: why does anagolf have netcat but no net
16:32:00 -!- timotiis_ has joined.
16:38:25 <ehird`> I wonder what an open-source codegolf/anagolf blend would be like
16:38:34 <ais523> I'd like to see a blend, actually
16:38:35 <ehird`> User-centric like anagolf, but more polished (e.g. 'testing scripts')
16:38:43 <ais523> people could submit their own challenges but with test case generators
16:38:49 <ehird`> and open source, unlike codegolf -- also less central and administrated
16:38:51 <ais523> and a reference implementation to compare to
16:38:56 <ais523> which would also count as the first entry
16:39:23 <ehird`> ais523: I would do it but take a look at anagolf's code: http://golf.shinh.org/sag.tgz
16:39:32 <ais523> also, I'd like to see tags like (cheat) and (embed) as part of the system
16:39:32 <ehird`> I can't hope to write something that crazy, it'd just end up insecure
16:39:41 <ehird`> ais523: it counts (sym) and (bin)
16:39:43 <ais523> so you can have separate cheat and noncheat tables
16:40:00 <ais523> and autodetection of if something is a cheat
16:40:06 <ais523> e.g. look for file reads on quine programs
16:40:18 <ehird`> ais523: but seriously, look at anagolf's code... it has a seperate server and stuff!
16:40:38 * ais523 hasn't looked at the code yet, but is not surprised it's that complicated
16:40:43 <ehird`> it *overrides syscall*
16:41:01 <ais523> maybe you could make a simpler version which used nothing but interpreted languages
16:41:10 <ais523> and use the sandboxing features of the interps
16:41:17 <ehird`> most interps have crap sandboxing/.
16:41:28 <ais523> (in cases of langs like Brainfuck, you could write a sandboxed interp yourself)
16:41:40 <ais523> Perl allegedly has a sandboxing module that can be used
16:41:43 <ais523> although I've never tried it
16:42:28 <ehird`> hm, anagolf started in 2007? i thought it was older
16:43:30 -!- timotiis has quit (Read error: 110 (Connection timed out)).
16:46:35 <ais523> yay, I think I got the BF indenter working
16:48:27 * ais523 gets to work on a BF strip-comments program
16:48:39 <ais523> as an enhancement to my esolang Emacs package
16:48:51 -!- oerjan has set topic: THIS IS NOT THE TOPIC.
16:48:57 <ais523> that includes the Unlambda code I showed you before, among other things
16:50:24 <ais523> for some reason, I keep pressing g rather than f in the word 'buffer'...
16:55:22 <ehird`> ais523: tee hee, i'm writing a genuine evil c compiler
16:55:42 <ais523> along the same lines as my 'simple language' compiler?
16:55:50 <ehird`> and presumably the postscript one
16:56:19 <ehird`> i think this parses differently in ruby than in c
16:56:42 <ehird`> in line 22, at the end
16:56:54 <ais523> what's the difference?
16:58:23 <ehird`> i think the == and && bind differntly
16:58:30 <ehird`> http://pastebin.ca/894031 here's my code so far
16:58:40 <ais523> Perl deliberately chose to use the same operator precedences as C to avoid confusion
17:00:08 <ais523> grr... why do KDE and Gnome apps spout lots of garbage to stderr when run under the other window manager?
17:01:04 <ais523> oh, there's an error in the RPN problem
17:01:06 <ehird`> http://pastebin.ca/894033 final version
17:01:12 <ais523> one of the examples uses 'mod' as infix rather than postfix
17:01:32 <ehird`> can you submit one the same but called rpn calculator(FIXED) andwith that fixed? or am i going to have to do it myself :P
17:01:55 <ais523> submit the fixed version, say it's a fix in the description, and maybe shinh will remove the unfixed version
17:02:10 <ais523> but even if not, people will know what's happened and hopefully aim only for the new one
17:04:51 <ehird`> ais523: http://pastebin.ca/894040 shorter but less robust compiler
17:05:03 <ehird`> c is quite trivial! ;)
17:05:22 <ais523> yes, when it doesn't use many language features
17:05:32 <ais523> and the ones it does are implemented in the target language with much the same syntax
17:06:22 <ais523> my BF comment stripper is working now as well
17:06:44 <ehird`> ais523: make a long rpn example and i'll add that ;P
17:07:52 <ehird`> just using my commands and semantics though!
17:08:09 <ais523> I'm writing \np\n rather than p, and restricting myself to + - * /
17:09:54 <ais523> yes, I didn't use those
17:09:59 <ais523> although I could have, I suppose
17:10:05 <ehird`> involve floating point somehow
17:10:15 <ehird`> i.e. only trivial floating points
17:10:26 <ehird`> preferably, double-fitting
17:11:28 <ehird`> ais523: http://pastebin.ca/894042 this yours?
17:11:50 <ais523> I have it invoked from my .emacs
17:11:59 <ais523> it's still a work in progress, though, so it's only a paste for now
17:12:04 <ehird`> ais523: does it highlight idioms differently? :D:D
17:12:08 <ais523> you'll notice bits of it are commented out because they don't do anything
17:12:11 <ais523> ehird`: only a few idioms
17:12:17 <ais523> [-] is one of the ones that is highlighted
17:12:25 <ais523> and [-]+++++++++++ (etc)
17:12:30 <ais523> but nothing else in BF yet
17:12:42 <ais523> otherwise, +-/<>/,./[] all have different colour schemes
17:12:43 <ehird`> re: "macros should be done with lambda and quote"
17:12:48 <ehird`> you ALREADY have required macros:
17:13:07 <ehird`> And even if you made THEM functions taking quotes -- you have one final special form
17:13:18 <ais523> yes, well I may as well write idiomatically given the existence of the language
17:13:20 <ehird`> and once you have that, it's purest not to make it a special case, and allow extension.
17:13:27 <ehird`> no -- i mean, in general
17:13:51 <ehird`> also -- get rid of your nested ifs, use cond :)
17:13:55 <ais523> (quote ...) seems really wrong to me
17:14:03 <ais523> although '(...) is fine
17:14:07 <ehird`> ais523: that's syntax.
17:14:13 <ehird`> '(...) is very modern!
17:14:22 <ais523> not sure why, really, it's just like d in Unlambda: it goes so strongly against the grain of the language
17:14:40 <ehird`> it goes against the grain of the language you prefer which is wildly different from lisp
17:14:47 <ais523> if something looks like a function, I get surprised when it isn't
17:15:01 <ehird`> (x ...) does not look like a function.
17:15:08 <ehird`> anyway, how's the rpn example going?
17:15:11 <ais523> looks like a function call to me
17:15:16 <ais523> ehird`: finished, but I haven't pasted it yet
17:15:19 <ehird`> ais523: maybe it does, but that's not what (...) means
17:15:20 <ais523> I was going to when you interrupted
17:15:58 <ais523> http://pastebin.ca/894058
17:16:03 <ais523> the ==== separates the input and output
17:16:08 <ais523> I'm not sure about the last case, though
17:16:17 <ais523> maybe we should change it to something that doesn't end .0
17:16:29 <ais523> because dc's precision rules are likely to be different from those to many other languages
17:17:28 <ehird`> ais523: i think yours is a bit too obscure, yeah
17:17:34 <ehird`> it doesn't allow efficient implementation
17:17:40 <ais523> just get rid of the last case and we'll be fine
17:17:52 <ehird`> also, ais523 -- that's still far easier to cheat than to do correctly
17:18:51 <ehird`> i mean, we have a few lines of output, some of which are similar enough that they could be combined with some trickery
17:18:58 <ehird`> whereas an rpn calc impl isn't that trivial
17:19:27 <ais523> well, you could always get out dc and type in a lot more commands
17:20:24 * ais523 is still working on the uudecode-in-BF
17:21:31 <ehird`> ais523: so .0 or not .0?
17:21:42 <ais523> don't generate any test cases with trailing 0s
17:21:51 <ais523> and make them all come out exactly in decimal so as to avoid precision problems
17:21:55 <ehird`> ruby outputs as .0 actually.
17:22:09 <ais523> presumably because the output had been floating-point-ised
17:22:35 <ais523> we'll just have to make sure that the digit after the decimal point is nonzero in every test case
17:23:18 <ehird`> http://golf.shinh.org/p.rb?RPN+calculator+FIXED
17:24:43 <ais523> test.sh: line 3: dc: command not found
17:24:52 <ais523> pity, I was hoping to make a really short bash entry
17:25:00 <ais523> by using sed to compile into dc first
17:25:39 <ehird`> Is there any implementation of TURKEY BOMB? :)
17:25:46 <ais523> I started work on one once
17:25:55 <ais523> got further than you would think possible looking at the spec
17:26:01 <ais523> but gave up after a while
17:26:20 <ais523> BTW, I think it's possible to interpret the ambiguities in the spec in such a way as to make it Turing-complete
17:26:44 -!- Hiato has joined.
17:27:43 <ais523> void* TURKEYBOMB = &TURKEYBOMB; /* the whole point! */
17:28:02 <ehird`> ais523: probably not the best way to do it :P
17:28:11 <ais523> I'm just following the spec
17:28:18 <ais523> and a TURKEY BOMB is most definitely a reference to itself
17:28:35 <ehird`> struct tb { struct tb *val; } TURKEY_BOMB;
17:28:40 <ais523> I don't think the TURKEY BOMB itself actually becomes relevant anywhere in the code because there's no way to access it, but it has to exist
17:28:44 <ehird`> struct tb { struct tb *val; } *TURKEY_BOMB;
17:28:47 <ehird`> then initialize like so:
17:28:52 <ais523> char junk[15 - sizeof(void*) * 3]; /* a TRIVIA is exactly 15 bytes, no exceptions. */
17:28:58 <ehird`> TURKEY_BOMB=malloc(sizeof(*TURKEY_BOMB));
17:29:03 <ehird`> TURKEY_BOMB->val = TURKEY_BOMB;
17:29:05 <ais523> the code is littered by that sort of thing
17:29:19 <ais523> and ehird`: why would you use malloc when you can use compile-time initialisation?
17:29:26 <ehird`> because it's a pointer.
17:29:29 <ehird`> ais523: you can access TURKEY BOMB like this:
17:29:35 <ais523> you can compile-time initialise a pointer
17:30:04 <ehird`> also, if you follow the Paradigm then you have to do crap with the TURKEY BOMB
17:30:13 <ais523> yes, you pass it round
17:30:16 <ais523> it's the instruction pointer
17:30:39 <ais523> you pass it from one player to another when certain events happen in-game
17:30:48 <ais523> it's how you implement conditionals and loops
17:31:05 <ehird`> ais523: how did you implement ZILCH?
17:31:28 <ais523> AMICED was more interesting
17:31:35 <ais523> there isn't actually an AMICED datatype
17:31:38 <ais523> but rather NEGATIVE_AMICED
17:31:51 <ais523> which is stored in any PUDDING that doesn't contain the AMICED in question
17:31:53 <ehird`> Two thirds of a bit plus half a trit.how did you do that :-|
17:32:05 <ais523> stored it as a 2-bit int
17:32:29 <ais523> but there are semantics that make it act vaguely like the spec requires
17:32:33 <ais523> and that's enough for me
17:33:37 <ehird`> are there any turkey bomb programs?
17:33:39 <ais523> even worse: struct HUMIDOR <class T1,T2,T3>
17:33:45 <ais523> and ehird`: not as far as I know
17:33:48 <ais523> because the spec is so ambiguous
17:34:09 <ais523> it seemed fitting somehow
17:34:37 <ehird`> hm, what esolang needs an implementation but seems hard to give one? :-)
17:34:51 <ais523> I have some thought on writing a twoducks implementation
17:35:03 <ais523> that would try out lots of testcases to try to get the timeline consistent
17:35:09 <ais523> sort-of brute forcing a timeline that works
17:35:27 <ehird`> i had an idea for a Scheme-omega implementation
17:35:37 <ehird`> it would introduce a type, MAYBE
17:35:44 <ehird`> no constructor, but is of the form:
17:35:53 <ehird`> H would always return MAYBE #t #f
17:36:15 <ehird`> the truth value of MAYBE a b is:
17:36:24 <ehird`> if not a and not b, #f
17:36:35 <ehird`> otherwise, MAYBE (truth-value a) (truth-value b)
17:36:53 <ehird`> ais523: if when given a MAYBE would also give a MAYBE etc
17:37:13 <ehird`> no IO, but if you wanted it it would just require you to choose a branch and stick to it if we ever 'might' execute some IO :)
17:37:34 <ehird`> at the end it would just dump out all the 'maybe's and exit
17:37:53 <ais523> incidentally, my idea for TC TURKEY BOMB was to define the ! command to take two of the trit parts of the BI_ITs, and calculate their maximum value, returning it in binary-coded-ternary in the bit parts
17:38:03 <ais523> it would shortcircuit from left-to-right
17:38:31 <ehird`> i would like to see a brainfuck interp in TURING BOMB
17:39:20 <ais523> if you then place a pointer dereference to generate one of the BI_ITs, it will skip the next player's turn at the right moment to cause everything to work correctly
17:40:04 <ehird`> http://it.geocities.com/tonibin/owl/owl.html is this in the esolang wiki?
17:40:07 <ehird`> successor to bogusforth
17:40:09 <ais523> (a \2 \x) (a a \x) ^L b (\\x) ^L GARNISH GARNISH x ^L c
17:40:26 <ais523> is what I have in my notes as TURKEY BOMB for if(a = 2) b; else c;
17:40:45 <ais523> but it's heavily abbreviated; the 2 actually refers to four advisories that together dereference to a variable containing 2
17:40:55 <ais523> and ^L is the formfeed character
17:41:31 <ais523> from context I guess it means 'next player's turn'
17:41:37 <ais523> but I'm not sure why I chose that character in particular
17:41:51 <ais523> btw, ehird`, the page you linked says that it's a stub on esolang
17:42:00 <ais523> "A small hook is still present at esoteric.voxelperfect.net, and precisely here"
17:42:01 <ehird`> ais523: maybe it's each player?
17:42:23 <ais523> skipping a player's turn is how you do control flow
17:42:51 <ais523> control flow is nondeterministic but that example generates a loop which can only be escaped by the right combination of random events happening
17:44:28 <ais523> so the code itself is deterministic but the length of time it takes to run isn't
17:47:28 <ehird`> vim's scheme indentation is as good as emacs' :|
17:47:31 <ehird`> seriously, it handles everything
17:47:50 <ehird`> everything except 'if'
17:49:11 <oerjan> emacs's is buggy on ifs in do blocks, i hear
17:49:36 <ehird`> oerjan: well, it indents if like so:
17:49:43 <ehird`> i.e. doesn't align them
17:49:48 <ehird`> which is arguably nicer, actually
17:50:54 <oerjan> it has to indent then and else relative to if in do blocks, i heard it doesn't
17:53:35 <ehird`> so how much interest is there in a PEBBLE-alike, but self-hosted, with lisp syntax and lisp macros?
17:53:51 <ais523> what do you mean by self-hosted?
17:54:15 <ehird`> ais523: is written in itself.
17:54:27 * ais523 likes languages like that
17:54:27 <ehird`> with a seperate, less featured compiler solely for the purpose of bootstrapping, in some other language, of course
17:54:41 <ehird`> so... interest level=? :)
17:54:49 <ais523> why don't you have several bootstrap compiles
17:55:03 <ais523> one written in BF to compile the one written in selfhost1
17:55:14 <ais523> the selfhost2 compiler is written in selfhost1
17:55:26 <ais523> the selfhost3 compiler is written in selfhost2, and so on, until you have the whole language
17:55:41 <ais523> where the numbered selfhost langs are subsets of the full lang
17:56:13 <ais523> even better, if you had a lang like CLC-INTERCAL that could modify itself dynamically, you could create new syntax with one line and use it with the next
17:56:27 <ais523> hmm... maybe there should be a lang whose only primitive is the one to define new syntax
17:56:37 <ais523> and the standard library boots up from there
17:56:49 <ais523> CLC-INTERCAL does that but cheats by relying on a very rich syntax for defining new commands
17:57:06 <ais523> (effectively you write bytecode implementations for them, where the bytecode machine is defined elsewhere)
17:57:19 <ehird`> ais523: no, that's crazy :)
17:57:34 <ehird`> but is there a lot of interest in the idea i actually said?
17:57:57 <ais523> if you could write 'macro' in Lisp then it would get more interesting
17:58:14 <ehird`> but.. it's pebble, but cooler
17:58:16 <ais523> as in, actually implement the 'macro' keyword using only macros
18:01:13 <oerjan> so was Titanic. and unsinkable, too!
18:01:31 <ehird`> yeah, well, mine's lispy :(
18:01:48 <ehird`> it's PEBBLE, but with sane syntax, and more powerful macros
18:01:56 <ais523> if the Titanic was made from Lisp, it would have sunk almost instantly
18:02:03 <ais523> parens are terrible at being waterproof
18:02:14 <ais523> they don't nail together at all well
18:02:47 <oerjan> and if it had been made from Haskell, it would have refused to leave the harbour...
18:03:02 <ehird`> oerjan: they used GHC.
18:04:25 <ais523> they should have made it from Whitespace
18:04:47 <oerjan> unsafeApproachIcebergs
18:05:04 <ehird`> oerjan: approaching the iceberg was safe
18:05:08 <ehird`> hitting it and sinking was not
18:07:54 <oerjan> ah but they used unsafeApproachIcebergs rather than approachIcebergs which checks for ice underwater as well
18:08:03 <ais523> what does unsafePerfomIO do?
18:08:36 <ehird`> unsafePerformIO :: IO a -> a
18:08:48 <ehird`> also enables writing of
18:08:50 <oerjan> that tells it all, really :)
18:09:10 <ais523> and presumably just runs the IO command whenever it happens to be executed, whether that's 0 or more than 1 times in the program?
18:09:34 <ais523> ISTR C++ has a 'coerce anything to anything else' operator
18:09:39 <ehird`> ais523: it just happens... whenever
18:09:42 <ais523> that sometimes fails at runtime when you try to use it
18:09:43 <ehird`> there are no guarantees
18:09:53 <ehird`> it might work, depending on the weather
18:10:17 <oerjan> ais523: more or less, except you cannot predict whether it is called more often, or exactly when
18:11:08 <oerjan> because the compiler treats it as if it is pure, and assumes it can be shared/duplicated like pure code
18:11:12 * ais523 feels justified in their incorrect belief that 'Haskell just evaluates things at random until the program is complete'
18:11:30 <ais523> it helps me to write correct code, anyway, even though evaluation order is meant to be defined
18:11:51 <ehird`> it's not really defined
18:11:58 <ehird`> the report says 'non-strict evaluation' and leaves it at that
18:12:01 <ais523> and the successor to Underload is going to use that evaluation strategy; a strict/lazy mix depending on what the compiler feels like
18:12:16 <ais523> compiler or interpreter
18:12:53 <ehird`> i love how we all refer to underload as a static kind of language
18:13:03 <ehird`> as if it didn't act really self-modifying :)
18:13:14 <ais523> but it isn't self-modifying
18:15:36 <ehird`> but that's not how it was viewed, before
18:16:31 <ais523> grr... anyone know of an online BF interpreter that allows characters other than <>+-[],. in the program and that doesn't error out on EOF?
18:18:03 <ehird`> no, should i write one
18:18:22 <ais523> ISTR oerjan pointed me to one before, but I can't remember where it was and Google isn't showing it up
18:18:29 <ais523> writing one may be faster
18:18:40 <ais523> oh, it has to have debug features that show the tape as well
18:18:45 <ais523> otherwise there are plenty
18:19:30 <ehird`> sounds like a job for me, if only i had my awesomejsframework written
18:19:54 <oklopol> vjn.fi, in applications, i think
18:19:58 * oerjan vaguely recalls the bf online interpreter he found stopped working after a while
18:20:01 <oklopol> not sure, it seems i've been banned from there :)
18:20:16 <ehird`> http://golf.shinh.org/p.rb?Drop+first+line bash entry: read;cat
18:20:37 <ehird`> oklopol: they stole your url submitter! http://vjn.cc/ :p
18:20:54 <ais523> oklopol: how did you end up banned from it?
18:21:05 <ais523> and that isn't an online interpreter running there, but rather its source code
18:23:27 <oklopol> it should not be its source...
18:23:42 <oklopol> and i have no idea why i'm banned, one day i just couldn't load the page from this ip anymore
18:23:54 <ais523> it's just the link to it says 'download'...
18:24:07 <oklopol> the interface currently only allows that
18:24:26 <oklopol> php shit will go into "tools", later
18:24:50 <oklopol> what a shame you don't know finnish, the english-finnish converter owns ass :)
18:34:35 -!- bsmntbombdood has quit (Read error: 110 (Connection timed out)).
18:35:35 -!- bsmntbombdood has joined.
18:40:19 <ehird`> ais523: wanna help me debug my rpn calc?;)
18:40:47 <ehird`> http://pastebin.ca/894140
18:40:55 <ehird`> my output on the fisrt is
18:41:10 <ehird`> but that's not the main problem
18:42:13 <ais523> what code do you get if you print out $_ rather than evalling it?
18:42:20 <ais523> and isn't the $_= in the last line rather redundant?
18:42:53 <ehird`> i dunno if eval sets $_
18:43:02 <ais523> you don't need to set it
18:43:10 <ais523> because the puts does all your output
18:43:37 <ehird`> the first compiles to:
18:43:38 <ehird`> $*<<2; $*<<2; $*<<$*.pop+$*.pop;puts$*[-1];\n
18:43:38 <ehird`> $*<<0; if(x=$*.pop)==0;puts'ERR'else $*<<x/$*.pop end;puts$*[-1];\n
18:43:38 <ehird`> $*<<1; $*<<$*.pop+$*.pop;puts$*[-1];
18:43:50 <ehird`> maybe i should base it on the whole input
18:43:54 <ais523> oh, the error is that you still run the next puts() after a division by 0
18:44:33 <oklopol> ais523: did the interp work? or did you try it
18:44:55 <oklopol> i think i either ran a thue interp in it, or ran a brainfuck interp in my thue interp
18:44:57 <ais523> it worked but wasn't very useful for my purposes because all it displayed was the output
18:45:18 <oklopol> it was just something i did to learn php
18:45:20 * ais523 is stuck on debugging the input code for their BF uudecode
18:46:14 <ehird`> ais523: anyway, it's weird
18:47:01 <ehird`> test.rb:10: (eval):1:in `-': nil can't be coerced into Float (TypeError)
18:47:16 <ais523> but I wonder what caused it?
18:48:10 <ehird`> $*<<9.2; $*<<0.1; $*<<$*.pop+$*.pop;puts$*[-1];\n
18:48:10 <ehird`> $*<<$*.pop-$*.pop; $*<<5;puts$*[-1];
18:48:13 <ehird`> that's what it gets up to
18:49:02 <ais523> well, that compiled code you show looks like a stack underflow to me
18:49:19 <ais523> gah, the example is wrong AGAIN!
18:49:33 <ais523> I should have written '5 -' on the second line...
18:49:37 <ais523> not sure how I didn't notice that
18:50:09 <ais523> ehird`: it's a problem with the example
18:50:20 <ehird`> sadfkla;sdfjklasdfhkjasdlfhklasjdfhkjlasdfhajklgakdfjgakdfghkjladfghkljadfadfghdfjkhdfg
18:50:33 <ehird`> submit a fixed version would you? :P
18:50:38 <ehird`> should just be a copy/paste+fix
18:54:22 <ais523> BTW, I managed to beat even GolfScript on the drop-first-line challenge using sed
18:55:24 <ais523> please let it be right this time...
18:55:52 -!- sarehu has quit (Remote closed the connection).
18:56:02 -!- sarehu has joined.
18:56:08 <ehird`> http://www.modeemi.fi/~chery/lisp500/lisp500.c <-- arthur winfrey would be proud
18:56:30 <ehird`> ais523: you messed the examples.
18:56:34 <ehird`> you forgot to add an extra newline to them all.
18:56:47 <ehird`> so, after pasting, hit 'ENTER' at the end of them exactly once
18:57:07 <ais523> the golf entries can append the newline themselves
18:57:25 <ais523> it'll save riling up shinh further
18:57:40 <ais523> (the first version seems to have disappeared already)
18:57:55 <ehird`> ais523: no, it's important
18:57:57 <ehird`> otherwise it's against the spec
18:58:09 <ehird`> i'll apologize in the descr. :)
19:04:11 <ehird`> $*<<5; $*<<2; $*<<$*.pop%$*.pop;puts$*[-1];\n
19:04:11 <ehird`> $*<<5; $*<<$*.pop*$*.pop; $*<<5; $*<<$*.pop**$*.pop;puts$*[-1];\n
19:04:49 <ais523> is << the push instruction?
19:04:55 <ais523> and ** exponentiation?
19:05:11 <ehird`> i do things the wrong way around
19:05:58 <ehird`> ashdfjashdfhkasdfkhasdf
19:06:01 <ehird`> ruby doesn't auto-float
19:09:07 <ehird`> asdfahsdfahsdfhasdfhklasdfasdfadfhasdjflsdhasdfhlasdfhklasdfhdfhdfasdfsdf
19:10:24 <ehird`> ais523: heh, it works interactively
19:12:46 <ehird`> ais523: http://pastebin.ca/894169
19:13:04 <ehird`> it handles stuff wrong
19:13:13 <ehird`> ruby's / always produces an int unless given a float
19:13:19 <ehird`> so i have to convert to a float and check for .0
19:13:35 <ehird`> on the second example my last line of output is 1.0
19:13:49 <ehird`> ais523: your examples are wrong.
19:13:58 <ehird`> you expect 0.5 2 * to produce an integer 1
19:14:10 <ehird`> basically, you expect everything to coerce to integers when possible
19:14:18 <ais523> that was your example, not mine
19:16:14 <ais523> drop first line is coming along well
19:16:28 <ais523> my Brainfuck and Befunge-93 entries are exactly the same bytecount
19:17:11 <ehird`> eh, i give up on my rpn
19:17:43 <ais523> I actually managed to reduce the Befunge to 20 bytes simply by deleting a stray final newline
19:17:53 <ais523> Anarchy Golf seems to be treating \n as \n\r for some reason
19:18:00 <ais523> maybe if I use file upload, it'll be a byte shorter...
19:18:10 <ehird`> i don't get the 'vi' language
19:18:13 <ehird`> for drop first line i tried:
19:18:33 <ehird`> in fact, everything i try has no effect
19:19:16 <ehird`> how's this for a quine and palindromic quine:
19:19:44 <ehird`> puts"aa";File.open("test.rb"){|x|x.puts"aa"}
19:19:54 <ais523> that isn't palindromic
19:20:01 <ehird`> ais523: aah, but read it
19:20:03 <ehird`> it becomes palindromic
19:20:23 <ais523> what, it overwrites its own source code to change it to its own output
19:20:48 <ais523> wait till after the deadline, then you can try it
19:20:52 <ehird`> aww, anagolf looks at the program before executing
19:21:01 <ais523> OTOH, I think shinh said he was banning file save
19:21:36 * ais523 managed to save one char on a newline-containing entry by using file upload so that \n didn't have a \r auto-added
19:24:21 <ais523> BTW, the vi entry for drop first line is apparently ddZZ
19:24:25 <ehird`> ais523: give me a long chunk of text so i can avoid cheaters in a challenge i'm making
19:24:30 <ais523> it says so on the front page of golf.shinh.org itself
19:24:37 <ehird`> ah i see, you have to save
19:24:42 <ais523> and I submitted it with an appropriate (comment)
19:24:52 <ehird`> oh crap, there's ALREADY taht challenge
19:25:11 <ais523> I searched for it and shinh apparently just used it as an example without realising it hadn't been submitted
19:25:33 <ehird`> perhaps it should be a 'never ending' one
19:25:37 <ehird`> because of its ubiquity
19:25:53 * ais523 likes to be able to see the source code when the challenge ends
19:26:19 <ais523> for a long chunk of text you could copy one of the articles from esolangs.org
19:26:24 <ais523> it's all public domain, after all
19:27:41 <ais523> hmm... that 'delete first line' might even be reasonably plausible in HOMESPRING
19:27:46 <ais523> and it's hard to write anything in that language
19:30:32 <ehird`> ais523: with vi how can i chop off the last eof of a file? :|
19:30:47 * ais523 didn't even realise it was possible to delete an EOF
19:30:56 <ais523> wouldn't that cause the file to run into the next one on a disk?
19:31:17 <ehird`> also, that would be cool
19:31:19 * ais523 is not very used to vi
19:33:14 <ehird`> ais523: http://golf.shinh.org/p.rb?Encoder+decoder
19:33:22 <ehird`> i believe the example is real enough to give real submissions
19:33:34 <ehird`> also, i haven't seen that silly encryption elsewhere
19:33:42 <ehird`> even though it does quite a good job of making text jumbled 'randomly'
19:36:21 <ehird`> a vi solution to that might be easy
19:36:22 * ais523 has done the encode in 24 bytes of BF
19:36:39 <ais523> ,,,,,,,,.,+[>,.,+]<[-.<]
19:36:50 <ais523> the commas at the start are to skip over the string 'encode'
19:36:54 <ehird`> maybe i should have made seperate 'encode' and 'decode'
19:37:39 <ais523> no, doing it like this gives BF less of an unfair advantage :)
19:37:47 <ais523> the decode is substantially harder, by the way
19:38:10 <ehird`> ais523: but isn't it better to have seperate decode and encode programs?
19:38:15 <ehird`> instead of mashing two golf challenges into one
19:38:20 <ais523> but you've submitted it now
19:39:40 <ais523> the problem with the decode is finding the middle of the string in advance
19:39:46 <ais523> BF isn't very good at that
19:40:02 <ais523> I suppose I could make a semicheat entry that simply had it hardcoded...
19:40:16 <ehird`> http://www.antlr.org/wiki/display/CS652/How+To+Read+C+Declarations # this would be a good golf challenge
19:46:14 <ais523> "This extremely powerful program can actually add two arbitrary digits together, in only twenty seconds or so on a fast machine!"
19:46:29 <ais523> -- from the HOMESPRING docs
19:47:26 <ais523> I'm not entirely sure how the program works
19:47:41 <ais523> although it recognises input and produces output by lookup table, which is never a good sign
19:48:37 <oerjan> the scientologists are good to blame these days
19:49:01 <oerjan> hm, maybe not if you want to _keep_ that profit
19:49:12 <slereah__> The 10th of february, be very wary :o
19:49:41 <slereah__> The internet lacks a Guy Fawkes smiley.
19:50:01 <oklopol> 1. steal underpants 2. ??? 3. profit
19:51:40 * oerjan thinks oklopol must have misunderstood his smiley
19:51:52 <oerjan> that's an effigy, on a bonfire, just so you know it
19:52:06 <lament> i'm trying to decide on the order in which i ban you all.
19:52:38 <lament> slereah__: too simple. It tries to be impartial, but really isn't
19:52:44 <oerjan> i say so too. especially as o comes after l.
19:52:54 <ehird`> ais523: http://golf.shinh.org/p.rb?Calculator this one's clever :)
19:52:57 <ehird`> and not that easy to cheat!
19:53:04 <ais523> and s comes last of the currently active people, and a comes first...
19:53:24 <lament> we could do it by popular vote
19:53:30 <lament> but which voting system?
19:53:30 -!- Tritonio_ has joined.
19:54:13 <slereah__> We declare states in the channel, and each states have a certain weight on the vote.
19:54:17 <slereah__> Hell, if it works for the country that invented freedom and Coca Cola, why not here!
19:54:19 <ehird`> slereah__: ais523: oklopol: you're all in my state
19:54:25 <ehird`> everyone else is in the other state
19:54:35 <ehird`> we vote to kick everyone in the other state.
19:54:46 * ais523 doesn't see why they need to be kicked
19:55:44 <ehird`> ais523: it has to be them or us
19:55:45 * oerjan starts a communist revolution in his state
19:56:20 <ehird`> main(c,x){gets(x);while((c=getchar())>-1)putchar(c);}
19:56:28 <ehird`> that's far larger than is neccessary for drop, isn't it ais523?
19:56:38 <ais523> using gets/puts could be faster
19:56:57 <ais523> BTW, the calculator problem doesn't look hard
19:56:59 <slereah__> You can declare variables in main? :o
19:57:10 <ais523> slereah__: it's K&R syntax
19:57:12 <oerjan> Hell, if it works for the country that invented freedom (in principle) and Borshch, why not here!
19:57:14 <ehird`> slereah__: i abuse argc, argv.
19:57:20 <ais523> and UB at that, but the compiler would be unlikely to notice
19:57:25 <ehird`> ais523: and it's hard because it spreads over runs ;)
19:57:41 <ehird`> also, my 25char haskell entry: main=getLine>>interact id
19:57:47 <ais523> oh, I thought you were looking for an embed solution
19:58:00 <ais523> I would have written (embed) if I'd noticed
19:58:19 <ehird`> submit the same one and say
20:01:15 <ehird`> puts x=eval x=File.read("x")rescue x=eval x[0..-2]
20:01:34 <ais523> what does rescue do in Ruby?
20:01:40 -!- Hiato has quit (Read error: 110 (Connection timed out)).
20:02:31 <ehird`> ais523: x rescue y is equiv to:
20:02:37 <ehird`> begin; x; rescue; y; end
20:02:44 <ehird`> where rescue with no clause means 'every error'
20:02:57 <ehird`> it's a non-descriminate try/catch with the scope of one expression.
20:05:00 <oerjan> catch/halt fire. or was that the other way around...
20:05:11 <ehird`> ais523: i wish i had allowed exec
20:05:17 <ehird`> i was going to do a vi solution which called out to ruby after compiling
20:05:44 <ais523> but that would be less cool than a non-cheat entry in pure vi
20:10:07 <ehird`> in $((x)), is there a way to 'rescue' on error?
20:10:23 <ais523> maybe you could do something using trap
20:32:41 -!- RedDak has joined.
20:53:43 -!- cherez has quit ("Leaving.").
20:54:57 -!- cherez has joined.
20:56:32 -!- cherez has quit (Client Quit).
20:56:38 -!- cherez has joined.
20:56:45 -!- cherez has quit (Client Quit).
20:56:52 <ais523> I managed the decoder part of the encoder decoder in 111 bytes of BF, but it times out on anagolf
20:56:55 -!- cherez has joined.
20:57:04 <ais523> string reverses are not very efficient when done character by character in unary...
20:57:27 <ais523> on my computer, the example took 3.626 seconds to run
20:57:33 <ais523> which is higher than the timeout of 1.5 seconds
21:03:08 -!- oerjan has quit ("Good night").
21:08:11 <ais523> but I was wondering how the conversation had managed to die down
21:08:22 <ais523> presumably ehird` was busy working on something, as was I
21:08:35 -!- Sgeo has joined.
21:09:14 <ais523> wow, someone managed the encoder decoder in 91 bytes of brainfuck
21:09:23 <ais523> which is smaller and faster than my separate encoder/decoder...
21:09:31 <ais523> there must be a trick to the decoder that I haven't noticed
21:09:39 <ais523> maybe they hardcoded the number of bytes in the input
21:09:42 <Sgeo> Hi all/No all/Sal cxiu/Coi
21:10:18 * Sgeo tries to get people to look at the recent changes on the esolangs.org wiki
21:10:28 <Sgeo> Anything interesting?
21:10:52 <ais523> and me clearing up some spam
21:11:12 <ais523> it seems that you registered an example PSOX domain...
21:11:46 <Sgeo> I've silently finished PSOX 1.0 and am going to release it now
21:11:55 <Sgeo> Just kidding, but I'm regaining my interest in PSOX
21:12:12 <ais523> it might come in useful for adding file handling capabilities to INTERCAL
21:13:57 <ais523> actually, one mildly related idea that I've been thinking about is some sort of massive compatibility layer that can be used to link programs in any language with programs in any other language
21:14:33 <ais523> not sure about the details, but one idea I had was to use an ASCII art-style description file which was a flowchart showing how things linked together
21:18:44 -!- GregorR has changed nick to GregorR-L.
21:19:19 -!- GregorR-L has changed nick to GregorR.
21:22:30 -!- cherez has left (?).
21:58:34 -!- helios24 has quit ("Leaving").
22:01:05 -!- RedDak has quit (Remote closed the connection).
22:10:33 <ais523> ehird`: if you're still here, you might want to know that the RPN challenge is correct now
22:10:42 <ais523> I've entered a working 155-byte Perl entry
22:11:19 <ais523> 152 with UNIX newlines
22:15:08 -!- ais523 has quit ("I have to go now").
22:25:44 * Sgeo didn't get it until RodgerTheGreat mentioned it
22:26:39 <Sgeo> ehird`, did you hear the news about PSOX?
22:26:53 <ehird`> it's still overengineered vaporware?
22:27:34 <Sgeo> I'm releasing PSOX 1.0 now! --- not really, but I regained interest
22:28:02 <ehird`> we should have a '600 line esolang' contest
22:28:15 <ehird`> the premise: implement the coolest esolang that isn't minimalistic in 600 lines of C
22:29:03 <Sgeo> Define 'minimalistic' such that you can sensibly judge every conceivable esolang.
22:29:46 <Sgeo> Also, I set up the PRI registration page
22:30:09 <Sgeo> http://esolangs.org/wiki/PSOX/PRI
22:32:27 <ehird`> Glass is not minimal, brainfuck is.
22:34:30 -!- Tritonio_ has quit (Remote closed the connection).
22:37:09 <Sgeo> I'm thinking of changing file descriptors
22:37:54 <Sgeo> So that there aren't seperate functions for I and O, and ability to manipulate FDs other than the current one
22:37:56 -!- oklopol has changed nick to oklofok.
22:40:35 <ehird`> #So that there aren't seperate functions for I and O# that's retarded
22:41:03 <Sgeo> I meant, there's currently a seek function for infile descriptors and another for outfile descriptors
22:42:03 <Sgeo> ehird`, oklofok comments?
22:42:20 <ehird`> i don't like psox, much.
22:43:11 * Sgeo goes to make the first change in over a month
22:43:30 <Sgeo> ehird`, because you see it as vaporware, or are there other reasons?
22:46:01 <Sgeo> I don't think the description of FDs in psox.txt needs to change
22:48:38 <Sgeo> Hm, seeking through the current file descriptor will require knowing what the current file descriptor is..
22:48:41 <ehird`> fibs=1:1:zipWith(+)fibs(tail fibs)
22:48:41 <ehird`> main=do mapM print$take 46 fibs;return()
22:48:44 <ehird`> that could be shortened, heavily
22:49:36 <Sgeo> Maybe I should make 0 be a shorthand for current FD, and 1 is STDFD
22:49:53 * Sgeo goes to do that
22:53:36 <Sgeo> hm, actually, there's an oddity
22:54:13 <Sgeo> there is no "current" file descriptor, just the current infile descriptor and outfile descriptor
22:54:33 <Sgeo> So I can't use 0 to mean current FD
22:54:47 <Sgeo> unless 0 is current outfile, and 1 is current infile. 2 is stdfd
22:58:33 -!- jix has quit ("CommandQ").
23:02:54 <Sgeo> Reached revision 50!
23:03:01 <Sgeo> Well, not 50!, but 50
23:03:10 <ehird`> you know what would be cool?
23:03:15 <ehird`> an esolang based on MapReduce
23:04:11 <Sgeo> http://trac2.assembla.com/psox/changeset?new=trunk%2Fspec%2Fpsox.txt%4050&old=trunk%2Fspec%2Fpsox.txt%4038
23:10:13 <Sgeo> I'm leaving in the out_ and in_ separate in the impl, because of STDFD..
23:11:22 <Sgeo> n/m, I'll make stdout 0x02 and stdin 0x03
23:11:35 <Sgeo> Unless I remove the "current file descriptor" shortcuts
23:12:57 <Sgeo> ehird`, any thoughts?
23:13:07 <ehird`> none because i have not looked.
23:14:08 <ehird`> who was that guy who beat malbolge with a rusty stick and mastered its secrets?
23:14:47 <Sgeo> I really should separate stdin and stdout
23:14:57 <Sgeo> But what about the shortcuts?
23:15:25 <Sgeo> Do I really need shortcuts? Maybe I could have a function return the current fd?
23:16:43 <Sgeo> oklofok, paying any attention?
23:17:55 <ehird`> no because i don't care about psox
23:24:02 -!- timotiis_ has quit ("leaving").
23:29:55 -!- olsner has joined.
23:37:41 <ehird`> anyone know of an esolang that's in dire need of an impl but nobody's bothered?
23:41:47 <olsner> what happened to ninjacode?
23:42:03 <ehird`> olsner: it's still going to be written; it's just on the back-burner
23:42:09 <ehird`> nc2 is the main priority now, for me: #nc2
23:42:36 <ehird`> ssh, i'm trying to avoid expanding the name :-)
23:42:44 <ehird`> kind of like how the J site desperately avoids mentioning APL...
23:43:03 <ehird`> olsner: you got bored fast
23:43:36 <olsner> heh, late night at work, so I'll be entering daily hibernation as soon as possible
23:45:27 <ehird`> http://esolangs.org/w/index.php?title=FURscript&diff=6498&oldid=6496 <--I think this is probably better than the previous revision
23:47:48 <olsner> besides the profanity, I think they've got something going there
23:47:53 -!- zbrown has left (?).
23:51:41 <ehird`> olsner: oh noes, prrofanity, what will we do :D
23:54:06 -!- sebbu has quit ("@+").
23:54:39 <ehird`> GolfScript was created by the same guy as Minus
23:55:32 <EgoBot> help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon
23:55:34 <EgoBot> 1l 2l adjust axo bch bf{8,[16],32,64} funge93 fyb fybs glass glypho kipple lambda lazyk linguine malbolge pbrain qbf rail rhotor sadol sceql trigger udage01 unlambda whirl
00:01:57 -!- sarehu has quit (Remote closed the connection).
00:04:05 -!- sarehu has joined.
00:17:50 <ehird`> I want to kill this person:
00:17:54 <ehird`> 'You use manuals? Wow. I think your problems are bigger than coldfusion.'
00:19:26 <pikhq> ehird`: That's. . .
00:19:35 <ehird`> pikhq: Beautiful? Yeah. I know.
00:20:12 <pikhq> That is just painful to see.
00:20:38 <ehird`> pikhq: I'm sure you can manage. :P
00:22:21 -!- RodgerTheGreat has quit (Read error: 104 (Connection reset by peer)).
00:29:10 <ehird`> pikhq: Any thoughts on a hypothetical MapReduce-alike esolang?
00:29:14 <ehird`> I have no idea what it would be like. :P
00:39:27 <ehird`> pikhq: do you think it's a good idea, at least? ;)
01:04:03 -!- RodgerTheGreat has joined.
01:12:31 <Sgeo> pikhq, remember the stuff you did for PEBBLE wrt PSOX?
01:12:50 <Sgeo> If you had anything with the file descriptor stuff, it will need to be redone
01:13:19 <Sgeo> Also, I can't decide if I should make 0x00 short for current outfile, 0x01 current infile, 0x02 stdout, 0x03 stdin
01:13:27 <Sgeo> Or should I get rid of the shortcuts?
01:14:01 <Sgeo> RodgerTheGreat?
01:15:25 <RodgerTheGreat> 0x00 for stdout, 0x01 for stdin, 0x02 for current outfile and 0x03 for current infile.
01:15:36 <RodgerTheGreat> you should put them in order of how commonly they'll be used
01:15:39 -!- sarehu has quit (Remote closed the connection).
01:15:49 -!- sarehu has joined.
01:15:57 <Sgeo> 0 for out, 1 for in
01:16:17 <Sgeo> And the way to reset is with using the functions with standard fds
01:16:24 <Sgeo> But possibly current will be used more?
01:19:42 <Sgeo> Is it too many special FDs?
01:26:58 <ehird`> RodgerTheGreat: know of any esolangs desperately needing a good impl but there are none attempted?
01:27:59 <RodgerTheGreat> none come immediately to mind, but lemme crawl esolang
01:28:47 <Sgeo> Hm, should I bother putting in a feature to find out the current descriptor number, or should I not bother?
01:28:57 <Sgeo> It wouldn't be all too easy for me to add it
01:29:35 <RodgerTheGreat> bingo... http://esoteric.voxelperfect.net/wiki/Category:Unimplemented
01:30:08 <ehird`> RodgerTheGreat: bit unspecific :)
01:30:50 <RodgerTheGreat> this could be an easy start: http://esoteric.voxelperfect.net/wiki/JumpFuck
01:31:06 <ehird`> RodgerTheGreat: i made that
01:31:14 <ehird`> that was my first esolang
01:33:52 <RodgerTheGreat> oh, man- this sounds like a fun one: http://calamari.reverse-dns.net:980/files/bubble/bubble.txt
01:34:21 <Sgeo> Any glaring issues with http://trac2.assembla.com/psox/browser/trunk/impl/psox/fd.py ?
01:34:48 <ehird`> RodgerTheGreat: haha :)
01:34:54 <ehird`> that would be pure hell on earth in c, though
01:35:22 <ehird`> RodgerTheGreat: the dynamic shuffling of stuff, though
01:36:30 <ehird`> http://golf.shinh.org/reveal.rb?Timeout/kt3k/1196790123&z8b <-- a one character infinite loop. what fun
01:37:12 <ehird`> RodgerTheGreat: pretty much what that does
01:37:36 <ehird`> and i think one-byte ascii machine code infinite loops pretty much own
01:37:47 * Sgeo suddenly sees a glaring issue
01:38:48 <Sgeo> Forgot to change the outfile and infile to filelike in read() and write()
01:38:50 <olsner> LD H,C? which architecture is that?
01:39:49 <ehird`> is an ascii-only machine emulator thing
01:39:54 <ehird`> so we can splurge like
01:40:07 <ehird`> sdf#'Β£:$opjzxiub98yjjisad]][OP")_+
01:44:21 <ehird`> I wonder what a PHAWN impl in c would be like.
01:46:11 <olsner> "Phawn is still on the drawing board" haha
01:47:33 <ehird`> wait, what's funny about that
01:47:33 -!- olsner has quit ("Leaving").
01:51:37 -!- Tritonio_ has joined.
01:58:36 <ehird`> RodgerTheGreat: phawn.
02:00:23 -!- Corun has quit ("Arr").
02:23:18 -!- Sgeo has quit (Read error: 104 (Connection reset by peer)).
02:33:43 -!- ehird` has quit ("K-Lined by peer").
03:10:35 -!- GreaseMonkey has joined.
04:27:12 -!- immibis has joined.
05:29:35 -!- oerjan has joined.
05:32:13 -!- sarehu has quit (Read error: 110 (Connection timed out)).
06:00:21 -!- XMLCloser has joined.
06:06:10 -!- XMLCloser has quit (Read error: 104 (Connection reset by peer)).
06:10:14 -!- sarehu has joined.
06:16:07 -!- XMLCloser has joined.
06:36:23 -!- sarehu has quit (Read error: 110 (Connection timed out)).
06:58:06 <immibis> This is text <thisIsPseudoXML>
06:58:07 <XMLCloser> </XMLCloser> </thisIsPseudoXML> </immibis>
06:58:58 <immibis> <This is="XML" which="Shows" XMLCloser="has deficiencies">
06:58:59 <XMLCloser> </XMLCloser> </This is="XML" which="Shows" XMLCloser="has deficiencies"> </immibis>
06:59:56 -!- XMLCloser has quit (Read error: 104 (Connection reset by peer)).
07:02:16 -!- GreaseMonkey has set topic: THIS IS NOT THE TOPIC | I AGREE.
07:03:12 -!- immibis has set topic: 10 THIS IS NOT THE TOPIC : I AGREE : GOTO 10.
07:37:13 -!- olsner has joined.
07:38:02 -!- immibis has quit ("Hi Im a qit msg virus. Pls rplce ur old qit msg wit tis 1 & hlp me tk ovr th wrld of IRC. and dlte ur files. and email ths to).
07:56:48 -!- Tritonio_ has quit (Remote closed the connection).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:08:29 -!- CodeMangler has joined.
08:33:03 -!- GreaseMonkey has quit ("Hi Im a qit msg virus. Pls rplce ur old qit msg wit tis 1 & hlp me tk ovr th wrld of IRC. and dlte ur files. thx.").
09:16:19 -!- oerjan has quit ("leaving").
09:38:13 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)).
09:39:18 -!- puzzlet has joined.
10:34:15 -!- Figs has joined.
11:04:41 -!- jix has joined.
11:10:26 <Figs> this assignment is driving me nuts
11:10:53 <Figs> basically I have to reverse engineer the rest of the project to figure out what the hell the functions I'm supposed to write should do
11:11:22 <oklofok> immibis is the greatest :)
11:11:28 <Figs> since there's barely any documentation anywhere explaining the purpose of anything
11:11:48 <Figs> what is immibis?
11:11:59 <oklofok> it's a programming language
11:12:50 <Figs> I don't see it on the wiki
11:13:15 <oklofok> immibis is a guy occasionally on this channel
11:13:16 <Figs> I found a user
11:13:29 <Figs> he's a programming language?
11:14:26 <Figs> the cake is a lie.
11:14:32 <Figs> I haven't played that game.
11:14:51 <oklofok> the CAKE? the *CAKE*?? the cake is on fire
11:15:07 <Figs> http://limerickdb.com/?286
11:16:03 <Figs> There once was a buggy AI/Who decided her subject should die/When the plot was uncovered/The subject discovered/That sadly, the cake was a lie.
11:19:45 <Figs> Haa, this is a good one: http://limerickdb.com/?291
11:20:44 -!- oklofok has quit (Read error: 104 (Connection reset by peer)).
11:22:03 -!- oklopol has joined.
11:35:39 -!- jix has quit ("CommandQ").
12:11:16 -!- slereah__ has quit (Read error: 110 (Connection timed out)).
12:11:34 -!- slereah__ has joined.
12:35:37 -!- sebbu has joined.
13:02:42 -!- Figs has quit ("Java user signed off").
13:07:32 -!- puzzlet has quit (Remote closed the connection).
13:07:36 -!- puzzlet has joined.
13:13:46 -!- helios24 has joined.
13:17:19 -!- slereah__ has quit (Read error: 104 (Connection reset by peer)).
13:18:41 -!- Slereah has joined.
14:17:39 -!- timotiis has joined.
14:19:52 -!- Slereah has quit (Read error: 104 (Connection reset by peer)).
14:19:53 -!- slereah__ has joined.
14:43:20 -!- jix has joined.
15:23:52 -!- slereah__ has changed nick to Slereah.
16:31:24 -!- CodeMangler has quit (Read error: 113 (No route to host)).
17:09:15 -!- oerjan has joined.
17:58:04 -!- asiekierka has joined.
17:58:26 <asiekierka> I wonder what you consider "the best esoteric language", and what you consider "the easiest esoteric language"
17:58:52 <Slereah> Well, I'd say "mine", but it would be a little biased.
17:59:01 <Slereah> I like the concept of Gravity.
17:59:57 -!- RedDak has joined.
18:00:22 <Slereah> I mostly use Turing Tarpits, so I can't really say the easiest ones.
18:00:31 <Slereah> Since they're usually not easy.
18:00:48 <lament> the best esoteric language is clearly.
18:01:08 <asiekierka> I mean, the easiest, I.E. easiest to implement, but still sorta easy to use.
18:02:04 <Slereah> Well, BF is easy to implement. And sort of easy to use, with loose definition of easy.
18:06:25 <Slereah> I'd say, look for a high-level language.
18:06:36 <Slereah> Unless that's not esoteric enough for you!
18:06:55 <asiekierka> what do you consider the MOST ESOTERIC LANGUAGE EVER
18:07:33 <Slereah> Although it still uses an ordinary machine, sort of.
18:09:02 <asiekierka> you're dead for mentioning Malbolge. it's way too hard for an ordinary person.
18:09:21 <asiekierka> if you have IQ 155+, then you'll be able to understand it
18:09:33 <olsner> if ordinary people could do it, it wouldn't be esoteric, now would it?
18:10:12 <Slereah> Only INTERNET SUPERHEROES!
18:11:05 <asiekierka> OISC is great, it's the most minimal thing ever.
18:11:16 <asiekierka> it takes instructions in a different form
18:11:25 <olsner> zisc? isn't that ibm's old neural net processor?
18:12:05 <olsner> yeah, it's like having EVAL as an opcode
18:13:18 <asiekierka> you can minimalize it to two instructions with two arguments each.
18:13:29 <lament> olsner: having EVAL as an opcode would not be very useful if it were the only instruction.
18:13:37 <Slereah> Well, Lazy K has two instructions.
18:13:47 <asiekierka> JINE (Jump If NEgative) <variable> <address>
18:13:51 <lament> lazy k does not have two instructions.
18:13:55 <olsner> lament: depends on what it takes - let's say it takes a pointer to a block of lisp code :P
18:14:13 <Slereah> I'm not that good on terminology.
18:34:55 -!- RedDak has quit (Read error: 110 (Connection timed out)).
18:48:55 -!- faxathisia has joined.
19:19:58 -!- sarehu has joined.
19:49:07 -!- sarehu has quit (Read error: 110 (Connection timed out)).
20:08:38 -!- mental has joined.
20:19:47 -!- lament has quit (Connection timed out).
20:25:01 -!- ehird` has joined.
20:25:03 -!- ehird` has quit (Read error: 104 (Connection reset by peer)).
20:25:28 -!- asiekierka has quit.
20:25:32 -!- ehird` has joined.
20:27:26 -!- Slereah has quit (Remote closed the connection).
20:27:35 -!- Slereah has joined.
20:34:20 -!- oerjan has quit ("Good night").
20:46:11 -!- jix has quit ("CommandQ").
21:08:46 -!- mental has changed nick to lament.
21:10:53 -!- helios24 has quit ("Leaving").
21:16:59 <ehird`> GregorR: I am going to write malloc&co for c2bf.
21:17:06 <ehird`> Maybe even a garbage collector. <:O>
21:20:58 -!- faxathisia has quit (Read error: 104 (Connection reset by peer)).
21:24:13 <ehird`> ERROR in generation parameter_declaration: Type name parameters are not yet supported.
21:26:37 <ehird`> pikhq: pebble2 should be based on c2bf!
21:26:44 <ehird`> but with a whole load of primitives for cool brainfuck stuff.
22:11:14 -!- RedDak has joined.
22:11:30 <pikhq> If anything, c2bf should target PEBBLE.
22:46:48 <timotiis> this isn't the emacs window, is it?
22:50:19 -!- timotiis has quit ("leaving").
23:02:07 <pikhq> Why? Because PEBBLE should create *simple* code, not the word's most complex code.
23:02:26 <pikhq> And C2BF creates code worse than you'd expect from asm->bf->asm->bf.
23:11:13 -!- RedDak has quit (Remote closed the connection).
23:41:11 <ehird`> pikhq: c2bf code isn't that bad
23:48:19 -!- mib_hcz1e6me has joined.
23:49:20 -!- mib_hcz1e6me has quit (Client Quit).
23:49:35 -!- mib_nfvwl022 has joined.
23:49:54 <mib_nfvwl022> i like how the wii version is just the normal version
23:49:54 -!- mib_nfvwl022 has quit (Client Quit).
00:53:16 -!- calamari has joined.
01:15:25 -!- calamari has left (?).
01:25:40 -!- Sgeo has joined.
01:26:01 -!- sebbu has quit (Success).
01:57:57 -!- sarehu has joined.
02:17:13 -!- sarehu has quit (Read error: 110 (Connection timed out)).
02:50:45 -!- ehird` has quit ("K-Lined by peer").
03:13:17 -!- GreaseMonkey has joined.
03:15:47 * Sgeo is a beneficial mutation occuring in your lab.
03:19:12 <Slereah> Preparing THE HOLY WAR ON SCIENTOLOGY
03:21:10 <pikhq> Slereah: Would said mask bear any relation to Guy Fawkes? :p
03:21:17 <Sgeo> I'm going to eat then work on PSOX
03:21:51 <pikhq> Sgeo: BTW, for PSOX in PEBBLE2: you're in luck. I'm going to have an actual *type system* in there, I believe.
03:22:24 <Slereah> Although it will arrive in time for the second protest, in March.
03:22:43 <Sgeo> pikhq, did you note my changes to the File Descriptor system?
03:23:05 <Sgeo> With that, I need to eat
03:24:55 <RodgerTheGreat> I'm really in the mood to draw something. Any requests/ideas?
03:25:21 <pikhq> http://pastebin.ca/895846
03:25:30 <pikhq> I hope that, when I'm done, that will compile.
03:29:04 <pikhq> RodgerTheGreat: Thoughts on my idea?
03:29:28 <pikhq> Anyways: for you to draw: more of that series with the robotic revolution.
03:29:41 <pikhq> Actually, you should probably stick it on your nonlogic page, so that it's easier to find.
03:29:51 <Sgeo> pikhq, http://trac2.assembla.com/psox/changeset?new=trunk%2Fspec%2Fpsox.txt%4053&old=trunk%2Fspec%2Fpsox.txt%4038
03:29:58 <pikhq> (I know, I know, I could grep nonlogic dump and #esoteric logs. . . But I don't wanna)
03:30:10 <pikhq> Sgeo: Comments on my PEBBLE2 example?
03:30:29 <Sgeo> I don't understand PEBBLE2
03:30:49 <pikhq> What don't you understand?
03:30:49 <Sgeo> Oh, is that a proposed thing?
03:31:16 <pikhq> I've not implemented it; I've mostly been coming up with code examples while thinking of implementation.
03:31:39 <RodgerTheGreat> it looks like a pretty ambitious attempt at a macrolanguage
03:32:33 <pikhq> Which I think is appropriate for PEBBLE2.
03:32:44 <pikhq> The only hard part is going to be that expr command, I suspect.
03:33:26 <RodgerTheGreat> going with infix notation makes your job quite a bit more complex
03:34:10 <RodgerTheGreat> especially if you want to self-host- the only clean ways to do infix require converting to RPN or using recursion, and recursion does not lend itself well to BF
03:36:27 <pikhq> I'm not going to self-host.
03:36:44 <pikhq> How I'm thinking of doing the type-system and the allocation of variables does not lend itself to it.
03:37:17 <pikhq> I can either make it self-host, and have it be basically PEBBLE 1 done a bit more rigourously, or make it t3h awesome, and not have it self-host.
03:37:43 <pikhq> (I *really* don't want to do garbage collection from within BF)
03:38:00 <pikhq> Although making it RPN or Polish may help me out a bit.
03:38:27 <pikhq> Probably Polish because, after all, I already have commands like ":= $i 5" and "+= $i 5". . .
03:38:44 <pikhq> Making the expression parser handle those commands in the same way is merely consistent.
03:41:23 <pikhq> PEBBLE2 should end up making all PEBBLE code a hell of a lot cleaner as a result.
03:42:05 <pikhq> I'm really looking forward to making PFUCK about as trivial to write as a C version would be. :p
03:53:22 -!- immibis has joined.
04:50:17 <RodgerTheGreat> alright, I'm drawing these really fast, but I think you guys will still enjoy them
05:01:12 <pikhq> Would you class having a copy of your GPG revocation certificate and a secure way of encrypting your data as paranoid?
05:02:17 <pikhq> (I do neither ATM: I just have the means to)
05:03:24 * pikhq encodes his grocery list with tax records as the one-time pad. :p
05:05:49 <pikhq> Not really. I set all that up in half an hour.
05:06:18 <pikhq> . . . Perhaps a bit of free time.
05:06:56 -!- immibis has quit (Read error: 110 (Connection timed out)).
05:07:23 <pikhq> Of course, if/when I finish PEBBLE2, then we can say that it's a truly insane amount of free time used. :p
05:07:35 <pikhq> Hell, the same applies to PEBBLE 1.0. . .
05:07:42 <pikhq> I *did* spend the better part of a year on that.
05:07:53 <RodgerTheGreat> you're talking to the guy that spent a good chunk of 8 months writing a Java-based Pokemon clone.
05:08:17 <pikhq> You're talking to a guy who's been tempted to do the same in a different language.
05:08:39 <pikhq> I'd say we're about equal on the free time front.
05:09:11 <pikhq> I have yet to enter college, so. . .
05:11:03 <pikhq> You'd be amazed at how much work teachers think they can assign just because it's an 'honors class'.
05:11:17 <RodgerTheGreat> college devours your free time like no other. I was only able to work on CRPG during my vacation time- I would spend the first few days lying around, playing with my cats and watching TV, recharging. Then, I would code like a madman, laying down the ideas that had been splintering away in the back of my head for months.
05:11:34 <pikhq> When I have an actual college class (calc II) that has less homework than high school classes, you know something's up.
05:11:59 <pikhq> (either my teachers are insane, or that college sucks. :p)
05:13:53 <Sgeo> Can I give this line to a computer-illiterate person?
05:13:54 <Sgeo> "Downloading files SHOULD be safe, provided you do NOT open or run them."
05:14:10 <Sgeo> She stopped opening attachments and reading emails from non-@farmingdale.edu
05:14:10 <pikhq> Sgeo: Ask one of them.
05:14:41 <Sgeo> I'm trying to help tell this person what is and isn't safe..
05:14:51 <Sgeo> Are PDFs safe? >.>
05:15:20 <RodgerTheGreat> they do, interestingly, encapsulate several TC languages
05:15:21 <Sgeo> "application/pdf == Safe for Abode Reader to read, bad for Acrobat 4.0 and 5.0 (I think)"
05:15:27 <pikhq> PDFs are little more than Postscript that feels fairly uppity.
05:15:38 <Sgeo> "image/jpeg == Once problematic, should be safe if Windows is kept up-to-date"
05:15:50 <Sgeo> "application/msword == MS Word document, safe if your macro security
05:15:50 <Sgeo> settings are safe"
05:15:58 <Sgeo> "application/x-msdos-program == BAD BAD BAD"
05:16:31 <pikhq> Oh, yeah. . . I forget that this whole 'Microsoft' thing seems to think that executing arbitrary executable code in arbitrary files (even non-executable ones) is a good idea. . .
05:19:38 <Sgeo> .PIFs would be application/?
05:21:41 <pikhq> appliccation/x-pif, I think.
05:24:54 <Sgeo> "application/(anything else) == I can't predict every attachment, probably not safe"
06:11:37 -!- Sgeo has quit (Remote closed the connection).
06:55:07 <RodgerTheGreat> two more pages: http://rodger.nonlogic.org/images/axon/
07:17:04 -!- oerjan has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:49:24 -!- GreaseMonkey has quit ("Hi Im a qit msg virus. Pls rplce ur old qit msg wit tis 1 & hlp me tk ovr th wrld of IRC. and dlte ur files. thx.").
09:29:56 -!- oerjan has quit ("leaving").
10:03:16 -!- sebbu has joined.
10:24:33 -!- puzzlet has quit (Remote closed the connection).
10:24:41 -!- puzzlet has joined.
10:57:02 -!- puzzlet has quit (Remote closed the connection).
10:57:10 -!- puzzlet has joined.
11:11:14 <SimonRC> http://www.enterprise-architecture.info/Images/Documents/symeph%5B1%5D.pdf
11:11:15 <SimonRC> I particularly recommjend page 11
11:11:53 -!- sebbu2 has joined.
11:20:09 <SimonRC> in fact, their whole website looks a bit TDWTF-worthy
11:27:53 -!- sebbu has quit (Read error: 110 (Connection timed out)).
12:16:22 -!- helios24 has joined.
12:23:36 -!- Slereah has quit (Remote closed the connection).
12:32:23 -!- Slereah has joined.
13:24:03 <oklopol> expr isn't that hard, infix -> rpn is trivial, and rpn -> brainfuck is not that hard
13:30:51 -!- jix has joined.
13:37:17 -!- helios24 has quit ("Leaving").
14:43:01 -!- RedDak has joined.
15:07:16 -!- timotiis has joined.
15:12:11 -!- cepera has joined.
15:19:54 -!- cepera has quit ("freenode.net").
15:31:50 -!- ais523 has joined.
16:03:04 -!- Slereah has quit (Read error: 104 (Connection reset by peer)).
16:03:43 -!- Slereah has joined.
16:20:07 -!- Sgeo has joined.
16:25:08 <Sgeo> I might release an alpha version of the PSOX ref. interp. soon!
16:25:57 <Sgeo> Anyone other than me excited?
16:26:08 <Slereah> Depends, you've got some drugs?
16:40:44 <Sgeo> I decided that a lot of parsing should occur in @argtypes
16:48:15 <Sgeo> Itsy Bitsy Teenie Weenie Yellow Polka-dot Clarification
16:48:44 <Sgeo> ^^ used that as a commit message
16:49:15 * ais523 performs the sort of action which usually results in coffee spilling over a computer keyboard, but doesn't due to an empty mouth
16:59:42 <Sgeo> I'm too obsessed with that now to implement PSOX :/
17:06:24 * ais523 uses single-character smilies
17:09:41 <Sgeo> Alpha version will implement the pseudodomains and domain2
17:24:00 -!- RedDak has quit (Remote closed the connection).
17:24:52 * Sgeo feels like everything's close to completion
17:46:49 -!- RedDak has joined.
17:48:22 -!- Dagide has joined.
17:48:53 -!- RedDak has quit (Client Quit).
17:49:03 -!- Dagide has quit (Read error: 104 (Connection reset by peer)).
17:49:19 -!- RedDak has joined.
17:49:31 -!- Hiato has joined.
17:50:34 <Hiato> alright, I retract my previous statement and insert an "Hello all :)"
17:53:11 * ais523 always writes Hello, world! with the comma
17:54:11 * Hiato realises that this is some kind of string handling syntax as of yet unknown to him
17:54:29 <ais523> it's Perl and sed syntax for substituting regexps in strings
17:54:41 <Slereah> s/A/B = substitute A for B
17:54:41 <ais523> s/a/b/ changes the first a in some string to a b
17:54:48 <ais523> s/a/b/g changes all as to bs
17:54:59 <Hiato> what is the g for then?
17:55:02 <ais523> on IRC, the string that's operated on normally has to be determined from context
17:55:08 <Slereah> It's the same as *B, but * requires the context to be obvious.
17:55:10 <ais523> without the g, it only makes one change
17:55:57 <ais523> "This sentence contains many nonsklarkish English flutzpahs, but the overall plugganzip can be glorked from context"
18:01:59 <Sgeo> Hiato, excited about a possible alpha release of PSOX today?
18:02:31 <Hiato> very much so, I was not aware of this aforementioned release, but know I am ;)
18:03:55 <Sgeo> Do custom domains need to be working for this release?
18:05:54 <Hiato> that is you decision entirely, it would be nice, but hey ;) Also, now is supper, so I'll be back after I've my fill..
18:07:01 -!- jix has quit ("CommandQ").
18:11:46 -!- oerjan has joined.
18:13:55 <Sgeo> Might be an alpha release of PSOX.py soon!
18:16:22 <Sgeo> It will be just pseudodomains and domain2(System)
18:26:21 -!- oerjan has set topic: fix $ (++) "THE TOPIC IS NOT " . show.
18:28:07 <Hiato> ok, I'm back. Sgeo: any news?
18:28:33 <Sgeo> Just pseudodomains and domain2(System), not custom domains yet
18:28:42 <Sgeo> and you'll get it via SVN maybe
18:30:15 -!- helios24 has joined.
18:30:47 -!- olsner has quit (Read error: 110 (Connection timed out)).
18:33:15 <Sgeo> Currently, I'm writing a lot of code w/o testing :/
18:34:10 <Hiato> I would offer to test, but then again, you don't want an idiot smashing randomly at your code ;)
18:35:31 <Sgeo> I'll do testing, and hopefully any and all bugs will make themselves obvious
18:42:12 <Sgeo> Testing now, trying to fix a bug
18:42:16 <Sgeo> Don't know what's causing it
18:44:15 <ais523> what effects does the bug have?
18:44:32 <Sgeo> Nothing is happening
18:44:47 <Sgeo> When I do Ctrl-C, I find it's at the point where it retrieves a line from the client
18:45:42 -!- olsner has joined.
18:45:46 -!- olsner has quit (Read error: 104 (Connection reset by peer)).
18:45:53 <Sgeo> Actually, that's in the loop, so maybe I should throw some prints in
18:47:32 -!- olsner has joined.
18:47:43 <Sgeo> It's not getting past that line at all
18:47:58 <Sgeo> Maybe I should test with a Python program not a BF one
18:52:24 <Sgeo> That's a strange bug, it's misreading the version number..
18:52:28 <Sgeo> But that's a separate issue
18:52:57 <Sgeo> Oh, I commented something out without knowing what it does
18:53:28 <Sgeo> Ok, fixing that line helps
18:56:54 <Sgeo> Oh, it's not working with the BF file at all
18:57:03 <Sgeo> It's like the BF interp never flushes its stdout
18:57:16 <Sgeo> In the Python file, I'm flushing stdout manually
19:00:55 -!- n0nsense has joined.
19:02:42 <oerjan> no n0nsense here please. we should all speak perfectly cromulently.
19:03:15 <n0nsense> I wrote a bot in Tcl with commands to evaluate brainfuck^^
19:10:25 <lament> so much useless software in this world.
19:11:25 <Sgeo> Is PSOX useless?
19:11:42 <RodgerTheGreat> well, there are two ways software can be useful- useful to the world, and useful to the maker. Even if nobody else is ever going to see the code, it can still be a good learning experience.
19:11:49 * ais523 saw a suggestion once that it would be possible to perform parallel computing by sending specially-crafted HTTP requests to a huge number of computers in such a way that whether they were accepted/rejected/bounced/replied-to/whatever performed the computation
19:12:22 <ais523> it would be great if there were some way to write a massively parallel BF interp like that, but unfortunately I doubt it's possible
19:12:33 <ais523> and besides, you'd probably get sued by people for wasting their bandwidth
19:13:34 -!- RedDak has quit (Remote closed the connection).
19:14:12 <RodgerTheGreat> it's a beautiful thing to realize that almost any environment can be used to perform computation
19:14:58 <ais523> before I discovered esolangs, a related pursuit I used to try was to see what environments could be programmed
19:15:10 <ais523> I used to test them with a simple noughts-and-crosses program that never lost if going first
19:15:31 <ais523> that program is easy to write because you can write it as four independent threads if necessary that never need to interact
19:15:46 <ais523> so not a demonstration of TCness or even computational usability, but still impressive
19:15:52 <lament> never need to interact?
19:16:02 <lament> they don't share resources?
19:16:13 * ais523 was talking in a theoretical sense
19:16:16 <RodgerTheGreat> I'd assume they share input events and the ability to draw to the screen
19:16:18 <ais523> you can program it in Paint, for instance
19:16:33 <ais523> by using two slightly different colours and bucket-fill as the input mechanism
19:16:44 -!- n0nsense has left (?).
19:17:02 <ais523> i.e. clicking on any particular location for your move causes the appropriate move to be echoed by Paint because they're connected by a thin line in a different colour
19:17:18 <ais523> and the point is that there are four move-pairs that can be triggered in any order
19:17:44 -!- danopia`school has joined.
19:19:58 <ais523> http://filebin.ca/tesmth/OANDX.BMP
19:20:25 <ais523> that's it with two shades of blue which are hopefully different enough for you to see how it works
19:20:45 <ais523> hmm... maybe I should make a PNG version. It's years since I last looked at that file
19:22:51 <ais523> looking at the dir it's in, it seems I have a winhlp32 and Powerpoint version as well
19:23:02 <ais523> or maybe the original winhelp
19:23:13 <ais523> because I used to use Windows 3.1 around that time
19:23:30 <Hiato> woow, asi523 - that's ingenious!!
19:23:37 <Hiato> beautifully thought out :D
19:23:46 <Sgeo> ..What looked like a bug was me forgetting how the input function worked...
19:24:56 -!- danopia has quit (Connection timed out).
19:25:08 <Hiato> would I be correct in saying that it is not possible to win?
19:25:39 <ais523> in fact that's why that algorithm was chosen
19:25:47 <ais523> simple, yet impresses people who don't understand programming
19:26:07 <Hiato> indeed, even for those who think they do ;)
19:27:04 <Sgeo> What are we talking about?
19:27:17 <ais523> an image I mentioned about 7 minutes ago
19:27:32 <ais523> that gives the illusion of being a noughts-and-crosses program for Paint
19:28:26 <Hiato> hrm... I'm thinking of messing with this to implement a draw and lose sign (same construction technique I think) - though I'm not sure it's possible because paint is a definite overwrite procedure, if's and dependencies are not really possible.... perhaps lighting up lose/draw letter by letter may work, but then again, there is no way to say for sure what order the squares where played in...
19:29:22 <ais523> I thought about that too, but never seriously tried
19:29:32 <RodgerTheGreat> you can think of the floodfill as a much more limited version of wireworld, in a sense
19:30:07 <lament> photoshop fill, which fills similar colors (up to a given threshold) as well as exact match, can be used to implement logic gates
19:30:22 <Hiato> yeah, that is an awesome idea :D
19:30:24 <RodgerTheGreat> Hiato: and you can do a form of sequencing logic- lemme see if I can come up with an example...
19:30:49 <Hiato> I'd like to see this
19:33:22 <Sgeo> Well, for some reason it's skipping some input..
19:33:38 -!- Tritonio_ has joined.
19:33:40 <Sgeo> Maybe I should see what the server is sending
19:35:10 <ais523> hmm... does that need two fill colours for user input to work?
19:35:14 <RodgerTheGreat> if all four cyan paths have been filled with black, the pathway from bottom to top can now be filled with a different color
19:35:18 <Sgeo> The input command is sending stuff all at once
19:35:27 <ais523> however, you can assign them to left-click and right-click
19:35:48 <RodgerTheGreat> and I'm pretty sure it's impossible to do anything complex with a single color
19:36:09 <Hiato> damn, I see know, that is actually very very clever
19:36:24 <RodgerTheGreat> but the above is essentially an arbitrary-input AND gate. :)
19:36:31 * Hiato goes to work on the lose sign
19:37:04 <RodgerTheGreat> and OR gates are naturally trivial... so you can do combinational logic... holy shit
19:37:28 <Hiato> which can be overcome
19:37:31 <ais523> and the fact that changing one input can affect another input
19:37:39 <Sgeo> That's because when I was trying to fix things, I changed the client a bit
19:37:43 <Hiato> vy using as many layers as necessary with different colours
19:37:44 <ais523> whereas in most programming languages changing an input only affects the outputs
19:37:56 <Hiato> and spacing in between
19:38:16 <RodgerTheGreat> ais523: I think it should be possible to overcome that with multiple colors
19:38:48 <Hiato> pretty much what I said :P
19:40:13 <Sgeo> The cat program WORKS!
19:40:56 <ais523> cat from file to file, presumably
19:40:56 <lament> with multiple colors, you can certainly have logic gates, but it's too much work for the user
19:40:59 <Sgeo> Actually, the Python client that is a client that does cat is
19:41:01 <ais523> otherwise PSOX isn't really needed
19:41:08 <Sgeo> ais523, I'm just testing
19:41:22 <Sgeo> But this client in Python is the first PSOX program ever run successfully
19:41:35 <Hiato> hrmm... this requires many and gates
19:41:42 <Sgeo> Don't know why BF isn't working
19:42:20 <Hiato> running into wire crossing :(
19:43:35 <Sgeo> Another BF program is sending stuff, but this one isn't
19:45:48 <RodgerTheGreat> lament: I'm not sure- I think it might be possible to do everything with sort of a "two-color logic"
19:45:57 <lament> still too much work for the user
19:46:24 <Hiato> hrmm, I'm still on the gates, perfecting and working :P
19:47:22 <ais523> incidentally, this reminds be of another esolang I was working on
19:47:47 <ais523> what I can remember is that it was a cellular automaton in 2D
19:48:08 <ais523> that cells only ever changed to be brighter colours, never darker
19:48:17 <ais523> and that http://pastebin.ca/896573 is a TC proof by emulating rule 110
19:48:24 * oerjan is reminded that 2-coloring is easy while 3-coloring is NP-complete
19:48:25 <ais523> but I've completely forgotten how the lang worked and never documented it
19:48:28 <Hiato> interesting, what happens after white
19:48:42 <ais523> Hiato: then the cell can't change at all
19:48:49 <ais523> in fact, most cells never change more than once, if ever
19:48:54 <Hiato> I see, a shame this wanted documented
19:48:58 <ais523> it was an experiment in irreversible programming
19:49:04 <Hiato> I see... sounds interesting
19:49:13 <Sgeo> The client isn't sending stuff!
19:49:19 <Sgeo> Why isn't the client sending stuff!
19:49:23 <ais523> however, the only way to recover the spec now is likely to reverse-engineer it from the one surviving program
19:49:34 <oerjan> Sgeo: block buffering perhaps?
19:49:57 <ais523> are you flushing the output after every write?
19:50:13 <Sgeo> Maybe the person who wrote the bf interp is an idiot and . sets the current cell to 0
19:50:16 <ais523> if you aren't, pipes between programs sometimes will store up a lot of data and then output it all at once, for efficiency reasons
19:50:27 <oerjan> a file can be unbuffered, line buffered or block buffered. with the last output is only sent when the buffer is full.
19:50:34 <Sgeo> ais523, can't force client to flush
19:50:38 <Sgeo> Except with newlines
19:50:41 <ais523> oerjan: or there's an EOF signal
19:51:14 <oerjan> and only line buffering implies flushing on newlines
19:51:36 <ais523> on Unices a single Control-D will flush standard input if there's at least one unflushed character in it
19:51:46 <ais523> or end-of-file if all characters have been flushed
19:51:53 <ais523> (and, of course, the terminal controls stdin)
19:54:05 <Sgeo> How do I make the bf interp flush on newlines?
19:54:21 <ais523> what lang is it written in?
19:54:38 <Sgeo> I don't know, it's the interp that Ubuntu has
19:54:51 <ais523> Ubuntu has two bf interps
19:55:01 <Sgeo> the one done with command `bf`
19:55:44 * ais523 downloads its source code
19:56:18 <ais523> it autoflushes after every character
19:56:24 <ais523> so flushing isn't the problem
19:56:49 <ais523> line 294 of bf.c, if you're interested
19:58:13 <RodgerTheGreat> Hiato: counters are also really easy: http://nonlogic.org/dump/images/1202500500-count.png
19:58:54 <ais523> RodgerTheGreat: using cyan/black alternation as the input?
19:59:11 <RodgerTheGreat> I think a cyan/black/cyan/black "pumping logic" could be used to create arbitrarily complex machines. The real challenge will be trying to come up with self-resetting gates
19:59:13 <ais523> I seem to remember discovering that pattern as well, although I never used it for anything useful
19:59:31 <ais523> a self-resetting gate is impossible
19:59:31 <Hiato> is that functional?
19:59:47 <ais523> because once two sections of colour have fused together by becoming the same colour, there's no way to reverse it
19:59:58 <ais523> and without fusing colour sections there's no obvious way to do logic
20:00:02 <Hiato> PS: currently I have a mismatched, but functional winning device that works for the following config:
20:00:19 <Hiato> yes, I must agree with asi523 here...
20:00:56 <RodgerTheGreat> and anything more complex than two-color logic would be unfeasible from a user perspective
20:01:16 <Hiato> that's the exact problem I am having
20:01:29 <Hiato> the winning counter works once, but only once
20:01:40 <Hiato> without user intervention, I cannot reset it.
20:01:52 <ais523> Hiato: just tell them to return-to-save at the end of a game
20:02:20 <Hiato> then thing is: It isn't even a correct way to win
20:02:36 <Hiato> my rules are: if you occupy the top right spaces, you win (right angle in a row)
20:03:01 <Hiato> yeah, I was. This is for the "CPU"
20:03:21 <Hiato> would we call this emergent behaviour? (Out of interest)
20:04:02 * ais523 used to call it "alternative programming"
20:04:10 <RodgerTheGreat> I call it "lifting". We're taking the logic embedded in the flood-fill tool and raising it to a level at which we can make use of it.
20:04:36 <Hiato> I like all of these terms ;)
20:06:57 <Hiato> http://filebin.ca/gonsrd/wingate.JPG
20:07:06 <Hiato> it's pretty much what I am using, nothing special
20:07:17 <Hiato> a minor variation on RodgerTheGreat's idea
20:07:20 <Sgeo> I ran the bf cat program for PSOX successfully!
20:07:21 <lament> you could choose a better format than jpg, you know.
20:07:35 <Hiato> but it's not for actual testing
20:08:12 <ais523> Sgeo: what was wrong beforehand?
20:08:21 <Sgeo> I still do not know, actually
20:08:40 <Hiato> the thing here is: Once the switch is sent through that activates one of the conditions, I still need to send one more black "pulse" to make it pass through the completed gate
20:08:42 <Sgeo> Probably I kept messing up the BF code
20:09:14 -!- Tritonio__ has joined.
20:10:16 -!- Tritonio_ has quit (Read error: 110 (Connection timed out)).
20:10:25 <Hiato> this is very difficult...
20:11:36 <Hiato> my verdict: not practical ( :P ), but plausible. It requires such thorough planning so as to make no "wires" cross and seeing as gates are not re-usable, I cannot consider this TC ;)
20:11:57 <ais523> lack of data storage implies that it's not TC
20:12:09 <ais523> lack of reversibility implies it's not even bounded-storage or FSA
20:12:19 <ais523> on the other hand, it may still be marginally useful for computation in some circumstances
20:13:12 <Hiato> lets see, how's about the term "disposable computation" :P
20:15:11 <ais523> grr... I must really try to figure out what the spec for that rule-110-implementing language was
20:15:36 <Hiato> ok, I officially give up on the win/lose/draw signs. I'm convinced it's not possible, as besides all the aforementioned problems, you cannot make an automated even that needs more than 1 "pulse", so I can't send a win or lose through, even if the gates somehow worked without wire crossing/bleeding of gates from one to another.
20:16:22 <RodgerTheGreat> I don't think it's not possible, but I will agree it is not a simple problem.
20:16:25 <ais523> at a guess, and partly influenced from memory:
20:16:40 <ais523> the cells of the program are coloured in colours
20:16:52 <ais523> (the comment would seem to imply that)
20:17:05 <ais523> if a R/G/B component of a cell is 0, that component can never increase
20:17:27 <ais523> a cell can only change if for each colour component that is non-0 in that cell, some neighbouring cell is brighter in that component
20:17:55 <ais523> and all the cells that do change set each of their components to the maximum of any neighbouring cell's component in that colour
20:17:55 <Hiato> RodgerTheGreat: I'm pretty darn sure that it is not possible, for the simple reason that you cannot automate the displaying of anything, as one event to complete gate, then you need another to fuse sign colours together. IE: after the user/paint has made three in a row, there needs to be one more event to trigger the signs.
20:18:33 <ais523> the program is tiled across the plane infinitely, to provide the TCness
20:18:39 <Hiato> that sounds complicated, yet fascinating
20:18:42 <ais523> and user input changes the colours somehow, to set things going
20:19:51 <ais523> it's sort of like floodfill, but more interesting
20:19:53 <Hiato> im interested though, asi523, how would one convey a message from one place to another if, with each use, the pathway will effect it's neighbours and it will reach the end of its life soon (255,255,255)
20:19:59 <Sgeo> I finished coding the system domain, except for mapping (which should be a2), and need just to test it
20:20:05 <ais523> the tiling is infinite
20:20:20 <ais523> so you start the program running at just one point on the infinite plane, and the paths go on for ever
20:20:24 <Hiato> but surely a given path can only be used x number of times
20:20:35 <ais523> yes, but you only need to use it x number of times
20:20:51 <ais523> there's a reason why the program emulates a 1D cellular automaton
20:21:00 <ais523> I think it runs from top to bottom evaluating the automaton
20:21:24 <Hiato> aha, here comes the conundrum: if it is TC complete, then it may well never halt, but your programme will halt on the xth iteration of a specific path
20:21:25 <ais523> and after a certain number of steps all cells above a certain point become irrelevant and that's the first moment that cells below a certain another point can change
20:21:35 <ais523> Hiato: there are an infinite number of paths
20:22:13 <Hiato> I was under the impression that you had to programme this thing though (in some abstract sense, like COnway's game of life). I think I see now that it builds itself :)
20:23:17 <Hiato> I think though that I am still misunderstanding you...
20:23:20 <ais523> of course, this is all deduction and a slight bit of memory, so some of the details may be wrong
20:23:30 <ais523> maybe the only solution will be to write an interpreter and see if the program runs
20:24:37 <Hiato> I must say, that above all else, Cellular Autonoma is probably the single most fascinating thing that I have seen yet on a computer
20:33:55 <GregorR> Strange that you'd misspell something that fascinating to you :P
20:34:52 <Hiato> anyway, asi523: this is pretty similar (well vaguely) to what you were proposing [if only just] http://en.wikipedia.org/wiki/Cyclic_cellular_automaton
20:34:54 <oerjan> no, Cellular Autonoma really _are_ even more fascinating. they just haven't been invented yet :D
20:35:35 <oerjan> Hiato: well you could also start spelling ais523 right...
20:35:39 <GregorR> http://www.codu.org/pics/displayimage.php?album=4&pos=6 // I wrote a raycaster that takes real elevation data and satellite imagery - I'm proud of it 8-D
20:36:23 <Hiato> blarg, it's not my night
20:37:19 <Sgeo> Ok, the regex processor is working, the current problem is in the types
20:37:21 <Hiato> GregoR: impressive :D
20:37:44 <ais523> Hiato: that link is interesting, but seems somewhat different from my irreversible programming language
20:38:46 <Hiato> true, but it is vaguely reminiscent in the sense of neighbour value comparisons to determine the next state. At least that is the parallel I drew
20:39:07 <Sgeo> Why can't this thing handle something so simple like FNUM(3)
20:39:50 <GregorR> Hiato: I have the source up somewhere, I'm not officially releasing anything because a friend of mine claimed he could make it 100x faster, so I gave it to him :P
20:40:05 <GregorR> If he does make it 100x faster, I'm turning it into a plugin for FlightGear :P
20:40:20 <Hiato> oh yeah, awesome. Sure, no worries :)
20:42:02 -!- ais523 has quit ("going home").
20:43:35 -!- RedDak has joined.
20:44:50 <Sgeo> Ok, not all of the information is being given to the type to process
20:48:57 <Sgeo> So it isn't quite argtypes's fault
20:50:34 <Sgeo> And the root cause of the problem: An * that didn't belong
20:50:53 <Sgeo> At least SEEINTERNAL now shows a lot of stuff
20:51:33 <Sgeo> Ok, now I think it's all ready woohoo
20:52:06 <Sgeo> Should I just wrap it up in the current directory structure and add a README.txt
20:55:27 <Sgeo> Here's the changeset: http://trac2.assembla.com/psox/changeset/59/
20:56:19 <Sgeo> Hiato, you there?
20:57:15 <Sgeo> The bug I was talking about most, was send(the_func(the_domain, *argtuple)) instead of send(the_func(the_domain, argtuple))
20:58:54 <Hiato> I'm not sure what you are on about, but I'll be glad to help if I can
21:05:15 <Sgeo> Ah crud. Do the .svn folders ever contain sensitive stuff?
21:05:37 <Sgeo> Because I made a .zip archive and it included .svn
21:05:45 <Sgeo> Or maybe I should remove them manually?
21:07:48 * Sgeo gets rid of some .svn and backup files that got in there.
21:07:54 <Sgeo> Then... RELEASE of a1!
21:09:59 <Sgeo> Oh, I left a test function in the system domain
21:14:17 <Sgeo> http://sgeo.diagonalfish.net/esoteric/PSOX-1.0a1.zip
21:14:33 <Sgeo> oerjan, oklopol anyone else interested?
21:22:17 <GregorR> .svn doesn't contain anything sensitive, all the login data et c is contained in ~/.subversion
21:23:43 <Sgeo> Anyone looking at the release?
21:25:22 <Sgeo> RodgerTheGreat, RedDak , Hiato?
21:26:07 <Sgeo> http://sgeo.diagonalfish.net/esoteric/PSOX-1.0a1.zip
21:26:34 -!- cherez has joined.
21:27:00 <Sgeo> http://sgeo.diagonalfish.net/esoteric/PSOX-1.0a1.zip
21:27:49 <Sgeo> Is ANYONE looking at it?
21:28:12 <Sgeo> http://esolangs.org/wiki/PSOX
21:28:47 <Sgeo> Admittedly, the code is ugly
21:30:01 <lament> so it's a protocol? where's the spec?
21:30:48 <Sgeo> It's in there, as well as http://trac2.assembla.com/psox/browser/trunk/spec
21:31:07 -!- Hiato has quit (Read error: 110 (Connection timed out)).
21:31:23 <Sgeo> RodgerTheGreat, did you run the example?
21:31:44 <RodgerTheGreat> I also find it interesting that you support math in the PSOX API- it'd definitely come in handy for languages like INTERCAL and the like
21:32:10 <Sgeo> the BF examples in the impl work while some example in ex doesn't work, I think
21:43:35 -!- RedDak has quit (Remote closed the connection).
21:43:46 <Sgeo> http://sgeo.diagonalfish.net/esoteric/PSOX-1.0a1.zip
21:43:59 <Sgeo> (does not support custom domains and domains other than 0-2)
21:45:10 <pikhq> This weekend, I plan on working on PSOX.
21:45:31 <Sgeo> Maybe I should have added custom domains before release
21:45:50 <Sgeo> Although I guess I can just tell people that SVN supports custom domains once it happens
21:46:57 <Sgeo> But I have a feeling that custom domain support would be rather simple..
21:48:58 <Sgeo> If you want to test writing your own domain, you can write it as a builtin for now, actually
21:49:35 <Sgeo> You can make it builtin 3 for instance. The thing that adds in the builtins doesn't check odd or even
21:50:12 <Sgeo> And when custom domains are implemented, they can override the builtins when a client executes the mapping function
21:52:54 <Sgeo> Where's ehird?
21:53:19 <Sgeo> PSOX can no longer be considered to be vaporware
21:53:37 <pikhq> Sure it can. Just not truthfully.
21:57:22 <Sgeo> Maybe I shouldn't have zipped the release up, just left it in SVN
21:58:08 <Sgeo> Anyone interested in an alpha version would be interested in the most up-to-date version possible
22:01:03 <Sgeo> How could such a thing POSSIBLY store body parts, or even nomod scripts for that matter...
22:01:08 <Sgeo> erm, wrong channel
22:05:58 -!- danopia`school has quit (SendQ exceeded).
22:08:37 <oerjan> indeed, get the newest version of PSOX that can store body parts
22:09:01 -!- ehird`_ has joined.
22:10:06 <Sgeo> Guess what you can't call vaporware anymore..
22:10:07 <Sgeo> http://sgeo.diagonalfish.net/esoteric/PSOX-1.0a1.zip
22:10:31 <Sgeo> (doesn't support custom domains or domains other than 0-2
22:12:27 <Sgeo> ehird`_, you awake?
22:12:49 <Sgeo> ehird`_ pinged out on another network we share
22:13:21 -!- ehird__ has joined.
22:13:25 -!- danopia has joined.
22:13:35 <Sgeo> did you see my messages?
22:13:56 -!- ehird__ has set topic: ((lambda (f) (lambda (x) (f (lambda () (x x)))) (lambda (x) (f (lambda () (x x))))) (lambda (f) (display "THE TOPIC IS NOT ") (write (f)))).
22:14:12 <ehird__> nothing after 'its still vaporware'
22:14:13 <Sgeo> http://sgeo.diagonalfish.net/esoteric/PSOX-1.0a1.zip
22:14:35 <Sgeo> I never saw an 'its still vaporware'
22:15:04 <ehird__> Sgeo: its still vaporware.
22:19:50 <ehird__> you know what would be cool
22:19:54 <ehird__> a lazy erlang/prolog hyrbid
22:23:34 <ehird__> also, evaluation terminates if something else
22:23:35 <ehird__> "hi" will never be printed.
22:23:45 <ehird__> if(x,y,z) -> not(Ξ» -> x,y,x), z. !! this would work if you didn't need the return value.. but generally you do
22:23:54 <ehird__> if(x,y,z) β not(Ξ» β x,y,x), z.
22:27:41 -!- ehird`_ has quit (Read error: 113 (No route to host)).
22:29:43 -!- ehird__ has quit ("K-Lined by peer").
22:29:52 -!- ehird`_ has joined.
22:31:31 <ehird`_> if(x,y,z) β not(Ξ» β x,y,x), z. !! is it possible to make this return y or z?
22:32:09 <ehird`_> (evaluation of the predicate terminates after the first false statement, and the whole predicate becomes false, btw.)
22:34:04 <Sgeo> ehird`_, you have absolutely no interest in PSOX?
22:44:43 <Sgeo> What did you need me to say "foo" for?
22:45:14 <pikhq> Sgeo: I will be using PSOX as an optional feature in the PEBBLE2 standard library once I get that off the ground.
22:45:26 <pikhq> (probably togglable via some switch like --enable-feature psox)
22:48:16 <Sgeo> Did you poke around the released alpha yet?
22:49:59 <ehird`_> pikhq: You have any idea for 'if'? :P
22:54:27 <ehird`_> if(x,y,z) β or(and(x,y),z). !! well this would work, but it depends on 'or' and 'and' ;)
22:56:11 -!- oerjan has quit ("Good night").
22:59:16 -!- puzzlet_ has joined.
23:01:14 -!- puzzlet_ has quit (Read error: 104 (Connection reset by peer)).
23:05:15 -!- puzzlet_ has joined.
23:06:45 -!- sarehu has joined.
23:12:01 -!- puzzlet has quit (Read error: 110 (Connection timed out)).
23:18:53 <RodgerTheGreat> hey guys, I finished a new game! http://rodger.nonlogic.org/games/ICEBreaker/
23:24:30 <Sgeo> ehird`_, why? It does seem to be
23:26:08 * Sgeo wonders what this unsaved change in an example BF file was..
23:26:16 * Sgeo hopes it wasn't anything important..
23:27:10 <ehird`_> Who wants to join the TURKEY BOMB IMPL_EMENT ATION PR_OJECT?
23:30:35 <RodgerTheGreat> how the hell would you implement turkey bomb? It's a drinking game!
23:31:09 <ehird`_> DRINKING GAME -> PROGRAMMING LANGUAGE -> DRINKING GAME -> PROGRAMMING LANGUAGE&DRINKING GAME
23:31:19 <ehird`_> Also, ais523 was working on one, at one point.
23:31:26 <ehird`_> He had a trick to make it turing complete but I forget what it was
23:31:42 <ehird`_> One thing I like about his: it used ^L page feed to seperate players
23:33:02 <GregorR> All programming languages are drinking games if you do it right.
23:33:27 <ehird`_> #turkeyb, since we can't name the binaryTURKEY_BOMB :p
23:35:38 <ehird`_> (its option to enable turing completeness will, of course, be called TURING BOMB)
23:36:19 <ehird`_> you can never tell whether the drinking will stop!
23:42:01 <ehird`_> Either I have to contain a tag in each object (interferes a bit), or I have to have first-class types.
23:42:08 <ehird`_> tag is probably the best way.
23:42:15 <ehird`_> void *TURKEY_BOMB = &TURKEY_BOMB;
23:50:15 -!- Slereah has quit (Read error: 104 (Connection reset by peer)).
23:54:41 <ehird`_> } TURKEY_BOMB[] = { { 12, (struct _TB *)TURKEY_BOMB } };
23:59:37 <ehird`_> RodgerTheGreat: Hmm. ZILCH cannot be void because it needs a tag :P
23:59:50 -!- timotiis has quit ("leaving").
00:00:12 -!- olsner has quit ("Leaving").
00:01:03 <ehird`_> also, BI_IT has *significant* padding :P
00:01:55 <ehird`_> Ah, looks like I'll need to pick up another of ais523's tricks: AMICED is clearly impossible, so i can have a NEGATIVE_AMICED, and make all operations on it inversed
00:02:31 -!- slereah__ has joined.
00:03:49 <ehird`_> 'A quarter of a reference to a object of the given type.'
00:03:58 -!- olsner has joined.
00:05:14 <ehird`_> If I ever need to print out the size of a TURKEY BOMB object, I'm going to be lying significantly. :P
00:07:01 <ehird`_> I am unsure how to represent a NOMENCLATURE.
00:11:10 <Sgeo> Can I add the PSOX stuff to the topic?
00:11:11 <ehird`_> Well, I've got most of the types codified. The hard part is doing operations on them.
00:11:26 <ehird`_> Sgeo: Um, no? No other esoteric language thing has that priviledge..
00:11:56 <ehird`_> anyway, for anyone who's interested:
00:12:10 <ehird`_> mentally fix the typo 'quater' ;)
00:14:34 -!- puzzlet_ has quit (Remote closed the connection).
00:14:41 -!- puzzlet has joined.
00:30:15 <Sgeo> puzzlet, were you interested in PSOX?
00:31:55 * Sgeo is scared of Java, tbh
00:32:42 <Sgeo> Java applets == pain
00:32:58 <Sgeo> Plus, I'm supposed to be doing some college work
00:33:36 <ehird`_> RodgerTheGreat: if you disable sounds.
00:52:40 <RodgerTheGreat> well, the sounds make the gameplay more interesting. Can't you just try muting it if it bothers you so much?
00:55:53 <ehird`_> How much more interesting?
00:56:33 <ehird`_> RodgerTheGreat: is the input meant to be unimaginably slow
00:57:39 <ehird`_> RodgerTheGreat: want to add a tutorial?
00:59:00 <RodgerTheGreat> it really is a pretty straightforward game. You break a series of passwords, which are randomly scrambled combinations of the pattern shown.
01:02:46 -!- jix has joined.
01:05:48 <ehird`_> We need an esolang making use of loads of unicode
01:06:30 <pikhq> Those aren't showing for me.
01:06:49 <ehird`_> pikhq: Well, x-chat is dumb and doesn't want to use utf-8.
01:06:57 <ehird`_> It was a circle, cut off a bit, with an arrow at one end
01:06:57 <Sgeo> PSOX doesn't currently support Unicode :/
01:07:22 <ehird`_> haha: β« (looks like >> stuffed together) "much greater than"
01:07:28 <ehird`_> i would love to see an esolang giving a concrete meaning to that
01:07:52 <pikhq> Use *that* for your bitshift operators.
01:08:13 <ehird`_> no, the idea is that it MUST obey what the unicode definition says it is
01:08:35 <ehird`_> Oh, and of course, β¨ is true and β is false.
01:08:43 <pikhq> a >> b == (a - b) > 100
01:08:59 <slereah__> Isn't true-false just a turnstile with only one bar?
01:09:14 <ehird`_> slereah__: no, that's an assertation
01:09:22 -!- jix has quit ("CommandQ").
01:09:26 <ehird`_> β 'VERY MUCH GREATER-THAN' ... it's >>>
01:10:04 <pikhq> a >>> b == (a - b) > 1000.
01:10:08 <ehird`_> though apparently they are "frown" and "smile"
01:10:18 <ehird`_> pikhq: should be relative to values! ;)
01:10:47 <ehird`_> β« 'erase to the left' (looks like <X| where X is inbetween =)... could make for fun code
01:11:34 <Sgeo> Be back laterish
01:11:38 <ehird`_> Oh, and we should use unicode box drawing characters for modularness
01:11:58 <ehird`_> The program would be a visual representation, in mixed drawing and mathematical notation, of what it does. :P
01:12:52 <ehird`_> Oh yes, and all the strange number systems in unicode should be supported
01:13:48 <ehird`_> pikhq: It could be called... UniCode!
01:14:44 <pikhq> Or maybe you could call it. . . APL.
01:14:58 <ehird`_> APL used its OWN characters.
01:15:15 <olsner> afaik, APL doesn't even have an official unicode mapping
01:15:31 <slereah__> It could be APL, but to stand for "Another Programming Language"
01:15:31 <ehird`_> marked as 'APL', incidentally.
01:15:49 <pikhq> It does have a LaTeX mapping, I know.
01:15:53 <ehird`_> If a lot of unicode chars were implemented to do very specific things, it might just be the shortest language ever, but even more obfuscated than K or J! :p
01:16:01 <ehird`_> pikhq: was that an empty message?
01:16:04 <ehird`_> it ate the second half of mine
01:16:33 <olsner> oh, I was under the impression that APL fonts and systems had to use user-mapped unicode ranges for APL characters - at least all the APL fonts I've found turned out to be mutually incompatible
01:16:55 <ehird`_> slereah__: Uh, a few thousand ones actually allocated.
01:16:59 <ehird`_> A few million, or billion, unused.
01:17:12 <slereah__> That's a whole lot of programs to do!
01:17:13 <olsner> more than a few thousands though
01:17:17 <ehird`_> '...Unicode consists of a repertoire of about 100,000 characters,...'
01:17:46 <pikhq> Good luck mapping Chinese characters into functions. :p
01:17:54 <slereah__> Although I doubt that you'd find an easy use for foreign scripts
01:18:03 <olsner> haskell Chars go up to 1114111, I think
01:18:22 <slereah__> And possibly sum hebrew, although I doubt you can use Aleph Null a whole lot!
01:18:32 -!- olsner has quit ("Leaving").
01:18:47 <ehird`_> aleph null would be used a lot!
01:18:55 <ehird`_> infinites and fuzzies are just going to have to be embraced :P
01:19:04 <ehird`_> pikhq: Yeah, obviously none of those kinds of things will be looked at
01:19:17 <ehird`_> The hardest bit will be writing the code. :-P
01:19:29 <slereah__> "What's the char for that function?"
01:19:37 <ehird`_> slereah__: ... and how do i type it?
01:19:37 <slereah__> "What's the unicode for that char?"
01:19:43 <pikhq> You'd want an ASCII->UniCode mapping.
01:19:46 <ehird`_> And, indeed, what language to write the interpreter in, with the insane unicode support needed :P
01:19:52 <ehird`_> pikhq: That's ridiculous. :P
01:20:18 <slereah__> Do most text editor even support unicode?
01:20:23 <ehird`_> slereah__: Any decent one does..
01:20:29 <ehird`_> pikhq: Emacs does, since *recently*
01:20:30 <pikhq> Also, might I recommend Tcl?
01:20:35 <ehird`_> And only very recently in an official release.
01:20:47 <ehird`_> Also, you may not. It's far too much of a shell-alike for my tastes.
01:21:09 <ehird`_> oh my god! the interrobang MUST be used :D
01:21:12 <pikhq> But it's had proper Unicode support for nearly 10 years now!
01:21:28 <slereah__> What's the interobang for? Error related?
01:21:28 <ehird`_> pikhq: But not proper coding support, apparently.
01:21:36 <ehird`_> slereah__: I don't know. But - interrobang!
01:21:41 <pikhq> ehird`_: Nor does any language, apparently.
01:21:52 <ehird`_> pikhq: Languages unlike the shell work well..
01:22:04 <pikhq> And Tcl's not shell-like, unless you're ignorant.
01:22:43 -!- CakeProphet has joined.
01:23:02 <slereah__> But, apart from Unicody, what would the language be like?
01:23:05 <CakeProphet> ...does anyone remember when I messing around with turtle and made this cool rose thing?
01:23:11 <CakeProphet> I'm trying to recreate the source code for that... to no avail
01:23:17 <pikhq> slereah__: Stack-based, of course.
01:23:28 <ehird`_> pikhq: You're good at insulting people who don't like tcl...
01:23:36 <ehird`_> How is it dissimilar to a scripting shell?
01:23:38 <slereah__> Why are people always on the side of stacks!
01:23:47 <ehird`_> slereah__: APL-ish, in the crazy fluid syntax way.
01:23:57 <CakeProphet> http://i83.photobucket.com/albums/j316/adamadamadamamiadam/rose.png
01:24:01 <pikhq> ehird`_: How is it in any way *similar* to a shell?
01:24:03 <ehird`_> Not stack-based, because that doesn't follow unicode text flow!
01:24:09 <ehird`_> pikhq: Answer the question I originally asked..
01:24:10 <CakeProphet> I'm trying to reproduce the source code I used to make this. But I don't remember the math I did.
01:24:44 <slereah__> I wonder how much space a Unicode chart would take on my wall
01:24:47 * pikhq doesn't know of any shells with lists as a standard data type.
01:24:59 <slereah__> Although it might be refered more as a mural
01:26:01 <pikhq> How would you translate, say, {2 {3 4} {5 {6 {{7}}}}} in Bash?
01:26:18 <ehird`_> I forget the syntax- but you can do that.
01:26:54 <CakeProphet> maybe I can find a log of me talking about it...
01:27:35 <pikhq> Tcl's semantics are also quite different. . . Particularly that pesky bit about Tcl's semantics being, to a certain degree, runtime-modifiable.
01:28:20 <CakeProphet> we should all be figuring out how I made this thing.
01:28:25 <ehird`_> The name "(void *)0" is very similar to the existing account "Voldo" (contributions β’ logs β’ user creation entry). Please choose another name, or request an administrator to create this account for you.'
01:29:05 <pikhq> Yeah; it *used* to be in the topic. . .
01:29:14 <ehird`_> CakeProphet: ircbrowse.com
01:30:07 <pikhq> Does shell lend itself readily to something like "expr [join $list +]" or "+ {*}$list" to add up the contents of a list?
01:31:31 <CakeProphet> ...I'm going to need a log from like... half a year ago or more
01:32:20 <slereah__> Although looking for it might be challenging.
01:32:30 <ehird`_> CakeProphet: There's logs from 2003
01:32:44 <CakeProphet> ...but I don't see a way to search for words in all of them at once
01:33:04 <slereah__> CakeProphet: site:[site] [word] on google
01:33:39 <slereah__> Example : http://www.google.fr/search?q=site%3Ahttp%3A%2F%2Ftunes.org%2F~nef%2Flogs%2Fesoteric%2F+butt&ie=utf-8&oe=utf-8&aq=t&rls=com.ubuntu:en-US:official&client=firefox-a
01:36:17 <slereah__> For some reason, I'm the first result for "butt" in the logs.
01:38:27 <CakeProphet> I think had something to do with the golden ratio...
01:39:18 <slereah__> What was your nick back then CakeProphet?
01:39:59 <slereah__> There's a turtle discussion with SIB in it
01:40:07 <slereah__> http://tunes.org/~nef/logs/esoteric/07.03.01
01:40:37 <Sgeo> slereah__, were you interested in PSOX?
01:41:02 <slereah__> Well, since I don't know enough CS to appreciate its grandeur, not that much.
01:41:03 <Sgeo> Check out the wiki page for PSOX
01:41:30 <slereah__> Although, mister ehird`_, I <3 your idea of UniCode.
01:41:48 <pikhq> slereah__: You're in #estoeric, but don't know enough CS to appreciate PSOX?!?
01:42:18 <slereah__> CakeProphet: http://deadbeefbabe.org/paste/3839?__session_just_started__=1
01:42:49 <slereah__> pikhq: I'm still mostly in the input/output/computation phase.
01:44:05 <slereah__> But still, since I don't want to do actually sort of useful looking stuff, I don't need much more than that!
01:45:05 <CakeProphet> but that definetely helps... as it might be similar math...
01:45:15 <CakeProphet> I might have just changed that a little bit and ended up making this rose thing
01:45:52 <slereah__> Hm. ehird`_ said "Turtles" a lot on MY BIRTHDAY IN 2007
01:47:15 <CakeProphet> try looking for rose... as I think I mentioned it once
01:53:30 -!- ehird`_ has set topic: YEW-KNEE-KODE.
01:53:57 <ehird`_> http://www.esolangs.org/wiki/UniCode
01:56:02 <slereah__> Should we start a list of chars with associated functions?
01:57:53 <ehird`_> slereah__: No, there's more fundamental things to decide on first.
01:58:50 <ehird`_> e.g. syntactical format, crazy esoteric paradigm, basic structure of programs...
01:59:19 <Sgeo> Will SimonRC be back anytime soon?
01:59:34 <ehird`_> Sgeo: No, he's dead. Unicode killed him
01:59:44 <ehird`_> slereah__: You're getting good at this
02:00:11 <ehird`_> slereah__: Yeah, kind of murky.
02:05:21 * slereah__ 's going to write the description of clockpunk on the wiki
02:08:07 <pikhq> slereah__: What syntax?
02:08:32 <pikhq> Allow me to do the appropriate syntax in BNF.
02:09:26 <pikhq> When you have that many chars to work with, you don't need syntax. You just need one char per command.
02:14:24 <slereah__> What's the verb for applying mod to a number?
02:15:15 <ehird`_> pikhq: Show me some elegant Tcl code
02:16:06 <pikhq> proc K {x y} {return $x}
02:16:19 <ehird`_> pikhq: Hmm, something a bit bigger? :-P
02:17:03 <ehird`_> pikhq: What about a curried version of K?
02:19:25 <pikhq> package require Tk;pack [label -text "Hello, world!"];# :p
02:19:46 <ehird`_> if only tk wasn't pig-ugly on x11
02:19:48 <ehird`_> pikhq: What about a curried version of K?
02:22:59 <pikhq> http://wiki.tcl.tk/1318
02:23:57 <pikhq> Not a curried version of K. . . Just really old Tcl lambdas.
02:24:28 <ehird`_> pikhq: Well, I want a curried K! :P
02:24:43 <ehird`_> I am starting to feel like tcl has no trivial anonymous functions with lexical closures..
02:25:18 <ehird`_> Also.. how does Tcl handle garbage collection?
02:26:10 <pikhq> interp alias {} K {} {[apply {x} {apply y {x}}]}
02:26:15 <pikhq> Reference counting.
02:26:36 <ehird`_> pikhq: Handles circular references?
02:26:41 <ehird`_> Also, what is that interp alias junk?
02:26:49 <ehird`_> Can't you make a function returning a function...?
02:27:01 <pikhq> You can, but said function wouldn't be evaluated. . .
02:27:20 <ehird`_> pikhq: But I write higher-order functions all the time..
02:27:25 <ehird`_> Especially with lexical scope.
02:27:28 <pikhq> (because *somebody* thought that making every command implicitly begin with {*} was a bad idea. :()
02:28:04 <pikhq> proc K {x y} {return {apply x {apply y {$x}}}}
02:28:18 <pikhq> Call via: {*}K I think. . .
02:28:37 <ehird`_> pikhq: It seems that you cannot do arithmetic without a special 'expr' command..
02:28:54 <pikhq> {*} expands the word into a series of words. . .
02:29:04 <pikhq> And Tcl 8.5 allows you to do arithmetic without expr.
02:29:12 <pikhq> [+ 2 3 4 5 6 7 8 9 10]
02:29:35 <pikhq> Once again: why that never was in before is beyond me.
02:29:35 <ehird`_> It seems that ubuntu/debian do not have it.
02:30:10 <ehird`_> return [expr $n * [factorial [expr $n - 1]]] please tell me there is a nicer way to do this.
02:30:37 <pikhq> return [* $n [factorial [- $n 1]]]
02:31:09 <ehird`_> pikhq: Again, I don't have Tcl 8.5, on account of being unable to
02:31:42 -!- ihope has joined.
02:31:46 <pikhq> proc * {args} {expr [join $args *]}
02:31:54 <pikhq> proc - {args} {expr [join $args -]}
02:32:31 <ehird`_> pikhq: OK, I'm just asking if I really need that nested 'expr'..
02:33:06 <ihope> Hmm. I thought there was an esoteric programming language called Requiem.
02:33:17 <pikhq> Not necessarily. One *could* replace that with [incr n -1]. :p
02:33:20 <ehird`_> ihope: Carpeirequiem or whatever exists.
02:33:33 <ehird`_> ihope: that doesn't even work.
02:33:47 <ehird`_> factorial 5 doesn't work..
02:33:50 <ehird`_> does tcl disown recursion?
02:34:13 <pikhq> It doesn't tail-call optimise, but it should at least work for 5 recursions. . .
02:34:49 <ehird`_> proc factorial {n} {if {n == 0} {return 1} {return [expr $n * [factorial [expr $n - 1]]]}}
02:36:26 <ehird`_> it's like what would happen if php was reduced to a pure core
02:37:02 <pikhq> Did I happen to mention that Tcl 8.4 sucks?
02:37:07 <ehird`_> -3819052484010180608 AAAAAAAH
02:37:12 <ehird`_> pikhq: Go yell at ubuntu people
02:38:36 <pikhq> Keep in mind that Tcl is *imperative*, not functional. :p
02:38:58 <pikhq> (attempts to add lambda to the core aside)
02:39:28 <ehird`_> pikhq: Seriously. Bignums. Non-sucky infix. :P
02:39:43 <ehird`_> Really I want to be coding in Dylan. did Dylan support bignums and unicode?
02:40:09 <pikhq> Perhaps you'd prefer Jim?
02:40:13 <ehird`_> Well, it was cool. Because it was Lisp with syntax.
02:40:25 <pikhq> Jim is, in essence, some guy's sandbox for clever Tcl features.
02:40:33 <pikhq> Native bignums, native lambdas, etc.
02:40:59 <pikhq> No, but about half of its features are in Tcl 8.5 now. . .
02:41:29 <pikhq> Did not realise that it has closures.
02:41:40 <pikhq> Anyways: Jim is also a fairly small footprint implementation.
02:41:54 <pikhq> (Tcl is really easy to implement if you don't bother with bytecode, apparently)
02:42:06 <ehird`_> there's a tcl in 500 lines of readable .c
02:42:23 <ehird`_> http://antirez.com/page/picol.html
02:42:32 <pikhq> I've messed with it.
02:42:50 <pikhq> Jim is roughly 10,000 lines of readable C.
02:43:23 <pikhq> Which is a decent size, but in that, you get complete Tcl, lambda, closures, etc. . .
02:44:08 <pikhq> I don't know if he bothered implementing the Stubs API.
02:45:25 <ehird`_> I don't think I'll be programming in Tcl, unfortunately.
02:45:38 <ehird`_> What I really want is a hybrid of erlang, Lisp, and dylan-like syntax.
02:45:54 <pikhq> Get oerjan to whore out Haskell. :p
02:46:46 <ehird`_> I like haskell. But i dunno.
02:46:57 <pikhq> Oooh. He *did* implement the Stubs API.
02:47:02 <pikhq> So, yes, it *can* do Tk.
02:48:48 <ehird`_> pikhq: It is just too simplistic for me...
02:49:08 <ehird`_> It doesn't have any of the wonderful abstractions, like anonymous functions, that i've come to love so much
02:49:45 <slereah__> Fuck, I just realised that input in Clockpunk makes it not work.
02:49:59 <pikhq> lambda x {* $x 2} is perfectly valid in Jim.
02:50:34 <ehird`_> pikhq: Jim is not widely-accepted enough.
02:51:19 <pikhq> I'll just continue pestering the fine Tcl maintainers in #tcl to add Jim features to Tcl.
02:52:17 <ehird`_> proc K {x} {proc {y} {return $x}}
02:52:42 <ehird`_> Incidentally, I do believe that syntax shouldn't be hard. If I recall correctly, that's "proc ?name? args body"
02:53:35 <pikhq> It'd probably get stuck as [lambda y {return $x}], but, yeah. . .
02:54:15 <ehird`_> pikhq: Well, that sucks :p
02:54:21 <ehird`_> Oh yeah, this should work:
02:54:48 <ehird`_> proc foo {x} {proc {i} {set x [+ $x $i]}}
02:56:04 <ehird`_> pikhq: I mean, why do you need an extra form for it?
02:56:31 <pikhq> Actually, your suggested syntax would work fairly well.
02:57:16 <ehird`_> what's that example by, i think, knuth?
03:10:51 -!- ehird`_ has quit ("K-Lined by peer").
04:04:57 <RodgerTheGreat> hey, GregorR- check this out: http://www.3dtomb2.com/about.php
04:08:51 -!- CakeProphet has quit ("haaaaaaaaaa").
04:12:31 <RodgerTheGreat> does anyone want to help me tease apart the source code and reverse engineer this so that we might learn it's secrets?
04:15:15 -!- calamari has joined.
04:15:57 <Sgeo> hi calamari. Did you see the wiki page for PSOX recently?
04:16:31 <RodgerTheGreat> and apparently nobody's in a reverse-engineering mood tonight. :/
04:16:37 <calamari> no.. I haven't really been looking at the wiki lately
04:16:54 -!- ihope has quit (Read error: 110 (Connection timed out)).
04:16:59 <calamari> lots of other projects have been attracting my attention
04:17:09 <Sgeo> At least look at the topic of #psox ?
04:17:14 <calamari> RodgerTheGreat: what are you working on? :)
04:17:31 <RodgerTheGreat> http://www.3dtomb2.com/about.php <- I was thinking about taking this apart
04:17:38 <calamari> ahh good, so there is still work being done on that :)
04:18:02 <RodgerTheGreat> on an unrelated note, I finished the game I was working on earlier: http://rodger.nonlogic.org/games/ICEBreaker/
04:18:14 <Sgeo> It's an alpha version, and doesn't support custom domains and no builtin domains other than 0-2 have been defined
04:19:11 <calamari> RodgerTheGreat: it is using a very primitive ray tracing system.. I did something similar on the atari 5200... although my walls were solid colors
04:19:52 <calamari> it basically takes the environment as a ceiling, a back wall, and a floor
04:20:33 <calamari> it projects in 2-d space to find out how far away the wall is, then shades accordingly
04:20:47 <RodgerTheGreat> I understand the basics of how it functions, I'm just curious about the implementation
04:21:47 <calamari> back when I was messing around with EsoShell, someone came across a javascript "unix" computer
04:21:57 <calamari> booted up, drives, etc.. was pretty cool
04:28:59 <Sgeo> calamari, are you going to poke around with PSOX 1.0a1?
04:30:47 <calamari> I downloaded it.. sure, I'll take a look :) right now I'm trying to get this usb wireless adapter to work
04:34:10 <Sgeo> I really should go to sleep soon
04:35:26 <calamari> well it'll be there on my desktop enticing me :)
04:38:58 <Sgeo> http://info.prevx.com/aboutprogramtext.asp?PX5=44D8861244FEA8A800F3006DE82E120078ABB02F I didn't know EICAR Test File was bad..
04:38:58 -!- calamari has quit (Read error: 104 (Connection reset by peer)).
04:39:22 <Sgeo> "This file is considered to have some unsafe aspects and is part of the malware group, EICAR_Test_file_not_a_virus!."
04:41:43 -!- Sgeo has quit (Remote closed the connection).
04:48:56 -!- danopia has quit (Connection timed out).
05:05:30 <GregorR> Remember, I wrote a MISC simulator in JS.
05:05:35 <GregorR> It can run Hello World et c.
05:08:04 <pikhq> I thought that was a MIX simulator?
05:30:58 -!- calamari has joined.
05:41:46 -!- calamari has quit ("Leaving").
05:42:56 -!- adu has joined.
05:45:14 -!- poiuy_qwert has joined.
05:46:37 -!- calamari has joined.
05:57:06 <RodgerTheGreat> alright, who was it that was asking me about "cosm" the other day? I thought it was pikhq, but apparently I was mistaken.
06:00:42 <RodgerTheGreat> This project died several months ago. However, there was some interest in bringing it back.
06:01:13 <RodgerTheGreat> The problem is, I wasn't sure where I wanted to go with the story. That's where you guys come in...
06:01:32 <RodgerTheGreat> who would be interested in helping me write a continuation?
06:03:43 <RodgerTheGreat> my rules are: 1) it should be funny, original and interesting (I can help on the "funny" part), 2) I do not draw porn. Implied or partial nudity will be used sparingly, if at all, and only in the service of a good storyline. 3) No guarantees on delivery dates, ever. Other than that, anything goes.
06:04:58 <calamari> what does "poit" mean? just curious :)
06:05:25 <pikhq> calamari: Pinky & The Brain reference?
06:05:42 <calamari> guess that's why I don't get it :)
06:07:00 <RodgerTheGreat> there is also a second page: http://rodger.nonlogic.org/images/Cosm2.png
06:07:20 <RodgerTheGreat> and if people are interested, I located the planning sketches for pages 3 and 4
06:09:22 <calamari> got my wireless toing, but had to disable my firewall :(
06:17:08 <RodgerTheGreat> there we go- everything is in this folder: http://rodger.nonlogic.org/images/Cosm/
06:17:35 <adu> my favorite is "blarf"
06:23:37 -!- oerjan has joined.
06:25:44 <calamari> I'm not sure I followed it.. so maybe I should go to bed .. hehe
06:26:20 <calamari> were you working on homework on the last page?
06:27:32 <RodgerTheGreat> although, ironically, the first page started as a doodle on the back of a homework assignment
06:28:03 <RodgerTheGreat> the question was "what is the meaning of life", and the response is "t++"
06:28:38 <RodgerTheGreat> to clarify, it launches into the molecular structure of DNA and a regex defining life as permutations of these elements
06:28:46 <calamari> ++t might be more efficient :)
06:28:59 <RodgerTheGreat> Life plus energy equals life. Therefore, life implies life.
06:29:15 <RodgerTheGreat> it's a complicated way of stating that life has no inherent purpose beyond existing
06:29:33 <calamari> doesn't have to save t first before incrementing :)
06:29:35 <oerjan> don't you mean while (t++) ? and the question is whether t is negative or positive...
06:30:46 <RodgerTheGreat> see, the expectations of this audience were part of why it was so hard to write
06:30:58 <RodgerTheGreat> I don't want to go into what I had to do to get the prime on page 2
06:31:15 <calamari> did you use an esolang to generate it?
06:33:02 -!- calamari has quit ("Leaving").
06:36:17 <RodgerTheGreat> so... is anybody interested in the collaborative writing idea?
06:47:53 -!- adu has quit ("Computer went to sleep").
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:19:42 -!- poiuy_qwert has quit.
09:30:31 -!- oerjan has quit ("leaving").
10:02:56 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)).
10:04:01 -!- puzzlet has joined.
10:20:46 -!- timotiis has joined.
11:08:17 -!- Tritonio__ has quit (Remote closed the connection).
11:15:48 -!- Tritonio_ has joined.
11:55:08 -!- olsner has joined.
12:37:10 -!- jix has joined.
13:35:31 -!- Corun has joined.
13:48:15 -!- sarehu has quit (Remote closed the connection).
13:48:45 -!- sarehu has joined.
13:52:30 -!- Corun has quit ("This computer has gone to sleep").
13:53:06 -!- RedDak has joined.
14:18:31 -!- ihope has joined.
14:18:40 -!- RedDak has quit (Remote closed the connection).
14:24:05 -!- sebbu2 has quit (Read error: 104 (Connection reset by peer)).
14:42:49 -!- Tritonio_ has quit (Remote closed the connection).
14:53:39 -!- Corun has joined.
15:21:34 -!- argoyle has joined.
15:37:00 <ihope> I take it someone has arrived.
15:37:03 <RodgerTheGreat> I think the crowd here is sufficiently pedantic to appreciate this: http://www.mtholyoke.edu/acad/intrel/orwell46.htm
15:39:21 -!- danopia has joined.
15:43:45 -!- Corun has quit ("This computer has gone to sleep").
15:45:24 <RodgerTheGreat> "*One can cure oneself of the not un- formation by memorizing this sentence: A not unblack dog was chasing a not unsmall rabbit across a not ungreen field."
15:53:13 -!- Corun has joined.
15:59:50 <pikhq> Already read it, I think, actually.
15:59:59 * pikhq pulls it up to see if that's true
16:00:19 <pikhq> Ah, that one. I adore that Orwell essay.
16:04:48 <pikhq> Although I'm guilty of moderately prententious diction; my range of vocabulary makes it quite difficult to not use such diction.
16:06:55 <pikhq> But some of his examples are overdoing it, even to me, Mr. Dictionary. :p
16:07:23 <pikhq> (I mean really: somebody actually *wrote* like that? *hurl*)
16:27:34 -!- sebbu has joined.
16:38:00 -!- Corun has quit ("Yaaar.").
16:39:19 -!- oerjan has joined.
16:41:12 <ihope> The exportation of productivity and therefore buying power to other nations is not harmless to the well-being of those people who live in those countries from which productivity is exported.
16:48:42 <pikhq> Of course not; it's damned good for China, India, etc.
16:52:29 <oerjan> trade, when reasonably fair, is not a zero-sum game
16:59:11 -!- Sgeo has joined.
17:00:24 -!- Slereah has joined.
17:01:33 -!- slereah__ has quit (Read error: 104 (Connection reset by peer)).
17:04:01 * Sgeo wonders if ihope was interested in PSOX
17:05:55 <Sgeo> interested enough to care that there was an alpha release (no custom domains, and domains other than 0-2 haven't been defined yet)
17:07:15 <ihope> At the moment, not especially, really.
17:07:24 <ihope> I may feel different tomorrow. :-P
17:12:13 <ihope> Yay, a method for assigning every rational number in (0,1) to a dyadic rational number.
17:13:39 <ihope> The rational numbers in (0,1) are isomorphic to all rational numbers, the dyadic rational numbers in (0,1), all dyadic rational numbers, the numbers with a terminating decimal expansion in (0,1), all numbers with a terminating decimal expansion...
17:14:31 <oerjan> all elements of any infinite countable set...
17:15:57 <ihope> By "isomorphic" I mean "order isomorphic", not plain old of-the-same-cardinality.
17:17:07 <oerjan> ok in that case, any densely ordered countable set with no endpoints
17:17:28 -!- helios24 has quit ("Leaving").
17:17:31 <ihope> This makes the proof that every countable ordinal number is order isomorphic with a subset of the real numbers seem obvious. :-P
17:18:17 <ihope> I'm sure every ordered countable set is order isomorphic with a subset of the rational numbers.
17:18:54 <oerjan> and it is also order isomorphic with a subset of any set such as i mean
17:19:29 <oerjan> but does that mean any two such are isomorphic...
17:19:58 <ihope> I think so, but let me think on it.
17:20:36 -!- pikhq has quit (Read error: 104 (Connection reset by peer)).
17:20:53 <ihope> If S and T are isomorphic with subsets of each other...
17:21:29 <oerjan> that in itself is not enough, consider with and without endpoints
17:22:30 <oerjan> hm you want to select representatives in such a way that all elements are eventually used
17:23:01 <oerjan> ah you can do that with binary expansions
17:23:21 <oerjan> always pick the candidate with least denominator, i think
17:24:07 <ihope> That's my isomorphism, pretty much.
17:24:17 <oerjan> essentially building an ordered binary tree
17:24:33 <ihope> A paste: http://pastebin.ca/897553
17:25:45 <ihope> Enumerate the rational numbers and put each in its place.
17:33:34 <ihope> If you try to enumerate, say, omega*2 by going 0, omega, 1, omega+1, 2, omega+2, etc., then you end up with 0, 0+, 0+-, 0++, 0+--, 0+++, 0+---, 0++++, etc. That doesn't go through all the possible strings of + and -.
17:35:43 <oerjan> that is because the order of omega*2 is not dense - there is not a point between any two points.
17:36:08 * oerjan hopes he remembers correctly that's what dense order means
17:37:45 <oerjan> indeed i did, says google and wikipedia
17:38:34 <ihope> Yeah, being dense means that it'll go through every string, I think: 0+-+- will be assigned to the first thing between 0+-+ and... what, 0++?
17:39:59 <ihope> No, 0+-- and 0+-+ surround 0+- and come after it.
17:40:35 <ihope> I think 0+-+ and 0+-, actually.
17:45:06 <ihope> I'll have to write up the Haskell program to translate between these automatically later. :-P
17:46:58 <ihope> And between the rational numbers a/b and (a+1)/b, there's usually a/(b-1).
17:47:34 <ihope> Meaning that there's no problem with finding a good way to enumerate the rational numbers beyond "lower denominators first".
17:48:27 <oerjan> hm such a haskell program would essentially be a quicksort
17:49:17 <oerjan> if you start with a list of elements, the first becomes 0, then you split the remainder according to whether they're less than or greater to the first
17:58:01 <ihope> Indeed, though I was thinking more like "here's a rational number; give me its tree string" and "here's a tree string; give me its terminating decimal".
17:58:11 <oerjan> oh and indeed between any two rational numbers there is one with smaller numerator _and_ denominator
17:58:34 <oerjan> closely connected to finding continued fractions, i recall
17:58:41 <ihope> What's between 1/4 and 1/5?
17:58:52 <oerjan> um could be one of the endpoints
17:59:13 <oerjan> if one endpoint has both smaller than the other
17:59:52 <ihope> Do you mean that between any two rational numbers with the same denominator, there's one with a smaller numerator and denominator than both?
18:00:21 <oerjan> no, between any two rational numbers, period, but possibly being one of them
18:01:01 <oerjan> a different way of stating it: in any interval, there is a unique rational number with smalles numerator and denominator
18:01:32 <ihope> The one with the smallest denominator is also the one with the smallest numerator?
18:01:37 <ihope> Yeah, sounds right.
18:01:56 <ihope> I'll be going, then, and reading the logs in case you have any more to say.
18:02:06 <oerjan> there could be several candidates with one the same
18:02:23 <oerjan> (e.g. 1/4 and 1/5 both have the same numerator)
18:02:25 <ihope> (And I hope once again I didn't sound rude there.)
18:13:34 -!- pikhq has joined.
18:18:59 <Sgeo> Going to play with PSOX 1.0a1?
18:25:48 <Slereah> Is it some hypnosis method?.
18:30:52 <Slereah> Asking us of PSOX over and over again!
18:35:28 <Sgeo> Last I checked, pikhq was interested in PSOX
19:02:09 -!- Tritonio_ has joined.
19:43:47 <Sgeo> Did you see the latest news about PSOX?
19:47:01 <SimonRC> ihope: I thought you had gone mad up there when you started talking about an isomorphism between the rationals and the dyuadic rationals
19:48:28 <Sgeo> A PSOX alpha was released!
19:48:36 <SimonRC> do you have a clearer explanation of an "order isomorhpism" than the wikipedia one?
19:50:33 <oerjan> a bijection between two ordered sets that preserves the relative order of elements?
19:51:39 <Sgeo> http://sgeo.diagonalfish.net/esoteric/PSOX-1.0a1.zip
19:51:45 <SimonRC> so order isomorphisms are a superset of bijections?
19:52:15 <Sgeo> (custom domains don't work yet, and only builtin domains 0-2 are defined. You can add your own domain to 3, though, for example, but that's only for testing)
19:53:16 <oerjan> "Hence, yet another characterization of order isomorphisms is possible: they are exactly those monotone bijections that have a monotone inverse."
19:54:49 -!- ivan has joined.
19:54:55 <SimonRC> but that means you have found a bijection between the rationals in (0,1) and the ----
19:55:10 <SimonRC> I was reading and typing "rationals" and thinking of the reals
19:55:58 <SimonRC> of course there is no bijection between the reals in (0,1) and the dyadic rationals
20:05:03 -!- pikhq has quit (Read error: 104 (Connection reset by peer)).
20:08:50 <Sgeo> SimonRC, are you going to look at PSOX 1.0a1?
20:09:16 -!- Sgeo[Mibbit] has joined.
20:09:25 -!- argoyle has left (?).
20:09:39 -!- Sgeo[Mibbit] has left (?).
20:22:46 -!- Slereah has quit (Remote closed the connection).
20:23:28 -!- Slereah has joined.
20:31:17 -!- pikhq has joined.
20:31:32 <SimonRC> I think that psox might actually turn non-TC langs into TC ones
20:32:11 <Sgeo> I think it would depend on how the lang is non-TC. PSOX doesn't exactly have control structures, but there might be other things..
20:32:36 <Sgeo> Maybe things like providing storage to languages with finite storage
20:34:33 <SimonRC> the ability to "loop back" data from output to input might do it
20:35:45 <Sgeo> Maybe I should add creation of a loopback FD to either system or utils?
20:35:59 -!- pikhq has quit (Client Quit).
20:37:06 <SimonRC> No, I mean the existing ability to loop back data.
20:37:15 <SimonRC> the byte->hex and all that
20:37:47 <Sgeo> Would a separate loopback FD be useful at all?
20:38:21 <Sgeo> Or a separate function(s) just for loopback? Or is that unnecessary?
20:39:03 <Sgeo> Are you going to experiment with the released alpha?
20:39:22 * Sgeo should add the svn command to retrieve the latest from SVN to the wiki, but I'm not good with SVN
20:40:10 -!- pikhq has joined.
20:41:16 <Sgeo> May I msg you what you missed?
20:54:05 -!- ehird` has joined.
20:54:26 -!- ehird` has quit (Connection reset by peer).
20:54:52 -!- ehird` has joined.
20:56:00 -!- olsner has quit ("Leaving").
21:00:14 <Slereah> Well, I witheld my "Admiral doctor cardinal"
21:00:39 <ehird`> On a totally unrelated note, yesterday I decided I would register -- on wikipedia -- the captcha it gives me on the registration form.
21:00:46 <ehird`> Unfortunately 2 were taken but then i nabbed 'tubepoint'
21:07:00 <ehird`> pikhq: I have a question
21:07:25 <ehird`> if Tcl's semantics are runtime modifiable, doesn't that mean a compiler can't be much more efficient than an interpreter, because it has to retain the structure?
21:07:26 <ehird`> if so, that's scary. i don't like languages that can't be compiled efficiently
21:07:53 -!- RedDak has joined.
21:08:15 -!- olsner has joined.
21:09:37 * Sgeo has VirusTotal reanalyze EICAR to see if the one that didn't see it sees it now
21:10:28 <Sgeo> FileAdvisor does not treat EICAR like a virus
21:11:52 <ehird`> Sgeo: VirusTotal? FileAdvisor?
21:11:58 <ehird`> what kind of crap is that
21:15:32 -!- ehird` has quit (Read error: 104 (Connection reset by peer)).
21:16:02 -!- ehird` has joined.
21:16:35 <Sgeo> http://www.virustotal.com
21:16:40 <Sgeo> Scans files with multiple scanners
21:16:52 <Sgeo> FileAdvisor is one of them, and it does not pick up EICAR
21:17:27 <Sgeo> http://www.virustotal.com/analisis/11aeb342483ec52481fd7f4fbba72cd8
21:17:33 <ehird`> RodgerTheGreat: it was me who asked about cosm
21:17:52 <ehird`> Sgeo: maybe it's clever enoug hto know when it's been tricked
21:18:06 <RodgerTheGreat> so you read the entire conversation that came afterwards?
21:18:08 <Sgeo> ehird`, it's supposed to detect the file as a virus
21:18:19 <Sgeo> It's supposed to be an industry standard
21:18:45 <Sgeo> http://eicar.org/anti_virus_test_file.htm
21:18:53 <ehird`> Sgeo: yes, but it's sentient and recognizes evil tricks designed to fool it!
21:20:08 <ehird`> but it's not a *real* virus
21:20:08 <ehird`> so the virus scanner is just clever! :D
21:23:06 <Sgeo> Maybe FileAdvisor was not set up properly by VirusTotal
21:25:17 <ehird`> RodgerTheGreat: hm, most of it
21:25:17 <ehird`> Sgeo: maybe it just doesn't recognize it
21:25:29 -!- pikhq has quit (Read error: 110 (Connection timed out)).
21:25:33 <ehird`> RodgerTheGreat: well, my only suggestion is that free iPods must be involved, somewhere
21:25:35 <ehird`> and they must eventually be recalled upon and become a vital element of the story.
21:29:02 <ehird`> also incurring massive charges due to liberal application of the word 'free'
21:29:59 <RodgerTheGreat> I wouldn't mind including a livid, raging stallman in response to "free" something
21:30:17 <ehird`> RodgerTheGreat: trying to, but page 4 is absolutely unreadable at parts
21:30:17 <ehird`> RodgerTheGreat: well, you could make it that iPods are really hyperdimensional mind control objects or something?
21:30:54 <ehird`> so, who here wants a turkey bomb implementation
21:32:31 <Slereah> Wasn't Turkey Bomb a string of non-sensical terms designed as a joke?
21:34:50 <ehird`> RodgerTheGreat: you are the 2387129837129387129837th person in the universe thing
21:35:05 <ehird`> and the freeipods site are the funniest bunch of those
21:35:46 <ehird`> well, it's what my brain decided! ;)
21:35:51 <ehird`> mainly because of this http://uncyclopedia.org/wiki/Euroipods
21:37:41 <ehird`> Slereah: And yes, turkey bomb was pretty much that.
21:37:46 <ehird`> But it can be implemented, with enough hand-waving
21:38:05 <Slereah> Where can I find this jewel crafted in handwavium?
21:38:28 <ehird`> http://catseye.tc/projects/turkeyb/doc/turkeyb.html
21:40:22 <ehird`> But it will be, sometime.
21:42:01 <ehird`> Speaking of which, we need a UniCode committee
21:42:13 <ehird`> But unfortunately, #unicode is taken.
21:43:05 <oerjan> interpret it in twoducks. then it wioll have isen invented already
21:43:41 <Slereah> Let's design a twoduck processor.
21:44:04 <Slereah> All we need is some roman ring configuration of wormholes!
21:44:43 <ehird`> Slereah: Maybe I should change the name to UniScript. I mean, UniCode is an amusing name, but could cause problems...
21:44:47 <ehird`> Slereah: That's not in HHGTTG
21:44:51 <oerjan> that would be the future quasi-perfect imparticiple of "to be"
21:46:51 <oerjan> and in a different timeline, i woulden not haved invented this on the spot, either
21:48:33 <ehird`> Slereah: anything re: uniCode's name?
21:49:01 <Sgeo> http://esolangs.org/wiki/Talk:TwoDucks
21:50:33 <ehird`> Slereah: it's not as funny though :P
21:51:14 <ehird`> Sgeo: I ought to write a twoducks interp :P
21:51:27 <Slereah> ehird`: Got some exotic matter?
21:51:37 <ehird`> Slereah: It's not neccessarily uncomputable.
21:51:54 <ehird`> (For input rewinding, we'll just pretend we never did the input, and use ncurses to scribble over where the input was entered. Output would also be scribbled over.)
21:52:24 <Slereah> Well, the fact that it's not uncomputable doesn't mean it's implementable!
21:52:49 -!- pikhq has joined.
21:55:16 <ehird`> if it is computable on a turing machine, you can write an interpreter for it
21:55:44 <Slereah> Well, you can simulate the computations it can do
21:55:56 <Slereah> But not the actual machine.
21:56:25 <Slereah> I'm also not sure it's not uncomputable.
21:56:34 <ehird`> soo - we have UniCode, UniScript, any other names?
21:56:41 <Slereah> There's a very similar machine that's believed to be uncomputable
21:57:58 <ehird`> oh yeah, and UniCode/Script/Kitten will have its own editor
21:58:06 <ehird`> just because working with that kind of crazy unicode otherwise would be near impossible
21:58:21 <ehird`> it'll hijack space as an expansion key so you can type regular characters (most programs won't include spaces, so this is ok)
21:58:24 <Slereah> Although it isn't very informative
21:58:37 <ehird`> i just need to find a good unicode monospaced font
21:58:49 <ehird`> also, it'll be reccomended to use that editor to hack on the interpreter because of the same unicode stuffs ;P
22:00:37 <ehird`> oh yeah, and it'll use a huge, unantialiased, black on white, bold font to avoid any possible ambiguity of characters
22:01:50 <Slereah> Well, as long as we don't use the 100.000 chars, and only unambiguous ones, it probably won't be a problem
22:02:47 <ehird`> editing unicode can be hard
22:02:55 <ehird`> an unambigious font like that is vital
22:04:22 <ehird`> the problem is i cannot find a comprehensive *monospace* font
22:06:31 <ehird`> dejavu sans mono doesn't count because it's not nearly as legible enough and doesn't include enough chars
22:07:11 <ehird`> That's not monospaced.
22:07:20 <ehird`> and Lucidia Mono is not unicode, iirc
22:09:00 <ehird`> Slereah: coding font. all the letters are the same width. you know?
22:09:27 <ehird`> Slereah: You know... like you wouldn't edit code with Arial...
22:09:33 <ehird`> They look type-writery most of the time..
22:11:57 <ehird`> Can you copy and paste that back to me?
22:12:27 <ehird`> That looks great, I think
22:13:08 <ehird`> Slereah: Try this: β¦
22:13:14 <ehird`> That one does not display.
22:13:38 <ehird`> Slereah: That previous one looked like >>> to you. correct?
22:14:05 <oerjan> looked like >>> to me, anyhow...
22:14:57 <ehird`> I am testing out FreeMono Bold 18pt.
22:15:01 <ehird`> It seems like a good fit.
22:21:19 <ehird`> http://www.fileformat.info/info/unicode/char/25c9/index.htm brilliant
22:22:01 <timotiis> they're both failing here, but I happen to know that Lmoderntt doesn't handle unicode properly
22:22:39 <Sgeo> I suppose that it's illegal to scrape that site's images of unicode chars and make them into a font?
22:23:01 <ehird`> timotiis: it's not in utf-8 for mine, xchat is stupid
22:23:20 <ehird`> Sgeo: It uses Code2000.
22:23:20 <ehird`> Which is shareware, anyway.
22:23:20 <ehird`> So it would be very bad.
22:23:37 <timotiis> code2000 is however a very good set of fonts for unicode stuff
22:24:02 <timotiis> ehird`: that wouldn't matter, lmtt probably doesn't have the glyph
22:24:25 <ehird`> timotiis: code2000 isn't monospaced though.
22:24:27 <timotiis> anyway, if you're dealing with unicode, why not just reimplement apl and be done with it
22:24:34 <timotiis> that's a reasonable point, admittedly
22:24:40 <Sgeo> Does decodeunicode use a different font?
22:24:41 <ehird`> And appears to be good looking at large sizes in bold
22:24:45 <ehird`> and because APL isn't as cool as uniscript, and doesn't use as many chars
22:25:32 <ehird`> http://www.fileformat.info/info/unicode/char/2061/index.htm POW! Function application!
22:30:31 <Sgeo> http://www.decodeunicode.org/en/box_drawing flow control?
22:31:05 <RodgerTheGreat> hell, you could probably do a whole 2d language with just those
22:31:20 <Slereah> Some sort of circuit emulation?
22:35:35 -!- pikhq has quit (Read error: 104 (Connection reset by peer)).
22:36:17 <ehird`> Sgeo: box drawing will be used for modules
22:39:48 <ehird`> you could write a little block which read input in a certain way
22:39:57 <ehird`> then using the box drawing and arrow characters, 'connect' it to another part
22:40:09 <ehird`> (the language will be 2d in some cases.)
22:45:54 <ehird`> Slereah: Made UniScript/whatever it's called
22:47:21 -!- oerjan has quit ("Good night").
22:52:10 -!- RedDak has quit (Remote closed the connection).
23:16:41 -!- Tritonio_ has quit (Read error: 110 (Connection timed out)).
23:17:16 -!- Tritonio_ has joined.
23:42:38 -!- ivan has left (?).
00:01:38 -!- calamari has joined.
00:04:35 <Sgeo> calamari, did you play with PSOX?
00:05:07 <calamari> Sgeo: not yet.. but I got my wireless working.. went to a birthday party today and took a nap
00:07:18 -!- timotiis has quit ("leaving").
00:08:16 <calamari> bf is really bad at and, or, and xor, maybe add those?
00:09:04 <Sgeo> Good idea, actually
00:22:23 <ehird`> i'm going to try and write a TURKEY BOMB program
00:22:30 <ehird`> since doing something useful will be nigh-on impossible
00:23:28 <ehird`> 'proving wrong whoever it was who claimed that every Turing-complete language capable of arbitrary output has a quine; -- smjg's user page
00:24:08 <olsner> I don't think it's been "claimed" - rather "proved"
00:24:53 <ehird`> so how the hell can he claim to prove it wrong
00:24:55 -!- calamari has quit (Remote closed the connection).
00:25:05 -!- calamari has joined.
00:25:40 <olsner> but that does not exclude the quine being devilishly hard to find, I guess
00:25:53 <Sgeo> I think with something like a language that if it begins with " it outputs all the next characters, and if it doesn't, is a non-I/O turing complete language..
00:26:02 <ihope> Well, you have to define "Turing-complete language capable of arbitrary output" right.
00:26:38 <ehird`> we need a category for those incidentally
00:26:45 <ihope> Perhaps "arbitrary output" means it has to be able to output all computable sequences, except that doesn't work either.
00:26:47 <ehird`> 'Arbitary output at arbitary point' describes it well
00:27:02 <ehird`> with that + TCness, you MUST have a quine
00:27:17 <ihope> How do you define "arbitrary output at an arbitrary point"?
00:27:33 <ehird`> http://wwwep.stewartsplace.org.uk/quines/quineless.html here is the page
00:28:43 <ehird`> ihope: At any point at execution, you can output an arbitary string which can include data from the program's state.
00:28:51 <ehird`> Brainfuck does this, my own CRTL doesn't.
00:29:38 <ehird`> constantly rewriting term language
00:29:49 <ehird`> oklopol wrote a fibonacci in it:
00:29:49 <ehird`> (("fib"->a)->b)->b~"|"~a~b;
00:29:49 <ehird`> a~"|"~b->(("fib"->a)->b);
00:29:55 <ehird`> but it outputs as "previous|current"
00:29:59 <ihope> ehird`: I don't think that works.
00:30:05 <ehird`> and then parses that into 'current' and 'previous' to add together
00:32:22 <ihope> I assume that you mean it can run an arbitrary function taking the state and outputting a string.
00:33:49 <ihope> So if it has some stuff in a register that's destroyed whenever a certain thing is done, and it's impossible to proceed with the computation without doing that thing, you can't output an arbitrary thing at an arbitrary point, yes?
00:35:23 <Sgeo> Don't store stuff in that register?
00:35:50 <ehird`> At any point at execution, you can output an arbitary string which can include data from the program's current, accessible state at the point of execution of the output instruction.
00:36:02 <ihope> Says Wikipedia, "If F is a total recursive function then there is an index e such that phi_e = phi_F(e)." http://en.wikipedia.org/wiki/Kleene%27s_recursion_theorem
00:36:30 <ihope> phi_e meaning the program whose source code is e, essentially.
00:36:38 <ehird`> ihope: use the unicode, luke
00:36:42 <ehird`> i have a capable font"!
00:36:52 -!- jix has quit ("CommandQ").
00:37:20 <ehird`> just dejavu sans mono. it's not monospaced, technically, because of the >>> and similar
00:37:24 <ihope> Such that Ο_e = Ο_F(e).
00:37:37 -!- ehird` has quit (Remote closed the connection).
00:37:45 <ihope> Gasp, I killed him.
00:38:01 <Slereah> What's the underscore for?
00:38:04 -!- ehird` has joined.
00:38:15 <ihope> phi_e is phi followed by a subscript e.
00:38:33 <ihope> Does Unicode have a subscript e?
00:38:46 <ehird`> Arbitary output at arbitary point:
00:38:52 <Slereah> I think it has a special char for subscript.
00:38:56 <ehird`> In a section of state where useful data can be stored,
00:39:02 <ehird`> at any point at execution,
00:39:14 <ehird`> you can output its current value.
00:39:18 <ehird`> you can output any arbitary constant value.
00:39:28 <ehird`> I think that's solid, if not taken 100% literally
00:39:39 <Slereah> "LATIN SUBSCRIPT SMALL LETTER E"
00:39:55 <ehird`> http://www.fileformat.info/info/unicode/ good unicode reference
00:40:03 <Sgeo> ehird`, are you going back to your own channel?
00:40:40 <ihope> + and βͺ are the only things I can get this thing to get out of 2091.
00:41:18 <Slereah> Since the preceding is 208F
00:42:08 <ihope> So, if you have a programming language called phi, and you have a program called F that inputs a phi program and outputs a phi program, there's a phi program that, when given to F, yields an equivalent phi program.
00:43:08 <ihope> That's what the quine theorem comes from.
00:43:32 <ihope> Do you have a more specific question?
00:43:35 <ehird`> http://www.fileformat.info/info/unicode/char/2389/index.htm CIRCLED HORIZONTAL BAR WITH NOTCH
00:43:56 <ihope> Oh, that's a Unicode character this client can't display?
00:44:29 <ehird`> β awesomest charcter ever
00:44:59 <Slereah> The "equal by definition"?
00:45:36 <Slereah> (Equal by definition is = with a triangle on top)
00:47:49 <Slereah> Reminds me of this one : http://us.metamath.org/mpegif/helloworld.html
00:49:52 <ehird`> and of course forall: β
00:49:59 <ihope> What forall is that?
00:50:07 <ihope> I think I'm familiar with a different one.
00:50:19 <ehird`> ooh, i never knew the fourier transform had such a fancy symbol: β±
00:50:24 <ihope> LATIN LETTER INVERTED CAPITAL A or something?
00:50:34 <ehird`> is there a unicode symbol for := ?
00:50:45 <ihope> There's also one called UNIVERSAL QUANTIFIER or something.
00:51:17 <Slereah> Well, I only know of two forall, and one of them isn't a special char
00:51:29 <Slereah> It used to be (x) for "for all x"
00:51:36 <ihope> Oh, it's actually called FOR ALL, and is this: β
00:51:52 <ihope> ...your character looked different when I looked at it before.
00:52:15 <ihope> As well as your Fourier transform one. My client is bewootched or something.
00:52:25 <ehird`> there is a unicode char for the fancy x isn't there?
00:53:01 <ihope> And I think you mean β±(x)ββ¦. :-P
00:53:05 <ehird`> but i thik that's not what you should use it for :p
00:53:44 <ihope> So β±β³ββ¦, to be completely compliant. :-P
00:53:58 <ehird`> ihope: (x) isn't intended for functions, though, i think
00:54:12 <ihope> Ξnd if you like different Unicode characters that look exactly the same, there's one for you.
00:54:33 <ihope> That's not an A at the beginning of that sentence but a capital alpha.
00:54:55 <ihope> I wonder if Unicode actually states that those characters are to be displayed the same way.
00:55:43 <ehird`> ihope: you know what x i mean? I mean what tex renders for 'x'
00:56:49 <ehird`> what to terminate functions with :)
00:56:52 <ehird`> ooh, off-by-side rule!
00:58:39 <ehird`> off-by-side rule doesn't work
00:59:56 <ehird`> Ζ(x)β1 when x=1, x * Ζ(x-1) otherwise
00:59:57 <Sgeo> off-by-side rule?
01:00:07 <ehird`> but there's probably a specific unicode char to half that length :P
01:00:13 <ehird`> Sgeo: if they line up, same block.
01:00:22 <ehird`> python uses a retarded version without the alignment part.
01:01:57 <ehird`> ΗsΔ±ΚΙΉΗΙ₯Κo (1-x)Ζ * x '1=x uΗΙ₯Κ 1β(x)Ζ
01:03:00 <Sgeo> Are you using some sort of service to do that for you?
01:03:41 <Slereah> There's some website with an inverting thing IIRC
01:06:09 -!- olsner has quit ("Leaving").
01:07:58 <Sgeo> Why is that better than http://www.revfad.com/flip.html ?
01:09:25 <Sgeo> ΛΛΚdΔ±ΙΉΙsΙΚΙΙΎ ΗldΙ―Δ±s puΙ ΗΙΔ±u s,ΚΔ± ΚsΙΗl ΚΙ Κnq 'pΙΙΚΗΙΉ Ι₯ΚΔ±Κ ΚΙΉoΚ oΚ Ι―ΗΗs Κ,uop slΙΙΚΔ±dΙΙ
01:09:58 <ehird`> it uses a 40 way if statement to start with.
01:10:03 <ehird`> and doesn't handle uppercase and most punctuation
01:10:56 <Sgeo> ΛΖuΔ±Ι₯ΚΚuΙ ΙΉoΙ sΚunoΙ ΚΙΙ₯Κ ΙΔ± 'Ηsn oΚ ΙΉΗΔ±sΙΗ s,ΚΔ±
01:12:16 <ehird`> Sgeo: input text, click 'BOOM'
01:20:53 -!- puzzlet has quit (Remote closed the connection).
01:21:01 -!- puzzlet has joined.
01:33:14 <ehird`> possibly esoteric too..
01:33:28 <ehird`> a website that gets a URI, and gives you loads of links people added to it
01:33:38 <ehird`> which can be URIs themselves, or URLs or text or images or whatever
01:42:29 -!- ehird` has quit ("K-Lined by peer").
02:57:18 -!- slereah__ has joined.
02:59:44 -!- Slereah has quit (Read error: 104 (Connection reset by peer)).
03:01:11 -!- ihope has quit (Read error: 110 (Connection timed out)).
03:23:00 -!- danopia has changed nick to danopia`cat.
03:25:34 -!- danopia`cat has changed nick to danopia.
03:26:30 -!- danopia has changed nick to danopia`lol.
03:26:35 -!- danopia`lol has changed nick to danopia.
03:28:33 -!- danopia has changed nick to danopia`cat.
04:07:34 -!- puzzlet has quit (Remote closed the connection).
04:07:39 -!- puzzlet has joined.
04:13:33 -!- sarehu has quit (Remote closed the connection).
04:14:12 -!- sarehu has joined.
04:15:39 -!- sarehu has quit (Remote closed the connection).
04:16:06 -!- sarehu has joined.
04:32:33 -!- pikhq has joined.
05:07:44 <RodgerTheGreat> pikhq: did you ever see the third and fourth pages I did for the "axon" series?
05:08:48 <pikhq> I managed to fuck up my root partition.
05:09:09 <pikhq> ATM, I'm reinstalling Gentoo.
05:16:24 <pikhq> pvcreate is a *bad* idea on one's root partition.
05:24:49 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)).
05:25:15 <Sgeo> What's pvcreate?
05:25:53 -!- puzzlet has joined.
05:35:00 <pikhq> It makes a partition into a physical volume for LVM.
06:15:53 -!- Figs has joined.
06:16:37 <Figs> The weirdest thing on the internet: http://youtube.com/watch?v=ffDPTKn7HiY&type=1
06:17:09 -!- bsmntbombdood has quit (Remote closed the connection).
06:53:26 -!- danopia`school has joined.
06:53:57 -!- puzzlet has quit (calvino.freenode.net irc.freenode.net).
06:53:57 -!- pikhq has quit (calvino.freenode.net irc.freenode.net).
06:53:58 -!- danopia`cat has quit (calvino.freenode.net irc.freenode.net).
06:53:58 -!- cherez has quit (calvino.freenode.net irc.freenode.net).
06:55:15 -!- puzzlet has joined.
06:55:53 -!- pikhq has joined.
07:00:03 -!- Sgeo has quit ("Ex-Chat").
07:20:58 -!- calamari has quit ("Leaving").
07:36:59 -!- Figs has left (?).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:35:37 -!- oerjan has joined.
09:02:20 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)).
10:23:08 -!- sarehu has quit (Remote closed the connection).
10:23:17 -!- sarehu has joined.
10:33:06 -!- oerjan has quit ("leaving").
10:44:45 -!- RedDak has joined.
12:27:41 -!- RedDak has quit (Remote closed the connection).
13:01:24 -!- jix has joined.
13:02:17 -!- RedDak has joined.
14:16:24 -!- RedDak has quit (Remote closed the connection).
14:53:28 -!- olsner has joined.
15:04:49 -!- sarehu has quit (Remote closed the connection).
15:05:14 -!- sarehu has joined.
15:14:04 -!- Tritonio_ has quit (Read error: 110 (Connection timed out)).
15:14:37 -!- Tritonio_ has joined.
16:01:58 -!- puzzlet has joined.
16:01:58 -!- timotiis has joined.
16:03:23 -!- danopia`school has changed nick to danopia.
16:26:46 -!- SimonRC has quit (Remote closed the connection).
16:30:28 -!- Sgeo has joined.
16:30:33 -!- RedDak has joined.
16:43:08 -!- SimonRC has joined.
16:43:49 <Sgeo> Did you poke around with the alpha at all?
17:31:57 * Sgeo pokes pikhq and SimonRC
17:33:46 -!- RedDak has quit (Read error: 104 (Connection reset by peer)).
17:40:22 <Sgeo> What's groooo groooo?
17:42:52 <olsner> a grooo is a groooo is a grooooo
17:43:20 * Sgeo wants opinions on the alpha of PSOX
17:46:34 <Sgeo> Does anyone even CARE?
17:46:55 -!- SimonRC has quit (Remote closed the connection).
17:46:59 -!- SimonRC has joined.
17:50:54 <oklopol> Sgeo: too tired to think or care about anything
17:51:04 <oklopol> may i interest you in some random onomatopoeia?
18:06:24 -!- ehird` has joined.
18:21:34 <ehird`> <Sgeo>Does anyone even CARE? <-- no
18:22:39 -!- timotiis has quit (Read error: 104 (Connection reset by peer)).
18:30:46 -!- Corun has joined.
18:34:22 <SimonRC> that "flipper" doesn't handle ^ properly
18:37:10 <ehird`> http://esolangs.org/wiki/Ozone is this turing complete even with finite stacks?
18:38:13 <Sgeo> Is no one going to play with PSOX?
18:46:52 -!- Tritonio_ has quit (Read error: 113 (No route to host)).
18:56:06 <pikhq> I'm currently reinstalling Gentoo, so I've not hadd much of an opportunity to.
19:04:58 <ehird`> i love the str[regexp] strick
19:22:02 <SimonRC> HTF does that work anyway?
19:22:57 <SimonRC> is it a wart or is there some really clever logic behind it?
19:23:39 <ehird`> specifically, the whole part that matched
19:23:44 <ehird`> and, of course, nil if no match
19:24:00 <ehird`> but you can specify which component you want:
19:24:02 <ehird`> If a Regexp is supplied, the matching portion of str is returned. If a numeric parameter follows the regular expression, that component of the MatchData is returned instead.
19:24:17 <ehird`> you can also pass it a string, to find out if the string contains that substring
19:24:18 <ehird`> http://ruby-doc.org/core/classes/String.html
19:24:32 <ehird`> str[...] is pretty damn overloaded in ruby, but it's really useful
19:24:40 <ehird`> because all the operations you can do with it are really cool
19:24:45 <ehird`> SimonRC: you can even do this:
19:25:27 <ehird`> irb(main):001:0> str="abc0asd222di"
19:25:27 <ehird`> irb(main):002:0> str[/[0-9]/] = "banana"
19:25:28 <ehird`> => "abcbananaasd222di"
19:25:39 -!- pikhq has quit ("leaving").
19:25:43 <ehird`> but that is consistant with what str[regexp] does, of course.
19:25:52 -!- Corun has quit ("This computer has gone to sleep").
19:26:01 <ehird`> irb(main):006:0> "abc0asd222di"[/[0-9]/]
19:26:06 <ehird`> since, of course, it stops matching after that
19:26:32 <ehird`> so it might be a wart, but it's one of those nice, elegant warts ;)
19:27:30 <ehird`> just like scheme, or any lisp
19:27:30 <ehird`> it has symbols, though
19:27:36 <ehird`> (You can tell it was originally a lisp derivative can't you)
19:28:05 -!- pikhq has joined.
19:28:10 <ehird`> SimonRC: strings are just treated as arrays of bytes (although they're not really arrays, so you can do clever, stringy stuff with them). 'byte' is changing to 'unicode character' in 1.9 :P
19:28:22 <ehird`> SimonRC: no, it's pretty syntaxful and macros would make the language horribly undecidable
19:28:24 * SimonRC might end up a macrophile given the cahnce
19:28:28 <ehird`> however, you can do something like this
19:28:41 <ehird`> abc do ...stuff... end
19:28:48 <ehird`> abc do |arg,arg2| ...stuff.... end
19:29:04 <ehird`> which basically amounts to having macros, you can do control structures with them
19:29:14 <ehird`> there's even nice syntax for calling the block:
19:29:29 <ehird`> def returning(x); yield x; x; end
19:29:51 <ehird`> returning(MyClass.new) {|x| x.foo = "bar"} #=> a MyClass, but with .foo = "bar"
19:30:07 <ehird`> SimonRC: kind of hard to explain elegantly, over IRC :)
19:30:34 <ehird`> SimonRC: Here's what describes ruby pretty well, from its creator: http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/179642
19:31:55 <ehird`> by the way, if your ruby experience is from rails forget that crap
19:32:18 <ehird`> it is filled with evil (or should i say eval?) metamagic stuff and is pretty badly designed too
19:33:15 -!- timotiis has joined.
19:33:26 <SimonRC> I know enought about it to understand the example
19:33:49 <ehird`> it might not be the cleanest, purest language out there but it's better than a lot of the competition, i'd say
19:34:05 <ehird`> and it has a big dev+user base, so a lot of people will be able to run your apps trivially
19:34:11 <ehird`> + it has really good gui bindings etc
19:34:37 -!- bsmntbombdood has joined.
19:35:01 <SimonRC> it also has a reputation for being excruciatingly slow
19:35:39 <ehird`> SimonRC: that's all fixed in 1.9
19:35:44 <ehird`> which uses a VM called YARV (yet another ruby vm)
19:35:52 <ehird`> well not blazing fast.
19:36:03 <ehird`> but about equal to python in most cases, and exceeding it in quite a few
19:36:06 <ehird`> and python's not too bad
19:36:16 <ehird`> plus there's the old 'well, plug out into c when you need speed'
19:36:23 <ehird`> but it applies more, 'cause ruby's C interface is great :)
19:36:27 <ehird`> especially with Inline::C
19:36:57 <ehird`> long factorial_c(int max) {
19:37:00 <ehird`> while (i >= 2) { result *= i--; }
19:37:10 <ehird`> didn't realise the example was so big!!
19:37:12 <ehird`> but, SimonRC: it does all the type conversions for you, there
19:39:02 -!- oerjan has joined.
19:39:16 -!- Slereah has joined.
19:39:58 -!- pikhq has quit (Read error: 104 (Connection reset by peer)).
19:40:31 <Sgeo> Interested in PSOX at all?
19:40:35 -!- slereah__ has quit (Read error: 104 (Connection reset by peer)).
19:40:47 <oerjan> not particularly at this time
19:41:01 -!- pikhq has joined.
19:41:02 -!- ehird` has quit (Remote closed the connection).
19:41:50 -!- ehird` has joined.
19:42:02 * ehird` looks at logs, see what he missed
19:42:10 <SimonRC> ehird`: that is very very nice FFI
19:42:15 <ehird`> SimonRC: yes, yes it is
19:42:46 <ehird`> made by a very clever ruby hacker.. he has an attitude though :P
19:42:53 <ehird`> the guy also made Ruby2C
19:42:59 <ehird`> which is basically a ruby->c compiler, written in ruby
19:43:05 <ehird`> and then he wrote Inline::Ruby with it XD
19:44:26 <ehird`> SimonRC: IMO one of the nice things about ruby is how oop/non-oop can mix
19:44:31 <ehird`> most languages let you choose, sure
19:44:39 <ehird`> but often the interaction between the two isn't pleasant
19:48:41 <ehird`> hehe, i hope that was an example to prove my point
19:53:59 * SimonRC wonders where the User Friendly books are (at).
19:54:16 <Sgeo> I used to love one of the User Friendly books
19:54:33 <Sgeo> I gave it to a friend, who lost it, forcing me to find UF online
19:54:59 <ehird`> funny for about the first few years.
19:55:05 * Sgeo hasn't been reading it much lately
19:55:09 <ehird`> then extremely sporadically funny after that.
19:55:14 <SimonRC> one a couple fo dozen I read
19:55:26 <SimonRC> If you want consistantly funny, try Doctor Fun
19:55:34 <Sgeo> Have the organization of storylines in the archives been updated anytime in the past few years?
19:55:51 <SimonRC> DF is like the far side without the incomprehensible ones
19:56:28 <ehird`> http://www.pixelcomic.net/ <-- this is pretty funny
19:56:37 <Sgeo> Have there been any 1/0-like comics lately?
19:56:50 <ehird`> because someone posted a few ones on a forum i go to and someone commented that it sounds like something i would right
19:56:55 <ehird`> and i thought the very same thing :|
19:58:24 <SimonRC> also, the GUest strips in the forums of Spamusement are good
20:13:05 <ehird`> MiniMAX is basically the shortest-machine-code-interp thing
20:13:09 <ehird`> but what about shortest-c-program?
20:13:18 <ehird`> i hope pointer arithmetic is involved
20:13:21 <ehird`> shortest-c-interpreter
20:13:30 <ehird`> language for which the c interpreter is very short, like miniMAX
20:22:07 <ehird`> http://www.naerian.miraco.pl/nbf/nbf-1.6.c only 5k tape? lmao
20:22:35 <Sgeo> http://pixelcomic.net/257.shtml
20:24:50 <pikhq> Shortest C program?
20:25:17 <pikhq> touch shortest_c_program.c
20:25:19 <ehird`> shortest c interpreter.
20:25:26 <ehird`> and acknowledged that after that
20:25:30 <ehird`> GregorR: http://cvs.savannah.nongnu.org/viewvc/libbf/libbf_c_to_bf.c?root=libbf&view=markup
20:27:04 <ehird`> Sgeo: try the first few
20:28:39 <ehird`> GregorR: it's not very readable, but it IS another c->bf
20:28:45 <ehird`> you should look at it or something :P
20:28:57 <ehird`> it doesn't even use a parser generator ;o
20:32:54 <ehird`> GregorR: actually, the interps look pretty good too
20:33:06 <ehird`> it has an optimizer which does maths ops and stuff, and a native code generator
20:33:09 <ehird`> and even supports 128bit
20:33:16 <ehird`> you should so merge it with egobf
20:33:40 <ehird`> GregorR: omg, take a look at test/test.c
20:33:45 <ehird`> that's some awesome coverage..
20:34:42 <ehird`> it produces one line output for that
20:36:09 <ehird`> i then told it to optimize and convert to c
20:36:14 <ehird`> and we get the worst C->C compiler ever:
20:36:52 <ehird`> and i'm trying to paste it somewhere but they odn't like it
20:37:59 <ehird`> GregorR: from http://cvs.savannah.nongnu.org/viewvc/libbf/test/test.c?root=libbf&view=markup to http://rafb.net/p/bE1pEc11.html
20:38:13 <ehird`> c->bf, then bf->optimized-c
20:40:00 <ehird`> bsmntbombdood: you don't say
20:40:06 <ehird`> but imagine scheme->bf.
20:40:38 <ehird`> or continuations, i'll bet :P
20:40:55 <ehird`> you might have to do CPS transformation
20:40:58 <ehird`> so maybe continuations
20:41:05 <ehird`> GregorR: c2bf converts all calls to CPS right?
20:41:42 <ehird`> a(b(c(),d())); -> c({x -> d({y -> b(x,y,{z -> a(z)})});});
20:41:47 <ehird`> Sgeo: continuation passing style
20:42:23 <ehird`> (a (b (c) (d))) -> (c (lambda (x) (d (lambda (y) (b x y (lambda (z) (a z))))))
20:42:28 <ehird`> all calls become tail-calls
20:42:40 <ehird`> and you pass 'what next' (the CONTINUATION) as a final argument, as a function
20:42:45 <ehird`> taking the result as the argument
20:43:21 -!- UnrelatedToQaz has joined.
20:47:48 <ehird`> scheme->bf would be hell
20:47:52 <ehird`> youd' have to do all sorts of management
20:49:12 <ehird`> a good start: what is a pair? :P
20:50:46 -!- calamari has joined.
20:53:09 <Sgeo> calamari, play with PSOX at all?
20:53:29 <calamari> I think I made a comment about it needing and/or/xor
20:54:07 <Sgeo> It will, but I do need a way of just writing down what each function does, then later putting stuff in like function numbers and types used
20:54:18 <ehird`> i love psox's overengineering
20:54:39 <Sgeo> I'd certainly put and/or/xor near the beginning of domain4
20:58:27 -!- UnrelatedToQaz has quit ("ChatZilla 0.9.80 [Firefox 2.0.0.12/2008020121]").
20:58:44 <Sgeo> Why "domain4!"?
21:00:06 <Sgeo> Something wrong with domain4?
21:00:15 * Sgeo has a strong feeling of deja vu
21:01:15 * oklopol has a strong feeling of GRYAAAAAAAAAAAAAAAA
21:01:30 <oklopol> it's much stronger than your petty deja vu
21:02:57 <ehird`> http://pixelcomic.net/016.shtml
21:02:57 <Sgeo> I wonder if I should attempt to make my own solution for taking a file with 1line/function and making it something usable as a domain spec
21:03:09 <oerjan> at least it is not one of the three words that end in -gry.
21:10:03 <SimonRC> http://catb.org/jargon/html/N/nugry.html
21:10:28 <SimonRC> (the trick answer being "language")
21:11:51 <Sgeo> There was an xkcd comic about that
21:18:57 <olsner> that's a real feel-good comic
21:19:21 <olsner> makes you go "har har, right back at you!"
21:40:21 -!- Corun has joined.
21:45:44 -!- jix has quit ("CommandQ").
21:48:41 <ehird`> golfscript is just too verbose
21:48:49 <ehird`> you don't need that ending quote
21:48:51 <ehird`> you should be able to do
21:54:39 <Slereah> We need a function for Hello world!
21:55:22 <Slereah> Will Unikitten include many unecessary functions?
21:56:58 <ehird`> Slereah: no, but very specific ones, sure
21:57:06 <ehird`> the UniKitten will look something like this:
21:58:26 <ehird`> (opening and close quotes)
21:58:30 <ehird`> fill in ? as a print character.
21:59:48 <ehird`> ββHello, world!β
22:00:06 <ehird`> ββHello, world!β
22:00:13 <ehird`> this will be concatentation:
22:00:42 <ehird`> βHello, ββ§Ίβworld!β
22:00:48 <ehird`> ^ it's haskell's ++, in unicode :P
22:01:58 <Slereah> Also, why quotation marks?
22:02:01 <ehird`> it's 'adding' to the output, but it's in the console, so it's "boxed in" because you can't see it directly from the program?
22:02:04 <Slereah> Wan't we do moar contrived?
22:02:14 <ehird`> think about it, you can do this:
22:02:54 <ehird`> the only char you need to escape is β. if you have just "abc" in your quote it doesn't need escaping
22:02:57 <ehird`> Slereah: they're smart quotes
22:03:05 <ehird`> danopia: did i ever ping you?
22:03:27 <Slereah> Well, there'ws "symbol for start of text" and end of text.
22:04:09 <Slereah> http://www.unicode.org/charts/PDF/U2400.pdf
22:05:39 <Slereah> I can't. It apparently won't copy text to clipboard.
22:05:56 <Slereah> Either my PDF reader sucks or it's some copyright protection
22:20:43 <ehird`> My son's intuition was that "=" should be used to test equality, and assignment shouldn't have any symbol at all. <-- haha
22:20:56 <ehird`> i guess "var 5" wouldn't be too bad :P
22:22:11 <Slereah> Well, what we could do is use the substitution symbol for variable assignation.
22:23:13 <oerjan> assignment is brutal. use a lightning stroke symbol.
22:23:45 <Slereah> Shouldn't we keep that for the deathray function?
22:25:55 <ehird`> Slereah: 'shouldn't have any symbol at all'
22:25:56 <pikhq> Use the interrobang for assignment.
22:26:10 <oerjan> no, that would be the basilisk eye.
22:26:37 <pikhq> And for printing? Use the Chinese character for 'to write'.
22:27:07 <pikhq> Slereah: I don't; just Japanese.
22:27:17 <pikhq> And my IME is borken, so I can't type out the appropriate character.
22:30:15 <ehird`> pikhq: when i found out about IME i was so upset
22:30:17 <Slereah> Also, will Unikitten be able to output unicode?
22:30:23 <ehird`> i thought the japanese had huge keyboards with every kanji on them
22:30:54 <ehird`> Slereah: No, we don't want to spend even one day on character sets! (PG parody.) Yes, of course it will.
22:31:53 <Slereah> So I guess there will have to be at least one escape char.
22:33:59 <ehird`> By the way, unikitten will take an awful long time to spec and impl :P
22:34:03 <ehird`> it's bigger than INTERCAL!
22:34:29 <pikhq> Obviously, it needs to include a mapping of INTERCAL.
22:34:47 <ehird`> An INTERCAL interp would be, what? 30 lines?
22:34:51 <ehird`> http://www.fileformat.info/info/unicode/char/241b/index.htm our esc char!
22:35:04 <ehird`> pikhq: well, compiler then
22:35:30 <oerjan> ideally, it should include every other esolang as a subset...
22:35:57 <pikhq> (you could even use the unallocated chars for some of the esolangs)
22:36:01 <ehird`> oerjan: there aren't that many esolangs. certainly less than 100,000
22:36:01 <Slereah> Also, who needs quotes! http://www.fileformat.info/info/unicode/char/2402/index.htm
22:36:02 <Slereah> http://www.fileformat.info/info/unicode/char/2403/index.htm
22:36:22 <ehird`> Slereah: that's for WHOLE text
22:36:39 <ehird`> we could use a real escape for our escape.
22:36:42 <Slereah> Well, it doesn't have to be exactly the same meaning!
22:37:02 <Slereah> Unless you've got other plans for this.
22:37:52 <ehird`> Slereah: Well, we should be correct as much as possible :P
23:09:31 -!- Slereah has quit (Read error: 104 (Connection reset by peer)).
23:09:34 -!- Slereah has joined.
23:17:16 <ehird`> pikhq: Advocate Tcl to me. I have a feeling I'm just not seeing what's good about it.
23:21:50 -!- timotiis has quit ("leaving").
23:22:09 -!- calamari has quit (Remote closed the connection).
23:24:57 -!- oerjan has quit ("Good night").
23:27:31 <ehird`> (Hm. overloading == as definiton: genius or evil?)
00:04:54 <ehird`> both y and z then apply, right?
00:06:09 <olsner> no, if the first x-rule fails, the second one is tried
00:06:34 <olsner> so that's x :- y ; z. (y or z)
00:07:09 <ehird`> olsner: so if i can't overload :-
00:07:16 <ehird`> what would you reccomend as the operator for that? :P
00:07:30 <ehird`> i've been using == but that doesn't make much sense for multiple cases
00:07:38 <ehird`> or <=, but that's really evil :-)
00:12:20 <ehird`> olsner: if you don't say anything i'll override the goddarn less-than-or-equal-to op
00:12:50 <olsner> I don't understand, are you doing this in prolog?
00:13:18 <olsner> obviously, if you've changed the meaning of :-, my previous answer was wrong
00:18:12 -!- sebbu has quit ("@+").
00:28:40 -!- calamari has joined.
00:33:55 <ehird`> writing a prolog interp as a DSL in Ruby
00:44:46 <olsner> aha, so you're looking for ruby operators to overload into their prolog meaning?
00:47:56 -!- AnMaster has quit (No route to host).
00:48:43 -!- Sgeo_ has joined.
00:49:15 -!- AnMaster has joined.
00:51:43 <ehird`> prolog would be really suited for something i want to code up
00:52:09 <ehird`> take a few numbers, and a target number, then using some basic maths operators get from the numbers to the target
00:52:16 <ehird`> probably np-complete or something
00:53:06 <ehird`> i'd probably have to do my own math ops for it...
00:53:17 <ehird`> solve([target,...],dest,X).
00:55:28 -!- Sgeo has quit (Read error: 110 (Connection timed out)).
01:25:59 -!- ehird` has quit ("K-Lined by peer").
02:14:53 -!- AnMaster_ has joined.
02:27:51 -!- AnMaster has quit (Connection timed out).
02:40:22 -!- Slereah has quit (Read error: 110 (Connection timed out)).
02:44:29 -!- Corun has quit ("This computer has gone to sleep").
03:13:00 -!- AnMaster_ has quit (Connection timed out).
03:14:07 -!- AnMaster_ has joined.
03:17:34 * pikhq would like to take this opportunity to curse at calculus
03:17:49 <pikhq> \int{{x^2}\over{x^2+1}}dx
03:21:39 <RodgerTheGreat> to preface this, I understand coding theory and the entropy of data. I understand that it is impossible to create a "magic" compression algo that would work for *any* input, and I'm asking about this idea merely to discover wether people think it's sufficiently plausible for Sci-fi, not real implementation
03:22:29 <RodgerTheGreat> There are many operations you can do to pairs of operands that generate infinite, nonrepeating sequences
03:22:41 <RodgerTheGreat> Pi would be an example of one of these nonrepeating sequences
03:23:53 <RodgerTheGreat> it is reasonable to assume that you can find an arbitrary pattern (arbitrary data) in Pi, and encode data as merely an index and run length into the digits of Pi, but you'd probably have such huge numbers that you wouldn't actually save any space, and it'd take forever to calculate
03:24:29 <RodgerTheGreat> however, there are many possible numbers you could index into- this would improve your odds of finding a "close" match dramatically
03:25:07 <RodgerTheGreat> Also, in many kinds of digital data, the actual arrangement of information is largely arbitrary- take a look at a .TAR file.
03:25:30 <RodgerTheGreat> there are a massive number of arrangements of data within a .TAR that would reconstruct exactly the same data
03:26:55 <RodgerTheGreat> so, if you had *MASSIVE* computing power to try every combination of rearranging your data, breaking it up into pieces and adding noncoding padding, in combination with a large pool of sequences to search, you could theoretically compress enormous amounts of data into something that could be written on a piece of paper.
03:27:37 <RodgerTheGreat> And there's always the possibility that you simply won't be able to find the sequence you want, so there would be a certain probability that specific data would be just plain impossible to compress
03:28:20 <RodgerTheGreat> but in essence, what do you guys think? Complete technobabble, or vaguely plausible?
03:33:43 -!- Sgeo_ has changed nick to Sgeo.
03:36:45 <calamari> pikhq: I just put that into my hp48gx calculator..
03:37:24 <calamari> pikhq: and I must have done something wrong because that's not the answer :P
03:38:06 <GregorR> RodgerTheGreat: Once you have the index, you have to find the location of the index within pi. Statistically speaking, since the index is smaller than the original data, it is more likely to appear, sooner. So you can usually reduce it further. Of course, this will break down at an unpredictable point, but you could probably get it down to a few billion gigs of data.
03:38:20 <calamari> RodgerTheGreat: that was latex?
03:39:49 <RodgerTheGreat> GregorR: that's the value of being able to search many, many repeating sequences, choosing from a large selection of binary "targets" that can all decode identically
03:41:03 <RodgerTheGreat> the more variables you can play with, the higher your odds become to find a usable index that's some kind of sane distance in
03:42:03 * pikhq is just cursing at partial fractions
03:42:16 <pikhq> Screw it: I've spent 40 minutes at it and have no answer. I'm not going to find anything.
03:42:30 <RodgerTheGreat> your odds would also improve significantly for smaller filesizes, too
03:42:41 <pikhq> Unless someone can tell me where to start.
03:43:13 <calamari> pikhq: sorry, my calculator isn't smart enough for that one
03:43:29 <pikhq> RodgerTheGreat: Damned clever.
03:43:34 <calamari> seems like you could use substitution tho
03:43:48 <pikhq> calamari: u=x^2. du=2xdx. How does that help?
03:44:41 <RodgerTheGreat> I think if you're willing to accept the caveats that it will take ludicrous amounts of time to compress data, your mileage may vary, and some sequences are incompressible, it sounds semi-realistic
03:44:50 <calamari> pikhq: is that a real question, because Itook calc 2 a number of years ago and I don't remember much :P
03:45:19 <pikhq> calamari: I'm in it now, and that stupid problem is going to give me nightmares.
03:46:04 * pikhq moves on to the next problem set. . .
03:46:10 <pikhq> Where I can use a table of integrals. Yay!
03:46:15 <calamari> arctan u = u'/(1+u^2) does that help?
03:59:31 -!- immibis has joined.
04:00:54 <Sgeo> No immibis (no=hi)
04:11:09 <Sgeo> Does anyone know what can cause a blocked port 80?
04:13:19 -!- MizardX has joined.
04:22:52 <calamari> hrm, I did something wrong because that doesn't work :)
04:35:45 <calamari> argh.. I think I've completely forgotten how to do integration by parts
04:35:50 <immibis> er, 1-1/1+ is surplus isn't it?
04:53:30 <calamari> (x^2 * arctan(x)) - integrate(x * arctan(x) dx)
05:28:21 -!- Sgeo has quit (Connection timed out).
06:18:44 -!- calamari has quit ("Leaving").
07:35:27 -!- immibis has set topic: BACKWARDS TEXT!!!...I mean......naem I...!!!TXET SDRAWKCAB.
07:35:38 -!- immibis has quit ("Hi Im a qit msg virus. Pls rplce ur old qit msg wit tis 1 & hlp me tk ovr th wrld of IRC. and dlte ur files. and email ths to).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:32:22 -!- olsner has quit ("Leaving").
09:13:11 -!- AnMaster_ has changed nick to AnMaster.
10:47:30 -!- oerjan has joined.
11:09:28 <oerjan> x^2/(1+x^2) = 1-1/(1+x^2), so calamari had it right
11:11:40 -!- jix has joined.
11:14:17 <oerjan> (long division of polynomials)
12:34:09 -!- sebbu has joined.
12:44:45 -!- sarehu has quit (Remote closed the connection).
12:44:54 -!- sarehu has joined.
12:59:25 -!- Cesque has joined.
12:59:46 -!- Cesque has quit (Client Quit).
14:29:28 -!- oerjan has quit ("leaving").
14:40:25 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)).
14:41:32 -!- puzzlet has joined.
15:26:36 -!- AnMaster has quit ("ERC Version 5.2 (IRC client for Emacs)").
15:29:59 -!- SimonRC has quit (Remote closed the connection).
15:38:51 -!- timotiis has joined.
15:57:13 -!- AnMaster has joined.
16:18:58 -!- SimonRC has joined.
16:21:53 -!- RedDak has joined.
16:22:37 -!- ais523 has joined.
16:51:21 -!- ais523 has quit ("Konversation terminated!").
16:52:57 -!- sarehu has quit (Remote closed the connection).
16:53:07 -!- sarehu has joined.
17:12:37 -!- RedDak has quit ("I'm quitting... Bye all").
17:22:07 -!- Corun has joined.
17:57:15 -!- Hiato has joined.
17:57:46 * Hiato inconspicuously greats all concerned
18:02:28 -!- cherez has joined.
18:10:29 -!- Hiato has quit ("Leaving.").
18:11:09 -!- oklopol has changed nick to OklopolTheGreat.
18:13:01 -!- oerjan has joined.
19:14:26 -!- Sgeo has joined.
19:51:38 -!- olsner has joined.
19:53:33 -!- bsmntbombdood has changed nick to DoodTheSoon2bGr8.
19:55:53 -!- oerjan has quit ("leaving").
20:27:02 -!- RedDak has joined.
21:22:22 -!- EgoBot has quit (Read error: 110 (Connection timed out)).
21:22:45 -!- GregorR has quit (Read error: 110 (Connection timed out)).
21:28:27 -!- DoodTheSoon2bGr8 has changed nick to bsmntbombdood.
21:58:04 <Sgeo> Is ANYONE going to play with PSOX?
22:01:04 -!- OklopolTheGreat has changed nick to oklopol.
22:02:29 * Sgeo feels compelled to make a pixelcomic scraper so he can have a clickable list of the names of each comic
22:05:01 -!- RedDak has quit (Remote closed the connection).
22:06:21 -!- jix has quit ("CommandQ").
22:08:12 -!- pikhq has quit (Read error: 110 (Connection timed out)).
22:25:56 -!- Slereah has joined.
22:31:25 -!- pikhq has joined.
22:44:13 -!- Sgeo has quit (Read error: 110 (Connection timed out)).
23:01:19 -!- timotiis has quit ("leaving").
23:44:07 -!- sebbu has quit ("@+").
01:04:48 -!- Corun has quit ("This computer has gone to sleep").
01:33:13 -!- Sgeo has joined.
02:27:28 -!- calamari has joined.
02:29:37 <Sgeo> So, did you poke around the alpha?
02:29:58 <RodgerTheGreat> http://www.fastcompany.com/magazine/06/writestuff.html?page=0%2C0
02:37:10 <RodgerTheGreat> short version of the above: The software engineering firm with the lowest error rate in the world has that rate because they use some basic, sane concepts in their development process.
02:37:25 <RodgerTheGreat> Modern software engineering blows chunks, and these guys are awesome
02:50:58 <pikhq> Well, of course modern software engineering blows chunks.
02:51:08 <pikhq> It has the same rigor that I apply towards my hobby coding projects.
02:51:29 <pikhq> You know, the ones that I code just to figure something out. . .
02:51:37 <pikhq> There's something kinda sickening about that.
03:12:50 <pikhq> Hmm. That article has some really *obvious* measures in there.
03:14:28 <pikhq> 'Plan, have a good team, use revision control and a bug manager, fix whatever lets a bug through"
03:27:18 <Sgeo> I suppose my PSOX project doesn't exactly need that kind of rigour >.>
03:31:52 <calamari> pikhq: did you find the answer to the integration?
03:57:30 -!- immibis has joined.
03:59:56 <calamari> pikhq: the answer is: x^2 * arctan(x) - (1 + x^2) * arctan(x) + x + C
04:00:06 <calamari> I guess that can be simplified
04:05:46 <calamari> x^2 / (1 + x^2) can be simplified to 1 - 1 / (1 + x^2)
04:06:14 <calamari> because 1 = (1 + x^2) / (1 + x^2)
04:06:46 <calamari> so then you can integrate from there to x - arctan(x)
04:06:59 -!- calamari has quit ("Leaving").
05:59:57 -!- pikhq has quit (Read error: 104 (Connection reset by peer)).
06:03:36 -!- Sgeo has quit (Remote closed the connection).
06:07:14 -!- pikhq has joined.
06:18:32 -!- immibis has quit (Nick collision from services.).
06:31:21 <oklopol> integration is trivial unmath
06:41:43 -!- immibis has joined.
06:41:56 <immibis> did any of you notice google has mirc as a synonym of irc?
06:55:30 -!- immibis has quit (Nick collision from services.).
07:27:14 -!- immibis has joined.
07:40:33 -!- EgoBot has joined.
07:40:41 -!- GregorR has joined.
07:55:41 -!- immibis has quit (Connection timed out).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:33:44 -!- cherez has quit (Read error: 110 (Connection timed out)).
08:45:30 -!- olsner has quit ("Leaving").
09:40:43 -!- MizardX has quit (Read error: 110 (Connection timed out)).
09:47:55 -!- Corun has joined.
09:48:31 -!- Corun has quit (Client Quit).
10:17:49 -!- sebbu has joined.
10:43:31 -!- puzzlet_ has joined.
10:44:00 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)).
11:32:27 -!- jix has joined.
13:57:07 -!- RedDak has joined.
14:06:37 -!- sarehu has quit (Remote closed the connection).
14:06:47 -!- sarehu has joined.
14:29:45 -!- Hiato has joined.
15:50:50 -!- sarehu has quit (Remote closed the connection).
15:50:59 -!- sarehu has joined.
16:15:05 -!- RedDak has quit (Remote closed the connection).
16:33:26 -!- timotiis has joined.
16:36:40 -!- Tritonio_ has joined.
16:46:02 -!- Hiat1 has joined.
17:01:28 -!- Corun has joined.
17:05:17 -!- Hiato has quit (Read error: 110 (Connection timed out)).
17:09:49 -!- puzzlet has joined.
17:10:13 -!- Corun has quit ("This computer has gone to sleep").
17:22:14 -!- puzzlet_ has quit (Read error: 110 (Connection timed out)).
17:52:31 -!- slereah__ has joined.
18:02:01 -!- Slereah has quit (Read error: 110 (Connection timed out)).
18:14:19 -!- cherez has joined.
18:18:28 -!- RedDak has joined.
19:11:44 -!- RedDak has quit (Remote closed the connection).
19:49:12 -!- oerjan has joined.
19:54:31 -!- RedDak has joined.
20:21:22 -!- Hiat1 has quit ("Leaving.").
20:33:50 -!- timotiis has quit (Remote closed the connection).
20:34:02 -!- SimonRC_ has joined.
20:35:46 -!- SimonRC has quit (Read error: 104 (Connection reset by peer)).
20:36:04 -!- SimonRC_ has changed nick to SimonRC.
21:19:35 -!- ehird has joined.
21:22:13 -!- timotiis has joined.
21:23:56 -!- ehird has set topic: HAT!! YOU'RE RUINING MY HAT! Also,.
21:24:45 -!- timotiis_ has joined.
21:26:24 -!- timotiis has quit (Client Quit).
21:26:24 -!- timotiis_ has quit (Client Quit).
21:26:33 -!- timotiis has joined.
21:37:31 -!- faxathisia has joined.
21:37:52 <faxathisia> This is totally mad http://www.basis.uklinux.net/ursala/seminar111207.pdf
21:38:17 <ehird> faxathisia: you are totally mad.
21:39:54 <ehird> wait-- you're not?
21:39:54 <ehird> dispatch the stormtroopers
21:46:25 <oerjan> Haskell is no less verbose than OO? (O_O)
21:46:43 <ehird> oerjan: wait what?
21:48:04 <oerjan> ehird: one of the first slides of what faxathisia linked
21:48:15 <ehird> awkward quasi-imperative features (e.g., monads)
21:48:30 <ehird> written like a true amateur!
21:48:42 <ehird> obviously, monads are just so haskell can CHEAT out of being IMPERATIVE!!!!!
21:49:22 <oerjan> although that document does seem to have a different standard of verbosity ... what is that language?
21:50:03 <oerjan> oh the old one mentioned?
21:51:07 <oerjan> "Squiggolism (Bird and Merteens)"
21:51:14 -!- olsner has joined.
21:51:18 <ehird> i guess that guy was right when he said about verbosity.. it's hideously short!
21:51:50 <ehird> 'Brevity is a design goal.' Paul? Is that you? Oh honey, please come back to Lisp... you do less harm there.
21:52:35 <ehird> oerjan: i knew it wasn't apl
21:52:36 <ehird> oh my god: report.fun
21:54:50 <ehird> faxathisia: oerjan: its called 'ursala'
21:57:18 <faxathisia> someone should make a programming language out of it
21:57:36 <ehird> we want naive set theory
21:57:38 <oerjan> isn't that almost what the Z specification language is?
21:57:40 <ehird> think of the paradoxical interpreter fun
21:57:41 -!- ehird has quit ("Leaving").
21:57:42 <SimonRC> I like the way that ~&farlthlriNCSPDPDrlCS2DlrTS2J, is an operator
21:57:55 <faxathisia> You should be forced to do all this work http://us.metamath.org/mpegif/peano5.html , just to use recursion
21:58:10 -!- ehird has joined.
22:07:26 -!- RedDak has quit (Remote closed the connection).
22:08:04 <SimonRC> the occasional occurance of 10 identical chars in a row just adds to the zaniness
22:17:26 <ehird> SimonRC: technically,
22:17:34 <ehird> '~&farlthlriNCSPDPDrlCS2DlrTS2J' is merely a composition of operators..
22:17:38 <ehird> but seriously, aah.
22:18:19 <olsner> ooh, this language sounds interesting... link?
22:18:38 <faxathisia> ~:&:f:a:r:l:t:h:l:r:i:N:C:S:P:D:P:D:r:l:C:S:2:D:l:r:T:S:2:J is the arc equivalent
22:19:11 * faxathisia *woops* http://www.basis.uklinux.net/ursala/seminar111207.pdf
22:19:13 <ehird> faxathisia: you're just another arc fanboy, aren't you..
22:19:16 <oerjan> ehird: sure, tempt him even more
22:19:31 <ehird> you've defended it since it came out :P actually, before that you said it was crappy hype..
22:20:16 <oerjan> but then olsner is evil too. on another channel he blathers about evil secret swedish bacterial products.
22:21:31 <ehird> faxathisia: also, it's not what you said
22:21:47 <ehird> &:farl:thlr:iNCS:PD...:~
22:22:01 <ehird> and most of those ops are multi-char
22:22:08 <olsner> oerjan: sshh, the evil secret is supposed to be *secret*
22:22:21 <faxathisia> I haven't made an effort to understand squggol or whatever it is yet
22:23:02 <ehird> faxathisia: not worth it
22:23:15 <oerjan> i think squiggol was just another very old language mentioned in that slide show
22:24:01 <olsner> I thought quiggol was the bananas and lenses stuff
22:24:35 <oerjan> http://en.wikipedia.org/wiki/Bird-Meertens_Formalism
22:24:54 <oerjan> hm maybe it isn't _that_ old
22:25:16 <oerjan> the slide show mentioned it in the same breath as FP
22:25:30 <olsner> hmm, so, the bananas and lenses stuff is squiggol in a new notation with funny names for things?
22:28:14 -!- Tritonio_ has quit (Read error: 110 (Connection timed out)).
22:30:01 <olsner> wtf, a 466 page manual? is this thing auto-generated?
22:31:18 <lament> All work and no play makes Jack a dull boy.
22:31:19 <lament> All work and no play makes Jack a dull boy.
22:31:19 <lament> All work and no play makes Jack a dull boy.
22:31:20 <lament> All work and no play makes Jack a dull boy.
22:32:25 <oerjan> lament is evil too. i just saw him say that kids need speed.
22:32:59 <lament> oerjan: You're living in a bubble. But i'll sort that out.
22:33:25 <oerjan> LALALALA I CAN'T HEAR YOU
22:34:13 <oerjan> Dr. House is your dentist?
22:35:03 <lament> so Darwin was born today.
22:36:15 -!- jix has quit ("CommandQ").
22:46:32 <olsner> I'm starting to think haskell should grab some features from ursala
22:46:54 <SimonRC> those big strings are rather like Forth stack-manipulation ops
22:47:10 <SimonRC> some of them are type specifiesr
22:47:45 <olsner> for example, deconstructors: ~(&lr,&lr) === (snd.fst) &&& (fst.snd)
22:48:17 <olsner> don't know how deep this rabbit hole actually goes, but it seems you can use the resulting constructor as a template and fill it in with deconstructors that are applied to the argument
22:50:35 <olsner> pointsfree haskell is too weak ;-)
22:56:45 -!- bsmntbombdood has quit (Connection reset by peer).
22:57:17 -!- bsmntbombdood has joined.
22:57:26 -!- bsmntbombdood has quit (Read error: 104 (Connection reset by peer)).
22:58:00 -!- bsmntbombdood has joined.
23:00:22 -!- bsmntbombdood has quit (Connection reset by peer).
23:00:56 -!- bsmntbombdood has joined.
23:01:51 -!- Corun has joined.
23:02:13 -!- danopia has quit (Client Quit).
23:02:22 -!- timotiis has quit ("leaving").
23:04:27 -!- bsmntbombdood has quit (Read error: 104 (Connection reset by peer)).
23:05:01 -!- bsmntbombdood has joined.
23:07:30 -!- SimonRC has set topic: HAT!! YOU'RE RUINING MY HAT! Also, http://www.basis.uklinux.net/ursala/manual.pdf.
23:10:33 <ehird> olsner: it suckkkksss
23:10:43 <olsner> ehird: is that an executable program?
23:10:53 <faxathisia> I am halfway through this damn massive paper but I want to read the thing...
23:10:54 * oerjan once again fails at recognizing any reference, using google
23:11:02 <ehird> you might need to add some more obfuscation
23:13:09 <ehird> the pointer expressions are an entire embeded language
23:14:18 <olsner> heh, I was just thinking "hmm, maybe these pointer expressions could be extracted into a separate esolang" :P
23:15:43 <olsner> (x,y,z) = (reverse,init,last)
23:16:23 <ehird> RodgerTheGreat: Did it hurt?
23:16:33 <RodgerTheGreat> on a quantum computer, bogosort is the most efficient sorting algorithm possible
23:16:55 <olsner> ehird: epiphanies are good for you, they're a sign of the deities liking you
23:17:17 <ehird> olsner: touched by his noodly appendage.
23:17:28 <ehird> RodgerTheGreat: no -- only quantum bogosort, when following the many worlds theory
23:17:31 -!- sarehu has quit (Remote closed the connection).
23:17:33 <RodgerTheGreat> olsner: if we read the bible, so are sores, poverty and the death of your entire family
23:17:37 <ehird> it destroys the current world if the list isn't sorted after the first try.
23:17:46 -!- sarehu has joined.
23:17:51 <ehird> but you still have to go through the list to check for sorting
23:18:02 <ehird> also, shuffling is basically the same
23:18:36 <RodgerTheGreat> O(n) is by definition as efficient as any sorting algorithm could be
23:19:02 <RodgerTheGreat> even with an oracle, you can't sort a list of N items without N steps- it just wouldn't make any sense
23:19:12 <ehird> RodgerTheGreat: well, sure.
23:19:19 <olsner> many worlds + intelligent design sort
23:19:30 <ehird> O(5.4) sorting algorithm ;)
23:19:33 <oklopol> sorting is O(1) if sorting is a primitive operation
23:20:04 <oklopol> O(n) on reading input i guess, at least
23:20:18 <RodgerTheGreat> by that logic a foreach loop is O(1). that's ridiculous.
23:20:40 <ehird> RodgerTheGreat: he means 'in the universe'
23:21:01 <RodgerTheGreat> well, in that case it makes an asymptotically tiny amount of sense.
23:21:10 <oklopol> you mean i don't make sense?
23:21:28 <RodgerTheGreat> I mean the probability of it making sense approaches zero
23:21:51 <oklopol> "<RodgerTheGreat> by that logic a foreach loop is O(1). that's ridiculous." <<< i meant was this for me
23:22:48 <RodgerTheGreat> "i meant was this for me" < This cannot be a coherent english sentence.
23:23:00 <oklopol> i just meant, when you start going oracle, you might wanna rethink what it means for something to be "O(n)"
23:23:04 <ehird> RodgerTheGreat: yes it can
23:23:09 <ehird> that is perfectly ok english
23:23:11 <oklopol> "i meant, was this for me?"
23:24:00 <RodgerTheGreat> punctuation and capitalization make a difference. "I helped my uncle Jack off a horse" vs "I helped my uncle jack off a horse"
23:24:49 <oklopol> in this case, was there another way to parse my sentence?
23:25:28 <oklopol> anyway, that's a bit beside the pointzility
23:25:39 <ehird> RodgerTheGreat: this is irc, stop being pretentious
23:26:18 <RodgerTheGreat> ehird: I'm not being pretentious, I'm being pedantic, and if you're telling me I can't be pedantic in #Esoteric, you've lost your mind
23:26:26 <oklopol> ehird: you're just jealous because he corrected me and not you.
23:26:30 <ehird> you can't be pedantic re: spelling and grammar over irc
23:27:06 <oklopol> if you think you can't have lost your mind at #Esoteric, you've also lost your mind
23:27:13 <ehird> quick! codify that
23:28:12 <RodgerTheGreat> pikhq: where the fuck is the nomic page for #Esoteric?
23:28:53 <ehird> RodgerTheGreat: that would be too confusing. it must not exist
23:28:57 <ehird> also, this is #esoteric
23:28:58 <oerjan> we don't have any rules, we cannot be a nomic
23:29:57 <ehird> Please, say IRP is irritating
23:30:11 <ehird> my topic is STILL in #irp :|
23:31:13 <oerjan> at least the rule has a catchy acronym
23:32:15 <RodgerTheGreat> it's even a decent representation of the sound my brain makes every time someone joins for the exclusive purpose of using IRP
23:32:48 -!- ehird has set topic: iii.
23:35:19 <oerjan> http://en.wikipedia.org/wiki/Rule_of_Three
23:35:21 <sarehu> the only O(n) sorting algorithm I've seen is the one that requires O(n) processors located within the array and numbers represented in unary form
23:35:28 * oerjan didn't know there were that many of them
23:36:00 <RodgerTheGreat> oerjan: the CS one is also known as "three or more, use a FOR"
23:36:22 <sarehu> excuse me, I meant O(n^2) processors, and that's with small numbers
23:37:16 <oklopol> err, aren't all slot-based ones O(n)?
23:37:21 <sarehu> with a single CPU you will never beat O(n log n)
23:37:36 <ehird> RodgerTheGreat: TWO or more, use a for.
23:37:41 <oklopol> O(n lg n) is for binary comparisons
23:37:59 <sarehu> no, O(n log n) is for anything with a single CPU, where n = # elts in array
23:38:03 <RodgerTheGreat> nah, you generally need three to make the loop overhead worthwhile
23:38:12 <sarehu> or more specifically, O(n log k) where k is the number of distinct elements
23:38:51 <oklopol> i mean, based on what is it O(n lg n)
23:39:02 <oklopol> lezzay you have a binary string
23:39:03 <sarehu> the number of bits you need to look at in n-element arrays with k distinct elements to simply distinguish the elements is O(n log k)
23:39:07 <ehird> RodgerTheGreat: i think dijkstra is probably better at this crap than anyone here :P
23:39:08 <oklopol> just count ones and zeroes
23:39:18 <ehird> sure, he might have been crazily elitist, but hey :D
23:39:49 <RodgerTheGreat> bullshit. dijkstra made some good algorithms, but he was completely off base on a number of things
23:40:06 <oklopol> i've just seen the O(n lg n) proof for n-ary comparisons
23:40:08 <RodgerTheGreat> and some of his "inventions" (like mutexes) are a patently obvious concept
23:40:09 <faxathisia> Have you read, A Discipline of Programming?
23:40:12 <ehird> i like dijkstra :|
23:40:14 <oklopol> trivial proof based on the decision tree
23:40:19 <ehird> also, RodgerTheGreat, nothing is obvious.
23:40:38 <faxathisia> He makes imperative programs and their correctness proofs beautiful
23:40:50 <ehird> RodgerTheGreat: why can he?
23:40:56 <faxathisia> which is bizarre since imperative programs are generally awful
23:41:02 <RodgerTheGreat> and I will gladly go into a detailed discussion of his failures and personality problems at a later time, but I need to go do homework
23:41:09 <ehird> maybe you just don't like that most of mathematics and CS is codifying the 'obvious'
23:41:18 <ehird> and it's only obvious because they're so common today i must add.
23:41:46 <RodgerTheGreat> ehird: one reason: Dijstra KILLED BASIC. He gave Dartmouth BASIC a bad name and ruined its reputation, along with GOTO forever, and his reasoning was flawed
23:42:04 <RodgerTheGreat> most of his attacks on GOTO are only valid for numbered gotos, rather than labeled gotos anyway
23:42:10 <ehird> goto is pretty much awful unless you're implementing a state machine or similar
23:42:22 <ehird> also, I am all for killing BASIC
23:42:22 <RodgerTheGreat> and now people blindly follow the "anti GOTO" idea without understanding why it even exists!
23:42:30 <faxathisia> seriously though, his work is amazingt
23:42:32 <ehird> it's cool to play about with as a kid -- really cool
23:42:38 <ehird> please, god, kill it
23:43:30 <RodgerTheGreat> ehird: This is most likely because you're ignorant about the history of BASIC. Read up on Dartmouth BASIC, and get back to me
23:44:47 <ehird> RodgerTheGreat: i'm well aware
23:44:49 <ehird> faxathisia: i agree
23:45:09 <ehird> only complete idiots..
23:45:18 <faxathisia> anyway, it's fine for compiler output ...
23:45:23 <ehird> a goto does have some kind of usecase in imperative languages though...
23:45:36 <faxathisia> but whatever, goto is totally irrelevant to the work Dijkstra did
23:45:53 <ehird> if you have a few nested flow structures, and a few of the branches and levels have an error case, 'goto fail' is useful
23:46:25 <ehird> faxathisia: give a more elegant way to do that example
23:47:10 <faxathisia> I have no idea, I've never had the need for goto in years of C programming
23:48:16 <ehird> faxathisia: well, exactly -- you havent come across one of them
23:48:21 <oklopol> a pretty elegant way is to USE C++ AND THROW ;;;)
23:48:23 <ehird> sometimes, they can't be refactored nicely, either
23:48:31 <ehird> oklopol: exceptions are evil, totally evil
23:49:57 <faxathisia> ehird, other than compiler output, I conjecture that there is no use
23:50:28 <oklopol> faxathisia: you can do call/cc with them, if you can fuck the stack too
23:50:57 <oklopol> you can definately do useful stuffzorz
23:51:09 <ehird> oklopol: only downwards-only call/cc.
23:51:17 <ehird> faxathisia: see my example.
23:51:28 <faxathisia> http://james.fabpedigree.com/lesson9.htm#p93
23:53:09 <faxathisia> It's a shame that all people think about when Dijkstra is mentioned is goto though..
23:55:06 <ehird> he wasn't entirely right, but mostly
23:55:12 <ehird> goto should be considered harmful, most of the time.
23:55:32 <ehird> faxathisia: where are you from, anyway? just curious :)
23:55:36 <faxathisia> I like that he uses a nondeterministic languague to describe everything
23:55:56 <faxathisia> because he uses a lot of ideas that are valid in Logic programming too
23:58:59 <ehird> faxathisia: I wonder if this will make any sense to you since I know nothing of Scottish TV (but i'm pretty sure you get ch4..), but I was watching Countdown one day and there was a maths board that I couldn't solve (nobody else did, either) and I decided I would write a simple program to solve them. I just remembered today. I still haven't wrote it :p
23:59:25 <faxathisia> Are you interested in program derivation at all?
23:59:27 <ehird> intuition tells me it's probably a Really Hard problem, mathematically
23:59:50 <ehird> faxathisia: well, i just looked it up, and that's pretty cool :P
23:59:59 <ehird> and would also be a neat way to write that program, haha
00:00:04 <ehird> prolog would be even more fun though
00:00:15 <ehird> the difficult part is already done for me
00:00:48 <faxathisia> Hutton does it nicely http://www.cs.nott.ac.uk/~gmh/countdown.pdf , and Shin-Cheng Mu repeats it much much more elegantly http://www.iis.sinica.edu.tw/~scm/pub/countdown704.ps.gz
00:01:18 <ehird> I HATE BEING LATE TO DOING STUFF >:E
00:02:08 <ehird> i have been out-1337ed
00:02:35 <ehird> faxathisia: but it's been done before and in the most awesomest language
00:02:50 <ehird> WITH LIST COMPREHENSIONS!! shit.
00:04:45 <ehird> faxathisia: maybe i ought to write a prolog version
00:04:50 <ehird> i mean it'd just be a few statements
00:04:57 <ehird> no actual working-out code, if my ideas are right
00:06:31 <faxathisia> It's great when you can get really declarative Prolog code
00:06:32 <ehird> faxathisia: it'll probably be ugly. i suck at prolog
00:06:41 <faxathisia> You have read http://muaddibspace.blogspot.com/2008/01/generate-test-and-intertwine-aim-here.html ?
00:06:50 <ehird> i don't thinkn so?
00:07:08 <faxathisia> you probably know the stuff but it's nice
00:08:35 <ehird> don't ever assume i know something
00:10:15 -!- olsner has quit ("Leaving").
00:11:15 <ehird> a language for doing things like the countdown problem would be neat
00:11:21 <ehird> kind of like prolog but not really
00:11:32 <ehird> you give it a problem and a domain.
00:11:36 <ehird> like, domain of countdown:
00:12:53 <ehird> domain countdown(T) := {<Int>(x|x > 0), <Int>+<Int>(x|x < T), <Int>-<Int>, <Int>*<Int>(x|x < T), <Int>/<Int>}.
00:13:19 <ehird> (- doesn't have to be checked because it will always yield an int in the same domain)
00:13:30 <ehird> T is the target of course
00:14:13 <ehird> you could even do this
00:14:25 <ehird> domain countdown(T) := {<Int>(x|x > 0, x < T), <Int>+<Int>, <Int>-<Int>, <Int>*<Int>, <Int>/<Int>}.
00:14:35 <faxathisia> I think you may be able to do that in Prolog directly
00:14:43 <ehird> faxathisia: sure, but not stated as nicely
00:15:07 <ehird> domains are rock-hard contracts, there is simply no such thing as an <Int> in countdown above the target.
00:16:15 <ehird> i should be something like
00:17:05 <ehird> domain countdown(t) := {E | <Int>(x | x > 0, x < t), E+E, E-E, E*E, E/E}
00:18:18 -!- Tritonio_ has joined.
00:19:53 <ehird> domain (t) : {E | <Int>(x | x > 0, x < t), E+E, E-E, E*E, E/E}.
00:19:53 <ehird> problem (t,s) => domain (t) ^ s : ?(x | x = t).
00:21:00 <ehird> hope it's understandable
00:21:36 <ehird> basically the interpreter spends a crapload of time inside a crazy inference engine to come up with something in the domain that satisfies the constraints.
00:21:53 <ehird> similar to prolog? yes.
00:21:55 <ehird> but not identical.
00:23:31 <ehird> well, faxathisia disappeared
00:23:51 <ehird> were you vomiting over my crap code
00:26:05 <ehird> faxathisia: or marvelling over it?!
00:26:22 -!- ehird has quit ("Leaving").
00:26:43 -!- ehird has joined.
00:26:47 <ehird> did i miss seomething
00:28:00 <ehird> last i heard was 'no i didn't
00:28:25 <ehird> faxathisia: well, anyway
00:29:21 <ehird> <faxathisia>nah00:24:49
00:29:21 <ehird> <faxathisia>I just wrote the program :P00:24:59
00:29:21 <ehird> <faxathisia>my solutions crap though..
00:29:30 <ehird> what's your opinion on my code/language :P
00:30:42 <ehird> faxathisia: Beats me
00:30:44 <ehird> I'll give it a try,.
00:31:06 <ehird> but it'd be non-trivial
00:31:12 <ehird> well, more trivial than all other soliutions
00:31:13 -!- oerjan has quit ("Good night").
00:31:16 <ehird> but not something i want to type up at this time
00:31:22 <ehird> faxathisia: something a bit simpler, maybe?
00:31:33 <oklopol> i came up with an evolution-based programming language today
00:32:18 <oklopol> it's interesting how far you can go with just "is close to"
00:32:59 <oklopol> support mainly for vectors
00:34:10 <oklopol> for example, a text-recognition program is just a few "is close to"'s
00:34:21 <oklopol> after you've specified the forms of the letters ofc
00:34:36 <ehird> faxathisia: no? :(
00:35:00 <oklopol> the main idea was the graphical interface, though, i have no idea how good genetic algos really are for text-recognition ;)
00:37:40 <ehird> time to invent some more semantics
00:38:31 <ehird> faxathisia: give me another problem while i work out how to elegantly express that
00:38:34 -!- Tritonio_ has quit (Remote closed the connection).
00:45:11 <faxathisia> Do you want to see my Prolog solution?
00:48:20 <ehird> faxathisia: very nice
00:49:13 <ehird> /Users/ehird/countdown.pl:1-3: warning: singleton variables [Error] for countdown/3
00:49:44 <faxathisia> you can replace Error with _ if you like
00:49:53 <ehird> faxathisia: you should optimize it to use all sources, if possible
00:50:04 <ehird> or at least look for short solutions if you don't want to make it do that :P
00:50:30 <ehird> faxathisia: well, not if it doesn't work without it
00:50:33 <ehird> but at least err on that side
00:53:25 <ehird> faxathisia: it generates duplicates
00:53:59 <ehird> faxathisia: is there a way to fix it?
00:55:07 <ehird> faxathisia: hmm, it also generates trivial permutations
00:55:11 <ehird> rearranging a*b, e.g.
00:56:06 <faxathisia> you can go setof(X, example(X), Y). % to get Y = [list, of, all, unique, solutions]
00:56:28 <faxathisia> You could have some canonical form for expressions to remove permutations
00:57:30 <ehird> also, faxathisia --
00:57:31 <ehird> | ?- setof(X, countdown([100,8,1,8,2,9], 983, X), Y).
00:57:34 <ehird> horrendously slow!
00:57:38 <ehird> hasn't aborted yet
01:03:57 <ehird> also if i could strip the tex crap from that shin-cheng mu paper i'd be using it
01:09:15 <ehird> faxathisia: or if you did that for me, like evevryone should do when i hint at something
01:13:53 <ehird> does your program settle for a near number if it can't get it exactly?
01:14:09 <ehird> i guess i'm less theoretical and more 'i want a computer that's really good at playing countdown'
01:34:34 -!- Sgeo has joined.
01:35:16 -!- Corun has quit ("Leaving").
01:43:06 -!- ehird has quit ("This computer has gone to sleep").
01:53:08 <lament> for x = infinity to 0 print x
01:57:56 <pikhq> Sorry, but my computer seems to dislike decrementing infinity.
02:05:04 -!- calamari has joined.
02:38:30 -!- puzzlet has quit ("Lost terminal").
02:39:13 <Sgeo> calamari, pikhq tried PSOX 1.0a1 yet?
03:11:00 -!- puzzlet has joined.
03:30:15 <pikhq> Did I happen to mention that it's a bitch to get Gentoo up and running from scratch? :p
03:33:56 <Sgeo> You mentioned that you were setting up Gentoo. Any difficulties are implied when you said "Gentoo"
04:08:46 -!- puzzlet has quit (Remote closed the connection).
04:08:54 -!- puzzlet has joined.
05:07:13 -!- johnl has quit (Remote closed the connection).
05:07:17 -!- johnl has joined.
05:08:14 -!- Sgeo has quit (Remote closed the connection).
06:11:47 -!- calamari has quit ("Leaving").
06:49:43 -!- slereah__ has quit (Read error: 104 (Connection reset by peer)).
06:49:47 -!- slereah__ has joined.
07:07:02 -!- slereah__ has quit (Connection timed out).
07:14:04 -!- Slereah has joined.
07:37:34 -!- olsner has joined.
07:58:13 <olsner> yes, I'm the first google hit for "mod_rewrite turing complete" now! :P
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:11:25 <Slereah> Are you also the only one?
08:26:35 <olsner> no, there are also a few blogs and some hand-waving mailing list posts about mod_rewrite being turing complete
08:27:03 <olsner> (but none, afaics, who have actually implemented a turing complete language with mod_rewrite)
08:37:14 -!- sebbu has quit (Read error: 60 (Operation timed out)).
08:40:45 -!- sebbu has joined.
08:43:15 -!- olsner has quit ("Leaving").
09:21:59 -!- oerjan has joined.
10:03:44 -!- sebbu2 has joined.
10:09:57 -!- sebbu has quit (Read error: 60 (Operation timed out)).
10:09:57 -!- sebbu2 has changed nick to sebbu.
10:30:48 -!- bsmntbombdood has quit (Read error: 110 (Connection timed out)).
10:31:54 -!- bsmntbombdood has joined.
11:09:39 -!- fax has joined.
11:17:00 -!- faxathisia has quit (Nick collision from services.).
11:22:58 -!- fax has changed nick to faxathisia.
11:31:51 -!- oerjan has quit ("leaving").
12:54:17 -!- Tritonio_ has joined.
13:28:03 -!- timotiis has joined.
13:43:19 -!- Hiato has joined.
14:09:23 -!- slereah__ has joined.
14:09:34 -!- Slereah has quit (Read error: 104 (Connection reset by peer)).
14:51:33 -!- RedDak has joined.
15:39:50 -!- Hiato has left (?).
15:45:09 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)).
15:45:25 -!- puzzlet has joined.
16:03:10 -!- jix has joined.
16:34:32 -!- sekhmet has quit (Read error: 104 (Connection reset by peer)).
16:37:10 -!- sekhmet has joined.
16:49:31 -!- sekhmet_ has joined.
16:51:22 -!- sekhmet has quit ("Reconnecting").
16:53:52 -!- sekhmet_ has changed nick to sekhmet.
16:55:57 -!- Corun has joined.
17:03:06 -!- ais523 has joined.
17:39:32 -!- RedDak has quit (Remote closed the connection).
18:15:42 -!- puzzlet has quit (Remote closed the connection).
18:15:47 -!- puzzlet has joined.
18:28:38 -!- Corun has quit ("This computer has gone to sleep").
19:07:58 -!- sarehu has quit (Read error: 110 (Connection timed out)).
19:16:51 -!- Sgeo has joined.
19:33:55 <ais523> Sgeo: do you have any thoughts about using PSOX as a glue layer between esolangs?
19:34:09 <ais523> that is, that allows esolangs to call functions written in other esolangs
19:34:12 <Sgeo> I'm not sure how that would work, exactly
19:34:26 <ais523> you'd need to somehow cause both programs to be run under PSOX in separate threads
19:38:07 <Sgeo> I don't think that really fits in with the current form of PSOX.. maybe a custom domain?
19:38:48 <ais523> custom domain would seem most reasonable
19:43:42 <Sgeo> I think I'm going to work on making custom domains available now
19:43:53 <Sgeo> But does this mean I should release an a2, or can I leave it in SVN?
19:45:24 <Sgeo> Also, domains.txt is rather inelegant :(
19:52:25 -!- sarehu has joined.
19:55:19 -!- Hiat1 has joined.
19:55:50 <Hiat1> Is there anyone here willing to aid their mad maths skillz
19:55:59 <Hiat1> I can't think straight and need some help...
19:58:10 <Hiat1> well, it's just that I think you need simultaneous equations for this thing, but I'm not sure where/how to extrapolate the necessary information
19:58:27 * Hiat1 admits it's not that mad, not really mad at all, it's just later for him
19:59:41 <ais523> what are you trying to do?
20:02:30 <slereah__> Are you telling me to kill them all?
20:03:15 <Hiat1> a "word problem" or "story sum" (depending on where you were raised), either way I just can't seem to get it (seems like a logical impossibility to me). Feel free to say no, as it is cheesy and is probably very very easy, I just can't seem to get it... "A train passes completely through a tunnel in 5 minutes. A second train, twice as long as the first, passes through the tunnel in 6 minutes. If both trains are travelling at the same speed of
20:03:15 <Hiat1> I work with complex numbers, draw graphs of the reciprocals in trig and programme fractals, yet this one eludes me...
20:03:38 <ais523> either your client or mine cut off the end of the problem
20:03:48 <ais523> could you try reposting it a bit at a time?
20:03:56 <Sgeo> I can convert any BF program into a PSOX program automatically
20:04:19 <Hiat1> "A train passes completely through a tunnel in 5 minutes. A second train, twice as long as the first, passes through the tunnel in 6 minutes....
20:04:23 <Sgeo> Thing is, it will only test the output pseudodomain and one use of the input pseudodomain
20:04:26 <Hiat1> If both trains are travelling at the same speed of 24km/h,
20:04:31 <Hiat1> etermine the length of the tunnel and the lengths of the trains"
20:04:33 <Sgeo> (and the result acts as EOF=0)
20:04:59 <Hiat1> can you see it all now?
20:05:25 <ais523> clearly it must take 1 minute for the length of the shorter train to pass through the tunnel
20:05:37 <ais523> because that's the difference in length between the two trains, and they go at the same speed
20:05:41 <Hiat1> thing is, it says that it takes it 5...
20:05:42 <ais523> that should let you figure out how long they are
20:05:49 <Hiat1> that's what my calculations said
20:06:13 <ais523> 5 minutes for the front of train 1 to enter the tunnel for the end of train 1 to leave the tunnel
20:06:15 <Hiat1> I have the lengths, 2/5 km and 4/5 respectively
20:06:45 <ais523> so it must take 4 minutes for the front of either train to get from the start of the tunnel to the end of the tunnel
20:07:16 <Hiat1> ok, sure, I can't see why (other than average)
20:07:22 <Hiat1> but it sounds tight
20:07:47 <ais523> because after the front of the train's reached the end of the tunnel, it takes another minute for the end of the train to escape from the tunnel
20:08:09 <ais523> so that's 4 mins for front-front, and another 1 min to escape completely = 5 mins
20:08:15 <ais523> the second train is 4+2=6
20:08:38 <Hiat1> hrmm... Ok, I see this now
20:09:05 <Hiat1> aha, I think I found my mistake
20:09:19 <Hiat1> I was calculating the length of the tunnel in terms of whole train lengths
20:09:29 <Hiat1> which it may not necessarily be
20:10:18 <ais523> it's 4 train-1 lengths long
20:10:22 <ais523> or 2 train-2 lengths long
20:10:27 -!- sarehu has quit (Read error: 110 (Connection timed out)).
20:10:50 <Hiat1> out of interest, could we not say 3 mins for front-front and then + 2 to escape and the same for train 2 (+3 there though)
20:11:01 <Hiat1> oh wait, nevermind
20:11:03 <ais523> train 2 is twice as long
20:11:08 <ais523> so it must take twice as long to escape
20:11:26 <Hiat1> Ithank you so very much ais523
20:11:55 <Hiat1> can I put you in my maths book as "anonymous tutor" ? :P
20:12:39 <oklopol> oh, right, was wondering for a second there, since i missed the train1.length=2*train2.length
20:13:38 <ais523> although of course the chance your maths teacher has heard of me is nowadays non-zero (if still quite small), so you might want to try a bit of name-dropping if you prefer
20:13:51 <oklopol> anyway, v=s/t<=>t=s/v, where v=velocity, s=distance, t=time, then just (t+a)/24=(1/12)h && (t+b)/24=(1/10)h && b=2a
20:15:34 <Hiat1> asi523: you never know ;)
20:15:34 <Hiat1> oklopol: yeah, we use D=S.T but same thing (I prefer Fnet=ma or X=((vf+vi)/2).t :P though that is irrelevant)
20:15:58 <oklopol> (wouldn't call that a math problem)
20:16:32 <oklopol> how would you use F=ma for this?
20:16:36 <Hiat1> (yes indeed, but I like all the physics problems we have, with the lifts (elevators) acceleration and impact timing etc...)
20:16:59 <oklopol> i hate that, never any challenge, just a million places for error with the precision and all :|
20:17:03 <Hiat1> (pendulums are nice too, preservation of energy etc)
20:17:17 <oklopol> basically, i get to suck at something trivial.
20:17:40 <Hiat1> doesn't happen often I believe :)
20:17:59 <Hiat1> you sucking at something trivial
20:18:36 <ais523> on another note, it's impossible to write an Underload interpreter in Befunge-93, right?
20:18:36 <oklopol> i have serious problems with anything related to my senses
20:18:47 <ais523> due to that language not actually being TC unless it uses bignums
20:19:02 <ais523> and moreover the bounded-storage is actually a problem on some practical programs
20:19:05 * Hiat1 infers that it sounds right enough to be true
20:19:09 <oklopol> doesn't befunge have a stackie?
20:19:16 <ais523> that only stores numbers
20:19:51 <oklopol> i'm fairly sure you can make an asm-tc ul interpreter, because befunge is tc with the addition of an infinite grid
20:20:02 <ais523> Funge-98 would be fine
20:20:17 <ais523> the problem is that the finiteness of the grid actually impacts on practical Underload programs in some cases
20:20:29 <ais523> such as the factorial one on the wiki, which has intermediate strings more than 80 characters long
20:20:50 <oklopol> does funge-98 do infinite dimensions?
20:21:13 <ais523> the size of the grid is equal to the size of the integer type IIRC
20:21:19 <oklopol> the other day, i was thinking, might be interesting to play an infinite dimensional tic-tac-toe
20:21:33 * ais523 has played 4D tic-tac-toe
20:21:47 <ais523> I don't think infinite dimensions would make it much more interesting
20:22:00 <oklopol> also 10D in my head... for about two moves ;)
20:22:06 <ais523> oklopol: I ended up adding a rule 'a player doesn't win unless they point out that they won'
20:22:18 <ais523> you could do it in Hilbert space easily enough
20:22:24 <oklopol> it essentially gets to coprimeness of the lengths of your pda's creating a move
20:22:34 <oklopol> there's some interesting math there, i believe.
20:22:51 <oklopol> i mean, the repeating lenghts of the infinite strings produced by them
20:23:24 * ais523 once managed to misspell the same word 6 times in a row
20:23:31 <ais523> I've forgotten which word it was, though
20:23:48 <ais523> and the ironic thing was after 3 times I knew I was doing it and tried to avoid it but kept on typoing anyway
20:24:14 <oklopol> i once typoed "muista", finnish for "remember", about 50 times in a row
20:24:26 <oklopol> well, i can now, it seems.
20:25:00 <oklopol> ofc once you just start flooding it until you get it, you probably write it the same way every time.
20:26:12 <oklopol> what would be a nice language for making repeating infinite strings
20:26:35 <oklopol> also, how interesting is the equivalence problem of two infinite vectors produced that way
20:26:36 <ais523> I designed 1cnis for that purpose
20:26:50 <ais523> although ironically it turned out not to be able to produce the exact string that I wanted to produce...
20:26:58 <Sgeo> Great, custom domains seem to work
20:28:21 <oklopol> 1cnis programs must be finitely long.
20:28:31 * Sgeo should throw in some IllegalPSOXError's
20:28:55 <ais523> the idea is that a finite program outputs infinite output
20:29:04 <ais523> and so 1cnis can be used as an 'encoding' for certain sorts of infinite patterns
20:29:15 <ais523> it couldn't manage 2^2^n in unary, though, AFAICT
20:29:28 <ais523> although if you can figure out how to do that I'd be really pleased to know
20:31:46 -!- puzzlet has quit (Remote closed the connection).
20:32:26 -!- puzzlet has joined.
20:33:44 <Sgeo> Should I write a BF-to-PSOXBF program?
20:34:23 <oklopol> your languages have a certain pro feel to them
20:34:37 <ais523> Sgeo: would it just allow for quoting of NULs, or would it do something else?
20:34:45 <oklopol> (although i just remember two right now)
20:35:07 <Sgeo> Allow for quoting for nuls, and convert the ",", and add PSOX-Init
20:35:25 <ais523> convert , to allow for EOF conventions?
20:35:36 <Sgeo> Making any regular BF program that assumes EOF=0 run under PSOX
20:35:51 <Sgeo> ais523, in PSOX, you need to use a function before getting input
20:36:13 <ais523> to tell PSOX that it needs to pass input to you?
20:36:48 <ais523> hmm... is there some way you could use select() in PSOX to determine whether the program being run was looking for input?
20:36:49 <Sgeo> Naive comma: [-].+..+++++++++.,,,
20:37:01 <Sgeo> ais523, wouldn't work under Windows
20:37:22 <ais523> full list at User:ais523 on the wiki
20:37:29 <ais523> some are better than others
20:39:03 <oklopol> ":β has finite data storage and is reversible, and so must terminate." this sounds like you're also saying reversibility limits tcness
20:39:11 <oklopol> limits computational power
20:39:24 <ais523> the finiteness limits tcness
20:39:32 <ais523> a reversible finite language must terminate
20:39:48 <ais523> reversible languages with infinite storage, otoh, can be TC
20:39:59 <oklopol> yeah, but you're saying A & B => C, where actually A => C
20:40:05 <oklopol> but that was just a side note
20:40:15 <ais523> 'must terminate' is different from 'not TC'
20:46:52 <oklopol> i want a reversible language with assignation
20:46:57 <Hiat1> yes, but occasionaly
20:47:06 <Hiat1> let us say, few and far between
20:48:06 <oklopol> no. i usually fail at everything i do unless it happens completely within my head.
20:48:25 <ais523> oklopol: I just posted an Unassignable program I found lying around on my hard drive to Talk:Unassignable on the wiki
20:48:46 <ais523> I have an Unassignable->C++ compiler here, as well, but it seems to be using outdated C++
20:48:55 <ais523> what's the modern equivalent of #include <iostream.h>?
20:49:02 <Hiat1> yeah, I'm the same, diagrams, pictures, graphs etc only help to confuse me. I must see it all in my head, or nothing at all
20:49:28 <Hiat1> that's right ais523
20:49:35 <Hiat1> at least I use it in Dev-C++
20:50:05 <ais523> most of the header files (the ones which were in C) lost the .h at the end and gained a c at the start
20:50:16 <ais523> as in C's #include <stdio.h> became C++'s #include <cstdio>
20:50:23 <ais523> but iostream was never in C to begin with
20:50:34 <ais523> and #include <iostream> works but fails to include cout, which I use
20:50:46 <oklopol> i shouldn't fail to do that
20:50:55 <Hiat1> what about system.h
20:50:55 <oklopol> you do know it has everything within std::?
20:51:01 <Hiat1> for console input output
20:51:12 <Hiat1> (long time since I messed with this)
20:51:15 <ais523> I forgot the 'using namespace std'
20:52:01 <oklopol> that did require some heavy thinking, but np
20:52:38 <SimonRC> what if a program's first sction under psox is to run a psox command?
20:52:55 <SimonRC> is the command's result guaranteed to appear before any other input?
20:53:09 <oklopol> but you just have a run function in main
20:53:19 <oklopol> what am i misunderstanding?
20:53:37 <Sgeo> Even if the client keeps calling functions, the results are queued up for the client to receive
20:53:41 <ais523> call calls an object's member function 'run' if the object happens to be activated at the time and is a function
20:54:08 <ais523> so it's usual to declare main to be activated
20:54:14 <ais523> otherwise your entire program is a NOP
20:54:36 -!- oerjan has joined.
20:54:53 <ais523> let me correct that: 'call' can only be applied to function objects, which causes their 'run' method to happen if the function object is activated at the time
20:54:57 <Sgeo> http://pastebin.com/m286a23ce running PSOX with SEEINTERNALS = True
20:55:16 <ais523> and no other object can be activated or deactivated because those are function values
20:56:17 -!- jix has quit (Read error: 104 (Connection reset by peer)).
20:57:32 <ais523> the main challenges in :β programming are implementing integers with a non-power-of-2 rollover (see tenloop in the program for an example), and writing loops in such a way as to undo the wreckage they cause
20:59:20 -!- jix has joined.
20:59:40 <Sgeo> Interested in PSOX at all?
20:59:48 <jix> right now... no
21:00:36 <oklopol> http://www.esolangs.org/wiki/MiniMAX i don't get this
21:00:48 <ais523> the idea is to make the shortest possible interp
21:01:02 <ais523> but it's an interesting language considered as an OISC too
21:01:17 <oklopol> sure, but what does it mean to send something to a command
21:01:41 <ais523> you overwrite the relevant word of the command you're sending data to
21:02:32 <ais523> so if a command is abc
21:02:40 <ais523> then running a command sets the previous command's c to this command's a
21:03:02 <ais523> and b is the distance in words from the previous command's end to the next command's start
21:03:39 <oklopol> okay, tell me where i go wrong
21:04:09 <ais523> the second word in each command does control flow
21:04:39 <ais523> by specifying the gap between the previous and next commands
21:04:54 <ais523> so you effectively have two parallel streams of commands (alternate commands), each of which controls the other
21:05:10 <ais523> the BF compilation, for instance, uses every other command for code and every other command for data
21:05:16 <ais523> which are in wildly different areas in memory
21:05:45 <oklopol> or is the rest of the memory zero
21:05:57 <ais523> the memory is bounded originally
21:06:05 <ais523> but only the first two words of a command have to fit in memory
21:06:20 <ais523> if the third one doesn't, memory is expanded by one byte to fit the data overwritten there
21:06:41 <ais523> so although it's bounded-storage at all times, the interp can allocate memory, allowing it to be TC because unlimited storage is possible
21:07:08 <oklopol> and how can the third one get bigger?
21:07:18 <oklopol> i mean, you don't actually change any numbers, do you
21:07:24 <ais523> suppose you have aaabbbcccdddeeefffgg
21:07:57 <ais523> then when g runs, the next command might be an earlier one (say c), and then one byte of memory is added for the third byte of ggg
21:08:08 <ais523> now suppose the next command that runs is the /second/ word of ggg...
21:08:16 <ais523> (sorry, I meant 'word' not 'byte' two comments above)
21:08:32 <ais523> so you actually have abcdefghij
21:08:40 <ais523> and bcd is a command, as is cde, as is def
21:08:52 <ais523> the order they actually run in is controlled by the second words of the commands
21:09:27 <Sgeo> Should I have SEEINTERNAL show what was received from the client?
21:09:53 <ais523> it's kind of confusing before you get used to it; I could write better docs which make it more obvious what's going on
21:10:05 <oklopol> you could have an example.
21:10:08 <ais523> maybe an example would help, but as I hand-wrote the interp in machine code I've never actually dared to run it
21:10:44 * ais523 writes an (untested) example on the wiki
21:11:07 <oklopol> a few steps of execution, and it should be clear
21:12:47 * oklopol goes to eat some (undigested) food ->
21:13:53 <Sgeo> http://pastebin.com/m648ab65b
21:14:01 -!- faxathisia has quit (Read error: 104 (Connection reset by peer)).
21:14:11 -!- Hiat1 has left (?).
21:15:12 -!- olsner has joined.
21:15:30 * Sgeo wonders if pikhq is awake?
21:15:53 <olsner> I have no idea whether or not pikhq is awake though :P
21:20:04 <Sgeo> olsner, have you heard of PSOX?
21:20:12 * Sgeo attempts to agressively promote PSOX again
21:20:40 <oerjan> ctcp TIME claims pikhq is at 14:20
21:21:03 <oklopol> stalking innocent people as usual
21:22:43 <oklopol> (besides possibly electhroqting people)
21:22:43 <oerjan> now that would be telling. do your own stalking.
21:22:46 <olsner> I have heard of PSOX, but don't know what it is... otoh, since I heard if it in here I'm not entirely sure I want to find out :-)
21:26:21 <Sgeo> Giving function: '\x01\x01\n\x00\x01\x01\n\x00\x01\x01\n\x00\x01\x01\n\x00\x01\x01\n\x00\x01\x01\n\x00\x01\x01\x05\x00\x00'
21:26:42 <Sgeo> (That's (10,10,10,10,10,10,5) as a VARG(LNUM)
21:26:55 <Sgeo> Or at least should be
21:27:45 <Sgeo> Now, to figure out why it isn't working..
21:30:04 <ais523> oklopol: MiniMAX has an example now
21:32:50 <ais523> note that any spec vs. reference implementation problems will be resolved in favour of the implementation, unless doing the opposite would make the implementation shorter
21:35:25 -!- slereah__ has quit (Read error: 104 (Connection reset by peer)).
21:36:01 -!- slereah__ has joined.
21:37:00 <ais523> do you have a better idea of how it works now?
21:37:45 <oklopol> i think i have a pretty complete idea
21:38:02 <ais523> well, there isn't very much to the language
21:38:30 <ais523> with an 8-byte interp, how could there be?
21:39:01 <ais523> 14 bytes allowing for setting up the registers at the start, and an exit method
21:39:11 <ais523> 32 if you want practical I/O
21:39:21 <ais523> that uses a lookup table to check the input character
21:39:53 <ais523> (less if you just insert the input character directly into the code - I think from memory it was 23 - but that is really difficult to program with for obvious reasons)
21:40:00 <oklopol> i think you have a copypaste error there
21:40:13 <oklopol> ======= 4th command: 5th command is 2 words left of the 3rd's end;
21:40:14 <oklopol> the 2 is copied from this command's first word to the 3rd command's third word
21:40:16 <pikhq> Sgeo: Awake, but just got home from school.
21:41:31 <ais523> twasn't actually copypaste
21:41:44 <ais523> it was me constantly changing the original program to try to keep it legal and in bounds, at least for a while
21:42:10 <ais523> I started off with a list of small integers I came up with off the top of my head
21:42:25 <ais523> and then kept changing numbers until the program was legal
21:43:50 <Sgeo> I'm going to update SVN soonish
21:44:01 <Sgeo> With custom domains, bugfixes, and the -i option
21:44:18 -!- ehird has joined.
21:46:32 <oklopol> i'm going to sleep now, you'll have to explain that proof to me later ;)
21:47:36 <ais523> ehird: I wrote an Underload interpreter in sed, for anagolf
21:47:53 <ais523> unfortunately I don't have the source on me right now, but you'll be able to see it postmortem in a couple of days
21:48:06 <ais523> it's the same length as the genuine non-binary Postscript entry, and shorter than my Perl entry
21:48:24 <ais523> (mostly because parens aren't metacharacters in sed but are in Perl, so sed saves on backslashes)
21:49:54 <Sgeo> pikhq, are you going to try PSOX?
21:50:03 <Sgeo> If so, please pull the latest version from SVN
21:50:44 <oklopol> god 2L programs are beautiful
21:51:31 -!- cherez has quit (Read error: 110 (Connection timed out)).
21:51:33 <pikhq> Not ATM. Will later tonight.
22:00:57 <ehird> give me about 20 minutes after i come online, then i appear
22:02:40 <Sgeo> ehird, I know you don't care, but PSOX now has custom domains
22:02:43 <Sgeo> and VARG is working
22:02:52 <Sgeo> and a bit more comprehensive SEEINTERNAL
22:03:22 <Sgeo> The -i command line option lets you see what the server sees or sends, and things that happen in the server
22:04:01 <Sgeo> http://pastebin.com/m349aa6a9
22:05:08 -!- sarehu has joined.
22:16:13 -!- slereah__ has quit (Read error: 104 (Connection reset by peer)).
22:16:14 -!- ais523 has quit ("bye").
22:25:22 <Sgeo> http://farm2.static.flickr.com/1232/1444236970_38b4d105f2.jpg
22:25:26 <Sgeo> http://www.darkroastedblend.com/2007/09/strange-signs-part-7.html
22:44:20 -!- jix has quit ("This computer has gone to sleep").
22:45:23 -!- sarehu has quit (Read error: 110 (Connection timed out)).
22:48:25 -!- ehird has quit (calvino.freenode.net irc.freenode.net).
22:48:25 -!- EgoBot has quit (calvino.freenode.net irc.freenode.net).
22:50:35 -!- sarehu has joined.
22:50:57 -!- ehird has joined.
22:50:57 -!- EgoBot has joined.
22:54:48 -!- ehird_ has joined.
22:54:55 <ehird_> it was just egobot and me <3
22:54:58 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)).
22:54:58 -!- puzzlet has joined.
22:55:07 <ehird_> i tried to crash it but oh no, it didn't want me getting ops
22:55:35 -!- sekhmet has quit (calvino.freenode.net irc.freenode.net).
22:55:45 -!- ehird_ has set topic: THIS IS NOT THE END OF THE INTERNET..
22:55:48 -!- sekhmet has joined.
22:55:53 -!- EgoBot has quit (calvino.freenode.net irc.freenode.net).
22:55:53 -!- ehird has quit (calvino.freenode.net irc.freenode.net).
22:56:10 -!- EgoBot has joined.
22:59:05 <ehird_> no trivial quines for poor oerjan
22:59:16 <ehird_> actually, stuff would be a lot easier if bots listened to themselves
22:59:40 <oerjan> don't mind me i was just checking if it was alive
23:00:48 <ehird_> GOD paul graham is annoying
23:00:54 <ehird_> Somebody: 'Reasoned argument blah blah'
23:01:11 <ehird_> pg: 'I WAS TRYING TO MAKE CODE SHORTER CAN YOU GIVE ME AN EXAMPLE WHERE CODE WOULD END UP BEING SHORTER WITH THOSE'
23:01:18 <ehird_> Somebody: 'Blah blah logic reason science blah blah'
23:01:19 <ehird_> pg: 'I WAS TRYING TO MAKE CODE SHORTER CAN YOU GIVE ME AN EXAMPLE WHERE CODE WOULD END UP BEING SHORTER WITH THOSE'
23:02:37 <Sgeo> pikhq, going to examine PSOX?
23:02:47 * Sgeo feels like forcing everyone to play with PSOX
23:03:15 <ehird_> Especially pikhq, and iirc SimonRC.
23:03:38 <Sgeo> pikhq and SimonRC have expressed interest in PSOX
23:05:12 <ehird_> is that a reason to bug them every bloody day?
23:05:18 <ehird_> when they play with it, they'll tell you.
23:11:23 -!- cherez has joined.
23:13:46 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)).
23:14:42 -!- puzzlet has joined.
23:32:01 -!- sarehu` has joined.
23:32:15 <ehird_> Who is divided by zero?
23:33:20 <olsner> ehird_: the nominator...
23:35:00 <Sgeo> What are we talking about?
23:35:11 -!- sarehu` has quit (Remote closed the connection).
23:35:14 -!- sarehu` has joined.
23:36:43 <Sgeo> What are we talking about then?
23:37:34 -!- timotiis has quit ("leaving").
23:39:45 -!- sarehu has quit (Connection timed out).
23:57:00 <ehird_> describe a minimal computer architechture using only words of four syllables or less.
23:57:18 <ehird_> also, every opcode description must be 4 or less words
00:12:19 -!- oerjan has quit ("Good night").
00:13:43 -!- Tritonio__ has joined.
00:15:16 <pikhq> Esolang idea: language with fucked up order of operations.
00:15:28 <pikhq> 2*(3+4) == 2*3+4, anyone?
00:15:57 -!- Tritonio_ has quit (Read error: 110 (Connection timed out)).
00:16:08 * Sgeo proceeds to have nightmares of parentheses doing random things
00:16:53 <ehird_> 2*(3+4) is right-associative
00:16:57 <ehird_> which is not as bad as it seems
00:17:12 <ehird_> it tends to be more common than left-, and sometimes you can refactor to remove parens with it
00:17:26 <pikhq> No, no, no. + has higher precedence than *. :p
00:17:42 <pikhq> 2*(3+4) = (3+4)*2 = 3+4*2 = 2*3+4.
00:18:36 <ehird_> you know that's actually useful
00:18:45 <ehird_> i would say 2*(3+4) is more common than (2*3)+4
00:19:07 <pikhq> But it's not standard mathematics.
00:28:29 -!- sarehu` has quit (Read error: 110 (Connection timed out)).
00:37:12 <ehird_> has anyone here used Urban M?ller's original Amiga distribution on real-life Amiga hardware?
00:37:20 <ehird_> I should be acquiring an Amiga sometime..
00:37:30 <ehird_> I wonder if I can stick an ethernet port into it. :)
00:41:44 -!- sarehu has joined.
00:43:03 <Sgeo> ehird_, write a PSOX custom domain!
00:43:26 <pikhq> Sgeo, write the infrastructure for it. :p
00:43:37 <pikhq> Actually: could you link me to the PSOX SVN?
00:43:57 <Sgeo> svn co http://svn2.assembla.com/svn/psox/trunk
00:44:54 <ehird_> Sgeo: does python run on an amiga? :)
00:46:19 <pikhq> Your simple cat example doesn't check for EOF.
00:46:27 <pikhq> ehird_: Linux will run on one, IIRC.
00:46:43 <ehird_> But I am talking about AmigaOS, that bastion of awesomeity :)
00:47:30 <ehird_> Does anyone know how to unpack LHA files on a UNIX?
00:51:58 <Sgeo> pikhq, does it need to?
00:52:25 <pikhq> Sgeo: Yeah, I'll be doing my C PSOX library later tonight. ;)
00:55:35 <Sgeo> pikhq, should I write a version that checks for EOF?
00:56:27 <pikhq> GregorR: If/when you decide to do more on C2BF, you should do one big thing: use PSOX as part of the stdlib.
00:56:56 <Sgeo> pikhq, should it be written in BF or Python?
00:57:21 <ehird_> pikhq: using PSOX as part of the stdlib would be a disaster
00:57:28 <ehird_> not only for the output size and elegance..
00:57:42 <pikhq> Have you seen the C2BF output size?
00:57:50 <pikhq> It's not like that's a major issue.
01:01:00 <Sgeo> pikhq, want it to be char-by-char or line-by-line?
01:02:04 <pikhq> And after this, I will be able to create the Brainfuck Audio Suite. >:D.
01:02:59 <pikhq> Yeah. Calamari, IIRC, wrote a script that would take raw audio and output Brainfuck code outputting that. . .
01:03:16 <pikhq> To use: egobfi8 output_brainfuck.bf > /dev/dsp
01:08:08 <Sgeo> Ok, it's breaking for some unknown reason
01:12:41 <Sgeo> pikhq, committed
01:12:58 <Sgeo> That only demonstrates EOF for a fixed number of characters though
01:13:44 <Sgeo> http://trac2.assembla.com/psox/browser/trunk/impl/cat_with_eof_check.py
01:14:05 <pikhq> Somehow, BF2PSOX.py seems fairly. . . Useless.
01:16:36 <ehird_> pikhq: Nonsense! In the future, all esolangs will support nothing but PSOX! It is far superior for every single program!
01:18:33 * pikhq should start reorganizing his home dir
01:20:23 <Sgeo> Is it a bad thing needing to refer to the specs for knowing whether EOF makes the indicator 0 or 1?
01:21:35 <Sgeo> Well, the way it is currently, you can end a loop upon an EOF
01:24:49 -!- sarehu has quit (Connection timed out).
01:26:52 <Sgeo> eating and stuff
01:44:47 -!- faxathisia has joined.
01:57:01 <Sgeo> pikhq, any further thoughts?
01:59:55 -!- olsner has quit ("*poof*").
02:00:01 <pikhq> I think it's time to sharpen the guillotine, tie the knots for the gallows, and get ready for revolution.
02:00:14 <pikhq> http://ap.google.com/article/ALeqM5gM4mwPQcU0j446qIew8P7ZmifwNgD8UP4GG03
02:00:58 <Sgeo> I meant with PSOX ofc
02:05:40 <ehird_> don't worry, there's no confusion.. Sgeo would never talk about anything that isn't psox
02:06:25 <Sgeo> I do on different channels
02:07:13 <ehird_> myths and LIES and STATISTICS
02:19:46 -!- sarehu has joined.
02:29:30 -!- ehird_ has quit ("This computer has gone to sleep").
02:32:51 -!- ehird_ has joined.
02:33:08 -!- ehird_ has quit (Client Quit).
02:47:30 -!- pikhq has quit (calvino.freenode.net irc.freenode.net).
02:47:31 -!- RodgerTheGreat has quit (calvino.freenode.net irc.freenode.net).
02:47:32 -!- lifthrasiir has quit (calvino.freenode.net irc.freenode.net).
02:47:32 -!- Deewiant has quit (calvino.freenode.net irc.freenode.net).
02:47:33 -!- tejeez has quit (calvino.freenode.net irc.freenode.net).
02:47:33 -!- sebbu has quit (calvino.freenode.net irc.freenode.net).
02:47:34 -!- EgoBot has quit (calvino.freenode.net irc.freenode.net).
02:47:35 -!- sekhmet has quit (calvino.freenode.net irc.freenode.net).
02:47:37 -!- sarehu has quit (calvino.freenode.net irc.freenode.net).
02:47:40 -!- Tritonio__ has quit (calvino.freenode.net irc.freenode.net).
02:47:40 -!- faxathisia has quit (calvino.freenode.net irc.freenode.net).
02:47:43 -!- bsmntbombdood has quit (calvino.freenode.net irc.freenode.net).
02:47:45 -!- Sgeo has quit (calvino.freenode.net irc.freenode.net).
02:47:46 -!- GregorR has quit (calvino.freenode.net irc.freenode.net).
02:47:46 -!- AnMaster has quit (calvino.freenode.net irc.freenode.net).
02:47:46 -!- oklopol has quit (calvino.freenode.net irc.freenode.net).
02:47:46 -!- cmeme has quit (calvino.freenode.net irc.freenode.net).
02:47:48 -!- lament has quit (calvino.freenode.net irc.freenode.net).
02:47:48 -!- Overand has quit (calvino.freenode.net irc.freenode.net).
02:47:49 -!- johnl has quit (calvino.freenode.net irc.freenode.net).
02:47:51 -!- puzzlet has quit (calvino.freenode.net irc.freenode.net).
02:47:51 -!- cherez has quit (calvino.freenode.net irc.freenode.net).
02:47:51 -!- SimonRC has quit (calvino.freenode.net irc.freenode.net).
02:47:52 -!- mtve has quit (calvino.freenode.net irc.freenode.net).
02:49:47 -!- RodgerTheGreat has joined.
02:49:47 -!- lifthrasiir has joined.
02:49:47 -!- sarehu has joined.
02:49:47 -!- faxathisia has joined.
02:49:47 -!- Tritonio__ has joined.
02:49:47 -!- puzzlet has joined.
02:49:47 -!- cherez has joined.
02:49:47 -!- EgoBot has joined.
02:49:47 -!- sekhmet has joined.
02:49:47 -!- Sgeo has joined.
02:49:47 -!- bsmntbombdood has joined.
02:49:47 -!- johnl has joined.
02:49:47 -!- SimonRC has joined.
02:49:47 -!- GregorR has joined.
02:49:47 -!- AnMaster has joined.
02:49:47 -!- lament has joined.
02:49:47 -!- oklopol has joined.
02:49:47 -!- cmeme has joined.
02:49:47 -!- Overand has joined.
02:49:47 -!- mtve has joined.
02:50:49 -!- sebbu has joined.
02:51:13 -!- Deewiant has joined.
02:51:13 -!- tejeez has joined.
03:02:23 -!- Tritonio__ has quit (Read error: 113 (No route to host)).
03:07:14 -!- sarehu has quit (Read error: 110 (Connection timed out)).
03:24:04 <Sgeo> GregorR, other random people, going to check out PSOX at any point?
03:35:08 -!- bsmntbombdood has quit (Read error: 110 (Connection timed out)).
03:35:18 -!- bsmntbombdood_ has joined.
03:35:38 <Sgeo> re bsmntbombdood_
03:51:04 <Sgeo> Anyone interested in PSOX? Anyone?
03:51:06 <Sgeo> RodgerTheGreat?
04:14:13 <Sgeo> bsmntbombdood_, there's a reason I haven't asked you -- you've expressed a dislike of PSOX
04:14:41 -!- AnMaster_ has joined.
04:30:11 -!- AnMaster has quit (Connection timed out).
04:41:44 -!- tejeez has quit (Remote closed the connection).
04:58:53 -!- pikhq has joined.
04:59:16 <Sgeo> Any more testing/experimenting with PSOX?
05:05:49 <oklopol> "<ehird_> i would say 2*(3+4) is more common than (2*3)+4" <<< i definitely disagree.
05:07:30 <oklopol> also, there's nothing interesting in changing the precedence of operators randomly, you can just change that in the source in many languages
05:07:47 <oklopol> making parens evaluate inside out might have something interesting.
05:11:14 <oklopol> i like the idea of a syntax where actually only the set of tokens used in a program matter, so that you can actually obfuscate pretty badly mechanically
05:11:23 <oklopol> wonder how sane you could make that look
05:12:51 <RodgerTheGreat> Sgeo: honestly, I find PSOX interesting, but I haven't had much time to spend on esocoding- I have to finish my schoolwork first, dude
05:15:59 <pikhq> Sgeo: Expect more interest when we have more time.
05:19:17 <oklopol> only some 47 years to my retirement.
05:19:46 <oklopol> i promise to take a deep look then
05:20:53 <oklopol> (of course, the esolang wiki will be five-dimensional then, and my dated brain cannot comprehend it)
05:21:42 <oklopol> in the year 2030, they add another dimension to the reality, to make it more interesting
05:22:21 <oklopol> you keeps the pole in your pants!
05:56:28 -!- Sgeo has quit (Remote closed the connection).
07:09:07 -!- oklopol has quit (Read error: 101 (Network is unreachable)).
07:58:45 -!- olsner has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:47:15 -!- olsner has quit ("Leaving").
08:49:21 -!- oklopol has joined.
09:16:32 -!- jix has joined.
11:13:45 -!- AnMaster_ has changed nick to AnMaster.
11:57:47 <GregorR> We have three cats in this house: Tia, Ish and Helsinki. At 3AM, a plant is knocked over causing a very loud chain reaction.
11:58:05 <GregorR> Tia is sleeping on my bed at the time, and Helsinki isn't allowed in that part of the house, so I assume it's Ish.
11:58:19 <GregorR> After searching for Ish for a half an hour, I hear a meowing at the door, and there's Ish, outside.
11:58:32 <GregorR> So, I assume it's Helsinki and she's gotten loose.
11:58:48 <GregorR> After searching for her for a while, I happen to look outside and she's on the porch.
12:05:26 -!- oerjan has joined.
12:45:22 -!- faxathisia has quit ("If there are any aliens, time travellers or espers here, come join me!").
13:09:29 -!- slereah__ has joined.
13:27:36 <SimonRC> it seems to be the boring hour
13:31:21 -!- timotiis has joined.
13:39:38 -!- pikhq has quit (Read error: 110 (Connection timed out)).
14:07:00 -!- RedDak has joined.
15:53:04 -!- Dagide has joined.
16:00:09 -!- oerjan has quit ("dinner").
16:05:42 -!- Hiato has joined.
16:09:52 -!- RedDak has quit (Read error: 110 (Connection timed out)).
16:14:51 -!- Dagide has quit (Remote closed the connection).
16:26:42 -!- ehird` has joined.
16:30:33 -!- ehird` has quit (Read error: 113 (No route to host)).
16:46:42 -!- Hiat1 has joined.
16:52:21 -!- Hiat1 has left (?).
16:55:04 -!- ehird` has joined.
17:03:39 -!- Hiato has quit (Read error: 110 (Connection timed out)).
17:15:38 -!- Corun has joined.
17:15:44 -!- olsner has joined.
17:22:23 <RodgerTheGreat> GregorR: your cats have interesting names. Mine are named Chai and Matcha.
17:25:10 <SimonRC> :> map(name, SimonRC -> pets(PETTYPE_CAT))
17:25:58 <SimonRC> pseudo programming language
17:26:54 <slereah__> It's no wonder the cat program is the most popular.
17:26:58 <RodgerTheGreat> well, currently my parents possess cats and I do not as I live in a dorm room. However, I love "my" cats and visit them as well as my parents often
17:27:34 <SimonRC> cats are not as inclined to loyalty as dogs are
17:27:38 <RodgerTheGreat> SimonRC: I'm allergic to cats, too! However, cats are worth taking antihistamines.
17:27:50 <slereah__> You don't need loyalty from a cat.
17:28:05 <SimonRC> slereah__: I didn't say I did
17:29:23 <slereah__> Man, with Chanology going on, I didn't do much.
17:29:44 <SimonRC> ah, you must be one of Anonymous
17:31:09 <SimonRC> Anonymous are not being particularly nasty ATM
17:31:48 <SimonRC> AFAICT the recent protests are peaceful, if disturbing
17:33:32 -!- slereah_ has joined.
17:33:32 -!- slereah__ has quit (Read error: 104 (Connection reset by peer)).
17:36:05 <ehird`> ?- cats(ehird, X), wanted_value(X).
17:36:19 <ehird`> X = [_G101,_G102,_G103...] ;
17:37:07 <ehird`> also, cats are pretty much in it for the opposable thumbs, i'd say
17:37:23 <ehird`> (?- cats(ehird, X), old_value(X). X = [_G101,_G102])
17:37:42 <olsner> cats can have my thumbs when I'm dead
17:39:03 <slereah_> Some cats have an opposable thumb, of sort.
17:39:03 <slereah_> Polydactyl cats, with an extra finger.
17:40:33 <slereah_> Soon, humanity will be unecessary for cats.
17:40:45 <slereah_> That's when the revolution will strile
17:41:02 <ehird`> they can open doors pretty well, yeah
17:41:09 <ehird`> but all said and done they couldn't do well without a human
17:41:13 <ehird`> it's easier for them to be lazy
17:41:33 <ehird`> if they end up evolving humanoid features so that they can replace us, it's likely they'll promptly undomesticate themselves
17:41:49 <RodgerTheGreat> cats need humans to change litter boxes. end of discussion.
17:41:57 <ehird`> obviously they think they'd do better than us :p
17:47:09 <ehird`> we need to start up an Esoteric OS project again, sometime
17:47:29 <ehird`> all my input is that it should have, at its core, an esoteric virtual machine, with everything built up on top of that
17:50:46 <slereah_> The rest doesn't seem too trivial
17:51:25 <ehird`> too trivial of an IDEA
17:52:03 <slereah_> You want to make something new up?
17:57:48 <ehird`> But it should include some crazy kind of memory management
17:58:16 -!- Corun has quit ("This computer has gone to sleep").
18:00:48 <ehird`> http://reddit.com/r/programming/info/68oka/comments/c036iud <-- this is cool
18:02:36 <ehird`> that gives me an idea!
18:02:47 <ehird`> the esoteric vm's `base` programming language should be stack-based,
18:04:37 <ehird`> : fact dup if 0? [1] [* fact (dup-1)] ;
18:05:43 <slereah_> Well, I'm probably not going to contribute much.
18:06:00 <ehird`> : fib dup if 0? [0] [dup if 1? [1] [(fib (dup-1))+(fib (-2))]] ;
18:12:09 <slereah_> I'm not too sure what the dup is for
18:14:04 <SimonRC> it seems to seperate the condition of the if from all that comes before.
18:15:03 <SimonRC> why not : fact dup 0? if id [1] [* fact (dup-1)] ;
18:15:12 <SimonRC> where id is the identity function
18:15:38 <ehird`> because, SimonRC, it's prefix/infix.
18:15:51 <ehird`> also, the dup is because the fib will eat it up
18:15:54 <ehird`> leaving you none to do the -2 with
18:16:06 <ehird`> : fib dup if 0? [0] [dup if 1? [1] [(fib (dup-1))+(fib (-2))]] ;
18:16:29 <ehird`> : fib dup 0? [0] [dup 1? [1] [dup 1 - fib 2 - fib +] if] if ;
18:16:32 <ehird`> that's how it parses up
18:28:42 * ehird` works out type of lambda-calculus Y starting from `fix`
18:29:03 <ehird`> So, we need to assign a value to the whole type of Y..
18:30:40 <ehird`> Y :: a=((a -> b) -> b)
18:42:28 -!- oerjan has joined.
19:11:45 -!- ehird`_ has joined.
19:12:54 -!- ehird` has quit (Read error: 113 (No route to host)).
19:21:22 -!- oerjan has quit ("Must - kill - incessantly - coughing - housemate (who refuses to accept cough drops)").
19:29:26 -!- ehird` has joined.
19:37:27 -!- ehird`_ has quit (Read error: 113 (No route to host)).
20:00:29 -!- faxathisia has joined.
20:40:07 -!- es0n00b has joined.
20:43:22 <es0n00b> knock knock? anybody home?
20:50:04 <es0n00b> im new to esoteric (can you tell)
20:51:29 <es0n00b> I've come up with an esolang idea that could possibly work in-silico
20:52:23 <es0n00b> dont know if its crazy enough tho
20:54:40 <es0n00b> like in-vivo=a living being. In-silico=on a chip
20:56:13 <es0n00b> it's based on the MISC implementation of OISC, defiinitely turing-complete, but more practical. Possibly faster (unproven)
20:56:55 <es0n00b> thinking of calling it NMISC (New MISC or NightMare-In-Silly-Cone??)
20:57:43 <es0n00b> really simple. OISC is based on subtract/conditional branch.
20:58:17 <es0n00b> MISC really makes OISC a bit more practical
20:58:17 <slereah_> And isn't very pleasant to implement on a Turing machine!
20:58:51 <slereah_> Anything where you have to rewrite the tape is unpleasant on a Turing machine
21:00:15 <es0n00b> the self-modifiny code bit is annoying, but it's possible to translate from assembly like code to OISC
21:01:16 <es0n00b> anyway, back to the idea. OISC=subtract/conditional-branch. NMISC=multiply/add/conditional-branch
21:01:48 <es0n00b> biggest problem i think of in OISC isnt implementation, its doing simple things like multiplication
21:02:08 <slereah_> What will be the branching condition on NMISC?
21:02:18 -!- olsner has quit ("Leaving").
21:02:25 <es0n00b> as soon as multiply is easy, you have access to Taylor polynomials (ie a lot of other functions)
21:02:46 <es0n00b> i am trying to think of an easy way to describe NMISC
21:03:54 <es0n00b> ok. i got the idea by figuring out how to make an OISC chip using transistor-logic (ie in-silico)
21:04:33 <es0n00b> turns out, subtraction in-silico is addition of one binary number, the inverse of another binary number, and 1
21:05:01 <es0n00b> ie 3-1 becomes 0011 + 1110 + 0001
21:05:37 <es0n00b> which gives 1 0010. 0010=2. the extra 1 is the carry flag
21:06:16 <es0n00b> carry flag=1, result is postive. carry flag=0, result is negative
21:06:31 <es0n00b> OISC becomes easy to implement from there.
21:07:02 <es0n00b> the problem with multiplication is, multiply 64-bit*64-bit gives 128-bit
21:07:27 <es0n00b> thats where the MISC idea comes in
21:09:02 <slereah_> Well, I only know two things of in-silico.
21:09:25 <ehird`> es0n00b: how about forgetting about silico for now
21:09:30 <ehird`> and just writing out the base operation
21:09:36 <slereah_> A book on computers from 1976, and some bitwise research on wikipedia (I wanted to make a computer with finger binary)
21:09:40 <ehird`> opand opand ... -- c code
21:10:35 <es0n00b> the carry-flag operation is SO SO important, as it is how the conditional branch works, and makes it trivial to translate MISC into NMISC
21:11:13 <es0n00b> OK: OISC= IF (A==A-B)<=0 jump C
21:12:23 <es0n00b> MISC= IF(A==B-C)<=0 jump D. D has 2 bits not used for jumping, but are used as data control bits (important). all addresses are relative
21:12:44 <es0n00b> NMISC (bit more complicated)
21:13:20 <SimonRC> there was one that just did: A -= accumulator
21:13:56 <es0n00b> I/O has to be memory mapped.
21:15:55 <es0n00b> D is still the jump address, with data-control properties included
21:16:35 <es0n00b> the jump address is D, with the lowest 2 bits being ignored (as only every 4th address is a new instruction)
21:16:58 <es0n00b> lowest D-bit controls data. second lowest d-bit controls F
21:17:28 <es0n00b> F either gets the low half or the high half of (A*B)
21:17:55 <es0n00b> confusing so far (maybe) -but when you put it all together it seems to work
21:19:15 <es0n00b> translating MISC to NMISC, F only need to grab low half of (A*B). B is always set to -1, so A=C-A. trivial
21:20:01 <es0n00b> fast-multiply-add takes 3 instruction.
21:20:50 <es0n00b> 1) calculate lowest 64 bits. jump to 3) if no carry flag
21:21:05 <es0n00b> 2) add 1 to highest 64 bits
21:21:18 <es0n00b> 3) calculate highest 64 bits
21:22:23 <es0n00b> Taylor polynomials are calcualted using(((Ax+B)x+C)x+D) etc
21:22:41 -!- PupUser936e92 has joined.
21:23:07 <es0n00b> can someone do a sanity check for me. does this all make sense, or has someone been putting lsd in my coffee again
21:24:04 <es0n00b> last time i did programming it was on a commodore-64
21:24:40 <slereah_> Well, program on a C-64 emulator!
21:25:03 <slereah_> Or profit from what the future has to offer.
21:25:11 <slereah_> Because we're in the future people.
21:25:14 <es0n00b> i am already sure it must work. been messing with a lot of pen-and-paper
21:25:38 <slereah_> Since this Christmas, I have a device that allows me to see videos, in my pocket.
21:25:47 <slereah_> For me, that's the fucking future.
21:26:25 <es0n00b> definitely turing complete, as it emulated OISC trivially. Just wondering if it would be faster than OISC in-silico for real-world applications (not a trivial question)
21:27:18 <es0n00b> ok - going to write a C-64 emulator emulation of NMISC
21:27:26 -!- PupUser936e92 has quit ("Download Gaim: http://gaim.sourceforge.net/").
21:28:16 <slereah_> Beware. Piling up interpreters isn't good for speed!
21:29:13 <es0n00b> wrote a C-64 emulator emulation of OSIC in machine-language once. clicked along slowly but smoothly
21:29:48 <es0n00b> NMISC will be in basic. multiplication in C64-ML sux
21:30:08 <es0n00b> should be as slow as a snail travelling on a turtle
21:30:27 <slereah_> Actually, the snail would be travelling faster.
21:30:58 <slereah_> (I might not know electronics, but I can galilean-transform the shit out of snails!)
21:32:05 <slereah_> Studying physics isn't very computer-oriented here.
21:33:22 <slereah_> It's labeled as "Physics-Physics". Or "actually "Physique-physique".
21:33:55 <slereah_> It's the fundamental kind. Nuclear, quantum, relativity, continuum mechanics, electromagnetism
21:34:18 <es0n00b> oh. i got as far as some very elemenatry quantum and relativity, but then my brain started to hurt
21:35:08 <slereah_> We mostly use programming for number-crunching here.
21:35:24 <slereah_> "Find the centroid of that radiation spectrum!"
21:35:57 <slereah_> So it's hard to learn sum real CS.
21:36:10 <es0n00b> saw an interesting show about some kind of theory combining quantum and relativity. Needed at least 11 dimensions or something, with dimensions 5 and up being very compact
21:36:46 <es0n00b> sort of got the idea of how a dimension could be compact. Thank god they didnt go into the maths of it all though.
21:36:47 <slereah_> String theory. Although right now, all eyes are turned to that one guy who cooked up a theory at home!
21:37:18 <slereah_> There's a claim for a major breakthrough every few months, and usually, you never hear of it again.
21:37:31 <slereah_> Would be nice if it was true for once.
21:37:37 <es0n00b> the where talking about branes?
21:38:41 <slereah_> Well, a few years ago, around high school, I started reading real science.
21:38:44 <es0n00b> sounds like a bunch of maths equations with no real-world proof
21:39:02 <slereah_> And noticed that popular science didn't help much understanding it.
21:39:23 <slereah_> So I haven't read a lot about string theory these last few years, since I don't want the popular stuff and can't read the real.
21:39:47 <slereah_> String theory is pretty much theoretical, yes.
21:40:05 <slereah_> Although there's some good hope for some clues this year
21:40:17 <es0n00b> i guess that how relativity started though
21:40:54 <slereah_> Relativity actually started on proof.
21:41:02 <slereah_> Well, unless you count Maxwell's work.
21:41:17 -!- pikhq has joined.
21:41:22 <slereah_> It came from the Michelson-Morley experiment.
21:41:42 <ehird`> es0n00b: i'll write an interpreter
21:41:48 <es0n00b> (fuzzy on details) though relativity was a pipe-dream explaining xperiment
21:41:52 <ehird`> rafb.net/paste <-- paste a compact description of the semantics
21:42:04 <es0n00b> ehird - should be an easy interpreter
21:42:31 <ehird`> it'll interpret it as one-line-per-instruction, whitespace-seperated-hex-operands though...
21:42:42 <ehird`> well, i could do both i guess
21:44:56 <es0n00b> started writing a version of NMISC, but was using A=A+B*C. A bit of experimenting showed A=A*B+C might be more useful (see tha Taylor polynomial expansion)
21:45:18 <es0n00b> A=A+B*C comes out in short hand as follows
21:45:21 <ehird`> es0n00b: welp, ok. I don't need a huge paper, just a few lines describing it :P
21:47:02 <es0n00b> PC+=IF((M(M(PC)+PC)==M(M(PC)+PC)+(IF(m(pc+3)AND1),m(PC+1),m(m(PC+1)+PC))*m(m(pc+2)+PC)DIV(IF((m(PC+3)AND2),2^N,1))MOD(2^N))<2^N,4+(m(pc+3)ANDNOT3),4)
21:47:13 <ehird`> that looks like excel code..
21:47:25 <ehird`> would you happen to be a mathematician? :)
21:47:34 <es0n00b> yeah. using the excel IF(condition,return-true,return-false)
21:48:10 <ehird`> is all this a ploy to sell me something relating to esoteric programming languages?
21:48:26 <es0n00b> just happen to have love math, electronics and computers since i can remember.
21:48:49 <slereah_> But do you have some awesome BF computer to sell us?
21:48:51 <es0n00b> seriously, lifes curveballs and ended up with me telemarketing
21:49:21 <es0n00b> I would LOVE to get something onto silicon.
21:49:24 <ehird`> rafb.net/paste <-- if you could write it out in something slightly less compact and unreadable here i'll have an implementation in -3 seconds (yes, i really am that quick.. this is the interpreter: <FUTURE VALUE>, now show me in 3 seconds)
21:49:55 <es0n00b> ok. hang on hlaf a tick. got something on paper a bit readable. brb
21:50:36 <es0n00b> bugger. threw the reable one out. liked the formula version as it makes more sense to me
21:50:50 <es0n00b> ok. trying to translate back into simple-mode
21:51:23 <es0n00b> first note. all addresses are relative to the current program counter (PC)
21:51:42 <es0n00b> basic idea is A=A*B+C (simple enough)
21:52:02 <ehird`> es0n00b: so, expanding with the PC:
21:52:11 <ehird`> (PC+A)=(PC+A)*(PC+B)+(PC+C)
21:52:41 <ehird`> es0n00b: also -- just confirming, how many operands does it have? 3?
21:52:56 <es0n00b> kind of. the MOD and DIV in the formula version are to do with F() - ie to get the low or high end of A*B
21:53:20 <es0n00b> A=A*B+C. Jump D on right conditions
21:55:02 <es0n00b> if (Dand2) then Y=X DIV 2^64 else Y=X MOD 2^64 (assuming 64-bit)
21:55:44 <ehird`> well that's a pretty big assumption :)
21:55:57 <es0n00b> yeah. substitute 2^16 if you want a 16 bit computer, etc
21:56:38 <ehird`> if B=the bits, and D=the size of ints/pointers, then does B have to =D?
21:56:47 <ehird`> or is it OK as long as B<=D
21:57:23 <es0n00b> if Y+C>2^64 then jump PC+(d and not 3)+4 else jump PC+4
21:58:49 <es0n00b> trying to keep things simple. if its an 16-bit computer then each operand is 16 bits long and computer has a 2^16 word memory (128K)
21:59:28 <ehird`> es0n00b: OK, so if an operand can store more than 16bits or a memory cell can -- that's bad?
21:59:37 <ehird`> because, in C, there's no decent way to determine this kind of thing
22:00:05 <es0n00b> have purposely used jump addresses relative to the next instruction, so that a jump to +0 is not a jump at all (ie it will force a jump to next instruction)
22:00:17 <ehird`> es0n00b: hmm, i have a question
22:00:26 <ehird`> which bit-size do you reccomend for an implmentation?
22:00:57 <ehird`> but maybe not enough memor
22:01:03 <es0n00b> any could do. depending on how much memory you need to play with
22:01:13 -!- Sgeo has joined.
22:01:39 <es0n00b> id got for 16-bit to begin with.
22:01:57 <es0n00b> 2^16 memory cells. 2^12 instructions. enough to do a bit
22:02:11 <ehird`> es0n00b: OK. It might be more elegant if you don't involve bit-sizes at all.
22:02:31 <ehird`> Might make in-silico harder, but makes it turing-complete.
22:02:53 <ehird`> es0n00b: do the noticable semantics change with bitsize?
22:02:58 <ehird`> i.e. programs are totally different
22:03:04 <es0n00b> yes. infinite bit-size is turing-complete. finite bit-size is practical
22:03:59 <ehird`> es0n00b: i'm just asking :P
22:04:08 <es0n00b> change in bit-size will change the programming
22:04:13 <ehird`> faxathisia: he's a telemarketer who's come up with a OISC that he thinks might be better in-silico
22:04:28 <ehird`> es0n00b: what i mean is do all programs change substantially or could you look at them and go 'yeah i guess they do the same thing'
22:04:33 <faxathisia> ehird that is not a knock knock joke ;(
22:04:50 <es0n00b> (I was doing a PhD once... dont ask)
22:04:56 <ehird`> faxathisia: think about it right and it is
22:05:35 <pikhq> (oerjan, one of the regulars here, is IRL Dr. Johansen. :p)
22:06:11 <es0n00b> the reason bit-size is important is the condition-branch is dependant on it
22:06:28 <es0n00b> (still trying to translate math to english)
22:06:42 <ehird`> es0n00b: so it makes sense to decide, like, right now
22:06:46 <Sgeo> Hi all, ehird` faxathisia, es0n00b
22:06:58 <es0n00b> how much memory do we want??
22:07:23 <es0n00b> 16 bit gives us 128K, 32 bit gives us 16GB
22:07:40 <es0n00b> 64 bit gives us over 134,000,000 TB
22:07:47 <ehird`> es0n00b: ok, here's the decider:
22:07:48 <pikhq> Nets you 2^54 bits. More than enough.
22:07:50 <ehird`> which is easiest to program for?
22:08:11 <pikhq> ehird`: They're actually equally easy.
22:08:19 <ehird`> pikhq: even with his semantics?
22:08:25 <ehird`> he says the condition branch is dependant on it
22:08:26 <pikhq> uint_8, uint_16, uint_32, uint_64. . .
22:08:35 <es0n00b> bit-size doesnt change ease of progamming. just possible maximum memory
22:08:36 <pikhq> What sort of semantics would change with bit size?
22:08:43 <ehird`> pikhq: i don't know, but he says they do
22:09:09 <ehird`> es0n00b: OK. Then I would say 64-bit, but then again I cannot think of one use an esolang would have for >16GB memory -- but the larger ints might be useful
22:09:12 <es0n00b> once i define the branch insturcion to english, you'll understand
22:09:15 <ehird`> But not 8-bit, i think.
22:09:47 <ehird`> es0n00b: 8-bit would be a big mistake.
22:10:01 <ehird`> sooner or later, someone will come up with an awesome program that uses more than 128k
22:10:23 <es0n00b> ok ok. lets start with 32 bit
22:11:22 <es0n00b> f() returns to top 32 bits or the bottom 32 bits of a*b
22:11:52 <es0n00b> IE (dand2)=0 -> f(a*b)=lowest 32 bits of a*b
22:12:02 <es0n00b> (dand2)=2 -> f(a*b)=lowest 32 bits of a*b
22:12:14 <es0n00b> <es0n00b> (dand2)=2 -> f(a*b)=highest 32 bits of a*b
22:12:51 <ehird`> but i get what you're saying
22:12:53 <es0n00b> all bitwise. my thoughts are for silion efficiency
22:13:50 <es0n00b> if f(a*b)+c is smaller than 32 bits than jump d, otherwise jump next instruction
22:14:15 <ehird`> 'smaller than 32 bits'?
22:14:22 <ehird`> you mean, fits into 31 bits or less?
22:14:44 <es0n00b> my mistake. sorry. the maths does get complicated
22:14:57 <es0n00b> i should mean, fits into 32 bits or less
22:15:44 <es0n00b> 33 bit controls the jump, but is not stored in A
22:16:07 -!- sclv_ has joined.
22:16:14 <es0n00b> the reason for this comes to to implementation of 64bit multiplication in 32bit computer
22:16:56 <es0n00b> if 33nd bit is on in the first instruction, a carry has occurred and must be added to the top 32 bits
22:17:30 <es0n00b> a=32bit, b=32bit, c=32 bit, d=32bit
22:17:58 <es0n00b> the bottom 2 bits of D are ignored for the jump.
22:18:21 -!- atsampson has joined.
22:18:38 <es0n00b> IE: PC=PC+(Dandnot3)+4 :: the +4 makes jumps relative to the next instruction
22:19:19 <ehird`> es0n00b: i hope you're saving this to put in a textfile :-)
22:19:53 <es0n00b> ie NMISC A B C 0 is forced to jump to the next instruction, and NMISC A B C 4 will skip the next instruction if bit33 is clear (ie no carry)
22:21:00 <es0n00b> the whole picture of the idea is all stored in my brain. the details are all to do with practicality.
22:21:39 -!- Corun has joined.
22:21:45 <es0n00b> NMISC A,-1,C,D == A=C-A, jump D if bit33 clear
22:22:20 <es0n00b> NMISC A,0,C,0 == A=C. no jump
22:22:27 <ehird`> es0n00b: your conciseness makes me think you should be a forth programmer
22:23:46 <es0n00b> i had an electronic set as a kid, and was got into transitor-transitor logic
22:24:42 <es0n00b> its crazy that all digital logic can be made using only NAND gates. thats when i first had an idea of a minimal computer. it's only now that things are coming to fruition
22:25:50 <es0n00b> eg OR(A,B)=NAND(NAND(A,A),NAND(B,B))
22:26:59 <es0n00b> thats probably why im used to seeing it all as digital formulas but have so much trouble communicating the idea across right
22:27:47 <es0n00b> the D=0 -> no jump thing is also useful, as it leads to some neat tricks.
22:28:26 <slereah_> I wonder if you could make something with imply and some bit consistently defined as 0.
22:28:40 <slereah_> You can derive all logical operators from imply and false
22:28:57 <slereah_> But I'm not sure how that would play out on silicon
22:29:27 <es0n00b> i was trying to work with only NAND for ages. it is possible to make an OISC in NAND, but its horrible
22:30:03 <slereah_> OISC always feels like cheating to me.
22:30:22 <slereah_> Sure, it's got one instruction, but it has three parameters and symbols!
22:30:43 <es0n00b> somthing as simple as addition in NAND requires programming a version of the full-adder circuit. start thiniking about multiplication and its a nightmare
22:31:02 <slereah_> Write a program to translate it?
22:31:07 <es0n00b> thats what lead me to the NMISC idea (that and discovering OISC/MISC)
22:32:14 <es0n00b> yeah - OISC isnt the most difficult esolang
22:32:56 <es0n00b> BF and the like are good if you want a challenge. I'm looking for something practical though
22:33:35 <es0n00b> NMISC shouldnt be too hard to pout onto a Field-programmable gate array
22:33:58 <slereah_> I was imagining the program pouting.
22:34:00 <ehird`> es0n00b: hm, my haskell NMISC isn't getting too far yet: evalStateT (writeMem 0 1 >> readMem 0) baseMachine
22:34:35 <es0n00b> it's all addition, multiplication and a little boolean-logic
22:34:38 <ehird`> es0n00b: actually, writing stuff like this in haskell is odd
22:34:54 <ehird`> you get your provably-correct, purely-functional, mathematically-valid program and add all this generic stuff :)
22:35:04 <ehird`> its still good for it, though
22:35:34 <es0n00b> ok. my wife is awake, so i probably got to go soon.
22:35:46 <ehird`> es0n00b: now as soon as you've got the instruction written down and put somewhere i'll implement it ;)
22:35:56 <ehird`> i'll try and understand myself..
22:36:07 <es0n00b> think i might flesh this idea out, put it on paper, then maybe write a NMISC page onto esolang.org
22:36:44 <es0n00b> my email is cdgamlin AT hotmail DOT com
22:37:05 <ehird`> es0n00b: really, for this implementation i just need a description of the one instruction and the IO model
22:37:12 <ehird`> rafb.net/paste will store it too
22:37:30 <ehird`> an esolang page would be great when there's a 'hello world' :P
22:38:07 <es0n00b> love to hear any experiments if the model gets up and running. email me your emails and i'll write you a full description of NMISC, and probably a pseudo-code BASIC version
22:39:03 <ehird`> don't have access to an email client here
22:39:07 <es0n00b> could probably write the "hello world" on paper faster than I could write a NMISC emulator. like I said, translating from MISC to NMISC is trivial
22:39:50 <ehird`> if we have a hello world and how it works then an impl should be easy
22:39:58 <es0n00b> NMISC just has more efficient ways to do things requiring multiplication (like almost all real-world math)
22:40:40 <es0n00b> ok. I'll write a "Hello World" to the NMISC page on esolang.org
22:41:09 <es0n00b> what memory address is best for memory-mapped I/O
22:41:40 <es0n00b> i'm thinking last two memory cells
22:42:41 <es0n00b> ie FFFF and FFFE in hex (for 16 bits). Dont know if it makes much difference though.
22:42:56 <es0n00b> ok. wife wants me to do things. back later
22:43:25 <es0n00b> nice to be able to share this crazy idea with ppl who might understand (and not look at me like i'm a nutter)
22:43:44 <slereah_> I'd love to understand moar though ":0)
22:44:13 <ehird`> it means that if you eat a lot of memory you don't have to think about it
22:45:25 <es0n00b> if the first instruction is 0: NMISC 0 0 0 0, it returns A=0, and goes to the next instruction anyways
22:50:35 -!- es0n00b has quit (Read error: 54 (Connection reset by peer)).
22:52:51 -!- sclv_ has quit ("http://www.mibbit.com ajax IRC Client").
22:54:49 <ehird`> we need a composition-lambda-calculus
22:54:58 <ehird`> it's lambda-calculus without the lambda, but it's not combinator calculus
22:55:02 <ehird`> because it's based on function composition
22:55:58 <ehird`> faxathisia: FUNCTION! composition
22:57:30 * slereah_ once had an idea of a lambda calculus without lambda.
22:57:45 <slereah_> Just using capital letters for bound variables.
23:02:02 <ehird`> faxathisia: that's kind of... non-universal
23:02:18 <ehird`> but a few primitives (one letter or symbols, of course) + composition = ?
23:02:29 <ehird`> and of course you can make the composition operator implicit
23:02:34 <ehird`> and get a concatentative language
23:02:49 <ehird`> if you go all the way and make it a stack language, then ais523 or oerjan i forget which -- suggested that 'dip' might be the operator
23:03:15 <ehird`> ( .a b ( .a -- .b ) -- .b b ), that is
23:07:59 -!- oerjan has joined.
23:13:02 <slereah_> Problem with esolang is, it's hard to look back in your code.
23:16:20 <slereah_> Man, that BF interpreter is a mess.
23:30:11 -!- pikhq has quit ("leaving").
23:32:24 -!- pikhq has joined.
23:32:38 -!- pikhq has quit (Client Quit).
23:33:21 -!- pikhq has joined.
23:34:43 -!- pikhq has quit (Client Quit).
23:36:45 -!- pikhq has joined.
23:54:35 -!- jix has quit ("This computer has gone to sleep").
23:55:21 -!- olsner has joined.
00:02:09 -!- timotiis has quit ("leaving").
00:53:32 -!- ihope has joined.
00:55:37 -!- ihope has set topic: THIS IS "NOT" THE END OF THE INTERNET..
00:55:51 <ihope> Interpret that however you wish.
01:09:32 -!- lament has set topic: THIS IS "NOT" THE END OF THE INTERNET. NOT..
01:10:20 -!- ehird` has set topic: let consume = id; internet = case internet of (x:xs) -> consume x : internet xs in not (null internet).
01:10:40 -!- ehird` has set topic: let consume = id; internet = case internet of (x:xs) -> consume x : internet in not (null internet).
01:11:38 <ehird`> oerjan: haskell should so solve the halting problem to report <<LOOP>>
01:13:19 <ehird`> perl -wlne'END{print$n}eof&&$n++;/<title>([^<]+)/i&&$n--' *
01:13:22 <ehird`> what does that ACTUALLY do?
01:13:55 <ihope> I imagine it... um, does nothing? :-P
01:15:28 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)).
01:15:39 -!- Corun has quit (Read error: 110 (Connection timed out)).
01:16:32 -!- puzzlet has joined.
01:16:43 <ehird`> btw -- http://esolangs.org/wiki/User_talk:Oerjan <-- Someone ought to tell GreaseMonkey that his terms are among the most draconian of all the licenses (I would hesitate to call it 'free' very much). He even has a section on his userpage about how evil oerjan is and how the world is cruel and he had to remove the page
01:17:28 <ehird`> hm, he phrases it wrong there
01:17:34 <ehird`> it was far more draconian than what he has there
01:17:46 <oerjan> i think it does something like counting the number of files minus the number of lines matching <title>([^<]+)
01:18:05 <oerjan> then printing the count at the end
01:21:11 * pikhq wonders if Razor-X/Sukoshi has been in the channel recently
01:21:58 <oerjan> i am not sure i've seen her since the autumn
01:22:15 <oerjan> and only a short visit at that
01:27:50 <ehird`> i only ever saw her once or twice.
01:27:57 <ehird`> {C[(c__)x1=][ix*(0)(_a)A!(_a)a.?=^]}
01:28:00 <ehird`> glass accumulator generator
01:29:16 <ehird`> {C[(c__)x1=][ix*(0)(_a)A!(_a)a.?=^]}
01:29:16 <ehird`> {M[m(_c)C!(_o)O!(_c)i.?(_c)i.?(_o)(on).?]}
01:32:34 <ehird`> {C[(c__)1x=][ix*(_a)A!(_a)a.?=x*^]}
01:32:58 <ehird`> or {C[(c__)1x=][ix*(_a)A!(_a)a.?x=x*^]}
01:37:18 <ehird`> what is t he most effective FYB?
01:39:10 <ehird`> isn't the simplest just loads of padding, then find the first char outside a loop and bomb, if at end of program just add a bomb?
01:39:29 * oerjan doesn't know but would hope there is at least a paper-rock-scissors type of interaction, with no absolute winner
01:40:56 <ehird`> you know what would be interesting
01:40:59 <ehird`> a befunge fuckyourbrane
01:41:09 <ehird`> with an extra command that is just like p and q but on the opponent
01:41:15 <ehird`> or maybe make p and q operate on the opponent
01:41:37 <ihope> Or make the programs share one field.
01:42:15 <ehird`> That could be confusing.
01:42:32 <ehird`> (I mean Befunge-93, of course. 98 is just crazy.)
01:42:42 <ehird`> (Well, 93+infinite-playing-field. I think that's the sanest funge.)
01:43:16 <ihope> You know, I did slightly ponder a somewhat FYB-like thing once: a huge array is filled with random BF instructions, and a number of instruction pointers execute it, and the code is the memory.
01:43:58 <ehird`> having all ps and qs operate on the other program would be interesting
01:44:07 <ehird`> if you want to store data you'd have to find an empty space on their program
01:44:13 <oerjan> ehird`: not infinite, how can you ever hit your opponent then :D
01:44:23 <ehird`> oerjan: board is loaded at 0,0
01:44:26 <ehird`> and extends to +inf,+inf
01:44:48 <ehird`> and maybe starting whitespace is ignored.
01:44:52 <ehird`> to avoid trivial cheats
01:45:24 <oerjan> ehird`: that would allow a strategy of fleeing away from 0,0 in an unpredictable direction at great speed?
01:45:39 <ehird`> oerjan: oh, good point
01:45:49 <ehird`> OK, but how can you utilize turing completeness then?
01:46:00 <ehird`> I guess board=progsz+some
01:46:49 <ehird`> oerjan: because 80x24 is probably not enough for most bombers
01:48:36 <ehird`> oerjan: how about - instead of using p and q, you have two pointers
01:48:42 <ehird`> a pointer in your program that does the execution stuff
01:48:52 <ehird`> and a pointer in the other that you can move about, get current value, and set current valu
01:50:36 <oerjan> i think opinions are overrated, and no one should have them EVER
01:51:49 <oerjan> depends how quickly you can move the pointers
01:53:12 <oerjan> i am reminded of redcode's lack of absolute addressing
01:55:27 <ehird`> so i guess p and g + manual counting would be better
01:56:06 <oerjan> i am not saying relative addressing is a bad thing
01:58:08 -!- olsner has quit ("Leaving").
02:05:34 <ehird`> with p and g operating only on the current ptr
02:06:24 <oerjan> so you don't want to allow rapid bombing?
02:07:36 <ehird`> i'll discuss this further tomorrow, have to go now
02:07:44 <ehird`> if you come up with any more ideas just tell me and i'll se the logs tomorro
02:07:51 -!- ehird` has quit ("K-Lined by peer").
02:13:44 <slereah_> Finite state automaton is from the 70's :o
02:14:32 <pikhq> Yes, and Turing machines are from the 30s. Your point?
02:15:01 <pikhq> faxathisia: Lambda calculus is also from the 30s.
02:15:08 <pikhq> Same year as the Turing machine, IIRC.
02:15:24 <pikhq> RodgerTheGreat: I'm the Antiartist; no.
02:16:52 <slereah_> Compared to the whole turing machine shenanigans.
02:19:37 <pikhq> The whole thing about any Turing-complete system being able to compute what any other such system can?
02:19:42 <pikhq> That is the Church-Turing thesis. . .
02:19:55 <pikhq> Church devised Lambda calculus, Turing the Turing machine. . .
02:20:03 <pikhq> And both came to the same conclusion. ;)
02:21:38 <pikhq> Church's paper on the Halting problem came out in April 36. . .
02:21:44 <pikhq> Turing's in May 36.
02:21:47 <pikhq> s/Halting/halting/
02:23:15 <lament> there're only 30 days in april and 31 in may.
02:23:30 <RodgerTheGreat> I want to create a new CS case study called "The Halting Salesman Problem"
02:25:58 <oerjan> well that certainly is impossible.
02:26:38 <pikhq> Don't argue with oerjan until you get published in one of the AMS's journals. :p
02:28:58 <pikhq> (I assume you wrote this? http://www.ams.org/tran/2006-358-06/S0002-9947-06-03843-8/home.html)
02:30:36 <RodgerTheGreat> I don't know much about the case-study, but I think it involves a turing machine that is also a traveling salesman.
02:31:04 <ihope> Given an arrangement of cities described by a predicate on a pair of integers, if a salesman has to visit each one, determine whether or not the salesman ever halts.
02:31:07 <pikhq> BTW, I congratulate you on getting into the Transactions
02:35:26 <pikhq> Transactions of the American Mathematical Society.
02:35:53 * Sgeo looks at the link, and gives up any hope of understanding
02:36:14 <pikhq> I'm sure I'll understand it a bit more in a few years.
02:36:30 <pikhq> (I'm majoring in computer science *and* mathematics)
02:37:13 <Sgeo> I mean, I knew the basics of Calculus in 6th grade, and seeing stuff I don't understand (although that's everyday in this channel) isn't doing me any good
03:13:26 -!- ihope_ has joined.
03:20:14 <RodgerTheGreat> http://rodger.nonlogic.org/dump/images/1203045422-think.png
03:22:14 -!- ihope__ has joined.
03:24:26 <ihope__> Well, I liked the main content better than the stuff written around the edges.
03:25:02 <ihope__> It reminds me of lucid dreaming, and the second to last panel reminds me of... something else.
03:25:23 <ihope__> Probably something from one of these recent Neopets comics. :-P
03:25:36 <oerjan> I thought the paper had a nice, dry flavor although it could use a little more seasoning.
03:28:16 <RodgerTheGreat> oerjan: I've experimented with adding cilantro, but people tell me it adds too much bite
03:28:51 <ihope__> Oh, and it reminds me of 1/0, too.
03:30:24 <ihope__> A comic strip with a primitive world, a nice amount of philosophy, and lots of sand.
03:30:45 <ihope__> It might be fun to try my hand at doing my own "version" of your comic.
03:30:51 -!- ihope has quit (Read error: 110 (Connection timed out)).
03:31:20 <ihope__> But I generally don't draw, so it might be... oh, I think I'll do it.
03:31:48 <oerjan> built it with lego. seems to be all the rage.
03:32:18 <ihope__> (I'd slap you, oerjan, but that would be mean.)
03:32:25 <ihope__> Yes, I'm thinking about it now.
03:33:02 <RodgerTheGreat> I just kinda started with a rough idea "I change things." and did the rest as stream of consciousness
03:33:45 <ihope__> Stream of consciousness, eh?
03:39:07 <ihope__> It reminds me of early xkcd, too.
03:39:48 -!- ihope_ has quit (Read error: 110 (Connection timed out)).
03:41:28 <ihope__> A version that requires imagination: http://pastebin.ca/904658
03:41:47 <ihope__> Max and Marcus are absolutely not named after the 1/0 characters of that name, maybe.
03:42:47 <ihope__> Though what I'd really like to see is a continuation of yours.
03:45:27 -!- ihope___ has joined.
03:45:31 -!- ihope___ has changed nick to ihope.
03:45:39 <ihope> Hmm. The line breaks got deleted, but they weren't necessary: http://nonlogic.org/dump/text/1203046923.html
03:45:57 <ihope> My gosh, who set my system clock forward an hour? :-P
03:55:28 -!- oerjan has quit ("Good night").
04:03:16 -!- ihope__ has quit (Read error: 110 (Connection timed out)).
04:05:44 <RodgerTheGreat> http://www.nonlogic.org/dump/images/1203048152-thinkagain.png
04:09:30 <ihope> I'll definitely need to give this stuff a try. :-)
04:09:46 <ihope> I think I even have a scanner. :-P
04:10:43 <ihope> Well, it's late and everyone else is sleeping.
04:11:14 <ihope> I'll do it tomorrow. Hold me to that.
04:11:42 <ihope> Hey, maybe I'll do some rough drawings right now, but I won't really be able to scan them until tomorrow.
04:14:46 <RodgerTheGreat> http://www.undefined.net/1/0/0/84.gif <- so this is where those are from?
04:15:16 <ihope> Absolutely not. :-P
04:16:27 <ihope> So, there's this big flat landscape, with a bunch of square holes in it, all aligned and of the same size but randomly scattered. A man dressed in a suit is standing in one of the holes and it comes about up to his waist; he's saying "This is you."
04:17:08 <ihope> You know it's surreal when you pull stuff right out of your dreams. That's where the landscape with holes comes from.
04:18:54 <ihope> "Be very careful", his voice says (he's just standing there silently this time), "or else you'll go blind. Once you go blind, you can never see again. You'll have to start over."
04:20:40 <ihope> "Welcome", says the voice, but suddenly everything goes dark and you fall down into nothingness. At that point, you know that everything will be all right.
04:21:13 <ihope> I'll be going to bed right now. Good night.
04:41:42 -!- ihope has quit (Read error: 110 (Connection timed out)).
05:58:07 -!- Sgeo has quit (Remote closed the connection).
07:39:50 -!- Sukoshi` has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:57:12 -!- uvanta has joined.
09:51:02 -!- Sukoshi` has left (?).
10:00:58 -!- puzzlet has quit (calvino.freenode.net irc.freenode.net).
10:00:58 -!- lifthrasiir has quit (calvino.freenode.net irc.freenode.net).
10:00:58 -!- RodgerTheGreat has quit (calvino.freenode.net irc.freenode.net).
10:01:53 -!- puzzlet has joined.
10:06:39 -!- RodgerTheGreat has joined.
10:07:45 -!- lifthrasiir has joined.
10:21:15 -!- uvanta has quit ("blame!").
11:20:43 -!- olsner has joined.
11:29:28 -!- sebbu has quit (Connection timed out).
11:50:12 -!- olsner has quit ("Leaving").
11:54:31 -!- Corun has joined.
12:06:45 -!- puzzlet has quit (Remote closed the connection).
12:06:49 -!- puzzlet has joined.
12:15:23 -!- Corun has quit ("This computer has gone to sleep").
12:20:52 -!- es0n00b has joined.
12:21:45 <es0n00b> at last, my creation is coming to fruition. hahahaha
12:22:20 <es0n00b> yeah. it's clunky, but it just might work
12:22:35 <es0n00b> http://www.esolangs.org/wiki/NMISC
12:23:11 <es0n00b> still nowhere near complete. still probably contains some stupid errors, but the idea is all there
12:24:36 <es0n00b> so, anyhoo, slerah_, hows your day been?
12:24:50 <slereah_> Well, I woke up 20 minutes ago
12:25:12 <slereah_> I'm trying to work on my esolangs.
12:25:50 <slereah_> If I dig a lot, will I see you?
12:26:04 <es0n00b> funny- was talking to you this morning (last night for you) and now tonight (this morning for you). gonna have to check that time difference.
12:26:39 <es0n00b> theres a google maps hack that does a virtual dig from one side of the plant to another
12:26:49 <es0n00b> i end up in the middle of a huge ocean
12:27:06 <es0n00b> whats the esolang you working on
12:27:17 <es0n00b> (can remember where i dig to)
12:27:29 <slereah_> Some functional language based on mu*recursive functions.
12:28:06 <es0n00b> read about lambda calculus. didnt make any sense to me
12:28:22 -!- es0n00b has quit (Read error: 104 (Connection reset by peer)).
12:30:28 -!- es0n00b has joined.
12:31:02 <slereah_> Lambda calculus is hard to get.
12:31:15 <slereah_> But after that, it has some good point.
12:31:34 <slereah_> It's easy to construct a program piece by piece.
12:31:56 <slereah_> (Plus, Mulambda is more of a pun, there's no real link with lambda calculus)
12:32:09 -!- sebbu has joined.
12:32:56 <es0n00b> http://www.ubasics.com/dighole/
12:33:52 <slereah_> Mu-recursive functions is four functions. Successor (+1), projection (choose an argument out of n), 0 and the Β΅ function (Β΅y(x, y, z, ...) finds the smallest y that make the function vanish, or returns 0 otherwise)
12:34:07 <slereah_> You make functions out of it, and there you have it.
12:34:19 <es0n00b> (hang on - wife wants me to do stuff)
12:35:56 <slereah_> Hm. On the other side of the world, there's almost New Zealand.
12:36:11 <slereah_> A few hundred miles away from Christchurch.
12:37:26 <es0n00b> yeah- you are almost 12 hours out of sync with us (or we're almost 12 hours out of sync with you) +/- a few hours
12:38:14 -!- timotiis has joined.
12:38:30 <es0n00b> ok- MU seems weird but kind of interesting.
12:39:06 <es0n00b> any good web pages describing MU in an easy to understand style??
12:39:20 <slereah_> It's the oldest algorithm method in existance!
12:40:02 <slereah_> Although when it was created, it wasn't TC
12:40:25 <slereah_> http://en.wikipedia.org/wiki/Mu-recursive_function
12:41:56 <slereah_> Well, actually, it was the combinators first, I think.
12:42:25 <slereah_> But there's plenty Unlambda around
12:42:42 <es0n00b> seems like a lot for only just 4 instructions
12:44:53 <es0n00b> think i might just to imperative programming languages. minimalistic functional programming languages are going to give me nightmares
12:45:23 <slereah_> IT's hard to work without a memory or variables.
12:45:41 <slereah_> But then again, as the name implies, it's easy for functions.
12:46:03 <slereah_> CAT programs might be easier in BF, but not arithmetics.
12:46:26 <es0n00b> cant imagine trying to make a chip based on minimalistic functional programming, too unwieldly
12:46:49 <slereah_> I once tried to make one on mah Turing machine.
12:47:41 <slereah_> Problem being, you have to rewrite the code at every step.
12:48:19 <slereah_> Well, at least that's how I did it.
12:48:57 <es0n00b> the reason I based NMISC on multiplication is just for that - to make a minimal imperative language thats easy for arithmetic. Once you have multiplication, Taylor polynomials are just around the corner
12:49:29 <es0n00b> (rewrite code at EVERY step - ouch!!)
12:50:07 <es0n00b> I like a challenge, but im not fond of banging my head against the wall just to hear the sound of it
12:50:53 <slereah_> Well, in combinators, the only way to keep track of anything is the code itself, since it doesn't deal with memory.
12:51:01 <es0n00b> is your esolang work related to your physics at all, or just a hobby
12:51:20 <slereah_> I don't like to bang my head against the wall either.
12:51:57 <slereah_> (The functional language in question is : http://www.esolangs.org/wiki/Lazy_Bird )
12:52:58 <slereah_> A vain attempt at making a minimal functional language easier.
12:53:06 <slereah_> Although the functions are quite compact.
12:53:07 -!- es0n00b1 has joined.
12:53:17 <es0n00b1> arrgh - keep loosing the connection
12:53:22 <slereah_> [13:51] <slereah_> Just a hobby.
12:53:23 <slereah_> [13:51] <slereah_> (The functional language in question is : http://www.esolangs.org/wiki/Lazy_Bird )
12:53:23 <slereah_> [13:52] <slereah_> A vain attempt at making a minimal functional language easier.
12:53:23 <slereah_> [13:52] <slereah_> Although the functions are quite compact.
12:53:23 <slereah_> [13:52] --> es0n00b1 has joined this channel
12:53:27 <es0n00b1> what was that web address again??
12:57:14 <es0n00b1> really cant make head or tail of Lazy Bird.
12:57:57 <slereah_> Well, for instance, the Fibonacci is thusly :
12:59:04 <slereah_> ^x^y [A printing function that takes y as an argument] xx [a function to change the sort-of memory that takes x as an argument]
12:59:47 <slereah_> If I call that function u (and that's pretty much what it is), and I apply it to itself (`uu), I get :
13:00:08 <slereah_> ^y [A printing function that takes y as an argument] uu [a function to change the sort-of memory that takes y as an argument]
13:00:32 <slereah_> The ^x disappear because it suffered function application, so all x's are replaced by the argument.
13:00:55 <slereah_> If I apply it to the list [0, 1], I get :
13:01:11 -!- jix has joined.
13:01:30 <slereah_> [Prints the first element of [0,1]] uu [a function to change [0,1]]
13:01:58 <slereah_> It then prints 0, and the printing function disappear (because it converts to the identity function)
13:02:24 <slereah_> So I'm left with uu [a function to change [0,1]], which then converts to uu [1,1]
13:02:43 <slereah_> And I'm back at the beggining, but with a new argument.
13:03:33 <es0n00b1> but how is it adding the arguments together.
13:04:09 <es0n00b1> i must have missed the addition within the code
13:04:18 <slereah_> I use Church numerals. It's ^f^x f(f(f(f(...f(x)...))))
13:04:31 <slereah_> The number of f's indicates the number.
13:04:56 <es0n00b1> i understand you have to use the adding function, but where is it in the code?
13:06:00 <slereah_> But well, to make it more compact, and to avoid using variables, I used the combinators.
13:06:22 <slereah_> `sb is equivalent to ^a^f^x.f(afx). It means +1
13:06:58 <slereah_> Because if you enter a Church numeral into that function, for instance two ^g^y.g(gy), you get :
13:07:03 <es0n00b1> ok - this looks like a whole new area of maths
13:08:29 <slereah_> (^a^f^x.f(afx))^g^y.g(gy) converts to ^f^x.f(^g^y.g(gy)fx) (a replaced by ^g^y.g(gy)), converts to ^f^x.f(^y.f(fy)x) (g replaced by f), converts to ^f^x.f(f(fx)) (y replaced by x)
13:09:09 <slereah_> So in the end, your function is the argument of a new f.
13:09:48 <es0n00b1> ok - kind of follow. your using recursion. dont pretend to understand the rest
13:10:22 <slereah_> They're used for function iteration.
13:10:51 <slereah_> So for instance, if to the number 3, I apply two arguments, the successor argument (s, meaning +1) and another number, you get :
13:10:58 <es0n00b1> yeah - i keep finding "Church numerals" in a number of places
13:11:50 <slereah_> (^f^x.f(f(f(x)))) s 5 converts to (^x.s(s(s(x)))) 5 converts to s(s(s(5)))
13:12:15 <slereah_> So you take the successor of 5, and the successor of the successor, and the successor of it
13:13:05 <slereah_> Or ^f^x.f(f(f(f(f(f(f(f(x))))))) in lambdas.
13:13:29 <es0n00b1> but you dont need a symbol for the number 5, as 5 can be determined as a string of successions from 0??
13:13:51 <slereah_> Yes. I just write it 5 because it's shorter.
13:16:11 <es0n00b1> right. kind of getting the idea behind it. still not fully understanding all the symbols involved
13:16:27 <slereah_> Well, there's only two symbols.
13:16:50 <slereah_> There's the lambda (I use ^ for it, sometimes people use \), and there's variables.
13:17:51 <slereah_> If there's a variable that's next to a lambda, it's bound. The most important thing about this is that, if there's something applied to the expression, the left-most lambda symbol is replaced by that expression.
13:19:04 <slereah_> There's also the delta, but I think I never saw it outside of Turing's paper.
13:20:10 <slereah_> Well, the syntax is, the dot only serves the purpose of separating lambda variables from the expression itself.
13:20:23 <slereah_> That way, you can just use one lambda.
13:20:50 <slereah_> For instance, ^x(^y(^z(xyz))) can be written as ^xyz.xyz
13:21:58 <es0n00b1> does (^xyz.xyz)a make any sense
13:22:59 -!- oerjan has joined.
13:23:06 <slereah_> Hell, the original Chruch notation was {^x{^y{^z[(xy)z]}}} (a)
13:23:38 <slereah_> (^xyz.xyz)a -> Leftmost bound variable is x -> ^yz.ayz
13:24:11 <es0n00b1> multiplication is the built out of additions somehow
13:24:30 <slereah_> The other notation convention is that abc = (ab)c
13:24:39 <slereah_> You can build it out of addition
13:24:54 <slereah_> But multiplication is actually easier than addition in lambdas.
13:25:37 <slereah_> Multiplication is ^m^n^f.n(mf)
13:26:52 <es0n00b1> ok - can it perform integration or differentiation. I have a nasty little differential equation that has been bothering me since my old PhD days
13:27:18 <slereah_> But there's no simple way to do it
13:28:43 <es0n00b1> you any good at differential equations. My problem SHOULD have a solution, but I have no idea how to attack it easily
13:29:42 * oerjan notes "Sukoshi`" in this morning's logs
13:29:57 <oerjan> just after we talked about her...
13:30:04 <slereah_> TRWBW is always giving me the look because I use differential elements as variables
13:30:25 <slereah_> "DIFFERENTIALS DO NOT WORK THAT WAY"
13:30:37 <es0n00b1> dx/dt=Aexp(-B/t)*(x^m)*(1-x)^n
13:31:26 <es0n00b1> (trying to remember which version of the equation this is, so it will work properly)
13:31:53 <slereah_> Are the x^m and all outside of the exponential?
13:33:04 <slereah_> So... A * (x^m) * [(1-x)^n] * e^(-B/t)?
13:33:11 <es0n00b1> initial conditions start at x=0,t=0
13:34:09 <es0n00b1> and i know x=0,t=0 LOOKS wrong, but it works if you rearrange the equation to two integrals, with x on one side and t on the other, and use x=0 and t=0 as limiting conditions
13:34:48 <slereah_> Well, I'd personnaly just say that it's dx = A * (x^m) * [(1-x)^n] * e^(-B/t) dt, and then integrates to get x(t) = A * (x^m) * [(1-x)^n] * e^(-B/t) * (-1/B)
13:35:21 <slereah_> And then, mathematicians would get their Morbo masks and say "DIFFERENTIALS DO NOT WORK THAT WAY"
13:35:32 <es0n00b1> so INT(x=0->x,(x^-m)*x^n.dx)=INT(t=0->t,Aexp(-B/t).dt)
13:36:10 <es0n00b1> oops: INT(x=0->x,(x^(-m))*x^(-n).dx)=INT(t=0->t,Aexp(-B/t).dt)
13:36:48 <slereah_> Well, I didn't use boundaries for the integration.
13:36:56 <es0n00b1> integrals on both sides do not have elimentary solutions
13:37:05 <slereah_> There's a constant that should remains, but you can get rid of it via initial conditions.
13:37:38 <es0n00b1> true. starting conditions are important though
13:37:49 <slereah_> I don't have pants on and I should get going in 5 minutes.
13:38:09 -!- Corun has joined.
13:38:16 <es0n00b1> as i want to solve for t when x=1
13:38:22 <slereah_> You can check #math, they'll probably help you.
13:38:27 <es0n00b1> or, at least a good approximate
13:38:36 <es0n00b1> may go there later. time for bed.
13:39:08 <es0n00b1> have a good day. it's gonna be a hard nights sleep for me. the brain might not stop for a while now.
13:39:21 -!- es0n00b has quit (Read error: 131 (Connection reset by peer)).
13:39:21 -!- es0n00b1 has quit (Read error: 131 (Connection reset by peer)).
13:55:03 -!- ihope has joined.
14:00:35 -!- helios24 has joined.
14:05:58 -!- ihope_ has joined.
14:23:18 -!- ihope has quit (Read error: 110 (Connection timed out)).
15:01:05 -!- tejeez has joined.
15:54:04 -!- ehird` has joined.
15:54:27 <ehird`> haskell code looks really good on one line
15:55:08 <ehird`> turing machine was post-LC, i believe
16:01:03 -!- oerjan has quit ("Et cetera, et cetera").
16:05:04 -!- tejeez_ has joined.
16:09:09 -!- tejeez has quit (Read error: 145 (Connection timed out)).
16:17:56 -!- atsampson has quit ("Lost terminal").
16:21:29 -!- tejeez_ has changed nick to tejeez.
16:31:44 -!- ihope_ has quit (Read error: 110 (Connection timed out)).
16:32:54 -!- helios24 has quit (Remote closed the connection).
16:33:22 -!- helios24 has joined.
16:50:39 <slereah_> They wdere pretty much the same year
16:59:31 <slereah_> That narrow it down to a few hundred languages
17:00:37 -!- ihope_ has joined.
17:00:40 -!- ihope_ has changed nick to ihope.
17:01:43 -!- ihope_ has joined.
17:19:08 -!- ihope has quit (Read error: 110 (Connection timed out)).
17:36:16 -!- puzzlet_ has joined.
17:49:11 -!- puzzlet has quit (Read error: 110 (Connection timed out)).
17:53:32 -!- ais523 has joined.
18:00:49 -!- atsampson has joined.
18:15:13 -!- puzzlet_ has quit (Remote closed the connection).
18:15:16 -!- puzzlet has joined.
18:43:35 -!- ehird` has quit (Read error: 113 (No route to host)).
18:44:45 -!- ehird` has joined.
18:45:43 -!- ais523 has quit ("""").
19:26:06 -!- slereah__ has joined.
19:26:53 -!- slereah_ has quit (Read error: 104 (Connection reset by peer)).
19:29:31 -!- asiekierka has joined.
19:29:54 <asiekierka> Is there a BF interpreter that shows the movement of the head?
19:31:26 <slereah__> Also the one on the Love Machine 9000, if you chose to display the memory tape.
19:42:27 -!- Tritonio_ has joined.
19:45:43 -!- as13k13rka has joined.
19:46:55 <as13k13rka> is there a BF interpreter for mobile phones? Java
19:59:17 -!- asiekierka has quit (Read error: 110 (Connection timed out)).
19:59:31 -!- asiekierka has joined.
20:11:15 -!- as13k13rka has quit (Read error: 110 (Connection timed out)).
20:26:44 -!- asiekierka has quit (Read error: 110 (Connection timed out)).
20:27:00 -!- faxathisia has quit ("If there are any aliens, time travellers or espers here, come join me!").
20:34:13 <GregorR> I'm sure it wouldn't be all that complicated to write one.
20:37:08 <oklopol> it's the owner that writes.
20:52:08 -!- Sgeo has joined.
21:00:59 -!- oerjan has joined.
21:06:24 <ehird`> Chapter 10: An Essay on the Notion: "The Scope of Variables"
21:06:43 -!- ihope_ has quit ("ChatZilla 0.9.80 [Firefox 2.0.0.12/2008020121]").
21:08:03 <oerjan> Chapter 11: "The Scope of Essays": A variable notion
21:33:40 <oklopol> whazz the password to read your essay on AMS
21:39:35 -!- oklopol has quit (Read error: 104 (Connection reset by peer)).
21:43:31 -!- oklopol has joined.
21:45:22 <oklopol> i tried to allocate some memory, so the natural result was a reboot
21:45:37 <oklopol> ubuntu always knows what's best for me
21:56:33 -!- sebbu has quit ("@+").
22:12:19 -!- sebbu has joined.
22:17:08 <ehird`> oklopol: i assume you have to pay/be a member of AMS to read it
22:32:05 -!- jix has quit ("This computer has gone to sleep").
22:56:16 -!- Corun has quit (Read error: 110 (Connection timed out)).
23:09:13 * Sgeo has an interesting idea for domain4, actually
23:10:30 <Sgeo> The first function should control what format most functions use
23:11:45 <Sgeo> Does anyone care?
23:13:09 * Sgeo also thought of a new type
23:17:29 <pikhq> ehird`: LC and TM were produced independently, and published in consecutive months.
23:18:53 <Sgeo> Which will be a string containing no newlines
23:21:57 <Sgeo> Also, 0x00 0x04 0x00 controls whether functions in domain 0x04 accept FNUM(1), LNUM, or VARG(LNUM)
23:27:51 <Sgeo> http://trac2.assembla.com/psox/changeset/65/trunk look good?
23:31:56 <Sgeo> Any comments on that changeset?
23:42:28 -!- ihope has joined.
23:45:11 <ihope> Which is a greeting followed by something else, I guess.
23:45:36 <ihope> Clearly, I should start greeting people with "gse".
23:45:42 <oerjan> Greetings Supreme Evil Overlords
23:47:39 <ihope> Not just Evil Overlords, but Evil Overlords Ruining Just Another Nation. Or something like that, anyway.
23:48:05 <slereah__> Well, I for one welcome I supreme evil overlords.
23:48:40 <ihope> Hello, International Of-Pancakes Experts!
23:51:53 -!- es0n00b has joined.
23:53:07 <Sgeo> Hello esotericnewbie
23:53:53 <oerjan> Will any backwards-in-time travellers in the channel please write "Hello, world!"
23:54:23 <es0n00b> (sorry, i just loves "Hello, world!" programs)
23:55:36 <es0n00b> i'm currently wrestling with the idea of Church numerals. I blame slerah_
23:55:53 <Sgeo> es0n00b, look at my latest commit?
23:57:22 <es0n00b> Sgeo> what you mean by "commit?"
23:57:37 <Sgeo> Just look at http://trac2.assembla.com/psox/changeset/65/trunk
23:58:18 <oerjan> slereah__: hah, imposter!
23:58:30 <es0n00b> Howdy ho slereah_. Hows your day?
23:58:37 <oerjan> you didn't write it _before_ my request like es0n00b did.
23:58:55 <slereah__> I think I got a cold or something.
23:59:15 <Sgeo> I think I'll work on the basics to make an Internet enabled BF program now
23:59:50 <oerjan> that's not time travel, just relativity.
00:00:11 <slereah__> It's not relativity. It's SCIENCE!
00:00:31 <slereah__> http://membres.lycos.fr/bewulf/Divers/LUR.jpg
00:05:14 <es0n00b> (sorry - got a phone call. brb)
00:06:02 <ihope> !daemon ecneics bf +[]
00:06:27 <ihope> !daemon ECNEICS bf +[]
00:08:14 <ihope> !daemon cat bf +[,.[-]+]
00:08:20 <ihope> !daemon message cat Hello, world!
00:08:45 <ihope> Now it'll never work again, of course.
00:09:13 <ihope> It didn't print it that time.
00:09:20 <Sgeo> Now to write a BF program that can go online
00:10:06 <es0n00b> what does Egobot do. BF interpreter??
00:10:25 -!- EgoBot has quit (Read error: 104 (Connection reset by peer)).
00:10:43 -!- EgoBot has joined.
00:10:54 <es0n00b> !daemon message cat Hello, world!
00:11:22 * Sgeo wonders if EgoBot will ever be able to do PSOX stuff
00:11:35 <oerjan> es0n00b: EgoBot got disconnected in the middle
00:12:05 <slereah__> Well, I don't go well with eager evaluation.
00:12:11 <es0n00b> !unlambda `.o`.l`.l.`e.`hi
00:12:29 <oerjan> !unlambda ````.b.u.t.ti
00:13:01 <es0n00b> !unlambda `````.h.e.l.l.oi
00:13:20 <es0n00b> i've go no idea how that works, but thats kind of cool
00:13:48 <slereah__> It evaluates the innermost first expression.
00:13:53 <ihope> !unlambda `.d`.t`.c`.u`.b`````.o.f.s.a.ei
00:13:56 <es0n00b> does unlamba have anything to do with mu-recursion
00:14:16 <slereah__> Well, there's an isomorphism between the two.
00:14:16 <ihope> What's mu-recursion?
00:14:20 <es0n00b> the discussion last night this slereah_ has really got me thinking
00:14:46 <ihope> !unlambda `.d`.e`.t`.a`.c`````.o.b.f.u.si
00:14:54 <es0n00b> like, can you do math using unlambda
00:14:59 <ihope> Though now it's not as obfuscated.
00:15:10 <ihope> Unlambda's Turing-complete, all right.
00:16:30 <es0n00b> sleraeh_> that language we talked about last night, what was it called (where (^f.f)a=a)?
00:17:07 <oerjan> es0n00b: there is an easy encoding of lambda calculus into unlambda (apart from minor details of execution order)
00:17:11 <slereah__> Really, Star Trek 2 needed that lines.
00:17:14 <es0n00b> ahh - thats right. im getting lamda, mu church numerals, all these ideas confused right now
00:17:21 <ihope> Is KHAAAAAAAAAAN! the new jinx?
00:17:21 * Sgeo works on the first ever Internet enabled Brainfuck program
00:17:55 <es0n00b> lambda calculus can only work on numbers right. or can it work on strings
00:17:59 -!- pikhq has quit (Read error: 104 (Connection reset by peer)).
00:18:09 <es0n00b> ie: does lambda calculus have a "Hello, world!"?
00:18:20 <oerjan> es0n00b: lambda calculus per se has nothing to do with either numbers or strings
00:18:33 <oerjan> you just can encode anything in it
00:18:34 -!- helios24 has quit ("Leaving").
00:18:39 <slereah__> Well, lambda calculus itself can't print anything.
00:18:42 -!- pikhq has joined.
00:18:47 <slereah__> But you can implement side effects and such
00:19:02 <ihope> Side effects, ugh. :-)
00:19:05 <es0n00b> thats what i thought. pass a string as a long hexdec number, process, then return a hexdec number, convert back to a string
00:19:18 <ihope> That's roughly what Lazy K does.
00:19:37 <slereah__> I'm cool with side effects though.
00:19:49 <ihope> Is there actually a computable bijection between lambda calculus expressions and SKI calculus expressions mapping each expression to an equivalent one?
00:19:53 <slereah__> Lazy K can only do input -> output IIRC
00:20:10 <slereah__> ihope: Well, use abstraction reduction.
00:20:12 <es0n00b> was trying to think how you could input a string, and output the string in reverse (ie "hello"->"olleh")
00:20:58 <oerjan> ihope: well you have mappings in each direction, which may not be bijective
00:21:00 <es0n00b> <slereah__> what is *elimination
00:21:43 <oerjan> but if you make them injective i think you can apply scrφder-bernstein to fix it up
00:21:46 <es0n00b> <slereah__> Abstraction elimination does what??
00:22:00 <slereah__> It converts lambda expressions in SKI combinators.
00:22:12 -!- timotiis has quit ("leaving").
00:23:19 <oerjan> although you might need to be clever to make it computable. hm.
00:24:26 <oerjan> (or to prove that it already is.)
00:27:20 <lament> es0n00b: the more you address people by surrounding their nick in less-than/greater-than marks, the more people will think that you're quoting what they had said previously
00:27:53 <slereah__> You usually only need to type four keys for name quoting!
00:28:23 <lament> es0n00b: you may notice that I address you by appending a colon to your nickname, but what actually happens is i type es and press Tab
00:29:06 <es0n00b> sorry - using web based client that doesnt have ways to do that
00:30:09 <es0n00b> ok - wife wants me to start doing house work. still have a lot of questions (as usual), but I'll get back later (probably another 12 hours)
00:30:46 -!- es0n00b has quit ("JWIRC applet").
00:41:47 -!- Corun has joined.
01:01:17 -!- ehird` has quit ("K-Lined by peer").
01:40:36 -!- slereah__ has changed nick to slereah_.
01:40:37 -!- slereah_ has changed nick to Slereah.
02:07:11 -!- Corun has quit ("Alone?").
02:43:43 <Sgeo> Ok, why is my program not working?
02:46:32 <pikhq> And what should it be doing?
02:46:59 <Sgeo> RodgerTheGreat, Brainfuck
02:47:38 <Sgeo> And I'm trying to pull from input and send to output except for the null I'll receive
02:49:13 <Sgeo> I think it's sending it correctly, but the program doesn't continue
02:52:00 <Sgeo> Maybe I'm not sending a 0x0A correctly
02:52:45 <pikhq> Is there any guarantee that the next cell is not 0?
03:00:31 <Sgeo> What's with the next cell?
03:02:02 -!- olsner has joined.
03:04:11 -!- pikhq has quit ("New kernel. Wheee.").
03:10:28 <Sgeo> Ok, almost there
03:14:49 <Sgeo> Yay the first ever Internet-aware BF program!
03:17:22 <Sgeo> .+++++++.>+.<+++.>-..<.,,,[-].+.-.++++++++++.>.<--.>.,+[,.]++.>[-]+++++++++++++++++.<++.>-------.>[-]+[[-].+..+++++++++.,,,.]++.-.-.++++++++++.
03:17:44 <Sgeo> ^^that program is Internet-aware under PSOX
03:19:04 -!- pikhq has joined.
03:19:17 <Sgeo> .+++++++.>+.<+++.>-..<.,,,[-].+.-.++++++++++.>.<--.>.,+[,.]++.>[-]+++++++++++++++++.<++.>-------.>[-]+[[-].+..+++++++++.,,,.]++.-.-.++++++++++.
03:24:54 <Sgeo> pikhq, if you want to try an Internet-aware BF application, get the latest PSOX from SVN and run:
03:25:03 <Sgeo> python PSOX.py bf online.b
03:25:22 <Sgeo> Then after the version information is printed, write something like:
03:25:26 <Sgeo> http://example.com
03:25:29 <Sgeo> and press Enter
03:26:19 <Sgeo> http://trac2.assembla.com/psox/browser/trunk/impl/online.b
03:26:49 <Sgeo> pikhq, going to try it?
03:27:00 <pikhq> Tomorrow, absolutely.
03:27:21 <pikhq> Tonight, I'm just doing a hell of a lot of nothing.
03:29:38 -!- oerjan has quit ("Good night").
03:30:10 <Sgeo> RodgerTheGreat, going to try it?
03:56:59 <Sgeo> In theory, a chat server can be made with a chat client written in BF
03:57:03 <Sgeo> Anyone want to do it?
04:02:22 -!- Sukoshi` has joined.
04:04:11 <pikhq> My question remains: where have you been the past several months?
04:04:43 <Sukoshi`> I have a life to deal with. And when I part this channel, I'll have a life to go back to :P
04:05:23 <pikhq> Who needs a life when there's PSOX and PEBBLE 2 to discuss?
04:06:11 <Sgeo> Yay pikhq indicated e cared about PSOX!
04:06:23 * Sgeo has PSOX on hilight
04:06:35 <pikhq> Sgeo: Well, of course I care. I just don't have the time to do major development ATM.
04:06:55 <pikhq> AP Japanese takes a good chunk out of your schedule when you actually want to do well in the class.
04:07:11 <Sukoshi`> The test looked really easy last time I checked.
04:07:17 <Sukoshi`> Maybe I'll take it for the heck of it this year.
04:07:24 <pikhq> Sukoshi`: Keep in mind that I've barely studied for the past 3 years.
04:07:36 <pikhq> And had a horrible, horrible teacher for 2 of them.
04:07:38 <Sukoshi`> I've graduated to reading short novels routinely.
04:07:49 <pikhq> (a weeks worth of studying would cover those 2 years.
04:07:55 <Sukoshi`> So I've reached that self-sustaining level where I can read for fun to keep up my skills.
04:08:08 <pikhq> I'm quite jealous.
04:08:16 <pikhq> ATM, I'm just now learning the 3rd-grade kanji. . .
04:08:27 * Sgeo is not a linguistic person
04:08:39 <pikhq> Perhaps it's easy for you, but, frankly, I'm way behind where I should be.
04:09:05 <pikhq> *That*, I'm quite a bit better at.
04:09:18 <Sukoshi`> Well, give me a definition of "better" :)
04:09:32 <Sukoshi`> I'm assuming you can deal with just about any conjugation found in manga?
04:09:46 <pikhq> I believe so, yes.
04:10:10 <pikhq> (I'd really like to pick up keigo a bit, though. . . That looks interesting, moderately difficult, yet worthwhile)
04:10:14 <Sukoshi`> Ah. I was going to give you a link to a grammar book, but you're past it then.
04:10:33 <Sukoshi`> Keigo is a lot lot lot lot lot (repeat as necessary) easier than most people make it out to be.
04:10:47 <Sukoshi`> Especially because your average Japanese writing uses a whole 20 Keigo verbs.
04:11:00 <Sukoshi`> ... Which are all as regular as their non-Keigo forms.
04:11:07 -!- Sgeo has changed nick to Keigo.
04:11:16 <pikhq> Sgeo: Formal Japanese.
04:12:03 <pikhq> Sukoshi`: Easy summary, at least. ;)
04:12:10 <Keigo> I know someone who's quite good at Japanese
04:12:15 <Sukoshi`> Even Keigo nouns are not very difficult. Military terms are where I'm starting to stick.
04:12:42 <pikhq> Kanji are what's really screwing me up.
04:12:49 <Sukoshi`> I've started picking up Russian now because Japanese doesen't need the same time from me anymore that I gave it.
04:13:04 <pikhq> My vocabulary is decent, although it'd be better if I did know a lot more kanji. . .
04:13:04 <Sukoshi`> But I'm pretty sure I'll stop with the language acquisition after Russian.
04:13:12 <Sukoshi`> Are you learning Kanji independently?
04:13:17 -!- bd_ has joined.
04:13:25 -!- Keigo has changed nick to Sgeo.
04:14:01 <bd_> nihongo to kiite(ry
04:14:51 <bd_> Sgeo invited me in saying something about a discussion about japanese or something >.>
04:14:55 <Sukoshi`> pikhq: I meant, independently from vocabulary.
04:15:09 <Sukoshi`> ζ₯ζ¬θͺγεγγγΎγγγ
04:15:37 <bd_> γγγγγΎγ£γγεγγγΎγγγγ
04:16:10 <bd_> εθ©±γ¨γγγγ¦γη§γ―ε
¨ηΆεγγγͺγγγ§γεεΏγγ
04:17:05 <Sukoshi`> θͺεγγζ₯ζ¬θͺγ§θ
γγγθ
γγγγ°ζ³£γγΎγγγγ
04:17:17 <pikhq> Sadly, my Unicode is not working ATM.
04:17:32 <pikhq> (I recently did a Gentoo reinstall, and have not gotten IME and such working again)
04:17:33 <Sgeo> I see it, but speak not a shred of Japanese
04:18:44 <bd_> Sukoshi`: γγγ£γγγγͺγγγθͺεγγζ₯ζ¬θͺγ«θ
γγγθ
γγγ¦γζιγ γ¨ζγγγ©γγγγ«ε
¨ηΆεγγγͺγγγ
04:19:35 <Sukoshi`> γγγ«γγ¦γγγγγγ€γΎγγͺγθ©±γ§γγγ
04:19:57 <Sukoshi`> θͺε·±η΄Ήδ»γγΎγγη§γ―γSukoshiγγ¨γγγγΎγγ
04:20:43 <Sukoshi`> οΌεΉ΄εγ«θͺηΏγε§γΎγγΎγγ¦γγγγθ©±η¨εΊ¦γηΏεΎγγΎγγγ
04:21:16 <Sukoshi`> γγγγγγι‘γγγΎγγ
04:22:11 <bd_> η§γ―γbd_γγ¨η³γγΎγγεεΌ·γε§γγγγ―γ»γ»γ»γΎγζεγ―γγγΎγηι’ηγγγͺγγ£γγγ§γγθ¦γγ¦γγΎγγγγγγΆγοΌεΉ΄εγ γ£γγ¨ζγγΎγγγγγγγι‘γγγΎγ
04:22:48 <Sukoshi`> Esolangγγγ¨γ§θε³γγγγ§γγγ
04:23:31 <bd_> γγγ»γ»γ»γͺγγγγγγ¨γγη¨εΊ¦γ§γγοΌη¬
04:23:32 * pikhq woul really love to be up to reading short novels. . .
04:23:49 <pikhq> For that, I plan on actually (gasp) studying Japanese after high school.
04:24:51 <Sukoshi`> I transitioned from the manga/doujin level to the short novel level by immersing myself into a novel with notes.
04:24:59 <Sgeo> What are bd_ and Sukoshi` discussing?
04:25:11 <Sukoshi`> I copied the notes (which were vocabulary and grammatical notes), made some of my own, and basically got up to speed that way.
04:25:35 <pikhq> Sgeo: No idea; my terminal can't, ATM, display Japanese.
04:25:49 <pikhq> Sukoshi`: The problem being that I'm not at the manga/doujin level.
04:26:01 <bd_> I just got a copy of ookami to kousinryou in today :) I'm not quite sure if I'm up to reading it yet (kanji orz) but it's about time I started weaning myself off furigana...
04:26:20 <Sukoshi`> ζ₯ζ¬θͺεεΌ·ζΉζ³γθ©±ι‘γγγγΎγγ
04:26:39 <bd_> η’Ίγγ«γγγΎγγοΌη¬
04:26:39 <Sukoshi`> Hm. I stopped relying on Furigana a while ago.
04:26:41 <Sgeo> Can either of Sukoshi` or bd_ explain what you two are talking about, in ENGLISH please?
04:26:50 <Sgeo> And what's furigana
04:26:53 <bd_> Sukoshi`: well, I know how to do lookups... I just get lazy :)
04:27:06 <Sukoshi`> Heh. I don't even do the lookups :P
04:27:14 <Sukoshi`> (Too time consuming for the most part, and interrupt casual readings.)
04:27:33 <bd_> δΊεΉ΄ιγ§γ©γγ γγ
04:27:58 <bd_> though I know what you mean - sort of skip over and try to puzzle out what they meant?
04:28:03 <Sukoshi`> Most of the time it is one word or two, and I can pick up the *general* meaning in context. ι€ was one word which I inferred slightly off from the actual meaning when I looked it up later.
04:28:31 <bd_> depends on the material though
04:28:38 <Sukoshi`> γ©γγγγͺγζ₯ζ¬θͺγζζγͺθͺγγεΏ
ζ»γ«εεΌ·γγΎγγγͺγ
04:28:40 <bd_> ookami to kousinryou has a lot of economics stuff later on I think
04:29:00 <Sgeo> Am I going to get a response?
04:29:02 <Sukoshi`> I've read some stuff heavy on machinery/military, which is tough. But I haven't done much with economics and politics yet.
04:29:16 <Sukoshi`> Generally I tackle stuff like that electronically.
04:29:30 <bd_> Sgeo: well uh, it's sort of a random/self-introduction conversation thing
04:29:37 <Sukoshi`> Sgeo: Kanji lookups, because often-times Kanji have odd readings and act as certain words.
04:29:57 <Sukoshi`> And the way to look them up is cumbersome, so.
04:30:17 <bd_> I usually use pen input on a nintendo DS dictionary
04:30:22 <bd_> and if that fails, multiradical in wwwjdic
04:30:33 <Sgeo> Sukoshi`, people who speak fluent Japanese don't need to do these lookups?
04:30:47 <bd_> Sgeo: probably sometimes, there are a *lot* of kanji :)
04:30:55 <bd_> about 2000 is the level for /basic/ literacy
04:31:12 * Sgeo discovers a #japanese room
04:31:19 <bd_> and there are plenty more...
04:31:34 <bd_> and then you have fun things like name readings (nanori)
04:31:47 <Sukoshi`> My name readings are horrible.
04:31:52 <Sukoshi`> I really need to catch up on those.
04:32:06 <bd_> where any given set of name kanji has multiple readings, and any given spoken name has multiple possible kanji associated with it, and if you're not told what is what :|
04:32:15 <pikhq> My name readings are *nonexistent*.
04:33:12 <Sukoshi`> Come on. Can't you read δΈζ¬
04:33:31 <pikhq> No, but that's because my terminal can't display Unicode ATM.
04:33:39 <pikhq> I can't read question marks. :p
04:34:30 <pikhq> Those would be the *easy* ones. ;)
04:35:38 <Sgeo> "Konichiwa" is the extent of my knowledge of Japanese-anything, and I'm scared that even that might be wrong/idiotic
04:35:49 <bd_> kon'nichiwa
04:37:08 <Sukoshi`> I didn't for the first 6 months either.
04:37:34 <pikhq> Sukoshi`: For demonstration of how badly my first Japanese teacher sucked: he did not teach kana until 2nd year.
04:38:37 <pikhq> I self-taught kana first year.
04:39:01 <Sukoshi`> I'm aware that my school's Japanese program is one of the best, and I considered it haplessly slow.
04:39:23 <Sukoshi`> While I never took it, I have become the lofty "Japanese expert" of the school.
04:40:21 <pikhq> The lofty 'Japanese expert' of my school is a Japanese citizen.
04:40:54 <pikhq> Works out a bit better that way. ;)
04:40:59 * Sgeo was the lofty computer expert at his HS
04:41:08 * Sgeo wants to be that lofty expert in college
04:41:19 <Sukoshi`> And the lofty electricity/Physics expert.
04:41:20 <pikhq> In college, it sure as fuck won't be mine.
04:41:34 <pikhq> Not in a school with a damned good CS program. ;p
04:41:37 <Sukoshi`> College is coming up soon, and I intend to be the best there, so :)
04:41:49 <Sukoshi`> I'm lucky I have a day like today to catch my breath from the life stuff.
04:41:50 <Sgeo> pikhq, what college?
04:41:54 <pikhq> Summer job at Tuft's, then college.
04:42:07 <pikhq> Sgeo: Missouri University of Science & Technology.
04:42:16 <Sukoshi`> How come you didn't apply to CMU?
04:42:22 <Sgeo> Is SUNY Farmingdale considered to be good?
04:42:57 <Sukoshi`> Stanford and MIT are there too, but MIT is way up there.
04:43:07 <pikhq> If they chuck out your application with an 'F' on the transcript, then I'm screwed.
04:43:10 <Sgeo> Is SUNY Farmingdale's stuff good?
04:43:51 <Sukoshi`> Princeton is always nice if you're a science geek, and nice on the pocket book too.
04:44:04 <Sgeo> Is anyone going to answer me?
04:44:06 <Sukoshi`> And for the revolutionarily inclined there's Berkeley (or if you want to be an anarchist hobo and waste your life).
04:44:14 <Sukoshi`> Sgeo: I've never heard of Farmingdale.
04:44:26 <Sgeo> And if not, what's a good place in Long Island?
04:45:09 <Sukoshi`> Rice isn't as good as CMU, but is there. As is Urbana Champaign.
04:45:21 <pikhq> $47,375 is light on the pocket book?
04:45:35 <Sukoshi`> Princeton has one of the most hefty fees, IIRC.
04:46:00 <Sukoshi`> Berkeley is fairly light on the pocketbook, especially if you're a Californian resident.
04:46:01 <pikhq> I was about to say, 'how many millions are you worth?'
04:46:34 <Sukoshi`> Well, it's still a lot lighter than others.
04:46:52 <Sukoshi`> Especially with the prestige/skill of their CS program.
04:46:57 <Sukoshi`> Their EECS is godly, of course.
04:49:50 * pikhq will be dual-majoring in math and CS. . .
04:50:11 <Sukoshi`> I'll probably be doing an EECS with some Law somewhere.
04:50:22 <Sukoshi`> Gah. I wish the gain on my Loop Antenna wasn't so high sometimes.
04:51:02 <Sgeo> Is SUNY Farmingdale a good CIS program or not?
04:51:13 <Sukoshi`> I've never heard of Farmingdale.
04:51:23 <pikhq> Have you heard of MST?
04:52:00 <pikhq> Missouri University of Science and Technology. I'm guessing that's a 'No.'
04:52:31 <Sukoshi`> Haven't heard much though. And they tried to rabidly contact me, I think.
04:52:49 <pikhq> That's the big problem with them. . .
04:52:55 <Sukoshi`> Along with Southern Methodist University, and that horribly annoying Fordham that would not quit.
04:53:03 <pikhq> They seem to overdo the contacting thing.
04:53:06 <Sukoshi`> And a few others contacted me too.
04:53:09 <pikhq> I've gotten 5 applications from them. . .
04:53:16 <pikhq> 4 I received after I was accepted.
04:53:38 <Sukoshi`> Fordham extended their application for me 5 times, while filling out all my information, and waiving the application fee.
04:53:56 <Sukoshi`> Extended meaning extended the apply date.
04:54:04 <Sukoshi`> Ugh. I don't want to go to Fordham. So, why.
04:54:21 <pikhq> I'm quite happy with MST. . .
04:54:31 <pikhq> Although I need to get *off* their contact list. XD
04:54:35 <Sukoshi`> NYU waived the application fee too, I believe, but NYU is an arts campus.
04:54:51 <pikhq> I've had teachers suggest that I go to Tuft's. . .
04:55:30 <pikhq> A well-reputed liberal arts college, IIRC.
04:55:41 <Sukoshi`> Princeton is great in the arts, law, and sciences.
04:56:35 <pikhq> Just imagine me at a liberal arts school. . .
04:56:53 <pikhq> Granted, my long hair and beard would make me *look* like I belong. . .
04:57:07 <Sukoshi`> I am the stereotypical female science nerd.
04:57:17 <Sukoshi`> And I am bored by non-Law art, so.
04:57:18 <pikhq> But their CS department sucks horribly.
04:57:53 <pikhq> (MST's, on the other hand, is quite awesome, and has existed for 50 years, IIRC.)
04:57:57 <Sukoshi`> NYU has a fairly good science program, but, it's known to be the MIT of Arts.
04:58:50 <pikhq> Of course, if you don't like a school in the middle of nowhere, then MST is not for you. . . (why do schools of mines need to be in the middle of nowhere? :p)
04:59:05 <Sukoshi`> Meh. Colorado School of Mines contacted me also.
04:59:28 <pikhq> And CSM would actually be a sane choice for me. . .
04:59:40 <pikhq> It's about half an hour away. :p
04:59:46 <pikhq> No, a bit more than that. . .
04:59:46 <Sukoshi`> For me it was a quick chuck down the recycle bin.
05:00:06 <pikhq> But that's more of the low-level, 'If I don't get accepted anywhere else' thing.
05:00:16 <Sukoshi`> My low level is OSU, because my dad went there.
05:00:26 <pikhq> (although it's quite amusing seeing my teachers' high level of regard for that school)
05:00:39 <Sukoshi`> Washington didn't even have admission essays, meh.
05:01:03 <pikhq> Granted, it is the best school in the state. . .
05:02:11 <Sukoshi`> I think Caltech or Princeton would be ideal for me, but both are OMG-HOLY-MACKEREL schools.
05:02:37 <pikhq> That's where I put MIT at. . .
05:02:42 <Sukoshi`> Caltech has a dash of Pol. Sci, and Princeton's law is of course excellent.
05:02:46 <pikhq> And I could *not* get into MIT.
05:02:58 <Sukoshi`> I might get into Caltech or Princeton.
05:03:04 <pikhq> (they'd throw away my application after seeing my transcript, guaranteed.)
05:03:20 <Sukoshi`> I actually got an interview from a school in that tier whose name I will not share for luck reasons.
05:03:25 <Sukoshi`> So I'm in the running, I think.
05:03:51 <pikhq> Best of luck to you.
05:04:18 <Sukoshi`> Only if some guy got a shot of unintended Extasy (? the drug ?) would I get in.
05:04:37 <Sukoshi`> Stanford was my ZETTAI-UNATTAINABLE.
05:05:25 <Sukoshi`> So, what've you been up to pikhq ?
05:06:43 <Sukoshi`> My life involved 7 months of studying for one exam, and now it involves running an anime convention committee, self-studying Linear Algebra/Multivariable Calculus, some light hacking, politics, and languages among other things. I'm also trying to get into some video games, but am realizing what 5 years of video game disuse does.
05:07:37 <pikhq> Studying Japanese, studying calculus, and some light hacking.
05:07:53 <pikhq> And I forgot to mention a new-found devotion to the game of Nomic.
05:08:08 <Sukoshi`> Nomic, I started a game with some friends over that.
05:08:10 <pikhq> You familiar with it?
05:08:31 <pikhq> I'm a player in Agora, which is the longest-running Nomic in existence.
05:09:14 <Sukoshi`> Oh and also, I'm planning a Senior prank which involves infiltration of the school gradebook and school website. (Some local public school in the area chock full of high-income students got the title "academic powerhouse" after they attempted to crack the school website for finals answers. I resent that just because we have a low income, we are discriminated against.)
05:09:16 <pikhq> The 15th Agoran birthday is this June.
05:09:39 <Sukoshi`> The gradebook is already infiltrated. The website is in the works, and I'm in the process of doing some infiltration into the school network.
05:09:45 -!- RodgerTheGreat has quit.
05:10:19 <pikhq> You going to become a regular again if/when your life settles down a bit more?
05:10:26 <Sukoshi`> Doesen't help that they have completely publicized a Cisco router.
05:10:46 <Sukoshi`> Of course, the gradebook is a private thing.
05:10:53 <pikhq> And they've got telnet access open to the world, I bet.
05:11:03 <Sukoshi`> But some creative cracking and some insider information got me in there.
05:11:11 <Sukoshi`> Nope. But they will have an nc backdoor soon :)
05:11:22 <Sukoshi`> Maybe I'll even run nc with telnet services :D
05:11:59 <Sukoshi`> The Cisco router is publicized locally rather. Sorry.
05:12:24 <Sukoshi`> Not an external publication. However, I'm thinking of proxying that out. This involves getting admin access to the machine which involves grabbing hashes.
05:12:38 <Sukoshi`> I've already done the social engineering needed to grab the hashes. The rest is time and circumspection.
05:12:58 <pikhq> Sounds like a poorly planned network.
05:13:13 <pikhq> My school's network would probably be trivial to shut down. . .
05:13:31 <pikhq> The damned thing has 10MB/s links all over the place.
05:13:32 <Sukoshi`> But actual content manipulation takes some skill.
05:13:48 <pikhq> A DOS would probably leave them down for ages.
05:13:50 <Sukoshi`> No public Wi-Fi anymore, so the limit is working with the bloody school mahines.
05:14:22 <pikhq> Ethernet ports are not hard to find.
05:14:32 <pikhq> They just kinda set the switches right next to the computers. . .
05:14:39 <Sukoshi`> Well, the librarians are right there.
05:14:59 <Sukoshi`> And I have no machine save this 8 year old desktop clunker with a 10-11 year old video card.
05:15:20 <pikhq> In the classrooms. . .
05:15:28 <pikhq> With teachers who don't pay attention. . .
05:16:47 <pikhq> Of course, I know a computer lab with the computers mismanaged. . .
05:16:56 <pikhq> Insert Knoppix and go.
05:17:03 <Sukoshi`> Plus school authorities/police prowl the outside. We're a low income school with the gang bit and all.
05:18:22 <Sukoshi`> I'm happy to report, we've had only 1 fatality :)
05:19:21 <Sukoshi`> I never knew the guy and I was a Freshman at the time, so.
05:20:47 <pikhq> The only fatalities at my school that I know of involved an apartment building burning down. . .
05:21:02 <Sukoshi`> We had a school building burn down too, but that was before my time.
05:21:05 <pikhq> Sucks, but not quite gang warfare.
05:21:40 <Sukoshi`> And since the school lies on the San Andreas fault-line (yay cheap land!) it got split in half during the '89 Earthquake.
05:22:59 -!- RodgerTheGreat has joined.
05:23:04 <Sukoshi`> Well other stuff have happened, but there's no point getting into it. It's just a consequence of being poor and living in a country ruled by free market hawkers.
05:24:19 <pikhq> Well, yeah, this country kinda sucks in that regard.
05:25:23 <Sukoshi`> I agree with Guiliani. Let's get rid of all the taxes we can.
05:25:43 <Sukoshi`> I mean, isn't what makes America great its independent spirit and non-government reliance? *rolls eyes*
05:26:31 <RodgerTheGreat> I think I've missed important parts of this conversation
05:28:30 <pikhq> In other news, I just got a first post on /.
05:30:52 <Sukoshi`> Since today's the first day of vacation, I have some off time, even though I've been putting off some council stuff.
05:33:08 <RodgerTheGreat> my last few months have been pretty busy, too- I've been making a lot of things.
05:33:33 <pikhq> I'm looking forward to this summer. . .
05:33:37 <pikhq> Ought to be less busy.
05:33:46 <Sukoshi`> I am too. I get to also join a Diff. Eqs. class :)
05:33:55 <Sukoshi`> Then I'll have all the math I need to start college with an EMW class.
05:34:04 <pikhq> At the very least, I won't end up getting homework from my system administration job. :p
05:34:21 <Sukoshi`> Also I plan to fan-translate a Japanese novel.
05:35:15 <Sukoshi`> I also have some $200 and am planning either to get a radio scanner or get into some Ham Radio.
05:35:52 <pikhq> I'll be up in Boston this summer. :)
05:35:55 <Sukoshi`> Or I may get an old PS2 and try to get back into the video games thing which I'm faleing at now.
05:35:57 <RodgerTheGreat> I finally finished that pokemon clone I was working on a while back: http://rodger.nonlogic.org/games/CRPG
05:36:12 <RodgerTheGreat> I'm working on cleaning it up a little and putting together an SDK
05:36:15 <pikhq> And my first job will actually be relevant to my career. Imagine that. ;p
05:36:29 <Sukoshi`> I intend to get some Japanese translation job.
05:36:35 <Sukoshi`> Sysadminning is fairly boring to me.
05:38:13 <RodgerTheGreat> look no further than pmhaddad, who now has no free time and is completely consumed by his $10-an-hour job.
05:38:36 <pikhq> This summer, I'll be making more than pmhaddad. XD
05:38:36 <RodgerTheGreat> 'Course, in a summer job you won't be compromising between work and school, which is what's really retarded about his situation
05:38:58 <pikhq> The job will be $15-an-hour.
05:39:06 <Sukoshi`> Whereas a translation job will probably be $12/hr, will consume not as much free time, and will be intellectually stimulating assuming you completely ignore the subject matter.
05:39:25 <Sukoshi`> I intend the translation job to go on while schooling.
05:39:42 <RodgerTheGreat> sounds like a fun way of making some cash with a hobby
05:39:54 <pikhq> I'd say that $15-an-hour for your first job is not exactly a bad deal, though.
05:40:16 <RodgerTheGreat> right now I'm working as a grader for "Object Oriented Design" at MTU, and I recently started doing undergrad research
05:40:19 <pikhq> Better than starting at $FASTFOOD at minimum wage.
05:40:38 <RodgerTheGreat> pikhq: yeah, my first job was $5.15, minimum wage at the time
05:40:52 <pikhq> RodgerTheGreat: That's still nation-wide minimum wage.
05:41:00 <pikhq> A few states set it higher.
05:41:02 <Sukoshi`> California's minimum wage is a good bit higher, but.
05:41:12 <pikhq> Colorado's is more like $6.50 now.
05:41:24 <pikhq> And only has been for a year or so. . .
05:41:29 <Sukoshi`> Translation is a skilled job. At a bare JLPT 1 mastery, not very skilled, but skilled enough to be decent.
05:41:41 <Sukoshi`> You're looking at ~$8.50 here.
05:41:44 <RodgerTheGreat> I make $7.50 per hour grading, and $8.00 doing research
05:43:07 <Sukoshi`> I've also been doing some cooking.
05:43:20 <Sukoshi`> Just in case my life ends in a horrible climax and I become a housewife (joke).
05:44:21 <Sukoshi`> Time to fidget with my too-high-gain loop antenna and hope to get a clear signal for the public TV station.
05:44:36 <RodgerTheGreat> I've been doing more comic art related stuff. Check out a short story I made a few weeks ago: http://rodger.nonlogic.org/images/Good/
05:44:59 <Sukoshi`> I occasionally have enough time to get good political/economic coverage from it.
05:45:00 <pikhq> That time can be better spent reading.
05:45:24 <Sukoshi`> And of course, the history specials on PBS are always fun.
05:45:43 <Sukoshi`> And then there's local news, which I eat dinner to...
05:46:01 <RodgerTheGreat> Mythbusters is still pretty awesome, when I get a chance to catch an episode
05:46:03 <Sukoshi`> If I'm fidgeting with an antenna, what sort of TV do you expect me to get? :D
05:46:05 <pikhq> I actually read when I eat. XD
05:46:46 <Sukoshi`> In the morning it's almost crystal clear, at night it's not as nice, but still clearer than a dipole ... if you can handle the high gain.
06:02:17 -!- Sgeo has quit (Read error: 110 (Connection timed out)).
06:28:09 <RodgerTheGreat> Sukoshi`: so, did you take a look at "define your good"?
06:44:05 -!- es0n00b has joined.
06:44:49 <EgoBot> help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon
06:44:51 <EgoBot> 1l 2l adjust axo bch bf{8,[16],32,64} funge93 fyb fybs glass glypho kipple lambda lazyk linguine malbolge pbrain qbf rail rhotor sadol sceql trigger udage01 unlambda whirl
07:02:32 <es0n00b> !glass {M[m(_s)S!(_o)0O!o.<34>(_s)(ns).?"{M[m(_s)S!(_o)0O!o.<34>(_s)(ns).?""14?24?14?24?24?04?24?04?]}"14?24?14?24?24?04?24?04?]}
07:02:35 <EgoBot> {M[m(_s)S!(_o)0O!o.<34>(_s)(ns).?"{M[m(_s)S!(_o)0O!o.<34>(_s)(ns).?""14?24?14?24?24?04?24?04?]}"14?24?14?24?24?04?24?04?]}
07:03:02 <es0n00b> !glass {M[m(_o)O!"Hello World!"(_o)o.?]}
07:07:35 <es0n00b> !linguini 1[0=72,0$,0+29,0$,0+7,0$,0$,0+3,0$,1=32,1$,0-24,0$,0+24,0$,0+3,0$,0-6,0$,0-8,0$,1+1,1$,1-23,1$]0
07:08:00 <es0n00b> !linguine 1[0=72,0$,0+29,0$,0+7,0$,0$,0+3,0$,1=32,1$,0-24,0$,0+24,0$,0+3,0$,0-6,0$,0-8,0$,1+1,1$,1-23,1$]0
07:08:57 <EgoBot> help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon
07:08:59 <EgoBot> 1l 2l adjust axo bch bf{8,[16],32,64} funge93 fyb fybs glass glypho kipple lambda lazyk linguine malbolge pbrain qbf rail rhotor sadol sceql trigger udage01 unlambda whirl
07:28:31 -!- es0n00b has quit (Read error: 104 (Connection reset by peer)).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
10:13:28 -!- timotiis has joined.
10:18:26 -!- sebbu has quit (Read error: 60 (Operation timed out)).
10:29:20 <oklopol> Sukoshi`: weebees to you, milady
10:31:22 -!- sebbu has joined.
10:35:36 -!- es0n00b has joined.
10:41:11 -!- timotiis has quit (Remote closed the connection).
10:43:49 -!- Sukoshi` has left (?).
10:53:58 -!- timotiis has joined.
11:43:36 -!- jix has joined.
11:51:11 -!- helios24 has joined.
12:37:48 -!- helios24 has quit ("Leaving").
12:56:33 -!- helios24 has joined.
13:17:02 -!- helios24 has quit ("Leaving").
13:35:56 -!- helios24 has joined.
13:47:52 -!- oerjan has joined.
13:51:55 -!- RedDak has joined.
13:56:04 -!- helios24 has quit ("Leaving").
14:06:02 -!- ihope has quit ("ChatZilla 0.9.80 [Firefox 2.0.0.12/2008020121]").
14:07:14 -!- RedDak has quit (Remote closed the connection).
14:38:56 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)).
14:39:00 -!- puzzlet has joined.
14:39:33 -!- helios24 has joined.
15:42:09 -!- oerjan has quit ("Lost terminal").
16:17:45 * Slereah has "American mathematical society translations : series 2, volume 29" :D
16:18:12 <Slereah> "On the definition of an algorithm", by A.N. Kolmogorov and V.A. Uspenskii
16:28:10 -!- es0n00b has quit (Read error: 131 (Connection reset by peer)).
16:52:01 -!- otesanek has joined.
16:55:15 -!- otesanek has left (?).
17:00:08 -!- puzzlet has quit (Remote closed the connection).
17:00:12 -!- puzzlet has joined.
17:24:33 -!- otesanek has joined.
17:53:24 -!- otesanek has quit (Read error: 104 (Connection reset by peer)).
18:26:04 -!- timotiis_ has joined.
18:26:19 -!- calamari has joined.
18:38:13 -!- timotiis has quit (Read error: 110 (Connection timed out)).
18:47:44 -!- ehird` has joined.
18:52:51 <RodgerTheGreat> faster and lighter weight, but some transcription errors and packet loss
18:53:53 -!- puzzlet has quit (Remote closed the connection).
18:54:02 -!- puzzlet has joined.
19:01:49 <ehird`> RodgerTheGreaWE)(UΒ£$I!!Β¬+_PACKET ERROR
19:03:10 <ehird`> pikhq: http://pastebin.ca/905230 what i wish tcl looked like
19:03:19 <ehird`> as an addition to that:
19:03:36 <ehird`> fn K {x} {fn {y} {return $x}} <-- would work
19:03:45 <ehird`> why can be seen trivially if you take a look
19:04:12 <ehird`> some of the examples are stupid
19:04:22 <pikhq> Fuck the 'call' part.
19:04:39 <pikhq> [fn {x {+ $x 1}}] 2
19:04:50 <ehird`> http://pastebin.ca/906473 update
19:05:07 <ehird`> pikhq: Well, everything's a string, so wouldn't that make it try and call the command of some weird string?
19:05:13 <ehird`> And wouldn't that require special handling of some stuff?
19:05:19 <pikhq> The return value of fn.
19:05:41 <ehird`> 'fn' could return the {{args} ...} syntax when used as a string,
19:05:47 <ehird`> but as a function -- ..
19:05:49 <pikhq> If you have first-class functions in Tcl, then functions would need to have a string representation.
19:06:04 <ehird`> pikhq: i just said -- they do
19:06:11 <ehird`> that doesn't account for lexical scope, though.
19:06:27 <pikhq> Why should it? Variables have scope, not values. ;)
19:06:35 <ehird`> http://pastebin.ca/906475 <-- doubly-updated
19:06:54 <ehird`> pikhq: because the idea is that the cacheing of otherly-typed values is just an interpreter feature, no?
19:07:09 <ehird`> http://pastebin.ca/906475 NEEDS to be interpreted -- and fat ;)
19:07:36 <pikhq> Which is how Tcl rolls. ;p
19:07:42 <ehird`> especially the shell style $num... for one thing, it means that the toplevel can have then as program arguments, fitting in well.. and as another, short functions generally can make use of them well
19:08:04 <pikhq> I don't much like the $0 and such, though.
19:08:18 <pikhq> But that's not a huge deal. . .
19:08:27 <pikhq> The revolutionary bit is the first-class functions. ;)
19:08:52 <ehird`> 1. it fits in with trivial CLI arg handling
19:08:56 <ehird`> 2. it's very useful for short functions
19:09:29 <pikhq> We already have trivial CLI arg handling. List of args. Big woop.
19:09:36 <ehird`> can you really argue the second is clearer in intent, if you know the $num syntax -- which can be explained in one sentence: "$n is the function's argument n."
19:09:42 <ehird`> pikhq: Stil, it's clearner.
19:09:51 <ehird`> It lets you imagine prog = function, basically.
19:10:02 <ehird`> Which, since shells follow that model, especially with user defined functions, is a correct one.
19:10:15 <ehird`> It's just 'another reason' for the sugar, with the other being as above
19:11:02 <pikhq> Every Tcl script is, in that since, just a function that takes args.
19:11:13 <pikhq> (args is how Tcl does variadic functions)
19:11:53 <ehird`> But you see my point, surely?
19:11:53 <ehird`> Expanding dbl into triple:
19:11:53 <ehird`> fn triple {+ $0 $0 $0}
19:11:55 <ehird`> fn triple {x} {+ $x $x $x}
19:12:29 <ehird`> 'Function triple, add first, first, first.'
19:12:29 <ehird`> 'Function triple, taking x, add x, x, x.'
19:13:38 <pikhq> Don't much like it, but even then, that's a simple change to Tcl, and if I don't like it, I don't have to use it.
19:13:58 <ehird`> pikhq: Now I come up with the idea "hey, an implementation couldn't be too hard! i mean, there's a simple Tcl in 500 lines..." and nothing ever actually happens.
19:14:40 <pikhq> Implement your ideas, submit it as a TIP for Tcl 9.
19:15:03 <ehird`> pikhq: But that's no fun
19:15:09 <ehird`> It's far more fun to write a new and revolutionary interpreter.
19:15:30 <ehird`> Hey, I could make Tk not ugly as all hell by default! Maybe even use native widgets on Win32&OS X. :P
19:16:58 <ehird`> Sorry, I know this for a fact :P
19:17:01 <pikhq> It does last time I tried it.
19:17:11 <ehird`> It looks like it does.
19:17:18 <ehird`> But the text widgets, for example, are most certainly not native
19:17:29 <pikhq> I know for *sure* that they did that in Tcl 8.5.
19:17:48 <ehird`> well, they did it suckily
19:18:06 <pikhq> What's needed is native widgets for X11 archs.
19:18:28 <ehird`> pikhq: Define 'native'.
19:18:40 <pikhq> Qt and GTK+, in addition to the current implementation.
19:18:42 <ehird`> Gtk? Some people use KDE. They want Qt. Oh, some people don't like either -- they want Motif, for chrissakes!
19:18:56 <ehird`> pikhq: I think something that looks passably good would be ok.
19:18:58 <pikhq> Tk right now imitates Motif.
19:19:04 <ehird`> As long as it's stylable you should be alright.
19:19:17 <ehird`> If i'm going to write my own implementation,
19:19:22 <pikhq> Well, if *that's* all you care about, Tcl 8.5 made Tk stylable.
19:19:24 <ehird`> I'll probably use wxWidgets as the backend.
19:19:35 <ehird`> wx is pretty good on all platforms.
19:19:51 <ehird`> Well, with OS X you have to do a few little tweaks to make its pinstripes slightly less fugly than they are by default..
19:20:11 <ehird`> pikhq: Qt would be terrible.
19:20:29 <ehird`> It would mean nobody could develop a Tk app using the Qt backend commercially without paying Trolltech crazy amounts of money.
19:20:52 <pikhq> But the only person that would complain would be Larry McVoy.
19:21:01 <ehird`> pikhq: I would sure complain.
19:21:05 <ehird`> It's the reason I don't use Qt. :(
19:21:13 <ehird`> Which is a shame -- Qt as an actual toolkit is *superb*
19:21:15 <pikhq> For your free software?
19:21:39 <ehird`> Same reason I don't use readline..
19:21:44 <pikhq> (keep in mind that you *can* sell free software. . .)
19:22:01 <pikhq> Out of immense curiosity, what crack are you smoking? :p
19:22:17 <ehird`> (If they want a GPL-alike, the LGPL is there for a REASON)
19:22:56 <pikhq> readline is GPL at the behest of RMS.
19:23:11 <pikhq> (the idea being to only reward free software with a library which, at the time, was unique)
19:23:29 <ehird`> pikhq: Yes, well RMS is crazy anyway.
19:23:49 <pikhq> Then why do you use his licenses?
19:24:19 <pikhq> Your CTCP version begs to differ.
19:24:34 <ehird`> pikhq: Sure, I only use X-Chat when I'm on Linux..
19:24:42 <pikhq> In fact, you are right now benefitting from 20 years of his work.
19:24:58 <ehird`> let's just forget about all the other people who did more work while he sat around yelilng
19:25:28 <RodgerTheGreat> haha- jesus christ: http://pouet.net/prod.php?which=4766
19:25:43 <ehird`> it is unfortunate that a lot of software is GPL, indeed, but if the software itself is good I am willing to use it.
19:25:43 <pikhq> I hope you won't mind uninstalling glibc?
19:26:01 <ehird`> However, libraries under the GPL without a linking exception (glibc has one of these, so stfu) are unacceptable.
19:26:08 <pikhq> Or everything else written by the GNU project?
19:26:21 <ehird`> pikhq: You do know that the GNU project != RMS?
19:26:30 <ehird`> I venture RMS's code makes a *very small part* of glibc today.
19:26:43 <pikhq> True enough; it's currently maintained by Red Hat.
19:27:06 <pikhq> Of course, if you like *Emacs*, you're going to be using his code fairly constantly.
19:27:11 <pikhq> (he is the Emacs maintainer)
19:27:23 <ehird`> exactly, he's head of it but does very little actual coding... (In case you accuse me of copying esr: he's even more of an idiot, and should take his own advice. And hopefully blow his own foot off... he does use C, there is a chance...)
19:27:40 <ehird`> pikhq: I like Emacs because I code Haskell and haskell-mode.el is the only real solution.
19:27:57 <ehird`> That's.. pretty much it. Also, because i have used it for a while I have some of the keycombos in muscle memory.
19:28:26 <ehird`> -- and rms sure didn't write haskell-mode
19:28:27 <pikhq> So, you're willing to call the man fucking crazy, yet benefit from his labors.
19:28:58 <pikhq> Nope. He just wrote the language haskell-mode is in.
19:29:38 <ehird`> pikhq: elisp is pretty shitty.
19:29:49 <ehird`> I'm sure he's crying of the hurt.
19:30:08 <pikhq> True. He *did* write it with the assumption that it would be running on systems too small to handle a full, decent lisp.
19:30:09 <ehird`> Anyway, it's just a matter of me not having written good haskell support for a decently licensed editor, yet.
19:30:20 <ehird`> pikhq: Because lexical scoping would kill them, with fire.
19:30:33 <pikhq> (it was designed with things like the 386 in mind)
19:30:56 <pikhq> Actually, less than the 386. . .
19:33:34 <ehird`> im pretty sure the 386 could handle a lexically scoped lisp
19:33:34 <ehird`> i'm pretty sure something even simpler could too
19:33:42 -!- Sgeo has joined.
19:33:44 <ehird`> doesn't help your argument much.
19:33:50 <ehird`> Scheme was out in the 70s
19:33:52 <ehird`> lisps before that had lexscoping, of course..
19:34:45 <ehird`> pikhq: Heck, LISP 1.5 had it.
19:34:56 <ehird`> Apparently FUNARG is complex and scary and could never work on any machine ever.
19:35:12 <Sgeo> Hi, anyone going to touch the Internet-aware BF program?
19:35:24 <ehird`> Sgeo: Not without a 10-foot pole
19:35:56 <Sgeo> \x00\x02\x03\x03pole\n
19:36:13 <Sgeo> \x00\x03\x00\n\n
19:37:01 <ehird`> Brainfuck with balanced <>s is concatenative
19:37:12 <Sgeo> "concatenative"?
19:38:34 <ehird`> Sgeo: ... Go read up on programming languages will you? ...
19:38:41 <ehird`> I'm scared of what PSOX will look like otherwise :P
19:38:49 <Sgeo> "will look like"?
19:40:24 <Sgeo> The core PSOX spec is basically complete
19:42:04 <oklopol> knowing what concatenativity is isn't really that crucial
19:43:48 <Sgeo> Also, PSOX isn't a programming language
19:47:56 <ehird`> it's just not turing complete
19:48:09 <ehird`> in which case it is still a programmin language
19:48:29 <Sgeo> How is it a programming language?
19:49:20 <ehird`> because there is an interpreter for it
19:49:29 <ehird`> and it performs actions like user input, output, etc
19:56:27 <oklopol> i think it's a matter of opinion
19:57:15 <oklopol> ummm.. actually, i don't think it is a programming language
19:57:52 <ehird`> oklopol: msot everything is a programming language
19:58:10 <ehird`> who wants to help me write a program that will do something intuitive when given http://pastebin.ca/906475? pikhq? :P
20:09:20 <Sgeo> pikhq, pleasewakeupnow
20:09:32 <Sgeo> [pikhq] idle 00:38:25, signon: Fri Feb 15 22:18:56
20:09:56 <Sgeo> RodgerTheGreat, ehird`, are you going to examine the Internet-enabled BF program?
20:11:05 <Sgeo> RodgerTheGreat?
20:15:42 -!- Tritonio_ has quit (Remote closed the connection).
20:19:49 -!- Tritonio_ has joined.
20:21:47 <ehird`> pikhq: pikhq: pikhq: ... eh. > cycle "pikhq: "
20:27:46 <pikhq> ehird`: PSOX isn't a programming language, it's an API.
20:28:00 <ehird`> pikhq: It is basically a language though.
20:28:08 <ehird`> pikhq: ANYWAY HELP ME WRITE INTERPRETER FOR AWESOMETHINGTHATLOOKSKINDOFLIKETCL
20:28:54 <pikhq> The Tcl maintainers may be more helpful than I am.
20:29:25 <ehird`> Bah. Tcl maintainers. A newwww interpreter must exist!
20:29:27 <Sgeo> pikhq, are you going to examine/play with that BF program?
20:29:54 <pikhq> Sgeo: Me need shower and cleaning.
20:29:58 <pikhq> But yes, later today.
20:47:00 <pikhq> Sgeo: So, online.b. . .
20:47:24 <pikhq> Is it basically netcat?
20:47:43 <Sgeo> Um, you're assuming I know what netcat is
20:47:59 <pikhq> And if so, how do you specify the port it's on?
20:48:15 <Sgeo> Well, not netcat
20:48:30 <pikhq> Fine. What port does it connect on?
20:48:32 <Sgeo> You put in a URL and it will print out whatever's at that URL
20:50:25 <Sgeo> Well, wget saves to disk, this just sends to stdout
20:50:33 <Sgeo> Trying it yourself?
20:51:19 <pikhq> Might I suggest sometime doing a bit of a more raw TCP interface?
20:51:40 <Sgeo> That could be a custom domain
20:52:05 <pikhq> I think it should be builtin.
20:52:18 <pikhq> Just like db_fileio.
20:52:46 <pikhq> Perhaps a "networking" domain?
20:53:08 <Sgeo> I think the other domains need to be worked on first
20:53:22 <Sgeo> Also, maybe I should limit the http domain to URLs beginning with http://
21:00:57 <pikhq> So, HTTP::get will create a new fd. . .
21:01:04 <pikhq> What number would that be assigned?
21:01:44 <Sgeo> The lowest available FD number
21:01:57 <Sgeo> That's always what new FDs are assigned
21:02:06 <Sgeo> FDs 0, 1, 2, and 3 are already taken
21:03:44 -!- helios24 has quit ("Leaving").
21:04:07 <Sgeo> 0 is the current outfile FD, 1 is the current infile FD, 2 is stdout, 3 is stdin
21:06:48 <Sgeo> pikhq, make sense?
21:10:49 -!- oerjan has joined.
21:12:34 -!- ihope has joined.
21:14:01 <ihope> It would be interesting to try to build a neurode out of electronic things.
21:20:49 <ihope> You might have a ground input, a voltage input, some input inputs, an output, and a feedback thingy.
21:21:33 <ihope> The feedback would be at the same voltage as the output, but putting current in and out of it would change what the output's "supposed to be".
21:31:55 <pikhq> I've got myself a much fancier wget script.
21:32:07 <pikhq> It pulls from the command line and won't break on outputting null.
21:35:03 <pikhq> http://pikhq.nonlogic.org/wget.b
21:36:12 <pikhq> BTW, a suggested change for PSOX.py. . .
21:36:27 <pikhq> Make it start with #!/usr/bin/python, and chmod +x.
21:36:40 <pikhq> Then, it's just ./PSOX.py egobfi8 foo.b
21:36:59 <pikhq> And that would let me install PSOX somewhere, and have my code start with a shebang. . .
21:37:02 <pikhq> And magically work.
21:43:38 <ihope> Not /usr/bin/env python?
21:43:49 <pikhq> Sgeo: thoughts on my very first PSOX script?
21:44:04 <ihope> Or `which python`. :-P
21:50:19 <pikhq> Next up: the Brainfuck Audio suite.
21:50:52 <pikhq> Actually, it'd be really nice if the command line handling was nicer than just -c "foo". . .
21:51:18 * Sgeo downloaded and tried the wget.b
21:51:19 <pikhq> So I could do ./PSOX.py egobfi8 bfaudio.b -i raw_audio -o foo.bf
21:51:22 <Sgeo> coolness pikhq
21:51:47 <Sgeo> pikhq, not sure how that would work
21:51:54 -!- helios24 has joined.
21:53:09 <Sgeo> For some reason though, the first time I tried wget.b, it didn't work
21:53:30 <Sgeo> wget.b is the first PSOX program made by someone other than me :D
21:55:12 <pikhq> Did you neglect to give it -c?
21:55:32 <Sgeo> I don't think so
21:55:38 <Sgeo> ehird`, pikhq did
21:55:51 <ehird`> he questioned about it before
21:55:54 <Sgeo> http://pikhq.nonlogic.org/wget.b
21:56:00 <pikhq> online.b is what Sgeo made.
21:56:17 <pikhq> I rewrote it to be better.
21:56:41 <pikhq> It takes the file to get from the command line, and its output routine works with NULLs.
21:56:45 <ehird`> psox is soooo pointless and ugly
21:56:52 <ehird`> brainfuck has been DONE TO DEATH alread
21:57:04 <Sgeo> ehird`, PSOX works with more than just BF
21:57:28 <pikhq> PSOX works with anything that does I/O.
21:57:37 <pikhq> You could, technically, do Malbolge with it.
21:57:57 <pikhq> You could *trivially* do shell with it. . . Or C. . .
21:58:11 <pikhq> Which remind me: I need to get my C-using PSOX library written this weekend. :p
21:58:40 <ehird`> Sgeo: nice argument too bad you always say 'Oh it's designed for BF!'
21:58:51 <ehird`> and it'll be crap with anything else
21:59:06 <pikhq> It's designed for most any esolang.
21:59:20 <pikhq> Although the math domain won't be as useful in some, like Glass.
22:00:31 <ehird`> pikhq: Wrong! Sgeo has claimed many times that he only thinks of BF.
22:00:37 <ehird`> Besides, there's no POINT for something like this...
22:00:45 <ehird`> Esolangs aren't any better because they can make a webserver.
22:01:19 <Sgeo> ehird`, I mostly think about BF, but that doesn't mean it's exclusively for BF
22:02:01 <Sgeo> ehird`, is there a point for any esolang?
22:02:34 * Sgeo wonders if maybe ehird` is bitter about the lack of TDATA (the "ANY" type)
22:03:41 <oklopol> Sgeo: that's most likely it :D
22:04:24 <Sgeo> TDATA was basically ehird`'s idea, and I liked it until it proved to be incompatible with decision to make PSOX types regex-based
22:04:53 <Sgeo> *with the decision
22:05:58 <oklopol> all i know is candy is the sine of a crayon
22:06:21 <Sgeo> ehird` pinged out in Sine
22:06:35 <Sgeo> (Sine is a network we're both on. I brought him over, actually)
22:07:21 <Sgeo> You know about Sine?
22:07:35 <Sgeo> msg me the server and port
22:08:14 <oklopol> i know everything about it i've heard in here.
22:08:32 <oklopol> that was a weird sentence, but it's most definitely true
22:11:57 -!- ehird`_ has joined.
22:12:30 -!- ehird` has quit (Read error: 113 (No route to host)).
22:13:05 <pikhq> But seriously, though: TCP domain.
22:13:32 <pikhq> 0x00 TCP CONNECT address port \n
22:13:58 <pikhq> And 0x00 TCP LISTEN port \n
22:23:47 -!- faxathisia has joined.
22:24:14 <ehird`_> pikhq: You won't help me write awesometclthing
22:24:32 <ehird`_> personally, implementing continuations would scare me
22:27:03 <ehird`_> pikhq: btw - i really like tcl's lists
22:27:09 <ehird`_> "a b c" is a list of a, b, c right?
22:27:53 <pikhq> Equivalent to [list a [list b c] d]
22:28:26 <ehird`_> pikhq: The "list ..." translates into the string not the other way around
22:31:07 <ehird`_> pikhq: Linked list, or array?
22:32:10 <pikhq> I don't know, actually.
22:32:40 <pikhq> Since I don't know of Tcl doing some of the fancier things a linked list lets you do, it could well be just an array.
22:33:15 <ehird`_> pikhq: Now help me implement awesomeclosureandlovetcl! :(
22:38:27 <ehird`_> Random tcl wiki person: "Also - it somehow strikes me again and again this whole concept is about reintroducing the evil goto statement, but kind of neat and nifty so noone would recognise. But this could be because I still might haven't grokked it yet..."
22:39:46 <pikhq> Continuations are not like goto.
22:40:14 <pikhq> Although one could argue that the infamous long_jmp is *like* a continuation. . .
22:41:11 <Sgeo> What's a long_jmp?
22:42:13 <pikhq> C's continuation-like thing.
22:42:43 <pikhq> Lets you jump across functions.
22:43:31 <ehird`_> pikhq: setjmp jusrt saves stack length
22:43:47 <ehird`_> if the stack goes down beyond setjmp --- nuh uh
22:44:11 <pikhq> ehird`_: It's not *perfectly* like continuations. . .
22:44:28 <pikhq> Among other things, it's a hell of a lot rougher and less, well, formal.
22:44:38 <pikhq> 'Lets just dick with the stack a bit. Yay!'
22:47:26 <ehird`_> pikhq: setjmp is equivalent to exceptions
22:47:37 <ehird`_> and exceptions are as related to continuations as to goto
22:48:11 <ehird`_> pikhq: btw -- i just realised that if we add closures etc to tcl, refcounting is not enough
22:48:21 <ehird`_> refcount + infrequently run gc
22:50:08 -!- helios24 has quit ("Leaving").
22:54:57 <ehird`_> pikhq: And also, anonymous 'fn's shouldn't return a random name (Jim does this) -- they should have no name
22:56:08 <ehird`_> pikhq: And the first thing written should be the parser. Agreed x50? :P
22:56:44 <Sgeo> ehird`_, is that a jab at me?
22:57:18 <Sgeo> At me writing PSOX specs first instead of immediately working on the interpreter
22:57:27 <ehird`_> And, the only thing the parser should do is the obvious token seperation, and making sure ", {, [ are balanced. Then, {...} should be converted to "...".
22:57:32 <ehird`_> Finally, it's seperated like this:
22:57:40 <ehird`_> foo {bar $xyz[abc]}"def" ->
22:57:45 <pikhq> ehird`_: Well, of course.
22:57:53 <ehird`_> foo, "bar $xyz[abc]", "def"
22:57:54 <pikhq> Tcl is fairly trivial to parse. ;)
22:58:01 <ehird`_> foo {bar $xyz[abc]{def}}"def" ->
22:58:04 <ehird`_> foo, "bar $xyz[abc]{def}", "def"
22:58:12 <pikhq> In Tcl proper, that's a syntax error.
22:58:42 <ehird`_> pikhq: i'm insure what that should be:
22:58:57 <ehird`_> 2. is shell, 3. is proglang, 1. is tcl :)
22:59:35 -!- Corun has joined.
23:00:21 -!- timotiis_ has changed nick to timotiis.
23:02:08 <ehird`_> None, apparently. pikhq is a zombie.
23:03:11 <Corun> Hence why he's a zombie.
23:03:11 <ehird`_> pikhq: So -- no preference?
23:11:19 <oerjan> faxathisia: missing = after otherwise
23:11:34 * oerjan throws a dagger after Mr. Wong
23:17:49 <ehird`_> pikhq: Now you are forced to name the interp. :P
23:19:55 -!- calamari has quit ("Leaving").
23:26:05 <ehird`_> pikhq: pikhq pikhq pikhq pikhq :D
23:31:02 -!- volimo has joined.
23:35:09 <ehird`_> http://swtch.com/42bsd-finger.c.txt can this really be what inspired the IOCCC? I mean, it's not NICE code, loads of magic constants and stuff, but ...
23:35:21 <oerjan> impossible. he is not saying "BRAINS. BRAINS."
23:36:46 <oerjan> i thought the IOCCC was inspired by cpp definitions making C look like ALGOL or something
23:37:30 * Sgeo sort of has a question regarding the future of PSOX
23:38:24 <Sgeo> ehird`_, maybe you can help? >.>
23:38:31 <ehird`_> oerjan: thats one of the inspirations
23:38:33 <Sgeo> Should I make the math functions just accept LNUMs?
23:38:41 <ehird`_> Sgeo: You should drop PSOX.
23:38:46 <ehird`_> (morale: don't ask my opinion)
23:39:01 <Sgeo> ehird`_, you did have an influence on PSOX
23:39:13 <oerjan> oh. "Larry had been trying to fix a bug in the classic Bourne shell (C code #defined to death to sort of look like Algol) and I had been working on the finger program from early BSD (a bug ridden finger implementation to be sure)."
23:39:22 <Sgeo> LBYTES are called LBYTES not LSTRING
23:39:38 <Sgeo> Same with FBYTES
23:39:51 <pikhq> LNUMs are just too complex for some cases.
23:40:16 <Sgeo> pikhq, you mean single bytes?
23:40:20 <ehird`_> Sgeo: Do you have proper unistrings yet?..
23:40:47 <ehird`_> Then, you can just replace all L/FBYTES with L/FSTRING, if you just hardcode english text in bf
23:40:59 <ehird`_> and still use L/FBYTES for, well, bytes
23:41:19 <Sgeo> pikhq, as far as I can tell, using LNUMs in that case would just be a bit of overhead
23:41:39 <ehird`_> pikhq: Any ideas for a name?
23:41:41 <Sgeo> It's either that, or make a function that switches the type that functions accept (difficult), or make repetitive functions (ugly)
23:42:01 <pikhq> Sgeo: Repetitive functions would not be that ugly as far as I'm concerned.
23:42:27 <Sgeo> And do you think I need a VARG(LNUM) version of each math function?
23:43:16 <Sgeo> (well, not subtraction or division obviously)
23:44:19 <ehird`_> Sgeo: Subtraction or division not varity? Why not?
23:45:07 <Sgeo> I suppose I can include VARG() subtraction and division for consistancy
23:45:59 <Sgeo> ehird`_, have you been studying the architecture of PSOX?
23:46:05 <ehird`_> faxathisia: Chicken scheme.
23:46:09 <ehird`_> Sgeo: No, it probably sucks.
23:46:20 <Sgeo> If not, how are you in a position to comment how easy/difficult it would be to make a switcher function?
23:46:42 <ehird`_> Sgeo: I was saying it hopefully, which would be correct if PSOX's architechture is sane.
23:46:58 <ehird`_> However, if you say it's difficult, that either means 'I don't know how to do it' or 'The architechture sucks so much that it's difficult'
23:47:14 <Sgeo> I think a minor architecture change would make it feasible
23:47:48 <ehird`_> faxathisia: Will YOU name my tcl-alike? :P
23:49:01 <ehird`_> I think pikhq might be the best choice here. :P
23:50:24 <Sgeo> ehird`_, I believe you once said something about making a Haskell version of PSOX?
23:50:57 <pikhq> The Power-Tool Language.
23:51:10 <pikhq> (after Tool-command language, and Tool-Kit, it's only fair. :p)
23:51:13 <ehird`_> pikhq: ptl -- pronounced 'pittle'. I like that, spelled a bit awkwardly, though.
23:51:50 <ehird`_> pikhq: I think the parser can be one file long. :P
23:52:10 <pikhq> Tcl's syntax *is* trivial.
23:52:35 <ehird`_> Most of it is done by eval, anyway :P
23:52:50 <ehird`_> pikhq: e.g. the only thing you do with [...] is make sure it doesn't split a token
23:53:10 <pikhq> Now, the {*} rule is probably the only tricky part.
23:53:16 <pikhq> One token into several.
23:53:50 <ehird`_> pikhq: I think with closures etc. {*} is unneeded
23:54:08 <faxathisia> Why do I have irrational dislike of TCL?
23:54:13 <Sgeo> What's the difference between ptl and tcl?
23:54:18 <ehird`_> faxathisia: Not sure. pikhq has made it sound quite nice.
23:54:27 <ehird`_> Good regexp support, the data type stuff actually seems useful..
23:54:38 <faxathisia> I saw some code that adds lambda to it.. that's kind of cool
23:54:38 <ehird`_> Not as elegant as a pure lisp maybe, but sounds nice... ptl - better!
23:54:55 <ehird`_> Sgeo: ptl has closures, real GC, lexical scoping, ...
23:55:03 <ehird`_> oh, and everything's first class (hopefully)
23:55:18 <ehird`_> pikhq: so I believe I can drop {*}. Correct?
23:55:29 -!- volimo has quit.
23:55:41 * Sgeo wonders if pikhq is opposed to any [eso]projects
23:55:48 <pikhq> ehird`_: I'm not sure if {*} is handled by closures.
23:56:00 <Sgeo> pikhq doesn't hate PSOX or ptl
23:56:02 <ehird`_> pikhq: i am admittedly quite fuzzy on what {*} actually does
23:56:08 <pikhq> How would you handle "+ {*}$list"?
23:56:10 <ehird`_> Sgeo: ptl is an esoproject since... when?
23:56:18 <ehird`_> pikhq: Ah, that's "+ with-args-of-$list"?
23:56:23 <ehird`_> And, does it only handle lists?
23:56:26 <Sgeo> ehird`_, since it began being discussed in #esoteric ?
23:56:29 <ehird`_> If so, then a *simple* version is:
23:56:37 <ehird`_> And I might add some kind of sugar ...
23:56:39 <pikhq> eval + $list, actually.
23:56:45 <pikhq> And {*} *is* the sugar.
23:56:58 <ehird`_> pikhq: Yes, but is the sugar used often enough for it to be worthwhile?
23:57:05 <ehird`_> Maybe in Tcl when emulating features that ptl will already have?
23:57:08 <pikhq> Yes; that's why it was added in Tcl 8.5
23:58:03 <pikhq> {*} expands a token into many tokens.
23:58:24 <ehird`_> pikhq: eval does it, though, right?
23:58:28 <ehird`_> Otherwise, $list wouldn't work.
23:58:40 <ehird`_> pikhq: Well, does any expansion take place?
23:59:01 <ehird`_> or is it just evaluated directly?
23:59:17 <pikhq> + 1 {*}$list 3 -> + 1 10 11 12 13 3
23:59:48 <Sgeo> pikhq, should I attempt to make a switching function, or are redundant functions ok?
23:59:51 <pikhq> http://wiki.tcl.tk/17158
23:59:56 <pikhq> Sgeo: Redundant functions.
00:00:17 <Sgeo> pikhq, are redundant functions better than a switcher, or merely "acceptable"?
00:01:46 <pikhq> Let's say I'm dealing with both chars and Lnums?
00:02:44 <ehird`_> pikhq: I think {*} is a crap name
00:03:08 <ehird`_> Because, that obscures the semantics of {...} i think.
00:04:04 <ehird`_> pikhq: Anyway, I can leave that out for now.
00:04:35 <ehird`_> pikhq: Now -- should parsing be on files/streams or strings?
00:04:39 <ehird`_> (Unicode strings, of course.)
00:04:56 <ehird`_> I think strings, because I mean all code using eval and uplevel and crap is going to involve parsing strings anyway.
00:05:03 <ehird`_> and wrapping a string in a file is a bad solution when it's so common.
00:05:09 <ehird`_> So: If parsing is fast and simple on strings..
00:07:51 <ehird`_> pikhq: Now, obviously (char *) is not a string.
00:08:25 <Sgeo> I guess you're not talking about PSOX STRINGs? </gratuitous-psox-reference>
00:08:26 <ehird`_> Do you suggest using available unicode routines (safer, but there generally aren't any decent ones sans glib's, and glib is big 'n bloated just for that...) or writing my own (probably broken, but small&fast)
00:08:33 <ehird`_> Sgeo: PSOX PSOX PSOX PSOX PSOX.
00:10:03 <ehird`_> pikhq: Well, one thing I hope we can agree on: Strings should be utf-8 internally. It's probably what you want to output, probably what you want to input (Assuming a platonically ideal world), so it's best to keep it utf-8 all the way through.
00:10:31 <pikhq> That's in Tcl, and so it must be in Ptl.
00:11:14 <ehird`_> pikhq: http://www.icu-project.org/ Hmm.
00:12:36 <ehird`_> Personally, I prefer UTF-8, but with such mature-looking libraries... what do you think?
00:13:12 <pikhq> Hell; if you've got mature libraries for UTF-16, why not?
00:13:17 <ehird`_> pikhq: I mean, a lot of code points fit into one value in utf-16, so maybe simple operations on them would be faster
00:13:23 <ehird`_> It's just all the conversion at both ends I'm worried about..
00:16:13 <ehird`_> Oh, and since we're clogging up #esoteric with non-esoterica: #ptl
00:17:22 <oerjan> has anyone else started getting logged out of wikipedia all the time?
00:23:17 -!- timotiis has quit ("leaving").
00:24:19 -!- ihope_ has joined.
00:28:02 -!- ihope__ has joined.
00:30:25 <Sgeo> What are the most common logic operations?
00:31:08 <faxathisia> Sgeo, I don't understand what you mean
00:31:16 <Sgeo> faxathisia, NOT, AND, OR, those kinds
00:31:30 <Sgeo> I'm putting NOT first, but what other ones are needed most?
00:31:43 <Sgeo> Maybe AND and OR?
00:31:46 <Sgeo> in that order?
00:32:23 <oerjan> for bit-twiddling XOR is also important
00:32:44 <Sgeo> oerjan, so should XOR go after OR?
00:33:30 <oklopol> it's the operation found in natural languages
00:34:32 <Sgeo> Should PSOX use the bitewise operators, or the boolean?
00:34:42 <Sgeo> Or should both be fit in?
00:35:13 <oklopol> well, the bitewise squingies can do boolean, but boolean operators are more quandriligious
00:35:38 <pikhq> I recommend both, myself.
00:35:51 <Sgeo> boolean AND, then bitwise AND
00:36:32 <oklopol> err... don't you have types?
00:36:49 <Sgeo> Not that type of types
00:41:06 -!- ihope has quit (Read error: 110 (Connection timed out)).
00:43:51 -!- jix has quit ("This computer has gone to sleep").
00:45:43 -!- ihope_ has quit (Read error: 110 (Connection timed out)).
00:50:03 <GregorR> Sgeo: Don't implement any others.
00:50:10 <GregorR> To implement others would be UTTERLY non-esoteric.
00:50:22 <Sgeo> GregorR, I don't want PSOX to be painful to use
00:50:59 -!- ihope__ has changed nick to iihop.
00:51:22 <iihop> Cool. I grew an extra i.
00:51:47 * oerjan politely doesn't mention what he lost
00:52:13 <oklopol> iihop: congratulations, now you have the normal amount.
00:52:57 <GregorR> iihop is the new IHOP restaurants sponsored by Apple.
00:53:10 -!- iihop has changed nick to iIHOP.
00:53:13 <iIHOP> Why didn't I think of that?
00:53:41 <Sgeo> Capitalization counts in XChat's nick coloration
00:55:55 <ehird`_> nobody sane uses nick coloration
00:56:42 <Sgeo> ehird`_, please do stop calling me insane
00:57:02 <Sgeo> Also, I don't think I should really include the VARG() variations
00:57:05 <oklopol> not that i take that as an insult, i'm fairly insane.
00:57:17 <oerjan> Sgeo: of course you are. must i search for the cheshire cat quote again?
00:57:23 <ehird`_> oklopol: it's very distracting! ;)
00:57:36 <Sgeo> cheshire cat quote?
00:58:07 <oklopol> well, it's fairly *ugly*, and most nick colorings always fail to distinguish the nicks that would most need distinguishing
00:58:29 <oerjan> "But I don't want to go among mad people," Alice remarked. "Oh, you can't help that," said the Cat: "We're all mad here. I'm mad. You're mad." "How do you know I'm mad?" said Alice. "You must be," said the Cat, "or you wouldn't have come here."
00:59:07 <pikhq> If you want nick coloring done right, base it upon the md5 sum of the name. :p
00:59:18 <Sgeo> I'm done implementing a good portion of domain4
00:59:33 <oklopol> pikhq: randomization is ok, but you can do better.
00:59:56 <Sgeo> Now it just needs documenting, and also warnings that e.g. conversions from a number to a string only work for certain bases..
00:59:57 <pikhq> Perhaps randomization + comparing to already-assigned colors?
01:00:30 <oklopol> plus weighing by nick lengths and hamming distance to existing nicks
01:03:32 <iIHOP> This is nick coloring: http://en.wikipedia.org/wiki/Self-organizing_map
01:05:05 <ehird`_> oklopol: No, inverse hamming distance.
01:05:17 <ehird`_> You want to tell apart "foodlepip" and "foodlepop" more than "sad" and "AifnAk"
01:05:36 <oklopol> ehird`_: i didn't specify the function, just that you need to take into account the hd,
01:06:19 -!- oklopol has changed nick to AifnAk.
01:06:36 <AifnAk> why didn't i invent it
01:08:44 <oerjan> i must warn you that it is a very naughty word in basque
01:17:04 -!- ehird` has joined.
01:17:13 -!- ehird`_ has quit (Read error: 113 (No route to host)).
01:17:41 <ehird`> I can't seem to join #ptl.
01:18:28 * Sgeo was able to join
01:19:56 -!- ehird` has changed nick to ehird.
01:21:17 * Sgeo accidentally gave ehird a wrong command as e left
01:48:04 <Sgeo> pikhq, http://trac2.assembla.com/psox/browser/trunk/spec/psox-utils.txt
01:50:58 <Sgeo> RodgerTheGreat?
01:52:23 <Sgeo> Comments on what I posted?
01:52:31 <Sgeo> http://trac2.assembla.com/psox/browser/trunk/spec/psox-utils.txt
01:58:59 <Sgeo> pikhq, any comments?
01:59:26 <Sgeo> Is anyone in here alive, for that matter?
02:01:24 <pikhq> Why does xor only take one arg?
02:01:25 <Sgeo> Are the arthmatic functions too high up in number?
02:01:51 <Sgeo> pikhq, that's because the documentation's wrong
02:01:58 <Sgeo> It's implemented correctly (I think)
02:03:20 <ehird> Sgeo: drop the boolean funcs
02:03:23 <ehird> you can use bitwise for them
02:03:43 <pikhq> Even a boolean not?
02:04:08 <Sgeo> hm, maybe drop booleans except for boolean not?
02:04:12 <ehird> pikhq: OK, good point
02:04:23 <ehird> But other bitwise ops like and, or... work fine when treating them as booleans
02:04:27 <Sgeo> and what about boolean XOR? Can that be done as bitwise?
02:04:32 <ehird> You just end up passing '54' to if(..), which isn't a problem
02:04:39 <ehird> Sgeo: Boolean XOR works fine as bitwise, I think
02:04:43 <ehird> Plus nobody uses boolean xor!!
02:05:38 * oerjan recalls -1 being true in Oric BASIC, so not worked equally well boolean and bitwise
02:05:57 <oerjan> or so i think. it's been a long while.
02:06:05 <ehird> -1 should be true.
02:06:21 <ehird> forth does that too
02:06:26 <ehird> the idea is that all bits are set
02:06:28 <ehird> i.e. it's 111111111111
02:07:57 <Sgeo> So do we have an issue with boolean XOR or not?
02:08:09 <Sgeo> http://trac2.assembla.com/psox/browser/trunk/spec/psox-utils.txt
02:14:19 <ehird> But he doesn't have ==
02:14:48 <oerjan> you cannot make it from bitwise operators
02:16:18 <ehird> τ SECOND LAST UNICODE CHARACTER τ
02:16:22 <ehird> How many of your clients broke there?
02:16:33 <ehird> τΏ½ WELL HOW ABOUT THIS ONE τΏ½
02:16:55 <oerjan> the question marks show up just fine, thank you ;)
02:17:05 -!- Corun has quit (Read error: 110 (Connection timed out)).
02:17:13 <oerjan> saved by being broken already :D
02:18:12 <Sgeo> So is there a problem with the only boolean being boolean NOT?
02:18:19 <ehird> Sgeo: Nope, no problem at all
02:19:08 <Sgeo> ehird, see, you had another piece of influence over PSOX. Because of you, I removed unnecessary boolean operators
02:19:32 <ehird> ok, ok, i am warming to it
02:20:12 <ehird> Sgeo: ok then.. how's this for an actually fun idea..
02:20:20 <ehird> and DON'T go implementing it, I want to
02:20:36 <ehird> ... omg, i can't handle the awesome
02:20:53 <ehird> graphical game of life, and graphical-console game of life!
02:20:56 <ehird> Heck, graphical mandelbrot!
02:21:08 <ehird> pikhq: Sgeo: All who think this idea is awesome, raise your hand
02:25:24 <ehird> pikhq: http://wiki.tcl.tk/15348 this is awesome
02:25:43 <Sgeo> ehird, maybe events can be done by checking an infile descriptor?
02:26:27 <ehird> Sgeo: Maybe. I'm thinking, though, that PSOX needs a way to send some code over the wire. :P
02:26:37 <ehird> That'd be kind of weird though.
02:26:39 <Sgeo> "over the wire"?
02:27:22 <ehird> But then you'd have to write BF code to output a program
02:27:35 <ehird> But an infile sounds about right.
02:27:40 <ehird> Make it window-specific.
02:27:53 <ehird> fd = mkwin(640,480)
02:27:53 <Sgeo> I thought you meant for a domain to transmit stuff without being asked to..
02:28:03 <ehird> btn = mkbtn("CLICK ME")
02:28:20 <ehird> addwidg(1,btn) # 1 is window number
02:28:37 <ehird> Sgeo: Something like that.
02:28:53 <ehird> Anyway, a GUI hello world should be about 7 lines of commented code, without densely-packed lines.
02:28:57 <Sgeo> Something like what I said, or were you reinforcing the pseudocode?
02:29:19 <ehird> Sgeo: Something like what you said, yes
02:29:23 <ehird> Maybe more modular though.
02:29:27 <ehird> like, a button has its own fd
02:29:28 <ehird> and you wait on that fd
02:29:34 <ehird> to handle events for just that button
02:29:41 <ehird> it would make things simpler, for larger GUIs
02:29:49 <Sgeo> pikhq, I have a list of custom domains I'd like to see, and GUI is one of them
02:29:59 <ehird> Sgeo: In the spirit of esotericism, I imagine I will use PyGame and draw my own widgets
02:30:06 <ehird> That, is actually an advantage: It means e.g. mandelbrot is easier.
02:30:30 <ehird> It would also make things simpler because it could be designed around PSOX.
02:30:37 <ehird> Sgeo: So I guess I will write it tomorrow. Wish me luck.
02:30:44 <ehird> pikhq: No. We've just been talking about it.
02:30:45 <pikhq> (sometime later. Much later.)
02:31:01 <ehird> I think it will be a lot simpler to write our own, because we don't have fancy stuff needed.
02:31:04 <ehird> I am currently thinking:
02:31:13 <ehird> a widget like a button, has a infile descriptor
02:31:18 <ehird> and you can check that for events, basically.
02:31:19 <Sgeo> ehird, are you looking into how to write domains?
02:31:27 <ehird> Sgeo: I will tomorrow. I am going soon today.
02:31:34 <ehird> pikhq: this means that you can write bigger guis without much fuss
02:31:38 <Sgeo> ehird, the thing about 1 fd per widget is that the client would need to keep changing FDs
02:31:51 <ehird> Sgeo: Make the IO operations take an FD as an argument.
02:32:01 <ehird> + provide special ones that operate on the current fd
02:32:15 <ehird> pikhq: I will just use pygame and draw my own simple widgets, because doing the event stuff with another gui toolkit would be painful
02:32:19 <Sgeo> Also, if the FD never transmits a 0x0A, you can infinite loop on that FD by only ever calling the input function once
02:32:57 <ehird> Sgeo: Don't do that.. leave it up to the console driver to handle that stuff
02:33:13 <ehird> Well, why do you wait for 0x0A?
02:33:21 <ehird> Just read a character, then send it off
02:33:25 <Sgeo> Because one of the ways of getting input is a line at a time
02:33:32 <ehird> OK. One of the ways.
02:33:53 <Sgeo> The other way is calling the input function 1nce for X characters
02:33:57 <ehird> Sgeo: Anyway, just add functions that take an FD as an argument.
02:34:04 <ehird> I will write it tomorrow.
02:34:56 <ehird> By the way, how does everyone pronounce PSOX?
02:35:00 <ehird> I pronounce it as 'Pee socks'.
02:35:42 <Sgeo> Same here, although "P S O X" is truer to the epitomology
02:35:49 <Sgeo> or wahtever you call it
02:36:26 <ehird> Sgeo: 'pee socks' is a bit unfortunate though
02:36:56 <ehird> Sgeo: By the way, I am also going to implement a metadomain.
02:37:04 <ehird> It lets you define and implement domains from within a PSOX app. :D
02:37:59 <ehird> Sgeo: With this, I will then define trivial things like the http domain within brainfuck, using the tcp one
02:40:04 <iIHOP> ehird's is how my phonological loop pronounces it.
02:43:35 <ehird> iIHOP: Thoughts on a bf gui lib? :P
02:44:14 <iIHOP> Do what other programming languages do.
02:44:38 <iIHOP> Which, I suppose, means using lots of libraries.
02:45:50 <ehird> iIHOP: No-- i mean,
02:45:54 <ehird> Awesome idea or not?
02:46:02 <ehird> I mean, you could do a brainfuck interactive mandelbrot
02:46:14 <ehird> Or a brainfuck game of life, with editor
02:46:39 <ehird> or a brainfuck graphical calculator
02:46:42 <iIHOP> I tend to be more interested in theory than practice.
02:46:46 <ehird> Or -- A brainfuck IDE in brainfuck!
02:46:55 <ehird> iIHOP: Yeah, me too. But this is a pretty awesome idea, I think.
02:47:18 <iIHOP> The fact that a BF GUI thingy could be written and the results could be replicated more easily is enough for me.
02:47:59 <ehird> iIHOP: I don't follow what you're trying to say
02:49:02 <iIHOP> It's possible to write a Mandelbrot program in BF, but it's also possible to write a program that does exactly the same thing in some other programming language.
02:49:07 <ehird> pikhq: You know how you said you were going to write a c lib using PSOX?
02:49:08 <pikhq> I'm glad to see that ehird is interested in PSOX.
02:49:19 <iIHOP> Though it can be fun to write programs in BF, of course.
02:49:32 <ehird> pikhq: I bet I can do it with less C constructs and more PSOX constructs. :-P
02:49:44 <iIHOP> Though I'd rather learn how to do it than actually do it.
02:49:59 <pikhq> ehird: I was planning to have the types be lnum_t and such.
02:50:11 <iIHOP> The fact that I know how to do my chemistry homework doesn't mean I want to do it. :-P
02:50:25 <ehird> pikhq: I'll make it more awesome, and just make all ints be lnum_t and similar
02:50:36 <ehird> So NO conversion, but NO construction of types -- that's in C!
02:51:04 <ehird> Either that, or I'll actually *write a libc*
02:51:05 <pikhq> Of course, if I did it in C++, then I'd have to overload the operators for the math calls. :p
02:51:18 <pikhq> Actually, writing a libc would be a cool use of time.
02:51:31 <ehird> Even better with PSOX, because that's just crazy
02:51:33 <pikhq> Useless, but quite cool.
02:51:40 <ehird> I started to write a libc as part of an OS I was writing once.
02:51:55 <ehird> Friendly tip: string/memory functions are easy. I/O is not.
02:51:55 <pikhq> Even cooler if you decide to create a better, replacement libc.
02:52:14 <pikhq> That, I'd think, would be obvious.
02:52:29 <ehird> printf is pretty easy actually.
02:52:47 <ehird> pikhq: CRAZY IDEA: Writing libcox (libc-psox? Get it? Ahahahahahaha. :|), recompiling the python interpreter with it, then running PSOX under it, but with it using THAT instance of psox... Infinite loop!
02:52:50 <pikhq> Whereas the string functions are fairly straightforward, and the memory functions are wrapped up syscalls.
02:53:18 <ehird> pikhq: OK, How about just one level of nesting.
02:54:00 <pikhq> I still want to see a TCP domain, so that 'wget' can be done the hard way, and I could right netcat, and. . .
02:54:06 <ehird> pikhq: I will do that, tomorrow.
02:54:10 <ehird> It seems an obvious step to me.
02:54:13 <ehird> Also, an FFI, possibly.
02:54:17 <ehird> Arbitary Python/C function mapping.
02:54:36 <ehird> Combined with my metadomain domain, you can define arbitary domains using python functions from within an esolang
02:54:54 <ehird> Like, the TCP domain can be made from within BF
02:55:32 <pikhq> If I use that in PEBBLE, then I'd have a python_inline command. :p
02:56:03 <ehird> pikhq: Well, maybe not python_inline so much as python_func "name" "intype intype ..." "outtype"
02:56:10 <ehird> pikhq: Also, same for C functions.
02:56:25 <ehird> You can provide a PSOX interface to malloc/free -- without leaving the comfort of BF. ;D
02:56:54 <pikhq> Sgeo: I'm afraid that the Brainfuck coding universe will never be the same.
02:57:01 <ehird> Most certainly not.
02:57:23 <ehird> Now excuse me while I go and write a graphical IRC client in Brainfuck with only the metadomain and the ffi.
02:58:41 <ehird> Anyway. gtg now. Shall write libcpsox, many domains tomorrow... and ptl. :)
02:59:36 <Sgeo> metadomain? ffi?
02:59:45 <pikhq> Foreign Function Interface.
02:59:47 <ehird> Sgeo: Metadomain = define PSOX domains in PSOX.
02:59:52 <ehird> FFI = call C and Python functions in PSOX.
03:00:04 <ehird> Basically sums it up:
03:00:05 <ehird> "<ehird> You can provide a PSOX interface to malloc/free -- without leaving the comfort of BF. ;D"
03:00:08 <ehird> "<ehird> Now excuse me while I go and write a graphical IRC client in Brainfuck with only the metadomain and the ffi."
03:00:44 -!- bd_ has quit ("rebooting server").
03:00:46 -!- puzzlet has quit ("leaving").
03:01:10 -!- puzzlet has joined.
03:01:45 <ehird> pikhq: And a BF->C compiler that, when compiling a non-PSOX program, uses libcpsox
03:02:46 <ehird> pikhq: And c2bf with PSOX. Anyway, bye for now. Levae any notes in here, i'll check logs.
03:02:53 -!- ehird has quit ("K-Lined by peer").
03:03:35 <Sgeo> Well, I don't think I'm going to make it easier to access other FDs from input and output, switching will be the way to go
03:03:46 <pikhq> Actually, I don't have the time to actually implement PEBBLE 2 ATM.
03:03:55 <pikhq> I may, however, have the time to make BFbasic uses PSOX. :p
03:03:55 <Sgeo> Also, you might want to ignore what I said about waiting on FDs by retrieving lines
03:04:00 <Sgeo> That might not work
03:04:03 <Sgeo> pikhq, BFbasic?
03:05:30 <pikhq> Calamari's Basic->Brainfuck compiler.
03:09:17 <pikhq> Although Basic == Ugh.
03:12:20 * Sgeo hopes that domain-writing isn't too ugly-difficult for ehird to do what he wants
03:12:50 <Sgeo> For a fixed number of functions that have fixed types, it's easy, but changing the types dynamically is a different story
03:13:29 <Sgeo> Also, the current architecture doesn't allow a domain to just go and make.. well, actually it does
03:14:00 <Sgeo> Since psoxglobals (a module to hold global variables) is used promiscuiously
03:14:44 * Sgeo is glad ehird is excited about PSOX though
03:16:35 <Sgeo> "<pikhq> Sgeo: I'm afraid that the Brainfuck coding universe will never be the same."
03:18:14 <pikhq> Actually, I'm writing the preprocessor for PEBBLE2 ATM.
03:23:17 -!- lispy has joined.
03:23:30 <lispy> What is the puprose of #esoteric?
03:23:46 <oerjan> hm maybe should change the topic back
03:24:00 <oerjan> what _was_ the last on-topic topic, anyone? :D
03:24:00 -!- faxathisia has set topic: back.
03:24:35 <oerjan> esoteric programming languages, such as brainfuck, unlambda etc.
03:25:23 <lispy> what is esoteric about them?
03:25:32 * lispy uses brainfuck at work
03:25:36 <lispy> Oh, wait, no that's C++
03:26:19 <oerjan> well they are languages that may seem even worse than C++, at least until you delve deep enough into it
03:26:34 <lispy> brainfuck is probably the only programming language that you can write a compiler for more easily than you can write an interesting program in
03:27:04 <lispy> I know this because, I wrote the bf compiler that lambdabot uses, but I can't write anything in bf :)
03:27:15 <pikhq> I've written quite a few things in Brainfuck.
03:27:21 <pikhq> My most recent hack is wget.b.
03:27:42 <lispy> you added enough IO to do wget?
03:27:44 <pikhq> http://pikhq.nonlogic.org/wget.b
03:27:59 <pikhq> Sgeo here wrote PSOX, which allows for quite a few insane features.
03:28:11 <pikhq> I believe ehird is planning on doing GUI with it tomorrow.
03:28:35 <lispy> is HTTP::get, a system call then?, well a function call
03:29:35 <lispy> So, it's not really bf so much as bf++ or bf2?
03:29:47 <lispy> maybe it's craniumfuck?
03:29:49 <Sgeo> lispy, it's not just for BF. Just about any language can use it
03:30:18 <Sgeo> It's a layer that goes between BF (or whatever) and standard I/O
03:30:40 <lispy> But, let me get this straight, you had to extend the bf language to allow this to work, right?
03:30:59 <Sgeo> It's not the language. It's more like an interpreter
03:31:10 <pikhq> Just stick a standard Brainfuck interpreter in.
03:31:23 <pikhq> PSOX binds to that interpreter's stdio, and interprets that.
03:31:32 <lispy> normally bf would ignore sequences like PSOX_Init
03:31:43 -!- puzzlet_ has joined.
03:31:54 <Sgeo> The string "PSOX_Init" is a comment, actually
03:31:56 <pikhq> It will ignore PSOX_Init.
03:32:06 <pikhq> The stuff before that is what initialises PSOX. ;p
03:32:21 <Sgeo> Outputting 0x00 0x07 0x01 0x0A 0x00 0x00 0x0A is the PSOX_Init
03:33:46 <lispy> more evidence that turing complete does mean something important :)
03:35:11 <lispy> do you guys work with python too?
03:35:26 <lispy> (okay sorry, that was meant to be a joke making fun of python)
03:35:48 * Sgeo is a Python person, can't say for the others
03:36:11 <Sgeo> lispy, wait, were you noting that PSOX is implemented in Python?
03:36:39 <lispy> Sgeo: was it? no actually, I'm just completely poking fun at python here
03:37:09 <Sgeo> Python, unlike Ruby, has a readable syntax :p
03:37:21 <lispy> Yes, but they left out the type annotations :)
03:37:30 <lispy> faxathisia: bf is turing complete
03:37:59 -!- BMeph has joined.
03:37:59 <lispy> faxathisia: and so even though it seems kinda worthless for real work, because it's TC, you can do cool things like wget just as long as you have IO
03:38:18 * oerjan brought lispy here from #haskell by accident, for those who don't know :)
03:38:24 <faxathisia> lispy, This is true of non turing complete languages
03:38:49 <lispy> faxathisia: I suppose so in some cases. But, BF happens to be TC.
03:38:56 <faxathisia> lispy, This is true of subturing languages ** what I meant to say
03:38:59 <lispy> so that's why i phrased it that way :)
03:39:25 <Sgeo> TC just means able to make any computation that a computer can make. That's part of the motivation for PSOX, actually, because I wanted BF to be able to do anything a generic program can do, which is how I kept mistakenly thinking of TC
03:40:37 <lispy> Sgeo: which reminds me...since TC definition doesn't involves a system clock and user input. I've sometimes wondered if there are things we could make a modern computer do that a TC technically cannot.
03:41:16 <Sgeo> lispy, go online, which standard BF cannot do
03:44:34 -!- puzzlet has quit (Read error: 110 (Connection timed out)).
03:44:40 <lispy> by using outside entropy i guess
03:44:45 <lispy> er truely random seeds
03:45:03 <lispy> oh, has anyone written a mersenn twister in bf?
03:45:18 <lispy> or other high quality prngs?
03:45:50 -!- oerjan has set topic: the international hub for esoteric programming language design and deployment - map: http://www.frappr.com/esolang - forum: http://esolangs.org/forum/ - EgoBot: !help - wiki: http://esolangs.org/wiki/ - logs: http://tunes.org/~nef/logs/esoteric/ or http://ircbrowse.com/channel/esoteric - Pastebin: http://pastebin.ca/.
03:46:27 * lispy decides to head home and stop reading papers for the day
03:46:51 <oerjan> (slightly modified from 18.05.07)
03:47:22 <lispy> oerjan: but there are only 12 months in a year, so what date is that? ;) (sorry, I live in the US and like to intentially be a dumbass about dates )
03:47:44 <lispy> actually, I wish we all used the format YY/MM/DD
03:48:27 <oerjan> you may find it interesting that i considered clarifying that date, and rejected the thought because 18 > 12 anyway
03:49:50 <iIHOP> Either YY/MM/DD or DD/MM/YY.
03:50:05 -!- iIHOP has changed nick to ihope.
03:50:40 <Sgeo> YYYY/MM/DD makes a bit more sense, if you look at what's best for computers wrt sorting
03:51:02 <Sgeo> Also, in numerical systems where the leftmost digit is most significant >.>
03:51:55 -!- puzzlet has joined.
03:52:11 * Sgeo is excited about GUI BF programs tomorrow :D
03:54:47 <Sgeo> I think there's a bug in the input domain
03:55:01 <Sgeo> It gets unreasonably slow eventually
03:56:34 <ihope> We should just make all notations big-endian.
03:56:49 <ihope> Always put the most significant word at the beginning of a sentence, and all.
03:57:23 <ihope> It's 2008 February 16 PM 10:57, everyone!
03:58:17 <ihope> And since a week is between a month and a day, you can also say "2008 February Saturday 16" where it's important.
03:58:24 -!- puzzlet has quit ("leaving").
03:58:43 -!- puzzlet_ has changed nick to puzzlet.
04:01:23 <olsner> hmm, yes, today is indeed today... is that in any way significant?
04:02:01 * olsner thinks not and goes to bed, probably
04:11:13 <Sgeo> I hope I'll be here tomorrow to help ehird if needed
04:11:28 <Sgeo> If not, I hope that ehird will be able to figure everything out on eir own
04:12:34 -!- RodgerTheGreat has quit.
04:15:03 <Sgeo> Maybe I should get going now
04:15:29 -!- Sgeo has quit (Remote closed the connection).
04:17:16 -!- RodgerTheGreat has joined.
04:22:57 -!- ihope_ has joined.
04:39:32 -!- ihope has quit (Read error: 110 (Connection timed out)).
05:14:10 <lispy> oh damn, gwern left
05:17:17 <lispy> what an #esoteric curse :)
05:17:31 * lispy makes bad puns regularly
05:25:11 * oerjan bakes mud pans regularly
05:25:36 * pikhq should make baking mud pans a regulated action
05:26:35 <pikhq> In Agora, an action is regulated if it affects something an officer has to report on, among other things.
05:36:00 <pikhq> Fucking wonderful.
05:36:08 <pikhq> Someone modded one of my /. posts redundant. . .
05:36:15 <pikhq> It's the 4th post on the article, for God's sake.
05:37:31 <RodgerTheGreat> I stopped posting on /. a while ago because the mods seemed to be pretty vicious
05:39:13 <pikhq> Yeah; for a while, my account had negative karma for one post.
05:40:07 <pikhq> And does redundant even get metamodded?
05:41:00 <pikhq> It's one thing to moderate a post identical to mine that came 10 minutes after 'redundant', but come on. . .
05:41:13 <pikhq> The only post made that covered the same topic was about half a second before mine.
05:46:59 <pikhq> Ah well; it got modded back up.
05:48:02 <RodgerTheGreat> slashdot is a pretty tough MMO, but I hear it gets more fun at the higher levels
05:50:02 <RodgerTheGreat> Facebook and Myspace are pretty popular RPGs, but they're mostly just grindfests
05:50:39 <RodgerTheGreat> And Digg is pretty much a dumbed-down clone of slashdot- I think they wanted to cater to the console crowd
05:51:42 <RodgerTheGreat> Deviantart has a pretty sophisticated crafting system, but I think the fanbase is too creepy
06:36:03 -!- ihope_ has quit (Read error: 110 (Connection timed out)).
06:36:30 -!- ihope_ has joined.
06:36:35 -!- ihope_ has changed nick to ihope.
06:49:00 -!- bsmntbombdood_ has changed nick to bsmntbombdood.
06:51:33 -!- oerjan has quit ("Good night").
07:12:51 -!- ihope has quit (Read error: 110 (Connection timed out)).
07:22:33 -!- BMeph has quit ("calls it a night").
07:31:20 -!- ihope_ has joined.
07:31:26 -!- ihope_ has changed nick to ihope.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:32:39 -!- ihope_ has joined.
08:47:14 -!- ihope has quit (Read error: 110 (Connection timed out)).
08:48:16 -!- RedDak has joined.
09:16:21 -!- Dagide has joined.
09:28:24 -!- RedDak has quit (Read error: 110 (Connection timed out)).
09:41:05 -!- ihope_ has quit (Connection timed out).
09:47:06 -!- ihope_ has joined.
09:47:13 -!- ihope_ has changed nick to ihope.
09:56:37 -!- ihope_ has joined.
10:04:44 -!- ihope has quit (Read error: 110 (Connection timed out)).
10:23:12 -!- faxathisia has quit ("This computer has gone to sleep").
10:31:15 -!- sco50000 has joined.
10:31:59 -!- sco50000 has left (?).
10:35:39 -!- ihope_ has quit (Connection timed out).
10:36:27 <AifnAk> "<lispy> brainfuck is probably the only programming language that you can write a compiler for more easily than you can write an interesting program in" <<< nope
10:37:13 <GregorR> null-language. Compiler: "main(){}" And no matter how hard you try, you can't write an interesting program in it.
10:38:32 <AifnAk> lispy: python is the simplest and intuitive language on earth
10:42:41 <GregorR> Thai yellow curry is the most flavorful and delicious food on Earth.
10:42:53 <GregorR> [an argument just as easy to defend :P ]
10:43:06 -!- AifnAk has changed nick to oklopol.
10:44:20 <oklopol> GregorR: why defend something everyone knows is true
10:44:58 <oklopol> [12:35] --> sco50000 has joined this channel (n=scott@unaffiliated/sco50000).
10:44:58 <oklopol> [12:36] <sco50000> INTERCAL :D
10:44:58 <oklopol> [12:36] <-- sco50000 has left this channel ("Leaving").
10:45:16 <GregorR> I guess it's no big surprise.
10:45:19 <oklopol> we should keep track of newcomers' intentions, not all are irpers!
10:46:11 <oklopol> need to brush the intercal taste away ->
11:09:56 <lament> please say please say please say please say please say please say cheese.
12:07:17 -!- helios24 has joined.
12:11:51 -!- timotiis has joined.
12:50:37 -!- jix has joined.
12:51:00 -!- jix has quit (Remote closed the connection).
12:51:18 -!- jix has joined.
13:07:39 -!- ihope_ has joined.
13:07:45 -!- ihope_ has changed nick to ihope.
13:10:32 -!- lament has quit (Remote closed the connection).
13:10:39 -!- lament has joined.
13:31:58 -!- Corun has joined.
14:21:37 -!- Tritonio_ has quit (Read error: 104 (Connection reset by peer)).
14:23:28 -!- Tritonio_ has joined.
15:18:10 -!- Dagide has quit (Remote closed the connection).
15:38:29 <olsner> wow, ursala is really crazy
15:39:58 <olsner> the alphabet is too small to give names to all the "pointers", so they added numbered "escapes" for extension
15:40:42 -!- Corun_ has joined.
15:42:08 -!- Corun has quit (Read error: 104 (Connection reset by peer)).
15:54:28 <olsner> "An operator precedence relation exists, but it is neither transitive, reflexive, nor anti-symmetric."
15:54:32 -!- Corun_ has changed nick to Corun.
15:55:15 <olsner> and some operators have multiple arities, with each arity having its own precedence
15:56:35 <ihope> Fine as long as it's all well-defined.
15:59:35 <olsner> the specification recommends trial-and-error for discovering the precedence rules rather than attempting to understand the description :P
16:01:35 <olsner> also featuring prefix, infix, postfix, "solo" and circumfix/outfix operators
16:02:16 <olsner> (many operators usable in more than one fixity)
16:12:57 -!- oerjan has joined.
16:18:39 <olsner> plenty of gosh to go around
16:20:07 <ihope> About how much gosh do you have?
16:20:33 <ihope> In cubic meter pascals per Kelvin mole?
16:30:37 <olsner> about 1 square foot per square fortnight Kelvin mole
16:34:04 <oerjan> http://en.wikipedia.org/wiki/R%C3%A9aumur_scale
16:34:51 * oerjan disposes of the stray 'e' with a flyswatter
17:02:46 -!- calamari has joined.
17:11:11 <SimonRC> Oh dear, I just used the adjective "Internetty"
17:11:13 <SimonRC> ... in referring to the political compass readings of Mike Gravel (D) and Dennis Kucinich (D)
17:11:23 -!- puzzlet has quit (Remote closed the connection).
17:11:27 -!- puzzlet has joined.
17:11:44 <oerjan> Internetty sounds like a silly name for a mascot
17:12:25 <RodgerTheGreat> "Internetty the tube! Don't look inside, though- he's filled with porn and social networks!"
17:42:22 -!- calamari has quit ("Leaving").
18:31:34 -!- ihope_ has joined.
18:47:45 -!- ihope has quit (Read error: 110 (Connection timed out)).
19:14:07 -!- Slereah has quit (Read error: 104 (Connection reset by peer)).
19:14:21 -!- Slereah has joined.
19:44:40 -!- ehird` has joined.
19:51:09 -!- ehird`_ has joined.
19:52:12 -!- ehird` has quit (Read error: 113 (No route to host)).
20:00:23 <ehird`_> pikhq: plz let it access FDs
20:01:02 -!- oerjan has quit ("Supper").
20:02:12 -!- Hiato has joined.
20:02:30 <lispy> what is the difference between porn and social networks?
20:02:40 <lispy> are social networks just porn for girls?
20:03:10 <ehird`_> lispy: are you a markov chain bot?
20:03:41 <lispy> am I markov "Internetty" chain bots?
20:04:06 <lispy> but I play one on IRC
20:04:46 <lispy> I used to have a megahal here on freenode called {}, boy, that was a fun bot
20:05:04 <ehird`_> 'I was talking to I yesterday, and..'
20:05:06 <lispy> yeah, it kinda looks like a .... um... nevermind
20:05:29 <lispy> most irc clients show'd the bot as <{}>
20:06:04 <ehird`_> I have awesome nicks registered anyway
20:06:15 <ihope_> What are some of your awesome nicks?
20:06:30 <ehird`_> ihope_: Actually they aren't very awesome.
20:06:38 <ihope_> I think my most awesome nick is ihop.
20:06:39 <ehird`_> I have 'rice' though, which is a dictionary word so I guess that's pretty cool.
20:06:53 <ehird`_> (<Sgeo>Python, unlike Ruby, has a readable syntax :p <-- bullcrap, ruby is beautiful ... well, kinda. it's like perl but less ugly.)
20:07:09 -!- ihope_ has changed nick to hyperpyrexia.
20:07:17 -!- hyperpyrexia has changed nick to ihope.
20:07:48 <ehird`_> Actually, I was pretty close to getting 'z' at one point..
20:07:56 <ehird`_> then the bastard logged in for the first time in ages :(
20:08:16 <ihope> It's a legal nick?
20:08:29 -!- ihope has changed nick to i.
20:08:34 <i> This one isn't.
20:08:37 -!- i has changed nick to ihope.
20:08:37 <ehird`_> Registered or forbidden, most all of them.
20:08:40 -!- ehird`_ has changed nick to i.
20:08:43 -!- i has changed nick to ehird.
20:09:17 <ihope> I wonder why i is may-not-be-used and you is erroneous.
20:09:17 <ehird> I should write a script that checks every one-letter nick and tells me which are available for dropping.
20:09:29 <ehird> ihope: freenode's ircd is.. not the cleanest thing
20:09:32 -!- ihope has changed nick to c.
20:09:36 -!- c has changed nick to ihope.
20:09:40 -!- Hiato has left (?).
20:10:20 -!- ehird has changed nick to c.
20:10:28 <ihope> Nothing special on that one.
20:10:29 <c> -NickServ- The nickname [c] is private
20:10:30 -!- c has changed nick to ehird.
20:10:41 <ehird> always use /ns info
20:10:55 <ehird> if they haven't been logged in for a month or a few, celebrate
20:10:58 <ihope> The nickname [a] is private. The nickname [B] is private. The nickname [c] is private.
20:10:59 <ehird> then #freenode and ask for droppation
20:11:06 -!- ehird has changed nick to y.
20:11:16 <y> this is... available
20:11:19 -!- y has changed nick to ehird.
20:11:40 -!- ehird has changed nick to Y.
20:13:19 <Y> i could get Q
20:16:00 <Y> I can't be a combinator.
20:16:09 <Y> and q is erronous
20:16:19 <Y> Hey, I know! I should start my own network so I can get a one-char nick :P
20:16:34 <ihope> Or get that nick on Sine.
20:16:45 <Y> ihope: There's no nickserv, is there
20:16:58 <ihope> Ami's kind of one.
20:17:10 <Y> OK. But that doesn't let me secure both 'Y' and 'q'.
20:17:16 -!- Y has changed nick to Yq.
20:22:58 <ihope> Cool, the nick "aefn" isn't registered.
20:23:36 <ihope> Maybe I prefer long nicks, though.
20:23:56 -!- ihope has changed nick to ThreePointOneFou.
20:23:57 -!- Yq has changed nick to aefn.
20:24:06 -!- aefn has changed nick to Yq.
20:24:33 <ThreePointOneFou> And I'd typed it out to "ThreePointOneFourOneFiveNineTwoSixFiveThreeFiveEightNineSevenNineThreeTwoThree" in case nick lengths could go that far.
20:32:47 <Yq> ideas spread fast
20:32:52 <Yq> <Taggard> spb: Feel like donating a single character nick to me?
20:32:59 -!- helios24 has quit ("Leaving").
20:38:24 -!- ThreePointOneFou has changed nick to ihope.
20:39:23 <Yq> pikhq: question about tcl
20:39:30 <Yq> aren't return values and output redundant?
20:39:45 <Yq> like, in shell, i guess you do have the error status, but mostly subshells output are their 'return'
20:44:30 -!- Sgeo has joined.
20:46:06 <Sgeo> WAs ehird in here earlier?
20:46:36 <Yq> I am ehird.
20:47:31 <Sgeo> oklopol, I used to know a drop of lojban, and sort of know the basics
20:47:55 <Sgeo> Yq, are you going to work on those domains?
20:48:30 <Yq> Sgeo: Yes, I guess so.
20:48:36 <Yq> Is there a PSOX usage tutorial anywhere?
20:48:38 <Yq> With brainfuck.
20:48:50 <Sgeo> Yq, there are examples, and the spec
20:49:03 <Sgeo> I think one part of the spec is out-of-date, holdon
20:49:53 <Yq> pikhq: How are they unique theoretically
20:50:24 <pikhq> proc foo {} {return 1} returns 1 to the caller; proc bar {} {puts 1} outputs one.
20:50:45 <pikhq> if {[foo]} is therefore like if {1}. . .
20:51:11 <pikhq> if {[bar]} is more like if {puts 1}; testing if puts actually outputs without an error.
20:52:04 <pikhq> Really, it's the difference between printf() and return in C. ;)
20:52:15 <Yq> pikhq: Duhhh. I'm saying it SHOULDN'T be like that.
20:52:28 <pikhq> Why the hell *not*?
20:52:42 <pikhq> Why the hell shouldn't it be like that?
20:52:55 * Sgeo wants to see a GUI domain soon
20:53:01 <Yq> proc bar {} {puts 1}; if {[bar]} ;# this is 'if {1}...'
20:53:05 <Yq> it's like this in shell
20:53:12 <Yq> and it makes sense when the language is like a shell
20:53:16 <Yq> which tcl is, essentially.
20:53:19 <Yq> as well as the string focus
20:53:59 <pikhq> Are you fucking mad?
20:54:41 -!- RedDak has joined.
20:55:11 <Yq> pikhq: Perhaps; but saying that helps little.
20:55:24 <pikhq> [puts 1] is just the same as [puts stderr 1].
20:55:46 <Yq> pikhq: I am aware what the actual semantics are.
20:55:52 <Yq> I am arguing theoretically, what would be better.
20:56:05 <pikhq> Perhaps if you're making a shell vaguely like Tcl.
20:56:16 <pikhq> But Tcl's not shell.
20:56:29 <Yq> pikhq: I'm just saying I can't see how it wouldn't be nicer.
20:56:47 <pikhq> You've obviously never had a function *want to output*.
20:57:33 <Yq> pikhq: Uhm, if I have a nested expression I don't expect side-effects to creep out of it relying on evaluation order, no.
20:57:46 <Yq> I would put the first action, then the second. Then my nested ones.
20:58:02 <pikhq> Did you also happen to fail to notice that Tcl is imperative as fuck?
20:59:30 <Yq> May be so. But in nested expressions, that's just ugly style.
20:59:58 <pikhq> Would you support the same behavior in C?
21:04:34 -!- Yq has changed nick to {.
21:04:38 -!- { has changed nick to }.
21:05:37 <}> You should seperate side-effecting seperations and not nest them oddly.
21:05:44 <}> Anything else is obfuscation.
21:06:00 -!- } has quit (Nick collision from services.).
21:06:09 <Sgeo> Nick collision?
21:06:38 -!- ehird`_ has joined.
21:06:48 -!- ehird`_ has changed nick to [.
21:06:58 -!- [ has changed nick to ].
21:07:06 <Sgeo> } had a nick collision?
21:07:14 -!- Sgeo has changed nick to }.
21:07:19 <]> sgeo: it's forbidden
21:07:19 -!- } has changed nick to Sgeo.
21:07:27 <Sgeo> -NickServ- If you do not change within one minute, you will be disconnected
21:07:41 -!- Sgeo has changed nick to I.
21:07:43 -!- I has changed nick to Sgeo.
21:08:03 -!- ] has changed nick to _.
21:08:11 <_> would be so awesome
21:08:16 <GregorR> /nick We /me are the bork!
21:08:35 <Sgeo> _, is that forbidden or something?
21:08:46 <_> Sgeo: No, it's allowed. I am asking in #freenode.
21:08:50 <_> I imagine I will be denied
21:08:53 <Sgeo> Also, any chance of working on the GUI domain now?
21:09:05 <_> Sgeo: Bah, pygame is a lot of wurk :P
21:09:12 -!- Slereah has quit (Read error: 104 (Connection reset by peer)).
21:09:13 -!- slereah_ has joined.
21:09:20 <Sgeo> So use something simpler if you want
21:09:26 <Sgeo> You're the one making it, not me
21:09:47 <_> haha, I know.. I know.
21:09:53 <_> Anyway, it's dependant on you.
21:09:58 <_> The model requires not having to switch FDs to be nice.
21:10:30 <Sgeo> I'm not sure how I can fit in not switching FDs..
21:11:43 -!- _ has changed nick to ^.
21:11:56 <^> add an extra parameter to the functions
21:12:00 <^> Or: just add some more, for backwards-compat
21:12:20 <Sgeo> There isn't really room to add functions
21:12:59 <Sgeo> 0x00 0x01 (num-of-bytes-to-take) 0x0A
21:13:13 <Sgeo> Where in there is there room to fit something else?
21:13:20 <^> ... Another domain?
21:13:22 <^> ALTERNATIVELY
21:13:28 <^> 0x00 0x01 (fd) (num-of-bytes) 0x0A
21:13:31 <^> nicest solution
21:13:39 <Sgeo> That would break compatibility..
21:13:45 <Sgeo> Also, what about output?
21:14:06 <^> Sgeo: Tell me exactly how many PSOX programs are there, mr Sgeo?
21:14:13 <^> About 3? Maybe even 4?
21:14:19 <^> How could you possibly stop them working!
21:14:29 <^> They run whole ENTERPRISES!
21:14:40 <Sgeo> What about output though?
21:14:45 <^> What is it right now?
21:15:04 <Sgeo> Printing a character outputs that character unless it's 0x00, which is escape
21:15:15 <Sgeo> and 0x00 0x00 escapes the next character
21:15:44 <^> That can stay the same. What is the actual function for outputting, though, in PSOX?
21:15:49 <^> Because that gets an extra FD peramater
21:15:57 <^> But, you can still keep the sometimes-useful 'current FD' model --
21:15:58 <Sgeo> That is outputting
21:16:08 <^> Sgeo: Uh, but you have FDs.
21:16:11 <^> How do you output to the current FD?
21:16:26 <Sgeo> Exactly as I said
21:16:46 <ihope> Hmm. That's no one-letter nick.
21:17:07 <^> You have, at the base, functions which take an fd, and the rest of the parameters.
21:17:11 <^> This includes a special output one.
21:17:14 <^> On top of that,
21:17:21 <^> you layer on a 'current FD' system
21:17:32 <^> which is basically all the functions, sans FD parameters, and a 'change FD'/'get FD' functions
21:17:47 <^> you use your model of output - i.e. JUST OUTPUT the character! - to use the implicit-FD versions.
21:19:00 <Sgeo> Would it be just simpler for a GUI client to just switch FDs every two seconds?
21:19:14 <^> It would be far harder to code with.
21:19:20 <Sgeo> Or maybe special input/output functions in the system domain?
21:19:21 <^> Plus, this model of output/input is used by C and similar
21:19:24 <^> fputc, and putc.
21:19:26 <^> fprintf, and printf.
21:19:33 <^> (fgetc, and getc, ...)
21:20:37 <olsner> heh, backtick is already taken
21:21:26 -!- ^ has changed nick to s.
21:21:30 <Sgeo> s, would input/output functions in the System domain be ok?
21:21:30 -!- s has changed nick to a.
21:21:45 <Sgeo> a, do you have ehird on highlight?
21:21:51 <a> Anyway sgeo:
21:21:59 <a> I have some simple questions to help me understand
21:22:16 <a> How is the current model of IO accomplished? How do I select an FD, input, output, etc.
21:22:21 <a> Answer that, and I'll explain my suggestion.
21:22:52 <Sgeo> 0x00 0x02 0x10 f 0x0A sets the current outfile FD
21:23:01 <Sgeo> 0x00 0x02 0x11 f 0x0A sets the current infile FD
21:23:36 <Sgeo> There are 4 builtin FD numbers: 0x00 is the current outfile FD, 0x01 is the current infile FD, 0x02 is stdout, 0x03 is stdin
21:24:08 <a> And after that.
21:24:12 <a> how do I do stuff with them?
21:24:26 <Sgeo> I already described input and output
21:24:45 <a> Do it again, I don't grasp it yet.
21:25:12 <Sgeo> Output is either just outputting the character if it's not 0x00
21:25:22 <Sgeo> Or just output 0x00 0x00 first to escape the next char
21:25:37 <Sgeo> Input is 0x00 0x01 (num-of-bytes) 0x0A
21:26:07 <a> Sgeo: Specify what 0x01 and 0x02 are in english
21:26:20 <Sgeo> ehird: Domain specifiers
21:26:29 <a> Sgeo: Yes...
21:26:30 <a> What domains.
21:26:39 <Sgeo> 0x01 is the input pseudodomain
21:26:53 <Sgeo> 0x02 is the System domain
21:26:53 <a> define `pseudodomain'
21:27:16 <Sgeo> pseudodomain because 0x01 doesn't have functions like a normal domain. The num-of-bytes pretends to be the function name, but it isn't
21:27:44 <a> Well, my idea is quite radical then.
21:27:46 <a> But it's very simple..
21:28:00 <a> 0x01 will no longer be the input pseudodomain. It will be the 'IO domain'.
21:28:02 <a> With me so far?
21:28:19 <a> There will be a function in it for input.
21:28:24 <a> So, something like:
21:28:43 <a> 0x00 0x01 0x00 (num-of-bytes) 0x0A
21:28:43 <a> (Not exact synatx, maybe. But you get the idea?)
21:29:01 <Sgeo> I get the idea, but it's an extra byte of overhead :/
21:29:14 <a> Sgeo: With me?
21:29:14 -!- a has changed nick to ehird.
21:29:39 <ehird> Also, I have a suggestion re: byte of overhead
21:30:07 <ehird> If the PSOX server has nothing to send, and a character is requested, it sends off a character from $FD. (Don't think about this too much. I'll explain it once I get my concepts down.)
21:30:48 <Sgeo> ehird, the PSOX server doesn't know when a character is requested
21:30:57 <ehird> Sgeo: It can, though, quite easily.
21:31:05 <ehird> I might give an example, but that's not the point..
21:31:10 <ehird> The point is the idea I am explaining.
21:31:18 <ehird> Anyway, you can see the logical outcome:
21:31:26 <ehird> 0x00 0x01 0x01 (char) 0x0A
21:31:35 <ehird> (Please ignore that these are very verbose ways to do IO, I will fix that later..)
21:31:37 <Sgeo> ehird, select.select() doesn't work on Windows last time I checked docs
21:31:40 <ehird> Sgeo: With me so far?
21:31:48 <ehird> (Don't. think about it. too much!)
21:32:35 <ehird> Sgeo: OK, now what I propose
21:32:48 <ehird> It would look like this, in the core:
21:32:51 <ehird> 0x00 0x01 0x00 (fd) (num-of-bytes) 0x0A
21:32:59 <ehird> 0x00 0x01 0x01 (fd) (char) 0x0A
21:33:08 <ehird> This is obviously not an ideal interface for the programmer.
21:33:14 <ehird> Sgeo: But it's a solid base for IO.
21:33:20 <ehird> And with that, we can build upon it:
21:33:33 <ehird> 0x00 0x01 0x02 (fd) 0x0A ;; change fd
21:33:40 <ehird> 0x00 0x01 0x03 0x0A ;; get fd (not required)
21:33:52 <ehird> 0x00 0x01 0x04 (num-of-bytes) 0x0A ;; no need for fd param -- works on current fd
21:33:59 <ehird> 0x00 0x01 0x05 (char) 0x0A ;; ditto
21:34:16 <ehird> Now, with all of this we have an IO system more powerful than PSOXs. But it's still not that convenient!
21:34:25 <ehird> So, what we can do.. is this:
21:34:31 <ehird> You know your current stuff for output?
21:34:33 <ehird> i.e. just output it
21:34:36 <ehird> with a possible escape?
21:34:45 <ehird> Well, that ends up using "0x00 0x01 0x05 (char) 0x0A"
21:35:15 <ehird> The input thing is valid, and maybe you can check for input, or maybe you can have a special other magic sugar -- like "0x01 bytes", and escape that... You already have one already. But, this isn't such a major problem.
21:35:26 <ehird> The point is that it would make e.g. the GUI lib *very nice* to use
21:35:38 <ehird> and it also lets you unify the infile/outfile mess thing
21:36:39 <Sgeo> I'm not sure I'm willing to change around the whole current structure, but that stuff could go in a custom domain..
21:36:53 -!- ihope has quit (Read error: 110 (Connection timed out)).
21:37:02 <ehird> Sgeo: And why not?
21:37:07 <ehird> There is no programs to speak of.
21:37:12 <ehird> This is more elegant, and it's what every other language uses.
21:37:21 <ehird> It is also just as convenient if you take into account my sugar ideas..
21:37:37 <ehird> Maybe even more convenient, with my 0x01 sugar. (Shorter programs, 0x01 is easy to make in BF)
21:37:58 <ehird> Also, when you start doing things like e.g. heavy file IO
21:37:59 <ehird> (Which is not that uncommon I must add!)
21:38:04 <ehird> it will be a lot nicer
21:38:56 <Sgeo> Well, the thing with the 0x01 sugar is that how do we make sure it gets to the server before the client requests it?
21:39:11 <Sgeo> the reason 0x0A is at the end of every function is to make sure the server gets it
21:40:03 <ehird> 0x01 only reads one byte
21:40:32 <Sgeo> Suppose I have a BF interpreter that only sends out at a 0x0A
21:40:36 <ehird> You don't need an ending marker because it's not variadic.
21:40:37 <Sgeo> and I have this BF program:
21:40:38 <ehird> And you can escape it like this:
21:40:40 <ehird> Now of course the question 'how do you input one byte??'
21:40:45 <ehird> Probably, by 0x01 0x00.
21:40:52 <ehird> Since you never actually want to read 0 chars.
21:41:00 <ehird> Sgeo: Well, let's see
21:41:16 <Sgeo> But the BF interpreter never sends it to the server
21:41:22 <ehird> Sgeo: In my semantics if you look
21:41:24 <ehird> that actually escapes 0x01 0x01
21:41:25 <Sgeo> Because there's no 0x0A to flush it
21:41:33 <ehird> no interp does that
21:41:45 <Sgeo> I remember GregorR being worried about oit
21:41:58 <ehird> Sgeo: Actually, that's good
21:42:17 <ehird> means just a literal \1
21:42:26 -!- BMeph has joined.
21:42:49 <ehird> 0x00 0x01 0x05 0x?? 0x0A
21:42:54 <ehird> IF you want to actually read one char:
21:43:27 <ehird> So, here's a "read one char" BF program:
21:44:01 <ehird> Sgeo: You get an EOF indicator, right?
21:44:17 <ehird> That doesn't work if it's 0x00, though..
21:44:24 <Sgeo> EOF Indicator, Num-of-bytes-not-EOF, bytes, padding
21:44:40 <ehird> But this is simple enough to fix:
21:44:45 <ehird> +.-.+++++++++.,,>.+.+++.<.>++++++++++.
21:44:48 <Sgeo> Is what currently happens when you request a fixed number
21:44:52 <ehird> Sgeo: There's a "read one char, output":
21:45:00 <ehird> well then you just add more ,s
21:45:05 <ehird> But, you get the basic idea.
21:45:08 <ehird> And I would say: that's nice and short!
21:45:18 <ehird> And it allows for my cleaner semantics
21:45:27 <ehird> So I would say it's a good thing
21:45:33 <Sgeo> 0x01 0x?? 0x0A is only one byte less than 0x00 0x01 0x?? 0x0A
21:45:43 <Sgeo> although it just frees up domain 0x01
21:46:07 <ehird> Sgeo: Yeah, well it might be only one byte less, but the benefits that come with it are nice, very nice!
21:46:17 <ehird> And it doesn't really free up domain 0x01.
21:46:21 <ehird> That's the IO domain in my semantics, remember?
21:46:34 <Sgeo> Yes, frees up 0x01 for your IO domain is what I meant
21:46:52 <ehird> IMO, it's cleaner. And it's the most widely used model of IO - C, etc. use it
21:47:08 <ehird> Plus, when you do heavy file I/O (or, in my case, heavy widget-FD I/O) it makes programs a lot nicer, I think
21:48:25 <Sgeo> I suppose you'd be opposed to making input 0x00 0x01 fd num-of-bytes 0x0A?
21:48:54 <Sgeo> and output 0x00 0x00 fd char ?
21:49:19 <ehird> Sgeo: Of course... domains are the best way to organize this.
21:49:25 <ehird> Besides, a domain allows for expansion of IO capabilities.
21:49:34 <ehird> Like, an 'isEOF' function or something.
21:49:45 <Sgeo> Well, input gives an EOF indicator
21:50:20 <Sgeo> Or I could make a custom IO domain..
21:50:26 <ehird> Sgeo: I know it does.
21:50:33 <ehird> Can't you stop taking every example I give literally?
21:50:42 <ehird> And a custom IO domain means you have two models for IO, neither of which is integrated
21:50:49 <ehird> Which is ugly, and so is the whole 'pseudodomain' idea.
21:56:00 <Sgeo> It would be a major change :/
21:56:07 <Sgeo> !bf_textgen IO
21:56:45 <EgoBot> help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon
21:56:47 <EgoBot> 1l 2l adjust axo bch bf{8,[16],32,64} funge93 fyb fybs glass glypho kipple lambda lazyk linguine malbolge pbrain qbf rail rhotor sadol sceql trigger udage01 unlambda whirl
21:56:55 <ehird> Sgeo: What's the problem with that?
21:56:57 <ehird> Who is going to die?
21:57:29 <Sgeo> Why isn't bf_txtgen working?
21:58:48 <ehird> !bf_txtgen it does just slowly
21:59:15 <Sgeo> Too slowly. Is there an online alternative?
22:00:43 <Sgeo> Making your changes would not be easy
22:01:09 <ehird> Sgeo: there's a java alternative.
22:01:12 <ehird> Sgeo: and yes it would.
22:01:15 <EgoBot> 38 +++++++++[>++++++++>>><<<<-]>+.++++++. [67]
22:01:20 <ehird> its just a few python files
22:04:00 <Sgeo> How often would apps need to do I/O to arbitrary FDs?
22:04:12 <ehird> Sgeo: Quite often..
22:04:18 <ehird> When using multiple files when using the gui toolkit ...
22:04:23 <EgoBot> 133 +++++++++++++++[>+++++++>++++++++>++><<<<-]>.>----.>++.<<-----.>-----.<+.>++++.>.<<+++++.>++.--.+.>.<-.-------.<+++++.++++++++.>.<++. [913]
22:04:25 <ehird> And besides they still have the short interface.
22:04:37 <Sgeo> Couldn't those cases be covered with a custom domain?
22:06:37 <ehird> Sgeo: Yes, but that's ugly.
22:06:42 <ehird> And besides, my way has no downsides.
22:07:17 <Sgeo> Maybe your way could go in PSOX 1.1?
22:08:27 <ehird> Sgeo: Why not 1.0?
22:08:30 <ehird> There's no programs to speak of.
22:08:43 <Sgeo> The current PSOX Server doesn't count as a program
22:09:05 <ehird> Sgeo: It wouldn't require many changes..
22:09:10 <ehird> Gimme svn access and I'll branch off and do it
22:09:24 <Sgeo> ehird, do you have an Assembla account?
22:12:16 <ehird> quite busy -- you'll see
22:12:37 <Sgeo> busy with PSOX, or with something else?
22:13:10 <Sgeo> Well, give me your email address, and I'll invite you
22:15:11 <ehird> penguinofthegods@gmail.com
22:15:37 <Sgeo> ehird, so you did have an Assembla account..
22:16:13 <Sgeo> http://www.assembla.com/user/best_profile/dxUzeMKqWr25QeaaeP0Qfc
22:17:38 -!- jix has quit ("CommandQ").
22:20:01 <ehird> a quite old project of mine
22:20:06 <ehird> it was a CMS built on Rails, minimal
22:20:08 <ehird> designed to run my site
22:20:13 <ehird> it was based on blocks and views..
22:20:25 <ehird> a block is a hunk of content, like a page or blog post or a picture with text or anything
22:20:34 <ehird> a view specified how they were displayed, and could be controlled with ruby code
22:20:44 <ehird> and you could have parent views and stuff
22:20:54 <ehird> so you could have a 'site' view which displayed the menu and header and footer
22:21:00 <ehird> then a 'blog' view which had that as the parent
22:21:09 <ehird> and some small ruby code to tell it what blocks to dispaly and how.
22:22:19 <Sgeo> Sounds interesting.. why didn't it get far?
22:23:02 <ehird> Sgeo: 1. Rails sucks 2. I am really terrible at keeping projects going
22:24:08 <ehird> Sgeo: But basically the same idea has carried throughout various languages and mindsets and I still plan to make somthing like it for my site.
22:24:15 <ehird> I think the timeline is:
22:24:25 -!- lispy has quit (Read error: 110 (Connection timed out)).
22:24:37 <ehird> Blink, <nothing for a while>, Alchemy, various Alchemys (Alchemii?), <nothing for a while>, <current plans>
22:26:17 <Sgeo> What CMSs are there for Python?
22:26:42 -!- timotiis has quit (Remote closed the connection).
22:31:15 -!- timotiis has joined.
22:31:35 -!- oerjan has joined.
22:31:59 <Sgeo> re timotiis hi oerjan
22:34:03 <oerjan> ehird: i changed the topic back when lispy arrived and didn't know what we were - thought it might be an idea to tell it in the topic :)
22:34:14 <ehird> Sgeo: no good ones
22:34:18 <ehird> in fact, cmses full stop suck
22:34:25 <ehird> they are either bloated or restricted.
22:35:51 <Sgeo> ehird, whachu working on?
22:36:52 <BMeph> So FALSE isn't considered esoteric anymore?
22:38:07 <BMeph> I didn't see it in EgoBot's list, there.
22:39:30 <ehird> It doesn't interpret all languages..
22:39:42 <ehird> esolangs.org/wiki/Language_list
22:40:07 <Sgeo> And last I checked, EgoBot wasn't PSOX enabled
22:41:54 <BMeph> Hmm, so MoinMoin is a wiki engine, that's used for CMS. I think that says more about CMS tech than anything else.
22:45:42 -!- RedDak has quit ("I'm quitting... Bye all").
22:58:17 -!- ihope has joined.
23:20:05 -!- bsmntbombdood has quit (Remote closed the connection).
23:20:45 -!- bsmntbombdood has joined.
23:32:13 -!- ehird`_ has joined.
23:32:30 <ihope> And what's a gΓΆa?
23:36:40 * oerjan tried googling it but had no success
23:36:55 <oerjan> even limiting to swedish pages
23:37:11 <oerjan> problem is google doesn't distinguish it from "goa" properly
23:38:15 <oerjan> ah exact match is better
23:38:49 <oerjan> bah the top hits seem misspellings of "gφra"
23:40:19 <oerjan> perhaps it is not an actual word
23:40:34 <oerjan> it _does_ seem like it could be cognate to the norwegian "gjψ"
23:42:30 <oerjan> which means feeding or dogs barking
23:46:04 * Sgeo randomly asks if it's a swear word
23:46:22 <oerjan> mind you that one is not easy to find either
23:46:51 <oerjan> i am tending towards believing "gφa" is at best a deliberate misspelling
23:46:54 <oerjan> especially in the context
23:48:06 <pikhq> oerjan: Is 'gora' of any relation to Agore? :p
23:48:38 <oerjan> doubtful. it means to do or make
23:52:36 <ihope> Agora is named after the Agora, isn't it?
23:53:23 -!- ehird has quit (Read error: 113 (No route to host)).
23:55:02 <oerjan> (actually there is a subtle difference between norwegian and swedish there - norwegian rarely uses it to mean "make", only "do")
23:57:09 <ihope> Any relation to the Spanish word "hacer"?
23:57:21 <ihope> That means to do or make.
23:57:55 <oerjan> i am not sure but i _think_ latin f can correspond to germanic g
23:58:40 <ihope> I think I also remember f corresponding to h somewhere... oh, right here.
23:58:40 <oerjan> wikipedia says facere is cognate to "do", rather
23:58:55 <oerjan> latin f -> spanish h, yes
23:59:04 <ihope> The word "do" comes from the word "facere"?
23:59:10 <oerjan> dh -> f in latin, d in germanic
00:00:15 <oerjan> there is some strange unicode i cannot read on that proto-indoeuropean in http://en.wiktionary.org/wiki/facio#Latin
00:00:24 <ihope> Now don't tell me the English word "chase" comes from "fugare".
00:01:04 <ihope> Proto-Indo-European notation is ridiculous. :-P
00:01:15 <oklopol> okay, okay, gΓΆa just sounded pretty.
00:01:31 <oklopol> you have to understand, i've been drawing eer diagrams for hours.
00:01:37 <ihope> Shall I start referring to Agora as AgΓΆra?
00:01:48 <oklopol> with the buggiest drawing program in the world
00:01:52 <oerjan> actually "chase" is from latin "captare", it says
00:02:27 <oklopol> wonder if there's a linux port for paint... i miss paint...
00:02:41 <ihope> I'd be slightly surprised if the word "capture" didn't come from the same word.
00:03:32 <oerjan> actually they're both probably derived from capere
00:03:58 <ihope> And "capital" and "cabeza" both come from the same Latin word, I'd expect.
00:04:13 <oerjan> capital is from caput, i think
00:06:25 <oerjan> cognate with head, more or less
00:06:42 <oerjan> "Old English h.afod, from Proto-Germanic *khaubuthan, from Proto-Indo-European *kauput- (..head, bowl..). Cognate with German Haupt, Dutch hoofd, Swedish huvud; the Indo-European root is also the source of Latin caput."
00:07:56 <ihope> h.afod from *khaubuthan?
00:08:32 <oerjan> that . is e with a bar btw
00:09:12 <oerjan> indo-european k -> germanic h is pretty basic
00:09:46 <ihope> But then you still have the fod from buthan.
00:10:10 <oerjan> i don't know how the proto-germanic fits in between
00:10:34 <oerjan> and t -> th which must have been weakened afterwards
00:11:10 <ihope> Makes sense, I guess.
00:11:22 <ihope> That "an" on the end was just a passing fad, then. :-P
00:11:31 <oerjan> http://en.wikipedia.org/wiki/Grimm's_law
00:11:40 <oerjan> probably just an inflection yeah
00:13:53 -!- slereah_ has quit (Remote closed the connection).
00:14:14 -!- slereah_ has joined.
00:18:43 <oerjan> there seems to be an entire class of nouns getting vowel+n endings in germanic, in norwegian the ending turns into -e, sometimes called "weak" nouns
00:18:53 <oerjan> german has something of the same, though not in this word (e.g. Name, with occasional -n)
00:18:53 <oerjan> (it's "hode" in norwegian)
00:20:40 <oerjan> (some norwegian dialects inflect weak nouns rather differently from strong ones)
00:21:56 <oerjan> that's the case in swedish too i think, e.g. plural -or vs. -ar
00:22:24 <oklopol> your mother is a weak noun.
00:34:37 -!- ihope_ has joined.
00:37:09 <oerjan> aha! the th -> d is http://en.wikipedia.org/wiki/Verner%27s_law
00:37:46 <slereah_> SimonRC, this is all your fault :o
00:38:20 <ihope_> Of course! #linguistics doesn't exist--wait, actually, it's much bigger than this channel.
00:39:59 <ihope_> It has almost a long novemnonagintilliard people in it.
00:40:35 <ihope_> Which I guess is 10^597.
00:45:42 <ihope_> Not as much as a long centillion, though.
00:46:37 <ihope_> Much less a long nongennovemnonagintilliard.
00:48:15 -!- timotiis has quit ("leaving").
00:50:37 <ihope_> Here's a fun word: milliatillion.
00:51:24 <slereah_> Although really, above 10^100, things start to get useless.
00:51:43 <slereah_> Above that, it's mostly silly probabilities and theoretical mathematics.
00:52:02 -!- ihope has quit (Read error: 110 (Connection timed out)).
00:54:20 <ihope_> Graham's number, the biggest important number.
00:54:44 -!- calamari has joined.
00:54:58 <Sgeo> Have you been keeping up with PSOX?
00:55:30 <pikhq> http://pikhq.nonlogic.org/wget.b
00:55:30 -!- slereah_ has quit (Read error: 104 (Connection reset by peer)).
00:55:44 -!- slereah_ has joined.
00:55:46 <pikhq> Actually fairly trivial with Sgeo's SVN; it has an HTTP domain.
00:55:54 <pikhq> (binding HTTP to a file descriptor)
00:55:59 <slereah_> Graham's number isn't very important.
00:56:16 <pikhq> It's the largest important number.
00:56:18 <ehird`_> slereah_: the real value is closer to 6, apparently.
00:56:18 <ihope_> Are there any bigger numbers that have any importance at all?
00:56:29 <ihope_> It's at least 11 and probably bigger.
00:56:59 <slereah_> Well, if it's bigger than 11, it shouldn't be too far from Graham's number.
00:57:14 <pikhq> Amusingly, Graham's number is too large to be written in scientific notation.
00:58:34 <Sgeo> pikhq, did you have any trouble writing wget.b? If so, what?
00:58:35 <oerjan> hm there seems to be a typo in the Verner article, th -> d should be th -> dh
00:58:37 <ihope_> I think I'll write a program to list out the name of a number.
00:59:20 <pikhq> Sgeo: The cat bit was slightly difficult, actually.
00:59:35 <pikhq> But even that wasn't too hard, since PSOX has decent debugging facilities.
00:59:51 <pikhq> Yeah; that was really helpful.
01:03:15 <Sgeo> It was basically made while trying to chase down a bug which turned out to be a * where there shouldn't have been a *
01:04:33 <ehird`_> one thing stupid about psox
01:04:38 <ehird`_> the os provides that stuff alread
01:05:36 <Sgeo> calamari, PSOX in general, or wget.b, or what?
01:05:57 <calamari> does it require a special interpreter?
01:06:14 <Sgeo> calamari, yes, svn co http://svn2.assembla.com/svn/psox/trunk
01:06:34 <Sgeo> Well, it's not a BF interpreter itself
01:06:38 <calamari> oh, so all the existing esolang interpreters/compilers will need to be redone to support psox?
01:06:49 <Sgeo> It goes between a standard interpreter and stdio
01:06:52 <Sgeo> calamari, not at all
01:07:06 <Sgeo> Misunderstood your question, is all
01:07:15 <ehird`_> Sgeo: will you remove the safety stuff? honestly, my os is very good at that and its going to be a pain coding the domains i want to with it
01:07:26 <Sgeo> ehird`_, it's going to be a pain to do:
01:07:35 <Sgeo> if "nogui" in G.SAFETYLIST:
01:07:41 <Sgeo> MY_VERSION = 0
01:07:46 <Sgeo> MY_VERSION = 1
01:07:49 <Sgeo> that's a pain?
01:08:02 <ehird`_> Sgeo: the whole idea is a pain
01:08:04 <Sgeo> or do you mean ffi? If ffi, just make the domain require ffi as a safety option
01:08:28 <ehird`_> Sgeo: the whole idea is a pain
01:08:37 <Sgeo> How is it a pain?
01:08:56 <ehird`_> calamari: it is half-assed disabling of certain functions in psox.
01:09:01 <pikhq> G=g64, where g1 = 3^^^^3, and gn = 3^(gn-1)3. . .
01:09:03 <ehird`_> that can already be done from within the os
01:09:07 <pikhq> Holy hell, that's big.
01:09:11 <Sgeo> calamari, on the command line, if for example, I don't want PSOX to go online, I can give the commandline option -s nonet
01:09:17 <ehird`_> Sgeo: or you could tell your os.
01:09:27 <Sgeo> Or if I want to allow it to go outside the sandbox, I can give -s fullfileio
01:09:39 <ehird`_> idea: if i removed the safety right now, how many people do you think will notice?
01:09:45 <Sgeo> ehird`_, I will
01:10:20 <ehird`_> yes... because you like the feature; not because of it being any good
01:10:34 <calamari> I suggest that if you don't want certain functions, you could run it sandboxed or as a less privileged user
01:11:02 <Sgeo> pikhq, what's your opinion on the safety debate?
01:11:22 <calamari> but for windows, that wouldn't work very well :)
01:11:23 <ehird`_> alternatively... if you don't want to do that... just remove the import from the code! seriously.
01:11:28 <ehird`_> calamari: see what i just said
01:11:36 <ehird`_> you don't run external code without reading it
01:11:38 <ehird`_> if you're paranoid like that
01:11:43 <ehird`_> its just like downloading and running a perl script!!
01:12:25 <calamari> ehird`_: did you help write PSOX?
01:12:40 <ehird`_> calamari: no, but i have svn access since a few seconds ago
01:12:48 <ehird`_> and have sat by and complained since forever
01:12:48 <Sgeo> calamari, ehird helped shape some parts, and is now trying to redo how I/O is done
01:13:02 <calamari> ehird`_: just seems like you're kinda hostile towards it ..hehe
01:13:10 <ehird`_> calamari: just that feature. :-)
01:13:26 <Sgeo> calamari, ehird`_ has been less hostile towards it since he pointed out that most of the bitwise stuff could be removed
01:13:48 <Sgeo> I think ehird`_ originally became hostile when some stuff he suggested was removed (TDATA (the "ANY" type))
01:13:57 <Sgeo> right, boolean, not bitwise
01:14:05 <calamari> bitwise is hard for bf tho.. and/or/xor
01:14:16 <Sgeo> calamari, I meant removed boolean
01:14:33 <Sgeo> http://trac2.assembla.com/psox/browser/trunk/spec/psox-utils.txt
01:15:07 <ehird`_> Sgeo: can i just remove the safety stuff and we'll see who exactly is going to write a brainfuck virus and regular people who won't read the code will download it, psox, an interpreter, and blindly run it?
01:15:57 <Sgeo> ehird`_, I don't see why you're so violently opposed to the safety stuff
01:16:28 <ehird`_> Sgeo: it's crap pointless and will make writing stuff harder for no reason
01:16:46 <ihope_> I'm quite fine with the safety stuff as long as there's some switch to disable it.
01:17:02 <Sgeo> ihope_, there's really nothing to disable
01:17:10 <ehird`_> ihope_: nobody will use it
01:17:11 <ihope_> What is the safety stuff, then?
01:17:21 <ehird`_> iit's just pointless and doesn't help devs
01:17:36 <Sgeo> ihope_, putting -s nonet to disable internet acces, or -s fullfileio to not force file I/O to be in a sandbox
01:18:03 <ehird`_> ... which is of course useless as your os can do it anyway
01:18:06 <ehird`_> and you can just edit the psox code
01:18:07 <calamari> Sgeo: are these options defined by the libraries, or are they hardcoded into the executable?
01:18:14 <ihope_> File I/O is in a sandbox by default?
01:18:16 <ehird`_> calamari: libraries have to go around them...
01:18:19 <Sgeo> calamari, defined by the libraries
01:18:22 <ehird`_> and 'normal users' aren't going to use psox anyway
01:18:27 <ehird`_> and people who will use psox
01:18:40 <ehird`_> it is JUST LIKE downloading a Perl program, can't you see that Sgeo?
01:18:51 <Sgeo> Who said I can read Brainfuck code written by others?
01:18:53 <ehird`_> How come they don't have any need for it; but PSOX does?
01:19:01 <ehird`_> And WHO IS GOING TO WRITE A BRAINFUCK&PSOX VIRUS?
01:19:02 <calamari> Sgeo: so if I'm writing my own library calamari::blah .. it could add -s abcd to do something?
01:19:20 <ihope_> Are there other safeties that are enabled by default?
01:19:24 <calamari> Sgeo: that seems fine to me.. *shrug*
01:19:40 <ehird`_> Sgeo: Don't you see, though? I honestly don't see how you don't get what I'm saying
01:19:53 <ihope_> If so, it seems that there is indeed something to disable.
01:20:06 <calamari> ehird`_: if I'm understanding what he is saying.. you don't even need to worry about the safety stuff if you don't care
01:20:20 <ehird`_> calamari: you most certainly do
01:20:44 <calamari> ehird`_: why? if my calamari:: library doesn't want to respect -s nonet, it would just ignore it
01:21:02 <ehird`_> calamari: ahh but it needs to respect -s nocalamarilibrary
01:21:08 <Sgeo> What calamari said
01:21:13 <ehird`_> and also if i want stuff included in the main psox distro
01:21:31 <ehird`_> Sgeo: Name one use case for the safety, and tell me how it is different from just running a Perl script?
01:21:40 <ehird`_> And also, tell me who will write a PSOX virus.
01:21:48 <Sgeo> ehird`_, someone who hated me
01:21:58 <Sgeo> or some other PSOX fanatic who is unable to read BF code
01:21:59 <calamari> ehird`_: if you don't like the standard library, make one without the safety stuff.. problem solved?
01:22:10 <ehird`_> I HATE YOU SGEO!! Wait.. I know... I'll write a PSOX virus!
01:22:14 <ehird`_> MWAHAHAHAHHAHAHAHHAHAHAHAHAHAHA!!!!!
01:22:42 <Sgeo> http://esolangs.org/wiki/PSOX
01:22:52 <ehird`_> Sgeo: anyway, what if I can't read Perl?
01:22:55 <calamari> Tritonio_: it's an esolang wrapper that extends its functionality
01:23:17 <Sgeo> Tritonio_, eventually, yes
01:23:29 <ehird`_> Sgeo: Here are some scenarios:
01:23:35 <Sgeo> Tritonio_, currently, there are only math utilities and HTTP
01:23:35 <ehird`_> 2. I download a Perl script
01:23:43 <ehird`_> 1. I don't know Brainfuck.
01:23:48 <ehird`_> 2. But I have a brainfuck interpreter and PSOX!
01:23:55 <ehird`_> 3. And I like downloading PSOX programs!
01:24:00 <ehird`_> 4. And someone has written a PSOX virus!
01:24:03 <ehird`_> 5. And I download it and run it!
01:24:20 <ehird`_> Sgeo: The Perl script is 5 times more likely to be a virus; PSOX just does not have the need for these features.
01:24:52 <calamari> ehird`_: I like the idea that my code will have the ability to read command line options
01:25:09 <ehird`_> calamari: Sure. That's great and all. I'm just highlighting a problem.
01:25:12 <Tritonio_> Sgeo, why don't you simply map the functions of a high level language? like python...
01:25:26 <ehird`_> And PSOX will offer normal command-line argument handling, presumably.
01:25:28 <Sgeo> calamari, thing is, there is a virtual command line that a PSOX client can read (-c fakecommandline)
01:25:47 <Sgeo> A bit ugly, but I don't know how to do it better
01:25:54 <Sgeo> wget.b uses it
01:26:12 <calamari> Sgeo: that sounds fine.. sh/bash do it that way
01:26:50 <Sgeo> calamari, but that weighs in in ehird`_'s favor in the debate, so -s isn't needed for that sort of functionality
01:27:22 <Sgeo> Well, I think that would leave the virtual command line blank actually
01:27:26 <Sgeo> I'm not sure how it works
01:27:54 <Sgeo> -c would generally be used for the client to read
01:28:03 <calamari> but then the program would have to handle it
01:28:10 <Sgeo> -s is instructions to the libraries usually regarding what to allow and not to allow
01:28:48 <calamari> well how about this? -s HTTP=no
01:29:12 <Sgeo> Hm, I'm not sure how I'd go about coding that
01:29:23 <Sgeo> Although that does make sense
01:29:28 <calamari> isn't HTTP definied in its own file?
01:29:33 <Sgeo> I don't know how optionparser works
01:29:45 <Sgeo> but the safety stuff could be stored in a dictionary I guess
01:29:55 <calamari> neither do I.. haven't really studied perl.. just python
01:30:15 <Sgeo> The reference PSOX interpreter is Python
01:30:19 -!- slereah__ has joined.
01:30:21 <ehird`_> that's just loading&unloading domains
01:30:21 <calamari> then the libraries wouldn't have to deal with safety at all
01:30:27 <ehird`_> but its nothing to do with safety
01:30:33 <Sgeo> calamari, yes they would
01:30:51 <calamari> well I can help you then.. I've done a lot with python parsing
01:31:01 <Sgeo> calamari, currently, PSOX.py uses regex
01:31:20 <Sgeo> http://trac2.assembla.com/psox/browser/trunk/impl/PSOX.py
01:31:59 -!- slereah_ has quit (Read error: 104 (Connection reset by peer)).
01:32:37 <Sgeo> ehird`_, you just removed safety from the trunk
01:32:47 <ehird`_> I was wondering how long it would take you to notice.
01:34:41 <Sgeo> ehird`_ broke PSOX
01:34:56 <Sgeo> MY_VERSION is required
01:36:22 <Sgeo> ehird`_, no you didn't
01:36:26 <Sgeo> You fixed it in one place
01:36:31 <ehird`_> Sgeo: the rest were already fixed
01:36:45 <Sgeo> dc_exampledomain?
01:37:04 <Sgeo> Also, one of the system domain functions looks at G.SAFETYLIST
01:37:25 <Sgeo> ehird`_, going to fix the specs too?
01:37:27 <ehird`_> that's specifically safety-related
01:37:32 <ehird`_> so, i'll comment it out and reserve it for use
01:38:09 <Sgeo> calamari, pikhq, do either of you find it objectionable that ehird`_ just unilaterally made a change without my permission?
01:38:28 <ehird`_> but i don't think anyone noticed
01:39:21 <ehird`_> Sgeo: anyway, all fixed and spec updated.
01:40:20 <Sgeo> No, python PSOX.py python testcustdomain.py isn't working
01:40:36 <Sgeo> Are you still importing SAFETYLIST?
01:40:54 <Sgeo> no, not in PSOX.py
01:42:19 <Sgeo> Or you could have assigned a blank list to G.SAFETYLIST
01:42:55 <calamari> Sgeo: dunno why.. but I gues I had to see something like wget before I woke up and got interested :)
01:43:14 <calamari> although I'm not completely thrilled by the impl.. seems like it could be simpler
01:43:32 <ehird`_> you could practically golf it
01:43:56 <calamari> so if you don't mind.. I may fool around with a fork and see what comes of it
01:44:00 <Sgeo> calamari, thank pikhq for wget.b
01:44:23 <calamari> then if you like it, could merge it
01:44:29 <ehird`_> calamari: please don't add safety... i can't be bothered to have another debate
01:44:50 <Sgeo> ehird`_, we really haven't finished our debate, you unilaterally removed safety
01:44:52 <calamari> you agreed with what I had to say about it I think
01:45:01 <ehird`_> Sgeo: Would a C psox be a good idea?
01:45:17 <Sgeo> ehird`_, not if it would be difficult to implement domains
01:45:18 <ehird`_> I mean, as the main impl. Justification:
01:45:25 <ehird`_> You can embed Python and stuff.
01:45:25 <calamari> ehird`_: C isn't good at dynamically importing stuff, is it?
01:45:45 <ehird`_> Sgeo: But I mean, the justification
01:45:49 <ehird`_> is that C has the best library support
01:45:52 <ehird`_> so the FFI would be the richest
01:46:08 <calamari> I think that'd tie it down to linux only
01:46:44 <calamari> you can't be suggesting that all os's have the same libraries
01:46:44 <Sgeo> No, Linux only is not an option. I complicated retrieving input so PSOX would work with Windows
01:47:09 <ehird`_> calamari: I assume Sgeo isn't actively planning to support VMS.
01:47:39 <ehird`_> as long as you write a 3-line wrapper for it
01:47:40 <calamari> ehird`_: can you give a dhopen example? I am not familiar with it
01:47:48 <Sgeo> Can't you embed C into Python?
01:47:48 <ehird`_> calamari: eh, google... not off the top of my head
01:47:56 <ehird`_> Sgeo: Uh, that's not quite the point.
01:48:03 <ehird`_> And no, you can't without a lot of horrid pain.
01:48:29 <calamari> ehird`_: the advantage of python is that it is cross platform with a standard set of libraries
01:48:43 <ehird`_> c has more libraries, too.
01:48:50 <ehird`_> also, you overestimate how complex psox is...
01:48:56 <ehird`_> and how many libraries it'd need to use
01:49:00 <calamari> s is.. but besides the std lib, nothing else is standard
01:49:32 <calamari> they'd pretty much have to install cygwin to use it
01:49:50 <Sgeo> One objection to a C interp as ref is that I don't know C
01:51:14 <ehird`_> i can write it as libc with a few wrappers for dlopen
01:51:48 <calamari> please provide a simple example, even if it's pseudocode
01:52:45 <ehird`_> which will call the win32api on windows
01:53:25 <calamari> but there is no guarantee that foo.so and foo.dll are even compatible
01:53:41 <ehird`_> they will be compiled to .so
01:53:47 <ehird`_> and the wrapper will handle it
01:53:51 <ehird`_> what is hard to understand about this?
04:03:31 -!- clog has joined.
04:03:31 -!- clog has joined.
04:04:10 <calamari> now all file I/O can go into a domain
04:04:26 <calamari> rather than be a PSOX core function
04:05:06 <Sgeo> So both you and ehird want the same thing?
04:05:16 <Sgeo> re: Shoving I/O into a domain?
04:05:22 <calamari> so, for example if you imported a domain dedicated to input to 0x01, then you'd say 0x01 "text" 0x00 .. something like that
04:06:11 <calamari> although it'd probably be more of an i/o domain, with file handling, etc
04:06:25 <Sgeo> Why these redesigns now when PSOX is so close to completion of 1.0?
04:06:41 <calamari> oh, I'm not saying you should redesign anything
04:07:10 <calamari> I'll implement it separately.. and then we can get together and see what we think of it
04:07:27 <calamari> that way if it doesn't work out, you haven't lost a thing
04:08:34 <Sgeo> I guess, but it seems like a lot of effort on your part for something that IMO isn't really needed
04:10:40 <Tritonio_> it's 6am here so i am going to sleep. i'll check it thoroughly tomorrow. calamari use this for reading from the table: >[>>>[-<<<<+>>>>]<[->+<]<[->+<]<[->+<]>-]>>>[-]<[->+<]<[[-<+>]<<<[->>>>+<<<<]>>-]<< i think it's ok. but maybe it's not...
04:10:57 <Sgeo> G'night Tritonio_
04:23:43 <calamari> Tritonio_: dunno if you will see this, but I never used the reading code
04:23:57 <calamari> I was examining the values directly from BF memory
04:31:19 <calamari> Sgeo: TDATA is mentioned in psox-types.txt then never defined
04:32:05 <Sgeo> calamari, oh right, that's old
04:33:34 <calamari> http://trac2.assembla.com/psox/browser/trunk/spec/psox-types.txt
04:34:02 <Sgeo> Nov. 8, 2007 old
04:34:18 <Sgeo> Revision 10 old
04:34:26 <calamari> what is STRINGNL needed for? I see the description, but why wouldn't a STRING work?
04:34:49 <Sgeo> A STRING would work, but it's a bit of overhead to have a 0x00 right at the end before the 0x0A
04:35:08 <calamari> oh, does every command have to end with 0x0A?
04:36:14 <calamari> I guess it would, since you read lines only
04:38:07 <Sgeo> The reason is for any esolang interpreters that only write out on a newline
04:38:11 <Sgeo> No floating point
04:40:06 <calamari> cool, just learned something about python.. j gives you imaginary numbers.. so a=1j, a+=1 gives a=(1+1j)
04:43:05 <Sgeo> FNUM(1) is 1 byte, FNUM(2) is two bytes, etc
04:49:23 <Sgeo> http://trac2.assembla.com/psox/browser/trunk/spec/psox_net.txt does this look good so far?
04:55:42 <calamari> Sgeo: did you guys consider another data representation for unknown length, escaped ASCII... where 0x01-0xFF are as normal, 0x00 0x00 = 0x00, 0x00 0xelse=EOF?
04:56:13 <Sgeo> calamari, that might not be easy for BF to process
04:56:13 <calamari> that would possibly incur less overhead than LNUM/LBYTES
04:57:37 <calamari> it wouldn't be too bad.. you'd use the standard if=0 code
05:00:45 <calamari> while not eof { data=read_byte; if=0 { data=read_byte; if<>0 { set_eof } }; if !eof { do_something_with_read_byte } }
05:03:06 <calamari> or is that a way of dismissing what I said without actually coming up with a refutation?
05:03:21 <oerjan> most exquisitly horrible
05:04:19 <Sgeo> I think I like the easier-for-BF-to-process solution
05:04:39 <calamari> doesn't seem like it's much different to me
05:05:01 <calamari> you're still going to need the inner if to decide what to do
05:06:19 <calamari> while not eof { data1=read_byte; data2=read_byte; if data1=0x01 { set_eof }; if !eof { do_something_with_data2 } }
05:07:07 <calamari> note that my if<>0 is easy to code up, so that's nothing
05:08:26 <calamari> see? they are essentially identical.. and now more capable langs don't have to output so much
05:09:45 <Sgeo> I still hold that the current way is simpler
05:10:17 <calamari> yes it is slightly simpler at the expense of approx twice as much I/O
05:11:48 <Sgeo> Wait, what was your way again?
05:12:31 <Sgeo> 0x01-0xFF are as normal, 0x00 0x00 = 0x00, 0x00 0xelse=EOF?
05:12:39 <calamari> 00 = ESC, ESC 00 = 00, ESC 01 = END_OF_DATA
05:13:42 <Sgeo> I thought there was a flaw, but I was thinking of something else
05:14:16 <Sgeo> Writing out to that format requires a bit of processing
05:14:37 <calamari> an if statement is a lot of processing?
05:14:49 <Sgeo> I rememeber trying to do something similar, where 0x01 escapes, and unescaped 0x00 is EOF
05:14:59 <calamari> if data_to_output = 0x00 { output 0x00; output 0x00 }
05:17:32 <calamari> I'm not saying you need to replace the other.. but it would be nice to see this as an alternative format
05:17:57 <calamari> although with the way you are doing the processing it might be a pain to add it
05:18:03 <Sgeo> Well, there's currently no provisions for clients to choose which format they want to do
05:18:23 <Sgeo> And that's basically the only way I can think of adding it
05:18:40 <calamari> ahh it's all up to the function receiving it?
05:18:57 <calamari> right, then it'd have to be one or the other
05:20:04 <calamari> serialization is such a pain :)
05:20:18 -!- ihope_ has quit (Read error: 110 (Connection timed out)).
05:25:16 -!- calamari has quit ("Leaving").
05:35:53 <Sgeo> Ok, I think I mostly completed the docs for the Net domain
05:36:10 <Sgeo> I'll then eventually work on the File I/O domain and base the FTP parts of the Net domain on that
05:39:22 <Sgeo> I should probably go now
05:54:06 -!- rutlov has joined.
05:56:42 -!- oerjan has quit ("leaving").
06:00:06 -!- rutlov has left (?).
06:26:09 <Sgeo> 0x00 0x08 0x01 0x05 0x00 0x00 0x50 0x0A
06:26:46 <Sgeo> ^^ beginnings of an HTTP server
06:27:34 <Sgeo> 0x00 0x08 0x02 0x00 0x0A
06:27:44 <Sgeo> 0x00 0x02 0x11 0x04 0x0A
06:27:58 <Sgeo> 0x00 0x01 0x00 0x0A
06:31:03 <Sgeo> 0x00 0x08 0x01 0x05 0x00 0x00 0x50 0x0A 0x00 0x08 0x02 0x00 0x0A 0x00 0x02 0x11 0x04 0x0A 0x00 0x01 0x00 0x0A
06:42:47 <RodgerTheGreat> hey guys, check it out- I wrote a lisp-derivative bingo card generator in postscript: http://www.nonlogic.org/dump/text/1203316480.html
07:04:41 -!- Sgeo has quit (Read error: 104 (Connection reset by peer)).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:11:23 -!- BMeph has quit ("calls it a night").
10:16:13 -!- olsner has joined.
10:24:10 -!- timotiis has joined.
10:35:07 -!- Corun has joined.
10:54:57 -!- es0n00b has joined.
10:55:16 <EgoBot> help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon
10:55:18 <EgoBot> 1l 2l adjust axo bch bf{8,[16],32,64} funge93 fyb fybs glass glypho kipple lambda lazyk linguine malbolge pbrain qbf rail rhotor sadol sceql trigger udage01 unlambda whirl
10:56:42 <es0n00b> !unlambda ```s``sii`ki``s``s`ks``s``s`ks``s`k`s`kr``s`k`si``s`k`s`k`d````````````.H.e.l.l.o.,. .w.o.r.l.d.!kk`k``s``s`ksk`k.*
10:57:16 <slereah_> Me neither. I don't do well on strict evaluation.
11:01:40 <es0n00b> it was supposed to do an endless loop print of "Hello World!"
11:01:59 <es0n00b> but it's based on unlambdaV3
11:02:12 <es0n00b> (copied from http://www.madore.org/~david/programs/unlambda/#lambda_elim)
11:02:36 <slereah_> Well, EgoBot doesn't like infinite loop much
11:02:36 -!- Corun has quit ("This computer has gone to sleep").
11:03:00 <es0n00b> yeah. just wanted to test egobot's limits
11:05:02 <es0n00b> are all egobots languages obsficated?
11:05:45 <es0n00b> i know esoteric doesnt always mean obsficated (or does it?)
11:05:56 <slereah_> I wonder if it would output something with a random string.
11:06:01 <es0n00b> malbolge is a nightmare from what i've read
11:06:15 <slereah_> Well, the popular languages are mostly turing tarpits.
11:06:39 <slereah_> And they're usually harder to read than write.
11:06:47 <slereah_> !malbolge Γ©(,hjy_Γ©n,hju_Γ§)Γ©j-uΓ©"(Γ¨k87"Γ¨k876l4k"-k4'7Γ¨_4kl7kn7-"-jk4Γ¨-l4
11:06:48 <EgoBot> invalid character in source file
11:07:12 <es0n00b> just wondering which is a ?good? one to try and write an interpreter in
11:07:35 <es0n00b> so i could test a prototype language in another language
11:07:54 <es0n00b> (good is hard to define in this sense)
11:09:25 <es0n00b> unlambda has still got me thinking. i just still cant quite get my brain around it
11:09:27 <slereah_> !malbolge (=<`#9]~6ZY32Vw/.R,+Op(L,+k#Gh&}Cdz@aw=;zyKw%ut4Uqp0/mlejihtfrHcbaC2^W\>Z,XW)UTSL53\HGFjW
11:10:11 <es0n00b> unlamba accepts functions, performs functions on them, and returns functions
11:10:26 <slereah_> Well, it also does side effects.
11:11:19 <es0n00b> surely, if unlambda is TC, there exists unlambda functions that will return the derivatives, antiderivatives, and inverses of functions
11:12:01 <es0n00b> i just cant work out how to represent numbers other than natural numbers
11:12:18 <slereah_> Well, you can try to look at the foundation of mathematics.
11:12:47 <es0n00b> i understand thats what unlambda is about- mathematical foundation
11:12:47 <slereah_> For instance, rational numbers can be represented as ordered pairs.
11:12:56 <slereah_> And unlambda has ordered pairs
11:13:37 <es0n00b> i'm just waiting for the flash of inspiration when i understand exactly what S, K and ` do
11:14:14 <olsner> ah, combinatory logic ensnaring yet another wayward soul
11:14:35 <slereah_> It has this simple yet alien beauty
11:14:57 <slereah_> There's nothing much more to get, really.
11:15:15 <slereah_> The thing to understand after that is how to change that into something useful.
11:15:59 <slereah_> An easy one is the conditional.
11:16:14 <slereah_> "True" and "False" can be written as k and `ki
11:16:49 <slereah_> A conditional can be written as ``[condition][A][B]
11:17:05 <es0n00b> ```sabc == ``ac`bc. is this the simplest use of S?
11:17:22 <slereah_> If it's true, it transforms to k, and ``k[A][B] converts to A
11:17:53 <slereah_> False, to `ki, and ```ki[A][B] converts to `iB, to B
11:18:39 <slereah_> So ``[condition][A][B] is "if condition, then A, else B"
11:18:54 <es0n00b> ok, so ```sabc==``ac`bc and ``kab==k define S and K?
11:19:55 <slereah_> Or in lambdas, S = ^abc.(ac)(bc), K = ^ab.a
11:20:06 <es0n00b> wow - i understand what you mean by trying to make something useful out of it
11:21:14 -!- olsner has quit ("Leaving").
11:21:59 <es0n00b> (trying to absorb unlamdba's if-then-else)
11:22:58 <es0n00b> ok -why is k=TRUE, `ki=FALSE?
11:23:54 <slereah_> You could probably work some true-false with something else, but conditionals are easy to do this way.
11:24:05 <slereah_> Logical operator are easy too.
11:24:07 <es0n00b> ok. and what does the I in `kI do?
11:25:03 <slereah_> It's not necessary, since there's also ```skkA = ``kA`kA = A
11:25:21 <es0n00b> (so used to instructions doing things. is it still right to call them instructions, and say that they do thinks? unlambda is beginning to unravel my understanding of the definition of things)
11:26:03 <slereah_> Here's a useful fellow : ``s``si`k`k`ki`kk
11:26:16 <es0n00b> ok. think i got that part. `iA says perform identity function on A, returning identity(A)=A
11:26:41 <slereah_> Returns true for 0, false for something bigger.
11:27:21 <es0n00b> example of "``s``si`k`k`ki`kk" plz?
11:27:52 <slereah_> Well, in Church numerals, 0 is ^fx.x -> ki
11:28:07 <slereah_> So ```s``si`k`k`ki`kkki transforms to k
11:28:36 <slereah_> And 1 = ^fx.fx = (through eta reduction) ^x.x = i
11:28:47 <slereah_> so ```s``si`k`k`ki`kki transforms to ki
11:29:38 <slereah_> 2 would be something like ``s``s`ksk``s``s`ksk`ki according to my abstraction elimination program, so I'll probably stop there
11:30:29 <es0n00b> ok- being able to evaluate x=0 is useful, but evaluating x>0 is more useful
11:31:43 <slereah_> a>b is ``b`b``c`t0k``c``bb``b`b``c`t`k0k``c``bb`c`t``c``bc``b`bc``c``bc``b`bb``cb``b`bttkiii in lazy bird, and it's already quite compressed.
11:31:45 <es0n00b> x=y, x=0, x<0, etc etc can all be derived from x>0 (the basis of OISC type languages)
11:32:46 <slereah_> Well, if I use the a<b (``b`b``c`t0k``c``bb``b`b``c`t`k0k`c`c`t``c``bc``b`bc``c``bc``b`bb``cb``b`bttkii) and apply 0, I get ``b``c`t0k``b``b``c`t`k0k``c`c`t``c``bc``b`bc``c``bc``b`bb``cb``b`bttki0i
11:33:28 <slereah_> Of course, since this is Chuch numerals, it will always be true except for 0.
11:34:40 <es0n00b> its annoying, im only half getting it
11:35:02 <es0n00b> i get the idea of how it can work, but dont understand the mechanics of how it works
11:36:30 <es0n00b> so - it should be possible to compile OISC into unlambda (sort of the definition of both being TC)
11:36:58 <es0n00b> by using the x>0 and if-then-else versions of unlamba
11:37:06 <slereah_> Yes, though probably not pleasant.
11:37:41 <slereah_> You can probably tinker some negative number with some ordered pair <true or false;number>
11:37:54 <es0n00b> the problem would then be trying to find ways of eliminating redundant code
11:37:58 <slereah_> And the operation applied on it will depend on the truth value.
11:39:03 <es0n00b> the idea has been floating around in my head for a few days now, the problem of compiling one Turing tarpit into another tarpit
11:39:18 <slereah_> Well, a simple way is to write first in lambdas, since with lambda calculus, any function f used more than once can be rewritten as (^f.program)function
11:39:35 <slereah_> But lambda calculus doesn't transform to combinators very efficiently
11:43:18 <es0n00b> machine translation if fascinating. like transforming english->japanese->english. good for shits and giggles
11:44:28 <es0n00b> (too many ideas - too little time and skill to implement)
11:45:29 <es0n00b> cant even imagine trig function i unlamba, but i guess they've been explored already??
11:46:44 <es0n00b> thinking of it - even divide seem difficult.
11:47:02 <slereah_> I suppose it's just some iteration of series.
11:47:59 <es0n00b> of course! first, define factorial, then use some recursive version of the Taylor series!
11:48:29 <slereah_> It's usually the standard example for the fixed point combinator.
11:50:14 <es0n00b> ok. know much about the gamma function (related to factorial, but also valid for non-natural numbers)
11:51:11 <slereah_> Well, we don't use it that much in physics.
11:51:29 <es0n00b> http://en.wikipedia.org/wiki/Gamma_function
11:52:22 <es0n00b> how wouyld you define the integral version of gamma in unlamba?
11:53:02 <slereah_> Well, my guess would be that first, you have to define reals.
11:53:47 <slereah_> Although you could probably scratch up something out of rationals and taylor series.
11:54:28 <es0n00b> i worked out a way to define integration by recursion of a function without determining its antiderivative, but it was only valid for bounded integrals
11:54:36 <es0n00b> ie wouldnt apply for gamma
11:55:48 <slereah_> I'd advise to first work on simpler programs.
11:56:09 <slereah_> Unlambda isn't the easiest language in the world.
11:56:33 <slereah_> Also often hard to manipulate, since it's hard to keep tracks of variables
11:56:34 <es0n00b> (just want to dive in and do things - but understand it aint that easy)
11:57:57 <es0n00b> PS: yep. gamma doesnt have an taylor polynomial definition, but there is another non-integral definition that would be an easier approach
11:58:06 <slereah_> I personnaly usually just write my functions in lambda calculus.
11:58:14 <es0n00b> (at least not an EASY taylor definition)
11:58:28 <slereah_> And then converts it to combinators.
11:58:49 <slereah_> I keep a small list of functions, plus numbers from 0 to 100
11:59:27 <slereah_> And then, I try to optimise the functions.
12:00:10 <es0n00b> thats the sort of line of thinking i was having
12:00:26 <slereah_> Usually by letting them run through Lazy Bird (it can prints the expression at each step, so I can pick the shortest), trying to see by hand what it does, or passing it through the JUGGERNAUT
12:00:41 <slereah_> The JUGGERNAUT is a fucking stupid program, but it works.
12:01:03 <slereah_> Well, on a certain class of expressions at least
12:01:04 <es0n00b> read a little about Lazy-Bird. whats that about?
12:01:32 <slereah_> That's my version of unlambda, with lazy evaluation.
12:02:03 <es0n00b> sort of a short-cut version of unlamba?
12:02:39 <es0n00b> (easier to read, not difficult to convert Lbird -> unlambda?)
12:02:59 <slereah_> Well, actually, it's probably not that easy to convert to unlambda
12:03:06 -!- sebbu2 has joined.
12:03:51 <slereah_> The Juggernaut will generate all possible combinators (minus some expressions like `iA, since it's the same as A), try them on a bunch of dummy combinators, and compare the result to the original combinator.
12:04:28 <slereah_> For instance, for some dummy combinator A, ```skkA converts to A, and so does `iA, so it will give that answer.
12:05:15 <slereah_> But stuff like ``uuA converts to `A``uuA, so it won't be able to find equivalents without u's in them.
12:05:48 <slereah_> It's also very fucking slow, but it's useful on small bits of code.
12:06:06 <es0n00b> !unlambda ``s``s`ksk``s``s`kski
12:06:36 <slereah_> Unlambda expressions without output won't give you much results.
12:07:28 <slereah_> !unlambda ``k```.b.u.t.t````.s.t.u.f.f
12:07:58 <es0n00b> guess there are more consise ways of representing large numbers, other than the iterative version like s(s(s(z)))
12:08:22 <slereah_> Large numbers can usually be represented by operations on smaller one.
12:08:42 <slereah_> The most basic is through the successor operator, but there's shorter ways
12:09:03 <slereah_> For instance, http://membres.lycos.fr/bewulf/Russell/Lazy%20Bird/Church%206.txt
12:10:36 <slereah_> The sudden reduction in size of the writing usually corresponds to a power of some numbers
12:10:53 <slereah_> Because the power of a number is the shortest operation.
12:11:33 <slereah_> 256 is very short because it's (2^2)^(2^2)
12:11:36 <es0n00b> (knew powers would have to feature somewhere in the definitions)
12:12:37 <es0n00b> was kind of thinking along the lines of binary is more compact than unary, but other base numbers being more efficient for other nautral numbers
12:12:55 <es0n00b> but your page defines that brilliantly. THX!!
12:13:27 <slereah_> I actually mostly used the Lazy K reference doc on numbers.
12:13:35 <slereah_> Except translated from lambdas to lazy K
12:14:14 <es0n00b> ok. how do i get !unlambda to evaluate and output 256=`m`m``sbi. it's going to return it in unary form, right??
12:14:40 <slereah_> Well, church-to-ASCII is bothersome to write.
12:14:44 <es0n00b> (seems like it's going to be too easy to flood the page)
12:15:29 <es0n00b> sorry. my question wasn't well defined. lets say i wanted to print 256 asterisks??
12:15:31 <slereah_> !unlambda ````b``sb`m``sbi``sbi`d.xi
12:15:32 <EgoBot> ./unlambda/unlambda: file ./tmp/egobot.0kJFuG: parse error
12:15:51 <slereah_> I'll never understand unlambda.
12:16:35 <slereah_> (Birdiest being Lazy bird -> SKI translator)
12:17:23 <es0n00b> (said with my lasiest owl impersonation)
12:18:27 <slereah_> It just replaces b-c-w-... with their sk equivalents.
12:18:41 <slereah_> !unlambda ``````s`ksk``s``s`ksk```s``skk``skk``s``s`ksk``skk``s``s`ksk``skk`d.xi
12:19:00 <slereah_> !unlambda ``````s`ksk``s``s`ksk```s``skk``skk``s``s`ksk``skk``s``s`ksk``skk.xi
12:19:56 -!- sebbu has quit (Connection timed out).
12:20:31 <slereah_> So yes, there's the unary printing.
12:21:15 <es0n00b> !unlamda ```s``s``sii`ki`k.*``s``s`ks``s`k`s`ks``s``s`ks``s`k`s`kr``s`k`sikk`k``s`ksk
12:21:20 <es0n00b> !unlambda ```s``s``sii`ki`k.*``s``s`ks``s`k`s`ks``s``s`ks``s`k`s`kr``s`k`sikk`k``s`ksk
12:21:40 <es0n00b> (ok - either fibbonacci or crash)
12:22:27 <es0n00b> just copying straight from http://www.madore.org/~david/programs/unlambda/
12:22:47 <es0n00b> but the codes might be for unlambdaV3.0
12:23:15 <es0n00b> so far, none of the codes from that page have worked. at least, not the ones with looping
12:23:26 <es0n00b> your right. egobot might not like infinite loops
12:23:39 <es0n00b> anyway to kill a bad looping process??
12:23:50 <EgoBot> help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon
12:23:52 <EgoBot> 1l 2l adjust axo bch bf{8,[16],32,64} funge93 fyb fybs glass glypho kipple lambda lazyk linguine malbolge pbrain qbf rail rhotor sadol sceql trigger udage01 unlambda whirl
12:24:26 <slereah_> Well, you could either use iterations instead of loop, or you could use v with some conditional.
12:24:46 <es0n00b> ok. time to go to bed. and count sheep. in LAMB-da, of course ;)
12:25:12 <es0n00b> ciao for now. have a good day
12:25:30 -!- es0n00b has quit ("JWIRC applet").
13:44:56 -!- timotiis_ has joined.
13:58:00 -!- timotiis has quit (Read error: 110 (Connection timed out)).
15:07:51 -!- helios24 has joined.
15:09:13 -!- jix has joined.
15:26:21 <Tritonio_> i think they work now... http://inshame.blogspot.com/2008/02/efficient-brainfuck-tables.html
15:47:35 -!- ehird` has joined.
15:48:15 <ehird`> hello, vaguely crazy world
15:48:45 <ehird`> the topic would be clearer with | as the seperator
15:49:21 -!- ehird` has set topic: the international hub for esoteric programming language design and deployment | map: http://www.frappr.com/esolang | forum: http://esolangs.org/forum/ | EgoBot: !help | wiki: http://esolangs.org/wiki/ | logs: http://tunes.org/~nef/logs/esoteric/ or http://ircbrowse.com/channel/esoteric | Pastebin: http://pastebin.ca/.
15:52:25 -!- faxathisia has joined.
15:56:26 <ehird`> does !unlambda not support v3?
15:58:44 <slereah_> Well, since the example used involved infinite loops, I'm not sure that was the problem
16:18:03 <ehird`> pikhq: what's this about tcl virtual what what
16:50:53 -!- RedDak has joined.
17:04:06 -!- RedDak has quit (Remote closed the connection).
17:16:31 <pikhq> ehird`: Tcl has a virtual filesystem layer, allowing one (with the right module) to just attach a file descriptor to http://pikhq.nonlogic.org/wget.b.
17:16:40 <pikhq> Or to a file in a Tclkit. . .
17:17:36 * ehird` is considering writing a cleaner psox
17:17:43 <ehird`> Socks Pee, or something. :-P
17:18:42 <pikhq> (are you at all familiar with Tclkits, Starkits, and Starpacks?)
17:19:13 -!- RedDak has joined.
17:30:58 <pikhq> A Tclkit is a full, complete Tcl setup in one file.
17:31:19 <pikhq> A Starkit is an archiving format for Tcl files. A Tclkit can run one directly.
17:31:26 <pikhq> A Starpack is a Tclkit with a Starkit in it.
17:37:51 -!- RedDak has quit (Remote closed the connection).
17:46:37 -!- RedDak has joined.
17:46:51 <ehird`> "(I should be able to manipulate code as a list)." -- Someone, on Scheme.
17:48:17 <pikhq> [info proc proc_name] returns the code body of a function.
17:50:02 <ehird`> faxathisia: Well, that's what Lisps are known for..
17:50:07 <ehird`> You can manipulate code as a list.
17:57:35 -!- Tritonio_ has quit (Remote closed the connection).
17:57:52 -!- Tritonio_ has joined.
17:58:38 -!- BMeph has joined.
18:00:49 -!- olsner has joined.
18:16:16 -!- Corun has joined.
18:26:38 -!- RedDak has quit (Remote closed the connection).
18:32:07 -!- helios24 has quit ("Leaving").
18:45:08 -!- ais523 has joined.
18:51:17 -!- Endeavour has joined.
18:51:17 -!- Endeavour has left (?).
18:51:18 -!- Endeavour has joined.
18:51:20 -!- Endeavour has quit (Client Quit).
18:52:13 <ehird`> i'll take that to #endeavour
18:55:44 * ais523 has been trying to write code on some buggy hardware
18:56:01 <ais523> although the code was originally in C, I ended up having to edit the assembly by hand to get round the machine code instructions that didn't work
18:56:08 <ais523> and even then it only ran under a debugger...
18:56:33 * slereah_ thinks of : http://www.mini-moto.fr/photo%20jpeg%20bon%20format/buggy%201.jpg
18:56:37 <ais523> hopefully it was just a faulty chip
18:56:49 <ais523> so I've ordered a couple of replacements to see if they work
18:57:50 <ehird`> (Endeavour, btw, is my EgoBot-alike)
18:58:04 <ais523> does it run any esolangs yet?
19:01:01 <ehird`> in tcl due to pikhq's ... uh, total failure to evangelize it
19:01:06 <ehird`> but at least that means it'll be utf-8!
19:05:51 -!- timotiis_ has changed nick to timotiis.
19:10:48 -!- slereah_ has quit (Read error: 104 (Connection reset by peer)).
19:11:48 -!- slereah_ has joined.
19:29:20 -!- Sgeo has joined.
19:32:52 * ais523 has a new idea for an uncomputable language
19:33:05 <ais523> it's sort of like Prolog, but uses multithreading rather than backtracking
19:33:09 <ais523> with an infinite number of threads
19:33:19 <ais523> it starts with a thread for every possible value of every possible variable
19:33:28 <ais523> and the threads die whenever they reach a contradiction
19:33:37 <ehird`> ais523: you can do that, lazily
19:33:51 <ais523> it's trivial to write the halting problem in it
19:33:54 <ais523> and infinite loops are impossible
19:34:17 <ais523> because it oraclises to tell that the infinite loop would happen
19:34:51 <Sgeo> Oh ehird`, maybe FDs aren't the way to go with a GUI domain, come up with something else?
19:34:57 <oklopol> if it solves *the halting problem*, it's an oracle, if it computes its own halting problem it's an impossible language.
19:35:13 <ais523> it computes its own halting problem
19:35:15 <ehird`> Sgeo: I'm writing soxp, so maybe not best to ask me
19:35:26 <ais523> but the famous impossibility proof for halting fails on it
19:35:31 <ais523> because you can't drive it into an infinite loop
19:35:31 <ehird`> Sgeo: Like psox, but soxp.
19:35:40 <Sgeo> Are you serious?
19:35:49 <ehird`> ais523: I'm pretty sure you can kind of compute that, lazily and non-deterministically
19:36:30 <Sgeo> ehird`, why are you wasting effort on your own version of something that already exists?
19:36:43 <ehird`> Sgeo: because soxp is sane -- so it doesn't exist
19:36:45 <ais523> Russel:-suchthat(X,not(member(X,X))),member(X,X).
19:36:59 <ais523> I thought a while about that one before realising it failed
19:37:01 <ehird`> all esolangs are wasting time pretty much anyway.
19:37:04 <Sgeo> How is PSOX not sane?
19:37:12 <ehird`> Sgeo: Various ways, none of which you acknowledge
19:37:13 <ais523> replacing member(X,X) with not(member(X,X)) also causes it to fail
19:37:22 <ais523> but adding neither, the command succeeds
19:37:23 <Sgeo> ehird`, such as?
19:40:51 -!- slereah_ has quit (Read error: 104 (Connection reset by peer)).
19:40:59 <ais523> the reasoning: the notion of a set that contains all sets that do not contain themselves is not a contradiction by itself
19:41:11 <ais523> but it is a contradiction to assert either that it contains itself or that it doesn't
19:41:14 <ehird`> russel lists = [not (elem x x) | x <- lists]
19:41:20 <Sgeo> ehird`, so no GUI domain?
19:41:29 <ehird`> Sgeo: soxp will have one.
19:41:51 <Sgeo> PSOX already exists, you know
19:42:08 -!- slereah_ has joined.
19:42:29 <ehird`> russel = filter (\x -> not (elem x x))
19:42:34 <ehird`> doesn't type, of course.
19:42:59 <ais523> in my new idea of a language infinite datatypes are entirely possible and even possibly common
19:43:23 <ehird`> infinite datatype in AwesomeHaskell:
19:43:26 <oklopol> ais523: kinda like in haskell?
19:43:35 <ehird`> oklopol: infinite datatypes are no tpossible in haskell.
19:43:37 <Sgeo> ais523, do you think ehird` should attempt to redo PSOX in what he believes to be a cleaner way?
19:43:38 <ehird`> that's why my thing doesn't type.
19:43:42 <ehird`> that's why the y combinator doesn't type
19:43:50 <ehird`> and sgeo can't come up with opinions for himself without consulting other people.
19:43:52 <ais523> ehird`: Haskell syntax inspired much of the syntax of my new language
19:44:01 <ais523> but it looks more like Prolog because the Prolog syntax is used more often
19:44:09 <ehird`> type InfiniteListType = [InfiniteListType]
19:44:14 <ais523> infinite datatypes ought to be possible anywhere
19:44:14 <Sgeo> ehird`, My opinion is that you shouldn't do it
19:44:23 <ais523> at least anywhere that doesn't care about efficiency
19:44:27 <ehird`> Sgeo: Yes, because god forbid you get competition
19:44:41 <ais523> I still want my t -> t -> t -> t -> ... datatype
19:44:42 <Sgeo> ehird`, it's needless work on your part
19:44:48 <ehird`> thank you, sgeo, for making me see the light. From now on, since you say I shouldn't do it, I won't.
19:44:53 <ais523> so I can write sii in Haskell
19:45:04 <ehird`> type Inf a = a -> Inf a
19:45:37 <ais523> that's easy enough to define in Haskell, only the compilers don't allow it
19:45:47 <ais523> at least not without the constructor
19:45:52 <ais523> and the constructor sort of defeats the point
19:46:15 <ehird`> type Fooer a = (Fooer a -> a)
19:46:15 <ehird`> type YType a = (Fooer a) -> a
19:46:15 <ehird`> y f = (\x -> x x) (\x -> f (x x))
19:46:23 <ehird`> ais523: This is awesomehaskell!
19:46:29 <ais523> infinite types aren't even needed for sii, just the typechecker isn't good enough
19:46:52 <ehird`> type Fooer a = Fooer a -> a
19:46:57 <ehird`> is that even the first argument of y?
19:47:00 <ehird`> It seems like it should be
19:47:01 <ais523> churchnumeral2 x y = x (x y)
19:47:18 * Sgeo wonders how likely/unlikely it is for ehird` to ever complete his soxp
19:47:21 <ais523> then (sii churchnumeral2) has a perfectly well-defined type
19:47:30 <ehird`> Sgeo: Certainly quickly
19:47:33 <ehird`> In fact, I will start a spec now.
19:47:56 <Sgeo> I think I'll work on implementing the Net domain now
19:48:12 <Sgeo> pikhq, does the Net domain really need FTP stuff other than getting from an FTP URL?
19:48:29 <pikhq> Sgeo: That ought to suffice.
19:48:35 <ais523> I wouldn't have thought so
19:48:48 <Sgeo> pikhq, getting from a URL? ok
19:48:50 <pikhq> A more complex FTP client would want to use the TCP stuff, anyways.
19:49:16 <Sgeo> or use a custom FTP domain
19:50:03 <pikhq> Hell, even if ehird creats the world's most awesome API for esolangs, at least Sgeo can claim credit in making the first one that's been fully implemented.
19:50:11 <pikhq> And driving ehird's into existence. ;)
19:52:39 <ehird`> http://pastebin.ca/908860
19:55:27 * ais523 prefers the Sgeo I/O design to the ehird` I/O design
19:55:38 <ais523> but it's a pity that you can't portably have waiting-for-input detection
19:55:50 <ehird`> yes, my io will have a sugar on top of it
19:55:51 <ais523> or maybe you can... I heard somewhere that Windows is POSIX-compatible
19:56:02 <ais523> which would mean that select may be available there after all
19:56:08 <ehird`> my model is cleaner conceptually though
19:56:11 <ehird`> and the sugar will make it even nicer
19:56:17 <ais523> probably with a different name and syntax, knowing Microsoft
19:56:52 <Sgeo> ais523, all I know is that the Python docs for select.select() say that Windows can't do it with files
19:57:09 <ais523> you don't have to do it with files, though
19:57:21 <Sgeo> well, pipes I think I meant
19:57:43 <ais523> select isn't very useful with other types of file-like object
19:57:52 <Sgeo> " Note: File objects on Windows are not acceptable, but sockets are. On Windows, the underlying select() function is provided by the WinSock library, and does not handle file descriptors that don't originate from WinSock.
19:58:00 <Sgeo> http://docs.python.org/lib/module-select.html
19:58:06 <ais523> I've only ever used it with pipes and keyboard/screen stdin/stdout
19:58:21 <ais523> and I wonder whether pipes are implemented with sockets on Windows
19:58:52 -!- slereah_ has quit (Read error: 104 (Connection reset by peer)).
19:59:06 -!- slereah_ has joined.
19:59:32 <pikhq> ehird`: Would I be correct in assuming you'll simplify the type system?
20:00:01 <ehird`> pikhq: Most definately.
20:00:11 <Sgeo> ehird`, how would it be simplified?
20:00:24 * pikhq should play with that fancy array code
20:00:32 <ehird`> Sgeo: not being ridiculous
20:08:24 <ehird`> lazy lists in 23 lines of simple, readable ruby. cool.
20:09:11 -!- slereah__ has joined.
20:09:30 -!- slereah_ has quit (Read error: 104 (Connection reset by peer)).
20:10:48 <ehird`> faxathisia: hmm, i was trying to make 'fold' (inject) lazy
20:11:28 <ehird`> ones = LazyList.new(1) {ones}
20:11:50 <ais523> fold can be lazy in one direction
20:11:59 <ehird`> ones.map {|x| puts x} # this actually prints one 1, until you give it tail. heh.
20:12:07 <ais523> although admittedly if you try that it will go into an infinite loop if the list is, in fact, infinite
20:13:17 -!- pikhq_ has joined.
20:13:53 <Sgeo> pikhq_, should I have sockets flush themselves whenever they're written to?
20:14:04 -!- pikhq has quit (Read error: 104 (Connection reset by peer)).
20:14:04 <ehird`> def inject(base, &blk)
20:14:04 <ehird`> blk[head, tail.inject(base, &blk)]
20:14:08 <ehird`> think it's worth making that use a thunk?
20:14:31 <ais523> Sgeo: I know you weren't asking me, but I know from experience that some obscure bugs in code I wrote were traceable to not doing that
20:14:49 <Sgeo> ais523, so don't force the client to do it themselves?
20:14:52 <ais523> combine that with the slow speed of most esolangs, and there's no reason not to
20:19:32 <ehird`> ais523: http://pastebin.ca/908906 weird bug with thunks
20:19:45 <ehird`> def method_missing(*args, &blk)
20:19:45 <ehird`> Thunk.new {@block.call.__send__(*args, &blk)}
20:19:49 <ehird`> thus making it return a Thunk
20:19:55 <Sgeo> According to #python sockets aren't buffered, so don't flush
20:19:58 <ehird`> if it type-checks that,
20:20:03 <Sgeo> I am using sendall() though
20:20:07 <ehird`> then it should go through method_missing, and getting it properly
20:20:13 <ehird`> it uses the internal ruby c api to do it
20:20:28 <ais523> Sgeo: so in otherwords even the Python devs thought autoflush was a good idea
20:23:59 <ehird`> one thing i wish ruby had was to_b
20:24:04 <ehird`> definable boolean coercion
20:24:41 <ais523> in C++ it would be your_class_name_here::operator(bool)
20:24:52 <ais523> you overload the cast operator
20:25:33 <ehird`> but, can you do this in C++:
20:25:39 <ehird`> class TrueClass; def to_b; false; end end
20:25:46 <ehird`> class FalseClass; def to_b; true end end
20:26:07 <ehird`> ais523: true.is_a? TrueClass
20:26:23 <ehird`> (ok, admittedly since TrueClass/FalseClass instances (aka true & false) would be handled primitively, that would do nothing, but :))
20:26:33 <ais523> class TrueClass{public: bool operator(bool){return false;}};
20:27:08 <ehird`> ais523: but true isn't a trueclass in c++...
20:27:22 <ehird`> that ruby changes the meaning of true and false
20:27:22 <ehird`> though, as my note says, tahat wouldn't actually work
20:27:32 <ais523> in C++ you have to know which type each object is at all times
20:27:40 <ais523> but you could create a constructor that constructed it from true
20:27:53 <ais523> thus allowing true to be casted into a TrueClass
20:28:03 <ehird`> yes... but true IS a trueclass, in ruby
20:28:05 <ais523> you could even have it throw an exception if you wrote (TrueClass)false...
20:28:08 <ehird`> true is a regular object
20:28:10 <ehird`> an instance of TrueClass
20:28:18 <ais523> ehird`: what if you have two TrueClasses
20:28:24 <ais523> with different member functions
20:28:29 <ehird`> there's only one TrueClass
20:28:49 <ehird`> this is how e.g. you can extend Array and stuff in ruby
20:28:56 <ehird`> can be used for evil, but it can also be used for very cool things
20:29:16 <ais523> who was it who went and created C++ that looked like Lisp by overloading most of the operators?
20:29:26 <ais523> I think it was someone in #esoteric, but I can't remember who
20:29:34 <ehird`> but, basically, mine reverses the truth values, but of course if ruby actually checked to_b for true/falseclass, it would be an infinite regress, so it wouldn't
20:29:57 <oklopol> he's done a lot of weird shit in c++
20:29:59 <ais523> oklopol: that rings a bell
20:33:00 <ehird`> the only thing hideously broken about ruby
20:33:09 <Sgeo> 0x00 0x08 0x00 implemented!
20:33:16 <ehird`> x = 2; something_taking_a_block {|x| ...}; x => the value in the block
20:33:19 <ehird`> this is being fixed for 1.9
20:33:24 <ehird`> as well as huge speed improvements with the new vm
20:43:46 -!- pikhq_ has changed nick to pikhq.
20:46:53 <ehird`> I can't make 'inject' lazy..
20:46:58 <ehird`> because the only way is basically this:
20:47:04 * Sgeo wonders if FBF will support PSOX
20:47:16 <ehird`> def inject(base, &blk)
20:47:16 <ehird`> blk[head, (magic thunkify: tail.inject(base, &blk))]; end
20:47:23 <ehird`> but the magic thunkify is basically impossible
20:47:32 <ehird`> because you can't make it be a truly transparent proxy
20:48:29 <ais523> Sgeo: how can I checkout the PSOX repo?
20:48:30 <Sgeo> ais523, svn co http://svn2.assembla.com/svn/psox/trunk
20:48:41 <Sgeo> or svn co http://svn2.assembla.com/svn/psox
20:48:49 <Sgeo> If you want the branches and tags and stuff
20:48:59 <Sgeo> Probably unneeded
20:50:07 <olsner> heh, esolangs embedded in C++ through operator overloading sounds interesting
20:50:49 * ais523 is thinking about writing an INTERCAL library to make use of PSOX
20:51:38 <ais523> there are already libraries for other things
20:51:45 <ais523> including infamously floating-point arithmetic
20:52:18 <Sgeo> There's no floating-point in PSOX :/
20:52:32 * Sgeo wonders if floating-point will be in ehird`'s SOXP
20:52:49 <Sgeo> But yeah, support PSOX before even considering SOXP please
20:53:03 <Sgeo> Well, nothing can support SOXP yet so there =P
20:54:20 <Sgeo> pikhq, once I implement domain 0x08, are you going to write some stuff to test it?
20:54:54 <ais523> "Conformance with widely-accepted standards was not considered to be a priority for an INTERCAL library. (The fact that the general format conforms to IEEE at all is due to sheer pragmatism.)"
20:55:27 <ais523> there's also a note stating that pi is represented as #571$#35133
20:55:45 * ais523 is amused at the way that their client assumes that INTERCAL constants are IRC channels
20:56:15 * Sgeo goes to the official INTERCAL PI channel
20:57:15 <ehird`> '<Sgeo> But yeah, support PSOX before even considering SOXP please' you realise how stupid this sounds
20:57:29 <ehird`> 'Hello! Everyone ignore Elliott's project, it upsets me. Use PSOX, it's so much better!!!'
20:57:42 <Sgeo> For one, PSOX currently exists >.>
20:58:00 <ehird`> it didn't for an awful long time, I add.
20:58:05 <GregorR> For two, double-u tee ef is SOXP?
20:58:21 * GregorR already regrets asking that.
20:58:35 <Sgeo> SOXP is ehird`'s hypothetical redoing of PSOX, in a supposedly cleaner way
20:58:43 <ehird`> GregorR: Hmm - you're right, it needs an acronym expansion. SOXP Only eXceeds PSOX
20:59:11 <Sgeo> Hey, PSOX doesn't get an ancronym expansion, its name is historical
20:59:50 <ehird`> Yes, SOXP is better than PSOX in that way too.
21:06:31 -!- oerjan has joined.
21:08:09 <Sgeo> please leave logs to learn about ehird`'s latest copycat insanity </bitterness>
21:08:33 <Sgeo> not leave, read
21:08:50 <Sgeo> lol faxathisia
21:08:54 <ais523> maybe I should write something called SPOX
21:09:03 <ais523> which has nothing to do with PSOX, OXPS, SOXP, etc., apart from the name
21:09:03 <ehird`> 'I AM SO EMOTIONALLY HURT ABOUT SOMEONE DECIDING TO DO SOMETHING SIMILAR TO MY PROJECT THAT I WILL MAKE STUPID COMMENTS ABOUT IT TO EVERYONE TO REAFFIRM PSOX'S AWESOMENESS'
21:09:21 <ais523> who's is/was PESOIX, by the way?
21:09:31 <Sgeo> ais523, calamari
21:09:46 <Sgeo> Calamari was involved somehow
21:11:02 <oerjan> clearly the time is overdue for PSUX
21:11:54 <Sgeo> Does anyone other than ehird` honestly see a point for SOXP?
21:12:31 <ehird`> 'Does anyone other than Sgeo honestly see a point for PSOX? I mean, we have PESOIX and EsoAPI' <-- past people
21:12:43 <faxathisia> the better you make PSOX the worse SOXP is gonna look..
21:12:58 <ais523> I'd sort of remembered EsoAPI, but only vaguely, so couldn't remember the name
21:13:06 <oerjan> Sgeo: that'll teach you try and make others interested in your projects! :D
21:13:12 <ehird`> right now it just looks like he's insecure about someone thinking PSOX is something other than perfect. So he's stifiling any innovation, because it's not his.
21:13:42 <oerjan> ah yes competition is good, say the free-wheelers, er market people
21:13:58 <oklopol> Sgeo: just accept it, ehird`'s only way to get interested is to take your idea and make it good
21:14:34 <oklopol> i'm still waiting for ehirdphica :<
21:15:01 * faxathisia wonders how to get ehird` interested in my broken thingymajig
21:15:05 <ehird`> faxathisia: what thingy
21:15:30 <Sgeo> oklopol, what's ehirdphica?
21:15:36 <faxathisia> ehird`: Hard to say what's broken.. It's either the self interpreter from the paper, my compiler or my interpreter
21:16:06 <oklopol> graphica never rose that much interest, except for faxathisia, the official non-tc lang enthusiasist
21:16:06 <faxathisia> ehird`: but anyway, something doesn't work.. so I can't run the Janus self interpreter
21:16:40 <ais523> faxathisia: if that's an esolang, could you put a stub with a link on the wiki so I can take a look?
21:17:04 <faxathisia> I'm not 100% sure but I think it's an esolang
21:17:19 <faxathisia> It's kind of minimal and every program is reversible
21:17:24 * Sgeo wonders if perhaps a layer could be made between a SOXP client and a PSOX server to make them work together.. or the other way around..
21:17:58 <oklopol> Sgeo: ehirdphica was what ehird would turn graphica into, naturally.
21:18:01 <ehird`> >> ones.dump_to($stdout)
21:18:01 <ehird`> lazy(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ...
21:18:26 -!- sebbu2 has changed nick to sebbu.
21:25:29 <ehird`> ais523: anyone: ones = lazy(1) { ones } # comments on this syntax?
21:25:51 * ais523 doesn't really know Ruby
21:26:22 <ehird`> foo = lazy(1,2,3) { foo }
21:26:27 <ehird`> for [1,2,3,1,2,3,1,2,3,1,2,3,...]
21:26:40 * ais523 likes the way lists are implemented in Unlambda
21:26:42 <ehird`> faxathisia: ah. i can make both head and tail lazy if you want, but then it's LazyMegaThing, not LazyList
21:26:49 <ais523> and my most usual Underload implementation works a similar way
21:27:00 <ehird`> this is meant to fit into ruby well...
21:27:10 <oerjan> ais523: there are many options for implementing lists in Unlambda
21:27:24 <ehird`> faxathisia: you can even print it infinitely like in haskell
21:27:30 <ehird`> though not via 'inspect' since that returns a string
21:27:34 <oklopol> oerjan: infinitely many, perhaps?
21:27:40 <ais523> oerjan: the one I know is where the list returns its head when applied to one function and its tail when applied to another
21:27:52 <ehird`> foo = lazy(1,2,3) { foo }; foo.map {|x| x+2}.dump_to(STDOUT)
21:27:59 <oklopol> yeah, that was quite an underestimate
21:28:00 <ehird`> lazy(1,2,3,1,2,3,1,2,3,...
21:30:32 <Sgeo> With the Net::urlget function, should I attempt to return the HTTP status code, or don't bother?
21:30:50 <Sgeo> Since it might not even be an HTTP url..
21:34:53 <Sgeo> pikhq, changes committed. Want to test sockets?
21:35:30 <ehird`> is pikhq your testing dummy or something
21:36:54 <pikhq> Gotta finish off homework. ;)
21:41:45 -!- ais523 has quit ("bye everyone").
21:43:02 -!- slereah_ has joined.
21:44:24 -!- slereah__ has quit (Read error: 110 (Connection timed out)).
21:45:11 <Sgeo> It is now fully possible to write a multi-threaded HTTP Server in Brainfork
21:45:26 <Sgeo> Well, except for the lack of File access, sorry
21:45:30 <pikhq> A. . . Multithreaded server?
21:45:42 <ehird`> Besides, fork() isn't threads.
21:45:58 <ehird`> faxathisia: Brain*fork*.
21:46:21 <ehird`> Anyway, Sgeo, that's like saying
21:46:27 <ehird`> "Brainfork multithreaded http server: ''"
21:46:34 <ehird`> "With my MagicalServerEnabler filter."
21:46:45 <ehird`> Anyway, multi-threaded servers suck. You want async io.
21:47:41 <Sgeo> Actually, with the way PSOX works, it would probably make more sense not to use forking, really
21:55:10 -!- slereah_ has quit (Read error: 104 (Connection reset by peer)).
21:55:19 <Sgeo> Hm, ehird`, idea for SOXP: Support threads, e.g. have each thread, when issuing a SOXP command, print out a byte indicating the thread first
21:55:45 <ehird`> i would comment on how that accomplishes nothing at all
21:55:49 <ehird`> but instead i'll just laugh a bit
21:56:16 -!- slereah_ has joined.
21:56:36 <faxathisia> It's just that only VM processes are parallel, you don't get extra parallelism in the language
21:56:55 <Sgeo> faxathisia, you could use brainfork
21:57:09 <Sgeo> Except you'd need to make sure that only one thread issues a command at a time, I guess
21:57:14 <Sgeo> So that's very meh
21:58:05 <Sgeo> Well, going to watch Seinfeld/take care of books for an hour
22:07:52 -!- jix has quit ("CommandQ").
22:11:48 -!- slereah__ has joined.
22:21:09 -!- slereah__ has quit (Read error: 104 (Connection reset by peer)).
22:27:40 -!- slereah_ has quit (Read error: 104 (Connection reset by peer)).
22:29:51 -!- Corun has changed nick to Corun|pants.
22:37:08 -!- slereah__ has joined.
22:44:23 -!- slereah__ has quit (Read error: 104 (Connection reset by peer)).
22:46:40 -!- slereah__ has joined.
22:51:48 -!- slereah_ has joined.
22:54:10 -!- slereah__ has quit (Read error: 104 (Connection reset by peer)).
23:00:34 -!- slereah_ has quit (Read error: 104 (Connection reset by peer)).
23:02:37 <Sgeo> Did I miss anything.. wow absolutely notjing
23:02:55 <Sgeo> Can we start talking about PSOX and SOXP again/
23:04:13 -!- slereah_ has joined.
23:07:15 -!- slereah_ has quit (Read error: 104 (Connection reset by peer)).
23:07:23 -!- olsner has quit ("Leaving").
23:16:16 -!- faxathisia has quit (Remote closed the connection).
23:23:42 -!- slereah_ has joined.
23:24:38 -!- slereah_ has quit (Remote closed the connection).
23:38:02 -!- slereah_ has joined.
23:51:21 -!- BrainF has joined.
23:51:21 -!- BrainF has quit (Client Quit).
23:51:43 -!- BrainF has joined.
23:51:43 -!- BrainF has quit (Client Quit).
23:51:58 <Sgeo> WHY is it just saying Hi?
23:53:37 -!- BrainF has joined.
23:53:37 <BrainF> Hi all. I wrote this BF program with the help of a horrible horrible generator I wrote.
23:53:37 -!- BrainF has quit (Client Quit).
23:53:51 <slereah_> Looks like that generator is really horrible!
23:54:05 <Sgeo> Want to see the code for the generator?
23:54:19 <Sgeo> Better yet: The generated code
23:55:35 <Sgeo> http://pastebin.ca/909224
23:56:52 <Sgeo> It was generated
23:57:04 <Sgeo> http://pastebin.ca/909227
23:57:44 <Sgeo> That was the script
23:58:05 <Sgeo> http://pastebin.ca/909228 is the generator
23:58:11 <slereah_> Do you think we're lacking newcomers?
23:58:18 <slereah_> So you're building them yourself?
23:59:05 <Sgeo> Just wanted to test/demonstrate sockets from PSOX
00:00:11 -!- BrainF has joined.
00:00:11 <BrainF> Hi all. I wrote this BF program with the help of a horrible horrible generator I wrote.
00:00:11 -!- BrainF has quit (Client Quit).
00:00:17 <Sgeo> It's so slow in connecting though
00:01:09 <Sgeo> I need a better syntax for scripts
00:03:53 <oklopol> it's actually pretty cool now that i see it in action
00:04:09 <Sgeo> oklopol, PSOX?
00:04:27 <oklopol> btw. unlambda cannot output any possible byte (right?), can psox be used with it?
00:04:50 <Sgeo> oklopol, um.. what do you mean by "cannot output any possible byte"?
00:05:00 <oklopol> psox seems to need null bytes a lot?
00:05:17 <oklopol> i don't think you can output that in unlambda.. :<
00:05:18 <oerjan> oklopol: unlambda can output anything in principle
00:05:32 <oklopol> you need to have the chars in the source? :P
00:06:02 <oerjan> my self-interpreter has a table of all the ?x'es
00:06:17 <oerjan> (the .x's can be generated from the input using |)
00:06:31 <oklopol> it'd be awesome to have a system where just being able to output two different bytes would suffice.
00:07:37 <oerjan> heh this means you actually cannot do PSOX with just null-terminated C strings
00:07:42 <oklopol> i mean, so that those two could be anything... you would have a clever initialization where the language tells psox what it can do.
00:08:09 <oklopol> after which an encoding rises somewhat naturally, for languages where not everything is easy to output
00:08:39 <oklopol> oerjan: well who cares about such turing tarpits anyway
00:08:42 <oerjan> i think PESOIX or something had such an adjustable I/O encoding at least intended
00:09:13 <Sgeo> trivial-idiotic way to do it: have a represent 0s and b represent ones, and put in a layer between that and PSOX
00:09:58 <oerjan> Sgeo: there was some blurb about the languages needing only some way to _represent_ the required range of numbers, anyhow
00:10:48 <Sgeo> hm.. I suppose I could make a command line option, like -n
00:11:01 <oklopol> oerjan: that's trivial if external settings are used, but could the program actively ask for an encoding using its limited facilities?
00:11:09 <Sgeo> -n a would tell the interpreter to subtract ord('a') from each character except those escaped as output
00:11:33 <oklopol> i mean, could it do that in that vague idea you were describing :P
00:11:40 <Sgeo> Not going to work on it ATM, but it's an idea
00:11:45 <oerjan> oklopol: for languages such as original INTERCAL which has only a _very_ limited I/O format, external settings seem necessary
00:12:30 <oklopol> oerjan: in case nonsense is taken as a calibration sequence, i don't think they are necessary.
00:12:52 <oklopol> tbh i still don't know much about it :|
00:12:59 <oerjan> roman numerals in one direction, explicit english words in the other, or something like that
00:13:56 <Sgeo> Scary that there exist languages that PSOX doesn't currently support..
00:15:14 <oklopol> oerjan: but why english, why not sanscrit
00:15:45 <slereah_> Well, you can't write sanskrit on a keyboard!
00:16:11 <Sgeo> I can write nulls on a keyboard: \x00\x00\x00\x00
00:16:17 <oerjan> oklopol: i recall a list of supported languages
00:16:31 <oerjan> most of which were highly weird
00:17:25 <Sgeo> Can modern INTERCAL do PSOX?
00:17:47 <Sgeo> And does anyone want to write a decent IRC bot in BF+PSOX?
00:17:57 <Sgeo> or INTERCAL+PSOX
00:18:30 <oerjan> Sgeo: modern intercals have binary I/O extensions
00:18:43 <slereah_> I'm already sick, don't try to kill me Sgeo.
00:18:50 <Sgeo> slereah_, get well soon!
00:20:10 <Sgeo> </knack-for-taking-things-too-literally-maybe-unless-half-of-that-line-was-serious-and-half-was-silliness-which-makes-sense-must-stop-writing-in-html-now-cant-stop-here>
00:20:10 <oerjan> slereah_: of course you can write sanskrit on a keyboard. the script is in UNICODE, and besides is also used for modern Hindi
00:20:20 <oklopol> lol, i never thought simulating a fibonacci heap manually could be this boring.
00:20:59 <oklopol> if i ever get to teach a class, i'm gonna make 'em pay for this. decrease min WILL FUCKING RECURSE.
00:22:20 * oklopol has simultaneously found the teacher AND the sadist in him.
00:23:27 <slereah_> Will the child molester follow soon?
00:25:11 <oklopol> people in general dislike molesting so bad i don't think i'll ever try that.
00:25:38 <oklopol> some seem to think getting fucked is actually worse than getting beaten.
00:25:57 <oklopol> but then again, some people listen to abba.
00:26:13 <oklopol> people are different, in a sick way.
00:26:21 <slereah_> That's worst than molesting children!
00:26:24 <oklopol> it was an example, but no, not really
00:26:51 <oklopol> not liking abba might be worse than molesting children, but i don't have to go to jail for it :)
00:27:16 <Sgeo> http://trac2.assembla.com/psox/browser/trunk/utils/TEXT2BF.py
00:28:33 <oklopol> Sgeo: is that a generated generator?
00:28:39 <Sgeo> oklopol, lol no
00:29:24 <oklopol> my head is full of dancing oklotrees right now
00:29:42 <oklopol> they're a combination of fibonacci trees and pure insanity
00:30:39 <oklopol> oklotrees, do not execute extract-min in O(log n), but they look EXPONENTIALLY COOL
00:34:46 <oklopol> i was quite dissappointed though when the professor told fibonacci heaps are one of the weirdest :|
00:35:15 <oklopol> with math you always know you can take any sub-subject and there's always 30000 pages of material about it
00:35:41 <oklopol> i want millions of weird heaps...
00:41:22 -!- Corun|pants has changed nick to Corun.
00:42:15 <oerjan> oklopol> my head is full of dancing oklotrees right now
00:42:18 <oerjan> oklopol> they're a combination of fibonacci trees and pure insanity
00:42:30 * oerjan gets Cthulhu mythos associations
00:43:30 <oklopol> i don't know much about cthulhuism
00:43:45 <oklopol> i get pop culture a bit slow.
00:43:48 <slereah_> It mostly involves dissin' on niggas.
00:44:09 <slereah_> Well, Cthulhu is 90 years old.
00:44:13 <oerjan> oklopol: believe slereah_. that is safer than the real thing.
00:44:18 <oklopol> slereah_: you're one of my favorites :)
00:44:30 <oerjan> take or give a few dozen zeros
00:44:58 -!- timotiis has quit ("leaving").
00:45:02 <slereah_> Hell, Turing might have read some Cthulhu!
00:45:20 <oklopol> unless you cound the invisible ones
00:46:11 <oklopol> TAINTED ZEROES KILL KILL AOIFSDJTGO
00:46:15 <oerjan> no, forget those. move on. nothing to see here.
00:47:59 <Sgeo> Maybe I could make a BfEcho bot/
00:48:30 <Sgeo> Hm, but I'd need to examine the text coming in from the socket
00:48:30 <oklopol> i think i should make some generic tools for operating on trees, and make a program to randomize tree structures for me
00:48:45 <Sgeo> There's no builtin IRC stuff, just sockets
00:48:49 <oklopol> that would be FUCKING HOT LAVA OH BABY YEAH
00:48:59 <oklopol> i hope lament isn't awake.
00:49:31 <oklopol> Sgeo: lament is the banbot of this channel, "fuck" triggers it
00:49:53 <oklopol> also flooding and ascii penises.
00:49:53 <Sgeo> oklopol, that can't be serious, you'd be banned if you were
00:50:03 <pikhq> Nah; he just has the bot to say 'OMG you said fuck'
00:50:17 <pikhq> Guess he disabled it.
00:50:17 <oklopol> Sgeo: just assume everyone is always kidding ;)
00:52:32 <oklopol> you never know quite what to answer when an ex girlfriend tells you they brought a dildo with 10 different vibration modes.
00:52:46 <oklopol> we should share more, ppl, this is great
00:52:59 <ehird`> immibis is the one with the bot
00:53:08 <oklopol> she'll prolly suggest that anyway
00:53:36 <ehird`> pikhq probably swears more than oklopol, though when oklopol swears its in a tightly concentrated space
00:53:41 <ehird`> i just swear all the fucking time
00:53:54 <pikhq> ehird`: I also curse multilingually.
00:54:03 <ehird`> pikhq: That must be..interesting
00:54:06 <oklopol> i mostly swear for the fuckarous fuck of it
00:54:25 <oerjan> 10 different modes? is this a dildo or a musical instrument?
00:54:29 <Sgeo> How often do I swear? Almost never?
00:54:47 <oerjan> (could be a combination of course)
00:55:01 <oklopol> oerjan: that's what i wondered too... i'm fairly sure the human pussy only distinguishes like 3...
00:55:02 <slereah_> Maybe find the resonance frequency of your prostate or something!
00:55:06 <Sgeo> ehird`, well I swore just before, after the mention of lament..
00:55:18 <pikhq> "And now, Beethovens' Fifth, in the key of C, on the Dildo."
00:56:19 <slereah_> Maybe you could hook it up to your computer, and connect it to some game.
00:56:52 <slereah_> "TEN THOUSAND POINTS, ONE ORGASM"
00:59:01 <Sgeo> I'm not quite sure how to test server sockets
01:24:44 -!- Corun has quit ("This computer has gone to sleep").
01:26:03 <lament> my punishment shall be swift
01:27:26 <lament> you will cry like a japanese schoolgirl being raped by a giant radioactive octopus
01:27:56 <oerjan> wouldn't that be _rewarding_ oklopol though
01:29:53 <pikhq> I thought that the tentacle rape was actually a high honor?
01:32:24 * oerjan scratches out lament's species on his #esoteric score card
01:37:08 <lament> i meant "his or her tentacles", of course
01:37:16 -!- Corun has joined.
01:37:57 <oerjan> what, just two possible sexes?
01:38:17 <oerjan> i won't bother scratching out "home planet", then.
01:40:20 <lament> "his or her" is one sex!
01:42:12 <ehird`> lament is raping everyone with his or her tentacles
01:42:40 <Tritonio_> i read about the radioactive octapus and i really loled...
01:43:46 <Tritonio_> btw i updated the brainfuck algorithms page on the wiki
01:44:07 <Tritonio_> i would be really happy if someone checked if the update is ok. :-)
01:46:40 <Tritonio_> how often does calamari log in here??
01:47:41 <slereah_> Not enough that I can remember him
01:48:44 <oerjan> er i don't think it was _that_ long ago he was here?
01:49:32 <lament> Tritonio_: you prefer to be raped by squid?
01:50:44 <Tritonio_> lament, i am reallllllyyyy drunk right now so i am not even sure what a squid is
01:50:57 <lament> Tritonio_: the same animal as "calamari"
01:51:04 <Tritonio_> although i think it is that ocapus like thing that spits ink
01:51:26 <Tritonio_> oh yes... and calamari is a greek word too
01:52:00 <ehird`> Tritonio_: dsof, slo utiua?
01:52:08 <Tritonio_> we talked yesterday about that 1 byte / array cell table implementation i made
01:52:20 <ehird`> Tritonio_: oh. i see thn..e
01:53:05 <ehird`> Trinioo_t: So, whtear euaf i?
01:53:10 <Tritonio_> calamari told me to update the esolang wiki with the new algo... but i want to know if i must do something with calamari's implementation on the same page
01:53:26 <ehird`> Airu. Ajgfunp, xkauf. ua.
01:53:50 <Tritonio_> whatever... maybe i must go to sleep.....
01:53:51 <ehird`> Tritonio_: Auuee! If you kanu, tigo aodi.
01:54:21 <lament> ehird`: I agrue. You puroesj trjacgr.
01:54:33 -!- Corun has quit ("Delight of Turkishness").
01:54:46 <Tritonio_> >[>>>[-<<<<+>>>>]<[->+<]<[->+<]<[->+<]>-]
01:54:48 <lament> Tritonio_: scose daneroush rcga?
01:55:12 <ehird`> Tritonio_: It's enlgirs..
01:56:21 <ehird`> Tritonio_: ??? Irua. I dnot udnajrtsnd ua.
01:56:32 <oerjan> lament: LIES. y nt befol skwat.
01:57:06 <ehird`> lament: Auu, I dnta thnkgi I will undnernstnd thtat for lngo..
01:57:45 <lament> are you drunk or what? You're talking nonsense.
01:58:10 <Tritonio_> loipon tha arxiso kai ego na milao ellinika
01:58:20 <Tritonio_> giati poly moy ta priksate an kai exo psofisei sta geleia
01:58:39 <oerjan> Tritonio_: lkos fin to me
01:58:41 <ehird`> Aufu... iaminitan, AWESOME!!!
01:58:41 <lament> perdon, yo no hablo chino
01:59:14 <oerjan> Nε gεr det over alle stψvleskaft her
01:59:17 <Tritonio_> oloi oi kamenoi toy eleytherokomboy se ena domatio
01:59:46 <ehird`> Wuaut? Drnkju, I think you arear. ... you don't smem to be ablkgl to undasnernst su.....
02:00:38 * Tritonio_ 's nonsense filter log's him out automaticaly.
02:01:44 <slereah_> It's a small rock around the earth
02:01:54 <lament> I live in the Pacific ocean.
02:01:58 <Tritonio_> i know about the moon. my grandma was from there
02:02:17 <oerjan> slereah_: don't be ridiculous. the earth is far too large for a small rock to fit around it.
02:02:34 <ehird`> Tritonio_: We couldn't trick you.
02:03:14 <lament> oerjan: i think he meant inside, not around
02:04:31 <lament> but there's a complicated system of mirrors which makes it appear in the sky
02:06:55 <slereah_> Man didn't land on the moon, he fell on it.
02:22:17 -!- kwertii has joined.
02:22:20 -!- kwertii has quit (Remote closed the connection).
02:22:35 <Sgeo> <Tritonio_> PS: we are all european here?
02:22:48 -!- kwertii has joined.
02:23:48 -!- BrainF has joined.
02:23:48 <BrainF> Hi all. I wrote this BF program with the help of a horrible horrible generator I wrote.
02:23:48 -!- BrainF has quit (Client Quit).
02:25:25 <Sgeo> http://pastebin.com/m6f8e6cdc
02:27:01 <Sgeo> And a more readable version: http://pastebin.com/m58f2748
02:33:56 * Sgeo modifies the generator to take the scripts in a simpler form and also to automatically add linebreaks
02:41:05 -!- ehird` has quit ("K-Lined by peer").
02:57:13 <Sgeo> Hm, I wonder if I can make a text generator that uses up N number of cells
03:03:43 <pikhq> 22 packets transmitted, 2 received, 90% packet loss, time 21014ms
03:03:48 <pikhq> Someone out there hates me.
03:04:23 <Sgeo> pikhq, are you going to try sockets?
03:04:27 <Sgeo> Sockets are working now >.>
03:04:32 <Sgeo> I tested them in here
03:04:39 <Sgeo> At least, writing to sockets
03:04:47 <Sgeo> I haven't tested server sockets or UDP or anything
03:04:55 <Sgeo> And I think I might need to add a function
03:24:43 <Sgeo> But still, I've connected to IRC in Brainfuc
03:49:47 <Sgeo> Ok, File domain thoughts:
03:50:02 <Sgeo> Directories gotten by the equiv. of LS are represented as FDs
03:50:13 <Sgeo> Except seeking is per file
03:50:35 <Sgeo> the first byte in each entry is whether the entry is a file or a directory
03:53:26 <Sgeo> pikhq, are you alive? oerjan, GregorR?
03:54:21 <GregorR> It can't be represented by simple boolean logic.
03:55:03 <pikhq> enum gregor {DEAD, NOTDEAD, UNDEAD};
03:55:04 <Sgeo> Is my scheme ok?
03:55:09 <pikhq> We will call it, Gregorian logic.
03:55:24 <Sgeo> Or should I have directories separate from the FD scheme?
03:55:29 <GregorR> Sgeo: Idonno, are you coming from Elisp or CL?
03:56:46 <GregorR> So, rather than having a readdir call, you just have a stream of data in a predefined pattern?
03:58:11 <Sgeo> GregorR, I think it is a readdir call of sorts..
04:09:06 -!- kwertii has quit (kornbluth.freenode.net irc.freenode.net).
04:09:06 -!- puzzlet has quit (kornbluth.freenode.net irc.freenode.net).
04:09:06 -!- lifthrasiir has quit (kornbluth.freenode.net irc.freenode.net).
04:09:08 -!- BMeph has quit (kornbluth.freenode.net irc.freenode.net).
04:09:08 -!- RodgerTheGreat has quit (kornbluth.freenode.net irc.freenode.net).
04:09:08 -!- sekhmet has quit (kornbluth.freenode.net irc.freenode.net).
04:09:08 -!- slereah_ has quit (kornbluth.freenode.net irc.freenode.net).
04:09:08 -!- Sgeo has quit (kornbluth.freenode.net irc.freenode.net).
04:09:08 -!- sebbu has quit (kornbluth.freenode.net irc.freenode.net).
04:09:08 -!- AnMaster has quit (kornbluth.freenode.net irc.freenode.net).
04:09:09 -!- Tritonio_ has quit (kornbluth.freenode.net irc.freenode.net).
04:09:09 -!- bsmntbombdood has quit (kornbluth.freenode.net irc.freenode.net).
04:09:11 -!- oklopol has quit (kornbluth.freenode.net irc.freenode.net).
04:09:11 -!- cmeme has quit (kornbluth.freenode.net irc.freenode.net).
04:09:11 -!- GregorR has quit (kornbluth.freenode.net irc.freenode.net).
04:09:12 -!- EgoBot has quit (kornbluth.freenode.net irc.freenode.net).
04:09:12 -!- Overand has quit (kornbluth.freenode.net irc.freenode.net).
04:09:12 -!- pikhq has quit (kornbluth.freenode.net irc.freenode.net).
04:09:12 -!- lament has quit (kornbluth.freenode.net irc.freenode.net).
04:09:12 -!- johnl has quit (kornbluth.freenode.net irc.freenode.net).
04:09:13 -!- atsampson has quit (kornbluth.freenode.net irc.freenode.net).
04:09:13 -!- cherez has quit (kornbluth.freenode.net irc.freenode.net).
04:09:13 -!- mtve has quit (kornbluth.freenode.net irc.freenode.net).
04:09:14 -!- SimonRC has quit (kornbluth.freenode.net irc.freenode.net).
04:10:10 -!- kwertii has joined.
04:10:10 -!- slereah_ has joined.
04:10:10 -!- pikhq has joined.
04:10:10 -!- Sgeo has joined.
04:10:10 -!- BMeph has joined.
04:10:10 -!- Tritonio_ has joined.
04:10:10 -!- sebbu has joined.
04:10:10 -!- bsmntbombdood has joined.
04:10:10 -!- puzzlet has joined.
04:10:10 -!- lament has joined.
04:10:10 -!- RodgerTheGreat has joined.
04:10:10 -!- EgoBot has joined.
04:10:10 -!- oklopol has joined.
04:10:10 -!- atsampson has joined.
04:10:10 -!- lifthrasiir has joined.
04:10:10 -!- AnMaster has joined.
04:10:10 -!- mtve has joined.
04:10:10 -!- Overand has joined.
04:10:10 -!- cmeme has joined.
04:10:10 -!- GregorR has joined.
04:10:10 -!- SimonRC has joined.
04:10:10 -!- johnl has joined.
04:10:10 -!- sekhmet has joined.
04:10:10 -!- cherez has joined.
04:12:45 <Sgeo> u should srr me now in my seat
04:25:36 * Sgeo sits back up in his chair
04:31:30 <Sgeo> Hm, pikhq GregorR should the mkdir function fail if there's already such a directory, or not?
05:10:03 -!- Asztal has joined.
05:11:11 -!- BrainF has joined.
05:11:11 <BrainF> Hi all. I wrote this BF program with the help of a horrible horrible generator I wrote.
05:11:11 -!- BrainF has quit (Client Quit).
05:11:59 <Sgeo> At a BF program going online?
05:12:37 <Asztal> Yes. Does it have its input/output hooked up to a socket?
05:13:24 <Sgeo> It uses a thing called PSOX
05:13:31 <Sgeo> http://esolangs.org/wiki/PSOX
05:13:43 <Sgeo> Currently has sockets
05:14:11 <Sgeo> erm, sockets and HTTP
05:14:33 <Sgeo> It will also soon support file access
05:15:19 -!- immibis has joined.
05:15:55 <Sgeo> Hi immibis. Did you see my latest PSOX demo?
05:16:28 <immibis> no. i'm not interested in psox.
05:17:25 -!- BrainF has joined.
05:17:25 <BrainF> Hi all. I wrote this BF program with the help of a horrible horrible generator I wrote.
05:17:25 -!- BrainF has quit (Client Quit).
05:18:53 * Sgeo goes to change the program I but.
05:21:19 -!- BrainF has joined.
05:21:19 <BrainF> Hi all. This client is written in Brainfuck (albeit written with a generator), believe it or not. It uses PSOX. You can get information about PSOX at http://esolangs.org/wiki/PSOX .
05:21:19 -!- BrainF has quit (Client Quit).
05:23:08 <Sgeo> Why is it so slow?
05:23:10 <immibis> you don't need psox for that. "mkfifo irc_fifo; bf irc_bot.bf < irc_fifo | nc irc.freenode.net 6667 > irc_fifo"
05:24:01 <pikhq> immibis: But that's not what he's doing.
05:24:42 <pikhq> He's got a fancy API. ;)
05:24:48 <immibis> no, it isn't. but he doesn't need psox to connect to a remote server, send commands, and read responses.
05:25:14 <Sgeo> immibis, for the client to choose the server, yes it does
05:25:37 <pikhq> Let's say, hypothetically, he wrote an IRC client in Brainfuck.
05:25:48 <pikhq> (which is quite possible, if you're sufficiently insane).
05:25:58 <pikhq> Would you be more impressed with that?
05:26:21 <immibis> sgeo: I'm sure that could be done with a bash script too.
05:26:34 <Sgeo> immibis, but I'm doing it with Brainfuck
05:27:14 <Sgeo> oh, you mean BF controlling the server
05:27:19 <immibis> mkfifo irc_fifo; bf irc_bot.bf < irc_fifo > >( read server port ; nc $server $port > irc_fifo)
05:27:27 -!- BrainF has joined.
05:27:27 <BrainF> Hi all. This client is written in Brainfuck (albeit written with a generator), believe it or not. It uses PSOX. You can get information about PSOX at http://esolangs.org/wiki/PSOX .
05:27:27 -!- BrainF has quit (Client Quit).
05:27:42 <Sgeo> Why does it work when I have the nickname be BrainF but not SgBrainfuck?
05:27:53 <Sgeo> Erroneous nickname
05:28:38 <Sgeo> The script for BrainF: http://pastebin.com/d51adfde7
05:29:14 <Sgeo> The first line is PSOX-Init
05:29:18 <Sgeo> The second line:
05:29:31 <Sgeo> 0x00 0x08 0x00 represents calling function 0x00 in domain 0x08
05:29:47 <Sgeo> The 0x00 after that represents TCP v. UDP
05:29:57 <Sgeo> 0x1A 0x0B is the port
05:30:12 <Sgeo> Then the next part is the address
05:30:15 -!- immibis has quit (Remote closed the connection).
05:30:18 <Sgeo> and 0x0A terminates all functions
05:30:33 -!- immibis has joined.
05:30:45 <Sgeo> <Sgeo> and 0x0A terminates all functions
05:31:15 <immibis> the last message i got from you was [18:27] <Sgeo> oh, you mean BF controlling the server
05:31:27 <immibis> not sure what you meant by that tho
05:33:46 <immibis> what's 0x00 0x02 0x10 0x04?
05:33:52 -!- immibis has quit (Client Quit).
05:34:38 <Sgeo> For anyone who wants to read in the logs: the function 0x10 in domain 0x02 switches where output goes to. In this case, we're switching to 0x04 because that's where the "file descriptor" for the socket was made
05:34:45 <Sgeo> 0x04 was the first available FD slot
05:35:18 <Sgeo> 0x00 is current outFD, 0x01 is current inFD, 0x02 is stdout, 0x03 is stdin
05:35:31 <Sgeo> Then the next lines simply output the necessary commands
05:36:23 <oerjan> Sgeo: my guess is "fuck" is censored in nicknames
05:39:49 -!- BrainF has joined.
05:39:49 <BrainF> Hi all. This client is written in Brainfuck (albeit written with a generator), believe it or not. It uses PSOX. You can get information about PSOX at http://esolangs.org/wiki/PSOX .
05:39:49 -!- BrainF has quit (Client Quit).
05:57:42 <Sgeo> I guess I really should go to sleep now
06:01:50 -!- oerjan has quit ("Later").
06:24:04 -!- devicenull has joined.
06:24:22 -!- BrainF has joined.
06:24:22 <BrainF> Hi all. This client is written in Brainfuck (albeit written with a generator), believe it or not. It uses PSOX. You can get information about PSOX at http://esolangs.org/wiki/PSOX .
06:24:22 -!- BrainF has quit (Client Quit).
06:25:02 -!- habnabit has joined.
06:25:16 -!- BrainF has joined.
06:25:16 <BrainF> Hi all. This client is written in Brainfuck (albeit written with a generator), believe it or not. It uses PSOX. You can get information about PSOX at http://esolangs.org/wiki/PSOX .
06:25:16 -!- BrainF has quit (Client Quit).
06:25:31 -!- devicenull has left (?).
06:25:41 <Sgeo> The script that I fed to the generator is at http://pastebin.com/d51adfde7
06:28:08 <Sgeo> I should get going now
06:53:37 -!- Sgeo has quit (Read error: 110 (Connection timed out)).
07:20:50 -!- bsmntbombdood has quit (Remote closed the connection).
07:31:22 -!- kwertii has quit ("bye").
07:35:58 -!- BMeph has quit ("calls it a night").
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:01:37 -!- olsner has joined.
08:09:00 -!- Sukoshi` has joined.
08:13:11 <Sukoshi`> Is anyone here enough of a loser to go on Direct Connect networks?
08:38:07 -!- olsner has quit ("Leaving").
09:10:19 <oklopol> Sukoshi`: i'm enough of a loser for that
09:10:26 <oklopol> i have other reasons not to go on them
09:15:58 -!- habnabit has quit (Read error: 110 (Connection timed out)).
09:23:49 <Sukoshi`> I was wondering because I'm writing a DC client.
10:40:35 <slereah_> But really, it's now not very useful.
11:01:03 -!- jix has joined.
11:17:27 -!- Corun has joined.
11:21:48 <Sukoshi`> The protocol was written by an HS student who used terms like $ValidateDenide and $LogedIn
11:24:01 <Tritonio_> anyway it sucks because it's nothing new... it is server based
11:24:28 <Tritonio_> there are no firewall2firewall conections....
11:25:00 <Sukoshi`> How can a firewall connect to a firewall?
11:25:35 <Tritonio_> firewall2firewall is in fact firewalled user to firewalled user.
11:25:48 <Sukoshi`> It can do passive connections.
11:25:49 <Tritonio_> two users behind two firewalled router
11:26:08 <Tritonio_> i know but with passive connections it is much slower
11:26:13 <Sukoshi`> The protocol itself has no basic firewall support, true, but.
11:26:35 <Sukoshi`> How else would you propose to do it? Is opening a port that difficult?
11:27:24 <Sukoshi`> Or even as a last resort, use an HTTP proxy.
11:28:16 <Tritonio_> and what do you mean to tunnel through SSH?
11:29:37 <Sukoshi`> Google holds many of these answers.
11:39:09 -!- oerjan has joined.
11:43:14 <Tritonio_> i still don't see how an SSH tunnel would help
12:08:24 -!- timotiis has joined.
12:17:10 -!- Corun has quit ("This computer has gone to sleep").
12:30:51 <Sukoshi`> You SSH tunnel through an open port.
12:31:14 <Tritonio_> can't you just tell dc to use that port?
12:40:25 <Sukoshi`> Or an HTTP proxy works, which tunnels traffic through an HTTP port.
12:40:43 <Tritonio_> but what if the route directs no port to your pc.
12:41:13 <Sukoshi`> So you can't access the internet at all?
12:41:48 <Tritonio_> you can connect to everyone else. but nobody else can connect to you.
12:41:55 <Sukoshi`> If you can't pass outgoing/incoming traffic through port 80, then what?
12:42:33 <Sukoshi`> A port works two ways, source and destination. A typical firewall allows you to use a port as a source port, but not use it as a destination port.
12:42:47 <Sukoshi`> However you cannot do that with port 80, because it is an HTTP port.
12:42:59 <Sukoshi`> The router uses a firewall ... the difference is the same.
12:43:10 <Tritonio_> i can close all ports on my router and still access the internet
12:43:17 <Tritonio_> but there will be no incoming connections
12:43:40 <Tritonio_> you can make an outgoing connection using any local port even if the router has all ports closed
12:43:55 <Sukoshi`> That means the router is being smart and allowing an HTTP connection to work synchronously, but now allowing one directional connections to occur.
12:44:25 <Sukoshi`> A router can't perform magic. It has to do something with ports.
12:44:36 <Sukoshi`> There's no option in the IP RFC that says "block a port but let traffic through".
12:44:43 <oerjan> obviously for tunneling you keep an outgoing connection open, which is still two-way for data
12:45:16 <Sukoshi`> In an HTTP proxy, the connection looks just like a typical HTTP connection. A server is connected to, data is requested, more data is sent back, data is further requested, etc.
12:45:27 <Tritonio_> the router is a network node. if you try to connect to someone's router on port 60 (4eg) it will have to forward this connection to some internal ip:port
12:46:13 <Tritonio_> so what happens if no redirections have been setup?
12:46:25 <Tritonio_> the internal network still has access to the internet, right?
12:46:35 <oerjan> Tritonio_: you don't try to connect to someone's firewalled router. you allow them to connect to you, or you both connect to a server which does the tunneling.
12:46:52 <Sukoshi`> Data is transmitted outgoing or incoming.
12:47:39 <Tritonio_> oerjan, that's what i am saying. if you haven't setup and redirections then you cannot access a pc in an internal network until it makes a connections to you
12:48:10 <Sukoshi`> What is the theory behind this? Data can go out of a device and into a device.
12:48:18 <Tritonio_> after the pc behind the router connects to you, you can transmit and recieve data
12:48:26 <Sukoshi`> The way a router works is that, data is redirected.
12:48:51 <Sukoshi`> So when you make an HTTP connection, you send the text "GET / HTTP/1.0". This data is sent out and transmitted via the router to the server of choice.
12:49:01 <Tritonio_> i'll close all redirections in my router, and UPnP too. ok?
12:49:18 <Sukoshi`> The router then sends back a response, the HTML code, and this is intercepted by the router, and then sent back to you.
12:49:25 <Tritonio_> according to you. i will not be able to talk here afterwards?
12:49:37 <Sukoshi`> Notice that you have an asynchronous connection here. Data is being transmitted one way and received another.
12:50:04 <Sukoshi`> Tritonio_: Not neccessarily, your router could be smart (which is very normal) and if a connection is made first from a requesting machine, that connection can be allowed into the clear by the router.
12:50:19 <Sukoshi`> Stop treating the router as a black box. "The router can do x" is not an explanation.
12:51:10 <Sukoshi`> Your machine sends a SYN packet to the router dest. the IRC server
12:51:27 <Sukoshi`> The router sees the SYN packet, and adds the connection to a connection table, then routes the SYN packet out to the server.
12:51:39 <Sukoshi`> The server sends back a response, SYN/ACK.
12:51:55 <Sukoshi`> The router then cross-references the SYN/ACK with its connection table. If it finds an entry, it lets this through to you.
12:52:07 <Sukoshi`> If it does not, the packet gets dumped into /dev/null.
12:52:42 <Sukoshi`> So an HTTP tunnel works exactly this way. It creates an outgoing connection, and sends the traffic through this. The proxy then is in charge of handling all the traffic with the external server.
12:53:34 <Sukoshi`> C <-> P <-> S (C: Client, P: Proxy, S: Server.)
12:53:59 <Tritonio_> how can we use the http proxy to communicate?
12:54:38 <Sukoshi`> Okay, I'll give the simple explanation and leave for the night (it's 4:52 AM here): Because for all intents and purposes, an HTTP proxy connection looks the same as any HTTP connection.
12:55:11 <Sukoshi`> I suggest you do some IP reading in the mean time to get an understanding of it.
12:55:18 -!- Sukoshi` has left (?).
12:56:44 -!- faxathisia has joined.
12:57:08 -!- oerjan has quit ("Too much noise").
13:01:54 <Tritonio_> was i wrong about the HTTP proxy not been helpful if both routers (NATs) do not redirect incoming connections to the two users that want to communicate???
13:45:27 -!- slereah_ has quit (Read error: 104 (Connection reset by peer)).
13:46:31 -!- slereah_ has joined.
13:56:50 -!- ehird` has joined.
13:59:00 -!- ehird`_ has joined.
13:59:22 -!- ehird` has quit (Read error: 113 (No route to host)).
14:01:23 <ehird`_> i just realised what a good curse 'Bjarne, stroustroup!' is
14:01:36 <ehird`_> Bjarne sounds like a foreign insult and 'stroustroup' sounds like..well, stroustroup
14:19:24 <RodgerTheGreat> wouldn't that constitute a wimpmode? I don't think Gregor would approve
14:31:43 -!- ais523 has joined.
14:33:55 <ehird`_> RodgerTheGreat: No, not really...
14:34:10 <ehird`_> it would execute a line at a time
14:34:24 <ehird`_> '<ENTER>' would execute the line, then print out the next one
14:34:36 <ehird`_> and you'd have a command to print out the stack in an inscrutable format
14:34:39 <RodgerTheGreat> maybe make it use commands that are rot13ed to make it harder to memorize?
14:34:42 <ehird`_> add about 3 or 4 more commands and you've got the glass debugger
14:34:50 <ehird`_> RodgerTheGreat: all one character
14:34:54 <ehird`_> with seemingly no relation to what they do
14:39:23 <ehird`_> because JB_SP is undefined
14:40:25 <ehird`_> mem.c:jbuf[0].__jmpbuf[JB_SP] = stack_base;
15:02:12 -!- ehird has joined.
15:02:45 -!- ehird has quit (Client Quit).
15:20:50 -!- puzzlet has quit ("Lost terminal").
15:28:07 <faxathisia> my code kind of sucks but I don't really care because it works
15:28:37 <faxathisia> but this puts every bf program in a list and runs them all.. extracting the ones that terminate
15:29:01 <faxathisia> so ... I run it for like half an hour and there isn't any good output
15:45:29 <Asztal> what does it do when it generates []?
15:46:10 <faxathisia> I actually filter out any programs with [] because there's always an equivalent shorter program or it gets stuck
15:46:39 <faxathisia> If there is an infinite loop .. I just keep evaluating it forever
15:47:04 <faxathisia> but lots of programs are run in parralel
15:48:49 <oklopol> faxathisia: do you filter other infinite loops?
15:49:27 <faxathisia> I filter any redundancy like +- <> >< -+ ..
15:49:53 <faxathisia> and any expression that isn't well parenthesized but that's it
15:50:34 <oklopol> if you have a balanced loopie, it's very simple to check whether conditions have changed after a cycle
15:51:27 <faxathisia> the program could be made more sophisticated but I run it for ages and it didn't produce anything
15:51:41 <faxathisia> I think this whole approach is just too slow
15:53:44 <oklopol> you're actually trying to do something?
15:54:22 <faxathisia> Well the aim is find the shortest possible programs to print given strings,
15:54:37 <faxathisia> now I know this is impossible but it's still worth trying
15:54:50 <oklopol> well, you're a lunatic if you think that approach could work :D
15:55:38 <oklopol> if you're going for more than 4 characters
16:01:45 <ais523> are you filtering out expressions that don't end in . followed by some number of ]s?
16:02:34 <ais523> you may also be able to optimise, at least if you restrict your search to loops with balanced <>, by compiling into some other language first
16:11:51 -!- habnabit has joined.
16:21:51 * ais523 is incapable of reading ehird`_'s mind
16:22:12 <ehird`_> <shapr> Haskell separates Church and state!
16:24:44 <ehird`_> ais523: i wrote a haskell program that makes ghc use 100% cpu and never halt
16:24:49 <ehird`_> i think i beat the typechecker.
16:24:55 <ehird`_> (iirc, it is non-decidable)
16:25:08 <ais523> "Loop in the flow analysis" was one of my favourite Prolog compiler error messages
16:25:16 <ais523> even though I never ran the compiler, just read the manual
16:25:20 <ehird`_> ais523: Really? I preferred '42'.
16:25:29 <ais523> what was your compiler-breaking program?
16:25:35 <ehird`_> (SWI-Prolog outputs '42' if you tell it to do something impossible, like 'X.')
16:28:14 <ais523> I can't figure out what pred is trying to do
16:28:23 <ais523> how many arguments would it normally be called with?
16:28:35 <ais523> from the name, I'm guessing it subtracts one from its argument, so 1
16:29:01 <ehird`_> ais523: yes. this is church numeral stuff.
16:29:11 <ehird`_> i don't personally understand 'pred', to be honest
16:29:16 <ehird`_> you should see the type thouhg:
16:29:30 <ehird`_> (((t -> t2) -> (t2 -> t3) -> t3) -> (t4 -> t1) -> (t5 -> t5) -> t6) -> t -> t1 -> t6
16:29:33 <ehird`_> and i know what 'pred' stands for
16:29:37 <ehird`_> i mean i don't understand the definition
16:29:38 -!- uvanta has joined.
16:29:41 <ais523> sorry, I misinterpreted your comment
16:29:49 <ehird`_> *** Expected type : ((a -> a) -> a -> a) -> Integer
16:29:49 <ehird`_> *** Inferred type : ((((a -> a) -> a) -> (a -> a) -> a) -> ((a -> a) -> a) -> (a -> a) -> a) -> Integer
16:31:05 <ais523> your implementation of dechurch is inefficient
16:33:43 <ais523> in fact, your implementation is probably wrong, because comparing functions is uncomputable
16:33:57 <ais523> so you can hardly expect the compiler to match functions based on Church number equality
16:34:23 <ehird`_> ais523: well, we'll see what it does
16:34:24 <ais523> the 'dechurch zero' pattern won't match a Church numeral unless it's a literal 'zero' or you're lucky, even if the Church numeral has the value 0
16:35:26 <ais523> hmm... I wonder if the recursive definition 'succ n = n succ one' would work, or whether it would confuse the compiler
16:35:41 <ais523> I doubt it would work in Haskell, because it looks like an infinite loop
16:35:53 <ais523> but there's a slim chance that laziness might save it
16:36:24 <ais523> no, it is an infinite loop, because 'succ one' ends up being defined to be 'succ one'
16:36:54 <ais523> it would work in that uncomputable language I was talking about yesterday, if written as Succ(N)=N(Succ(One))
16:37:20 <ais523> but I wonder if that would give more than one solution for Succ...
16:37:47 -!- Corun has joined.
16:38:31 <ehird`_> ais523: succ one = ...; succ n = n succ one
16:38:55 <ais523> you can't compare functions with ==
16:39:01 <ais523> or with anything else, for that matter
16:39:16 <ehird`_> succ n | dechurch n == 1 = two
16:39:31 <ehird`_> you need Integer -> Integer stuff
16:39:56 <ehird`_> ais523: the type system doesn't like it, y'see
16:39:57 <ais523> succ two = two succ one = succ (succ one) = succ two = ...
16:40:18 <ais523> so defining succ recursively, although mathematically true, doesn't really help a computer
16:40:39 <ehird`_> ais523: anyway, newtype Church a = Church ((a -> a) -> a -> a) is problematic
16:41:09 <ehird`_> instance (Church a) => Church ((a -> a) -> a -> a)
16:41:56 <ehird`_> instance Churchy Church ...
16:43:03 <ais523> it's so much simpler in Underload/Underlambda
16:43:14 <ehird`_> ais523: is that strongly typed?
16:43:27 <ais523> there's just the one type, function
16:43:39 <ais523> each function maps a stack of functions to another stack of functions
16:43:52 <ais523> strong typing messes up sii quite badly
16:44:00 <ais523> and the ability of sii is needed to write loops
16:44:26 <ais523> OTOH, I suppose you could say it was strongly typed, except with just the one type, defined recursively as type = [type]->[type]
16:44:36 <faxathisia> you might be able to write sii using lets?
16:45:00 <ais523> I can't think of a way to do that
16:45:09 <ais523> the naive definition is sii X = X X
16:45:10 <ehird`_> faxathisia: not in haskell
16:45:25 <ehird`_> faxathisia: it doesn't type
16:45:52 <ais523> a lazy version and an eager version
16:45:59 <ehird`_> ais523: and that is neither
16:46:07 <ehird`_> and #haskell are informing you now, faxathisia
16:46:40 -!- Corun has quit ("This computer has gone to sleep").
16:46:50 <ehird`_> ais523: i haven't seen him justify his belief as of yet.
16:47:14 <ehird`_> faxathisia: http://r6.ca/blog/20060919T084800Z.html
16:47:19 <ais523> a combinator can be a function
16:47:23 <ais523> id is a combinator, after all
16:47:26 <ais523> but it's also a function
16:47:51 <ais523> Y g = g (Y g), according to Wikipedia
16:48:32 <ais523> Y = Ξ»fΒ·(Ξ»xΒ·f (x x)) (Ξ»xΒ·f (x x))
16:48:46 <ais523> is how you defined it without using the argument in terms of lambdas
16:49:31 -!- cherez has quit (Read error: 110 (Connection timed out)).
16:54:43 <ehird`_> type Church a = ((a -> a) -> a -> a)
16:58:42 <ehird`_> http://hpaste.org/5759 getting there
16:59:33 -!- slereah_ has quit (Read error: 104 (Connection reset by peer)).
16:59:49 -!- slereah_ has joined.
17:00:04 <ais523> "Churchy" == "something that acts kind of like a Church numeral or its argument"?
17:00:15 <ehird`_> ais523: 'Churchy' == 'a church numeral'
17:00:32 <ehird`_> the only arguments to church numerals are (ChurchNumeral -> ChurchNumeral) and another ChurchNumeral
17:00:32 <ais523> but church numerals can be applied to non-church-numeral arguments
17:00:41 <ais523> like the (1+) I gave as an example above
17:00:44 <ehird`_> ais523: not if we want everything to type properly..
17:00:51 <ehird`_> anyway -- so we have a recursive type, so we need that class hack
17:01:08 <ais523> the typechecker strikes again
17:01:26 <ehird`_> anything more and you could get full polymorphism
17:01:29 <ehird`_> because you need type 'a = a -> a'
17:01:34 <ehird`_> which is the type of all lambda expressions
17:01:36 <ais523> yes, but it gets in the way if you want to do Unlambda-style pure functional programming
17:01:55 <ehird`_> presumably, they thought that real programs were more important
17:01:58 <ais523> because that leads to infinite types with ease
17:02:22 <ais523> I'm aware that the typechecker is useful in practice
17:02:32 <ais523> but it's really annoying in theory
17:03:05 <faxathisia> well .. you have to do the proofs yourself
17:03:11 <ehird`_> its the sweet spot for usability and ... well, computability
17:03:29 <ehird`_> church numerals are 'weird' anyway... i would say that a type system not including them is not odd
17:03:30 <ais523> removing the typechecker wouldn't make the language uncomputable...
17:03:44 <ais523> Unlambda is computable, and so is lambda calculus
17:04:03 <ehird`_> but then you have no types...
17:04:06 <ais523> to me, though, the main point of Church numerals in practice is to give a simple way to write loops
17:04:06 <ehird`_> and haskell is designed to be strongly typed
17:04:20 <faxathisia> I guess ehird; mean that typechecking is computable?
17:04:37 <ehird`_> succ :: Churchy a => ((a -> a) -> a -> a) -> (a -> a) -> a -> a
17:04:38 <ais523> say I want to print something out 6 tiems
17:05:18 <ais523> then with the monad chaining argument explicit, it would just be a case of writing six (printChained "Hello") InitialIOChain
17:05:33 <ais523> where printChain has the type String -> IOChain -> IOChain
17:05:43 <ais523> and the IOChain is the underlying chaining element inside the monad
17:06:02 <ais523> of course, Haskell doesn't let you access that directly, because it would allow you to fork timelines, which is just weird
17:07:01 <ais523> a non-monad example: to make 12 copies of the string "test", I need only do '(church 12) (++"test") ""'
17:07:04 <ehird`_> ais523: you can access the io chain
17:07:20 <ais523> that would at least be better for my sanity than unsafePerformIO
17:07:27 <ehird`_> = GHC.IOBase.IO (State# RealWorld -> (# State# RealWorld, a #))
17:07:36 <ehird`_> (# ... #) is strictness annotations, btw
17:07:41 <ais523> RealWorld being the IO chain, presumably
17:08:20 <ais523> I wonder what happens when you deliberately fork it?
17:08:20 <ehird`_> ais523: segfault, i assume
17:08:27 <ais523> not that I'd ever do something that evil in practice
17:08:28 <ehird`_> ais523: but the important thing
17:08:35 <ehird`_> is that with this IO, you can define IOT
17:09:05 <ais523> I was having similar thoughts in my megaProlog
17:09:16 <ais523> TwoDucksness falls out naturally from the syntax
17:09:42 <ais523> with no time travel involved, just starting with the (infinite) set of all possible timelines and eliminating them until only a few are left at the end of the program
17:10:35 <ehird`_> dechurch :: Church a -> Integer
17:10:40 <ehird`_> dechurch :: Church Integer -> Integer
17:10:47 <ehird`_> that means you can't "dechurch one"
17:11:00 <ais523> what about my dechurch definition?
17:11:08 <ehird`_> dechurch (Church n) = n (1+) 0
17:11:14 <ais523> that probably won't type the way you've defined the typeclasses
17:11:37 <ais523> the real problem is that all the Church numerals have different types
17:12:03 <ais523> so, for instance, one would be a -> a in an ideal world
17:12:31 <ais523> two would be (a -> b AND b -> c) -> (a -> c)
17:12:45 <ais523> three would be (a -> b AND b -> c AND c -> d) -> (a -> d)
17:13:11 <ais523> but ANDs in types are apparently not allowed, even though I've wanted to use them in RL before
17:13:51 <ais523> two three would be allowed; its type signature would even tell you that the result was six!
17:14:02 <ais523> come to thing of it, succ and pred would likely be fine too
17:15:34 <ehird`_> ais523: I've decided type-level church numerals are far more fun.
17:20:50 <ais523> ehird`_: I have no problem with Church numerals, succ, and dechurch typing for me
17:21:06 <ais523> although they type as (a -> a) -> a -> a, which is likely the best that Haskell can do
17:21:28 <ehird`_> ais523: yes, the problems come later
17:21:33 <ais523> succ :: ((b -> c) -> a -> b) -> (b -> c) -> a -> c
17:21:40 <ehird`_> ais523: anyway, type-levels are so fun
17:22:07 <ehird`_> did you know that haskell's type system (well, with 1 or 2 extensions turned on) can have SK embedded in it??
17:22:24 <ais523> so you can't get sii in the lang itself
17:22:28 <ais523> but you can get sii in its type system
17:22:31 <ehird`_> but you can get it in the type system.
17:22:36 <ais523> because the type system itself isn't typechecked so strictly
17:22:49 <ehird`_> well, you can't get it without the 2 extensions
17:22:52 <ais523> that says a lot about Haskell's typechecker
17:22:56 <ehird`_> and one is -XUndecidableInstances
17:23:02 <ehird`_> so, to be honest, you're really saying 'LET ME DO THIS'
17:23:43 <ais523> well, of course, something that doesn't allow undecidable types is hardly going to allow TC types
17:23:50 <ehird`_> ais523: here's how you use peano-types: > :t pred (undefined :: (Succ Zero))
17:24:04 <ehird`_> pred (undefined :: (Succ Zero)) :: Zero
17:24:27 <ais523> the real test will be if you can multiply and divide them
17:24:37 <ehird`_> ais523: of course you can.
17:24:44 <ehird`_> there's a fscking *type-level quicksort*
17:25:01 <ehird`_> interestingly, with that definition of pred
17:25:05 <ehird`_> you get (pred Zero) checking for free
17:25:20 <ais523> yes, but I was wondering about if it was possible with that sort of simple definition
17:25:27 <ais523> and how complicated the type signature needed would be
17:25:55 <ehird`_> ais523: also worth noting is that its impossible to get the type into a haskell Integer
17:26:04 <ehird`_> you can define a Show instance
17:26:22 <ais523> that only gets you a finite number of possible outputs, right?
17:26:39 <ais523> therefore, you should define Show to output ASCII chars rather than integers
17:26:46 <ais523> so you can have BF-style IO
17:27:05 <ais523> and write atoi in the type system
17:27:05 <ehird`_> instance Show Zero where show = const "0"
17:27:05 <ehird`_> instance Show (Succ a) where show = const ("S" ++ show (undefined :: a))
17:27:05 <ehird`_> unfortunately, does not actually work
17:29:07 <ais523> ehird`_: what goes wrong?
17:29:19 <ais523> and why the underscore on your nick?
17:29:22 <ehird`_> ais523: well, if you add (Show a) => Show (Succ a):
17:29:32 <ehird`_> /home/ehird/calc.hs:13:20:
17:29:32 <ehird`_> Ambiguous type variable `a' in the constraint:
17:29:32 <ehird`_> arising from a use of `show' at /home/ehird/calc.hs:13:20-33
17:29:32 <ehird`_> Probable fix: add a type signature that fixes these type variable(s)
17:29:47 <ehird`_> i use 'ehird' now (got it back)
17:29:51 <ehird`_> but ehird` was when ehird was cracked
17:30:27 <ais523> Show a might not be enough
17:30:32 <ais523> what about (Show a, Peano a)?
17:30:46 <ehird`_> just 'data Zero' and 'data Succ a'
17:30:57 <ais523> oh, so Zero and Succ are different data types
17:31:10 <ais523> just for fun, what happens if you say "deriving Show"?
17:31:20 <ehird`_> ais523: they have no constructors.
17:31:27 <ehird`_> that would therefore do nothing
17:31:42 <ais523> for a while I thought you were using the constructors to do your Peano arithmetic
17:31:44 <ehird`_> i can use my pred function
17:31:49 <ehird`_> ais523: that would be runtime
17:31:58 <ais523> you're right, it would be
17:32:02 <ehird`_> when you do 5*2 in this, it's worked out at compile-time.
17:32:08 <ehird`_> and you get a value of type (Succ^10 Zero)
17:32:20 <ehird`_> the value itself is just 'undefined' as some value so it's pretty opaque
17:32:57 <ehird`_> *Main> undefined :: Succ (Succ Zero)
17:33:05 <ehird`_> instance Show a => Show (Succ a) where
17:33:05 <ehird`_> show a = "S" ++ show (pred a)
17:36:22 <slereah_> Is it possible to implement the Β΅ function?
17:36:35 <slereah_> I can't think of a general way to do it.
17:37:46 <slereah_> You know, for general recursive functions. Β΅y f(y, x1, x2, x3, ...) = smallest value of y that makes the function vanish if it exists, 0 otherwise.
17:40:30 <ehird`_> ais523: heyyy, I just realised
17:40:34 <ehird`_> an instance for Eq on Succ a or Zero
17:40:47 <ehird`_> == with two non-equal arguments, with that
17:41:03 <ais523> does Eq return false when it doesn't type
17:41:06 <ais523> or does it just error out
17:41:10 <ehird`_> ais523: no, it won't compile
17:41:17 <ehird`_> so.. you have compile-time assertations of numeric equality
17:41:24 <ais523> so that would be more assert-equal rather than equal
17:41:26 <ehird`_> you can define an Eq type doing it properly
17:41:59 <ehird`_> ais523: for Plus i'll need a class...
17:42:06 <ehird`_> 'plus' can't be a function itself
17:42:14 <ehird`_> i must define a 'plus' class or something
17:42:19 <ehird`_> then do the trick i did with pred/succ for a function
17:44:40 -!- habnabit has quit (Read error: 110 (Connection timed out)).
17:47:33 <ehird`_> ais523: making this hs98 is hard
17:47:56 <ais523> do you have a link to that type-system quicksort, by the way?
17:48:27 <ais523> Google seems not to help that much
17:48:45 <ehird`_> http://www.haskell.org/haskellwiki/Type_arithmetic
17:48:49 <ehird`_> but please don't look at the numeric definitions
17:48:55 <ehird`_> i want to make sure mine are as different as possible
17:49:09 <ehird`_> http://www.haskell.org/haskellwiki/Type_SK
17:57:25 -!- ehird`_ has quit ("K-Lined by peer").
18:02:48 -!- ehird` has joined.
18:03:39 <ais523> no comments between when you left and when you rejoined
18:03:43 <ais523> at least not in this channel
18:03:50 <ais523> nor either of the others I'm in
18:04:05 <ais523> either of the others I'm all alone in, for that matter, since you left
18:04:12 <slereah_> The internet awaited your return
18:04:48 <ehird`> ais523: anyway, i'm testing with hugs now
18:06:00 <ehird`> ais523: apart from plus/minus etc
18:06:04 <ehird`> what would you say is a good operation?
18:06:09 <ehird`> since plus/minus are too hard, for now
18:06:52 <ais523> with Church numerals, exponentiation is easier than plus, minus, times, or divide
18:06:53 <ais523> I don't think Peano numbers are so well behaved, though
18:07:29 <ehird`> that requires comparison
18:10:28 <ehird`> ais523: crazy -- i'm writing a toPeano
18:10:32 <ehird`> i guess, that might be impossible
18:10:43 <ehird`> fromPeano :: a -> Integer
18:10:43 <ehird`> instance Peano Zero where
18:10:43 <ehird`> instance Peano a => Peano (Succ a) where
18:10:43 <ehird`> fromPeano a = 1 + fromPeano (pred a)
18:10:47 <ais523> what are you passing in as an argument to toPeano?
18:10:54 <ehird`> which is why I think it's hard
18:10:59 <ehird`> I would need run-time types.
18:11:04 <ais523> the Integer's value isn't known at compile time
18:12:26 <ais523> write a fromChurchToPeano instead
18:12:35 <ais523> that reads a Church numeral in SKK form...
18:12:38 <ehird`> ais523: Churchs values aren't known at compile-time either
18:12:48 <ais523> you can implement the Churches in types
18:12:57 <ais523> probably easier than implementing them as functions...
18:13:32 <ais523> it's actually remarkably simple, because you just apply the Church numeral to succ and 0
18:21:08 <ehird`> ais523: i am unsure if plus is possible with just hs98
18:21:54 <ais523> I don't know enough Haskell typesystem stuff yet to be sure either
18:22:03 <ais523> I'm just busy on getting the Underlambda Tier 1 spec finished
18:22:38 <ais523> it's exactly the Underload spec, except taht S has been relaxed to print out a serialisation of the code in the top stack element, rather than the source code of the top stack element
18:22:44 <ais523> and everything's described in a lot more detail
18:23:02 <ais523> oh, and I changed the quoting rules because everyone ignored them anyway
18:23:15 <ais523> and added a magic word for the start of the program
18:24:15 <ais523> but if the forbidden characters #!{} are avoided, all Underload interpreters are lenient conforming bounded Underlambda Tier 1 interpreters
18:24:57 <ehird`> ais523: i just had an idea
18:25:02 <ehird`> if haskell's typesystem is TC
18:25:06 <ehird`> then what about a language with just a type system?!
18:25:49 <ais523> but then it wouldn't really be a just-a-type-system lang
18:25:59 <ais523> but a lang with untyped data
18:26:06 <ais523> unless you're using metatyping as well
18:26:13 <ehird`> a turtles-all-the-way-down approach
18:26:24 <ais523> I want to have metakinds of metatypes!
18:27:31 <ehird`> because a 'djinn'-alike is involved
18:27:55 <ais523> unless your IO chain is made of types rather than values
18:28:00 <ais523> I don't see how you could do input otherwise
18:28:07 <ehird`> it is made up of types, yes.
18:28:08 <ais523> because the input would be runtime but the output compile-time...
18:28:18 <ehird`> you are right -- the chain is made up of types, then
18:28:20 <ais523> and if your IO chain is made of types you don't need the values
18:28:39 <ehird`> by making the type specify that the 'values' (dummies) depend on the previous 'values' (also dummies, but of just the right type)
18:29:09 <ais523> maybe you could combine the dummy values with random operators that happened to have the right type signature
18:29:20 <ais523> and just plug some random dummy values in to see what happened
18:29:30 <ais523> at runtime, after your program has already run
18:32:05 <ehird`> to find a variable of type '<insert some kind of io type here involving input>'
18:32:19 <ehird`> it must satisfy the constraints which amount to 'a line of input whicih is inputted RIGHT NOW'
18:32:22 <ehird`> so the compiler gets it
18:32:30 <ehird`> (the compiler is also a djinn)
18:32:35 <ehird`> and then hardcodes that value into the output
18:32:40 <ehird`> just like a very clever djinn
18:32:46 <ehird`> all IO happens at compile-time
18:32:51 <ehird`> the final program is a no-op
18:33:00 <ais523> or indeed not necessary at all
18:33:02 <ehird`> ais523: http://pastebin.com/m64be26a5 this bash prompt is epic -- see http://reddit.com/info/697cu/comments/c037ztj
18:33:46 <ais523> are bash prompts TC, like the rest of bash is?
18:33:59 <ais523> probably not, unless there's a way to loop
18:39:19 <ehird`> ais523: check the source fo that one
18:39:32 <ehird`> it uses prompt_command
18:39:51 <ais523> I did, but I don't understand it that much
18:40:11 <ais523> it appears to be mostly switches so that it's portable to different terminal types
18:40:13 <ehird`> ais523: basically, bash lets you run a command for a prompt
18:41:35 <ehird`> ais523: also, i have an idea
18:41:45 <ehird`> a prompt creation library
18:41:58 <ehird`> which lets you configure it emacs-style, and call various init functions on variables
18:42:00 <ehird`> to have it manage them
18:42:06 <ehird`> so prompt creation is a lot easier
18:42:08 <ehird`> since it's modular etc
18:42:12 <ais523> your comment "also, i have an idea" reminded me of the adventure game in UMIX
18:42:20 <ehird`> you could make a prompt whose colour was the last exit code converted to rgb
18:42:45 <ais523> it kept spouting stuff like "also, it is broken; it is missing a circuit board missing a (radio missing an antenna)"
18:43:10 <ais523> the idea being that before long you would get bored and write a program to solve the puzzles, all of which were of the same nature and some of which were extremely long
18:43:48 <ais523> the main thing you interacted with in the 1006 ICFP
18:43:59 <ehird`> is that the ancient machine
18:44:20 <ais523> where they just give you some self-extracting bytecode containing most of the challenges and you have to write the VM yourself
18:44:21 <ehird`> i love icfp's award texts
18:44:44 <ais523> if you ever try, I recommend writing the VM in C, because it needs to be extremely fast
18:45:02 <ais523> I have a fast interp for it, but it assumes 32-bit pointers becaues it makes things simpler
18:45:13 <ais523> ehird`: because even with my fast interp the self-extract took about an hour
18:45:32 <ais523> I had a Perl interp originally, but I got bored before the program even finished the selfcheck
18:45:59 <ais523> even worse, I had to run it twice, because I didn't have anything capturing stdout the first time
18:46:28 <ais523> obviously, I meant 2006, not 1006
18:47:20 <ais523> on a similar note, does anyone know how to get past the wildcat in Lost Kingdoms?
18:47:26 <ais523> I'm completely stumped
18:47:35 <ehird`> i just wait until it starts.
18:47:44 <ais523> I have done, but I'm stuck on the wildcat
18:47:50 <ais523> nothing I do seems to work
18:48:03 <ais523> you can't go past it, because then it puts up a fake prompt and kills you whatever you type
18:48:05 <ehird`> ais523: what should i call that turtle-types language?
18:48:09 <ais523> but there's no obvious way to kill it either?
18:48:26 <ais523> whenever I try, it just says "you can't see it clearly enough" or something similar
18:48:41 <ehird`> ais523: write a brainfuck interp that lets you serialize+reload a tape & program counter
18:49:06 <ehird`> ais523: well, then you have to play up to the wildcat and serialize.
18:49:13 <ehird`> so it'd better be pretty quick; for lostkng
18:49:31 <ais523> I'll find a fast opensource bf interpreter and modify it a bit
18:50:19 <ehird`> I would say 'mine' but it isn't written yet
18:50:38 <ehird`> ais523: apparently http://mazonka.com/brainf/ is faster
18:50:46 <ehird`> than http://swapped.cc/bf/
18:50:50 <ehird`> which used to have a pretty design. odd
18:50:50 <ais523> I'm using the one that comes with Lost Kingdoms
18:51:35 <ehird`> mazonka.com/brainf/ is a lot faster
18:51:39 <ehird`> and since you're saving more state
18:51:56 -!- habnabit has joined.
18:52:00 <ehird`> http://mazonka.com/brainf/bff4.c with -DLNR
18:53:47 <ehird`> ais523: how do i print up to something matching a regexp in ed?
18:54:03 <ehird`> trying to edit some C with it :)
18:54:15 <ais523> in sed it would be 1../regexp/ p
18:54:22 <ais523> and ed often uses the same commands
18:54:47 <ais523> but I shelved it after a while to work on other things
18:55:11 <ais523> it would have been quite a torture-test for the backtracking code if I finished it
18:55:23 <ehird`> ais523: ken thompson's favourite editor used to be ed
18:55:45 <ehird`> then it was sam (ed, but with a gui: a top, scrollable command window, and various file buffers below, which just display the current file)
18:55:48 <ais523> except that you could enter a blank line to cause everything since the last blank line to run as a self-contained program
18:55:55 <ehird`> (you could use the mouse and everything to move around windows and stuff)
18:56:00 <ehird`> but he may have moved on to acme
18:56:01 <ais523> and there was an extra command 'display on screen'
18:56:48 <ehird`> ais523: ah, you don't want bff4
18:57:03 <ais523> I can't modify it anyway
18:57:07 <ais523> no explicit license agreement
18:57:15 <ehird`> ais523: you are PARANOID
18:57:28 <ais523> no, I just like to stay legal
18:57:53 <ehird`> ais523: i am sure you could send off an email
18:57:58 <ehird`> in the esolang world, nobody cares
18:57:59 <ais523> worse, bff has an explicit "all rights reserved"
18:58:22 <ais523> so I'll stick to Lost Kingdom's interp
18:58:29 <ais523> which is pretty responsive for me once it's loaded
18:59:47 <ehird`> *The program is distributed under terms of BSD license.
18:59:47 <ehird`> *You can obtain the copy of the license by visiting:
18:59:47 <ehird`> *http://www.opensource.org/licenses/bsd-license.php
19:00:06 <ehird`> ais523: all rights reserved is just the readme
19:00:27 <ais523> hmm... nice misleading license
19:00:39 <ehird`> yeah, well who cares, the source file says it's bsd -- that's what is important
19:00:55 <ais523> let me finish working on the Lost Kingdom's version, anyway, as I've done quite a bit on that already
19:01:16 <ehird`> ais523: ok. but bff.c is crazy fast
19:02:13 <ehird`> it runs mandelbrot.b in 19sec on this old, crusty machine
19:02:37 <ehird`> ais523: btw, do you think Epic $PS1 is a good idea? :P
19:02:50 <ais523> I wouldn't use it but probably lots of people would
19:03:07 <ais523> actually, I might use it just to test for you, but I'm reasonably happy with my current boring default prompt
19:03:23 <ais523> on Windows (where I also run bash) my prompt is even more boring; I set it to a single $
19:04:03 <ehird`> ais523: mostly, my prompt would be in the title
19:04:09 <ehird`> but i think two-line prompts are pretty good
19:04:20 <ehird`> where $ is a # when root
19:04:33 <ais523> you should turn the entire line a different colour when you're root
19:04:49 <ehird`> and, <cwd> gets coloured according to the last commands output
19:04:51 <ais523> or maybe even if the command merely starts with sudo, if there's some way to do that
19:04:53 <ehird`> when you're root, that's tinted red
19:05:06 <ehird`> so, '1' might give dark gray on normal
19:07:15 <ehird`> ais523: hmm, i'm giong to take a hand at writing a fastfast brainfuck interp
19:07:22 <ehird`> i take it you're not interested? :-P
19:07:40 -!- Tritonio_ has quit ("Bye...").
19:07:45 <ehird`> ais523: anyway, got that stateful interp yet?
19:07:52 <ais523> almost finished writing
19:08:04 <ais523> I probably would have done by now if it weren't for constantly seeing why #esoteric is flashing at me
19:08:08 -!- Tritonio_ has joined.
19:09:06 -!- cherez has joined.
19:09:43 <ehird`> ais523: ok, what about turtles
19:11:24 <ehird`> typedef struct _turtle {
19:11:25 <ehird`> struct _turtle *metatype;
19:11:25 <ehird`> struct _turtle *supertype;
19:15:10 <ehird`> you know i've never implemented bignums
19:15:12 <ehird`> i should do that sometime
19:21:42 -!- Tritonio_ has quit ("Bye...").
19:24:31 <ais523> faxathisia: it's even easier than that
19:24:35 <ais523> you just use type Integer...
19:27:06 <ehird`> thats not an implementation thugh.
19:35:40 <ehird`> 8 seconds to calculate 100000
19:42:32 -!- Tritonio_ has joined.
19:43:29 <ehird`> ais523: hmm............
19:43:36 <ehird`> should a bigint library handle negative numbers?
19:43:44 <ehird`> on the root node i can just include a 'sign' bit
19:46:26 <ehird`> ais523: i'll just make the actual leaves unsigned long's tgeb
19:47:38 <ehird`> base = sizeof(unsigned long)*8
19:51:53 <ais523> ehird`: I finished the bf serialiser/unserialiser
19:52:00 <ais523> and I've played through to the wildcat bit
19:52:07 <ehird`> show me the interp&serialized
19:54:56 <ais523> http://filebin.ca/ytdzpo/bf-ser.c
19:55:01 <ais523> is the BF interp with serialisation
19:55:09 <ais523> http://filebin.ca/hcaczt/wildcat.ser
19:55:16 <ais523> is the save file for the point in the game I reached
19:55:30 <ehird`> ais523: you should handle SIGSUSPEND
19:55:37 <ehird`> what if i want to input `
19:55:46 <ais523> I don't think that comes up
19:55:54 <ais523> but this is just a quick hack
19:55:54 <ehird`> well, what if i want to in some program :P
19:56:00 <ehird`> (and, with ^Z, you can display a prompt)
19:56:04 <ais523> it doesn't support loops nested more than 63 deep either
19:56:12 <ais523> I may improve it at some point
19:56:30 <ais523> oh, and serialisations are always written to the file ./bf.ser, but you can rename/copy it once it's been created
19:56:42 <ais523> to load from a serialisation, it's bf-ser <program> <serialisation>
19:57:14 <ais523> and type L <newline> when it loads, to get it to repeat the last prompt, or it's terribly out of context
19:58:53 <ehird`> checking whether some integer operations overflows in c is.. hard
19:59:18 <ehird`> ais523: link to lostkng.b?
20:00:12 <ehird`> damn, you can't even do:
20:00:32 <ehird`> because it might overflow an awful lot
20:00:37 <ais523> http://jonripley.com/i-fiction/games/LostKingdomBF.html
20:00:43 <ais523> it's inside a .zip container, unfortunately
20:01:05 <ais523> I strongly suggest you type ?2 at some prompt to find out the controls
20:01:11 -!- cherez has quit ("Leaving.").
20:01:48 <ehird`> ais523: does it start up immediately?
20:02:03 <ehird`> serialize that start of lostkng.b after startup
20:02:09 <ehird`> then you can lie about your interps speed ;)
20:02:22 <ais523> it's not quite immediate-start, TBH
20:02:25 <ehird`> 'starts lostkng in 0sec!!!'
20:02:37 <ais523> but it's O(n) in the number of instructions the IP is deep in the program
20:02:38 <ehird`> ais523: about instant for me
20:02:44 <ais523> because there's no looping
20:02:48 <ais523> it just goes straight there
20:02:55 <ais523> the delay is due to seeking by index in a linked list
20:02:59 <ais523> and that's hardly noticeable
20:04:09 <ehird`> ais523: using this game is like programming in an esolang
20:04:24 <ehird`> (nigh-on impossible the first time)
20:04:28 <ehird`> i can't get it to do anything
20:05:00 <ais523> ?2 gives a list of commands
20:05:07 <ais523> i will tell you which number corresponds to which item you own
20:05:17 <ais523> then it's a case of typing <letter> or <letter> space <number>
20:05:49 -!- cherez has joined.
20:05:50 -!- cherez has quit (Remote closed the connection).
20:06:05 -!- cherez has joined.
20:06:05 -!- cherez has quit (Remote closed the connection).
20:06:42 -!- cherez has joined.
20:06:42 -!- cherez has quit (Remote closed the connection).
20:07:04 <ehird`> ais523: what about that axe you have..?
20:07:12 -!- cherez has joined.
20:07:14 <ais523> it doesn't work because you can't aim it
20:07:24 <ehird`> i did but i don't know the controls properly so im having trouble.
20:07:24 <ais523> BTW, I'm pretty sure I've got all the items in the game up to that point
20:07:35 <ais523> killing the cat doesn't work
20:07:40 <ais523> throwing the axe at the cat doesn't work
20:07:48 <ais523> and walking deeper kills you
20:08:09 <ehird`> ais523: its a port of an older game
20:08:16 <ehird`> so why not look around for that one
20:08:30 <ais523> one thing I tried was to write a decompiler
20:08:38 <ais523> but when I found there were unbalanced loops I gave up
20:08:53 <ais523> maybe I should find a copy of BFBASIC and see if I can write something to reverse its effect
20:09:10 <ehird`> You hear the creature stir but the beast remains hidden.
20:09:19 <ehird`> and ... more than just from BFBASIC:
20:09:24 <ehird`> http://jonripley.com/i-fiction/games/LostKingdom.html
20:09:35 <ais523> you just threw away your box of matches!
20:09:48 <ais523> ...and yes, I tried that as well
20:09:49 <ehird`> but it made the creature stir
20:09:54 <ais523> sorry, misread the number
20:10:33 <ehird`> sorry, ais523 -- i think it's a dead end
20:10:51 <ais523> and that area was well-guarded
20:11:26 <ehird`> LostKingdom,ffb is the Acorn BBC BASIC version.
20:11:27 <ehird`> LostKingdom.bbc is the non-Acorn BBC BASIC version.
20:11:32 <ehird`> i believe those are sources.
20:11:37 * ais523 has actually written BBC Basic
20:11:44 <ais523> but those sources don't correspond to the BF version
20:11:46 <ehird`> oh they appear to be binary files
20:13:18 <ais523> and with no recognisable text fragments
20:13:33 <ais523> most of the text was new for the BF version, anyway, IIRC
20:14:11 <ehird`> ais523: We need an esolang that is optimized for writing Hunt the Wumpus and simmilar.
20:14:13 <ehird`> Befunge does a good job of it.
20:14:48 <ehird`> http://en.wikipedia.org/wiki/Image:Wumpus.jpg wow, the wumpus SO does not look like that
20:15:04 <ehird`> The wumpus looks like a walrus, but bigger, and stands more on its hind legs.
20:15:10 <ehird`> and eviller. red eyes.
20:15:37 -!- uvanta has quit ("μ¬νμ£Όμμ μ λ
, μμ°μ£Όμμ μ΄μ±").
20:17:50 <ehird`> what's the best befunge interp out there?
20:18:11 <ais523> ccbi is apparently the only standard-compilant Funge-98 interp, so that's the one I use
20:18:55 <ais523> and Funge-98 > Befunge-93 in so many ways
20:19:30 <ehird`> 98 is such complex crap.
20:19:35 <ehird`> -93 + infinite board = yum
20:19:56 <ais523> 98 is 93+infinite board+actual specifications for some things that weren't specified before
20:19:57 <ehird`> the bef wumpus is written in -93
20:20:02 <ehird`> ais523: + complex crap
20:20:04 <ais523> and a whole lot of useful commands that you can ignore if you like
20:20:13 <ehird`> http://catseye.tc/projects/befunge93/eg/wumpus.bf hunt the befunge-93
20:20:27 <ais523> ehird`: input behaviour on EOF is something that badly needed specifying
20:20:38 <ehird`> brainfuck does fine without
20:20:53 <ais523> the EOF thing is responsible for most BF incompatibilities
20:21:00 <ais523> BF would be a much better lang without that particular problem
20:21:09 -!- olsner has joined.
20:21:10 <ais523> and it's pretty good as it is
20:21:56 -!- chere1 has joined.
20:21:57 -!- chere1 has quit (Remote closed the connection).
20:22:01 -!- chere1 has joined.
20:22:02 -!- chere1 has quit (Remote closed the connection).
20:22:16 <ais523> on another note, I'm working on an esolang-based text adventure
20:22:18 -!- cherez has quit ("Leaving.").
20:22:19 <ehird`> speaking of which i should write a brainfuck specification
20:22:30 <ais523> that is, esolangs form the basis of the plot
20:22:37 <ais523> although the adventure is itself written in C
20:22:58 <ais523> so far I have a BF-based, INTERCAL-based, and SMETANA-based puzzle
20:23:25 -!- cherez has joined.
20:23:35 <ais523> in most of the puzzles, the player plays an intelligent IP that can choose to change direction out of free will and execute a different set of commands
20:23:55 <ais523> and some of the langs were made 2D so that people could walk around them in a more interesting way
20:24:07 <ais523> it's slow going, though, because good puzzle ideas are hard to come by
20:24:29 <ehird`> ais523: why write in c?
20:24:38 <ais523> because I started it years ago
20:24:50 <ais523> back when I was mostly writing C in files with a .cpp extension
20:24:55 <ais523> because I didn't really realise the difference
20:25:04 <ais523> it would be easy enough to translate, if necessary
20:25:18 <ais523> oh, and the portability's the other reason
20:27:20 <ehird`> I think I want to write Be Your Funge.
20:27:26 <ehird`> It's FukYorBrane, but for befunge.
20:27:34 <ehird`> (93, of course -- the limitations are an advantage)
20:27:55 <ais523> FYB's main problem, by the way, is that [] loops can run for 0 repetitions
20:27:58 <ehird`> ais523: Actually, I think it will be short.
20:28:15 <ais523> If I ever hold a FYB contest, I'll force them to run at least once each
20:28:36 <ais523> otherwise you can just start your program by defecting, pointing at a NOP, and skipping 100000000000000 bytes of junk
20:28:48 <ais523> and do whatever you like because the opponent can only move their data pointer one step at a time
20:29:12 <ais523> so you have trillions of instruction cycles before the opponent can get anywhere near affecting your program
20:30:00 <ais523> it leads to degenerate competitions where the length of the original junk is all that determines who wins
20:30:12 <ehird`> ais523: beyourfunge will use p and g
20:30:15 <ehird`> to point at the opponent
20:31:09 <ehird`> ais523: um, should i do:
20:31:17 <ehird`> or something more sophisciated?
20:31:28 <ais523> although you lose one thing I liked about fyb, which was that setting a square to a bomb was much harder than setting it to a low-numbered instruction in terms of time spent
20:31:42 <ais523> ehird`: alternate either instructions or torus squares
20:31:56 <ais523> probably instructions as that's how most of the commands seem to be defined
20:32:00 <ais523> i.e. spaces take 0 time to run
20:32:22 <ais523> oh, it's also probably a good idea to have some way to determine where the enemy instruction pointer is
20:32:36 <ehird`> ais523: my way is nicer because it requires no language extensions
20:32:44 <ais523> maybe radar-style: "how many spaces from point (x,y) is the enemy IP?"
20:32:56 <ehird`> assuming a sitting duck B, a non-modifying (of its own code) befunge program will behave normally
20:32:59 <ais523> otherwise you either have to analyse the enemy program (ridiculously time-consuming) or guess
20:33:09 -!- cherez has quit ("Leaving.").
20:33:11 <ehird`> ais523: well, are you sure spaces should take 0 to run?
20:33:31 <ais523> but it fits the language better
20:33:43 <ais523> and it doesn't make too much difference in terms of making the IP hard to find
20:34:30 <ais523> because in a 2D language like Befunge it's hard enough anyway
20:35:07 <ais523> if there's no way to pinpoint the enemy IP, programs are effectively just going to be guessing where to put bombs (quit instructions?), or else covering the entire torus systematically
20:35:14 <ais523> and I can't see much of a scope for better strategies
20:41:17 <ehird`> @ end program is indeed the bomb
20:42:02 <ehird`> hmm, ais523 --- how else do you end a prog in befunge apart from @?
20:42:16 <ais523> Funge-98 has q as well, though
20:43:42 <ehird`> ais523: how big are befunge stack elements?
20:43:52 <ais523> normally 32-bit signed integers
20:44:14 <ehird`> ais523: linked list stack or..
20:44:31 <ais523> making Befunge-93 a PDA
20:46:50 -!- slereah_ has quit (Read error: 104 (Connection reset by peer)).
20:47:04 -!- slereah_ has joined.
20:51:00 <ais523> what, no diagonally? Now I remember another reason why I don't like Befunge-93
20:51:43 <ehird`> ais523: horizontal if is:
20:51:55 <ehird`> if(pop()){d=left;}else{d=right}
20:51:59 <ehird`> and up/down for vertical
20:52:10 <ais523> for some reason I only memorised horizontal
20:52:15 <ais523> but it goes left on non-zero, yes
20:52:24 <ehird`> * _ acts like < if the value is true or > if it is false; and
20:52:24 <ehird`> * | acts like ^ if the value is true or v if it is false.
20:52:35 <ais523> so right on both counts
20:52:43 <ais523> right as in correct, that is
20:53:07 <ehird`> is there any way to do that?
20:53:28 <ais523> because even values > 1 have to give true
20:53:34 <ais523> but !! is shorter and more idiomatic
20:54:03 <ehird`> then | is !!pop(s,n)+2
20:55:05 <ais523> because true needs to give 3 and false needs to give 4
20:55:19 <ais523> so only one exclamation mark, to reverse the sense of the test
20:56:38 <ehird`> ais523: on an unrelated note, my stringmode handler in an 'if' jumps to a goto inside the else branch
20:57:13 <ehird`> ais523: I could structure it more without goto. But there are about 5 lines between jump and label.
20:57:17 <ehird`> So I don't think it's important.
21:02:31 <ais523> probably wisest to look it up
21:04:00 <ais523> ehird`: y is on top of the stack, according to the original docs
21:05:47 <ais523> the main thing to be careful of is #
21:05:59 <ais523> which apparently skips all whitespace in the IP's direction, and the next non-whitespace character
21:06:27 <ais523> I think; I'm just looking it up again
21:06:28 <ehird`> skip whitespace, that is
21:06:32 <ehird`> it seems to not skip whitespace
21:07:00 <ais523> hmm... the spec is ambiguous about that
21:07:12 <ehird`> what does the ref interp do?
21:08:00 <ehird`> http://quadium.net/funge/tbc/core.int
21:08:55 -!- Asztal has quit (Read error: 104 (Connection reset by peer)).
21:09:12 <ais523> I was thinking of the complicated situation when there's a # at the end of a line
21:09:18 <ais523> and the line is not exactly 80 chars long
21:09:22 -!- Asztal has joined.
21:09:24 <ehird`> ais523: should I disable IO in Be Your Funge programs?
21:09:38 <ehird`> or will the multithreaded outputfuck be funny :D
21:09:43 <ehird`> (and the inputfuck, well, useless i guess :D)
21:09:56 <ais523> allowing input would mean that you would have to generate the input somehow
21:10:02 <ehird`> in mine that would advance it into the next space
21:10:10 <ais523> you could do it like Easy, where the input is embedded in the program
21:10:24 <ais523> ehird`: jumping over the edge is undefined
21:10:35 <ais523> many interps do it differently for horizontal and vertical
21:10:38 -!- Sgeo[College] has joined.
21:10:38 <ehird`> then who cares what happens
21:10:48 <ais523> so the testsuite measures what happens but doesn't give it a pass or fail
21:10:53 <ehird`> Sgeo[College]: Go to hell.
21:11:03 <ais523> but stop spamming, there's something wrong with your client
21:11:13 <ehird`> i thought he was being highly annoying
21:11:40 <ehird`> in Easy the program is 'RUN'
21:11:48 <ais523> as it isn't responding to ctcp version or ping
21:12:06 <ais523> ehird`: I treat an Easy program as being what's typed into stdin
21:12:12 <ais523> so the input and program are all mixed up
21:12:13 <faxathisia> Sgeo[College]: you soid Hi all about 50 times!
21:12:18 <ehird`> ais523: but easy is all about being pedantic with things like that
21:12:20 <ais523> it leads to some nicer programs, though
21:12:35 <ehird`> ais523: anyway, what do undefined instructions do in befunge-93??
21:12:44 <ais523> ,H.,e.,l.,l.,o.,,., .,w.,o.,r.,l.,d.
21:13:10 <ais523> ehird`: error in befunge-93
21:13:41 <ais523> in Funge-98 pretty much all errors, including undefined instructions, cause a rebound where the IP changes direction 180 degrees
21:15:28 * ehird` figures out shortest way to do 1->2,2->1
21:16:01 <ais523> the classic a^=b^=a^=b is unfortunately not portable, and is technically undefined behaviour
21:17:39 <ais523> although that's a classic INTERCAL problem (as 1 and 2 are the usual logic levels), with the usual answer being something like '?#1$.1'~#3
21:18:02 <ais523> i.e. premingle 1, take XOR of consecutive bits, select the bottom two bits
21:19:19 <ais523> ehird`: http://esoteric.voxelperfect.net/files/befunge/src/kquine.bf that's insane
21:19:27 <ais523> can't figure out whether it counts as a cheat or not...
21:20:28 <ais523> the code is simultaneously inside and outside a string due to the unmatched string delimiter
21:20:46 <ais523> so it reads it as data, then when the IP overflows, it hits the original string delimiter and re-reads the program as code...
21:21:38 <ehird`> that's how you do befunge quines
21:22:06 <ehird`> ais523: whoa, awesome -- byf is 255 lines XD
21:22:10 <ehird`> 256 lines counting last \n
21:22:18 <ehird`> i must not add another line
21:22:20 <ais523> have you finished writing it already, then?
21:22:29 <ehird`> hasn't even been compiled
21:22:42 <ais523> besides, you ought to fit it into a space 80x25, really
21:22:45 <ehird`> i wrote it all without compiling it
21:22:57 <ehird`> ais523: even with huge obfuscation and minimalization, i don't think that would be possible
21:23:08 <ais523> you can write multiple commands on a line
21:23:19 <ehird`> whoa, more than a SCREENFUL of errors!!!!!!!
21:23:23 <ais523> or just string assignments together with commas
21:23:37 * ais523 has seen entire C programs written in a single statement
21:23:42 <ehird`> byf.c:8: warning: built-in function βy1β declared as non-function
21:23:45 <ehird`> 'y1' is a built in function?
21:23:47 <ehird`> what the fuck does that do?
21:24:02 <ais523> try recompiling with -ansi
21:24:10 <ais523> y1 certainly isn't a reserved identifier
21:24:24 -!- Sgeo[College] has quit ("http://www.mibbit.com ajax IRC Client").
21:24:59 <ais523> incidentally, a shorter Easy Hello, world!: ,[.,]Hello, world\0
21:25:03 <ais523> where \0 is the NUL character
21:25:16 <ais523> sorry, ,H[.,]ello, world!\0
21:28:39 <ehird`> gcc insists char [x][y]
21:28:45 <ehird`> is really really different from char **
21:28:51 <ehird`> and comparisons without casts - well, i'd better warn you!
21:28:59 <ais523> because of the sizeof issue
21:29:01 <ehird`> ais523: not in this context
21:29:08 <ehird`> and i think warning about it by default is evil
21:29:16 <ais523> OK, but does gcc realise that it's different in this context?
21:29:29 <ehird`> ais523: no but it can not warn about it by default!!
21:29:45 <ais523> which warning flags are you using?
21:29:46 <ehird`> gcc should have an -fi-dont-know-c for the newbies that does do the while (x=y) warnings
21:29:50 <ais523> and can you paste the code?
21:29:55 <ehird`> and by default let you do stuff like while (x=y) without doing while ((x=y))
21:29:59 <ehird`> ais523: none, suprisingly
21:30:04 <ehird`> it warns about it with no flags at all
21:30:04 <ais523> and BTW, you can turn that one off by writing while ((x=y)) which is deliberate
21:30:05 -!- habnabit has quit (Read error: 110 (Connection timed out)).
21:30:52 <ais523> it at least reminds me which of my single-=s are deliberate
21:30:53 <ais523> I tend to put double parens around any = whose value is used in a situation more complicated than a=b=c
21:30:58 <ais523> to remind me that's what I meant
21:31:01 <ais523> and to tell gcc that's what I meant
21:31:12 <ais523> and it doesn't disrupt other compilers because it's still legal C
21:31:33 <ehird`> personally i write c code that compilers should shut up and compile
21:31:46 <ehird`> just not annotated for a bloody program
21:32:03 <ehird`> though it must be said...
21:32:12 <ehird`> byf.c only has one comment, and that's the top-of-file header
21:32:18 <ehird`> the rest is pretty much self-evident.. it's not complex
21:32:32 <ais523> the fact that some programmers have got into the habit of writing while(0==x) shows that some way of marking deliberate = signs is needed
21:32:38 <ehird`> assuming you have an editor which can jump between definitions properly - concepts aren't introduced in a chronological order :P
21:32:45 <ehird`> ais523: only bad programmers.
21:33:12 <ais523> I consider myself to not be a bad programmer, but still typo a==b on occasion
21:33:46 <ais523> yes, but sometimes I don't have access to a decent editor
21:33:53 <ais523> I'm not always on this computer, after all...
21:34:09 <ais523> and wouldn't you still have to write ((a=b)) to tell your editor it was deliberate?
21:34:51 <ehird`> it can just highlight it differently
21:35:02 <ehird`> step(p1, &s1, &x1, &y1, &d1, &sm1, 1);
21:35:08 <ehird`> does & not result in t -> t *?
21:35:15 <ehird`> void step(char p[25][80], bef_stack_t **s, int *x, int *y, int *d, int *sm,
21:35:43 <ais523> ehird`: when you look back at the code a while later, you need to know if it was deliberate
21:35:56 <ehird`> ais523: generally, the context explains that for me
21:36:01 <ais523> and & gives you the address of a non-array variable
21:36:16 <ehird`> which should do int -> int *
21:36:17 <ais523> or the address of the first element of an array variable
21:36:20 <ehird`> but gcc says incompatible pointer type
21:36:26 <ais523> which is the same tpe as the array
21:36:39 <ais523> and what is the type of the variable you're &ing?
21:37:01 <ehird`> because they only store 25 and 80
21:37:50 <ehird`> typedef union { char v:1; } onebyteunion;
21:38:21 <ais523> some compilers allow that
21:38:27 <ais523> but taking the address of a bit would be too difficult
21:38:41 <ais523> the compiler would have to store bits in separate bytes, avoiding the benefits
21:39:00 <ehird`> ais523: true... but it would be nice if you could do
21:39:02 <ais523> the compilers that do allow it are generally for microcontrollers and other small devices that need the memory saving
21:39:07 <ehird`> typedef char boolean:1;
21:39:10 <ehird`> is the usage i was imagining
21:39:18 <ais523> and a variable that acts like it's one bit is available as _Bool in C99
21:39:24 <ehird`> yes but it's actually bigger
21:39:28 <ais523> as in, _Bool is the data type to declare it as
21:39:38 <ehird`> ais523: http://rafb.net/p/626wHG90.html i think p and g have off-by-one errors here..
21:39:39 <ais523> and it's actually bigger because it needs to be for the computer to handle it well
21:39:49 <ehird`> but my head doesn't want to wrap itself around it :-)
21:40:50 <ais523> (0,0) is the top-left corner of the playfield
21:41:13 <ais523> so there's nothing obviously wrong with the code with respect to off-by-one
21:41:27 <ehird`> i think i have the order mixed up
21:41:29 <oklopol> so i hear about this PSOX thing
21:41:58 <ais523> Sgeo just left, though, and they're probably the best person to ask for information
21:42:07 <ais523> although ehird` and Sgeo have been arguing about its merits for a while
21:42:11 <ehird`> ais523: singular they club??!?! *high-5*
21:42:18 <oklopol> ais523: i know it all, just being an oklopol.
21:42:26 * ais523 has even been known to refer to themselves using singular they
21:42:33 <ais523> or maybe that should be themself...
21:42:40 <ais523> I normally use themself, actually
21:42:45 <oklopol> just woke up, and it's 11:46 pm :)
21:42:45 <ehird`> ais523: '* ais523 has'
21:42:48 <ehird`> that reads realy badly
21:42:56 <oklopol> why does my sleep cycle always end up fucked up
21:43:08 <ais523> themself would have been better, I just typed the wrong thing
21:44:00 <oklopol> ais523: i know what you use. not much gets past me that happens here.
21:44:31 <ais523> ehird`: if byf doesn't have a defect instruction, or some way to modify your own source, then there's no sensible way for a program to detect and clean up @-bombs the enemy's aiming at it
21:44:39 <oklopol> although i had a week of self-searching a while ago, and actually missed some of the logs :|
21:45:04 <ehird`> ais523: what about my a/b mixup though? ... i want to fix that first
21:46:01 <ais523> y-coordinate is on the top of the stack
21:46:34 <ais523> so if you're doing p1[x][y], p and g have a and b the wrong way round
21:47:00 <ehird`> ehird@ehird-desktop: ~/byf
21:47:01 <ehird`> $ ./byf wumpus.bf wumpus.bf
21:47:01 <ehird`> Unknown command 0 in program -1209218860
21:47:51 <ehird`> but still unknown command 0
21:47:54 <ais523> you didn't pass the second data arg to fprintf at all
21:48:06 <ais523> I think -Wall warns you about that nowadays
21:50:05 <ehird`> if (p[*x][*y] >= '0' && p[*x][*y] <= '9') {
21:50:05 <ehird`> push(s, p[*x][*y] - '0');
21:50:13 <ehird`> ais523: it looks just like the original atoi! :)
21:50:36 <ais523> good thing C89 and C99 both insist that '0' to '9' be contiguous
21:51:01 <ais523> although they don't guarantee that sort of thing for any other set of characters, due to EBCDIC
21:51:16 <ehird`> ais523: Which is better - a deflect instruction or two new p/g alikes?
21:51:48 <ais523> that saves the problem of special-casing dropping defects into the opponent's code
21:52:15 <ehird`> ais523: i'll reuse input&output chars
21:52:21 <ehird`> and like breaking existing programs
21:52:24 <ais523> multithreading may or may not be useful, too; FYB certainly does it a lot
21:53:31 <ehird`> ais523: yikes! that would be non-trivial with my current design.
21:53:35 <ehird`> well, i could use fork()
21:53:39 <ehird`> but pthreads... urrrgh, pthreads.
21:54:07 <ehird`> ais523: . or , for 'put to this program'
21:54:33 <ais523> I suppose you could just have g and p to aim at yourself, as usual, and . and , could aim at the opponent
21:55:08 <ais523> or other variations thereof, . and , would be mean as they're two versions of the same instruction
21:55:10 <ehird`> ais523: should i come up with entirely new names, then?
21:55:26 <ehird`> yeah i guess not - breaking existing programs is FUN! :)
21:55:31 <ais523> use an input instruction and an output instruction
21:55:39 <ais523> rather than two output instructions, one of which does input...
21:56:51 <ehird`> so, standard BF command characters, sans & and .
21:57:01 <ehird`> and IO instructions work like g and p on the other person's board
21:57:10 <ehird`> ais523: do i need a 'find IP' instruction?
21:57:37 <ais523> maybe that just pushes its coords on the stack, but that might make things too easy
21:57:56 <ais523> maybe a 'distance from my IP to the enemy IP'; that would be interesting!
21:58:09 <ais523> you'd have to check at lots of different points in your own program
21:58:15 <ais523> encouraging people to spread about a bit
21:58:40 <ehird`> ais523: pushing coords to the stack would not be easy
21:59:00 <ais523> you just instantly write a @ where the opponent was, and repeat continuously
21:59:02 <ehird`> you could constantly do it, add one @ to x+1 and one @ to y+1
21:59:22 <ehird`> ok, distance from my ip would work but then you'd need to get your own ip
21:59:33 <ehird`> and your radar idea is kind of crappy -- it would be mostly shooting in the dark
22:00:01 <ais523> maybe you find out where the enemy IP was x cycles ago, where x is some positive number
22:00:11 <ehird`> ais523: if you do '1', then you can just do the same trick, but add 2
22:00:22 <ais523> you don't get to choose x
22:00:47 <ais523> so programs in tight loops, or that twist and turn, avoid that strategy
22:01:04 <ais523> but tight loops are risky because you can aim at where the opponent was in the hope they'll go back to that square again
22:04:02 <ehird`> i can't decide which would be the best
22:04:07 <ehird`> i mean -- how does fukyourbrane avoid this?
22:04:27 <ais523> it has a 'loop until my data pointer is the same as the enemy's instruction pointer' loop
22:04:35 <ais523> which works better in a 1D language than a 2D language
22:05:36 <ehird`> 'make my ip the enemy's ip'
22:05:36 <ehird`> you'd have to be 're-entrant'... haha
22:05:45 <ais523> that seems a bit too random for me
22:06:13 <ais523> maybe you could place some sort of 'warning beacon' in your own code
22:06:14 <ehird`> on another note, zzo38 is not very good at designing web apps; http://zzo38computer.cjb.net/chrono/zzo38/mainpage is basically inscrutable
22:07:04 <ehird`> http://zzo38computer.cjb.net/chrono/_show_source yikes
22:08:18 <ehird`> reminds me of an old bbs system, actually.
22:08:32 <ais523> hmm... is it usual to use changequote(#,|) in m4?
22:08:39 <ais523> that's what I'm doing right now
22:08:40 <lament> it woludn't be so bad without the crossed-out buttons.
22:09:06 <ehird`> zzo38's ideas are quite odd in general, actually
22:09:08 <ehird`> second post on this blog:
22:09:09 <ehird`> 'I invented a Sub-Wikipedia in ScribbleWiki. You can use it for anything, but mostly for things that isn't on Wikipedia because some administrators deleted it or whatever, maybe because there aren't enough verifiable sources, or maybe for some other reason.'
22:09:17 <ais523> many people have had that idea
22:09:19 <ehird`> 'trashcan of non-notable crap wiki'
22:09:29 * ais523 is a Wikipedia administrator
22:09:37 <ehird`> ais523: yes, i know you're a wp admin :P
22:09:41 <ais523> so I know more about the problem than most
22:09:47 <ehird`> before even coming to #esoteric i kept seeing you dotted around the talk pages, actually
22:10:09 -!- cherez has joined.
22:10:17 -!- cherez has left (?).
22:10:23 -!- cherez has joined.
22:10:25 <ehird`> http://subwikipedia.scribblewiki.com/Special:Recentchanges active thing.
22:11:04 <ais523> http://en.wikipedia.org/wiki/Special:Search?go=Go&search=Nine on that wiki is pretty interesting
22:11:18 <ais523> no idea if it's meant to be true or humorous or both, though
22:11:23 <ehird`> it's .. barely interesting
22:11:34 <ais523> interesting in the attitude it shows, anyway
22:11:46 <ais523> you can probably tell a lot about people from random wiki scribbles
22:12:03 <ais523> just like the way I tried to implement a cyclic tag system in MediaWiki once
22:12:21 <ehird`> http://zzo38computer.cjb.net/chrono/zzo38/1198908097
22:13:03 <ehird`> but his esolangs are good
22:13:08 <ehird`> 'It's sometimes claimed that prayer doesn't work, it doesn't increase the probability of getting whatever you prayed for. I think probabilities are not calculated like that. I also think that assigning material efficacy to prayer is like greed, and greed should be avoided.'
22:13:14 <ehird`> i don't see how else you should calculate probabilities
22:13:17 <lament> a typical, run-of-the-mill math cook
22:13:21 <ehird`> .. he's probably in here right now, being offended
22:13:27 <ehird`> lament: he did make TwoDucks..
22:13:34 -!- bsmntbombdood has joined.
22:13:46 <ehird`> And, well, all of these: http://esolangs.org/wiki/User:Zzo38
22:14:15 <ehird`> does anyone know if english is his first language?
22:14:21 <ehird`> i hope not but i can't find any source of him using another
22:14:25 <ais523> wow, I knew zzo38 had made a lot, but didn't realise it was quite that many
22:15:47 <ehird`> you know what would be cool?
22:15:48 <ais523> even better, make it stateful
22:15:55 <ehird`> continuation-based gopher server.
22:16:01 <ais523> so that if only one user uses it at a time, you can actually send instructions just by following a certain pattern of links
22:16:01 <ehird`> THAT WOULD BE SO AWESOME
22:16:18 <ais523> continuation-based websites would be interesting enough by themselves
22:16:23 <ais523> anyway, I'm being thrown out again...
22:16:30 -!- ais523 has quit ("about to lose my Internet connection").
22:16:33 <ehird`> ais523: continuation based websites have already been done...
22:17:00 <ehird`> oklopol: interested in Be Your Funge?
22:17:06 <ehird`> (Fuk yor brane for befunge-93)
22:20:28 <oklopol> the name is awesome at least
22:20:42 <ehird`> oklopol: do you know wo it works?
22:21:03 <oklopol> so, i vaguely know how it works.
22:21:06 -!- Tritonio_ has quit (Remote closed the connection).
22:21:07 <ehird`> so, oklopol -- i have instructions like 'p' and 'g' but on the opponents program
22:21:16 <ehird`> now, how should a program determine where the enemy's ip is?
22:21:22 <ehird`> just getting it as a value makes a perfect program too easy
22:21:26 -!- Tritonio_ has joined.
22:21:35 <ehird`> bsmntbombdood can answer too
22:21:43 <lament> http://www.esolangs.org/wiki/Musical-X
22:21:56 <oklopol> ehird`: does that have to be easily determined
22:22:03 <lament> that language looks a lot like Prelude
22:22:21 <ehird`> oklopol: well, otherwise how are you going to insert a bomb at a good plcae
22:22:37 <oklopol> lament: a bit too syntax-oriented imo
22:22:53 <oklopol> well, tbh i'm mostly just assuming that.
22:23:59 <ehird`> what's the best brainfuck way to get 64?
22:24:11 <ehird`> i imagine the same will be true for befunge
22:25:10 <oklopol> it's impossible to remember whether there's an e.
22:25:36 <oklopol> the ip doesn't really leave any trace
22:26:03 <oklopol> perhaps you can observe the stack and deduce what instructions they've run!
22:26:30 -!- jix has quit ("CommandQ").
22:26:46 <ehird`> oklopol: you have your own stack
22:27:07 <oklopol> i meant the stack of the other guy's
22:27:14 <ehird`> ^^ that's the simplest BeYourFunge program
22:27:57 <ehird`> oklopol: puts @ at 0,0 then at 1,1 .. oh, wait
22:28:13 <ehird`> @ = end program = LOSE
22:28:53 <oklopol> how come, isn't befunge fairly simple
22:30:01 <oklopol> the idea is you can modify the other guy's code, and executing @ makes you lose?
22:30:16 <ehird`> and you can find the other guy's instruction pointer but jumping through hoops
22:30:23 <oklopol> ehird`: why not go diagonally?
22:30:31 <ehird`> oklopol: because that isn't brute-force
22:30:56 <oklopol> guess that might be a bit more difficult.
22:31:15 <oklopol> at least shouldn't be much longer
22:31:41 <oklopol> was just thinking you may wanna extend to infinite grids
22:32:10 <ehird`> then you can run off at great speed
22:46:41 <ehird`> oh my god, zzo's english is atrocious http://zzo38computer.cjb.net/wmskins/Command-Skin.txt
22:48:54 <oklopol> ehird`: must be intentional
23:00:43 -!- Corun has joined.
00:26:58 -!- mu has joined.
00:28:21 -!- mu has quit (Client Quit).
00:29:44 -!- sumisu has joined.
00:34:45 -!- Sgeo has joined.
00:35:32 -!- timotiis has quit ("leaving").
00:44:10 -!- olsner has quit ("Leaving").
01:19:17 -!- BMeph has joined.
01:23:21 -!- Corun has quit ("This computer has gone to sleep").
01:23:31 -!- sumisu has quit (Read error: 110 (Connection timed out)).
02:48:07 -!- ehird` has quit ("K-Lined by peer").
03:34:25 -!- immibis has joined.
03:36:31 -!- immibis_ has joined.
03:37:09 -!- immibis has quit (Nick collision from services.).
03:37:23 -!- immibis_ has changed nick to immibis.
03:38:11 <immibis> i think someone's playing age of empires 2 on the gateway computer again .....
03:41:44 <oklopol> anyone wanna write me a fictional debate.
03:42:20 <oklopol> been up all night trying to do my "spoken english" assignments... i've managed to write about 20 lines now.
03:43:01 <oklopol> b)Conscientious objectors are cowards
03:43:01 <oklopol> c)Fewer women than men have won the Nobel prize because women are less intelligent than men
03:43:01 <oklopol> d)Academic education is highly overrated
03:43:13 <oklopol> the missing a) is not due to me.
03:43:29 <oklopol> what are "conscientious objectors"?
03:43:49 <slereah_> They're people objecting the war.
03:45:14 <slereah_> I didn't go to science university for nothing.
03:45:39 <slereah_> I wouldn't be able to develop an imposed idea on any length.
03:46:05 <oklopol> i can show you one of my earlier essays, it's *not* about quality.
03:46:16 <oklopol> We are all gathered here to take a glance at the past three years we spent as a class. It was a journey of hard work, learning and self-discipline, but it was also about togetherness. There are some great stories, and even greater accomplishments, but I'll spare you from them. The end of high-school is the beginning of a new era for everyone, people get jobs and whatnot. Some go to university. Some just wither away in the absense of company and
03:46:47 <oklopol> it doesn't matter at all what grade i get for this shit, it's just i cannot get .
03:47:07 <slereah_> Program something to write it for you.
03:47:45 <oklopol> i thought of that. unfortunately i'd really like to get on the project i thought i'd be doing today
03:47:56 <oklopol> so... would like to get this done quickly
03:48:22 <oklopol> i guess i can write some nonsense
03:49:37 <Sgeo> I suppose people are sick of my in-channel PSOX demo?
03:50:45 <slereah_> You can probably do something else.
03:51:08 <Sgeo> I think I need to change some stuff with servers
03:51:23 <Sgeo> When accepting a server socket connection, give the option of blocking v. non-blocking
03:53:50 <Sgeo> But I think I'll work on it tomorrow
03:54:05 * Sgeo watches as the "tomorrows" built up
03:56:20 <oklopol> Sgeo: make an irc client with brainfuck using PSOX
03:56:34 <Sgeo> oklopol, I'm not that advanced with BF
03:57:18 <Sgeo> oklopol, not yet
03:57:45 <Sgeo> ehird previously said that e'd do a GUI domain, but then decided to make a competing spec, "SOXP"
03:58:17 <oklopol> i don't think ehird cares enough to finish either of those
03:58:39 <oklopol> i might make an irc client in brainfuck, might be fun
03:59:05 <oklopol> shouldn't be that hard to make a telnet client, and after that it's basically just pingponging
03:59:28 <oklopol> making the telnet client shouldn't really be
03:59:34 <oklopol> *anything* if the api is good.
04:06:37 <oklopol> http://www.pastebin.ca/910729 yes, i'm a literary genius.
04:07:37 <slereah_> Are you graded by the quantity of text?
04:09:26 <oklopol> RodgerTheGreat: how's that? :D
04:09:43 <oklopol> slereah_: i think i'm graded by the overall quality
04:11:34 <slereah_> Man am I glad to be out of high school.
04:11:47 -!- immibis has left (?).
04:11:52 <pikhq> Just a few more months.
04:12:31 <pikhq> A few more months until I have a job, and then a school where I have a hope of learning. . .
04:12:41 <oklopol> well i don't really have anything else left but this one course :)
04:13:20 <pikhq> I've got 6 courses.
04:13:28 <pikhq> Well, 7, if you count my UCCS course.
04:13:37 <pikhq> 3 of the above courses are for college credit.
04:13:48 <oklopol> also one course religion, though, but i'm doing that even less seriously.
04:13:50 <pikhq> And are the only classes I feel like I'm learning anything in.
04:14:01 <pikhq> University of Colorado - Colorado Springs.
04:14:15 <oklopol> i have 3 courses in the uni here
04:15:12 <oklopol> RodgerTheGreat: there's a non-religion option for it, but it's basically the same stuff, just have to go to another building for classes
04:15:12 <pikhq> That disgusts me. . .
04:15:20 <oklopol> no *a* required religion course
04:15:38 <pikhq> I, as a religious person, am offended by the prospect of requiring a religion course.
04:15:50 <pikhq> That's something *highly* personal.
04:16:10 <RodgerTheGreat> I find it frightening that MTU's comparative religion class is taught by a youth pastor.
04:16:20 <slereah_> Religion is by definition a society thing.
04:16:20 <pikhq> What's next: a class on how to be an (anarchist|democrat|republican)?
04:16:22 <RodgerTheGreat> ...who has been known to give extra credit for attending his sermons...
04:16:26 <oklopol> well, it's not about ones own beliefs, i'm openly atheist, and that's no obstactle.
04:17:31 -!- oerjan has joined.
04:19:11 <oklopol> hopefully that's enough to pass high school.
04:21:34 <RodgerTheGreat> I'd probably say I lean towards atheism, if it weren't for the fact that I'm a pastor myself...
04:32:35 <oklopol> so... anyone here founded a religion?
04:32:41 <oklopol> it's pretty cheap in finland
04:33:45 <slereah_> You know, praying when they come to check on us and all.
04:33:58 <slereah_> And playing ping pong or whatever the rest of the time.
04:34:25 <oklopol> well, we thought we'd start one with a few friends, but there's a chance you might get into media that way.
04:35:06 <slereah_> An interpreter written in Malbolge or raising the dead.
04:35:20 <oklopol> ah, because the media is *never* interested in miracles.
04:35:36 <oerjan> those sound about equivalent...
04:35:51 <slereah_> Well, at least you'd be srs business!
04:36:41 -!- oklopol has set topic: The official church of Esoism..
04:37:23 <slereah_> What will be the esoteric doctrine of the Church?
04:37:23 <oklopol> was the old topic right btw, i didn't store it anywhere :-)
04:37:46 <slereah_> the international hub for esoteric programming language design and deployment | map: http://www.frappr.com/esolang | forum: http://esolangs.org/forum/ | EgoBot: !help | wiki: http://esolangs.org/wiki/ | logs: http://tunes.org/~nef/logs/esoteric/ or http://ircbrowse.com/channel/esoteric | Pastebin: http://pastebin.ca/
04:38:27 <oklopol> esoists believe in esoteric programming.
04:38:36 <oklopol> it's more common a religion than you might think
04:38:54 <slereah_> In what language is the universe written?
04:40:02 <oerjan> we are desperately playing it is not Malbolge
04:41:45 <oerjan> it's written in TwoDucks. the quantum behavior is just a side effect of the incessant time travel
04:44:27 <Sgeo> Anyone want to write a Malbolge IRC client?
04:45:36 <slereah_> Well, I'm no prophet of Esoism.
04:48:07 <pikhq> I plan to award anyone who can pull *that* off the patent title Prophet of Esome.
04:48:17 <pikhq> Even if I have to create a whole new nomic to do it!
04:48:35 <pikhq> oerjan: BTW: I'm also the Herald now.
04:48:46 <pikhq> And I'm done getting offices. Any more, and I'll go insane.
04:49:47 <RodgerTheGreat> I seem to recall discussing a biblically-inspired language called "INTHEBEGINNING"
04:52:26 * oerjan points at ftp://ftp.nvg.ntnu.no/pub/frc/39
04:52:46 <oerjan> (FRC Programming Language round)
04:52:51 -!- habnabit has joined.
04:53:02 * oerjan notes that the website hasn't been updated since 2000 :(
04:53:18 <pikhq> It's now hosted on Google Groups.
04:53:51 * Sgeo liked reading FRC archives 4+ years ago..
04:59:12 <Sgeo> I knew oerjan was an FRC player
05:00:15 <pikhq> Likewise, he used to be an Agoran.
05:01:22 <oerjan> Ψψψ == erm in norwegian, just about :)
05:08:30 <Sgeo> So I can just use ΓΈΓΈΓΈ instead of erm?
05:10:07 <oerjan> you may not want to draw it out quite that long.
05:10:52 <oerjan> yy? you say that in finland? :)
05:11:11 <oklopol> y is what it is in norwegian, i think.
05:11:55 * oerjan thinks oklopol is not paying attention
05:12:24 <oklopol> the finnish "y" == the norwegian "y"
05:12:37 <oklopol> and not, i am not, watching american dad and playing the guitar
05:12:58 <oerjan> well approximately i guess. not sure how the finnish y sounds
05:13:31 <oerjan> (beyond being in the approximate right place)
05:13:46 <oklopol> i just know what the swedish one sounds like, and naturally i assume the norwegian one is the exact same ;)
05:13:50 <oerjan> i know german ό is not exactly like norwegian y
05:14:10 <oerjan> well swedish is pretty close
05:14:44 <oklopol> i guess there might be a subtle difference, but i don't know it.
05:17:22 <oerjan> i mean every swedish vowel is colored by the difference in general intonation from norwegian, i think.
05:33:58 -!- Asztal has quit (Read error: 104 (Connection reset by peer)).
05:36:09 <oerjan> mind you, if used out of context it is also an expression of stupidity, drunkness or gibbering insanity.
05:46:25 <Sgeo> What is it, exactly? Is there an online definition somewhere?
05:49:31 <oklopol> Sgeo: "er" and "ΓΈΓΈ" are pronounced the same.
05:49:54 <oklopol> (almost the same, in case someone thinks that's important)
05:53:33 <oklopol> wonder if people always use the ΓΈΓΆ character for erring
05:54:02 <oklopol> perhaps somewhere in nigeria, people say "wobbity wobbity" when thinking what to say next.
05:54:32 <oklopol> unless they speak english or something in nigeria, i really don't even know where that is exactly
05:58:41 -!- oerjan has quit ("leaving").
05:59:40 <pikhq> oklopol: I believe English is one of their official languages.
06:22:00 <RodgerTheGreat> I'm doing some planning sketches for another set of comics- lemme scan them and then you can tell me what you think...
06:22:10 -!- Sgeo has quit (Read error: 110 (Connection timed out)).
06:25:29 <RodgerTheGreat> http://rodger.nonlogic.org/dump/images/1203488516-art1.png
06:25:32 <RodgerTheGreat> http://rodger.nonlogic.org/dump/images/1203488528-art2.png
06:28:56 <RodgerTheGreat> thoughts? Is the dialogue too heavy-handed? Confusing?
06:30:09 <bsmntbombdood> also, look at this awesomeness -> http://coilhouse.net/2007/12/22/the-beautiful-nightmares-of-zdzislaw-beksinski/
06:37:59 <RodgerTheGreat> where all prices are directly proportional to demand, yet still higher than seems reasonable
06:38:26 <bsmntbombdood> http://www.chetzar.com/oil_paintings/DOUBLEWHAMMY.html
06:42:40 <RodgerTheGreat> in general, it's one of a limited series of copies of an original
06:43:44 <RodgerTheGreat> in the case of things like woodcuts (Escher, for example), the prints effectively *are* the originals.
06:49:51 -!- uvanta has joined.
07:02:34 <oklopol> i can sell you a quality oko for just $15.
07:02:43 <oklopol> well not now, but after my nap
07:03:20 <RodgerTheGreat> yeah, and I can sell you an original rtg for any price you name!
07:03:58 <bsmntbombdood> i should not have been fidgeting with a large binder clip right by my mouth...
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:13:48 -!- bsmntbombdood has quit (Read error: 110 (Connection timed out)).
08:14:22 -!- olsner has joined.
08:14:52 -!- bsmntbombdood has joined.
08:15:28 -!- jix has joined.
08:29:53 -!- puzzlet has joined.
08:59:42 -!- olsner has quit ("Leaving").
10:00:28 <uvanta> i'm being forced to learn PHP
10:03:48 <uvanta> i have a file layout, and i should make a PHP class to handle (encode/decode) it
10:04:01 <uvanta> i haven't used PHP at all
10:32:12 -!- AnMaster_ has joined.
10:33:22 -!- AnMaster has quit (Nick collision from services.).
10:33:46 -!- AnMaster_ has changed nick to AnMaster.
10:38:12 -!- sumisu has joined.
11:00:32 -!- sumisu has quit ("ChatZilla 0.9.81 [Firefox 2.0.0.12/2008020121]").
11:31:54 -!- timotiis has joined.
11:49:43 -!- Corun has joined.
11:52:46 -!- Corun has quit (Client Quit).
12:07:00 -!- oklopol has quit (Read error: 104 (Connection reset by peer)).
12:09:30 -!- oklopol has joined.
13:25:18 -!- RedDak has joined.
13:40:35 -!- olsner has joined.
13:59:45 -!- sebbu2 has joined.
14:16:57 -!- sebbu has quit (Read error: 110 (Connection timed out)).
14:23:51 -!- wildhalcyon has joined.
14:27:21 <wildhalcyon> Trying desperately to figure out what language the creator(s) used to code the universe?
14:28:55 <olsner> I think xkcd nailed it in that strip
14:29:27 <slereah_> Yes, but it was no esoteric language!
14:29:53 <olsner> lisp will soon be obscure enough to be esoteric, just you wait
14:30:49 <wildhalcyon> Its been used in legitimate research. PhDs have been earned.
14:30:54 <wildhalcyon> Not likely to be forgotten quickly enough.
14:31:25 <olsner> I bet someone's written a PhD thesis that's in some way about brainfuck or some other esoteric language
14:32:33 <wildhalcyon> brainfuck is probably the most borderline case when it comes to esoteric languages
14:33:11 <slereah_> Well, a number of esoteric languages have roots in serious academic subjects.
14:33:21 <slereah_> But usually in computability, not programmation.
14:35:57 <wildhalcyon> Malbolge from pure evil. Wait, that's not academics. That's earning tenure.
14:37:20 <slereah_> Until he presses the "compile" button.
14:37:46 <wildhalcyon> I'm presuming that he's watching someone else press the compile button in one of the seven circles.
14:38:23 -!- slereah_ has changed nick to Slereah.
14:38:37 <wildhalcyon> "Look at that poor little fellow. He's trying to use NOPs to create predictable instructions. Good thing I've given him some faulty RAM.
14:39:48 <wildhalcyon> So I've been away for quite some time. It looks like PSOX is the new primary discussion topic.
14:41:15 <Slereah> Sgeo isn't giving up at least!
14:42:16 <wildhalcyon> Its a good idea. I had come up with a similar design for my vaporware fungeoid system, but it wasn't multilingual like PSOX is.
14:45:11 <wildhalcyon> But I'm still planning on coming out with my system at some point.
17:05:56 -!- ais523 has joined.
17:08:22 <Slereah> I wonder how many occurences of the <ord "fuck" you'll find on the esowiki
17:08:32 -!- Sgeo has joined.
17:12:56 -!- habnabit has quit (Read error: 110 (Connection timed out)).
17:17:22 -!- habnabit has joined.
17:25:54 -!- oerjan has joined.
17:27:53 -!- cherez has quit (Read error: 110 (Connection timed out)).
17:33:32 -!- boily has joined.
17:37:44 <oerjan> hm google is useless for this - -fuck site:esolangs.org/wiki/ gives fake hits
17:38:38 <oerjan> perhaps because it includes pages linked to...
17:39:04 -!- ehird` has joined.
17:44:47 -!- boily has quit ("WeeChat 0.2.6").
17:50:14 <Slereah> Does any esolang got some logo?
17:53:38 <Slereah> I tried to make one for Lazy Bird, but I'm not just very talented.
17:53:53 <oerjan> a lambda in a red Ψ would seem an obvious choice...
17:54:52 <wildhalcyon> most esolangs aren't organized enough to have logos
17:56:06 -!- Hiato has joined.
17:56:13 <oerjan> the page ais523 maintains still doesn't show up when googling intercal
17:56:17 <ehird`> wildhalcyon: PSOX seems like the kind of thing that would have a logo. /sigh
17:56:52 <ais523> oerjan: I don't maintain it, Claudio Calvelli does
17:57:00 <ais523> I just maintain one of the compilers featured there
17:57:15 <ehird`> Slereah: make it a bird, falling out of the sky (symbolized by the whooshing above it)
17:57:21 <ehird`> with a lambda in a cross on its side
17:57:49 <oerjan> esr's page comes up on top and it seems to be unupdated for a long time - no reference to you that i notice
17:58:32 <ehird`> oerjan: esr's page is also crap
17:58:32 <ehird`> (crap? from esr? shock horror)
17:58:37 <Slereah> It was actually just going to be two mockingbirds in front of each other, with an omega in between
17:59:28 <ehird`> Slereah: I am now drawing the worst logo ever
17:59:48 <Slereah> ut save your strength for PSOX
18:00:11 <Slereah> There's probably an awesome logo to be made for PSOX
18:00:21 <Slereah> Like a tiger with a baracuda for a penis, who knows
18:00:41 -!- Corun has joined.
18:02:58 <ehird`> Slereah: your logo is almost done.
18:06:21 <ehird`> Slereah: it's, uh, quite rough
18:06:28 <ehird`> but i think it looks alright, for 5 minutes
18:06:54 <ehird`> haha, it looks way fatter than it was meant to
18:06:57 <ehird`> and quite a bit angrier
18:07:14 <ehird`> Slereah: shall I add it to the wiki? :P
18:07:31 <Slereah> I'd be angry too if I was stuck in an infinite loop!
18:08:21 -!- cherez has joined.
18:08:38 -!- cherez has quit (Client Quit).
18:08:44 -!- cherez has joined.
18:08:45 -!- cherez has quit (Remote closed the connection).
18:08:59 <ehird`> Slereah: oh. oops. :P http://esolangs.org/wiki/Lazy_Bird
18:09:05 <ehird`> some weird grayness around the edges
18:09:12 <ehird`> i think it looks hilariously ridiculous
18:09:29 <Slereah> Plus, Lazy Bird supports lambdas!
18:11:04 -!- otesanek has joined.
18:12:22 <ehird`> .... personally i think it was awesome
18:13:14 -!- ehird` has quit ("K-Lined by peer").
18:13:35 -!- ehird` has joined.
18:14:32 <Slereah> Well, while I do not agree with your opinion, I'll fight to the death for your right to express it!
18:14:43 <ehird`> Slereah: Express it by putting it on the page?
18:17:38 <ehird`> wildhalcyon: Slereah is restricting my free speech to put my crappy lazy bird logo on its page
18:17:55 * oerjan asks, is it a bird or a whale? >:)
18:18:26 <wildhalcyon> ehird': I'd debate whether or not a logo counts as speech.
18:18:44 <Slereah> No, I'm well happy with hate crimes
18:18:52 <ehird`> wildhalcyon: Shush you
18:18:57 <ehird`> I could put text on the logo if you like
18:19:10 <ehird`> oerjan: you're thinking of Active Whale
18:19:33 * oerjan notes that no other Image: namespace article seems to be a logo
18:20:15 <ehird`> wildhalcyon: But the text would be there to cover up for the logo. Duh.
18:20:20 <ehird`> Oops, did I say that out aloud?
18:21:17 <oerjan> he's got a banana in his ear
18:21:45 -!- Hiato has quit (Read error: 110 (Connection timed out)).
18:22:16 <wildhalcyon> Banana? Is that what you kids are calling it nowadays?
18:23:37 <oerjan> not at all, this is ancient:
18:23:50 <oerjan> "Te audire no possum. Musa sapientum fixa est in aure."
18:25:42 -!- cherez has joined.
18:26:44 -!- Corun has quit ("This computer has gone to sleep").
18:28:28 <ehird`> you know the boehm gc?
18:28:37 <ehird`> well, what if you built a version that exported malloc as GC_malloc, etc,
18:28:41 <ehird`> then used LD_PRELOAD..
18:28:45 <ehird`> and used everyday apps with it
18:30:15 <oerjan> this is new? i barely thought i'd heard it could be used with unmodified programs (with a risk of space leaks if it misidentifies pointers)
18:30:31 -!- otesanek has quit (Read error: 113 (No route to host)).
18:30:57 <oerjan> or does your suggestion imply something more...
18:32:02 <ehird`> oerjan: well, mostly it means you'd patch the code
18:32:08 <ehird`> but i mean, right after the kernel
18:32:14 <ehird`> so that everything, absolutely everything uses it
18:32:55 <oerjan> probably someone tried
18:33:17 <oerjan> it _could_ break horribly if someone saves pointers in a different format for some reason
18:35:35 <ehird`> oerjan: imagine a PL implementation with a gc
18:35:38 <oerjan> say adding tag bits or similar. ghc does that
18:35:56 <ehird`> (least-sig bit = is-small-int?)
18:36:11 <ehird`> oerjan: but they have their own gc
18:36:32 <oerjan> yes, but they _might_ use ordinary malloc for initial allocation
18:40:53 -!- habnabit has quit (Read error: 110 (Connection timed out)).
18:48:02 -!- habnabit has joined.
18:50:54 -!- RedDak has quit (Remote closed the connection).
19:18:12 <wildhalcyon> Are there a couple folks in here willing to rate my project idea on a scale of 1 to 10?
19:18:41 <Slereah> Though my rating won't be fair, accurate, or based on experience.
19:19:04 <wildhalcyon> I'm not really looking for fair or accurate. Experience-based might be useful, but not necessary.
19:19:12 <Sgeo> wildhalcyon, want to see a PSOX demo?
19:19:57 <Slereah> We want to see a PSOX logo!
19:20:01 -!- wildhalcyon has quit (Read error: 104 (Connection reset by peer)).
19:20:07 -!- wildhalcyon has joined.
19:20:18 <Sgeo> re wildhalcyon
19:20:31 -!- BrainF has joined.
19:20:31 <BrainF> Hi all. This client is written in Brainfuck (albeit written with a generator), believe it or not. It uses PSOX. You can get information about PSOX at http://esolangs.org/wiki/PSOX .
19:20:31 -!- BrainF has quit (Client Quit).
19:22:31 <ais523> (sorry, I was in the channel before but not paying attention until now)
19:22:43 <wildhalcyon> Excellent. More people to horrifically mutilate my idea until I'm a poor shadow of the man I used to be!
19:23:59 <Slereah> Well, we're always glad to help
19:24:29 <ais523> wildhalcyon: what is your project idea?
19:25:26 <wildhalcyon> My project is a fungeoid which can be partitioned into a grid-based system of processors, either self-controlled or locally controlled, rather than controlled from a centralized source.
19:25:44 <ais523> that does sound interesting, actually
19:25:58 <ais523> I tend to prefer fungeoids to store data in the program near the IP
19:26:11 <ais523> and you're taking that to one possible logical conclusion
19:26:20 <ais523> (although you should get the IP to store data nearby as well)
19:26:54 <wildhalcyon> Well, essentially the IP meta-data would reside in the control system, in a separate space.
19:27:38 <wildhalcyon> I would use the fungeoid to develop two meta-projects: The first is an autonomous autoprogramming system that would write itself new code on the fly.
19:28:38 <wildhalcyon> The second is a shared virtual codespace where users could rent/own/have a parcel of the codespace an interchange IPs/data/code with one another, and outputting to shared media - such as a chatroom or drawing board.
19:30:04 <ehird`> continuation based websites are a 'done thing'
19:30:16 <ehird`> any ideas for IP finding in be your funge?
19:30:28 <ais523> oerjan: INTERCAL doesn't have a logo AFAIK
19:30:44 <ais523> but neither are very good
19:30:59 <ehird`> wildhalcyon: instruction pointer
19:31:08 <ehird`> be your funge is like fuk yor brane
19:31:09 <wildhalcyon> I know what the IP is, what do you mean by "finding" it?
19:31:13 <ais523> ehird` is planning a language like FukYorBrane, but based on Begune
19:31:35 * ais523 hit return rather than backspace
19:31:50 <ais523> but Begune does sound quite good, yes
19:32:03 * Sgeo wants to see more stuff designed for PSOX
19:32:05 <ais523> unfortunately it isn't 3am so maybe that typo can't be used
19:33:14 -!- habnabit_ has joined.
19:34:17 <ais523> the first idea was that you could put special characters in your own program, which could somehow sense the opponent's IP going past on the other side of the program
19:34:33 <ais523> and when your own IP went past them, its action depended on whether the opponent's IP had since last time yours did
19:34:55 <ais523> for instance, imagine the two programs being on the outside and inside of the same torus
19:35:12 <ais523> and the special characters being a sort of barrier that could be pushed into or out of the torus
19:35:57 <ais523> one contiguous block of characters (that is, where each character in the block is a 4-neighbour of at least one other block) would be pushed into or out of the torus as a group
19:36:26 <ais523> whenever the opponent's IP goes past a block that started on your side, it pushes it to your side (without changing the behaviour of the opponent's IP)
19:36:28 <wildhalcyon> I'd like to see FukYorBrane offer some "special" rules in the A-Z character range.
19:36:59 <ais523> whenever yours reaches a block that started on your side, it pushes it to the opponent's side, and if it was on your side to start with the IP rebounds
19:37:36 <ais523> the other idea was simply to specify an area and ask if the enemy's IP is within that area, so you can do things like bsearch for it
19:37:48 <ais523> the first idea is more interesting IMO but I'm not sure how useful it would be
19:37:52 <ehird`> neither really seems esoteric enough
19:37:55 <ehird`> fukyourbrane's is good
19:38:02 <ehird`> you don't need a lot of searching logic, but it isn't trivial either
19:38:13 <ais523> the first one seems pretty esoteric to me
19:38:39 <ehird`> but impractical and hard
19:38:46 <ehird`> but since it's 1d, it's easier
19:38:58 <wildhalcyon> Oh, its 1D huh? Yeah, that's a tad easier I suppose.
19:39:03 -!- habnabit has quit (Read error: 110 (Connection timed out)).
19:39:53 <ais523> and FYB has a 'loop while my data pointer is different from the enemy's instruction pointer' instruction
19:40:10 <wildhalcyon> I think it might be interesting if it was a 2xINF tape.
19:46:14 <ehird`> nginx contains some REALLY bad ideas..
19:46:15 <ehird`> http://wiki.codemongers.com/NginxHttpEmptyGifModule
19:46:28 <wildhalcyon> So, on a scale of 1 to 10 how would you folks rate my project?
19:46:56 <ehird`> (come on, this is #esoteric. what did you expect?)
19:47:21 <ais523> ehird`: I remember when there was a 1x1 transparent GIF used on Wikipedia for a while as part of the IE PngFix
19:47:25 <wildhalcyon> I'm fine with imaginary and complex numbers, but after figuring the magnitude, it comes out to only.. 2 :-(
19:47:44 <ehird`> ais523: I am pretty sure in nginx it's designed for the 1-pixel padding gifs
19:47:48 <ais523> something went wrong with it in the end, and they took it off that script; I'm not sure what exactly, nobody was sure at the time
19:47:48 <ehird`> used along with <table> and <font>..
19:48:07 <ehird`> but then, nginx is russian and designed for amazing performance on huge websites and all of the top russian websites have terrible html like that..
19:48:26 <ais523> but some people thought it was because the image was requested so often that the servers got confused
19:48:28 <ehird`> wildhalcyon: Naww. It's slightly above two. Or below.
19:48:32 <ehird`> No, wait, below is -i.
19:48:41 <ais523> 2i is somewhat above 0
19:48:51 <ais523> on a typically-axed Argand diagram
19:49:05 <ais523> you could draw the axes diagonally and have 2i above 2 if you liked
19:49:09 <Slereah> It is also not between 1 and 10
19:49:20 <ehird`> if you pinch one and ten between your fingers
19:49:23 <ehird`> the complex numbers are there
19:49:47 <ais523> even if it were above 2, you'd only get it if your fingers had a width of at least 2
19:49:55 <ais523> probably 4 so they were symmetrical about the x-axis
19:50:10 <Slereah> That's okay, ehird` has sausage fingers.
19:52:19 <Sgeo> hurry hurry hurry, buy my rice and curry, buy my rice and curry, so hurry hurry hurry. Hurry hurry hurry, buy my rice and curry, buy one for two, special price for you
19:52:43 -!- oklopol has changed nick to oklofok.
19:53:05 <Sgeo> hurry hurry hurry, buy my rice and curry, buy my rice and curry, so hurry hurry hurry. Hurry hurry hurry, buy my rice and curry, buy one for two, special price for you
19:53:09 <Sgeo> http://youtube.com/watch?v=dTiMV1Vv1Tw
19:53:26 <Slereah> http://youtube.com/watch?v=g09gOh2qwug
19:55:44 <Sgeo> Slereah, obviously that person knows which species on Earth is the smartest..
19:56:05 <Slereah> A ball of twine with mice ears?
19:56:26 <ehird`> Slereah: look around you is brilliant
19:56:40 <Slereah> I learned many things from it!
19:56:55 <ehird`> the largest number is, in fact, around 4 billion
19:57:02 -!- puzzlet_ has joined.
19:57:15 <Slereah> Well, some suspects that larger numbers might exist.
19:57:34 <Sgeo> Somehow I failed to connect "Look Around You" from that YT page with Look Around You..
19:57:48 -!- puzzlet has quit (Remote closed the connection).
19:58:15 <ais523> the largest number is in fact 4294967295
19:58:27 <ais523> 4294967296 is in fact smaller
19:58:54 <ehird`> ais523: integer wrap around is fun
19:58:54 <ais523> the worrying thing is that I have 2^32 memorised...
19:59:27 <Slereah> "Around 4 billions" is good enough
19:59:41 <Slereah> My memory starts running short at 8096
20:00:11 <Slereah> Yes, I only have 2^13 bits of memory
20:00:35 <ais523> you mean either 4096 or 8192
20:00:42 <ehird`> http://upload.wikimedia.org/wikipedia/en/b/b2/Slimmingpicture.jpg D'AAAAAAH!
20:00:52 * ehird` should stop making lame Look Around You references
20:00:54 <Slereah> Well, my memory isn't even that good
20:00:54 <ais523> and I only know up to 2^16 and 2^32
20:01:32 <Slereah> I usually use some little pseudo song I learned when I was little
20:01:34 <ais523> if 2^17 is 131072, then I know up to 2^17 and 2^32
20:01:40 <Slereah> I discovered that it was useful!
20:01:54 <ais523> (that was from memory too, but I'm not sure it's correct
20:01:54 <Slereah> Something like "One and one, two, two and two, four, four and four, eight...3
20:02:13 <Slereah> That's how I do fucking binary
20:02:21 <ehird`> I know basically no powers of two
20:02:58 <ais523> most esolangers know 256 and 65536, or should do
20:03:34 <ais523> 59049 is also worth knowing, but that's a power of 3
20:03:35 <ais523> (maximum value of the main data type in TriINTERCAL and Malbolge)
20:03:35 <Slereah> Well, useful when you're programming in Malbolge!
20:03:35 <ehird`> oh, i know 256 and 65536
20:03:52 <Sgeo> I know up to 2^13 counting on my fingers, and know of 65536
20:04:07 <Slereah> How many fingers do you have?
20:04:28 <ais523> one question I once asked at a maths camp: what's the largest prime you can write in decimal from memory?
20:04:33 <Sgeo> First finger 2^1, second 2^2, etc
20:04:50 <ais523> (the 'in decimal' prevents you memorising a formula but not its expansion as a number)
20:05:37 <Sgeo> I didn't know 65537 was a prime, tbh, but that should be easy to remember
20:06:01 <wildhalcyon> Alternatively, 65539 is also prime, but that's incidental
20:06:10 <habnabit_> I'd say 65,536 is the largest power of two that's easy to remember.
20:06:12 <Slereah> Is it end-of-file in fuckingbigASCII?
20:06:33 <ais523> wildhalcyon: thanks, I now have a new largest memorised prime number
20:06:41 <ehird`> i don't know any primes :(
20:06:56 <ehird`> generally i let a computer tell me what they are... i have not had much use for memorizing them
20:08:32 <Sgeo> ..Who'd need to hesistate in saying that 7 is prime?
20:09:26 <ehird`> http://www.accesscom.com/~darius/hacks/factor.c I use this for factoring stuff
20:09:30 <ehird`> probably factor(1) is far more efficient
20:10:06 * Sgeo goes to find some LAY video to watch
20:10:10 <Sgeo> Any recommendations?
20:10:23 <Sgeo> Look Around You
20:10:30 <ais523> BTW, why is factor in GNU coreutils
20:10:31 <Sgeo> Since we were talking about it just before
20:10:43 <ais523> it strikes me as being a bit specific-purpose to be there
20:10:43 <Slereah> I recommend the first season.
20:10:44 <ehird`> ais523: 'cause gnu utilities are clusterfucks of non-designedness? :p
20:10:50 <Sgeo> Slereah, yes yes
20:10:53 <ehird`> Slereah: and the computer episode of the second
20:11:09 <Sgeo> I remember the Sulpher one having some cool stuff
20:11:22 <ehird`> hmm, factor.c is kind of crappy..
20:11:26 <ehird`> it only handles unsigned longs
20:11:28 <Sgeo> http://www.youtube.com/watch?v=W0dyvoVV5Tk Look Around You - Sulphur
20:12:00 <ehird`> that darius guy is crazy
20:12:02 <ehird`> http://www.accesscom.com/~darius/hacks/ichbins.tar.gz
20:12:14 <ehird`> a scheme->c self-hosting compiler written in around 6 pages of scheme
20:12:17 <ehird`> a lot of which is the c prelude
20:12:50 <ehird`> it's more lispy than scheme
20:16:14 <Sgeo> In the magnet experiment, did the heating of the magnet ruin it, preventing it from attracting the iron, or something?
20:16:48 <Sgeo> Or is it not real iron, or was the magnet weak anyway?
20:20:57 <Sgeo> It would be nice if it was read
20:21:54 <Slereah> Even the HELVETICA EFFECT?
20:22:22 <Slereah> http://www.youtube.com/watch?v=aY7XH2ulTEU
20:22:58 <Sgeo> That's Calcium, not really connected to Sulphagne
20:24:30 -!- ais523 has quit ("no apparent reason").
20:25:16 <Sgeo> "Man has been using Iron since the Stone Age
20:25:53 * Slereah tries to bend a spoon with the power of his imagination
20:28:26 <Sgeo> I guess Bumcivillian isn't to useful for going to sleep, if its effect diminishes quickly
20:30:33 -!- puzzlet has joined.
20:31:19 -!- puzzlet_ has quit (Remote closed the connection).
20:35:25 <Slereah> So it would be... between 9AM and 5AM?
20:36:13 <Sgeo> if that's what you mean
20:36:27 <Slereah> Hm. It seems I forgot how to do substraction.
20:36:27 <Sgeo> "Mathematical Anti Telharsic Harfatum Septomin"
20:36:37 <Slereah> Bah, who needs substraction when you have a computer!
20:37:31 <Sgeo> "Or if you can fly, planning your trajectory for your journey to work"
20:39:43 <Sgeo> The finale takes place in Nottingham on April the 4th of September
20:41:36 * Sgeo wants some Garry Gum
20:41:50 <Sgeo> and Anti-Garry Gum
20:49:55 -!- oklofok has quit (Remote closed the connection).
20:53:15 -!- oklopol has joined.
20:58:04 <Sgeo> Bye wildhalcyon
20:58:22 -!- wildhalcyon has quit ("ChatZilla 0.9.81 [Firefox 2.0.0.11/2007112718]").
21:11:41 <Slereah> http://membres.lycos.fr/bewulf/Divers/Dinosaurs.jpg
21:12:04 <Slereah> The perfect representation for transformation groups.
21:12:42 <GregorR> <Sgeo> "Man has been using Iron since the Stone Age" // what's this from?
21:12:53 <Sgeo> GregorR, Look Around You
21:13:14 <Sgeo> Or you could have googled
21:14:50 -!- habnabit_ has quit (Read error: 110 (Connection timed out)).
21:15:14 -!- uvanta has quit ("sleep").
21:18:36 <Sgeo> GregorR, http://www.youtube.com/watch?v=wdZHnDDjf6w
21:32:10 <Slereah> Makes me think, I never finished my Peano calculator
21:47:14 -!- habnabit_ has joined.
21:47:22 -!- habnabit_ has left (?).
21:56:23 -!- oerjan has quit ("Good night").
22:08:36 -!- ehird` has quit ("K-Lined by peer").
22:08:45 -!- ehird` has joined.
22:09:41 <ehird`> Is there a Redivider implementation yet?
22:35:10 <Slereah> Hm. That Β΅ thingy is bothersome for I/O.
22:37:58 <Slereah> Well, it's not that bothersome
22:38:07 <Slereah> But since I'm pretty horrible at coding, it is.
22:38:57 <ehird`> i will agree with that
22:39:10 <ehird`> and, ask in #python on how to read files in unicode
22:39:25 <Slereah> What that got to do with unicode?
22:39:36 <Slereah> When I say Β΅, I mean Β΅ recursive functions
22:40:20 <Slereah> It's time for some pen and paper coding, I do believe.
22:40:27 <Slereah> I can't code without paper.
22:40:29 <ehird`> I thought you meant outputting Β΅.
22:40:36 <ehird`> lazy bird use monads for IO yet?
22:40:41 <ehird`> it will make all your troubles disappear
22:41:00 <Slereah> I slacked quite a bit these past weeks
22:41:00 <Slereah> I still haven't read Haskell
22:41:26 <Slereah> I've got a hard time staying focused on something.
22:50:02 <Slereah> Hm. Wonder if I'll have to use monads too for Β΅lambda
22:53:50 <Slereah> Damn those functional languages!
23:17:53 <Slereah> Is the Β΅ function even computable in a general case?
23:20:01 -!- Tritonio_ has quit (Read error: 110 (Connection timed out)).
23:20:37 -!- Tritonio_ has joined.
23:26:16 <Slereah> "Definition of the unbounded ΞΌ operator in terms of an abstract machine"
23:29:18 -!- lifthrasiir has quit ("leaving").
23:29:28 -!- lifthrasiir has joined.
23:35:31 <olsner> what's the ΅ function?
23:35:50 <ehird`> hey -- who here is interested in Be Your Funge?
23:36:09 <Slereah> I'll be your funge for a dollar 99, wink wink
23:36:52 <Slereah> Β΅ function : Β΅yf(y, x1, x2, ...) = smallest value of y such that f(stuff) = 0
23:36:57 <Slereah> Or 0 if no such value exists.
23:38:01 <Slereah> That's why I'm scratching my head.
23:38:16 <ehird`> why? its uncomputable, get over it
23:38:34 <Slereah> Well, it's supposed to be part of the holy trinity of the recursive functions.
23:38:41 <Slereah> The first system to be Turing complete.
23:39:24 <Slereah> What are you trying to tell me!
23:39:28 <ehird`> http://en.wikipedia.org/wiki/Mu_operator
23:39:41 <ehird`> is written in kind-of-assembly language
23:39:41 <ehird`> so that should be easy
23:40:37 <ehird`> uhm, that's pretty light readin'
23:40:39 <Slereah> But yeah, I suppose it is.
23:43:16 <Slereah> "The unbounded ΞΌ operator will continue this attempt-to-match process ad infinitum or until a match occurs."
23:44:46 <olsner> "ad infinitum" - sounds like the seed of turing completeness
23:45:18 <Slereah> Well, as long as it doesn't need to check if y actually exists, I guess I'll be okay.
23:45:21 <ehird`> Slereah: So it doesn't halt until it finds one; and loops forever if there is none.
23:48:18 -!- Corun has joined.
23:48:18 -!- Tritonio__ has joined.
23:48:33 <Slereah> That Lazy K dude was onto something with that referential transparency!
23:48:48 -!- Tritonio_ has quit (Read error: 110 (Connection timed out)).
23:55:56 <Slereah> If I use sum Monads, will I be able to read each function lazily ?
23:56:42 <Slereah> With the current idea, it seems like a lot of bothers.
23:56:58 <Slereah> And I can't rely on the combinators nice one-argument-each
23:57:04 <ehird`> Slereah: Monads allow you to do everything lazy.
23:57:21 <Slereah> Then I'd better go back on Haskell
23:57:23 <ehird`> Because the nature of the functions that run them create data dependencies
23:57:30 <ehird`> so that the evaluator is forced to evaluate the IO stuff in sequence
23:58:31 <Slereah> I'll pretend to understand and go read the tutorial.
00:01:02 <ehird`> if you have a monadic option linking output, getting a line, some pure stuff, and outputting another line,
00:01:24 <ehird`> the pure stuff is done lazily but the IO depends on the previous one so the evaluator HAS to do it in order
00:01:28 <ehird`> while requiring no changes
00:02:14 <Slereah> Even if the output is itself a function?
00:02:53 <Slereah> It will basically be like this. You've got 0, you've got + for successor, a bunch of functions.
00:02:55 -!- puzzlet_ has joined.
00:03:04 <ehird`> and ask loads of questions
00:03:22 <Slereah> There's people there. Talking about Haskell.
00:03:25 <ehird`> #haskell is the friendliest programming language channel around
00:03:34 <Slereah> Haskell was that black guy in cube Zero. Killed the fat guy!
00:03:46 -!- Corun has quit ("I'm nuts and Neil's a nut, therefor I am NEILS!").
00:09:41 * Slereah be printing the Haskell tutorial
00:11:31 <ehird`> there, i shoved you into #haskell
00:11:36 <ehird`> don't worry. we don't bite. :)
00:13:30 -!- jix has quit ("CommandQ").
00:14:41 -!- puzzlet has quit (Read error: 110 (Connection timed out)).
00:15:41 <Slereah> 192 pages, it's going to be a while.
00:16:43 <Slereah> You know, throwing ink on paper in shapes
00:17:13 <ehird`> Slereah: why not just read it
00:17:31 <Slereah> What, you want me to read that on a screen?
00:17:46 <ehird`> get a nice big font and a good pdf reader
00:17:57 <ehird`> you need to do YAHT interactively, anyway. it's best.
00:17:59 <Slereah> My chair isn't that comfy though.
00:18:37 <ehird`> You're going to do it away from a computer ...?!
00:18:40 <ehird`> You'll never learn Haskell!
00:18:50 <ehird`> You need to have Emacs and ghci there, open. :-P
00:20:00 <Slereah> It has Haskell highlighting.
00:20:17 <olsner> emacs!? you *never* need emacs :P
00:20:43 <pikhq> It's not that you need Emacs.
00:21:04 <pikhq> You don't need to live, either.
00:22:09 <Slereah> What does macs have besides highlighting?
00:22:48 <ehird`> Slereah: emacs is the only solution for haskell code
00:22:52 <ehird`> well some people use vim (masochists)
00:23:03 <ehird`> Slereah: haskell's syntax is indentation-based
00:23:08 <ehird`> its very tedious to do manually
00:23:12 <ehird`> haskell-mode for emacs is VERY smart
00:23:18 <ehird`> it also has an integrated ghci
00:23:22 <ehird`> and all sorts of stuff
00:23:33 <ehird`> basically, haskell development without it is 99% repetetive key mashing
00:24:10 <Slereah> Let's get them Emacs then.
00:25:20 <ehird`> Slereah: sudo apt-get install emacs-snapshot-gtk emacs-goodies-el
00:25:29 <ehird`> that will get you the best emacs for general use
00:25:39 <ehird`> that gets you the wrong emacs
00:29:52 <ehird`> $ grep thetans /dev/soul | xargs rm -rf
00:32:38 -!- timotiis has quit ("leaving").
00:34:32 <Slereah> Seems my porn folder is hogging space on the Linux partition!
00:38:54 <ehird`> Slereah: The right one?
00:39:10 <ehird`> If so, then you have emacs in some menu somewhere.
00:39:19 <ehird`> Start it, then type 'C-h t' (CTRL-h, t)
00:39:28 <ehird`> now you know how to use emacs. :P
00:40:39 <Slereah> [Middle of page left blank for didactic purposes. Text continues below]
00:40:46 <Slereah> That statement is so self-defeating
00:41:10 <ehird`> oh, and throw your mouse to the back of your desk until you're done.
00:42:59 <Slereah> They use ctrl x-c-v for something else than copypasta?
00:44:16 <ehird`> Slereah: The madhouse of productivity and speed.
00:44:35 <ehird`> say goodbye to your arrow keys.
00:44:41 <Slereah> Nooooooooooooooooooooooooooooooooooo
00:44:43 <ehird`> Ctrl-N, Ctrl-P, Ctrl-F, Ctrl-B are your gods now.
00:45:05 <ehird`> (Note: emacs came around before any of these things that you're used to existed. It's not just difference for the sake of it; and most people who use emacs today find them nicer.)
00:45:20 <ehird`> (Emacs came around circa 1980s at MIT.)
00:45:35 -!- puzzlet has joined.
00:45:58 <Slereah> I'm already not that fond of remembering which alt key actually works
00:46:34 <ehird`> Slereah: You've used emacs for about 5 minutes, and even then not much.
00:46:34 -!- puzzlet_ has quit (Remote closed the connection).
00:46:34 <ehird`> You've used ctrl x-c-v, and the arrow keys, your entire computing experience.
00:46:35 <ehird`> Of course you're not faster yet.
00:47:01 <Slereah> The arrow keys seems to work fine on their own though
00:47:54 <ehird`> But you shouldn't use them.
00:48:01 <ehird`> They make your hands move more.
00:48:34 <Slereah> They're not even in a cluster, or with some logic in their disposition.
00:49:22 <ehird`> Slereah: Back,Forwards,Next,Previous
00:49:26 <ehird`> And.. you can touch-type, right?
00:49:59 <ehird`> If so, then you'll get used to it pretty quickly.
00:50:24 <ehird`> with the dent on f and j..
00:50:29 <ehird`> and you keep your fingers there...
00:50:33 <ehird`> :| you can't touch-type, can you
00:50:36 <olsner> don't you mean aieo htns? :P
00:50:43 <ehird`> olsner: i doubt Slereah uses dvorak.
00:50:48 <ehird`> if he doesn't know how to touch-type.
00:51:20 <Slereah> And I indeed don't need to look much at it.
00:51:41 <Slereah> Though I keep my eyes on the screen. Once in a while, I'm one key off and write gibberish.
00:52:18 <ehird`> Slereah: Do you keep your fingers onthe middle row?
00:52:25 <ehird`> And never stray from it, just moving your fingers to the keys?
00:52:32 <ehird`> If not -- you can't touch-type. Go learn that, first.
00:52:58 <ehird`> olsner: Can you please be my window of sanity?
00:54:18 <olsner> sanity!? mind you, it is in #esoteric you're asking this question
00:54:32 <ehird`> olsner: More than Slereah?
00:55:30 <olsner> I don't really touch-type though... more like mostly-hitting-the-right-key
00:56:14 <Slereah> Same here. And really, I'm not sure I need to learn sum touch typing.
00:56:20 <Slereah> I'm not in a speed competition.
00:56:32 <olsner> I mostly keep my fingers at the home row, but often happen to use some other position... which happens to work since I know where my fingers are
00:57:04 * Slereah doesn't even use moar than two fingers :o
00:57:12 <olsner> also, coding on a swedish keyboard require a lot of AltGr:ing
00:57:36 <olsner> latex is especially gruesome, {[]}\~ all being AltGr combinations
00:57:40 <ehird`> Slereah: what? you type with TWO FINGERS?!
00:57:49 <ehird`> how the heck did you get into esolangs.
00:58:09 <Slereah> Because I can type fast enough.
00:58:11 <olsner> the need for an ultra-terse language? heh
00:58:37 <Slereah> Plus, I don't need to type fast for esolangs.
00:58:47 <ehird`> oklopol: are you as sad as i am
00:58:47 <Slereah> Who codes in brainfuck as fast as he types?
01:00:37 <oklopol> i know a guy who uses two fingers and types error-free, and as fast as me
01:01:08 <Slereah> After using the keyboard for ten years, you know where the keys are!
01:01:08 <oklopol> i don't type error-free, not on the computer, not on paper.
01:01:50 <oklopol> and it's not that i typo, i just simply write wrong letters.
01:03:38 -!- ehird` has quit ("K-Lined by peer").
01:05:20 * Sgeo starts forcing down "April 4th of September" down people's throats
01:10:14 <oklopol> Sgeo: btw. are you going to start something new after psox?
01:10:40 <Sgeo> Probably lose interest and go back to SL or something
01:11:38 <Slereah> I might not know your computer stuff, but I sure know the nerd stuff!
01:12:27 <oklopol> i have no idea about anything.
01:27:05 <Sgeo> Is it just me, or is DeVeDe slow?
01:28:16 <Sgeo> DeVeDe == DVD video making thingy
01:28:24 <Sgeo> And it seems to be SLOW
01:28:30 <Sgeo> Although it is converting from flv..
03:29:51 -!- immibis has joined.
03:43:39 -!- Sgeo has quit (Read error: 110 (Connection timed out)).
03:45:47 <RodgerTheGreat> http://rodger.nonlogic.org/dump/images/1203488516-art1.png
03:45:51 <RodgerTheGreat> http://rodger.nonlogic.org/dump/images/1203488528-art2.png
03:46:42 -!- Sgeo has joined.
03:47:39 -!- AlliedEnvy has joined.
03:49:58 <RodgerTheGreat> also, here's a really old comic from several years ago: http://www.nonlogic.org/dump/images/1203565552-urge.gif
03:51:59 <pikhq> Then. . . Why Rodger?
03:52:44 <pikhq> 'Complicated', as in 'requires a small doctoral dissertation'?
03:53:19 <pikhq> olsner: Ouch; that keyboard sounds horrible for coding.
03:54:21 * pikhq prefers his US keyboard
03:54:32 <pikhq> Shift at the most.
03:54:41 <pikhq> Granted, it doesn't do more than ASCII. . . ;)
03:54:59 <immibis> so your name's john and your address is somewhere near Townsend Drive, Houghton, MI 49931-1295, USA
03:55:21 <pikhq> I assume that's where the dorms are?
03:55:36 <RodgerTheGreat> you could even use the MTU directory search to dig up more info on me, like my room phone number! Woo!
03:55:42 <immibis> duh....[16:53] ->> RodgerTheGreat is n=Rodger@wads-5-233-27.resnet.mtu.edu (Rodger)
03:55:55 <RodgerTheGreat> 'course, I don't have a phone plugged in, so your options will be limited
03:59:41 <immibis> there appears to be at least one car driving around near mtu. Not that's important information.
04:00:04 <immibis> no wait, there are quite a few for the middle of the night.
04:01:17 <immibis> pretty cold over there, isn't it?
04:02:25 <RodgerTheGreat> so, no comments on any of those images aside from creepy internet detective activity?
04:06:53 -!- GreaseMonkey has joined.
04:35:53 <Sgeo> I didn;t what?
05:38:09 -!- Tritonio_ has joined.
05:40:08 -!- Tritonio__ has quit (Read error: 110 (Connection timed out)).
05:52:03 -!- Sgeo has quit (Read error: 110 (Connection timed out)).
06:03:18 -!- oerjan has joined.
06:24:01 -!- puzzlet_ has joined.
06:24:46 -!- puzzlet has quit (Remote closed the connection).
06:25:43 -!- BMeph has quit ("calls it a night").
06:31:51 -!- cherez has quit (kornbluth.freenode.net irc.freenode.net).
06:32:19 -!- cherez has joined.
07:46:12 -!- bsmntbombdood__ has joined.
07:47:16 -!- bsmntbombdood has quit (Nick collision from services.).
07:47:18 -!- bsmntbombdood__ has changed nick to bsmntbombdood.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:03:49 -!- immibis has quit (Client Quit).
08:10:02 -!- AnMaster has quit (Connection timed out).
08:22:39 -!- GreaseMonkey has quit ("Hi Im a qit msg virus. Pls rplce ur old qit msg wit tis 1 & hlp me tk ovr th wrld of IRC. and dlte ur files. thx.").
08:32:44 -!- AnMaster has joined.
08:56:39 -!- oerjan has quit ("leaving").
09:42:18 -!- jix has joined.
10:45:42 -!- Corun has joined.
10:55:17 -!- Corun has quit ("This computer has gone to sleep").
13:05:02 -!- uvanta has joined.
13:16:11 -!- wildhalcyon has joined.
13:47:42 -!- smg has joined.
13:48:10 -!- smg has left (?).
13:54:30 -!- RedDak has joined.
14:29:29 -!- uvanta_ has joined.
14:48:10 -!- uvanta has quit (Read error: 110 (Connection timed out)).
14:58:23 -!- puzzlet_ has quit (Remote closed the connection).
14:58:27 -!- puzzlet has joined.
15:35:01 -!- olsner has quit ("Leaving").
16:02:24 -!- olsner has joined.
16:18:53 -!- RedDak has quit (Read error: 113 (No route to host)).
16:24:01 -!- Tritonio_ has quit ("Bye...").
16:26:38 -!- Corun has joined.
16:28:50 -!- RedDak has joined.
16:50:27 -!- timotiis has joined.
17:00:19 -!- puzzlet_ has joined.
17:00:40 -!- puzzlet has quit (Remote closed the connection).
17:12:59 -!- AlliedEnvy has left (?).
17:26:40 -!- Corun has quit ("This computer has gone to sleep").
17:43:10 -!- olsner has quit.
17:45:23 -!- RedDak has quit ("I'm quitting... Bye all").
17:57:59 -!- ehird_ has joined.
18:02:00 -!- RedDak has joined.
18:09:38 -!- ehird_ has changed nick to ehird.
18:10:00 -!- ehird has set topic: Is this the esoteric programming languages channel on freenode?.
18:10:37 -!- faxathisia has set topic: This is NOT the esoteric programming languages channel on freenode?.
18:18:01 -!- lament has set topic: This channel has no relationship to the world hub for esoteric language design and development..
18:21:18 -!- faxathisia has set topic: This channel has no relationship to the world hub for esoteric language design and development, the world hub for esoteric language design and development is not even mentioned in the topic..
18:30:07 -!- ehird has set topic: #esoteric powers esoteric languages?.
18:35:52 -!- RedDak has quit (Remote closed the connection).
18:36:21 <faxathisia> "Who knows the value for the type of a lisp source file?"
18:37:18 <wildhalcyon> My lisp experience is limited to "What's that language with all the parentheses? Lisp? Oh"
18:37:21 -!- lament has set topic: This channel is now officially closed. Please proceed to ##overflow..
18:37:59 <faxathisia> wildhalcyon: I'd really recommend changing improving that :o
18:38:28 <ehird> but haskell is more fun
18:38:33 <ehird> and you can write lisp in haskell trivially if you want that
18:38:37 <ehird> the other way around, not so much
18:38:54 <ehird> imo lisp is the prototype, haskell is the result (version 1 :-P)
18:38:57 <faxathisia> ehird if you think so... maybe you can help fix my haskell code :P
18:39:06 <ehird> faxathisia: i'll try.
18:39:08 <faxathisia> ehird, but I find the reverse of hwat you said
18:39:22 <ehird> faxathisia: what, you can write a haskell compiler in lisp trivially?
18:39:42 <ehird> lisp isn't a functional language for one
18:40:00 <ehird> and haskell's syntax, while not as minimal as lisps, is just as simple and elegant
18:40:09 <ehird> and haskell has macros, because they're just functions, thanks to laziness
18:40:17 <ehird> their syntax is low-fat too -- no (lambda ...)
18:40:48 <faxathisia> oh I was not talking about compilers (I didn't think you were either)
18:40:52 <uvanta_> i totally agree with ehird
18:41:10 <ehird> it's too cool! it must be banned!
18:41:46 * faxathisia does not care for the syntax comparison
18:42:36 <uvanta_> but in here S Korea, there's not much people being aware of haskell
18:42:47 <uvanta_> even no single haskell book written in Korean
18:42:48 <ehird> faxathisia: syntax is fundamental to a language's style
18:43:11 -!- uvanta_ has changed nick to uvanta.
18:45:27 -!- lament has set topic: Sorry, this channel is full. Please proceed to ##overflow..
18:46:04 <lament> also, haskell rules, lisp drools!
18:46:13 -!- ehird has set topic: You've reached this channel because the channel you tried to enter has been configured with join throttling (+J). There may be a clonebot attack in progress there, or simply unusually heavy interest. Please leave this channel and try again. Your channel may also be "identified-only" (+r); join #please_register for more information. If you need help, message a freenode staffer or email staff@freenode.net .... Thanks!.
18:48:22 <faxathisia> I can't believe you guys are dissing lisp..
18:48:55 <ehird> faxathisia: i am not
18:48:59 <ehird> i am saying that haskell is superior
18:49:08 <faxathisia> Well have fun with your lambda calculus and type theory while I write web apps!
18:49:30 <uvanta> lambda calculus is from lisp
18:49:45 <uvanta> i mean, miranda derived it from lisp
18:49:51 <uvanta> and haskell derived it from miranda
18:51:39 <faxathisia> well it's kind of irrelevant but my opinion is if you don't know Lisp you are missing out on something really great
18:52:15 <ehird> faxathisia: i'm writing a web app in haskell right now
18:52:34 <ehird> and text.xhtml + network.fastcgi + a strongly typed database query module is far superior to any lisp shit you have
18:53:00 <ehird> specifically, i have memorized all the syntax, semantics and procedures in r5rs
18:53:01 <faxathisia> ehird, It's not superior, It's what you're finding more fun to work with at this point in time
18:53:07 <ehird> and the equiv in common lisp
18:53:13 <faxathisia> ehird, I was joking with all this arc fuss around at the present
18:53:30 <ehird> faxathisia: well, actually, that toolkit is far superior to any lisp web app framework that has been built yet.
18:54:07 <ehird> the fact that it makes me *warm* and *fuzzy* is just a nice extra
18:54:14 <faxathisia> I heard you can ensure W3C compliance of XML/XHTML in the type system
18:54:38 <faxathisia> so.. currently, you gotta restart the server just to make upgrades to the site?
18:55:25 <ehird> faxathisia: no way
18:55:33 <ehird> haskell development server
18:55:36 <ehird> recompiles as it goes
18:55:50 <ehird> when you're done, you just compile yourself a binary, static or dynamic, and upload it to your server
18:55:57 <ehird> add the fastcgi info to your ws config and you're done
18:56:09 <ehird> and no reloads of the server
18:56:15 <ehird> just once you push out a new major change, restart the fcgi server
18:56:18 <ehird> which is as simple as SIGHUP
18:56:33 <faxathisia> ok so you have to restart the server..
18:56:36 <ehird> and you can ensure w3c compliance in the type system; but that would make Text.XHtml be absolutely crazy
18:56:41 <ehird> if you want performance, yes
18:56:48 <faxathisia> It's not superior to the lisp setup I had
18:56:49 <ehird> but you can just run a dynamically reloading WS on the server.
18:57:10 <ehird> 99% of development time is PUSHING OUT MAJOR CHANGES ONTO YOUR SERVER WHICH TAKES 10 HOURS TO RESTART
18:57:34 <ehird> faxathisia: have you thought about the performance overhead of your lisp setup?
18:57:52 <lament> i don't like lisp because it's ugly
18:58:12 <lament> especially functions ending in things like p and f
18:58:26 <ehird> lament: that's not there in scheme
18:58:33 <ehird> but it does have mutation and predicate annotations..
18:58:42 <lament> scheme is much prettier
18:59:12 <lament> but scheme has terrible standartization problems
18:59:23 <ehird> r6rs seems ... kind of ok
18:59:31 <faxathisia> I think it's a bit too much of a superficial view
18:59:37 <wildhalcyon> Better than most esoteric languages. They usually have terrible bastardization problems
18:59:45 <faxathisia> really the names of some constants is not the matter
19:00:09 <Slereah> Don't be dissin' the eso dude.
19:00:32 <wildhalcyon> As a bastardized language creator, I'm not dissin', just telling it like it is.
19:00:35 <ehird> faxathisia: aesthetics are important
19:00:46 <lament> faxathisia: actually the main reason i haven't ever seriously tried lisp is the perceived lack of a good environment, and a perceived necessity for having one
19:01:10 <lament> faxathisia: ie, haskell doesn't feel like you need to have a huge environment in which to work with it; a text editor and ghc is enough
19:01:22 <lament> and unfortunately such environments tend to be emacs-based
19:01:27 <ehird> lament: but emacs, haskell-mode&inf-haskell, and ghc helps
19:01:38 <lament> and i'm not a fan of emacs
19:02:34 <lament> compare with squeak... now that's an environment :)
19:04:12 <ehird> the idea is awesome
19:05:23 <lament> in any case, even if the environment did exists, something feels wrong about a language _needing_ one :)
19:05:38 <ehird> feels just right for squeak though
19:06:08 <lament> there's barely a programming language in squeak
19:07:57 <lament> http://www.flownet.com/gat/papers/pch.html
19:13:27 <uvanta> haskell... its lazy evaluation is... elegant
19:13:47 <uvanta> its code is... beautiful
19:14:36 <uvanta> right now i'm doing a part-time job using php and it SUCKS
19:15:32 -!- zacuan has joined.
19:15:45 -!- zacuan has left (?).
19:17:32 <uvanta> i wanted to join that language war but i couldn't since ehird was saying everything i want to say before me
19:18:07 <ehird> uvanta: unfortunately, if i actually said that before you said it, that would just be strange, because it makes no sense when i say it
19:19:26 <ehird> uvanta: shit, the next line is 'all your base are belong to us'
19:19:28 <ehird> you can't make me say that
19:19:55 <uvanta> no, the next line is 'you have no chance to survive make your time'
19:20:07 <ehird> you just did that.
19:20:43 <uvanta> i don't really understand what's going on but... i'm sorry
19:48:57 -!- ehird has quit ("Leaving").
19:50:48 <wildhalcyon> Anyone have any suggestions for what sort of commands an assembly language should contain?
19:51:16 <Slereah> One that will play the Super Mario theme on the PC speaker.
19:51:23 <Slereah> To answer your question, I don't know.
19:51:58 -!- ehird has joined.
19:53:04 <wildhalcyon> I'm leaning towards 32-bit, but 64-bit might work also.
19:54:58 <wildhalcyon> I'll probably need some sort of memory management instructions.
20:02:26 -!- ais523 has joined.
20:02:55 <ais523> wildhalcyon: why not the MAX instruction?
20:02:58 <ais523> see MiniMAX on the wiki
20:03:20 <Slereah> ais523 is watching you type
20:03:29 <wildhalcyon> makin' me look up stuff... with the thing...
20:03:37 <ais523> actually, I was reading the logs and decided I wanted to join the conversation
20:04:07 <wildhalcyon> So, what would the MAX instruction do then?
20:04:12 <uvanta> how can you read them in real-time?
20:04:24 <ais523> and wildhalcyon: it can be expressed as MOVSW LODSW ADD SI,AX XCHG SI,DI in x86 assembly language
20:04:30 <ehird> ais523: how long until you invent a log client that doesn't require an external log service and updates in real time without refreshing?
20:04:38 <ehird> then in another version add support for sending messages?
20:04:55 <ais523> basically, it copies one datum from the source to the destination pointers (which have to be set up beforehand), incrementing each pointer
20:04:57 <ehird> (p.s., it's really weird when someone joins and replies to a question asked minutes before they joined :P)
20:05:16 <ais523> then adds the datum at the source pointer to the source pointer, and increments it
20:05:21 <ais523> then swaps the source and data pointers
20:05:40 <ais523> ehird: minutes? I've replied to questions asked days earlier on occasion
20:05:47 <ais523> wildhalcyon: the instruction is TC by itself
20:05:49 <ehird> that's not as creepy
20:06:00 <ais523> it doesn't even need arguments...
20:06:02 <ehird> but replying something asked minutes before seconds after joining..
20:06:12 <ais523> just memory to be set up correctly beforehand
20:06:17 <ehird> ais523: hm, if it requires no arguments, then ... oh
20:06:28 <ehird> well, you can pass around minimax programs really easily
20:06:39 <ehird> file = memory ... sentinel code ...
20:06:50 <ehird> code = length of source encoded in base-255
20:07:01 <ehird> since MAX MAX MAX ... is just unary
20:07:14 <ais523> I generally treat the program as being the contents of memory before the interp is run
20:07:30 <ais523> in DOS, you just append the program to the interp and it dutifully loads it into memory at the right place
20:08:03 <ais523> there's a 14-byte interp on the wiki that works like that (no I/O, though)
20:08:49 <ais523> it even handles quitting when you jump to a location 270 bytes (that is, 135 words) before the start of the program
20:09:40 <wildhalcyon> I thought you meant regular wikipedia... didn't pay attention where you said "on THE wiki"...
20:10:05 <ais523> I normally mean Esolang when I say 'wiki' on this channel without a qualifier
20:19:44 <wildhalcyon> Wow, ais. I really don't understand miniMAX.
20:22:12 <ais523> it's kind of hard to explain
20:22:22 <ais523> the example makes it just-about possible for other people to understand sometimes
20:22:58 <ais523> each command alters the previous command, and sets the distance between the command after it and the command before it
20:23:27 <wildhalcyon> I sort of get that part, but I don't get how its set up I guess.
20:23:35 <wildhalcyon> Plus, its not really helpful for my assembly language.
20:24:06 <ais523> wildhalcyon: the program is just loaded into memory, and the docs for the interp define where the 1st and 0th commands start
20:24:18 <ais523> it was simply designed for very small TCness
20:24:44 <ais523> (of course the 14-byte interp isn't TC because it can only address 64K memory, because it's a DOS .COM file)
20:34:30 <ehird> ais523: I am trying to write a fixed-point function in C
20:34:33 <ehird> I do not believe it is possible
20:34:37 <ehird> without inline asm
20:34:53 <ais523> what exactly do you mean by 'fixed-point function' in this context?
20:35:00 <ais523> and why would inline asm help?
20:35:12 <ehird> because you can do closures and stuff with inline asm
20:35:32 <ehird> fix(F) => fun(...) => F(fix(F))(...)
20:36:36 <ais523> the naive implementation gives you an infinite loop because C is eager
20:36:51 <ais523> I remember reading something about an eager implementation of Y, though, I may have to look it up
20:37:01 <ehird> ais523: c does not have closures
20:37:04 <ehird> you cannot code the y combinator in it
20:37:31 <ehird> Z = \f. (\x. f (\y. x x y)) (\x. f (\y. x x y))
20:37:49 <ehird> ais523: the point is you cannot return the appropriate function
20:38:05 <ehird> f cannot return something meaningful
20:38:51 <ais523> lambda calculus is kind of tricky in C anyway, what with the total absence of a lambda operation
20:39:00 <ehird> ais523: it's impossible.
20:39:03 <ehird> lambda calculus uses closures.
20:39:06 <ehird> c does not have closures.
20:39:13 <ehird> short of writing an interpreter; you cannot do lambda calculus in C.
20:40:37 <ais523> that's what I meant by 'kind of tricky'
20:40:47 <ais523> in JavaScript, OTOH, it's built into the language
20:40:51 <ais523> and that acts kind of like C at a distance
20:41:45 <ehird> ais523: speaking of which
20:41:55 <ehird> if you reduce haskell to:
20:42:03 <ehird> a basic type system that at a glance looks like it,
20:42:10 <ehird> simplified version of the syntax,
20:42:14 <ehird> just standard lazy evaluation
20:42:23 <ehird> and only a few standard things (like, an IO monad)
20:42:31 <ehird> ais523: how short do you think an interpreter could be written?
20:43:06 <ehird> http://www.laserpirate.com/tinyml.html tiny ml in <700 lines
20:43:09 <ehird> so, i think not too much
20:43:13 <ais523> with a minimal Prelude, maybe a kilobyte or two
20:43:30 <ais523> hmm... 2K is the IOCCC size threshold
20:43:37 <ais523> (4K counting whitespace)
20:43:44 <ais523> but C is not a very good language for golfing
20:45:12 <ais523> incidentally, I topped up anagolf to shinh's requested 5 problems at a time
20:45:23 <ais523> and got several entries within a couple of minutes of posting the problem
20:46:31 <ehird> bytes mean nothing to me
20:46:37 <ais523> I'm pretty sure it's possible to write a Haskell interp in 1 line of code, in Brainfuck
20:47:46 <ais523> because newline has no meaning to a Brainfuck implementation, or ought not to
20:48:08 <ais523> (I came across a BF interp online that errored on any characters not in ,.<>[]+-, and also errored on EOF)
20:48:25 <ais523> (I'm pretty sure most BF standards would therefore not consider it conforming)
20:49:09 <ehird> ais523: I mean reasonable looking code.
20:49:36 <Slereah> I'm trying to make a factorial on LB.
20:49:50 <Slereah> But I feel I'm recreating an imperative version of the factorial
20:50:33 <ais523> Slereah: in Unlambda-like languages, the iterative and recursive versions of factorial tend to come out identical
20:51:01 <ais523> because when you translate the loop of the iterative version into a recursive function so that it can be expressed in the language, you end up with code identical to the recursive version
20:51:14 <Slereah> My idea so far is using an ordered pair, first element being the result, second being what's left.
20:51:18 <ais523> at least if you make the loop count downwards to make the termination condition easy
20:51:22 <ehird> ais523: btw, all factoring programs i've found say their algorithm is dumb
20:51:27 <ehird> so why don't they improve it?! :|
20:51:50 <Slereah> So factorial 5 would start out as <1,5> and finish on <120,0>
20:52:14 <ais523> Slereah: both the recursive and iterative versions work like that
20:52:38 <ais523> in fact they're so similar it's hard to tell the difference; on occasion they can be identical
20:52:51 <ais523> because the argument to a recursive function is an argument
20:53:13 <ais523> a variable in an imperative version has to be converted to an argument to be remembered between iterations of the loop
20:53:19 <ais523> and so the two functions end up the same
20:55:18 <ais523> Slereah: I just read your note about the difficulty of I/O in Lazy Bird
20:55:34 <ais523> some sort of monad is generally the best option in pure lazy languages
20:55:35 <Slereah> Are you going to tell me about monads?
20:56:15 -!- oerjan has joined.
20:56:21 <ais523> a monad would be a bit hard to implement in an efficient form in Lazy Bird because input would need to return two arguments and output would need to take two arguments
20:56:45 <ais523> taking two arguments is fine due to currying, but returning two would mean some sort of officially sanctioned version of an ordered pair
20:57:18 <Slereah> Well, my first thought was to use some sort of function > such that ``>[A][B] converts to `[A][B] and then B is evaluated
20:57:46 <ais523> so some sort of eageriser
20:58:03 <ais523> but it's kind of hard to ensure that the eageriser runs at the right time, because it would itself be lazy
20:58:18 <ais523> and more importantly the thing running it would be lazy
20:58:25 <ais523> the program would have to be full of eagerisers
20:58:32 <ehird> ais523: by the way, i learned a disturbing thing yesterday
20:58:38 <Slereah> Yes, that's the problem I saw.
20:58:41 <ehird> the Y combinator cannot be typed in any language that does not allow arbitary recursive types
20:58:51 <ehird> every lambda calculus term can be typed as "a = a -> a"
20:58:58 <ehird> thus, strong typing is destroyed
21:00:02 <oerjan> that's a bit exaggerated i think
21:00:33 <ais523> just thinking about monads in general... suppose you write infinite cat (that doesn't terminate on EOF) in a language like Haskell
21:01:30 <ais523> if you do it by constructing an infinite list of commands input >>= \x -> output x >> input >>= \x -> output x >> input and so on, is there any guarantee that any of the commands actually runs rather than the interp spending an infinite length of time constructing the list without evaluating any of the monad-chained functions?
21:01:39 <ais523> the list of commands, that is
21:01:49 <ehird> oerjan: no, it's true
21:01:55 <ehird> and that's from #haskell, too :P
21:02:09 <ehird> because ... that construction is lazy
21:02:23 <ais523> it's an issue as to what is more lazy, the I/O or the list construction
21:02:23 <oerjan> ehird: hm, there may have to be a type that every term can be type with
21:02:27 <ehird> the interpreter executes as little as possible of the chain creation, runs that action, does it again, etc
21:02:47 <ehird> Let's call the lambda calculus function type T.
21:02:54 <ehird> now every LC function takes an LC function and produces an LC function.
21:03:14 <oerjan> the version of intersection types i read about that could type every weakly normalizing term used an omega for it. no other recursive types necessary
21:03:17 <ehird> (a = a -> a) is the type of all LC terms, and will type in a language that can type Y, thus strong typing is destroyed.
21:04:12 <oerjan> that type is not necessarily in your system
21:04:22 <ehird> oerjan: to type Y, it must be
21:04:33 <oerjan> Y :: (omega -> a) -> a was one legal type for Y, i think
21:04:53 <ehird> Y takes a function, and returns <SOMETHING> (let's say -- a)
21:05:07 <oerjan> ehird: note that a system need not have principal types. it may be that you need a different type for Y dependent on what you apply it to
21:05:13 <ehird> Now, if we say that Y is equiv. to '\f -> f (Y f)', then, what type is passed to the function?
21:05:14 <ais523> incidentally, is the topic a real error message that can actually come up, or was it just faked to look realistic?
21:05:21 <ehird> the return type of Y f, that's what.
21:05:31 <ehird> And the function returns some value 'b' -- but this must be the same value passed to a
21:05:39 <ehird> We get (a -> a) -> a, but that's just the fixed point type
21:05:47 <ehird> If you read the actual lambda definition of Y, it has an infinite type.
21:05:59 -!- wildhalcyon has quit ("ChatZilla 0.9.81 [Firefox 2.0.0.11/2007112718]").
21:06:00 <oerjan> ehird: you are assuming a system in which everything has exactly one type
21:06:18 <ehird> i'm assuming a sane system? well, that's odd.
21:06:36 <oerjan> ehird: there are _many_ interesting systems without that property
21:06:49 <ais523> ehird: noticing when you've made assumptions and acting a different way is a good way to come up with an interesting esolang
21:07:10 <ehird> oerjan: random note -- you used to code ocaml right?
21:07:21 <ehird> how can i tell the ocaml repl to load an ocaml source file and let me access its variables?
21:07:51 <oerjan> open ? my memory is vague
21:09:06 <Slereah> At least it will be easy to insert in the interpreter.
21:09:39 <oerjan> ehird: i think the repl syntax in ocaml is almost identical to file syntax
21:09:40 <ehird> - : ('a -> 'a) -> 'a = <fun>
21:09:43 <ehird> i see no recursive type there
21:10:18 <ehird> however, it doesn't actually run of course
21:11:14 <oerjan> another legal type for Y in that intersection system would be Y :: ((omega -> a) /\ (a -> b)) -> b
21:11:38 <oerjan> and so on, for any chain of types starting with omega
21:11:44 <ehird> oerjan: hm, how do i explicitly type annotate an ocaml function?
21:11:53 <ehird> if i know that, then I'm going to go fsck up ocaml's type system
21:12:07 <oerjan> ehird: with : somewhere
21:12:23 <oerjan> possibly just before the =
21:12:53 <ehird> well, I just convinced ocaml that 'a -> 'a is a valid type for Y.
21:13:01 <ehird> - : ('a -> 'a as 'a) -> 'a = <fun>
21:13:09 <ehird> i think i typed the argument
21:13:45 <oerjan> is that precedence right? try parenthese around ('a -> 'a) to be sure
21:13:55 <ehird> let y : ('a -> 'a) =
21:15:03 <ehird> "A as B" is "B = A"
21:15:07 <ehird> - : ('a -> 'b as 'a) -> 'b = <fun>
21:15:37 <ehird> but you can't put that in a source file heh
21:16:13 <ehird> oerjan: there should be a minihaskell for experimenting with stuff like this
21:16:17 <ehird> like i asked ais523 about earlier
21:16:24 <oerjan> it's not legal base syntax since basic ocaml does not allow -rectypes
21:16:24 <ehird> i guess without layout, so the parser can be dirt simple
21:16:34 <ehird> oerjan: i did -rectypes
21:16:42 <ehird> and, if we had a minihaskell
21:16:43 <oerjan> i mean the basic is without it
21:16:47 <ehird> we could just add the a = b rule
21:16:53 <oerjan> stop misinterpreting me!
21:17:20 <ehird> y :: (a = a -> a) -> a
21:17:41 <ehird> y = \f -> (\x -> f (x x)) (\x -> f (x x));;
21:17:51 <oerjan> the usual type is (a -> a) -> a, for fix anyhow
21:18:24 <ehird> oerjan: yes, but this encodes it better
21:18:25 <oerjan> it's just that you cannot get that building from just lambda terms with the usual type system
21:18:32 <ehird> that one kind of ignores the whole recursive 'a' thing
21:18:54 <ehird> well, a nicer way of saying it (makes more sense to humans):
21:19:12 <ehird> y :: (a -> b) -> b where a = b
21:19:47 <ehird> churchN :: a = (a -> a) -> a -> a;;
21:19:49 <oerjan> i think the amount of humans for which that makes more sense is a pretty thin sliver :D
21:19:57 <ehird> (as in, behaves the same as pure LC churches)
21:20:14 <ehird> oerjan: it avoids starting to read it as a normal type then having to backtrack to get the recursion
21:21:36 <oerjan> in System F (where everything terminates) forall a. (a -> a) -> a -> a is the type of _precisely_ the church numerals
21:22:08 <ehird> oerjan: aha, but that's not the LC church numerals
21:22:08 <ehird> because there are more constraints on what can be passed in
21:22:10 <oerjan> System F btw does _not_ have principal types
21:22:35 <ehird> ais523: anagolf should add emacs lisp
21:22:51 <ais523> I'd like to see Underload as well
21:23:57 <ehird> can you do stdout with elisp
21:24:16 <ais523> probably it would be better to do it the same way as they did vi
21:24:31 <ais523> input arrives in the buffer, output is the final version of the buffer
21:25:11 * ais523 keeps typoing the word 'buffer' with g rather than f. It's probably because their finger doesn't move back far enough after pressing the 'b'...
21:25:28 <ehird> oh, bugger. that must be bad.
21:25:52 * oerjan is starting to get the impression from the topics that people here don't _want_ more channel members :D
21:25:53 <ais523> luckily I've memorised backspace backspace f f as part of the way my fingers have learnt the word...
21:25:53 <ehird> ais523: actually, hardly
21:26:01 <ehird> the emacs functions for buffer stuff are hideously verbose
21:26:18 <ais523> elisp is hideously verbose as a language
21:26:28 <ais523> and 'format' isn't that wordy
21:26:42 <ehird> ais523: (require 'cl) makes elisp quite terse
21:27:46 <ehird> every sane elisp coder uses it
21:27:49 <ehird> (if there are any,,)
21:27:58 <ehird> basically, its a lot of useful stuff from CL
21:28:07 <ehird> and presumably anagolf would bundle it
21:28:26 <oerjan> since none of us is sane, why are you mentioning it?
21:28:33 <ais523> ehird: I have coded elisp before. I have never used the cl package, and I consider myself relatively sane, although some may disagree
21:28:42 <ais523> the fact that I'm in #esoteric is certainly evidence to the contrary
21:28:49 <ehird> oerjan: I meant 'sanity check' style :P
21:29:00 <ehird> ais523: well, then start using it. it's the only way to avoid dying at the hands of elisp
21:29:22 <ais523> nowadays I mostly only use elisp for writing major modes for esolangs
21:29:22 <oerjan> ehird: maybe you mean coder of sane elisp, not sane coder of elisp?
21:29:32 <ehird> oerjan: yes, thank you
21:29:40 <ehird> ais523: can i have esolangs.el, btw? :P
21:29:50 <ais523> although I think I pasted it a while ago
21:30:22 <ais523> http://pastebin.ca/894042 is the version I pasted, apparently
21:30:54 <ais523> although I think that version has a bug in the BF indentation
21:31:13 <ais523> or at least, a strange-looking style choice where closing ] has to be on the same line as a lot of code to look sensible
21:31:44 <ehird> you should add (provide 'esolangs)
21:31:46 <ais523> actually, that seems to be the version with the indentation corrected
21:31:47 <ehird> for just importing the lot
21:31:55 <ais523> it's actually probably the most recent version
21:31:59 <ais523> and that's a good idea
21:32:28 <ais523> I use a direct load of that file and (esolangs-recognize-extensions) in my .emacs
21:32:50 <ehird> ais523: could you lowercase the brainfuck mode name?
21:32:52 <ais523> and then get annoyed when people insist on using .bf as an extension for Brainfuck files...
21:33:08 <ehird> omg, you highlight ,. +- <> the asme
21:33:17 <ais523> the word "brainfuck" starts with a capital when at the start of a sentence
21:33:33 <ehird> a modelien is not a sentence
21:33:45 <ais523> modelines are generally written in title case
21:33:50 <ais523> that is, every word initcaps
21:33:54 <ehird> also, ais523, that does no indentation of brainfuck at all
21:34:08 <ehird> (define-key brainfuck-mode-map "\r" 'esolangs-indent-newline-indent)
21:34:08 <ehird> (define-key brainfuck-mode-map "\n" 'esolangs-indent-newline-indent)
21:34:32 <ais523> maybe I should have a minor mode that works on all of them that overrides \r and \n as well
21:34:40 <ehird> people do that in their own .emacs
21:34:44 <ais523> I'm used to auto-indent, which I use in other modes
21:34:51 <ehird> ais523: set it up in .emacs.
21:35:04 <ehird> also, try (kbd ...) for keyboard keys
21:35:07 <ais523> I don't use it in every mode though, I'm inconsistent
21:35:22 <ehird> ais523: example of indenting using brainfuckmode?
21:36:06 <ais523> just typing the code in ought to work
21:36:39 <ais523> the number of spaces at the start of each line is brainfuck-indentation-level times the number of [] levels you're inside
21:36:58 <ais523> at the start of a line, or (if the line starts with ]) just after the initial ]
21:36:59 <ehird> but i'm at level 0
21:37:14 <ais523> what version of emacs are you using?
21:37:22 <ais523> I'll try it on this computer, which runs an ancient version
21:37:33 <ehird> and just then i got it to indent 2 spaces
21:37:36 <ehird> but cannot reproduce
21:38:01 <ehird> def[(IT IS INDENTED WHEN PRESSING [)
21:38:35 <ehird> ais523: it ignroes the first level of indentation
21:38:51 <ehird> sometimes it disables RET!
21:38:55 <ehird> 'indentation would be in left margin'
21:38:56 <ais523> and just get "Symbol's definition as function is void: move-beginning-of-line"
21:39:08 <ehird> and now i can't do in those []
21:39:21 <ais523> definitely looks like there's an off-by-two error for you
21:39:27 <ais523> that code clearly needs cleaning up
21:39:27 <ehird> and maybe some logic bugs.
21:39:35 <ais523> what about the Forte indentation? Does that work?
21:39:46 <ehird> ais523: i don't know forte
21:39:48 <ais523> (it right-justifies the line numbers and left-justifies the statements)
21:40:02 <ais523> ehird: just type in some BASIC, it looks much the same to a syntax higlighter
21:40:53 -!- jix has quit ("CommandQ").
21:41:20 <ehird> ->startloop indented one tab, current lien on one tab
21:41:34 <ais523> there isn't a loop instruction
21:41:46 <ehird> i copied the examplenotanexample
21:41:47 <ais523> it just indents the line number into a one-tab margin and the rest of the statement after it
21:42:09 <ais523> 110 PRINT "Looping...": LET 108=108+3
21:42:17 <ais523> that's how you do a loop in Forte
21:42:29 <ehird> ais523: the 10 rem won't highlight properly
21:42:49 <ais523> oh, because of the embedded colon-newline in the comment
21:43:01 <ais523> Emacs does that for other langs too, though, like // this is a C comment over 2 lines \
21:43:07 <ais523> this is also a C comment
21:43:21 <ais523> doesn't highlight the second line
21:43:41 <ais523> out of all the syntax higlighters I've tried, Kate's seems to be best
21:43:46 <ais523> but Emacs has better indentation
21:44:44 <ehird> ais523: the forte constants is:
21:44:49 <ehird> map Integer -> Integer
21:44:55 <ehird> default=[1=>1,2=>2,...]
21:45:00 <ehird> and the key integers never morph
21:45:09 <ais523> all integers can morph
21:45:20 <ais523> but generally it's a stupid idea to change the important ones like 1
21:45:25 <ehird> ais523: so wait, the keys '1' and '2' could morph in that default?
21:45:37 <ehird> default=[2=>2,2=>2,...]?
21:45:46 <ehird> default=[1=>2,2=>2,...]
21:45:53 <ais523> if you think about it like that
21:46:07 <ais523> it may be easier to think of it as map String -> Integer
21:46:16 <ais523> default=["1"=>1,"2"=>2,...]
21:46:23 <ais523> except that that is misleading
21:46:30 <ais523> because every pair of parens triggers an extra conversion
21:46:31 <ehird> my parser will parse the numbers as Integer
21:46:44 <ehird> ais523: does this work
21:47:11 <ais523> yes, according to the spec
21:47:18 <ais523> or at least it would do if you remembered to give the line number
21:47:29 <ehird> ais523: so I relaly need a map of expr->expr
21:47:35 <ehird> because presumably '4' wouldn't result in '5'
21:47:42 <ehird> and what about (2+3)-1?
21:48:04 <ehird> ais523: Okay, what about:
21:48:14 <ehird> 20 PRINT ((2+3)-1)
21:48:31 <ais523> an integer becomes completely unusable once it's been redefined
21:48:31 <ehird> ais523: okay, so EVERY operation has indirection
21:48:33 -!- Sgeo[College] has joined.
21:48:59 <ais523> it becomes quite interesting because once an integer's been redefined, you can never use that integer's original value again
21:49:06 <ehird> ais523: what is forte's (1/0)
21:49:30 <ais523> 1/0 isn't treated sensibly by the interp I came up with
21:49:34 <ais523> probably it's just an error
21:49:47 <ais523> although making it a constant that can be assigned to would probably be more interesting
21:49:56 <ais523> maybe I should add 'nullity' too...
21:50:08 <ehird> ais523: what would my example do
21:50:31 <ais523> whatever dividing by 0 does in Perl
21:50:40 <ais523> probably die with an error
21:52:00 <ais523> it's probably also worth pointing out that the reference interp tends to go into an infinite loop if there are any errors in the original program, because I don't check for them, and likewise the language will infinite loop if no explicit END statement is given
21:52:35 <ais523> also worth mentioning that the line numbers are the only things that effect the order in which lines are run, and yes, they're indirected to
21:53:26 <ais523> so you loop by redefining the numbers of earlier lines to have higher values so they're after the present line...
21:53:27 <ehird> type Program = M.Map Integer Statement
21:53:30 <ehird> :P unsorted programs
21:54:28 <ehird> INPUT. This works like LET, except that the redefinition of the number is taken from the input, not from an expression. The expression gives the number to redefine.
21:54:28 <ehird> GET. This works like INPUT, except that it inputs a character and redefines the number given by the expression to its ASCII code. It inputs 256 on end-of-file.
21:54:37 <ehird> ais523: so INPUT takes a decimal number?
21:54:52 <ais523> I believe it's completely unusable, sort of like gets in C
21:55:11 <ais523> because there's no restriction on what numbers the user can input
21:55:23 <ais523> GET and atoi code are more useful in practice
21:55:31 <ehird> ais523: if i 'LET 3 = 4', then get the input '3', is it redefined as '4'?
21:56:06 <ais523> will set 5 to 4 if the user inputs '3'
21:56:13 <ais523> and I'd remembered to put line numbers in
21:56:27 <ais523> there's no way to use an integer once it's been redefined...
21:57:00 <ehird> ais523: so even LET's lhs has the indirection?
21:58:58 <ehird> putInt :: Integer -> Integer -> Forte ()
21:58:59 <ehird> putInt a b = update (\m -> M.alter (\_ -> b) a m)
21:59:06 <ehird> ais523: what about
21:59:36 <ehird> ais523: so i need to iterate my finding
22:01:18 <ais523> BTW, looking at the interp working can be quite interesting
22:01:35 <ais523> if you change all occurrences of 'next' to 'next and print' you'll be able to see what it's doing
22:02:18 <ehird> ais523: welp i have getInt/putInt written
22:02:49 <ehird> ais523: gosh, the main loop will be hard
22:16:52 -!- ais523 has quit ("going home").
22:21:28 <Slereah> Shit. For some reason, input doesn't work anymore.
22:21:39 <Sgeo[College]> SlereahShit. For some reason, input doesn't work anymore.
22:22:05 <Slereah> Yes, but not on the lazy bird!
22:22:48 <Slereah> UnboundLocalError: local variable 'c' referenced before assignment
22:24:46 <ehird> Sgeo[College]: HMM LET'S THINJK
22:24:51 <ehird> OH COULD IT BE AN ESOLANG??
22:24:54 <ehird> WEIRD IDEA. TOTALLY.
22:27:32 -!- Sgeo[College] has quit ("http://www.mibbit.com ajax IRC Client").
22:28:51 <ehird> write the shortest C program that interprets a turing complete language.
22:29:53 <ehird> Slereah: Hardly; a brainfuck interp would be shorter.
22:30:16 <Slereah> Well, a bitchanger would be even shorter :o
22:30:50 <Slereah> I never tried to make an OISC interpreter, but it doesn't seem bigger than BF to implement
22:32:04 <ehird> oh btw -- doesn't have to be valid ansi
22:32:08 <ehird> it can be broken k&r if you want
22:32:10 <ehird> as long as it compiles
22:32:46 <ehird> oh; and it can be non-turing-complete due to e.g. integer/array limits
22:32:57 <Slereah> It would be hard otherwise!
22:33:02 <ehird> but if a platform had infinite arrays and ints; if the program was TC; then it's ok
22:33:06 <ehird> Slereah: well, no. realloc()
22:36:34 <ehird> l(i){R i=getc()?i?getc()+l(i);}
22:36:42 <ehird> faxathisia: are you that evil?!
22:39:01 <ehird> faxathisia: well, its tweaked a bit now
22:39:03 <ehird> current semantics:
22:39:08 <ehird> it reads a character
22:39:25 <ehird> then it reads one character, subtracts one from it, and adds it to (RECURSE)
22:39:31 <ehird> it returns the character minus one
22:39:53 <ehird> faxathisia: basically, it lets me read in trivially as chars (i.e. no bounded buffers) but get anything that can fit into an int
22:40:13 <ehird> is (2-1)+(2-1)+(2-1)
22:40:55 <ehird> the language is called 'onest'
22:44:21 <ehird> l(i){R i=getchar()?i-1:getchar()-1+l(i);}main(a){R l(a);}
22:44:36 <ehird> faxathisia: it doesn't run anything yet.
22:44:41 <faxathisia> I think I will be beater but trying anyway
22:44:49 <ehird> % ./onest < 3.1st; echo $?
22:44:52 <ehird> talk about off-by-one errors..
22:50:45 <ehird> take a look at my official reading routine :P
22:50:46 <ehird> l(i){R(i=getchar())?i-1:getchar()-1+l(i);}
22:51:15 <ehird> let me expand that:
22:51:49 <ehird> l(i){i = getchar(); if (i) { return (i-1); } else { i2 = getchar(); return (i2-1)+l(i); } }
22:51:51 <oerjan> ehird: for your main loop: findMinWithKey . snd . split currentLineNo $ currentProgram
22:51:56 <ehird> faxathisia: basically, the i perameter is ignored
22:52:10 <ehird> faxathisia: it is just so we can assign to an integer variable (params default to int, remember?) without a declaration
22:52:18 <ehird> and we do l(i) to pass along an int to assign to, etc
22:52:26 <ehird> main() calls l with argc, which is good enough, since it's ignored
22:52:58 <ehird> faxathisia: and i believe main() will be recursive
22:53:21 * faxathisia boots with main(g,v){l(g,1[(char**)v]);} instead
22:53:31 <ehird> that is pretty hardcore
22:53:39 <ehird> but ... why are you casting?
22:53:45 <ehird> that's just a warning!
22:53:59 <ehird> 1[v] should work hunky dory, i think
22:54:08 <oerjan> that is: fmap fst (minViewWithKey . snd . split currentLineNo $ currentProgram). i think.
22:54:32 <ehird> faxathisia: all my functions take an implicit integer parameter to assign to
22:54:41 <ehird> my execution function starts: e(i){i=l(i);...
22:54:54 <ehird> main(g,6 --- quit: timotiis ("leaving")
00:51:13 -!- Sgeo has joined.
00:52:11 -!- Tritonio_ has joined.
00:55:30 <Sgeo> Notice to anyone who's been using Domain 0x08: Spec changes coming soon!
00:56:17 <Sgeo> This will affect anyone using Net::makeserversocket, Net::urlget and Net::urlpost
00:56:24 <Sgeo> Thank you for your cooperation
01:01:18 -!- ehird has quit ("Leaving").
01:06:48 -!- uvanta has quit ("php you!").
01:06:51 -!- pikhq has quit ("Going down for new kernel.").
01:07:11 -!- ehird has joined.
01:19:21 <Sgeo> Anyone like the idea of BF-CHAT? A chat protocol for servers and clients written in BF?
01:21:55 <Slereah> It is a repetition of hello.
01:22:36 <Sgeo> "re" instead of "wb" when someone reconnects from a disconnect
01:23:43 <Tritonio_> it's just that "re" is a greek word that doesn't mean anything special but fits nicely when beggining a message like "re ehird". :-)
01:29:34 <ehird> Sgeo: nobody likes that idea, by the way.
01:29:46 <ehird> it's pointless. and not interesting.
01:29:55 <ehird> let's put it this way: in which way is it interesting?
01:30:20 * Sgeo shrugs. It would be a chat protocol that non-geeky people really wouldn't use
01:30:28 <Sgeo> And it's a cool PSOX demo
01:30:45 <ehird> it would be a chat protocol that NOBODY would really use!!
01:30:53 <ehird> and i'm pretty sure #esoteric has only geeks.
01:31:07 <ehird> and it's not a cool PSOX demo beacuse it just represents more of the same psox crap
01:31:13 <Sgeo> Anyone want to write an IRCd in BF?
01:31:30 <ehird> no!! you take our criticisms far too specifically!
01:31:35 <ehird> it's not the details, it's the ROOT IDEA
01:31:41 <ehird> it's POINTLESS, and it's just NOT INTERESTING
01:31:59 <Sgeo> ehird, so you're abandoning SOXP? What about a GUI domain?
01:32:28 <ehird> SOXP is not a main project. I may code some relatively interesting bits
01:32:35 <ehird> instead of writing a bloody ircd
01:33:08 <Sgeo> What about writing a GUI domain for PSOX?
01:34:21 <ehird> and, mildly interesting
01:36:42 <Sgeo> You know, if SOXP has a compatibility layer for PSOX domains, you could write it for PSOX and it will work with both..\
01:37:55 <ehird> why would i want to write that?
01:38:19 <Sgeo> Finished product sooner that would also work with newer technology?
01:38:20 -!- faxathisia has quit ("If there are any aliens, time travellers or espers here, come join me!").
01:42:24 <Sgeo> Net::socket is going to return a success byte, btw
01:44:21 <Tritonio_> well i still have no idea how psox works. i am reading the documentation now
01:45:12 <Tritonio_> but it's to late. and in 7 hours i must be sitting on a chair taking a test in computer architecture. (sleep included)
01:46:20 <Sgeo> G'night Tritonio_
01:55:42 -!- pikhq has joined.
01:58:14 -!- ehird has quit ("This computer has gone to sleep").
02:09:18 -!- puzzlet has joined.
02:09:39 -!- puzzlet_ has quit (Remote closed the connection).
02:15:36 <Slereah> I just noticed what's wrong with my IO
02:16:15 <Slereah> Well, the input converts to church numerals
02:16:28 <Slereah> But the program makes an invalid expression.
02:42:46 <Sgeo> http://trac2.assembla.com/psox/changeset/88
02:49:32 <Sgeo> Slereah, pikhq?
02:50:16 <Sgeo> Comments on what I just posted?
02:50:20 -!- GreaseMonkey has joined.
02:50:34 <Slereah> I bet that if I had 3D glasses, it would be awesome.
02:50:49 <Sgeo> Hi GreaseMonkey
02:51:29 <Sgeo> GreaseMonkey, comments on http://trac2.assembla.com/psox/changeset/88 ?
02:53:17 <Sgeo> svn co http://svn2.assembla.com/svn/psox/trunk
02:53:25 <Sgeo> GreaseMonkey, Python decorators
02:53:55 <Sgeo> I think 2.4, not sure though..
03:05:45 <Sgeo> Does PSOX need SSL support/
03:07:09 <pikhq> No, let some Brainfuck coder implement SSL.
03:09:20 <Sgeo> Is that even possible over ordinary sockets?
03:11:08 <Sgeo> pikhq, what do you think of my spec changes?
03:12:16 <pikhq> Sgeo: No thoughts ATM.
03:12:34 <pikhq> My weekends are much more likely to be used for PSOX.
03:13:35 <Sgeo> Also, I'm thinking that the file I/O domain should contain a mkdir&cd function..
03:14:06 <Sgeo> I mean a combined function
03:14:25 <Sgeo> Maybe a cd function with an option to make the directory if it doesn't already exist
03:17:40 * GreaseMonkey thinks we should implement this... http://catseye.tc/projects/didigm/doc/didigm.html
03:53:20 * Sgeo makes another commit
03:54:17 <Sgeo> and another with the fix for online.b
04:02:12 -!- Corun has quit ("This computer has gone to sleep").
04:17:11 <Sgeo> pikhq, what's the story with PEBBLE2?
04:18:02 <pikhq> Except that I'm struggling to get myself to do much of anything.
04:18:13 <Sgeo> Maybe in a month?
04:18:45 <Sgeo> I have taken month long hiatuses wrt PSOX
04:18:55 <pikhq> It's kinda depressing, though. . .
04:19:04 <pikhq> PEBBLE1 had functioning code within 24 hours.
04:19:11 <pikhq> Not the greatest, but it worked.
04:24:54 <Sgeo> I wish I had that sort of productivity
04:25:12 <Sgeo> Which is more complex, PEBBLE1 or PSOX?
04:31:54 <pikhq> My *initial* implementation of PEBBLE was a hell of a lot simpler than PSOX. . .
04:32:15 <pikhq> I dunno; I'd say it's a bit more complex than PSOX.
04:33:20 * Sgeo feels lame for taking so long to get out a working implementationm
04:33:29 <Sgeo> Also, I'm afraid I might never overhaul PSOX.py
04:33:34 <pikhq> Don't; I spent ages on my PEBBLE1 rewrite.
04:33:46 <pikhq> Which is quite complex. ;)
04:36:03 * Sgeo wonders what sort of things would go into PSOX 1.1
04:36:11 <Sgeo> Exceptions would be cool
05:34:17 -!- immibis has joined.
05:39:49 <Sgeo> I made a change to the domain 0x08 specs
05:40:11 <Sgeo> http://trac2.assembla.com/psox/changeset/88
05:40:21 <Sgeo> http://trac2.assembla.com/psox/changeset/88#file1
05:43:41 <Sgeo> immibis, thoughts?
05:50:57 <immibis> i see...it's a diff...but what good is it to me
05:53:36 <immibis> although if i were you i wouldn't change function numbers like that -- it breaks compatibility
05:56:06 <Sgeo> Well, there's not much current content out there
05:56:15 <Sgeo> >.> But I guess in general it's a bad idea
05:59:58 -!- oerjan has quit ("leaving").
06:11:23 -!- olsner has joined.
06:21:18 -!- cherez has quit (Read error: 110 (Connection timed out)).
06:29:32 -!- cherez has joined.
06:46:41 -!- olsner has quit.
06:47:34 -!- olsner has joined.
07:18:35 -!- Sgeo has quit (Read error: 110 (Connection timed out)).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:18:25 -!- immibis has quit ("NickServ (GHOST'ed by gravisan").
08:53:32 -!- GreaseMonkey has quit ("Read error: 110 (Connection chickened out)").
12:01:31 -!- Corun has joined.
12:13:04 -!- timotiis has joined.
12:25:58 -!- Corun has quit ("This computer has gone to sleep").
12:46:09 -!- Tritonio_ has quit (Remote closed the connection).
14:07:18 -!- timotiis has quit ("leaving").
16:49:01 -!- ais523 has joined.
17:03:36 -!- uvanta has joined.
17:08:30 -!- ehird has joined.
17:41:25 <ehird> Prove me wrong. In ternary.
17:42:13 <Slereah> 3 and 4 do not exist in ternary
17:44:26 -!- Sgeo has joined.
17:44:41 <ehird> No, prove that in its decimal form wrong; using ternary
17:46:08 <Sgeo> I think I'll have a mkdir fucntion with optional cd, as opposed to a cd function with optional mkdir..
17:46:49 <Slereah> How do I do addition with ternary symbols.
17:47:43 <Sgeo> Slereah, ehird, any comment on what I just said?
17:49:39 <Slereah> Has anyone heard of Linux? Itβs a new kind of Windows, but itβs free. Iβve read up on it, and it seems that itβs created and supported by ultra-liberals. Its creator, Richard Stallman, is even a satanist.
17:49:39 <Slereah> They call themselves βhackersβ, and their aim is to destroy every big company, everything that is conservative. I canβt tolerate this sort of persecution. The LORD himself was a conservative and he was nailed to a tree for it. It wonβt be long before all of us are crucified too if Linux succeeds.
17:50:37 <ehird> Slereah: I wonder how many people took that seriously?
17:50:44 <ehird> Sgeo: why not two functions
17:50:49 <ehird> GOSH IT'S SO OBVIOuS (!!)
17:50:50 <Sgeo> Slereah, where's this?
17:51:01 <Sgeo> ehird, what use is there for a CD that might error?
17:51:13 <Sgeo> I think it's more useful as a combined function
17:51:18 <ehird> Sgeo: Ask all the people who wrote sane shells.
17:51:35 <ehird> You don't know how basic filesystem operations would work; they know more about that kind of stuff than you (as a rule of thumb for any programming by anyone)
17:51:42 <ehird> Slereah: ah, that's bad ... i think it's satire
17:51:57 <Slereah> It's always hard to see where the trolls are
17:52:35 <ehird> trolling != satire
17:56:16 <Sgeo> ehird, what use is there for bf to be calling a cd command?
17:56:47 <Sgeo> I'd think that a BF program would want to attempt to switch to a directory, and make it if it doesn't exist
17:58:00 <Sgeo> Also, are most BF interps wrapping? If not, how does one do if(cell==5) for example without wrapping?
17:59:00 <oklopol> not wrapping as in "crashes if you go below zero?"
17:59:13 <oklopol> or not wrapping as in doesn't wrap
17:59:26 <oklopol> in the latter case, no different from a wrapping solution
18:00:11 <ehird> Sgeo knows nearly nothing about what real-world program do, or what most brainfuck interpreters do, or how to write tons of algorithms in it, yet he advertises PSOX as the way to write 'real programs' in brainfuck.
18:00:15 <Sgeo> oklopol, how could it be no different?
18:00:53 <Slereah> That never stopped me from coding shit
18:01:20 <oklopol> Sgeo: it just isn't any different, too trivial to explain
18:02:04 <Sgeo> That doesn't distinguish between 5 and 4 in nonwrapping, afaict
18:02:11 <ehird> Slereah: It stopped you from coding something which is intended to be used to write large Brainfuck programs, though,
18:02:34 <ehird> Sgeo: always check for larger numbers before smaller
18:02:47 * ehird is incredibly sad of how ignorant Sgeo is of brainfuck algorithms
18:03:20 <Slereah> It didn't stop me. What stopped me is the fact that I don't want to :o
18:04:04 <Sgeo> For GUI BF applications, which would be better: A lot of ifs in a loop, or the program checking one element, then another, etc?
18:04:12 <Sgeo> I'm thinking the first option
18:04:42 <ehird> Sgeo: i suggest you work out how to code in brainfuck first.
18:04:48 <oklopol> Sgeo: my opinion is you should explain why it does not distinguish between 4 and 5
18:05:42 <Sgeo> oklopol, um, wouldn't nonwrapping noncrash mean that ----- when it was at 4 make it zero, or am I misunderstanding "nonwrapping noncrash"?
18:06:28 <oklopol> making - a nop if the current cell is zero would essentially be the same as crashing
18:06:49 <ehird> oklopol: and besides, if you check higher numbers before smaller, you have no problem
18:06:52 <Sgeo> So by nonwrapping you meant it goes negative?
18:07:28 <Sgeo> What happens when you . a negative?
18:07:31 <ais523> oklopol: saturating on decrement at 0 is reasonably sensible behaviour
18:07:37 <ais523> it makes less-than really easy to write
18:08:20 <oklopol> Sgeo: everything is implementation defined
18:08:45 <Sgeo> How many implementations crash on negative, and on those, how would you do if(cell==5)?
18:08:45 <ehird> speaking of which, there's no active esolang standards comitte
18:09:01 <ehird> as soon as we come up with a good acronym, let's start one!
18:09:15 <ehird> Sgeo: those are not brainfuck.
18:09:18 <ehird> ais523: but of course
18:09:37 <oklopol> Sgeo: i used to use this thing called Blue Fern, killed my brainfuck interp in brainfuck with its "crash on decrement zero"
18:09:39 <ehird> i would even go to say that just 'brainfuck' is 30,000+ cell, 8-bit, wrapping brainfuck
18:09:40 <ais523> Esoteric Standards Organisation would be ESO, which is nicely self-referential
18:09:57 <ehird> ais523: let's add TERIC to that
18:10:22 <Sgeo> So it's easy enough to do IFs?
18:10:37 <Sgeo> Should I go with the first option I mentioned, or the second?
18:10:38 <ehird> Esoteric Standards Organization: Tier-based Evil Recursive Induction (Crap)
18:10:51 <Slereah> Let's work on the Brainfuck Standard Eso 0001
18:11:07 <Slereah> I don't have a tie, so I'll use a bandana.
18:11:07 <ais523> EOF will be the major problem
18:11:16 <ais523> no matter what we decide on someone will be disappointed
18:11:18 <ehird> ais523: haha, if we use ESOTERIC we can't have our own channel
18:15:08 <oklopol> we should make something like projecteuler.net for esolangs
18:21:52 -!- otesanek has joined.
18:33:55 -!- otesanek has left (?).
18:38:25 <Sgeo> Just to be sure, BF programs can print 0xFF?
18:39:04 <Slereah> Isn't it a blank character anyway?
18:39:16 <ais523> yes, they can, generally speaking
18:42:57 * Sgeo goes to make some optimizations to the BF interp
18:43:17 <Sgeo> Should make importing domains MUCH faster
18:43:30 <Sgeo> At the expense of a tiny bit of ugliness
18:46:57 <Sgeo> Just replacing FNUM(1) with FNUM1
19:11:52 -!- wildhalcyon has joined.
19:12:18 <Sgeo> <xif> Sgeo: younger programmers might get the wrong idea, watching you take it seriously.
19:12:21 <Sgeo> Hi wildhalcyon
19:12:57 <ehird> you make brainfuck sound useful
19:13:05 <ehird> or even interesting beyond the initial 'hey, that's awesome'
19:13:06 -!- Slereah has changed nick to slereah_.
19:13:11 <ehird> the last interesting program was mandelbrot.b or life.b
19:13:20 <slereah_> Brainfuck isn't about usefulness.
19:13:23 <ehird> lostkng.b was pretty cool, but not that much (it's a good stress test)
19:13:49 <wildhalcyon> brainfuck is not useful. Interesting or fun, perhaps, but not useful.
19:13:57 <slereah_> It's about having a short TC language to make interpreters out of.
19:13:59 <ehird> wildhalcyon: sgeo is trying to make it useful
19:14:14 <ehird> because ooh, aah, you can write a web page or an irc bot in BRAINFUCK! ooh, aah
19:14:20 <slereah_> "Like gluing auto parts on a skateboard"
19:14:28 -!- BrainF has joined.
19:14:28 <BrainF> Hi all. This client is written in Brainfuck (albeit written with a generator), believe it or not. It uses PSOX. You can get information about PSOX at http://esolangs.org/wiki/PSOX .
19:14:28 -!- BrainF has quit (Client Quit).
19:14:35 <ehird> slereah_: Exactly! daniel has it right.
19:14:47 <ehird> Sgeo: wow, great way to prove my point
19:14:58 <slereah_> HOLY SHIT, THE BRAINFUCK, IT TALKS!
19:15:09 <wildhalcyon> Just because it CAN do something doesn't mean it should...
19:15:34 <oklopol> Sgeo: thinking about extending that?
19:16:26 -!- slereah_ has changed nick to Slereah.
19:17:18 <oklopol> want me to define 'extend'?
19:17:39 <oklopol> i meant, make it actually do something
19:17:57 <Sgeo> I'm not skilled enough in BF for that
19:18:31 <oklopol> you don't learn if you don't try
19:18:39 <oklopol> anyway, i'll be doing some going now ->
19:20:10 <wildhalcyon> Has anyone here worked with the befunge-98 fingerprints?
19:20:36 <ais523> I've run funge-98 code that uses them, but didn't write the source code
19:20:43 <ais523> or take more than a passing glance to see what it was doing
19:22:38 <Sgeo> wildhalcyon, PSOX has a somewhat similar idea
19:23:25 <Sgeo> erm, actually, not really, something more analygous to handprints is there, but not fingerprints I think
19:23:35 <wildhalcyon> Yeah, but its not embedded into the language. Its only available for I/O.
19:26:08 <wildhalcyon> Yeah, the handprint thing is nice for befunge
19:28:01 <Sgeo> ehird, ais523: re the discussion in ESO: One thing that would make it incompatible with everything currently existing would be that you do ,, per char, the first one is 0x00 if there is an EOF, 0x01 otherwise, the next one is the char, or 0x00 if there was EOF
19:29:12 <ehird> Sgeo: that's psox semantics.
19:29:37 <Sgeo> It's unambiguous
19:29:55 <Sgeo> ofc, you probably couldn't call it BF then..
19:32:26 <ais523> the more ambiguity the better
19:49:18 <Slereah> Esoteric Standards Organisation.
19:53:45 <ehird> wildhalcyon: 'ouch'?
19:54:05 <ais523> brainfuck, at least, needs standardisation so we can finally get rid of that EOF problem
19:54:07 <Sgeo> What GUI thingy should I use for a PSOX GUI domain?
19:54:10 <ehird> wildhalcyon: That is totally the point!
19:54:22 <ais523> and IMO we need a base INTERCAL standard to deal with the proliferation of various features since INTERCAL-72
19:54:23 <Sgeo> There is no EOF problem for BF programs using PSOX
19:54:24 <ehird> We are even going to have a domain, with email addresses using full names.
19:54:32 <ehird> and write it using XML, with xml2rfc
19:54:37 <ais523> sort of like C, which had a de facto standard for a while and was finally cleaned up
19:56:21 <wildhalcyon> C was in serious danger of losing its personality and devolving into a horrible mish-mash of parts and pieces.
19:56:28 <wildhalcyon> .. which is what happened in the end anyways
19:57:09 <Slereah> I don't fear much for Brainfuck becoming a mish mash.
19:57:24 <Slereah> Even PSOX will not soil its purity!
19:57:27 <ais523> stupid Windows... I insert a USB stick, it spends ages doing something or other before it recognises it, then pops up a balloon saying how clever it's being installing drivers, then /while it's doing that/ I save my file to the USB stick, and then after that it tells me I need to restart my computer to be able to use the USB stick
19:57:56 <ehird> wildhalcyon: #ESO -- come and make sure we don't do something evil? :P
19:58:50 <wildhalcyon> ehird, I will only come to help you do something evil
19:59:29 <wildhalcyon> ais, I'm afraid windows is a rather... dimwitted individual
19:59:59 <wildhalcyon> If it was smart, it would either recognize that it doesn't need to install anything, or it wouldn't let you touch it until it finished installing
20:00:09 <ais523> wildhalcyon: I'm aware, the reason I'd plugged in the USB stick was to transfer files to my Linux laptop
20:04:55 <ehird> ais523: I had Forte's idea for years before I even heard of esolangs
20:05:02 <ehird> I just wondered what would happen if you could assign numbers to other ones
20:05:21 <ais523> some Fortran interps could do that, but didn't take it to its logical conclusion
20:05:36 <ehird> i think it might be one of those things that everyone thinks of
20:05:37 <ais523> of course, BANCStar also allows that, for twisted reasons of its own
20:05:43 <ehird> like the 'what if everyone else sees colours different from anyone else?'
20:05:45 <ais523> and it isn't even an esolang, technically speaking
20:05:49 <ehird> i have not met one person who didn't use to think that
20:13:39 <ehird> wildhalcyon: Bahrn it.
20:24:20 <wildhalcyon> So, even though I don't have anything hard to show for it, I've come up with a name for my project
20:28:07 <ais523> wildhalcyon: what is it?
20:29:17 <Slereah> They're hard to come up with.
20:29:29 <ais523> I have names for most of my esolangs
20:29:31 <Slereah> Even I don't call it by that name.
20:29:50 <ais523> but I have a strange aversion to using them in public before the lang is 'officially' released
20:30:02 <ais523> and just talk about 'my uncomputable Prolog-like language' or whatever
20:30:29 * Slereah launches a Prolog program in a Hogart space time
20:30:32 <ais523> the name sounds like it's a neural-network operating system
20:30:48 <wildhalcyon> but its not a neural network in the strict sense
20:30:55 * ais523 would like to see that
20:31:15 <wildhalcyon> so its networked LIKE neurons... sort.. of...
20:32:08 <wildhalcyon> and I too would like to see a neural network operating system
20:41:18 <Slereah> http://www.esolangs.org/wiki/Text
20:42:50 <ehird> Slereah: that's not 2d
20:43:24 <Slereah> Nah. It's just the last article
20:59:32 <wildhalcyon> I would debate whether the authorship of that language was correct
21:00:19 <Slereah> Now, my 2,3 machine display random characters instead of three!
21:01:09 <ais523> one of my favourite quines (a UNIX executable):
21:01:14 <wildhalcyon> Alright, I gotta head out. Good luck in your endeavours
21:01:41 -!- wildhalcyon has quit ("ChatZilla 0.9.81 [Firefox 2.0.0.11/2007112718]").
21:06:42 <Sgeo> I don't know how ls listings should be expressed in PSOX :/
21:23:37 <Sgeo> How would Taxi work with PSOX? Reading in involves reading a line..
21:26:38 <Sgeo> I guess I could provide a loopback function..
21:39:59 <ehird> <EVERYONE>: If any of you have a gripe with the name 'eso-std.org' or a suggestion for a better one, PLEASE INFORM ME
21:40:39 <ehird> er, CLARIFICATION: the domain name eso-std.org, not the org name (Esoteric Standards Organization)
21:43:42 <ehird> ais523: oklopol: Slereah: Sgeo: <ALL>: LAST RFC ON THE DOMAIN NAME...
21:43:51 <Sgeo> eso-disease.org?
21:45:25 <ehird> Sgeo: do you have any objections or suggestions for a better name than eso-std.org?
21:45:41 <Sgeo> other than maybe eso-standard.org not really
21:45:48 * Sgeo is ok with eso-std.org
21:45:56 <ais523> std seems better, like open-std.org
21:46:02 <ais523> (can't remember whether that has a hyphen or not)
21:46:15 <ehird> eso-standard.org looks kinda ugly
21:46:34 * Sgeo agrees with ehird
21:51:39 <ehird> ais523: should we use a more general name for eso-std.org?
21:51:44 <ehird> since it will house non-standard-related things too
21:52:10 <ais523> that's an interesting point
21:52:24 <ais523> I'd kind of prefer to have it like the w3c, which also hosts validators, etc.
21:52:31 <ais523> but is a standards org really
21:52:45 <ehird> ais523: well, it also has repos
21:52:46 <ais523> after all, reference interps are part of the standardisation process
21:52:48 <ehird> and implementation's sites
21:52:57 <ehird> ais523: yes, but e.g. the underload compiler will be there
21:52:59 <ehird> and that won't be official
21:53:21 <ais523> it's not really official, more an informative annex
21:53:26 <ais523> which aids understanding of the standard
21:53:33 <ais523> i.e. "How this language can be compiled"
21:53:47 <ehird> ais523: yes, but there will be stuff totally unrelated to standards there too
21:58:57 <Sgeo> We will spend more on hospitals!
21:58:57 <Sgeo> We will jail anyone not in jail already!
21:58:57 <Sgeo> We will spend billions limiting immigration!
21:58:57 <Sgeo> We will deport anyone we can deport!
21:58:57 <Sgeo> We will abolish schools!
21:59:35 <Sgeo> http://web.archive.org/web/20051218132142/http://chimpen.com/tory/
22:04:44 <olsner> it's just brainfuck though
22:05:29 <Slereah> Then again, what isn't in esolangs.
22:06:10 * ais523 is upset that so many thematic languages are based on BF, because many of them look quite interesting
22:06:26 <Sgeo> How is Tory BF?
22:06:39 <ehird> Sgeo: read the spec
22:06:39 <Slereah> Sgeo: http://web.archive.org/web/20060620231104/chimpen.com/tory/tory-spec.html
22:06:39 <ais523> all its commands are the same, if you read the spec
22:06:43 <ais523> just with different names
22:06:58 <Sgeo> Oh, it's BF but doesn't acutally say so?
22:07:07 <Slereah> Read, write, forward, backward, increment, decrement, if and end if
22:07:22 <ais523> while and end while, I think
22:07:31 <ais523> so exactly , . > < + - [ ]
22:09:27 <Sgeo> I wonder what non-BF equivelents can be compiled to BF
22:10:13 <ais523> anything computable with one input stream and one output stream that can arbitrarily affect and be arbitrarily affected by the program
22:10:27 <ais523> that's the nature of TCness
22:10:44 <ais523> (well, add in the requirement for I/O and you get what is often called "Brainfuck-complete" by esolangers)
22:10:49 <olsner> tory does have increment-by-n though, so I guess it's rather a BF dialect
22:10:55 <Sgeo> How easy/difficult would it be to do so?
22:10:59 <Slereah> Sometime it's hard to add IO!
22:11:17 <Sgeo> olsner, only to the extend BF-RLE is a dialect
22:11:21 <Slereah> It's mostly about how close the concepts are.
22:12:03 <Slereah> Well, at least that's how I feel it.
22:14:27 <ehird> Closing bits, at eso-std.org ... (last chance)
22:15:07 <Sgeo> ehird, ask on Sine?
22:18:18 <ehird> Slereah: Sgeo: no objections?
22:18:28 <Slereah> Not anymore than last time.
22:18:28 <Sgeo> ehird, you didn't ask on Sine..
22:18:31 <Sgeo> I have no objections
22:18:40 <ehird> Sgeo: eh, little point to ask on sine
22:18:51 <ehird> olsner: random person -- you?
22:20:34 <ehird> OK -- registering it.
22:21:00 <Slereah> Wait, now I have a million and one objection!
22:21:10 <ehird> Too late. Doing it now. :P
22:21:38 <ehird> Slereah: any real objections?
22:21:44 <ais523> Slereah: You misspellt Noooooooooooo
22:29:09 <Sgeo> whois.sc/eso-std.org
22:29:22 <ehird> i'm registering it
22:29:30 <ais523> Sgeo: don't hit a whois, some people will try to register a website first if you do
22:30:16 <ais523> of course, ehird had already put the request in, so is likely to get it first unless the registrar is really slow about it
22:30:17 <Sgeo> But didn't you register it?
22:30:27 <ais523> and not every whois site has domain parkers watching
22:30:30 <ehird> the registrar's ordering system is loading slowly
22:30:36 <ehird> so no the request might not be in yet.
22:31:00 <Sgeo> ais523, does whois.sc ?
22:31:07 <Sgeo> whois.domaintools.com ?
22:33:40 <olsner> ehird: random person -- me?
22:34:13 -!- ais523 has quit ("while this is all very exciting, it doesn't prevent me needing to go home. I'll see what happened tomorrow or maybe the day a).
22:41:02 -!- GregorR has changed nick to _D6Gregor1RFeZi.
22:41:08 <Sgeo> _D6Gregor1RFeZi, what?
22:57:33 -!- Tritonio_ has joined.
23:12:28 <ehird> eso-std.org is myerierineirnernierniernierne!!!
23:14:00 -!- sebbu has quit (kornbluth.freenode.net irc.freenode.net).
23:14:12 <Sgeo> What would be the best GUI toolkit for PSOX?
23:15:07 -!- sebbu has joined.
23:21:07 <ehird> can you try eso-std.org to see if it starts loading sometime?
23:24:18 <Slereah> I'm too ashamed to reveal that I don't know how to do it.
23:25:42 <ehird> 'ping eso-std.org'
23:28:25 -!- Tritonio_ has quit (Remote closed the connection).
23:50:59 -!- cherez has quit ("Leaving.").
23:52:59 -!- cherez has joined.
23:53:35 -!- cherez has quit (Client Quit).
23:53:36 -!- cherez has joined.
00:10:02 <ehird> Slereah: wot it display??!
00:10:30 <Slereah> A bunch of folders, but I assume that's normal.
00:16:49 <Slereah> I had sex with Alan Turing.
00:18:52 <Slereah> It will take more than shame to make me drop it!
00:20:33 <ehird> _D6Gregor1RFeZi: Esoteric standards, actually.
00:21:08 <Slereah> What will be the appropriate sentence for breaking the standards?
00:21:34 <Slereah> I feel it should involve Malbolge somehow.
00:39:20 <ehird> and supplying a better interp
00:39:26 <Slereah> I've got this strange attraction to try scheme instead of Haskell.
00:39:41 <ehird> Scheme doesn't have monads, for one.
00:39:47 <ehird> For another, it's not *purely* functional.
00:39:53 <ehird> For another, it's not actually as pretty.
00:39:58 <ehird> Slereah: Not if you want to make Lazy Bird work.
00:40:04 <_D6Gregor1RFeZi> The sentence for breaking standards should be an ice cream cake and a pat on the back.
00:40:11 <Slereah> I'm totally cool with side effects, dude.
00:40:11 <ehird> And besides, Scheme isn't very nice for writing real apps.
00:40:27 <ehird> Slereah: You're not -- monads are the only way to solve IO in a purely lazy language like Lazy Bird.
00:40:54 <Slereah> What does Scheme use though?
00:41:07 <ehird> Slereah: Scheme isn't lazy.
00:41:13 <ehird> Scheme is eagerly-evaluated.
00:41:18 <ehird> And it's not a functional language.
00:41:24 <ehird> It has many functional features, but inside it's still imperative.
00:41:30 <ehird> You can mutate just about everything.
00:41:38 <Slereah> I thought it was, with Lazy K written in it.
00:41:48 <ehird> The lazy evaluation is coded by hand; there.
00:44:22 <lament> haskell is nice for writing real apps?
00:44:39 <lament> in my (very limited) experience, monads turn everything into an ugly mess.
00:45:06 <Slereah> YOU TOLD ME IT WAS ALL BIKERIDES AND SUNSET!
00:46:31 <ehird> Slereah: lament is just stupid; no bother!
00:47:07 <lament> you get a big, ugly looking stack of monad transformers and have to constantly lift stuff
00:47:17 <lament> and when you need to add a new monad to the stack, oh, you're so screwed.
00:47:30 <ehird> i've never encountered that
00:47:35 <lament> which part of that is not true?
00:47:35 <ehird> you just write crappy haskell! :P
00:47:41 <ehird> the part where you complained
00:48:33 <lament> big, ugly looking stack - unavoidable
00:48:33 <lament> constantly lifting stuff - unavoidable
00:48:52 <lament> screwed when you need to add a new monad - unavoidable. Unless you shove all monads into the stack in the beginning, just to be safe!
00:49:11 <ehird> lament: very avoidable
00:49:18 <ehird> Your code is just ugly. :|
00:49:26 <ehird> lament: all of it. it's just a matter of design.
00:49:26 <lament> which part is avoidable?
00:49:49 <lament> have you seen the picture of the monad stack for lambdabot?
00:49:59 <ehird> lament: lambdabot code isn't ugly.
00:51:49 <lament> newtype LB a = LB { runLB :: ReaderT (IRCRState,IORef IRCRWState) IO a } deriving (Monad,Functor,MonadIO)
00:52:05 <lament> i suppose that's not so bad.
00:52:48 <ehird> lament: that may look ugly, but the ACTUAL CODE that makes up lambdabot is not
00:52:55 <ehird> and there's no huge-stacks-of-lift
00:53:08 <ehird> besides, I count one transformer there.
00:53:17 <lament> yes, there were definitely more :)
00:54:06 <ehird> lament: ergo, lambdabot code used to be bad
00:54:08 <ehird> which was why it looked that way
00:54:15 <ehird> but, once rewritten properly, it is fine
00:54:28 <lament> no, i mean there're more transformers there somewhere
00:54:48 <lament> but the part about me writing crappy haskell is definitely true.
00:54:59 <lament> it's hard, since there's no guides on writing good haskell!
00:55:59 -!- pjoter has joined.
00:56:00 <ehird> lament: it's called #haskell!
00:56:06 <ehird> & a functional mind, represented as a monad
00:56:25 <ehird> type Mind = ReaderT (RState,IORef RWState) IO
00:56:49 <pjoter> hey thats not about programming machines is it!??
00:57:12 <pjoter> i'm into the quest for ultimate wisdom darn it!
00:57:52 <ehird> pjoter: your (presumably pseudoscientific) nonsense is that way ---->
00:58:13 <pjoter> cmon make this a spiritual channel NOW!
00:58:17 <Slereah> From here, that arrows points to Sgeo. Though when I press enter, it will point...
00:58:33 <pjoter> ok lets talk about machines
00:58:39 <ehird> pjoter: no, personally i think spiritual crap is just that
00:58:52 <ehird> others here may disagree though there seems to be a general scientific, agnostic/atheist bend around here
00:59:09 <lament> ommmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm
00:59:26 <ehird> pjoter: science works pretty well for me, you could try it.
00:59:34 <ehird> (but no, it's far too much work trying to actually understand things, I assume)
00:59:41 <pjoter> are you so sure arrogant son of a ape?
01:00:02 <ehird> Well, you seem to accept evolution. It's a start!
01:00:15 <pjoter> i was referring to your dad
01:00:21 <pjoter> lol j/k i like machines too ;)
01:00:22 <Slereah> Nah, ehird is probably quite mild.
01:00:32 <pjoter> i want some spiritual channel, where will i find it?
01:00:44 <Slereah> Aren't we spiritual and shit?
01:00:50 <pjoter> the problem with the world is we know nothing isnt it?
01:01:00 <ehird> pjoter: freenode is not the place.
01:01:01 <Slereah> We were talking about the programming language of the universe yesterday!
01:01:05 <ehird> freenode is mainly about -- as you put it -- 'machines'
01:01:16 <pjoter> do you know the damn feeling of wanting to understand and realizing you understand just nothing?
01:01:39 <Slereah> Freenode is definately not much about spirits.
01:01:42 <ehird> pjoter: Yes! This is why I critically examine and verify everything I see. It's better than just blindly believing something because it 'feels' true -- that's against what you just said!
01:01:53 <ehird> Slereah: Shut up, I'm busy advocating SCIENCE! :<
01:02:08 <Slereah> Can't I just ask a spirit to do my I/O? I don't understand monads :(((
01:02:24 <pjoter> i wanna achieve some higher spirit, some insight which science obviously isnt able to grant me
01:02:34 <pjoter> you know that feeling, dont hide!
01:02:48 <ehird> pjoter: 'obviously'?
01:02:48 <ehird> Stop assuming things..
01:02:48 <ehird> And, why does a 'higher spirit' have to exist? That's another assumption.
01:02:50 <ehird> If there's something wrong with your current state; fix it.
01:03:12 <pjoter> thats the frame you put on it
01:03:31 <pjoter> its necessary somehow, ok
01:03:45 <ehird> No.. This is what I honestly believe to be true, because it is the most logical explanation and I truly believe the scientific method is how the world can be explained.
01:03:45 <pjoter> but it aint all, we know that too at the bottom of our hearts
01:03:55 <ehird> I'm afraid I wouldn't.
01:04:18 <pjoter> i dont say the scientific method is wrong at all
01:04:31 <ehird> that makes no sense
01:04:35 <ehird> why isn't it enough?
01:05:02 <ehird> Slereah: Seriously though.
01:05:06 <Slereah> A few years ago, I would have so jumped in.
01:05:11 <ehird> I haven't heard one reason why it isn't enough.
01:05:19 <ehird> Apart from: 'well, we all feel it'
01:06:35 <pjoter> there are moments we take another look to the world, fractions of seconds only.. thats my experience, i cant grasp it, but i know i should concentrate my whole efforts to do so
01:07:00 <ehird> pjoter: I think that's just general human paranoia. :P
01:07:11 <pjoter> you may condemn the "well i feel it" argument but on what else we base ALL our thinking in the last consequences?
01:07:19 <ehird> (Well, fine. But whatever you do, just don't join scientology.)
01:07:37 <ehird> pjoter: Laws of logic which have withstood the critical test for eons.
01:08:09 <pjoter> i heard some different stories, though i dont wanna attack logic at all right now
01:08:10 -!- bd_ has joined.
01:08:19 -!- bd_ has left (?).
01:08:20 -!- bd_ has joined.
01:08:36 <Slereah> You also might not want to do it here.
01:08:38 <ehird> bd_: Some context -- pjoter thought this was a channel about real esoterica, 'science vs non-science' abounds
01:08:41 <bd_> topic is lies :(
01:08:43 <pjoter> we had a lot of struggle to actually end up here, and we're by far not out of flaws
01:08:50 <ehird> topic is very much lies
01:08:58 <pjoter> mh topics are for wimps aint they?
01:09:13 <pjoter> ;) cmon you're the right guys , i feel that too!
01:09:30 <ehird> pjoter: anyway, my opinion is that science gives real understanding. Other things (such as, well, esoterica) give comfort.
01:09:35 <ehird> I know which one I would prefer.
01:09:55 <pjoter> tell me something about the language
01:10:15 <Slereah> It won't have monads, I hope!
01:10:25 <ehird> esolangs.org/wiki/Language_list
01:10:38 <pjoter> i heared that word monads four times now i guess
01:10:47 <Slereah> The big ones are Brainfuck, Befunge and Intercal.
01:10:47 <ehird> pjoter: monads monads monads monads monads gonads monads monads monads monads
01:11:18 <Slereah> Well, in concept at least.
01:11:20 <olsner> hmm, incidentally I was just thinking about making an esolang with *only* monads (possibly with a type system... but I'm trying to figure out how to avoid *functions*)
01:11:38 <pjoter> and you tell me about sobriety and science?
01:12:00 <Slereah> Hell, ain't nothing as sobering as Brainfuck.
01:12:05 <ehird> pjoter: I think I found your answer! http://www.thechurchofgoogle.org/
01:12:18 <bd_> olsner: haskell with the sk calculus?
01:12:26 <ehird> bd_: that includes functions
01:12:33 <ehird> pjoter: uhh, it's a joke
01:12:48 <bd_> ehird: well, I mean removing lambda in the same way as unlambda
01:12:57 <olsner> no, SK would count as functions in this context IMO
01:13:08 <pjoter> the lambda calculus ever lacked of deeper esoteric concepts
01:13:27 <olsner> but arguably, this'd have to become a combinatory logic with monad-based combinators
01:13:33 <pjoter> thats just not how we perceive the world
01:13:46 <ehird> pjoter: i guess you percieve the world as a turing machine then
01:14:02 <ehird> maybe that's why you're on this 'quest'... you can't see the beauty in the world as it is
01:14:06 <Slereah> Nah. Pjoter seems more of a recursive functions kind of guy.
01:14:14 <olsner> my world is referentially transparent, it's just in a State monad
01:14:22 <pjoter> i just need to understand recursion to understand recursion
01:14:54 <ehird> olsner: my world is more finely-grained transparent than that
01:15:05 <ehird> the Universe monad I have is very elegant
01:15:53 <pjoter> no really i was lookin for some real esoteric channel and what i encounter? fellow machine servants.. isn't that ironic?
01:16:11 <Slereah> I'm wetting my pants thinking of it.
01:16:19 <olsner> (turing) machine servants?
01:16:21 <Slereah> Plus, we're not all machine servants!
01:16:28 <Slereah> Some of us are more of a function servants
01:16:34 <ehird> Your brain is good at generalizing thiings quickly to support the path you already chose for yourself, pjoter. All of ours are. Maybe you should think about that..
01:17:02 <pjoter> did you know that actually all phenomena are directly or indirectly related to the number five, and this relationship can always be demonstrated given enough ingenuity on the part of the demonstrator?
01:17:12 -!- lament has set topic: You've reached this channel because the channel you tried to enter has been configured with join throttling (+J). There may be a monad attack in progress there, or simply unusually heavy interest. Please leave this channel and try again. Your channel may also be "identified-only" (+r); join #please_register for more information. If you need help, message a freenode staffer or email staff@freenode.net .... Thanks!.
01:17:36 <ehird> pjoter: the ingenuity being the key thing, of course. :-)
01:17:38 <pjoter> ok i'll put some noodles with cheese into myself now and you just hold on ok?
01:17:44 <ehird> I can also derive 45345345 from anything!
01:17:54 <pjoter> perhaps i'll find some real esoteric channels someday..
01:17:58 <ehird> lament: what did you do to the topic?
01:17:58 <Slereah> I've got monads to keep me company, don't worry.
01:18:25 <pjoter> also ich ess mal paar kaesspaetzle - bbl
01:18:41 <lament> ehird: made it more buzzwordy
01:18:44 <Slereah> Don't worry pjoter, you're not the first to make the mistake.
01:18:47 <olsner> warum dieser "blumenkraft"?
01:18:52 <Slereah> At least the second that I know of!
01:19:01 <ehird> lament: but that was the direct #overflow topic
01:19:25 <ehird> Slereah: did i advocate SCIENCE then too?
01:20:01 <Slereah> He didn't call us machine servants, maybe that's why.
01:20:10 <Slereah> Though I have to admit, I really dig the expression.
01:24:24 <Slereah> "FOR BREAKING THE ESO, THE MACHINE WILL MAKE YOU PAY"
01:24:46 <Slereah> And then, bam, the guilty servant is sent to the Malebolge
01:25:04 <Slereah> Where his code will change at each instruction.
01:25:13 <Slereah> Cruel but fair is the machine.
01:29:39 <Sgeo> afk going to eat
01:30:18 <pjoter> plus i included me into that flippant classification
01:30:18 <Slereah> Haskell isn't easy to get used to.
01:30:30 <Slereah> I should probably write some little programs in it.
01:31:57 <lament> my biggest issue with it was that I wanted to do OO all the time.
01:32:26 <ehird> OO. More like 'EW!'
01:33:28 <pjoter> OO is just a flamboyant expression for nothing
01:33:46 <ehird> pjoter: so is esoterica
01:34:27 <pjoter> hey ok i'm out, nice to meet ya all and good luck with further esoteric pilgrims or the like
01:34:55 <pjoter> perhaps i'll be back someday if i'm versed enough for haskell
01:35:02 -!- pjoter has left (?).
01:35:21 <ehird> Someone should submit a patch to gnu coreutils, replacing true.c with:
01:36:10 <Slereah> Is return 0 even necessary?
01:36:31 <ehird> main must return an 'int'.
01:36:34 <ehird> ANSI C specifies this.
01:36:43 <ehird> and main() is invalid. You need (void)
01:37:35 <lament> ehird: also, do you use emacs?
01:37:59 <lament> then i'm not talking to you anymore!
01:37:59 <ehird> well, I use Emacs and TextMate about equally
01:38:08 <ehird> (suprisingly, TextMate's XML support is superior to all of Emacs')
01:39:03 <ehird> I mean, it is kinda, but it's better at editing Haskell and Lisp than everything else.
01:39:07 <ehird> Slereah: Not for Haskell! or lisp.
01:39:22 <Slereah> Good. Haskell makes mah head hurt
01:39:28 -!- Corun has joined.
01:39:30 <lament> ehird: right, that's why haskell and lisp suck.
01:39:47 <ehird> lament: ok then, what do you suggest instead.
01:40:01 -!- GreaseMonkey has joined.
01:40:47 <lament> ehird: A language is just a small element of the overall development environment which you use to make stuff. A language should be well-integrated into this environment.
01:40:59 <lament> It is certainly true that lisp is well-integrated into emacs
01:41:37 <lament> but i don't like emacs, so i wouldn't use lisp.
01:41:57 <lament> haskell is not well-integrated into anything, at least as of yet.
01:43:11 <ehird> its an environment
01:43:16 <ehird> that happens to look a lot like an editor
01:43:21 <ehird> lament: environmenty stuff.
01:43:27 <ehird> it can act like vi or emacs too
01:43:30 <ehird> when it has its editor disguise on
01:45:02 <lament> does it have a good module/function browser? Does it provide good autocompletion? Tooltips which show the types of functions as you type them in? Does it have a good debugger? A refactoring tool? How well is it integrated with QuickCheck?
01:45:16 <ehird> lament: if it doesn't have any of those things, adding them will be trivial
01:45:22 <ehird> #haskell, go forth and ask.
01:46:03 <lament> (not to mention that the time i tried yi, it wouldn't even install)
01:46:32 <lament> ehird: i'm pretty sure that it doesn't, and i seriously doubt any of them are trivial
01:46:44 <lament> i suspect they're painfully complex
01:46:49 <lament> in any editor, not just yi
01:48:28 <lament> I suspect that emacs doesn't provide those things for haskell, either.
01:48:55 -!- ehird has quit ("This computer has gone to sleep").
01:50:07 <Slereah> YOU HAVE DRIVEN OUT THE HASKELL FORCES SIR
01:50:19 <Slereah> The Machine God will reward you.
01:50:30 <Slereah> Machines do not take kindly to functions >:|
01:50:59 <GreaseMonkey> why does everyone seemingly want to masturbate to Haskell?
01:51:29 <Slereah> I don't. But it's apparently awesome and all for something I need to do.
01:51:51 <Slereah> Although my guess is, I'll do the lazy thing and just use some priority operator
01:52:29 <Sgeo> I think Haskell suprisingly has better IO than Python
01:52:49 <Sgeo> Although I understand Python much better than Haskell
01:53:04 <lament> GreaseMonkey: it's amazingly beautiful.
01:53:14 <Slereah> Hell, first program I wrote in Python was the beggining of the Love Machine 9000!
01:53:18 <lament> GreaseMonkey: yes, python is
01:53:30 <lament> but it's not nearly as beautiful as haskell
01:53:37 <Slereah> i'm not sure I can rewrite Lazy Bird as my first Haskell program
01:54:50 <GreaseMonkey> in my lang, you could do something like: a = #1; b = #0; i = #10; while({i>0;},{a = a.add(b); print(a); t = b; b = a; a = t; i = i.sub(1);});
01:55:15 <GreaseMonkey> a = #1; b = #0; i = #10; while({i.gt(#0);},{a = a.add(b); print(a); t = b; b = a; a = t; i = i.sub(#1);});
01:56:15 * Slereah looks back on the first Love Machine 9000
01:56:24 <Slereah> It actually asked all states :o
02:01:02 <Sgeo> LM9k? What's that?
02:01:23 <Slereah> http://www.esolangs.org/wiki/NTCM
02:01:33 <Slereah> I never actually call it NTCM.
02:02:23 <Sgeo> Why is it at NTCM then?
02:02:38 <Slereah> Because it is moar srs name
02:02:52 <Slereah> More than Love Machine 9000, that is.
02:03:07 <Sgeo> At least redirect [[Love Machine 9000]] and [[LoveMachine 9000]] and [[LoveMachine9000]]
02:03:33 <Sgeo> and maybe [[LoveMachine]] and [[Love Machine]]
02:03:39 <Sgeo> And versions with M as lowercase
02:03:55 <Sgeo> j/k about the case, because searching for one will return the other
02:04:18 <Slereah> Plus, the only people who hear of LM9k are the people here
02:05:07 <Sgeo> I wonder what my fanbase for PSOX is
02:05:35 <GreaseMonkey> heck, i got some email about some guy's 5-instruction language when he read about bloody HighFive
02:05:58 <Slereah> Well, they can email me about it under the name NTCM
02:06:10 <Slereah> Although so far, no fanmail!
02:15:00 <Slereah> First version was that one : http://membres.lycos.fr/bewulf/Russell/turing.py
02:39:34 <Sgeo> Grr, I can never remember the URL for logs
02:39:57 <Slereah> http://www.esolangs.org/wiki/Esolang:Community_Portal#IRC
02:42:20 <Sgeo> I can't seem to search it
02:43:11 <Slereah> site:[adress of the site] [terms of the search]
02:43:19 <Sgeo> http://www.google.com/search?q=PESOX+site%3Aircbrowse.com&ie=utf-8&oe=utf-8&aq=t&rls=com.ubuntu:en-US:official&client=firefox-a
02:43:34 <RodgerTheGreat> hey guys, I felt inspired, so I whipped up a simple, extensible assembler: http://www.nonlogic.org/dump/text/1203733864.html
02:43:38 <Sgeo> Same with PSOX
02:44:09 <RodgerTheGreat> it can currently turn something like this http://www.nonlogic.org/dump/text/1203733935.html into this: http://www.nonlogic.org/dump/text/1203734033.html
03:09:57 <Sgeo> I think I'll abstract different GUI toolkits
03:10:05 <Sgeo> To be usable by PSOX
03:10:20 <Sgeo> Then the client can choose which toolkit to use, although there will be no difference in the API
03:11:00 <pikhq> Sounds like the best way of doing things.
03:11:15 <pikhq> Makes portability trivial. ;)
03:12:37 * Sgeo registers pri:GUI
03:13:37 <Sgeo> How does this sound:
03:13:43 <Sgeo> A function to pull in one GUI event
03:13:52 <Sgeo> The first byte is the Element ID
03:14:07 <Sgeo> Second byte is the event type, dependent on the type of the element
03:14:22 <Sgeo> Then after that is any associated data, then a 0x00
03:14:35 <Sgeo> For instance, if I click a button with EID 0x01
03:14:47 <Sgeo> Then it will return 0x01 0x01 0x00
03:15:05 <Sgeo> Once the button is released, it will return 0x01 0x02 0x00
03:15:13 <Sgeo> (for buttons, 0x01 is click, 0x02 is release)
03:17:11 <Sgeo> Events do need to be registered for each EID
03:17:35 <Sgeo> pikhq, thoughts?
03:17:50 <Sgeo> Also, thoughts on an mkdir function with a cd option, and no separate cd function?
03:18:04 -!- Corun has quit ("Leaving").
03:18:27 <pikhq> I'm *really* tired. . .
03:18:33 <pikhq> Like, about to collapse. . .
03:21:05 <pikhq> I've barely been *home* for an hour. Ugh.
03:21:27 <Sgeo> Are you sick? Feel better soon if so
03:21:48 <pikhq> No, just low sleep combined with the world's longest day. :(
03:22:20 <Sgeo> Why was this a long day for you?
03:22:34 <Sgeo> </awkward-way-of-asking-what-should-be-a-simple-question>
03:22:39 <pikhq> I left home at 6. I got home at 18:30.
03:22:55 <pikhq> See? Way the fuck too long.
03:23:24 <Sgeo> What was going on
03:24:20 <pikhq> School + having to wait 4 fucking hours for a ride. :(
03:25:05 <Sgeo> Why did you have to wait 4 hours?
03:26:26 <pikhq> Because that's how long it took for my ride to show up?
03:26:58 <Sgeo> Why did it take that long?
03:27:11 <Sgeo> Maybe your ride could have called you and you could have taken a bus?
03:27:26 <pikhq> I'm in the US. We don't *have* decent public transportation.
03:27:40 <Sgeo> 2 hours is more decent than 4 hours
03:27:43 <pikhq> Specifically: the bus towards where I live runs 3 times a day.
03:27:53 <Sgeo> (Takes me 1.5hrs to get to college)
03:28:06 <Sgeo> Don't feel like talking about the trip back
04:29:32 -!- oerjan has joined.
04:58:08 <pikhq> Ah, yes. The rare Hioerjan subspecies of oerjan.
04:58:59 <oerjan> We Are In A Hi'er State
05:14:12 -!- uvanta has quit ("php you!").
06:15:56 -!- Sgeo has quit (Connection timed out).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:50:18 -!- puzzlet has quit (Remote closed the connection).
08:50:26 -!- puzzlet has joined.
09:06:49 <oklopol> bus to where i live in goes about a hundred times a day... but that's just the one bus, there's 4 buses for it
09:28:35 -!- GreaseMonkey has quit ("Bad attempt, Liempt.").
09:30:05 -!- oerjan has quit ("leaving").
13:42:06 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)).
13:42:11 -!- puzzlet has joined.
13:53:41 -!- Corun has joined.
15:27:04 -!- ehird has joined.
16:12:55 -!- calamari has joined.
16:20:59 <ehird> <GreaseMonkey>why does everyone seemingly want to masturbate to Haskell?
16:21:10 <ehird> why does GreaseMonkey masturbate to keeping his wiki pages non-public domain?
16:21:24 <ehird> then cry and remove them when realizing the wiki is PD?
16:21:41 <Slereah> Because that's what monkeys do.
16:24:03 <Slereah> ΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°
16:24:16 <Slereah> Kolmogorov, why can't you be awesome like Alan Turing?
16:24:32 <Slereah> And write articles that people can understand.
16:24:52 <ehird> hay, someone ping eso-std.org
16:45:28 <pikhq> The last time he wasn't maintaining Emacs, Emacs spent 5 years without a release, IIRC.
16:46:11 <pikhq> Emacs without RMS is like Apple without Jobs.
16:46:27 <olsner> if it means no emacs, I'm all for it
16:49:31 <pikhq> olsner: The hell is wrong with you?
16:49:40 <pikhq> Even if you don't like emacs, you don't have to *use* it.
16:50:04 <pikhq> RodgerTheGreat: My thoughts exactly. *shudder*
16:52:19 <ehird> pikhq: Don't talk about Apple without Jobs. It gives me nightmares.
16:52:30 <ehird> (Albeit, probably in part because of the wonderful RDF.)
16:52:46 <ehird> pikhq: And it's called editor wars, n00blet.
16:53:03 <pikhq> ehird: Who gives a fuck?
16:53:42 <pikhq> I'll just be happy knowing I can do M-x M-butterfly
16:53:44 <ehird> pikhq: Who the fuck disabled your humour node?
16:53:57 <pikhq> An editor war is not funny, it's boring.
16:53:57 <ehird> Oh wait, you can't LIVE without your precious emacs without rms. It's too special, not for joking about. Sorry, sorry.
16:54:34 <pikhq> That's either damnably insulting, or not a bad joke.
16:54:38 <pikhq> Can't quite decide which.
16:56:28 <ehird> Mainly the latter, a tiny bit of the former because I'm an asshole./
17:09:23 -!- Sgeo has joined.
17:35:17 -!- Tritonio_ has joined.
18:00:05 -!- Tritonio_ has quit (Remote closed the connection).
18:31:09 -!- Slereah has quit (Read error: 104 (Connection reset by peer)).
18:31:11 -!- slereah_ has joined.
18:44:57 -!- oerjan has joined.
18:50:40 <Sgeo> rehi slereah_ hi oerjan
18:52:55 <slereah_> I call each and every man little man.
18:53:52 <oerjan> actually Sgeo is a 7 feet 68 year old black woman from New Carolina. but she won't admit it of course. except to confuse us.
18:54:17 <Sgeo> "New Carolina"?
18:54:28 <slereah_> Is that a fusion between Hillary and Obama?
18:54:37 <slereah_> Because that's what America wants.
18:55:13 <oerjan> no, that would be South York
18:56:02 <Sgeo> http://youtube.com/watch?v=blm4xPO_iIA
18:56:03 * oerjan notes that New Carolina gives several google hits
19:03:21 -!- puzzlet_ has joined.
19:10:46 <Sgeo> Hi puzzlet_ and SimonRC
19:15:16 -!- puzzlet has quit (Read error: 110 (Connection timed out)).
20:30:19 -!- ehird has quit ("Leaving").
20:32:26 -!- ehird has joined.
20:40:11 <ehird> re, ehird. rehird.
20:45:13 <SimonRC> actually, rehi + ehird = rehird
20:45:40 <Sgeo> SimonRC, somehow, I failed to notice thhat
20:47:37 <ehird> SimonRC: that's good.
20:47:39 <ehird> rehi, ehird. rehird.
21:16:13 <pikhq> 13:29:59 <GregorR-W> Razor-X: Thou shalt not build regexp's into a base language :P
21:16:18 <pikhq> From the #esoteric logs.
21:16:33 <pikhq> Gregor, could you tell me again how you defined the Plof3 syntax? :p
21:19:40 <Sgeo> Regexes are used in PSOX
21:22:01 <Sgeo> pikhq, how's work on PEBBLE2?
21:22:33 <Sgeo> ern wribg cgab
21:25:05 * oerjan checks for unicode and finds none
21:25:40 <Sgeo> whon lov was typoneswe
21:32:26 -!- oerjan has set topic: You've reached this channel because the channel you tried to enter has been configured with join throttling (+J). There may be a monad attack in progress there, or simply unusually heavy interest. Please leave this monad and return again. Your channel may also be "arrows-only" (+r); join #please_register for more information. If you need help, massage a freenode staffer or email staff@freenode.net .... Thanks!.
21:34:50 <Sgeo> +r? "arrows-only"?
21:35:06 <Sgeo> Some crazy monad thing I guess
21:35:53 <oerjan> when in doubt, escalate. the monad was already there.
21:36:30 <SimonRC> arrows are a generalisation of monads to inputs as well as outputs
21:37:23 <SimonRC> you have a strange sense of humour
21:43:26 <ehird> pikhq: regexp's are in psox core
21:43:45 <ehird> slereah_: were you here yesterday for the spiritual guy?
21:44:36 <Sgeo> ehird, well, the PSOX reference implementation's core
21:44:50 <Sgeo> How does this look:
21:44:51 <Sgeo> 0x00 0x06 0x01 FNUM(1)/cd STRINGNL/dirname 0x0A
21:44:51 <Sgeo> Makes directory dirname if it doesn't exist (if it does, it's harmless)
21:44:51 <Sgeo> If cd is not 0x00, changes current directory to that directory regardless of whether or not it existed beforehand
21:45:02 <oerjan> no, i briefly noticed in the logs
21:46:14 <ehird> oerjan: he was pretty good at convincing himself.
21:49:40 <oerjan> i am _not_ an "atheist or agnostic", for what it is worth. although i was from about 1994 to a day in the summer of 1998.
21:50:39 <oerjan> no, i opened a book at a random page in desperation.
21:50:42 <Sgeo> oerjan, what happened on that day
21:50:54 <oerjan> the page spoke about opening books on random pages.
21:52:14 <Sgeo> And that caused you to believe what?
21:56:18 <RodgerTheGreat> http://www.editorandpublisher.com/eandp/departments/syndicates/article_display.jsp?vnu_content_id=1003712741
22:01:10 <ehird> oerjan: what are you? just curious
22:01:19 <ehird> RodgerTheGreat: WHAT NO
22:01:30 <ehird> time to kill someone
22:01:31 -!- ehird has quit ("Leaving").
22:01:43 -!- ehird has joined.
22:01:49 <ehird> boy, that typo was perfectly timd
22:09:09 <Sgeo> I guess I should use unbuffered for all files?
22:37:19 <Sgeo> Should ls listings be a list of files delimited by \n and terminated with NUL, or delimited by NUL and terminated with \n?
22:37:34 -!- ihope has joined.
22:37:44 <Sgeo> Should ls listings be a list of files delimited by \n and terminated with NUL, or delimited by NUL and terminated with \n?
22:38:24 <ihope> Delimited by \n and terminated with NUL.
22:40:53 <ihope> Because NUL seems bigger.
22:41:10 <oerjan> oh dear gregor was here, just horribly maimed
22:41:13 <Sgeo> _D6Gregor1RFeZi, what's with that name?
22:41:45 * ehird is going to write a dinky little esolang which is like haskell, but crazier
22:41:45 <oerjan> did you get the license plate?
22:41:50 <ehird> for example, the Y combinator types in it
22:41:56 <ehird> actually, i think every term will type in it
22:42:16 <olsner> ehird: how about run-time lazy type checking? :P
22:42:35 <ehird> it will have a type inference engine of course
22:42:40 <ehird> but i hope i can get it to infer recursive types
22:42:56 <ehird> (\f -> f f) infers to '(a = a -> b) -> b'
22:43:23 <Sgeo> ehird, just like you were going to work on SOXP?
22:44:57 <ehird> Sgeo: You should really get over it. Sheesh.
22:45:08 <Sgeo> I think I would like to see a SOXP
22:45:18 <ehird> so you can whine about it being a bad idea?
22:45:24 <ehird> that's what you did, originally
22:45:52 <Sgeo> Well, at least a GUI domain, if you're not doing your SOXP project
22:46:11 <ehird> i thought you're working on that
22:47:12 <ehird> here's 'coerce' in my language (which is called Facade):
22:47:13 <ehird> coerce :: a -> b;;
22:47:13 <ehird> coerce = \a -> a;;
22:47:39 <ehird> wtf :: [Int];; # strings are lists of unicode codepoints
22:48:01 <ehird> which will give you the internal representation of 5, when treated as a list of integers
22:48:05 <ihope> Ideally, coerce would be implemented as "My gosh, why would you want to do a thing like that?"
22:48:17 <ehird> ihope: But this is so much more fun!
22:48:28 <Sgeo> ehird, I will work on it if you don't work on it
22:48:35 <Sgeo> But first I'm working on File I/O
22:48:39 <ihope> I guess coerce is nice when you want to get at internal representations.
22:49:03 <ehird> ihope: Not really, since there'll be no way to sanely get at it
22:49:18 <ehird> oh, and here's map:
22:49:19 <ihope> So it's only good for fun and circumvention?
22:49:28 <ehird> map :: (a -> b) -> [a] -> b
22:49:41 <ihope> What does that do, then?
22:49:59 <ehird> map = \f -> \xs -> if (equal xs []) [] (cons (f (head xs)) (map f (tail xs))
22:50:05 <ehird> and yes i'm aware that looks like lisp
22:50:11 <ehird> the syntax is ... lightweight
22:50:14 <ehird> but i will improve it
22:50:46 <ihope> How is that [a] -> b and not [a] -> [b]?
22:51:08 <ehird> wowzers, I think I need 'hindley/milner type inference for retards'
22:51:34 <ihope> Have some type declarations: Disguise : RealType a -> a; Undisguise : a -> RealType a
22:51:48 <ehird> ihope: define 'RealType'
22:52:44 <ihope> Disguise : a -> b; Undisguise : (\x : a) => RealType x
22:53:07 <ehird> InfElemList : [InfElemList];;
22:53:11 <ihope> And Disguise . Undisguise = id makes it work. :-P
22:53:15 <ehird> but that can be inferred automatically:
22:55:30 <ehird> ihope: Actually... will hindley/milner work for this?
22:55:48 <ihope> If you mean the (a = a -> b) -> b type of stuff.
22:56:52 <Sgeo> Attention everyoen interested in PSOX, including pikhq: Does this look good? http://trac2.assembla.com/psox/browser/trunk/spec/psox-fileio.txt
22:57:19 <ehird> manpage for false(1): 'do nothing, unsuccessfully'
22:57:26 <ehird> let's break it down
22:57:32 <ehird> INITIAL GOAL: do nothing
22:57:37 <ehird> SPECIFIER: unsuccessfully
22:57:51 <ihope> So it actually does something? Gasp.
22:57:55 <ehird> ~X where PURPOSE = X & SPECIFIER = 'unsuccessfully'
22:58:06 <ehird> PURPOSE: not (do nothing)
22:58:09 <ehird> PURPOSE: don't (do nothing)
22:58:15 <ehird> ~nothing = something
22:58:18 <ehird> PURPOSE: do something
22:58:29 <ehird> Now, 'false' actually fails to do anything, therefore its manpage is incorrect.
22:58:37 <ehird> (Well, it does 'return 1;'. But still.)
22:58:46 <ehird> Either its manpage is incorrect, or there's a bug, that is.
22:58:57 <Sgeo> return 1; counts as something
22:59:01 <ihope> And don't forget this fun set of declarations: extensible data Real; Zero : Real; One : Real; a + b + c = a + (b + c); a * b * c = a * (b * c); a + b = b + a; a * b = b * a; Zero + a = a; One * a = a; Zero * a = a; a * (b + c) = a * b + a * c; I don't feel like typing up the least upper bound property; Not (Zero = One)
22:59:03 <Sgeo> It's the manpage for true(1) that's wrong
22:59:35 <ehird> ihope: You know I think when I have an implementation YOU can type this all up. :-P
23:00:26 <ehird> First thing first - an AST!
23:00:55 <ehird> I won't group 'a :: b' and 'a = b'
23:01:05 <ehird> The thingy can sort that out.
23:13:35 <ehird> ihope: http://hpaste.org/5849
23:14:27 <ehird> ihope: OK, I mean -- is there anything you'd like to see there :P
23:14:29 <ehird> slereah_: Parse tree
23:14:32 <ehird> Abstract Syntax Tree
23:14:58 <ihope> Multi-argument lambdas?
23:15:13 <ehird> ihope: Haskell doesn't have those.
23:16:05 <ehird> ihope: And what is the type of that?
23:16:11 <ehird> (Alternate: Give me another way to write that.)
23:16:36 <ehird> I can, if wanted, just parse '\a b -> Foo' as '\a -> \b -> Foo'
23:16:47 <ehird> Same reason I don't have a special 'f x = ...' definition.
23:16:51 <ehird> I can just parse it as 'f = \x -> ...'
23:24:43 <ehird> ihope: Wow, parsing [a,b,c,...] is actually kinda hard with parsec.
23:25:41 <ihope> [, repeating expression-comma, optional expression, ]?
23:26:32 -!- ihope_ has joined.
23:26:42 <ihope_> Or [, optional (repeating expression-comma, expression), ]?
23:26:59 <ihope_> Make that optional (expression, repeating comma-expression), actually. Maybe.
23:29:05 <ehird> ihope_: Yeah, it's just that in Parsec all that 'optional' stuff can get ugly
23:30:22 <ihope_> It's not too ugly if you're careful.
23:34:57 <ihope_> Suddenly, I feel like making a pseudo-BNF definition that recognizes a prime number.
23:35:40 <ehird> oerjan: but #haskell want me to use lexeme and TokenParser! :-P
23:35:44 <ehird> ihope_: Is that... possible?
23:35:59 <oerjan> i mean for the [a,b,c,...] lists
23:37:12 -!- uvanta has joined.
23:37:26 <ehird> oerjan: am funcuzzled
23:38:17 <oerjan> sepBy p delim parses nothing, or p, or any number of p's separated by delim's
23:39:19 <oerjan> the reference example is commaSep p = p `sepBy` (symbol ",")
23:41:11 <ehird> oerjan: would i be better using TokenParser, or that?
23:41:17 <ehird> I mean, Facade's grammar isn't that complex..
23:41:34 <oerjan> erm, symbol is part of TokenParser
23:41:58 <ehird> oerjan: but .. can I mix regular parsers with that?
23:42:54 <ehird> oerjan: and does that skip whitespace?
23:43:01 <ihope_> Now I'm wondering whether it's possible to read in an integer in little-endian binary and output it in little-endian decimal using finite storage.
23:43:05 <oerjan> TokenParser gives you parsers for various individual token types, automatically skipping space and comments after them
23:43:22 <ehird> oerjan: so, essentially, i can't just drop that in
23:43:35 <ehird> because, personally, i have no idea how to use TokenParser
23:43:40 -!- ihope has quit (Read error: 110 (Connection timed out)).
23:43:40 <ehird> and Parsec docs aren't very helpful
23:43:51 <ehird> oerjan: OK, but how will that sepBy help me handle whitespace?
23:43:51 <oerjan> there's an example using it
23:44:03 <oerjan> sepBy has nothing to do with the whitespace
23:44:22 <oerjan> it's just for parsing something structured like a list with delimiters
23:44:27 <ehird> so; what is the best solution?
23:44:33 <ehird> where i have a standard language grammar
23:44:42 <ehird> with mostly entirely whitespace insensitivity
23:44:53 <ehird> and quite a lot of deliminated things like that
23:45:01 <ehird> is there a TokenParser thing for unifying all that skipping and stuff?
23:45:10 <ehird> because right now i have various space skipping littered about.
23:45:19 <ehird> if TokenParser can help me get rid of that too..
23:45:33 <oerjan> lexeme p parses p, then skips.
23:46:15 <oerjan> all the other parsers defined by TokenParser are wrapped with lexeme
23:46:52 <oerjan> like symbol, which parses a string of operator-like symbols
23:47:16 <ehird> oerjan: is there an example unifying all that?
23:48:06 <oerjan> See the Lexical Analysis section
23:51:29 <ehird> oerjan: so I define a thingy called lexer
23:51:44 <ehird> and is a TokenParser ()
23:53:47 <oerjan> see the reference section "The members of TokenParser"
23:56:14 <oerjan> oh there is even a specific commaSep parser. scratch my suggestion of explicitly using sepBy, then.
23:57:07 <ehird> oerjan: hm, I don't like the look of that languagedef stuff
23:57:08 <oerjan> squares (commaSep p) :)
23:57:11 <ehird> too much hand-waving magic..
23:57:32 <oerjan> well yeah it does make some assumptions
23:58:07 <oerjan> there is a section describing those fields too
23:59:08 <oerjan> (The members of LanguageDef)
23:59:18 * Sgeo is implementing domain 0x06
23:59:59 <oerjan> it's of course designed to allow you to easily parse the tokens of an "ordinary" language
00:01:35 <ehird> oerjan: well I'm going to write my own TokenParser :(
00:01:45 <ehird> But .. do I have to define, like, everything in that newtype?
00:02:18 <oerjan> er you are not just writing your own LanguageDef?
00:02:27 <ehird> oerjan: I don't like it! it's too magical :(
00:02:56 <Sgeo> Hey, do BF programs really need to be able to tell the perms?
00:03:10 <oerjan> i don't think TokenParser itself is used for anything other than extracting its fields, so if you are writing yourself there is no point in including anything other than what you use
00:03:45 <ehird> Sgeo: Hey, do BF programs really need GUIs?
00:03:59 <ehird> If you still work on the GUI stuff after answering that; then add the perms.
00:04:04 <oerjan> but you should definitely read up on the ParsecCombinator section then
00:04:24 <ehird> Really, I just want LanguageDef, sans magic.
00:04:33 <ehird> Just something that will help me sort out my whitespace & stuff.
00:04:47 <oerjan> (sepBy and between makes it easy to write things like commaSep and square, e.g.)
00:06:09 * Sgeo decides to leave out the permissions check
00:06:21 <ehird> oerjan: indeed, I just want things like commaSep.
00:06:31 <ehird> But, then, I'd have to handle whitespace inside all of that.
00:07:20 <oerjan> perhaps try the emptyDef style
00:07:54 <oerjan> no comments, no predefined names
00:08:20 * Sgeo leaves function 0x00 0x06 0x05 undefined
00:08:34 -!- GreaseMonkey has joined.
00:10:05 <oerjan> without comments all of the general combinators should just skip spaces and nothing else
00:10:19 <ehird> oerjan: mm, it still has languagey stuff though
00:10:21 <oerjan> er, spaces and newlines, i assume
00:11:09 <oerjan> i don't think those are used unless you use the specific combinators for parsing operators or identifiers
00:13:22 <ehird> lexer :: TokenParser ()
00:13:22 <ehird> lexer = makeTokenParser emptyDef
00:14:19 <ehird> oerjan: so (char 's') should now be written (symbol "s")
00:14:40 <oerjan> whenever you want to skip space after it
00:15:22 <ehird> oerjan: hmm, when i write things like a rule for consing..
00:15:29 <ehird> how do i 1. avoid inf loops 2. get the precedence right?
00:15:36 <ehird> I guess by doing crazy lexing. :(
00:17:13 * oerjan evilly points ehird toward the Expressions and Module ParsecExpr sections
00:20:17 * oerjan notes there is an Examples sections with a few links
00:37:35 <Sgeo> Maybe I should include os.stat() as a function>
00:40:35 <Sgeo> oerjan, http://trac2.assembla.com/psox/changeset/94
00:45:11 <Sgeo> oerjan, http://trac2.assembla.com/psox/changeset/95
00:48:52 -!- ehird has quit ("This computer has gone to sleep").
00:54:40 <GreaseMonkey> here's something i'm wondering: how would you operate a flux capacitor, if it were to be invented?
00:56:07 -!- GreaseMonkey has set topic: You've reached this channel because the channel you tried to enter has been configured with join throttling (+J). There may be a 4chan attack in progress there, or simply unusually heavy interest. Please leave this monad and return again. Your channel may also be "arrows-only" (+r); join #please_register for more information. If you need help, massage a freenode staffer or email staff@freenode.net .... Thanks!.
00:56:42 <GreaseMonkey> i'm thinking: if you charge it one way, you go forwards on discharge, and same thing the other way but going backwards.
00:57:19 <slereah_> It was invented during a concussion vision, so why not
01:10:52 <Sgeo> I can make a combined cp/vm
01:11:53 <Sgeo> Actually, I think I would be able to add rm into that combo
01:11:58 <Sgeo> But that's probably a bad idea..
01:14:25 <lament> wow, i just found out that libfftw is automatically generated by ocaml code
01:19:02 -!- oerjan has quit ("Good night").
02:13:05 -!- wildhalcyon has joined.
02:20:58 -!- ihope_ has quit (Read error: 104 (Connection reset by peer)).
03:13:18 -!- Corun has quit ("This computer has gone to sleep").
04:19:49 -!- pikhq_ has joined.
04:20:15 -!- pikhq has quit (Nick collision from services.).
04:20:22 -!- pikhq_ has changed nick to pikhq.
05:16:11 -!- Sgeo has quit (Read error: 110 (Connection timed out)).
05:52:32 -!- calamari has quit ("Leaving").
05:57:19 -!- GreaseMonkey has quit ("Read error: 110 (Connection chickened out)").
06:45:00 -!- puzzlet_ has quit (Read error: 110 (Connection timed out)).
07:03:21 -!- oerjan has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
09:49:07 -!- _D6Gregor1RFeZi has changed nick to GregorR.
10:30:47 -!- oerjan has quit ("Bus").
11:42:42 -!- RedDak has joined.
12:01:04 -!- Tritonio_ has joined.
12:03:45 -!- uvanta has quit ("php you!").
13:02:48 -!- Corun has joined.
14:33:19 -!- RedDak has quit ("I'm quitting... Bye all").
14:40:09 -!- Hiato has joined.
14:44:48 -!- Corun has quit ("This computer has gone to sleep").
14:46:09 <Hiato> Yeah, pretty much the same. Nothing to do this weekend, except chill ;)
14:46:31 <slereah_> I tried to read the Kolmogorov paper this week end
14:46:45 <slereah_> But I'm starting to wonder if it wouldn't be easier in Russian.
14:47:31 <Hiato> Pshh... Beats me, I'm most certainly not in the position to comment - whatsoever
15:10:40 -!- RedDak has joined.
15:37:53 -!- pikhq has quit (Read error: 110 (Connection timed out)).
15:49:07 -!- Hiato has left (?).
16:59:18 -!- timotiis has joined.
17:01:52 -!- oerjan has joined.
03:20:47 -!- clog has joined.
03:20:47 -!- clog has joined.
03:20:52 <Sgeo> RodgerTheGreat, does it work with PSOX? Offer PSOX integration? *keeps trying to drum up interest in PSOX*
03:21:09 * Sgeo does want to see tools with PSOX integration
03:21:22 <RodgerTheGreat> uh... I suppose I could write a simple header or something once I get I/O down?
03:21:35 -!- Corun has quit (Client Quit).
03:22:17 <Sgeo> I need to add module, change coming to domain 0x04
03:22:20 <Sgeo> just a heads-up
03:27:19 <Sgeo> http://trac2.assembla.com/psox/changeset/96 nothing too serious
03:27:26 <Sgeo> and http://trac2.assembla.com/psox/changeset/97 slight correction
03:29:04 <Sgeo> Serious updates on Wednesday though relating to safety
03:33:04 * Sgeo vaguely considers a BF.PSX language..
03:41:22 <RodgerTheGreat> my assembler now allows for the definition of constants- this significantly improves readability
04:22:08 <slereah_> Maaaan, I look at the X86 instruction set.
04:22:29 <slereah_> To think that even machine code's got more instructions than most esolangs!
04:24:38 <slereah_> They've got like 30 jump instructions :o
04:24:40 <pikhq> slereah_: x86 assembly *is* an Esolang.
04:25:02 <pikhq> s/Esolang/esolang/
04:26:16 <slereah_> If it is, then it is "commercial" and "sold out" :o
04:26:24 <slereah_> While brainfuck remains indie. Or something.
04:28:18 <slereah_> I wonder, are there direct equivalents to some BF instructions in X86?
04:29:40 <slereah_> Bleh. You actually have to know computer architecture for x86.
04:59:20 <RodgerTheGreat> Learn MIPS assembly, and then look at the x86 instruction set and you'll pretty much hate the entire computer industry
05:04:26 <pikhq> Oh, I *love* x86 assembly.
05:04:35 <pikhq> In *exactly* the same way as I love Brainfuck.
05:08:22 -!- oerjan has joined.
05:13:22 <Sgeo> RodgerTheGreat, hm?
05:13:32 <Sgeo> <RodgerTheGreat> Learn MIPS assembly, and then look at the x86 instruction set and you'll pretty much hate the entire computer industry
05:13:35 <Sgeo> I don't get it
05:14:18 <Sgeo> And don't think me leaving means you don't have to respond.. I can read logs you know
05:14:42 <oerjan> presumably MIPS is a thousand times more elegant than x86, despite the second being ubiquitous
05:15:15 <pikhq> Like I said earlier: x86 assembly is an esolang in its own right.
05:15:19 <RodgerTheGreat> CISC hurts your insides when you know a really good RISC architecture
05:16:01 <pikhq> I dunno: there's something to be said about switching to 32-bit mode being nontrivial.
05:17:38 <Sgeo> http://news.zdnet.com/2100-3513_22-6231761.html
05:17:49 <Sgeo> Anyone here besides me think that this is either useless or harmful?
05:18:27 <Sgeo> Well, g'night all
05:20:14 -!- Sgeo has quit (Read error: 104 (Connection reset by peer)).
05:56:53 -!- bsmntbombdood__ has changed nick to bsmntbombdood.
06:12:00 -!- immibis has joined.
06:12:06 -!- immybo_ has joined.
06:12:24 -!- immibis has quit (Client Quit).
06:12:43 -!- immibis has joined.
06:14:11 -!- immibis has set topic: If this channel has been deleted, how come we're in it? "This channel" refers to the alternative, since that's where we are. So if the alternative has been deleted where are we? Floating around in a void of zero channels?.
06:15:31 <immibis> http://ircbrowse.com/channel/esoteric/20080225
06:16:19 <immibis> anyone wants to play Theatre, by Brenten Wyber, join #interactive-fiction
06:34:48 -!- immybo_ has changed nick to immybo[A].
06:43:45 -!- immybo[A] has changed nick to immybo_.
06:43:50 -!- immybo_ has quit ("He who laughs last, thinks slowest").
07:42:13 -!- olsner has quit ("Leaving").
07:42:46 -!- SimonRC has joined.
07:55:02 -!- oerjan has quit ("leaving").
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:07:57 <immibis> "To remove air from a flask, fill it with water, tip the water out, and put the cork in quick before the air can get back in."
08:08:46 <immibis> "For a nosebleed: Put the nose much lower then the body until the heart stops."
08:13:01 <immibis> # "Do not use if you cannot see clearly to read the information in the information booklet." -- In the information booklet.
08:13:15 <immibis> "Do not use while sleeping or unconscious."
08:13:23 <immibis> "Recycled flush water unsafe for drinking."
08:13:45 <immibis> "Do not use near fire, flame, or sparks." -- On an "Aim-n-Flame" fireplace lighter.
08:14:21 <immibis> "Do not recharge, put in backwards, or use." -- On a battery.
08:14:39 <immibis> "For use by trained personnel only." -- On a can of air freshener.
08:15:03 <immibis> "Warning: Do not climb inside this bag and zip it up. Doing so will cause injury and death." -- A label inside a protective bag (for fragile objects), which measures 15cm by 15cm by 12cm.
08:15:19 <immibis> you know, every time i paste one i tell myself it will be the last, then i read the next.
08:15:42 <immibis> "Warning: has been found to cause cancer in laboratory mice." -- On a box of rat poison.
08:15:49 <immibis> "Fragile. Do not drop." -- Posted on a Boeing 757.
08:16:23 <immibis> "Product will be hot after heating." -- On a supermarket dessert box.
08:16:42 <immibis> "May be harmful if swallowed." -- On a shipment of hammers.
08:17:23 <immibis> "Not dishwasher safe." -- On a remote control for a TV.
08:18:14 <immibis> "Malfunction: Too less water." -- A notice left on a coffee machine."
08:18:50 <immibis> "In case of flood, proceed uphill. In case of flash flood, proceed uphill quickly." -- One of the emergency safety procedures at a summer camp.
08:19:07 <immibis> "Some materials may irritate sensitive skin. Please look at the materials if you believe this may be the case.
08:26:20 -!- immibis has quit (Client Quit).
11:45:30 -!- jix has joined.
12:56:00 -!- puzzlet has quit (brown.freenode.net irc.freenode.net).
12:56:00 -!- pikhq has quit (brown.freenode.net irc.freenode.net).
12:56:00 -!- lifthrasiir has quit (brown.freenode.net irc.freenode.net).
12:56:57 -!- puzzlet has joined.
12:56:57 -!- pikhq has joined.
12:56:57 -!- lifthrasiir has joined.
13:54:53 -!- RedDak has joined.
14:03:29 -!- sebbu has joined.
14:16:36 -!- Slereah has joined.
14:17:04 -!- slereah_ has quit (Read error: 104 (Connection reset by peer)).
14:35:41 -!- RedDak has quit (Remote closed the connection).
16:02:25 -!- n0nsense has joined.
16:02:39 -!- n0nsense has left (?).
16:14:28 -!- RedDak has joined.
16:24:52 -!- timotiis has joined.
17:07:33 -!- slereah_ has joined.
17:10:33 -!- Slereah has quit (Read error: 104 (Connection reset by peer)).
17:27:32 -!- ais523 has joined.
18:21:26 <SimonRC> >>> from __future__ import braces
18:36:38 -!- RedDak has quit (Remote closed the connection).
18:47:52 <lament> better braces than those things ruby has
18:47:59 <ais523> isn't that the solution Haskell used?
18:48:09 <ais523> allow layout, but if you don't like it you can use braces and semicolons C-style
18:48:45 <lament> 1) haskell's whitespace-sensitive layout is much trickier than python's and harder to get right
18:49:01 <lament> 2) in practice, everybody uses it anyway, and nobody uses braces much
18:49:12 <ais523> Haskell's looks nicer than Python's IMO
18:49:26 <ais523> and the brace-semicolon style is useful for short things you want to fit on one line
18:49:29 <lament> haskell is optimized for looking nice
18:49:39 <ais523> (although that would be more useful in Python than it is in Haskell)
18:50:00 * ais523 recalls attempting to type Python loops in to bsmnt_bot via IRC
18:50:23 <ais523> it was a case of ~exec exec("while 1:\n do_something;")
18:50:33 <ais523> there ought to be a better way
18:54:05 <SimonRC> haskell uses the offside rule I think, except where it doesn't
18:57:21 <lament> hm, extending python with c is a chore.
18:59:56 <ais523> SimonRC: your statement is a tautology. But what is the offside rule?
19:01:26 <SimonRC> it means that (usually) expresions must fit into the least southeast quadrant that contains their initial word
19:05:31 <SimonRC> I don't think I have ever remembered a formal definition of the indentation rules
19:06:09 <lament> heh, extending ocaml with c:
19:06:11 <lament> User primitives with arity greater than 5 should be implemented by two C functions. The first function, to be used in conjunction with the bytecode compiler ocamlc, receives two arguments: a pointer to an array of Caml values (the values for the arguments), and an integer which is the number of arguments provided.
19:15:44 <SimonRC> the exact rules are a bit complicated: http://haskell.org/onlinereport/syntax-iso.html#layout
19:26:49 <ais523> my favourite example in that is do a == b == c
19:27:19 <ais523> because == is non-associative, the only possible way to parse it is (do {a == b}) == c
19:28:20 <ais523> now we just need a program where that actually types...
19:30:20 <lament> haskell ffi is so nice
19:30:47 * ais523 was planning an esoteric ffi
19:30:52 <lament> SimonRC: compared to Python
19:31:02 <ais523> where the relationships between programs are shown by drawing flowcharts in ASCII art
19:31:07 <SimonRC> why are you reading about ffis?
19:31:08 <lament> it's nice because the c side doesn't need to know about haskell
19:31:12 <ais523> but I haven't really worked out the details
19:31:18 <lament> your c functions are simply c functions
19:31:22 <lament> you don't need a wrapper
19:31:24 <ais523> lament: Prolog's was good too
19:31:29 <ais523> and worked much the same way
19:31:39 <lament> yeah, but haskell is actually a good language :)
19:31:40 <SimonRC> OTOH, the C ffi interacts poorly with Haskell threads
19:31:48 <ais523> you could even do something like this:
19:31:54 <lament> SimonRC: really? that could hurt me
19:31:55 <ais523> (in Prolog) call a C function
19:32:00 <ais523> (in C) call a Prolog function
19:32:05 <lament> SimonRC: what are the problems?
19:32:15 <SimonRC> the bizarre thing is that both Prolog and Haskell have different evaluation orders than C.
19:32:20 <ais523> the C function just gets cut out altogether, as if it itself had failed
19:32:36 <ais523> SimonRC: Prolog's evaluation order is the same as C's. It's an eager language
19:32:40 <SimonRC> lament: I think that no thread-switching occurs while a C function is running
19:32:49 <SimonRC> it might have a fix around somewhere
19:32:49 <ais523> it's just that Prolog also has a re-evaluation order...
19:32:59 <SimonRC> ais523: that was what I was refering to
19:33:15 <ais523> I'm slightly annoyed with Prolog, because it's almost a very nice language
19:33:26 <ais523> but there's things you should be able to do with it but can't
19:33:33 <ais523> like solve simultaneous equations, for instance
19:33:54 <ais523> I want to be able to write goal :- A = B + 1, A = 2* B + 2, write(A).
19:34:04 <ais523> but Prolog interps can't handle that sort of thing
19:34:24 <SimonRC> because it's the wrong side of GΓΆdel
19:34:36 <ais523> it makes perfect sense within the language, it's just confusing to figure out how to interpret, and probably uncomputable
19:35:15 <ais523> goal :- A > 2, B > 2, integer(A), integer(B), A * B = (insert large prime here), write(A).
19:35:39 <ais523> I'm planning a blatantly uncomputable esolang version of Prolog to address these problems
19:35:57 <ais523> if you want something to be worried about, ponder that user-defined functions have to start with capital letters
19:36:10 <ais523> oh, and there's no backtracking, it uses multithreading instead
19:36:21 <lament> SimonRC: oh, that shouldn't be a problem for me, but i see how that can be a pain.
19:36:21 <ais523> so an infinite loop is impossible, but it's super-TC anyway
19:36:58 <SimonRC> goal :- A > 1, B > 1, C > 1, N > 2, A^N + B^N = C^N
19:40:42 <ais523> my language sorts that out simply by multithreading and processing all possible values of A, B, C, and N in parallel.
19:40:52 <ais523> You'd probably want to restrict them to be integers, though.
19:41:02 <oklopol> will it not prove it impossible?
19:41:33 <ais523> if the proof is correct, it ought to fail
19:42:08 <ais523> if the integer restriction is there
19:42:20 * ais523 wanted to design a programming language in which just about everything was very easy to express
19:42:30 <ais523> so programmer productivity could be massive
19:42:42 <ais523> no, that Prolog-like language
19:43:11 <ais523> try translating C's ?: operator into Python. It's possible, but ugly and nonintuitive
19:43:54 <oklopol> ais523: prove impossible == fail, no?
19:44:26 <ais523> basically, every statement in the entire program puts a condition on the state of the world
19:44:37 <ais523> and a failure means that the conditions are incompatible.
19:45:01 <ais523> such as SimonRC's conditions above, plus a condition restricting A, B, C, N to be integers
19:45:17 <ais523> (point of interest: does anyone know if the result also holds for non-integer N?)
19:46:10 <oklopol> yeah, after the guy spent 20 years solving that for integer n, i quickly extended for reals.
19:46:57 <ais523> I quickly extended for negative numbers
19:47:06 <ais523> but if you know the result for positive numbers, that's easy to prove
19:47:23 <ais523> (results for -1 and -2, no results for <=-3)
19:47:38 <ais523> BTW, no results for 0 either
19:47:48 <ais523> so +2, +1, -1, -2 are the only integer values of N that work
19:49:06 <ais523> to prove the result for negative N, just multiply both sides by (A*B)^-N:
19:50:45 -!- ais523 has quit ("looking fruitlessly for the original #esoteric...").
19:52:55 <SimonRC> I am not totally sure that proof works
19:53:14 <SimonRC> if z = -n, I get: b^z + a^z = (ab/c)^z
19:53:20 <oklopol> didnΝ't try, but just realized that's not what i was thinking
19:55:15 -!- Corun has joined.
19:57:08 <SimonRC> http://www.accu.org/index.php/book_reviews?url=search.xqy%3Fx&term=schildt
19:57:58 <SimonRC> Look at all the results that are not by Schildt, and you will see that Schildt is the standard for measuring crapness of C++ books
19:58:46 <lament> man, haskell ffi is awesome.
19:59:49 <lament> once i figured out how to run ghc to compile it (which took a while because there's like, no documentation anywhere), it all seems easy
20:00:53 -!- Corun has changed nick to TheChris.
20:00:55 <lament> no, but there's nothing there
20:01:04 <lament> i just create an array in c and send it to haskell.
20:01:36 <SimonRC> are you using a thing to automatically generate the haskell declarations from the C ones?
20:02:07 <lament> i don't need any heavy machinery, just interface with one c function i have
20:02:19 <SimonRC> I just seem to recall the syntax for the declaration on the Haskell side to be a bit arcane
20:02:26 <SimonRC> maybe I am thinking of something else
20:02:52 <lament> my function takes no arguments, and returns a pointer to an array of doubles.
20:03:01 <lament> the declaration is: foreign import ccall "module.h getArray" _getArray :: IO (Ptr Double)
20:03:39 <lament> and then from that pointer, i create an actual haskell list of doubles (i know the size in advance):
20:03:42 <lament> getArray :: IO [Double]
20:03:44 <lament> getArray = do ptr <- _getArray peekArray arrayLen ptr
20:04:04 <lament> getArray = do {ptr <- _getArray; peekArray arrayLen ptr}
20:04:34 <lament> can't expect it to get any prettier than that...
20:05:48 <SimonRC> how about: getArray = _getArray >>= peekArray arrayLen
20:06:34 <lament> do you honestly think that's more readable? :)
20:06:59 <lament> i guess i'm just not used to haskell enough
20:07:19 <SimonRC> >>= is no worse that unix pipes
20:12:52 <lament> i'm not saying >>= is bad
20:13:23 <lament> but i think my version is better
20:13:46 <lament> because if you're not 100% sure what _getArray and peekArray do, my version makes it very obvious
20:14:38 <lament> in absence of a good haskell IDE that would tell you the type of peekArray as you hover the mouse over it, i think being explicit helps.
20:19:57 <lament> of course, i don't actually want a list... i want an array...
20:20:58 <SimonRC> Isn't there an appropriate instance of Array?
20:21:14 -!- slereah_ has quit (Read error: 104 (Connection reset by peer)).
20:23:00 * lament researches Data.Array.Storable
20:23:26 * lament finds unsafeForeignPtrToStorableArray
20:25:05 * lament laments haskell's lack of proper documentation
20:25:38 <lament> haskell's idea of docs is type signatures
20:26:47 <SimonRC> nothing vague like "Collection"
20:27:14 <lament> unsafeForeignPtrToStorableArray :: Ix i => ForeignPtr e -> (i, i) -> IO (StorableArray i e)
20:28:57 <SimonRC> Given any type i that is usable as an array index, the function takes in a ForeignPtr e (e = element type) and the array bounds and returns an IO of a Haskelly version of the array
20:29:29 <SimonRC> Ix i => ... (i, i) ... almost always means array bounds
20:29:34 <lament> are the bounds inclusive or exclusive?
20:30:14 <SimonRC> notice some of the instances there are of Ix, BTW...
20:30:40 <SimonRC> instance (Ix i, Ix j, Ix k) => Ix (i, j, k) and such like
20:30:48 <SimonRC> proper multi-dimensional arrays
20:31:13 <lament> the documentation for unsafeForeignPtrToStorableArray should really say if the bounds are inclusive or exclusive
20:31:23 <lament> but since it doesn't, at least the documentation for Ix should
20:31:25 <lament> and it doesn't either!
20:31:31 <SimonRC> they will be same as everywhere else, I assume
20:32:05 <lament> inclusive, apparently. Had to check in ghci.
20:36:09 <lament> the function is a little less pretty now:
20:36:14 <lament> getArray :: IO (StorableArray Int Double)
20:36:14 <lament> getArray = do ptr <- _getArray fp <- newForeignPtr_ ptr unsafeForeignPtrToStorableArray fp (0, arrayLen-1)
20:36:27 <lament> argh, i don't know what's going on with indentation.
20:36:54 <lament> getArray = do {ptr <- _getArray; fp <- newForeignPtr_ ptr; unsafeForeignPtrToStorableArray fp (0, arrayLen-1)}
20:37:28 -!- olsner has joined.
20:43:23 -!- slereah_ has joined.
20:43:32 <SimonRC> lament: for why indices are inclusive, see the recent conv on #haskell
20:43:43 <SimonRC> (suppose you are indexing on Bool...)
20:46:10 <lament> but would you actually? Especially an array imported from C?
20:47:16 <SimonRC> well you might have your own instance of Enum and Ix that corresponds to a load of C #defines
20:47:18 <lament> i sort of understand the reasoning, but realistically this only clutters the semantics to address about 0.00001% of the usage.
20:48:16 <SimonRC> A function that turns c-style bounds into Haskell bounds is trivial to write
20:49:29 <lament> although that's among things like "begin and end instead of braces are very easy to define in C"
20:49:36 <SimonRC> and Haskell bounds interact well with [a..b]
20:50:11 <SimonRC> Haskell is really one for the theoretical purity. And that means indexing on all kinds of crap, not just numbers.
20:50:45 <lament> sure. i can live with that.
20:51:16 -!- RedDak has joined.
20:52:02 <lament> i do like syntactic sugar, though
20:52:42 <lament> but it's not a big deal
20:53:57 * lament sounds like he's always complaining, and he really isn't.
20:54:05 <lament> but i wish haskell had proper docs :D
20:55:39 <SimonRC> you've done that one already
20:56:48 <lament> yeah, i guess i should actually start coding or something.
21:27:00 -!- TheChris has changed nick to Corun.
21:36:59 <lament> SimonRC: have you actually written anything serious in haskell?
21:42:57 <SimonRC> I did some extensions to a miniture Java compiler.
21:44:15 <lament> what did it compile to?
21:46:00 <SimonRC> the subset was designed to be machine-code-like
21:46:14 <SimonRC> with an obscene collection of addressing modes
21:46:26 <SimonRC> there were some register variables
21:47:06 <SimonRC> I implemented, among others, a jump optimiser
21:47:20 <lament> did anything practical come out of it?
21:47:33 <SimonRC> it looked at the flowgraph and chose a set of paths with the minimal number of jump instructions
21:47:52 <SimonRC> I evaluated the results, and found that it was absofuckinglutely useless
21:48:19 <SimonRC> Java's control structures aren't complex enough to benefit from the jump optimisation
21:48:59 <SimonRC> I expect it only really shines when you have deep breaks, "break 5;" or whatever
21:49:44 <SimonRC> the only breaks the miniture java had were in the conditions of loops, immediately at the top
22:00:23 -!- uvanta has joined.
22:24:03 -!- slereah_ has quit (Read error: 104 (Connection reset by peer)).
22:24:24 -!- slereah_ has joined.
22:34:25 -!- RedDak has quit (Remote closed the connection).
22:38:45 -!- pikhq has quit (Read error: 104 (Connection reset by peer)).
22:42:10 -!- Sgeo has joined.
22:43:40 -!- pikhq has joined.
23:00:56 -!- slereah__ has joined.
23:02:44 -!- slereah_ has quit (Read error: 104 (Connection reset by peer)).
23:26:34 <timotiis> Liempt: speaking of bold, does that work?
23:37:12 -!- slereah__ has quit (Remote closed the connection).
23:37:26 -!- slereah__ has joined.
23:40:59 -!- timotiis has quit ("leaving").
23:49:26 -!- Corun has quit ("This computer has gone to sleep").
00:03:34 -!- CakeProphet has joined.
00:05:02 <slereah__> Are SchΓΆnhage's machines easier to understand than Kolmogorov's?
00:15:16 <slereah__> Problem is, I can't find anywhere in his article an example that doesn't involve the graph itself!
00:15:40 <slereah__> The only example is "How to double the graph".
00:16:06 <slereah__> Not a whole lot helpful for a more useful algorithm.
00:48:51 -!- RainbowTrout has joined.
00:49:27 -!- sebbu has quit ("@+").
00:51:19 -!- RainbowTrout has quit (Client Quit).
01:22:14 -!- CakeProphet has quit ("haaaaaaaaaa").
01:27:14 -!- jix has quit ("CommandQ").
02:09:39 -!- atsampson has quit (Read error: 113 (No route to host)).
02:14:45 -!- atsampson has joined.
03:04:45 -!- sekhmet has quit (Read error: 110 (Connection timed out)).
03:19:30 -!- cmeme has quit ("Client terminated by server").
03:19:41 -!- cmeme has joined.
03:32:45 -!- immibis has joined.
03:51:15 -!- sekhmet has joined.
03:52:47 -!- uvanta has quit ("If you're seeing this message, it's probably XChat's fault.").
04:03:58 -!- immibis has quit (Client Quit).
07:20:10 -!- Sgeo has quit (Read error: 110 (Connection timed out)).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:14:55 -!- jix has joined.
08:17:40 -!- FurFur has joined.
08:18:45 -!- FurFur has left (?).
09:47:34 -!- olsner has quit ("Leaving").
10:58:22 -!- Corun has joined.
11:56:31 -!- Corun has quit ("This computer has gone to sleep").
13:48:22 -!- timotiis has joined.
13:52:31 -!- slereah__ has quit (Read error: 104 (Connection reset by peer)).
13:53:03 -!- slereah__ has joined.
14:03:59 -!- RedDak has joined.
14:04:38 -!- slereah_ has joined.
14:33:34 -!- slereah__ has quit (Read error: 110 (Connection timed out)).
14:47:40 -!- RedDak has quit (Remote closed the connection).
15:58:56 -!- oerjan has joined.
16:55:15 -!- n0nsense has joined.
16:55:24 -!- n0nsense has quit (Client Quit).
17:15:26 -!- ais523 has joined.
17:56:56 -!- Sgeo has joined.
18:18:26 -!- sebbu has joined.
18:20:39 -!- Corun has joined.
18:36:21 -!- RedDak has joined.
18:43:24 -!- Corun has quit ("This computer has gone to sleep").
19:19:03 <ais523> why isn't one's complement used more often?
19:19:20 <ais523> it's easy to create a two's complement system by just using unsigned adders and disregarding the carry
19:19:40 <ais523> but looping the carry from the msb round to the carry input of the lsb gives you ones' complement
19:20:01 <ais523> (albeit with -0 being the standard representation of 0 and +0 being impossible to get unless you start a number at that value)
19:20:32 <ais523> one big advantage is that if you use the right number of bits, you can make the number of available integers a prime
19:20:40 <ais523> so that multiplication is completely reversible
19:22:50 <ais523> hmm... my rant about 1's complement doesn't seem to have sparked off a discussion yet
19:23:50 <slereah_> Well, I don't know if the others are here, and I don't know what's 1's complement.
19:24:13 <ais523> most computers represent negative numbers using 2's complement
19:24:38 <ais523> given that you're storing numbers in binary (unless you're using TriINTERCAL or Malbolge, this is likely), and that you have a fixed number of bits (i.e. not a bignum)
19:24:56 <ais523> then you form the 2's complement of a number by changing all 0s to 1s in the number and 1s to 0s, and then adding 1
19:25:03 <ais523> 1's complement is the same except that you don't add the 1
19:25:40 <ais523> the advantage of 2's complement, which is the reason it's so commonly used, is that signed and unsigned arithmetic work the same way; for signed arithmetic, you just disregard the carry
19:25:43 <slereah_> Wouldn't you have problems differentiation between, say, -1 and 255?
19:26:01 <ais523> with an 8-bit system, you'd generally range from -127 to +127
19:26:22 <ais523> 2's complement would go from -128 to +127
19:26:42 <ais523> (1's complement has two sorts of zero, which act identically, but can be confusing to someone used to how arithmetic normally works)
19:27:07 <ais523> They're normally referred to as +0 and -0, but both act like 0 with respect to all the usual arithmetic operations
19:28:42 <ais523> the real interest comes when the number of bits you use is not a power of 2
19:28:49 <ais523> (to be precise, when 2^n-1 is a prime)
19:29:05 <ais523> because then multiplication by any integer except 0 maps all integers onto unique integers
19:29:38 <ais523> and it's almost as easy to implement in hardware as 2's complement (at least in terms of wiring)
19:29:50 <ais523> it's slower on average, but the worst-case response time is the same
19:31:29 <ais523> more elegant maths IMO
19:31:50 <ais523> oh, and you can pick one of the zeros to use as 0 and the other one to detect uninitialised data
19:33:59 <slereah_> "More difficult to understand quite unlike a "computer" -- abstract or otherwise."
19:34:51 <ais523> what are you referring to?
19:35:40 <slereah_> It's from the wiki article on pointers machines.
19:38:51 <slereah_> It seems to be one of the most obscure computing method.
19:39:54 <ais523> I had a vague memory that such things existed
19:39:59 <ais523> but don't really understand them
19:40:40 <slereah_> Is there anything based on it?
19:40:58 <slereah_> It would be nice to have a concrete example.
19:44:29 <ais523> after reading a few Google links I think I understand what's happening to some extent now
19:45:53 <ais523> basically, at any given point the memory is a graph, with nodes connected to each other by directed coloured edges
19:46:24 <slereah_> Though they don't have to be directed apparently.
19:46:38 <ais523> and at each step, there are replacement rules, such as 'if a node is connected to another node via a red edge and then a blue edge, add a green edge pointing to that node from the original node'
19:46:55 <ais523> hmm... maybe not quite like that, I still don't understand them properly
19:47:12 <slereah_> I understand roughly how it works.
19:47:26 <slereah_> Proble is, I don't get much how it computes.
19:47:33 <ais523> that's usual with esolangs
19:47:50 <slereah_> None of the examples are using problems outside of the graph itself.
19:47:51 <ais523> one of the articles said that you could make a cellular automaton by connecting the original graph up as a grid
19:49:31 <slereah_> There's an example that's sort of useful, though not that clear.
19:49:47 <slereah_> It shows how to do a list of integers.
19:50:38 <slereah_> "On the definition of an algorithm", by Andrei Kolmogorov and Uspenskii.
19:50:51 -!- wildhalcyon has joined.
19:51:38 <slereah_> Though the Kolmogorov definition adds some strange conditions, like every nodes must have a type and a node can't be connected to two identical types.
19:52:28 <slereah_> So there's a lot of nodes type 2-3-4-2-3-4-2-3-4... because of it.
19:52:42 <slereah_> (0 is the starting node type and 1 ending type)
20:11:37 -!- olsner has joined.
20:17:11 <SimonRC> though best run with emacs -batch -l dunnet
20:19:01 <Sgeo> There's minigolf in movie 4
20:20:00 <Sgeo> Futurama movie
20:20:31 <Sgeo> wrong chan basically
20:20:35 <slereah_> Well, it's Futurama, so probably!
20:29:26 <ais523> SimonRC: ever tried Lost Kingdoms?
20:29:31 <ais523> I'm stuck on the wildcat
20:30:30 <ais523> I mentioned this to ehird, and wrote a serialising BF interp so that I could send a save file, but ehird couldn't solve that bit either
20:43:47 <SimonRC> wasn't it originally written in bfbasic?
20:45:19 <ais523> there are two versions
20:45:22 <ais523> the original was in BASIC
20:45:33 <ais523> an improved version was written in BFBASIC and compiled to BF
20:45:50 <SimonRC> is there any bfbasic source?
20:46:27 <ais523> even the original BASIC source is in binary
20:46:40 <ais523> I suppose you could try decompiling, because BFBASIC itself is open-source
20:46:55 <ais523> but someone would have to write a decompiler first
20:48:03 <SimonRC> the actual page only says that the original LK was written in bbc basic and translated to brainfuck...
20:48:11 <SimonRC> it doesn't say anything about bfbasic
20:48:47 <ais523> it did use BFBASIC, though, I'm pretty sure of it
20:49:04 <ais523> especially because the patterns at the end of the source are characteristic of it
20:50:59 <ais523> FWIW, Esolang's entry on Brainfuck states that BFBASIC was used
20:51:09 <SimonRC> but that's the only source I can find
20:51:20 <SimonRC> apart from various translations of it
20:52:28 <ais523> there aren't many mentions of that game on the Internet anyway, for some reason
20:53:09 <ais523> also, note the mention of Jeffry Johnston in the credits at the bottom of its page
20:53:32 <ais523> Jeffry Johnston created BFBASIC, and it also has contributions by Jon Ripley, which would seem to make the situation even more likely
20:54:03 <SimonRC> though the bf world is quite small isn't it?
20:54:31 <ais523> not as small as the rest of the esolang world
20:54:35 <slereah_> It's the biggest communauty in esolangs !
20:54:54 <slereah_> Though I wonder if Intercal isn't used more.
20:55:08 <SimonRC> comp.lang.intercal has com activity
20:55:12 <ais523> INTERCAL is probably used a lot
20:55:19 <ais523> and don't you mean alt.lang.intercal
20:55:23 <ais523> or are there really two newsgroups?
20:55:49 <slereah_> Well, I wouldn't go as far as "lot".
20:56:01 <ais523> (apparently ~50 Debian users who send popularity contest stats installed C-INTERCAL, ~30 installed CLC-INTERCAL, single-figures > 1 actually use them)
20:57:06 <ais523> latest stats from http://qa.debian.org/popcon.php?package=intercal are that 4 people used C-INTERCAL recently
20:57:31 <ais523> (bear in mind that this is restricted to Debian Linux users with popularity stats turned on, so the true number is likely much higher)
20:57:49 <ais523> and 3 used CLC-INTERCAL
20:58:03 <ais523> either the total installed numbers have gone down, though, or my memory of them was wrong
20:58:51 <ais523> oh, add one to the C-INTERCAL stats for me, because although I use Ubuntu, I don't have C-INTERCAL installed from packages as I'm the maintainer and have my own newer test versions
21:01:11 <ais523> (I do show up on the CLC-INTERCAL stats, I think)
21:01:59 <RodgerTheGreat> I really think lightning-fast mental math is neat: http://www.ted.com/index.php/talks/view/id/199
21:02:57 -!- GregorR has quit (Success).
21:03:15 -!- wildhalcyon has quit ("ChatZilla 0.9.81 [Firefox 2.0.0.11/2007112718]").
21:03:23 -!- EgoBot has quit (Read error: 110 (Connection timed out)).
21:03:24 -!- GregorR has joined.
21:05:06 <ais523> <-- GregorR has left this server (Success).
21:05:21 <ais523> no double quotes, so that was a server-generated quit message
21:05:29 <ais523> (presumably a case of errno=0 but an error happened anyway)
21:05:41 <ais523> I came across a program recently which was exiting with "success" as the error message
21:05:49 <ais523> because it was using perror but nothing had set errno
21:06:17 <ais523> (apparently on that system mmap doesn't always set errno on failure)
21:06:20 <SimonRC> that video seems to have no image
21:06:56 <SimonRC> is there supposed to be one?
21:07:25 <ais523> SimonRC: I don't understand what you're trying to say, can I have some context or did you type into the wrong channel?
21:07:38 <SimonRC> the video that RodgerTheGreat posted
21:07:42 <ais523> ah, you're referring to RodgerTheGreat's comment
21:12:15 -!- oerjan has quit ("Good night").
21:13:01 <SimonRC> ah, the "missing digit" one is via casting out nines, I suspect
21:14:02 <SimonRC> and the previous ones are simplified by knowing your times tables up to 100
21:15:32 * SimonRC tries to recall the Lewis Caroll technique for finding the day of the week of a date.
21:18:33 <SimonRC> ah, yes, he is using his tables up to 100
21:19:16 <SimonRC> ooh, nice memorisation hack
21:20:18 <RodgerTheGreat> pretty simple techniques, he simply applies them with tremendous speed and accuracy
21:21:57 <RodgerTheGreat> this is the same kind of thing: http://www.youtube.com/watch?v=wIiDomlEjJw
21:23:24 <SimonRC> otoh, see the tale of richard feynmann and the abacus-seller
21:26:22 <SimonRC> erm, in the book "Surely You're Joking Mr Feynmann"
21:28:37 <ais523> it's a good book, but the sequel is much worse
21:28:50 <ais523> (I can't remember what the sequel is called)
21:28:58 <ais523> (probably because it wasn't very good)
21:52:44 <SimonRC> wow: http://www.pdp8.net/sound/sound.shtml
21:53:08 -!- calamari has joined.
21:58:16 -!- jix has quit ("CommandQ").
22:05:43 -!- ais523 has quit ("my quit message will never be as good as GregorR's :(").
23:06:43 -!- RedDak has quit (Remote closed the connection).
23:34:13 -!- timotiis has quit ("leaving").
23:54:09 -!- Corun has joined.
00:10:02 -!- Tritonio_ has joined.
00:12:50 -!- calamari has quit ("Leaving").
00:21:23 <slereah_> Why are there 8.388.606 different values for NAN :o
00:22:02 <slereah_> Oh, it's also independant of the sign bit. So 16 millions :o
00:22:39 <Corun> The more the merrier! :-P
00:22:46 <olsner> celebrating diversity!
00:23:12 <slereah_> Well, I don't want to be racist and all, but if someone isn't a number, he should go back to his country.
00:24:27 <olsner> apparently, there were political issues with excluding so many non-numbers from the standard
00:25:02 <slereah_> Affirmative action strikes again!
00:25:18 <slereah_> But you don't see them giving a third value to the infinities!
00:36:20 -!- Corun has quit ("This computer has gone to sleep").
01:02:49 -!- sebbu has quit ("@+").
01:22:39 -!- Overand has quit ("Reconnecting").
01:22:41 -!- Overand has joined.
01:22:57 -!- Sgeo has quit (Read error: 104 (Connection reset by peer)).
01:41:13 -!- Sgeo has joined.
03:44:09 -!- Tritonio_ has quit (Remote closed the connection).
03:47:15 <slereah_> http://youtube.com/watch?v=gCh-fOTGgks&feature=related
04:15:40 <Sgeo> I mean, besides the sucky attempt at singing
04:18:25 <pikhq> That's also horribly written.
04:18:50 <pikhq> I stopped at 'Formally, a Turing can be defined as'. . .
04:19:14 <pikhq> My music-loving soul wants to execute him.
04:19:58 <slereah_> Is there a good program to deal with graphs?
04:20:06 <slereah_> Bonus point for visualisation.
04:20:30 <pikhq> Is there a good way of embedding a graph in LaTeX?
04:20:41 <slereah_> Something that would be able to deal with some transformation on the graph, so that I might try to build the Andrei machine.
04:26:24 <slereah_> I just don't dare to google "graph".
04:53:49 * Sgeo posts on Fark: Completely 100% irrelevant and off-topic, but when I see someone say "gObama", I immediately think of gOS.. Is Obama sponsored by Google?
04:53:49 <Sgeo> /waits for someone to not recognize a joke
04:54:02 <Sgeo> http://forums.fark.com/cgi/fark/comments.pl?IDLink=3430569
05:27:44 -!- Sgeo has quit (Read error: 110 (Connection timed out)).
05:30:16 <slereah_> I'm having trouble sleeping, because I have a graph doing the Fibonacci jig in my head.
06:22:58 -!- dbc has joined.
06:54:30 -!- oerjan has joined.
07:20:29 -!- immibis has joined.
07:31:03 -!- cherez has quit ("Leaving.").
07:31:46 -!- cherez has joined.
07:52:11 -!- immibis has changed nick to we.
07:52:18 -!- we has changed nick to u.
07:52:39 * u r teh ..... what should i put here?
07:54:13 <oerjan> http://en.wikipedia.org/wiki/U_Thant
07:55:15 * u ask freenode to unban "you" as a nick
07:56:07 -!- u has changed nick to me.
07:56:38 * me knows better than to start a sentence with "me", that's why he's changing his nick to "I"
07:56:40 -!- me has changed nick to I.
07:56:51 * I changed my nick
07:58:00 -!- I has quit (Nick collision from services.).
07:58:46 -!- immibis_ has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:00:39 <immibis_> [20:56] --NickServ-- This nickname may not be used. Please choose another.
08:00:39 <immibis_> [20:56] --NickServ-- If you do not change within one minute, you will be disconnected
08:00:40 <immibis_> [20:56] --NickServ-- This nickname may not be used. Please choose another.
08:00:40 <immibis_> [20:56] --NickServ-- If you do not change within one minute, you will be disconnected
08:00:45 <immibis_> [20:56] --NickServ-- This nickname may not be used. Please choose another.
08:00:45 <immibis_> [20:56] --NickServ-- If you do not change within one minute, you will be disconnected
08:00:46 <immibis_> [20:56] --NickServ-- This nickname may not be used. Please choose another.
08:00:46 <immibis_> [20:56] --NickServ-- If you do not change within one minute, you will be disconnected
08:00:57 <immibis_> d'oh again i didn't mean to do that
08:01:16 -!- immibis_ has changed nick to immibis.
08:07:31 <immibis> ok. "you" is out. "I" is out.
08:07:34 -!- immibis has changed nick to we.
08:07:51 <we> i wonder if NS will let me register "I" and disable that protection...
08:07:53 -!- we has changed nick to I.
08:08:17 -!- tejeez has quit (brown.freenode.net irc.freenode.net).
08:08:17 -!- Deewiant has quit (brown.freenode.net irc.freenode.net).
08:08:19 -!- I has changed nick to immibis.
08:09:27 -!- immibis has changed nick to GreaseMonkey.
08:09:51 -!- GreaseMonkey has changed nick to immibis.
08:11:11 -!- immibis has changed nick to u.
08:11:20 * u will like me having this nick or else
08:11:26 -!- u has changed nick to yu.
08:16:05 * yu will say something
08:17:38 * yu WILL follow the directions on this sign. The sign says "Stop. Drive sideways."
08:17:55 <yu> "three types of ball are offered. They are one. two. three."
08:22:02 <yu> "In my attempt to kill a fly, I drove into a telephone pole."
08:22:13 <yu> "The telephone pole was approaching fast. I was attempting to swerve out of its path when it struck my front end."
08:22:23 <yu> # "The guy was all over the road. I had to swerve a number of times before I hit him."
08:24:56 -!- yu has quit ("Hi Im a qit msg virus. Pls rplce ur old qit msg wit tis 1 & hlp me tk ovr th wrld of IRC. and dlte ur files. and email ths to).
08:52:14 -!- jix has joined.
09:30:48 -!- tejeez has joined.
09:34:27 -!- oerjan has quit ("Later").
09:37:09 -!- lifthrasiir has quit (brown.freenode.net irc.freenode.net).
09:37:10 -!- puzzlet has quit (brown.freenode.net irc.freenode.net).
09:37:11 -!- Deewiant has joined.
09:37:58 -!- puzzlet has joined.
09:37:58 -!- lifthrasiir has joined.
09:39:34 -!- jix has quit (Read error: 110 (Connection timed out)).
09:40:46 -!- olsner has quit ("Leaving").
10:39:26 -!- jix has joined.
10:53:29 -!- Corun has joined.
10:53:52 -!- Corun has quit (Client Quit).
11:05:12 -!- mental has joined.
11:05:32 -!- lament has quit (Read error: 113 (No route to host)).
11:36:19 -!- jix has quit ("This computer has gone to sleep").
12:00:29 -!- jix has joined.
12:02:58 -!- AnMaster_ has joined.
12:04:08 -!- AnMaster has quit (Nick collision from services.).
12:04:36 -!- AnMaster_ has changed nick to AnMaster.
12:21:17 -!- Tritonio_ has joined.
12:25:04 -!- jix has quit ("This computer has gone to sleep").
12:34:55 -!- sebbu has joined.
13:18:12 -!- RedDak has joined.
13:22:55 -!- sebbu has quit (Read error: 60 (Operation timed out)).
13:32:11 -!- jix has joined.
13:57:54 -!- jix has quit ("This computer has gone to sleep").
14:07:55 <AnMaster> in brainfuck, is it the case that a + or - directly in front of a "," can be optimized away?
14:08:17 -!- sebbu has joined.
14:21:59 -!- slereah_ has quit (Read error: 104 (Connection reset by peer)).
14:22:01 -!- slereah__ has joined.
14:49:00 -!- wildhalcyon has joined.
14:49:40 -!- slereah_ has joined.
14:51:50 <slereah_> Well, if it's in front of a , you can probably remove it
14:52:38 -!- slereah__ has quit (Read error: 104 (Connection reset by peer)).
14:54:35 <AnMaster> also strings of + and - can be optimized
14:54:57 * AnMaster is pondering a brainfuck optimizer
14:55:22 <AnMaster> one thing that is obvious (in the compiler or interpreter), replace [-] or [+] with "zero cell" opcode
15:01:56 <slereah_> Where can I get the Profile module for Python?
15:22:34 <wildhalcyon> I was thinking of writing a hyperexponentiation program in bf
15:23:48 <wildhalcyon> use a trinary operator (x,h,y) where it computes x^^..h..^^y
15:27:14 * slereah_ 's trying to write an addition program on a Kolmogorov machine
15:27:45 -!- Corun has joined.
15:28:10 -!- slereah_ has changed nick to Slereah.
15:29:16 -!- RodgerTheGreat has quit (Read error: 110 (Connection timed out)).
15:48:22 -!- slereah_ has joined.
15:49:01 -!- Slereah has quit (Read error: 104 (Connection reset by peer)).
15:50:07 -!- jix has joined.
16:00:38 -!- jix has quit ("CommandQ").
16:00:58 -!- jix has joined.
16:17:59 -!- ehird` has joined.
16:23:37 <ehird`> immibis has been spamming again
16:24:17 <ehird`> AnMaster: brainfuck optimization is pretty advanced these days
16:24:24 <ehird`> the stuff you have talked about is 3-line stuff
16:24:37 <ehird`> nowadays we optimize linear loops to O(1) and multiplication and everything ;O
16:28:55 <AnMaster> ehird`, can you point me to an example of that?
16:29:26 <slereah_> Well, I'm sure EsCo can satisfy all your BF needs!
16:30:03 <ehird`> AnMaster: http://mazonka.com/brainf/bff4.c this optimizes linear loops to O(1) if compiled with -DLNR
16:30:12 <ehird`> http://mazonka.com/brainf/index.html some benchmarks
16:30:41 <ehird`> it's the fastest bf interp out there
16:31:18 <ehird`> it seems to use ints, though, not chars
16:31:21 <AnMaster> someone should write a bf frontend for gcc
16:31:39 <ehird`> gcc wouldn't be able to do much to the code
16:31:47 <ehird`> ESO1's reference will include a fast bf interp and compiler anyway
16:31:55 <AnMaster> x86, x86_64, whatever arch you want
16:32:01 <ehird`> compiling to machine code is pointless for BF
16:32:14 <ehird`> compile to good C, and then gcc -O3, because gcc can spot idioms better than you
16:32:20 <AnMaster> ehird`, nah you could do common code reduction to "un-inline" it
16:32:31 <ehird`> AnMaster: gcc is not suitable for this
16:32:35 <ehird`> http://www.swapped.cc/bf/ <-- the reigning champ interp before bff4
16:33:12 <ehird`> oh -- and bff4.c doesn't do interactive input
16:33:24 <ehird`> so no luck running e.g. lostkng.b on it
16:33:39 <ehird`> anyway, the ESO1 reference suite will be the best one out there when it's worked on, i'll bet
16:33:42 <slereah_> Well, you could do lostkng!the solution
16:33:51 <AnMaster> ehird`, well I want interactive input
16:33:53 <ehird`> lostkng is only slow in startup
16:34:00 <ehird`> AnMaster: http://www.swapped.cc/bf/files/bff-1.0.3.1.tar.gz
16:34:11 <ehird`> I'll mod bff4.c for interactive.
16:34:15 <ehird`> Should just take a mo.
16:34:34 <ehird`> i love the style of code in bff4.c
16:34:54 <AnMaster> ehird`, possibly, but I'm way geekier, I updated mosaic to support basic xhtml and plan to make it good enough to use it as my normal browser
16:34:56 <slereah_> Damn you people and your fancy code!
16:35:16 <ehird`> AnMaster: why would you want to do that, though?
16:35:22 <ehird`> mozaic isn't even useful, like lynx is
16:35:25 <slereah_> Let's hook up AnMaster on PSOX
16:35:28 <AnMaster> ehird`, because it make ppl ask why I want to do it
16:35:46 <ehird`> AnMaster: i'm way geekier, i started making an OS once! :(
16:35:48 <AnMaster> ehird`, and I run a gopher server
16:35:48 <ehird`> it sucked, sure, but hey
16:35:52 <ehird`> i got it to print hello world :|
16:36:00 <slereah_> http://www.esolangs.org/wiki/PSOX
16:36:30 <AnMaster> hrrm, what's on the other side of the scale of minimalism
16:36:35 <ehird`> do not listen to it AnMaster! :(
16:36:59 <AnMaster> ehird`, well malbolge doesn't have a lot of opcodes
16:37:00 <ehird`> unikitten is the most bloated thing out there
16:37:09 <ehird`> AnMaster: http://www.esolangs.org/wiki/ORK
16:37:16 <AnMaster> http://www.esolangs.org/wiki/PSOX <-- wowowowow though
16:37:35 <ehird`> Sgeo doesn't know what malloc() is
16:37:44 <ehird`> and he thought a good 'networking' domain was HTTP
16:37:48 <ehird`> AnMaster: PSOX maintainer.
16:38:03 <AnMaster> ehird`, well what do you mean not know malloc?
16:38:11 <ehird`> AnMaster: he had no idea what it was
16:38:24 <ehird`> AnMaster: he only knows Python..
16:38:25 <AnMaster> you can't code C without knowing it
16:38:32 <ehird`> he doesn't even know basic brainfuck algorithms, really
16:38:37 <AnMaster> ehird`, well if it is written in python?
16:38:38 <ehird`> and he's probably watching me say this right now
16:38:49 <ehird`> AnMaster: yes, but it would affect the architechtural stuff of it
16:39:18 <AnMaster> I actually use bohem-gc, for a leak detector :)
16:39:31 <AnMaster> combined with valgrind and mudflap it is quite useful
16:39:49 <AnMaster> ehird`, it isn't, how do I register an allocation from X for example
16:40:00 <ehird`> AnMaster: you asked this last time
16:40:01 <AnMaster> I need to place some pointers in widget
16:40:06 <ehird`> because manuals are too difficult to read for you, apparently
16:40:10 <AnMaster> ehird`, yes I read the docs, and found no way
16:40:26 <ehird`> AnMaster: go ask in #c
16:40:59 <AnMaster> ehird`, well #c is an unfriendly channel
16:42:11 <AnMaster> still no idea how to tell it about an already malloced object
16:42:38 <AnMaster> I tried GC_add_roots, no idea why it didn't work :/
16:44:45 <ehird`> if( strchr(",.",a) ){ a=getbf(); continue; }
16:44:55 <ehird`> getbf only litsens to BF instructions
16:44:58 <ehird`> so surely, this is a bug
16:49:23 -!- slereah__ has joined.
16:52:09 <ehird`> GregorR: Those guys made CMUCL. You don't want to be anywhere near them!
16:52:11 <ehird`> x) ehird@ehird-desktop ~/LostKingdomBF $ ../bff4 LostKng.b
16:53:48 <ehird`> GregorR: have you ever looked at bff4.c? :P
16:54:27 <ehird`> eso1's reference interpreter/compiler needs a name.
16:54:30 <AnMaster> ehird`, someone need to use better variable names
16:54:44 <ehird`> AnMaster: the source is not that hard to understand; just at first
16:54:51 <ehird`> verbose c code is horrible
16:55:32 <AnMaster> ehird`, true, but so is obfuscated as well
16:56:03 <ehird`> AnMaster: This is obfuscated C: http://nsl.com/papers/origins.htm
16:56:17 <ehird`> and what's more, that guy actually writes all his C like that, and seriously
16:57:53 <ehird`> http://www.kx.com/a/k/examples/read.k
16:57:57 <ehird`> translates k to english
16:57:58 -!- Slereah has joined.
16:58:31 <ehird`> http://www.kx.com/a/k/examples/xhtml.k this parses xhtml
16:59:10 <ehird`> AnMaster: KDB, a very widely used, fast, stable etc. database program, used by loads of finance stuffz, made by Kx systems (same people as K, obviously), is written in K
16:59:16 <ehird`> and according to them, contains 0 loops
16:59:39 <ehird`> AnMaster: it's an array programming language
16:59:57 <ehird`> scalar values in K etc are just 0d arrays
17:00:09 <ehird`> 1 2 3 + 1 2 3 == 2 4 6
17:00:17 <ehird`> so basically all operations are generalized across arrays
17:00:24 <ehird`> so you don't have to loop over an array
17:00:34 <ehird`> AnMaster: because that's the style of array programming languages
17:00:36 <AnMaster> ehird`, ok, but on hardware level it would loop
17:00:39 <ehird`> wildhalcyon: me too! it's not easy.
17:00:44 <ehird`> AnMaster: gosh, really
17:00:50 <ehird`> i thought faeries did it
17:01:04 <AnMaster> ehird`, anyway what's so nice with "no loops"
17:01:13 <AnMaster> I mean, why would anyone boost with it?
17:01:14 <ehird`> AnMaster: it's array programming language style.
17:01:19 <wildhalcyon> I would disagree with anyone who told me it WAS C code unless I knew already
17:01:23 <ehird`> well they obviously prefer it
17:01:45 -!- Slereah- has joined.
17:02:15 <ehird`> http://nsl.com/papers/unlambda.htm unlambda in k
17:02:39 <ehird`> did i mention that in K it's actually shorter & more trivial to write a gui app than a console one? it's really, really weird
17:03:10 <ehird`> http://nsl.com/papers/befreak.htm this interp+gui = http://nsl.com/k/befreak.k
17:03:50 -!- RodgerTheGreat has joined.
17:04:35 <AnMaster> ehird`, where can one read about the k language itself?
17:04:49 <ehird`> AnMaster: http://www.kuro5hin.org/story/2002/11/14/22741/791
17:04:54 <ehird`> that introduces it very gently.
17:05:00 <ehird`> AnMaster: i must warn you though; it's not open source
17:05:15 <ehird`> kx systems used to offer a free interpreter for most systems, but they appear to have stopped
17:05:30 <AnMaster> ehird`, couldn't someone make an open source compiler for it (why would anyone want that?)
17:05:39 <ehird`> AnMaster: compiler, no.
17:05:46 <ehird`> but the k library is huuuuuge
17:05:52 <ehird`> i doubt it would be feasable to reproduce it
17:06:01 <ehird`> without years and years of stuffs
17:07:27 <ehird`> AnMaster: all its stdlib
17:07:27 -!- slereah__ has quit (Read error: 110 (Connection timed out)).
17:07:31 <ehird`> i.e. more than the basic lang
17:07:40 <ehird`> which already uses most characters on a keyboard, I'll venture
17:12:19 -!- slereah_ has quit (Read error: 110 (Connection timed out)).
17:15:20 -!- Slereah has quit (Read error: 110 (Connection timed out)).
17:15:26 <Slereah-> Hell, Kolmogorov didn't have I/O on his mind with his machine.
17:16:51 <ehird`> i should expand that, sometime.
17:18:30 <ehird`> the ESO1 reference interpreter
17:21:26 <ehird`> 'It's impractical to program in BrainFuck.' GENIUSES, ON THE INTERNET
17:24:26 <ehird`> Slereah-: how can you optimize linear loops, actually?
17:24:30 -!- Sgeo[College] has joined.
17:24:34 <ehird`> [++>--<+++>>>-<+>--<<++<+>-<-]
17:24:47 <ehird`> no, i have no idea how you can optimize that
17:24:47 <Slereah-> I don't know, I'm not the one who can optimise BF!
17:25:46 <Slereah-> I guess you could try to run what's inside and look at the results.
17:25:56 <Slereah-> And then change it to something more efficient
17:26:04 <ehird`> like, if you have a program going right 4357345 cells
17:26:11 <ehird`> i wonder if GC would be useful
17:26:18 <ehird`> Slereah-: I meant, algorithmically.
17:26:32 <Slereah-> Well, that was my algorithmical idea.
17:34:16 <wildhalcyon> [++>--<+++>>>-<+>--<<++<+>-<-] ... Optimizing ... [+++++>-->>-<+>--<<++<+>-<-] ...
17:36:11 <wildhalcyon> [+++++>-->>-<+>--<<++<+>-<-] ... Optimizing ... [+++++>-->>-<+>--<<++<>-<] ...
17:37:29 <wildhalcyon> [+++++>-->>-<+>--<<++<>-<] ... Optimizing ... [+++++>-->+>---<<++<>-<] ...
17:41:05 <Corun> Surely that can be optimized out?
17:41:12 <wildhalcyon> Here's the correct optimization: [+++++>->+>---<<<]
17:41:53 <ehird`> says it optimizes balanced <> loops into O(1)
17:42:04 <ehird`> http://mazonka.com/brainf/bff4.c
17:42:38 <ehird`> wildhalcyon: Well, that optimization of yours isn't O(1).
17:43:33 <ehird`> wildhalcyon: Take a look at its code
17:43:37 <ehird`> I don't know either, but it does do it.
17:44:27 <wildhalcyon> Bah, now I have to read code. Today is just sucky.
17:49:19 -!- Corun has quit ("This computer has gone to sleep").
17:49:32 <wildhalcyon> It is optimized, but not to O(1), only to O(n) where n is the number of cells traversed in the linear loop.
17:53:13 <ehird`> wildhalcyon: So not that much of an optimization?
17:53:30 <wildhalcyon> Well, it depends on how badly the code is written, but in general, no, not really an optimization.
17:53:43 <ehird`> Might help with compiled; e.g. lostkng.b, I guess.
17:54:03 <ehird`> Still, bfi&bfc will include it.
17:54:43 <AnMaster> wildhalcyon, how did you optimize above
17:54:48 <AnMaster> <wildhalcyon> [+++++>-->>-<+>--<<++<>-<] ... Optimizing ... [+++++>-->+>---<<++<>-<] ...
17:55:41 <AnMaster> wildhalcyon, anyway how did you do do convert it?
17:55:54 <wildhalcyon> After that, I abandoned that approach and tried something much faster
17:56:26 <wildhalcyon> Go through the loop and number each ">" or "<" by what cell it ends up pointing to
17:56:50 <wildhalcyon> so the original loop looks like this: [++1--0+++123-2+3--21++0+1-0-]
17:56:57 <wildhalcyon> Now, just sort and group the terms together
17:57:16 <wildhalcyon> Remove the extra arrows, and any cancelling positive and negative signs.
17:59:52 <wildhalcyon> Well, more instructions usually mean convenient programming. Last time I checked, esolangs were the opposite of convenient.
18:00:36 <Slereah-> What, convenient programming? We don't like convenient programming here!
18:00:37 <ehird`> wowzers, gcc can optimize pure functions
18:00:40 <ehird`> it's almost a FP compiler
18:01:15 <AnMaster> ehird`, of course it can, when marked with __attribute__((const)) iirc
18:01:58 <ehird`> makes it optimize it just like a mathematical operator
18:02:00 <ehird`> subexpression stuff, etc
18:02:01 <AnMaster> ehird`, difference is in pointers iirc
18:02:12 <ehird`> BFI_GCC_ATTR((noreturn, format(printf, 4, 5))) void bfi_die(bfi_err_code, int, int, char *, ...);
18:02:15 <ehird`> ugliest definition EVAR
18:02:39 <ehird`> I mean, I have the attribute declarations on a line, but then it's too long, so the whole funcdef itself has its own line
18:02:51 <ehird`> #define BFI_FOPEN(fn, md) \
18:02:51 <ehird`> (fopen((fn), (md)) || \
18:02:55 <ehird`> ((BFI_ERR(BFI_ERR_FOPEN, "BFI_FOPEN(%s, %s) - %s", #fn, #md, \
18:02:57 <ehird`> strerror(errno))), NULL))
18:02:58 <AnMaster> ehird`, agreed, you can just do: #ifndef __GNUC__ #define __attribute__(x) /**/ #endif iirc
18:02:59 <ehird`> which i still haven't perfected yet
18:03:15 <ehird`> i don't want to define anything not BFI_ or bfi_ prefixed.
18:03:23 <ehird`> this should be non-conflicting all the time :-)
18:04:23 <ehird`> # define BFI_ERR(code, fmt, ...) \
18:04:23 <ehird`> (bfi_die((code), __FILE__, __LINE__, (fmt), __VA_ARGS__), return (code))
18:04:24 <AnMaster> ehird`, well I'll make a C compiler called bficc then? (Basic Functional Integrated C Compiler, don't ask me what THAT means...)
18:04:49 <ehird`> i need variadic macros
18:04:54 <ehird`> the rest will be ansi c
18:05:00 <ehird`> actually, you're right.. i really want c89
18:05:06 <ehird`> this interp should work in 845793845345 years
18:05:12 <ehird`> AnMaster: could i do this:
18:05:21 <ehird`> myprintfalikemacro(a,b,("x",y,z),abc)
18:05:25 <ehird`> since cpp would treat that as one arg
18:05:35 <AnMaster> BFI_ERR1(code, fmt, arg1); BFI_ERR2....
18:05:45 <ehird`> uhh, dunno how to splice that into the printf call though
18:05:47 <AnMaster> I saw some c89 code doing something like that
18:06:03 <ehird`> i'll just do 3, for now
18:06:15 <AnMaster> ehird`, for doing one function definition, for K&R C and ANSI C
18:07:11 <AnMaster> I don't have the K&R version around still
18:07:24 <ehird`> AnMaster: the only interpreters/compilers that will be ESO-approved as reference implementations are either ANSI C89 or languages with an interp approved by es
18:07:39 <ehird`> so you can have a stack of 4 interpreters, as long as you have ANSI C89 at the bottom.
18:07:46 <ehird`> they are designed to be the most portable out there.
18:07:53 <ehird`> they don't need to be the prettiest code on earth
18:08:04 <AnMaster> ehird`, so? GCC 4 can be compiled with a C89 compiler I bet
18:08:27 <ehird`> AnMaster: you are amusing
18:08:51 <AnMaster> GCC does suported staged bootstrap
18:09:44 <AnMaster> ehird`, in any case, that means you are free to code C99 I think?
18:09:51 <ehird`> that is so not the point
18:10:25 <AnMaster> you could even use GCC specific extensions
18:11:42 <ehird`> exactly; why do you think a lot of projects don't?
18:11:45 <ehird`> because your idea is ridiculous
18:15:07 <ehird`> void *foo = BFI_MALLOC(43594357934857435);
18:15:12 <ehird`> void *foo = (malloc(43594357934857435) || (((bfi_die((BFI_ERR_OOM), "test.c", 6, ("BFI_MALLOC(%s)"), ("43594357934857435")), return (BFI_ERR_OOM))), ((void *)0)));
18:16:10 <AnMaster> ehird`, and this will fail at:
18:16:37 <ehird`> AnMaster: a large malloc to test my error handling
18:16:45 <ehird`> but that's because the user is an idiot
18:17:06 <ehird`> void *foo = (malloc(++x) || (((bfi_die((BFI_ERR_OOM), "test.c", 6, ("BFI_MALLOC(%s)"), ("++x")), return (BFI_ERR_OOM))), ((void *)0)));
18:17:10 <ehird`> because the argument is stringified
18:17:16 <ehird`> i did that on purpose, to avoid re-evaluation
18:17:26 <AnMaster> ehird`, heh , the # operator iirc?
18:17:39 <ehird`> it may be less useful since you don't get the actual int, actually
18:17:41 <ehird`> and yes, it is, AnMaster
18:17:53 <ehird`> i may make it reevaluate for the sake of better error messages
18:17:56 <ehird`> and assume the caller isn't an idiot.
18:18:12 <AnMaster> ehird`, BFI_MALLOC(rand()) *runs*
18:18:26 <ehird`> AnMaster: I said something about the caller not being an idiot
18:18:50 <ehird`> crappers, how am i going to make BFI_MALLOC expressionable then
18:18:59 <ehird`> it needs to be able to return from the function it's called in
18:19:03 <ehird`> that's why its a macro in the first place
18:19:16 -!- wildhalcyon has quit ("ChatZilla 0.9.81 [Firefox 2.0.0.11/2007112718]").
18:19:25 <ehird`> AnMaster: which requires a setjmp.
18:19:33 <AnMaster> or 1) a macro that calls 2) a function for most of it's stuff
18:19:35 <ehird`> and a variable decl, which i also can't expressionize
18:19:42 <ehird`> and, AnMaster, that still doesn't help
18:19:55 <ehird`> i need to use BFI_MALLOC in an expression, because of 'void *p = BFI_MALLOC(...)'
18:20:01 <ehird`> but in the function doing that
18:20:06 <ehird`> i must return BFI_ERR_OOM
18:20:21 <ehird`> which i cannot do, as far as i can see, in expression context
18:20:24 <ehird`> there is a gcc extension:
18:20:30 <ehird`> but, well, gcc extension.
18:20:59 <AnMaster> ehird`, idea: use a different macro language first
18:21:13 <AnMaster> then compile result using normal C preprocessor
18:21:46 -!- mental has changed nick to lament.
18:28:32 <AnMaster> Slereah-, that's an anagram of my nick isn't it?
18:29:01 <AnMaster> however, aspell doesn't accept "Steraman" as valid, nor can I find any sub parts of it that are valid
18:29:32 <Slereah-> But it has a certain super hero ring to it.
18:29:42 <Sgeo[College]> I added two entities more than the slide we're copying had
18:32:01 -!- RedDak has quit (Remote closed the connection).
18:32:59 <Slereah-> ais. Gregor R. Rodger the Great.
18:33:07 <Slereah-> There seems to be a trend here.
18:34:13 -!- ehird` has quit (Read error: 113 (No route to host)).
18:35:59 -!- Sgeo[College] has quit ("http://www.mibbit.com ajax IRC Client").
18:41:25 -!- ehird` has joined.
18:43:59 -!- oerjan has joined.
18:50:06 * oerjan ponders: Is it a good or a bad thing that dying of boredom takes a long time :D
18:51:48 <oerjan> wouldn't that risk recursion...
18:59:42 -!- timotiis has joined.
19:01:40 <ehird`> bsmntbombdood: that's pretty silly
19:02:00 <ehird`> Slereah-: oh wow, *right click*. as if apple still sold one-button mice.
19:02:28 <Slereah-> Yes. Now they have a middle button, that doesn't work like a right click at all :o
19:02:48 <ehird`> they have left, right.
19:02:58 <ehird`> the mighty mouse also has a 3d scrollwheel which can be clicked and two side buttons
19:03:00 <ehird`> but that's not important.
19:03:10 <ehird`> and their right click most certainly works properly...
19:03:12 <Slereah-> Then my mom needs to buy a new mac :o
19:03:16 <ehird`> Right click, context menu, oh wao.
19:05:18 <bsmntbombdood> http://bp0.blogger.com/_XNXLcHFsW1U/R8Z894yBmcI/AAAAAAAACaQ/p4RK6SwloFM/s1600-h/306139.jpg
19:15:53 -!- slereah_ has joined.
19:15:56 -!- Slereah- has quit (Read error: 104 (Connection reset by peer)).
19:19:44 <bsmntbombdood> i know it's cliche, but i'm thinking of traveling and then starting my distillery
19:23:12 <slereah_> If you're travelling, don't travel to the past then!
19:56:31 <ehird`> crap! i can't use getopt for bfi
19:56:47 <ehird`> because: it's not standard C. :)
19:59:18 <RodgerTheGreat> Do you think it'd be a neat idea if my assembler could be instructed that a given chunk of data memory is "for constants" (ie, they will never be written to during execution), and then have it search the rest of the program for that value?
19:59:59 <RodgerTheGreat> Like, if an instruction anywhere used the value 13, and you're looking for a 13, you just give the data half of that instruction as the address your constant 13 is stored, rather than using additional memory
20:01:12 <RodgerTheGreat> if used improperly, you could inadvertently create some really nasty self-modifying code situations, but if used properly, you could potentially squeeze many bytes out of the finished binary
20:03:47 <ehird`> RodgerTheGreat: Whatever it is it should be done automatically.
20:03:50 <RodgerTheGreat> I think if I combine this with some other ideas, I'll wind up with a very size-efficient compiler with *spectacular* results in out-of-bounds errors
20:03:58 <ehird`> RodgerTheGreat: No -- I mean
20:04:29 <RodgerTheGreat> It's much better if users simply declare data as "constant" and then everything else is automated
20:05:07 <RodgerTheGreat> well, not doing that and still having it work is on the order of the halting problem
20:07:27 <oerjan> as a general rule, you should not try to solve the halting problem in a hobby project.
20:07:43 <ehird`> RodgerTheGreat: anyway, herueruerueruerusitics
20:07:48 <RodgerTheGreat> exactly, which is why I'm doing my way instead of ehird`'s way
20:10:36 <ehird`> should bfi/bfc parse brainfuck from a file, or read it in first then parse a string?
20:18:12 <ehird`> bfi_ins *bfi_parse(FILE *f, bfi_err_code *err)
20:18:12 <ehird`> bfi_ins *res = (malloc(sizeof(bfi_ins)) || (((void *)0)), ((void *)0));
20:18:12 <ehird`> if (!(res)) { if ((err)) { *(err) = (BFI_ERR_OOM); } return ((void *)0); };
20:48:23 <ehird`> in brainfuck, you actually don't need a move instruction, do you?
20:48:27 <ehird`> i mean, a compiler doesn't need one
20:48:37 <ehird`> you do, for loops that >
20:48:50 -!- olsner has joined.
20:49:39 -!- Sgeo[College] has joined.
21:05:41 -!- Sgeo[College] has quit ("http://www.mibbit.com ajax IRC Client").
21:21:14 <ehird`> we're no strangers to rick roll
21:22:35 <oerjan> NEVER GONNA CHOP YOU INTO LITTLE PIECES
21:23:02 <ehird`> NEVER GOING TO TELL A LIE AND EAT YOUR FAECES
21:29:55 <slereah_> Now this is my story, all about how.
21:30:04 <slereah_> My life got twisted, turned upside down!
21:30:12 <slereah_> And I'd like you to just sit right there!
21:30:24 <slereah_> I'll tell you I became the prince of a tow called Bel Air.
21:33:06 <bsmntbombdood> it would appear to me chocolate rain is about discrimination
21:40:36 <bsmntbombdood> hahahahahhaahahha it's chocolate rain: http://encyclopediadramatica.com/Image:Chocolatepee.jpg
21:40:51 <olsner> now *that's* a rickroll... luring someone into performing a cover of it :P
21:46:08 -!- RedDak has joined.
21:49:16 -!- olsner has quit ("Leaving").
21:50:26 -!- oerjan has quit ("Good night").
22:00:30 -!- ihope has joined.
22:08:51 -!- jix has quit ("CommandQ").
22:44:10 <ihope> Stephen Malinowski's Fantasy in F: http://www.vimeo.com/93612
22:44:45 * slereah_ is trying to make a tic tac toe on the love machine 9000
22:45:26 <slereah_> And trying to do it before tomorrow :o
22:45:47 <ihope> I like it. My mom finds it disastrously dissonant.
22:49:33 <ihope> I would say that alliteration is effortless emphasis, but it took me about five minutes to come up with the phrase "effortless emphasis".
22:49:43 -!- slereah_ has changed nick to Slereah.
22:50:41 <ihope> "I hate the piano, with its diabolical diatonic scales."
22:58:05 <ihope> And is that French?
23:03:27 <Slereah> It was also in Look Around You.
23:03:38 <Slereah> The 19 forbidden notes, in LA BOITE DIABOLIQUE
23:06:14 -!- RedDak has quit (Remote closed the connection).
23:11:39 <ihope> lament: didn't you once have a little IRC thing called kilbot, which ran a simple game where people shot each other and tried to stay alive?
23:11:45 <ihope> Do you still have that?
23:28:27 -!- timotiis has quit ("leaving").
23:30:51 -!- kilbot has joined.
23:31:01 <ehird`> Some people, when confronted with regular expressions, always think "I know,
23:31:02 <ehird`> I'll paste that Jamie Zawinski quote, and people will think I'm clever!"
23:31:02 <ehird`> These people have a problem.
23:31:24 <kilbot> Opening a new game. Say !join to join. Say !start again to start.
23:31:31 <kilbot> lament: You have already joined.
23:31:59 <lament> you have to say start before saying join.
23:32:07 <lament> i mean, someone has to say start.
23:32:56 <ehird`> Slereah: Sometimes annoying, sometimes clever. Ex-Netscape hacker who now owns a nightclub with wifi and stuff.
23:32:56 <kilbot> lament shoots at ehird`
23:32:59 <kilbot> ehird` shoots at lament
23:33:24 <lament> it was probably you who suggested that stupid three lives idea
23:33:41 <ehird`> Slereah: Some people, when confronted with a problem, think βI know, Iβll use regular expressions.β Now they have two problems.
23:34:03 <kilbot> sender + : You have already shot at ehird`
23:34:07 <kilbot> sender + : You have already shot at lament
23:34:16 <ehird`> lament: show me the src!
23:34:19 <ehird`> i will make it awesome.
23:34:25 -!- kilbot has quit (Remote closed the connection).
23:34:44 <lament> ehird`: i assure you it would be a better idea to start from scratch.
23:34:51 <lament> the code is not pretty
23:34:59 <lament> also as you can see by the "sender +"
23:35:01 <ehird`> so I can rewrite it from scratch, obviously
23:35:17 <lament> i was actually in the process of changing the game around when i abandoned it
23:36:04 <lament> you don't want the source! the entire message handler is one big multi-level if statement.
23:36:16 <lament> why don't you rewrite it in erlang or haskell
23:36:30 <lament> or, for bonus points, in both
23:38:07 <lament> http://z3.ca/~lament/killbot.py
23:38:16 <lament> http://z3.ca/~lament/irclib.py
23:39:21 <lament> ignore that it's in python and pretend that it's in perl
23:39:27 <lament> then the ugly code makes more sense
23:40:24 <ehird`> lament: It's not THAT bad.
23:40:46 <lament> it's pretty bad. the only goodness in it is irclib.py, which isn't mine.
23:41:02 <ehird`> lament: I may rewrite it in Haskell.
23:41:12 <ehird`> Using Network.IRC -- though I wil lwrite my own lib sometime.
23:41:23 <ehird`> lament: Is there something actually specifying the game? The code is hard to follow.
23:42:20 <lament> it would be easier just to ask me
23:42:36 <lament> especially since the rules of the game changed during development
23:42:55 <lament> the game i originally implemented went like this:
23:43:14 <lament> somebody says !start, then people say !join, then somebody says !start again which starts the game.
23:43:34 <lament> then you say !kill nick to kill somebody (if both you and they are players)
23:44:10 <lament> or you can say !friend nick, which is really stupid because it means that now you can't kill them, but they still can kill you.
23:44:23 <lament> once you kill somebody, they're dead.
23:44:40 <lament> the game ends when the remaining players are all mutual friend.
23:45:11 <lament> so then i modified those rules so that people have 2 lives
23:45:19 <ehird`> why would you !friend nick
23:45:21 <lament> and you can only shoot the same person once
23:45:35 <lament> so it takes cooperation of two people to kill somebody
23:46:15 <lament> so with two players, A shoots B, B shoots A and the game stalls.
23:46:56 <lament> i don't think killbot checked for that, so they had to !friend each other for a shared victory.
23:47:11 <lament> feel free to come up with less brain-damaged rules.
23:48:43 <ihope> Exactly the same as that, except you can shoot people as many times as you want, the game ends after no shooting has been done for a while, and you can raise players from the dead. >:-)
23:48:53 <ehird`> ihope: Now THAT sounds fun!
23:52:25 -!- Sgeo has joined.
23:53:24 <lament> ehird`: do it in erlang!
23:53:44 <ihope> Do it in Epigram! >:-)
23:53:54 <lament> ehird`: erlang looks interesting
23:53:58 * Sgeo almost mistook this for Sine
23:54:03 <Sgeo> was wondering why lament was here
23:54:41 <Sgeo> I'd dragged so many people from here to sine
23:55:22 <ihope> I think it's been described as a semi-private chat server.
23:55:41 <ihope> With roughly 30 people on it.
23:56:26 -!- calamari has joined.
23:56:32 <ihope> No password or anything is required, but you do need to know the server name and port number.
23:56:41 <ihope> The port number's relatively guessable. :-P
23:56:42 <ehird`> which isn't that hard if you google for it actually.
23:57:47 <lament> never heard of "Creatures".
23:59:47 <Sgeo> Did I mention the new safety features I'm planning
00:00:01 <Sgeo> Oh, ehird` wasn't there. Hey ehird, I'm planning some "safety" features
00:00:01 <calamari> not really.. I guess I lost interest
00:00:17 * Sgeo waits for ehird` to boil over
00:12:02 -!- Corun has joined.
00:22:13 -!- ehird` has changed nick to kilbot.
00:22:18 -!- kilbot has changed nick to ehird.
00:28:54 -!- Tritonio_ has quit (Remote closed the connection).
01:02:10 -!- olsner has joined.
01:34:29 -!- lament has changed nick to lamenta.
01:34:44 -!- lamenta has changed nick to lament.
01:35:40 -!- sebbu has quit ("@+").
01:35:49 -!- lament has changed nick to lamentb.
01:39:50 -!- ehird has quit (Read error: 104 (Connection reset by peer)).
01:51:35 -!- lifthrasiir has quit (brown.freenode.net irc.freenode.net).
01:51:36 -!- puzzlet has quit (brown.freenode.net irc.freenode.net).
01:51:48 -!- puzzlet has joined.
01:51:48 -!- lifthrasiir has joined.
02:27:08 -!- ihope has quit ("ChatZilla 0.9.81 [Firefox 2.0.0.12/2008020121]").
03:09:48 -!- calamari has quit ("Leaving").
03:27:01 -!- Corun has quit ("This computer has gone to sleep").
03:34:15 -!- yu has joined.
03:41:32 * yu made my client keep its nick and not revert to immibis!
03:41:57 -!- yu has changed nick to immibis.
03:44:57 -!- Slereah has quit (Read error: 104 (Connection reset by peer)).
03:45:50 -!- Slereah has joined.
03:59:16 -!- Slereah has quit (Read error: 104 (Connection reset by peer)).
04:00:06 -!- bsmntbombdood has quit (brown.freenode.net irc.freenode.net).
04:02:40 -!- Slereah has joined.
04:17:12 -!- bsmntbombdood has joined.
04:18:50 -!- slereah_ has joined.
04:21:32 -!- Slereah has quit (Read error: 104 (Connection reset by peer)).
04:51:22 -!- olsner has quit ("Leaving").
05:24:45 -!- immibis has quit ("Can you see this quit msg?").
05:36:34 -!- immibis has joined.
05:41:26 -!- Sgeo has quit (Read error: 110 (Connection timed out)).
06:04:50 -!- immibis has quit ("Hi Im a qit msg virus. Pls rplce ur old qit msg wit tis 1 & hlp me tk ovr th wrld of IRC. and dlte ur files. and email ths to).
06:10:02 -!- slereah_ has quit (Read error: 104 (Connection reset by peer)).
06:11:15 -!- slereah_ has joined.
06:18:42 <bsmntbombdood> i always say "i don't like drinking", and then i get a bottle of bourbon and remember
06:28:48 -!- immibis has joined.
07:08:34 -!- oerjan has joined.
07:22:14 -!- immibis has quit ("Hi Im a qit msg virus. Pls rplce ur old qit msg wit tis 1 & hlp me tk ovr th wrld of IRC. and dlte ur files. and email ths to).
07:25:03 -!- immibis has joined.
07:51:22 -!- immibis has quit (Remote closed the connection).
07:56:05 -!- immibis has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:06:46 -!- immibis has quit ("Hi Im a qit msg virus. Pls rplce ur old qit msg wit tis 1 & hlp me tk ovr th wrld of IRC. and dlte ur files. and email ths to").
08:37:27 -!- oerjan has quit ("leaving").
11:03:05 -!- RedDak has joined.
11:34:28 -!- RedDak has quit (Remote closed the connection).
11:54:25 <oklopol> bsmntbombdood: don't worry, i was at a friends house, browsing porn, ircing and coding.
11:56:42 <oklopol> which reminds me, god i made a braindead game :DD
11:56:51 <oklopol> www.vjn.fi and check out crossworm
11:56:59 <oklopol> i haven't yet found one person who can play that
11:57:04 <oklopol> except for myself of course
12:14:42 -!- sebbu has joined.
13:25:31 -!- jix has joined.
13:31:48 -!- jix has quit ("CommandQ").
14:02:15 -!- Corun has joined.
14:53:15 <slereah_> Hm. I'm thinking of this for the Andrei Machine I/O.
14:53:55 <slereah_> At each step, the graph is travelled from 0 (or 1), to the next node. If there's more than one choice, it chooses the node of the lowest type.
14:54:29 -!- RedDak has joined.
14:54:35 <slereah_> Type 2 would increase a register, 3 would output the register, and 4 be transformed in some sort of input.
14:54:54 <slereah_> I'm not too sure it would be BF complete, but it's a start.
15:29:51 -!- Corun has quit ("This computer has gone to sleep").
15:30:25 -!- jix has joined.
16:04:47 -!- RedDak has quit (Remote closed the connection).
16:19:52 -!- oklofok has joined.
16:20:20 -!- oklopol has quit (Read error: 104 (Connection reset by peer)).
16:24:32 <slereah_> Holy hell. Esolang is the first google result for bounded storage machine :o
16:24:50 <slereah_> But then again, there's only 7 results.
16:28:27 -!- Corun has joined.
17:06:47 -!- jix has quit (Read error: 110 (Connection timed out)).
17:14:01 -!- Tritonio_ has joined.
17:18:26 -!- GregorR-L has joined.
17:19:31 -!- ehird` has joined.
17:22:59 -!- Corun has quit (Read error: 110 (Connection timed out)).
17:31:14 -!- wildhalcyon has joined.
17:33:06 -!- Corun has joined.
17:35:13 <ehird`> i wonder if this thing still works.
17:36:35 <ehird`> shut up. my netcat is br0king
17:43:03 <ehird`> $ echo '((lambda (x) x) (lambda (x) x))'|python lisp.py
17:43:03 <ehird`> ((lambda (x) x) (lambda (x) x))
17:43:06 <ehird`> (error) Unbound variable lambda
18:09:16 -!- lithpbot has joined.
18:09:16 -!- lithpbot has quit (Remote closed the connection).
18:10:01 -!- lithpbot has joined.
18:10:19 -!- lithpbot has quit (Read error: 104 (Connection reset by peer)).
18:10:53 -!- lithpbot has joined.
18:11:46 <ehird`> > ((lambda (x) x) (lambda (x) x))
18:12:28 <slereah_> ((lambda (x) (x x)) (lambda (x) (x x)) )
18:12:34 <slereah_> > ((lambda (x) (x x)) (lambda (x) (x x)) )
18:12:35 -!- lithpbot has quit (Remote closed the connection).
18:18:42 -!- lithpbot has joined.
18:18:44 <ehird`> slereah_: should be ok now
18:18:53 <slereah_> > ((lambda (x) (x x)) (lambda (x) (x x)) )
18:18:54 <lithpbot> RuntimeError: maximum recursion depth exceeded in cmp
18:19:09 <ehird`> > ((lambda (x) (x x) )
18:19:23 <ehird`> > ( (lambda (x) (x x) ) )
18:19:28 <ehird`> > ((lambda (x) (x x)))
18:19:32 -!- Corun has quit (Read error: 110 (Connection timed out)).
18:19:38 <slereah_> > ((lambda (x) (x x)) (lambda (x) (x x)) )
18:19:38 <lithpbot> RuntimeError: maximum recursion depth exceeded in cmp
18:20:12 <ehird`> slereah_: take it to #estoeric-blah?
18:25:34 -!- oerjan has joined.
18:25:37 -!- lithpbot has quit (Read error: 104 (Connection reset by peer)).
18:26:22 -!- lithpbot has joined.
18:27:33 -!- lithpbot has quit (Read error: 104 (Connection reset by peer)).
18:36:09 -!- lithpbot has joined.
18:37:23 -!- lithpbot has quit (Read error: 104 (Connection reset by peer)).
18:37:31 -!- lithpbot has joined.
18:40:06 -!- lithpbot has quit (Read error: 104 (Connection reset by peer)).
18:40:12 -!- lithpbot has joined.
18:41:10 -!- olsner has joined.
18:41:30 -!- lithpbot has quit (Read error: 104 (Connection reset by peer)).
18:41:35 -!- lithpbot has joined.
18:42:54 -!- RedDak has joined.
18:47:39 -!- lithpbot has quit (Read error: 104 (Connection reset by peer)).
18:48:27 -!- lithpbot has joined.
18:48:56 -!- lithpbot has quit (Read error: 104 (Connection reset by peer)).
18:49:01 -!- lithpbot has joined.
18:49:19 -!- lithpbot has quit (Read error: 104 (Connection reset by peer)).
18:49:24 -!- lithpbot has joined.
18:49:54 -!- lithpbot has quit (Read error: 104 (Connection reset by peer)).
18:50:00 -!- lithpbot has joined.
18:52:26 -!- lithpbot has quit (Read error: 104 (Connection reset by peer)).
18:52:32 -!- lithpbot has joined.
18:56:31 -!- ais523 has joined.
18:58:14 -!- RedDak has left (?).
19:00:36 <ais523> ehird`: eso-std.org is giving me 403s
19:00:40 <oerjan> is this supposed to be a technical term? i have some vague bell ringing
19:00:43 <ais523> presumably because there isn't anything there yet?
19:00:44 <ehird`> ais523: Quite expected.
19:01:03 <ais523> oerjan: 403 means that the website understands the request, but thinks you aren't allowed to know what the result would be
19:01:03 <ehird`> Also, I am not on my mac (again); therefore it might be a bit before ESO1 is completed.
19:01:13 <slereah_> Kolmogorov is always ranting about it in his article.
19:01:25 <slereah_> It's apparently some computing method done by Markov
19:01:27 <oerjan> ais523: er i was referring to normal algorithm
19:01:29 <ehird`> I am considering changing standard format.
19:01:45 <ais523> ah, the perils of asynchronous communication
19:01:50 <ehird`> (Side note: with all this un-maccery stopping me doing stuff, I should really consider a macbook...)
19:02:58 -!- lithpbot has quit (Read error: 104 (Connection reset by peer)).
19:03:14 -!- ehird` has changed nick to ehird.
19:04:10 -!- slereah_ has changed nick to Slereah.
19:04:33 <oerjan> ais523: although i didn't know what 403 meant either :)
19:05:20 <Slereah> There's a video on Youtube, with a fat indian chick teaching about finite state automaton.
19:18:37 -!- Sgeo has joined.
19:37:08 * SimonRC likes the rubbet-band gun on the UF LotD
19:37:26 <SimonRC> it can hold 288 rounds, and fire them all in 7 sec
19:46:45 -!- jix has joined.
19:52:50 <oerjan> I opened the window, and in flew Enza
19:53:12 * Sgeo wnats to have Lucid dreams
19:53:30 <SimonRC> it takes too much dedication though
19:53:48 <ehird> Plus I'm so tired lately that I barely remember my dreams.
19:53:50 * Sgeo listens to http://www.stevepavlina.com/podcasts/Pavlina-010-Lucid-Dreaming.mp3 hopefully
19:54:13 <Sgeo> Podcast about lucid dreaming apparently
19:54:21 <SimonRC> OTOH, setting aside 10-20 mins at the beginning of each day to write down dreams is supposed to be a good start
19:54:30 <SimonRC> as is reading all about it all day
19:54:38 <SimonRC> but the effect of that is breif
19:56:26 -!- jix has quit (Nick collision from services.).
19:56:38 -!- jix has joined.
19:57:44 <Sgeo> I read something in today's thread for xkcd about checking your irl watch habitually, which should supposedly carry over to dreams, where you'd notice something is wrong
19:59:03 * ais523 finds that they can usually wake up whenever they want when they're aware they're in a dream
19:59:05 <SimonRC> it helps to think about ld while doing it though
19:59:22 <oerjan> but but i already am a neurotic watch-checker. few lucid dreams though...
19:59:33 <SimonRC> do you check in in dreams?
19:59:49 <SimonRC> actually I cursed at myself recently...
20:00:01 * Sgeo doesn't normally wear a watch
20:00:06 <SimonRC> I got into a holy grail of semi-sleep states...
20:00:28 <SimonRC> conscious (though very tired) while my senses were bign disconnected from my body
20:01:11 <SimonRC> I sensed a loud buzzing, and began to get a "buzzing"/"electric" feeling creeping over my body...
20:01:35 <SimonRC> had I stayed still, I should have gone quickly into lucid dreaming
20:04:33 -!- slereah_ has joined.
20:04:55 <SimonRC> for some reason, the topic makes my stomach churn a bit
20:05:01 -!- Slereah has quit (Read error: 104 (Connection reset by peer)).
20:05:30 <SimonRC> but I get the same feeling on AFD, and I don't think envy applies there
20:06:32 <Sgeo> Oh Articles for Deletion
20:06:56 <SimonRC> inhabited mostly by people who thinke they're dragons
20:07:45 <slereah_> http://www.encyclopediadramatica.com/Alynna_Vixen
20:10:13 <ehird> SimonRC: people like that are hilarious
20:10:30 <ehird> http://www.otherkin.net/index.html <-- best. webpage. ever.
20:13:39 <SimonRC> well, it seems I have got distracted by all thwe furry links...
20:13:58 <SimonRC> Hell the 2040s are going to be fun
20:14:47 <SimonRC> C'mon we need more Christian suicide bombings of human genetic engineering clinics
20:15:06 <ehird> as soon as human genetic engineering gets really advanced
20:15:10 <ehird> we must kill all the furries
20:15:15 <ehird> lest we see what they unleash onto us
20:15:25 <SimonRC> and when I say Christian I mean the insane "god hates gays" righties, not the rest
20:15:32 <SimonRC> ehird: yup, you read my mind
20:16:07 <SimonRC> I guess 2043 will be about the time some people start trying to improve their children in the direction of furriness
20:16:22 <ehird> SimonRC: It's funny, I've heard so much about these 'non-totally-crazy christians' and all the ones I've seen have been ones who basically don't believe in anything christian.
20:16:24 <SimonRC> on the upside, gay people will sufddenly be getting much less hate
20:16:29 <ehird> Gradually they all become agnostics or atheists.
20:16:46 <ehird> SimonRC: Well, there's Anonymous to think about then.
20:17:14 <SimonRC> anyway, otherkin usually beleive they are a re-incarnation of a dragon are the victims of magical soul-trnasfer or whatever
20:17:40 <SimonRC> this makes them more emo that furriness olone would
20:17:46 <slereah_> 2043 is when furry will be 50 years old :o
20:17:46 <slereah_> Well, there's plenty of elves-vampires-wolves-faery to go around, too
20:17:52 <SimonRC> or at maybe more depressed
20:18:10 * SimonRC once again shows his Sign of the Times
20:18:48 <SimonRC> it is triangular, line a road warning sign, with an exponential growth curve plotted on a graph...
20:18:50 -!- GregorR-L has quit (Read error: 110 (Connection timed out)).
20:19:12 <SimonRC> the rectangular bit below says "warining, 21st century ahead"
20:21:09 -!- ais523_ has joined.
20:21:39 -!- ais523 has quit (Nick collision from services.).
20:21:44 -!- ais523_ has changed nick to ais523.
20:24:20 -!- ehird has quit ("Leaving.").
20:24:58 <SimonRC> hmm, I thought this conv was on a different channel...
20:25:42 -!- ehird has joined.
20:25:45 <SimonRC> Weird: I was tralking about furries here and programming on that other place.
20:25:46 <slereah_> We're discussing monads on #isharia and furries here.
20:26:17 <SimonRC> deedle-deedle-deedle-deedle
20:26:55 <slereah_> Think of a boot up a man's ass forever.
20:27:47 <ehird> #isharia is empty.
20:29:44 -!- RedDak has joined.
20:30:07 <oerjan> unless you're in Discworld
20:42:31 * ais523 is wondering why bsmntbombdood aimed a message at oklofok when neither has said anyting here for quite a while
20:42:35 <oerjan> mad science if there ever was
20:47:02 <Sgeo> I remember seeing online some device that was supposed to help you have lucid dreams..
20:47:43 <Sgeo> No, it was something you wore over your eyes, and when it detected REM, it flashed lights repeatedly
20:47:52 <ehird> apparently; no longer sold
20:48:03 <Sgeo> So you had to train yourself whenever you see flashing lights, to do a reality check
20:48:21 -!- wildhalcyon has quit ("ChatZilla 0.9.81 [Firefox 2.0.0.11/2007112718]").
20:48:25 <ehird> Too many lucid dreamers are new agers. Sigh.
20:48:37 <ehird> WHOOO USE YOUR DREAMS TO TOUCH INTO YOUR SPIRITUAL ENERGY AND WRAP AROUND THE NATURE
20:49:52 * SimonRC hits people over the head with a blog, particularly this post: http://www.overcomingbias.com/2007/04/universal_fire.html
20:58:20 <Sgeo> "As you get older, it will be even harder to lucid dream, and it starts getting difficult during the teenage puberty stage." http://www.wikihow.com/Lucid-Dream
21:04:13 -!- ehird has quit (Read error: 104 (Connection reset by peer)).
21:04:31 -!- ehird` has joined.
21:05:14 -!- ehird` has changed nick to ehird.
21:07:44 -!- ehird has quit (Client Quit).
21:11:16 <ais523> Sgeo: look what you've done now!
21:11:48 -!- Judofyr has joined.
21:12:03 <ais523> you welcomed ehird back and they quit immediately
21:13:19 <ais523> hmm... it seems I'm a bit more successful than Sgeo in welcoming people...
21:16:23 <ais523> Judofyr: GregorR is probably the best person to ask about that
21:16:35 <Judofyr> I'm reading his tutorial now
21:18:48 -!- ehird has joined.
21:26:12 -!- ehird has quit ("Konversation terminated!").
21:26:41 -!- ehird has joined.
21:41:54 * Sgeo wants multiplayer lucid dreams!
21:44:10 -!- ehird has quit ("Konversation terminated!").
21:44:31 -!- ehird has joined.
21:47:17 <Sgeo> dreamviews.com seems interesting
22:06:15 -!- Corun has joined.
22:08:27 -!- ais523 has quit ("I'll soon be too tired to say anything intelligible").
22:10:19 * ehird tries to think what a fun game to play over irc would be
22:12:29 -!- jix has quit ("CommandQ").
22:20:11 -!- Judofyr has quit ("- nbs-irc 2.36 - www.nbs-irc.net -").
22:24:04 -!- timotiis has joined.
22:29:45 <bsmntbombdood> oklofok: lol: http://online.wsj.com/public/article/SB120425355065601997-7Bp8YFw7Yy1n9bdKtVyP7KBAcJA_20080330.html?mod=tff_main_tff_top
22:56:59 -!- oerjan has quit ("Good night").
23:02:39 -!- bigode has joined.
23:25:39 -!- RedDak has quit (Remote closed the connection).
23:34:44 -!- immibis has joined.
23:42:23 -!- bigode has quit ("http://www.mibbit.com ajax IRC Client").