00:00:17 pikhq, are redundant functions better than a switcher, or merely "acceptable"? 00:00:32 Better. 00:00:39 howso? 00:01:46 Let's say I'm dealing with both chars and Lnums? 00:02:44 pikhq: I think {*} is a crap name 00:02:56 I would prefer: <*$list> 00:02:59 or <#$list> 00:03:08 Because, that obscures the semantics of {...} i think. 00:04:04 pikhq: Anyway, I can leave that out for now. 00:04:35 pikhq: Now -- should parsing be on files/streams or strings? 00:04:39 (Unicode strings, of course.) 00:04:51 Strings, I think. 00:04:56 I think strings, because I mean all code using eval and uplevel and crap is going to involve parsing strings anyway. 00:05:03 and wrapping a string in a file is a bad solution when it's so common. 00:05:09 So: If parsing is fast and simple on strings.. 00:07:45 pikhq: So, all agreed. 00:07:51 pikhq: Now, obviously (char *) is not a string. 00:08:25 I guess you're not talking about PSOX STRINGs? 00:08:26 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 Sgeo: PSOX PSOX PSOX PSOX PSOX. 00:09:09 Dunno. 00:10:03 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:22 Well, of course. 00:10:31 That's in Tcl, and so it must be in Ptl. 00:10:40 indeed 00:11:14 pikhq: http://www.icu-project.org/ Hmm. 00:12:23 pikhq: They use UTF-16. 00:12:36 Personally, I prefer UTF-8, but with such mature-looking libraries... what do you think? 00:12:37 Ah. 00:12:41 Hmm. 00:13:12 Hell; if you've got mature libraries for UTF-16, why not? 00:13:17 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 It's just all the conversion at both ends I'm worried about.. 00:16:02 pikhq: Thoughts? 00:16:13 Oh, and since we're clogging up #esoteric with non-esoterica: #ptl 00:17:22 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 What are the most common logic operations? 00:31:08 Sgeo, I don't understand what you mean 00:31:16 faxathisia, NOT, AND, OR, those kinds 00:31:30 I'm putting NOT first, but what other ones are needed most? 00:31:43 Maybe AND and OR? 00:31:46 in that order? 00:32:22 XMOR 00:32:23 for bit-twiddling XOR is also important 00:32:36 XMOR? 00:32:44 oerjan, so should XOR go after OR? 00:33:04 exclusive-maybe-or 00:33:30 it's the operation found in natural languages 00:33:41 the english or. 00:34:32 Should PSOX use the bitewise operators, or the boolean? 00:34:42 Or should both be fit in? 00:35:13 well, the bitewise squingies can do boolean, but boolean operators are more quandriligious 00:35:20 What? 00:35:38 I recommend both, myself. 00:35:51 boolean AND, then bitwise AND 00:36:32 err... don't you have types? 00:36:38 can't you like, overload 00:36:49 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:49:58 Sgeo: Just NAND. 00:50:03 Sgeo: Don't implement any others. 00:50:10 To implement others would be UTTERLY non-esoteric. 00:50:22 GregorR, I don't want PSOX to be painful to use 00:50:29 Whaaaaaaaaaaaaaaa? :P 00:50:59 -!- ihope__ has changed nick to iihop. 00:51:02 Oops. 00:51:22 Cool. I grew an extra i. 00:51:47 * oerjan politely doesn't mention what he lost 00:52:13 iihop: congratulations, now you have the normal amount. 00:52:36 Oh, wonderful. 00:52:57 iihop is the new IHOP restaurants sponsored by Apple. 00:53:10 -!- iihop has changed nick to iIHOP. 00:53:11 iIhop. 00:53:13 Why didn't I think of that? 00:53:41 Capitalization counts in XChat's nick coloration 00:55:55 nobody sane uses nick coloration 00:56:42 ehird`_: why's that? 00:56:42 ehird`_, please do stop calling me insane 00:57:02 Also, I don't think I should really include the VARG() variations 00:57:05 not that i take that as an insult, i'm fairly insane. 00:57:06 I don't 00:57:06 not directly, anyway 00:57:13 :D 00:57:17 Sgeo: of course you are. must i search for the cheshire cat quote again? 00:57:23 oklopol: it's very distracting! ;) 00:57:36 cheshire cat quote? 00:57:41 ok then. 00:58:07 well, it's fairly *ugly*, and most nick colorings always fail to distinguish the nicks that would most need distinguishing 00:58:11 for some reason 00:58:19 but it's a nice idea! 00:58:29 "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:58:55 * 00:58:59 :) 00:59:07 If you want nick coloring done right, base it upon the md5 sum of the name. :p 00:59:18 I'm done implementing a good portion of domain4 00:59:20 Woohoo! 00:59:33 pikhq: randomization is ok, but you can do better. 00:59:56 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 Perhaps randomization + comparing to already-assigned colors? 01:00:02 yeah 01:00:30 plus weighing by nick lengths and hamming distance to existing nicks 01:00:34 or a better distance 01:01:06 nick coloring is art 01:02:11 Use neural nets! 01:03:32 This is nick coloring: http://en.wikipedia.org/wiki/Self-organizing_map 01:05:05 oklopol: No, inverse hamming distance. 01:05:17 You want to tell apart "foodlepip" and "foodlepop" more than "sad" and "AifnAk" 01:05:36 ehird`_: i didn't specify the function, just that you need to take into account the hd, 01:05:37 *. 01:06:19 -!- oklopol has changed nick to AifnAk. 01:06:22 wow 01:06:27 this is one cool nick 01:06:36 why didn't i invent it 01:06:41 so simple.. 01:08:44 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:33 pikhq: Sorry. 01:17:40 Hmm? 01:17:41 I can't seem to join #ptl. 01:17:41 Invite me? 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 pikhq, http://trac2.assembla.com/psox/browser/trunk/spec/psox-utils.txt 01:48:07 thoughts? 01:50:52 oerjan? 01:50:58 RodgerTheGreat? 01:51:01 GregorR? 01:52:10 Pong. 01:52:12 ok 01:52:23 Comments on what I posted? 01:52:31 http://trac2.assembla.com/psox/browser/trunk/spec/psox-utils.txt 01:58:59 pikhq, any comments? 01:59:19 Anyone? 01:59:26 Is anyone in here alive, for that matter? 01:59:38 * pikhq nods 02:00:46 That works. 02:01:24 Why does xor only take one arg? 02:01:25 Are the arthmatic functions too high up in number? 02:01:51 pikhq, that's because the documentation's wrong 02:01:58 It's implemented correctly (I think) 02:03:20 Sgeo: drop the boolean funcs 02:03:23 you can use bitwise for them 02:03:43 Even a boolean not? 02:04:08 hm, maybe drop booleans except for boolean not? 02:04:12 pikhq: OK, good point 02:04:23 But other bitwise ops like and, or... work fine when treating them as booleans 02:04:27 and what about boolean XOR? Can that be done as bitwise? 02:04:32 You just end up passing '54' to if(..), which isn't a problem 02:04:39 Sgeo: Boolean XOR works fine as bitwise, I think 02:04:43 Plus nobody uses boolean xor!! 02:04:55 tyvm ehird 02:05:38 * oerjan recalls -1 being true in Oric BASIC, so not worked equally well boolean and bitwise 02:05:57 or so i think. it's been a long while. 02:06:05 -1 should be true. 02:06:06 :| 02:06:14 isTrue = (/= 0) 02:06:15 i mean _the_ true 02:06:19 ah 02:06:21 forth does that too 02:06:26 the idea is that all bits are set 02:06:28 i.e. it's 111111111111 02:07:57 So do we have an issue with boolean XOR or not? 02:08:00 * Sgeo commits 02:08:09 http://trac2.assembla.com/psox/browser/trunk/spec/psox-utils.txt 02:13:08 hmm wait 02:13:11 boolean not= 02:13:28 ~(x&1) 02:13:29 I think. 02:13:41 Err 02:13:45 No. 02:14:11 (== 0) 02:14:16 oerjan: Sure 02:14:19 But he doesn't have == 02:14:19 :P 02:14:48 you cannot make it from bitwise operators 02:15:46 damn 02:16:18 􀀀 SECOND LAST UNICODE CHARACTER 􀀀 02:16:22 How many of your clients broke there? 02:16:33 􏿽 WELL HOW ABOUT THIS ONE 􏿽 02:16:55 the question marks show up just fine, thank you ;) 02:17:05 -!- Corun has quit (Read error: 110 (Connection timed out)). 02:17:13 saved by being broken already :D 02:17:42 0FFFD 10FFFD 02:18:12 So is there a problem with the only boolean being boolean NOT? 02:18:19 Sgeo: Nope, no problem at all 02:19:08 ehird, see, you had another piece of influence over PSOX. Because of you, I removed unnecessary boolean operators 02:19:28 haha 02:19:32 ok, ok, i am warming to it 02:19:35 :) 02:19:40 :D 02:20:12 Sgeo: ok then.. how's this for an actually fun idea.. 02:20:15 psox gui domain 02:20:20 and DON'T go implementing it, I want to 02:20:20 :D 02:20:36 ... omg, i can't handle the awesome 02:20:39 also: 02:20:41 ncurses domain 02:20:53 graphical game of life, and graphical-console game of life! 02:20:56 Heck, graphical mandelbrot! 02:21:08 pikhq: Sgeo: All who think this idea is awesome, raise your hand 02:21:10 :D 02:21:14 * Sgeo raises hand 02:25:24 pikhq: http://wiki.tcl.tk/15348 this is awesome 02:25:43 ehird, maybe events can be done by checking an infile descriptor? 02:26:27 Sgeo: Maybe. I'm thinking, though, that PSOX needs a way to send some code over the wire. :P 02:26:37 That'd be kind of weird though. 02:26:39 "over the wire"? 02:27:14 Sgeo: To PSOX. 02:27:22 But then you'd have to write BF code to output a program 02:27:24 No fun! :) 02:27:35 But an infile sounds about right. 02:27:37 BUT 02:27:40 Make it window-specific. 02:27:45 Pseudocode: 02:27:53 fd = mkwin(640,480) 02:27:53 I thought you meant for a domain to transmit stuff without being asked to.. 02:28:03 btn = mkbtn("CLICK ME") 02:28:20 addwidg(1,btn) # 1 is window number 02:28:28 wait_on(fd) 02:28:31 handle_event(fd) 02:28:37 Sgeo: Something like that. 02:28:53 Anyway, a GUI hello world should be about 7 lines of commented code, without densely-packed lines. 02:28:54 Agreed? 02:28:57 Something like what I said, or were you reinforcing the pseudocode? 02:28:59 ehird: LMAO 02:29:19 Sgeo: Something like what you said, yes 02:29:23 Maybe more modular though. 02:29:27 like, a button has its own fd 02:29:28 and you wait on that fd 02:29:34 to handle events for just that button 02:29:41 it would make things simpler, for larger GUIs 02:29:49 pikhq, I have a list of custom domains I'd like to see, and GUI is one of them 02:29:59 Sgeo: In the spirit of esotericism, I imagine I will use PyGame and draw my own widgets 02:30:06 That, is actually an advantage: It means e.g. mandelbrot is easier. 02:30:30 It would also make things simpler because it could be designed around PSOX. 02:30:33 Sgeo: Tk? 02:30:37 Sgeo: So I guess I will write it tomorrow. Wish me luck. 02:30:44 pikhq: No. We've just been talking about it. 02:30:45 (sometime later. Much later.) 02:30:50 Oh? 02:31:01 I think it will be a lot simpler to write our own, because we don't have fancy stuff needed. 02:31:04 I am currently thinking: 02:31:10 Fancy. 02:31:13 a widget like a button, has a infile descriptor 02:31:18 and you can check that for events, basically. 02:31:19 ehird, are you looking into how to write domains? 02:31:27 Sgeo: I will tomorrow. I am going soon today. 02:31:34 pikhq: this means that you can write bigger guis without much fuss 02:31:38 ehird, the thing about 1 fd per widget is that the client would need to keep changing FDs 02:31:51 Sgeo: Make the IO operations take an FD as an argument. 02:32:01 + provide special ones that operate on the current fd 02:32:15 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 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 Sgeo: Don't do that.. leave it up to the console driver to handle that stuff 02:33:06 ehird, wha? 02:33:13 Well, why do you wait for 0x0A? 02:33:21 Just read a character, then send it off 02:33:25 Because one of the ways of getting input is a line at a time 02:33:32 OK. One of the ways. 02:33:53 The other way is calling the input function 1nce for X characters 02:33:55 g2g 02:33:57 Sgeo: Anyway, just add functions that take an FD as an argument. 02:33:59 A lot nicer. 02:34:01 Bye :) 02:34:04 I will write it tomorrow. 02:34:56 By the way, how does everyone pronounce PSOX? 02:35:00 I pronounce it as 'Pee socks'. 02:35:42 Same here, although "P S O X" is truer to the epitomology 02:35:49 or wahtever you call it 02:36:26 Sgeo: 'pee socks' is a bit unfortunate though 02:36:56 Sgeo: By the way, I am also going to implement a metadomain. 02:37:04 It lets you define and implement domains from within a PSOX app. :D 02:37:59 Sgeo: With this, I will then define trivial things like the http domain within brainfuck, using the tcp one 02:37:59 \o/ 02:40:04 ehird's is how my phonological loop pronounces it. 02:43:35 iIHOP: Thoughts on a bf gui lib? :P 02:44:14 Do what other programming languages do. 02:44:38 Which, I suppose, means using lots of libraries. 02:45:50 iIHOP: No-- i mean, 02:45:54 Awesome idea or not? 02:46:02 I mean, you could do a brainfuck interactive mandelbrot 02:46:12 Oh. 02:46:14 Or a brainfuck game of life, with editor 02:46:31 :D 02:46:39 or a brainfuck graphical calculator 02:46:42 I tend to be more interested in theory than practice. 02:46:46 Or -- A brainfuck IDE in brainfuck! 02:46:55 iIHOP: Yeah, me too. But this is a pretty awesome idea, I think. 02:47:18 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 iIHOP: I don't follow what you're trying to say 02:49:02 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 pikhq: You know how you said you were going to write a c lib using PSOX? 02:49:08 I'm glad to see that ehird is interested in PSOX. 02:49:14 ehird: Yeah? 02:49:19 Though it can be fun to write programs in BF, of course. 02:49:32 pikhq: I bet I can do it with less C constructs and more PSOX constructs. :-P 02:49:44 Though I'd rather learn how to do it than actually do it. 02:49:59 ehird: I was planning to have the types be lnum_t and such. 02:50:02 ;) 02:50:11 The fact that I know how to do my chemistry homework doesn't mean I want to do it. :-P 02:50:25 pikhq: I'll make it more awesome, and just make all ints be lnum_t and similar 02:50:36 So NO conversion, but NO construction of types -- that's in C! 02:51:04 Either that, or I'll actually *write a libc* 02:51:05 Of course, if I did it in C++, then I'd have to overload the operators for the math calls. :p 02:51:18 Actually, writing a libc would be a cool use of time. 02:51:25 Yes.. 02:51:31 Even better with PSOX, because that's just crazy 02:51:33 Useless, but quite cool. 02:51:40 I started to write a libc as part of an OS I was writing once. 02:51:55 Friendly tip: string/memory functions are easy. I/O is not. 02:51:55 Even cooler if you decide to create a better, replacement libc. 02:52:14 That, I'd think, would be obvious. 02:52:21 Format? *shudder* 02:52:29 printf is pretty easy actually. 02:52:47 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 Whereas the string functions are fairly straightforward, and the memory functions are wrapped up syscalls. 02:53:01 ehird: Too crazy. 02:53:18 pikhq: OK, How about just one level of nesting. 02:53:18 :D 02:54:00 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:04 s/right/write/ 02:54:06 pikhq: I will do that, tomorrow. 02:54:09 Yay! 02:54:10 It seems an obvious step to me. 02:54:13 Also, an FFI, possibly. 02:54:17 Arbitary Python/C function mapping. 02:54:36 Combined with my metadomain domain, you can define arbitary domains using python functions from within an esolang 02:54:36 :D 02:54:54 Like, the TCP domain can be made from within BF 02:54:59 Oh God. 02:55:04 Yeah. :D 02:55:32 If I use that in PEBBLE, then I'd have a python_inline command. :p 02:56:03 pikhq: Well, maybe not python_inline so much as python_func "name" "intype intype ..." "outtype" 02:56:10 pikhq: Also, same for C functions. 02:56:25 You can provide a PSOX interface to malloc/free -- without leaving the comfort of BF. ;D 02:56:54 Sgeo: I'm afraid that the Brainfuck coding universe will never be the same. 02:57:01 Most certainly not. 02:57:23 Now excuse me while I go and write a graphical IRC client in Brainfuck with only the metadomain and the ffi. 02:57:31 LMAO 02:58:41 Anyway. gtg now. Shall write libcpsox, many domains tomorrow... and ptl. :) 02:59:36 metadomain? ffi? 02:59:45 Foreign Function Interface. 02:59:47 Sgeo: Metadomain = define PSOX domains in PSOX. 02:59:52 FFI = call C and Python functions in PSOX. 02:59:56 ;D 03:00:04 Basically sums it up: 03:00:05 " You can provide a PSOX interface to malloc/free -- without leaving the comfort of BF. ;D" 03:00:08 " 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 pikhq: And a BF->C compiler that, when compiling a non-PSOX program, uses libcpsox 03:01:45 :D 03:02:46 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 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 Actually, I don't have the time to actually implement PEBBLE 2 ATM. 03:03:55 I may, however, have the time to make BFbasic uses PSOX. :p 03:03:55 Also, you might want to ignore what I said about waiting on FDs by retrieving lines 03:04:00 That might not work 03:04:03 pikhq, BFbasic? 03:05:30 Calamari's Basic->Brainfuck compiler. 03:09:17 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 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 Also, the current architecture doesn't allow a domain to just go and make.. well, actually it does 03:14:00 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: I'm afraid that the Brainfuck coding universe will never be the same." 03:16:36 LD 03:16:38 :D 03:17:29 tyvm 03:18:14 Actually, I'm writing the preprocessor for PEBBLE2 ATM. 03:18:21 cool 03:23:17 -!- lispy has joined. 03:23:30 What is the puprose of #esoteric? 03:23:46 hm maybe should change the topic back 03:24:00 what _was_ the last on-topic topic, anyone? :D 03:24:00 -!- faxathisia has set topic: back. 03:24:35 esoteric programming languages, such as brainfuck, unlambda etc. 03:25:17 oh, okay 03:25:23 what is esoteric about them? 03:25:32 * lispy uses brainfuck at work 03:25:36 Oh, wait, no that's C++ 03:25:38 my bad 03:25:40 I confuse them 03:25:46 easily done :D 03:26:19 well they are languages that may seem even worse than C++, at least until you delve deep enough into it 03:26:34 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 I know this because, I wrote the bf compiler that lambdabot uses, but I can't write anything in bf :) 03:27:15 I've written quite a few things in Brainfuck. 03:27:21 My most recent hack is wget.b. 03:27:42 you added enough IO to do wget? 03:27:44 http://pikhq.nonlogic.org/wget.b 03:27:59 Sgeo here wrote PSOX, which allows for quite a few insane features. 03:28:11 I believe ehird is planning on doing GUI with it tomorrow. 03:28:35 is HTTP::get, a system call then?, well a function call 03:28:59 It's a PSOX call. 03:29:35 So, it's not really bf so much as bf++ or bf2? 03:29:47 maybe it's craniumfuck? 03:29:49 lispy, it's not just for BF. Just about any language can use it 03:30:18 It's a layer that goes between BF (or whatever) and standard I/O 03:30:40 But, let me get this straight, you had to extend the bf language to allow this to work, right? 03:30:54 nope 03:30:59 It's not the language. It's more like an interpreter 03:31:10 Just stick a standard Brainfuck interpreter in. 03:31:23 PSOX binds to that interpreter's stdio, and interprets that. 03:31:32 normally bf would ignore sequences like PSOX_Init 03:31:37 ah 03:31:43 -!- puzzlet_ has joined. 03:31:54 The string "PSOX_Init" is a comment, actually 03:31:56 It will ignore PSOX_Init. 03:32:06 The stuff before that is what initialises PSOX. ;p 03:32:21 Outputting 0x00 0x07 0x01 0x0A 0x00 0x00 0x0A is the PSOX_Init 03:32:30 Ah, okay 03:32:32 Now I get it 03:32:41 Very nice 03:32:44 ty 03:33:46 more evidence that turing complete does mean something important :) 03:35:11 do you guys work with python too? 03:35:26 (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 lispy, wait, were you noting that PSOX is implemented in Python? 03:36:39 Sgeo: was it? no actually, I'm just completely poking fun at python here 03:37:09 Python, unlike Ruby, has a readable syntax :p 03:37:14 lispy, what? re turing complete 03:37:21 Yes, but they left out the type annotations :) 03:37:30 faxathisia: bf is turing complete 03:37:59 -!- BMeph has joined. 03:37:59 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 lispy, This is true of non turing complete languages 03:38:49 faxathisia: I suppose so in some cases. But, BF happens to be TC. 03:38:56 lispy, This is true of subturing languages ** what I meant to say 03:38:59 so that's why i phrased it that way :) 03:39:25 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 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:40:55 er TC program 03:41:16 lispy, go online, which standard BF cannot do 03:44:33 and truely seeds 03:44:34 -!- puzzlet has quit (Read error: 110 (Connection timed out)). 03:44:40 by using outside entropy i guess 03:44:45 er truely random seeds 03:45:03 oh, has anyone written a mersenn twister in bf? 03:45:18 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 (slightly modified from 18.05.07) 03:47:22 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 actually, I wish we all used the format YY/MM/DD 03:47:52 or YYYY/MM/DD 03:48:27 you may find it interesting that i considered clarifying that date, and rejected the thought because 18 > 12 anyway 03:49:50 Either YY/MM/DD or DD/MM/YY. 03:50:05 -!- iIHOP has changed nick to ihope. 03:50:40 YYYY/MM/DD makes a bit more sense, if you look at what's best for computers wrt sorting 03:51:02 Also, in numerical systems where the leftmost digit is most significant >.> 03:51:55 -!- puzzlet has joined. 03:51:59 Hi puzzlet 03:52:11 * Sgeo is excited about GUI BF programs tomorrow :D 03:54:47 I think there's a bug in the input domain 03:55:01 It gets unreasonably slow eventually 03:56:16 Sgeo: indeed. 03:56:34 We should just make all notations big-endian. 03:56:49 Always put the most significant word at the beginning of a sentence, and all. 03:57:23 It's 2008 February 16 PM 10:57, everyone! 03:58:17 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 hmm, yes, today is indeed today... is that in any way significant? 04:02:01 * olsner thinks not and goes to bed, probably 04:02:05 maybe it's the timezone 04:02:21 possibly 04:02:38 very well, I'm off 04:11:13 I hope I'll be here tomorrow to help ehird if needed 04:11:28 If not, I hope that ehird will be able to figure everything out on eir own 04:12:30 brb 04:12:34 -!- RodgerTheGreat has quit. 04:15:03 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:13:38 lispy, http://www.jsoftware.com/ 05:14:10 oh damn, gwern left 05:15:01 oh wait 05:15:03 wrong channel 05:17:00 it's a curse, i say! 05:17:17 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:01 ? 05:26:35 In Agora, an action is regulated if it affects something an officer has to report on, among other things. 05:36:00 Fucking wonderful. 05:36:08 Someone modded one of my /. posts redundant. . . 05:36:15 It's the 4th post on the article, for God's sake. 05:37:31 I stopped posting on /. a while ago because the mods seemed to be pretty vicious 05:39:13 Yeah; for a while, my account had negative karma for one post. 05:40:07 And does redundant even get metamodded? 05:40:51 * RodgerTheGreat shrugs 05:41:00 It's one thing to moderate a post identical to mine that came 10 minutes after 'redundant', but come on. . . 05:41:13 The only post made that covered the same topic was about half a second before mine. 05:46:59 Ah well; it got modded back up. 05:48:02 slashdot is a pretty tough MMO, but I hear it gets more fun at the higher levels 05:49:24 LMAO 05:50:02 Facebook and Myspace are pretty popular RPGs, but they're mostly just grindfests 05:50:39 And Digg is pretty much a dumbed-down clone of slashdot- I think they wanted to cater to the console crowd 05:51:42 Deviantart has a pretty sophisticated crafting system, but I think the fanbase is too creepy 05:51:55 in general, I tend to stay away from online games 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:31 INTERCAL :D 10:31:59 -!- sco50000 has left (?). 10:35:39 -!- ihope_ has quit (Connection timed out). 10:36:27 " 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 null-language. Compiler: "main(){}" And no matter how hard you try, you can't write an interesting program in it. 10:38:32 lispy: python is the simplest and intuitive language on earth 10:42:41 Thai yellow curry is the most flavorful and delicious food on Earth. 10:42:53 [an argument just as easy to defend :P ] 10:43:06 -!- AifnAk has changed nick to oklopol. 10:44:20 GregorR: why defend something everyone knows is true 10:44:39 wish i had some curry 10:44:58 [12:35] --> sco50000 has joined this channel (n=scott@unaffiliated/sco50000). 10:44:58 [12:36] INTERCAL :D 10:44:58 [12:36] <-- sco50000 has left this channel ("Leaving"). 10:45:12 SCO wurves INTERCAL. 10:45:16 I guess it's no big surprise. 10:45:19 we should keep track of newcomers' intentions, not all are irpers! 10:45:24 oh 10:45:29 it he an oldie 10:46:11 need to brush the intercal taste away -> 11:09:56 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 wow, ursala is really crazy 15:38:36 yyyyyyyup 15:39:58 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:40:53 I didn;t get that far yet 15:42:08 -!- Corun has quit (Read error: 104 (Connection reset by peer)). 15:54:28 "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 and some operators have multiple arities, with each arity having its own precedence 15:56:35 Fine as long as it's all well-defined. 15:59:35 the specification recommends trial-and-error for discovering the precedence rules rather than attempting to understand the description :P 16:00:30 Weird. 16:01:35 also featuring prefix, infix, postfix, "solo" and circumfix/outfix operators 16:02:16 (many operators usable in more than one fixity) 16:02:22 hm 16:03:52 My gosh. 16:12:57 -!- oerjan has joined. 16:18:06 ihope: no, not yours 16:18:15 Oh. 16:18:21 olsner's gosh. 16:18:39 plenty of gosh to go around 16:20:07 About how much gosh do you have? 16:20:33 In cubic meter pascals per Kelvin mole? 16:30:37 about 1 square foot per square fortnight Kelvin mole 16:31:06 *Reaumure mole 16:32:28 Rankine, surely? 16:32:40 and what is "Reaumure"? 16:34:04 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 Oh dear, I just used the adjective "Internetty" 17:11:13 ... 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:43 use "Internet-esque". 17:11:44 Internetty sounds like a silly name for a mascot 17:12:25 "Internetty the tube! Don't look inside, though- he's filled with porn and social networks!" 17:18:21 heh 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 pikhq: plz let it access FDs 20:00:26 it will be so convenient 20:01:02 -!- oerjan has quit ("Supper"). 20:01:29 omfg 20:01:31 topic is back on topic 20:01:33 when did that happen 20:02:12 -!- Hiato has joined. 20:02:30 what is the difference between porn and social networks? 20:02:40 are social networks just porn for girls? 20:03:10 lispy: are you a markov chain bot? 20:03:41 am I markov "Internetty" chain bots? 20:03:49 (sorry) 20:03:55 ehird`_: no! 20:04:06 but I play one on IRC 20:04:46 I used to have a megahal here on freenode called {}, boy, that was a fun bot 20:04:53 lispy: crazy nick 20:04:59 if only 'I' was available 20:05:04 'I was talking to I yesterday, and..' 20:05:06 yeah, it kinda looks like a .... um... nevermind 20:05:08 even better: 'myself' 20:05:29 most irc clients show'd the bot as <{}> 20:05:35 * you :Erroneous Nickname 20:05:38 fuck. you. freenode. 20:06:00 oh well 20:06:04 I have awesome nicks registered anyway 20:06:06 :-P 20:06:15 What are some of your awesome nicks? 20:06:30 ihope_: Actually they aren't very awesome. 20:06:38 I think my most awesome nick is ihop. 20:06:39 I have 'rice' though, which is a dictionary word so I guess that's pretty cool. 20:06:53 (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:15 Also a dictionary word. :-P 20:07:17 -!- hyperpyrexia has changed nick to ihope. 20:07:42 'rice' is short though 20:07:48 Actually, I was pretty close to getting 'z' at one point.. 20:07:56 then the bastard logged in for the first time in ages :( 20:08:16 It's a legal nick? 20:08:26 Oh yes. 20:08:29 -!- ihope has changed nick to i. 20:08:34 This one isn't. 20:08:37 -!- i has changed nick to ihope. 20:08:37 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:08:45 Yeppers. 20:09:17 I wonder why i is may-not-be-used and you is erroneous. 20:09:17 I should write a script that checks every one-letter nick and tells me which are available for dropping. 20:09:29 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:09:51 Fun stuff. 20:10:20 -!- ehird has changed nick to c. 20:10:28 Nothing special on that one. 20:10:29 -NickServ- The nickname [c] is private 20:10:30 -!- c has changed nick to ehird. 20:10:41 always use /ns info 20:10:43 before trying 20:10:55 if they haven't been logged in for a month or a few, celebrate 20:10:58 The nickname [a] is private. The nickname [B] is private. The nickname [c] is private. 20:10:59 then #freenode and ask for droppation 20:11:05 Fun stuff. 20:11:06 -!- ehird has changed nick to y. 20:11:16 this is... available 20:11:16 :O 20:11:19 -!- y has changed nick to ehird. 20:11:24 eh 20:11:25 damnit 20:11:26 wait 20:11:38 Damnit wait? 20:11:40 -!- ehird has changed nick to Y. 20:11:43 ok 20:12:01 combinator 20:12:04 ha! ha! ha! 20:13:17 omg 20:13:19 i could get Q 20:13:19 :| 20:15:57 no Y for me 20:16:00 I can't be a combinator. 20:16:09 and q is erronous 20:16:19 Hey, I know! I should start my own network so I can get a one-char nick :P 20:16:23 :-P 20:16:34 Or get that nick on Sine. 20:16:45 ihope: There's no nickserv, is there 20:16:58 Ami's kind of one. 20:17:10 OK. But that doesn't let me secure both 'Y' and 'q'. 20:17:11 :P 20:17:16 -!- Y has changed nick to Yq. 20:17:19 owned 20:17:24 ooh 20:17:25 2 years 20:22:58 Cool, the nick "aefn" isn't registered. 20:23:36 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:05 That's as long as it gets? My. 20:24:06 -!- aefn has changed nick to Yq. 20:24:33 And I'd typed it out to "ThreePointOneFourOneFiveNineTwoSixFiveThreeFiveEightNineSevenNineThreeTwoThree" in case nick lengths could go that far. 20:32:47 ideas spread fast 20:32:52 spb: Feel like donating a single character nick to me? 20:32:59 -!- helios24 has quit ("Leaving"). 20:38:12 :-) 20:38:24 -!- ThreePointOneFou has changed nick to ihope. 20:39:23 pikhq: question about tcl 20:39:30 aren't return values and output redundant? 20:39:45 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 WAs ehird in here earlier? 20:46:36 I am ehird. 20:47:06 Sgeo: you good at lojban? 20:47:31 oklopol, I used to know a drop of lojban, and sort of know the basics 20:47:55 Yq, are you going to work on those domains? 20:48:30 Sgeo: Yes, I guess so. 20:48:36 Is there a PSOX usage tutorial anywhere? 20:48:38 With brainfuck. 20:48:50 Yq, there are examples, and the spec 20:49:03 I think one part of the spec is out-of-date, holdon 20:49:10 fucktorial 20:49:42 Yq: Nope. 20:49:53 pikhq: How are they unique theoretically 20:50:24 proc foo {} {return 1} returns 1 to the caller; proc bar {} {puts 1} outputs one. 20:50:45 if {[foo]} is therefore like if {1}. . . 20:51:11 if {[bar]} is more like if {puts 1}; testing if puts actually outputs without an error. 20:52:04 Really, it's the difference between printf() and return in C. ;) 20:52:15 pikhq: Duhhh. I'm saying it SHOULDN'T be like that. 20:52:28 Why the hell *not*? 20:52:37 Erm. 20:52:42 Why the hell shouldn't it be like that? 20:52:44 example: 20:52:55 * Sgeo wants to see a GUI domain soon 20:53:01 proc bar {} {puts 1}; if {[bar]} ;# this is 'if {1}...' 20:53:05 it's like this in shell 20:53:12 and it makes sense when the language is like a shell 20:53:16 which tcl is, essentially. 20:53:18 Which it's not. 20:53:19 as well as the string focus 20:53:59 Are you fucking mad? 20:54:41 -!- RedDak has joined. 20:55:11 pikhq: Perhaps; but saying that helps little. 20:55:24 [puts 1] is just the same as [puts stderr 1]. 20:55:46 pikhq: I am aware what the actual semantics are. 20:55:52 I am arguing theoretically, what would be better. 20:55:57 s/stderr/stdout/ 20:56:05 Perhaps if you're making a shell vaguely like Tcl. 20:56:16 But Tcl's not shell. 20:56:29 pikhq: I'm just saying I can't see how it wouldn't be nicer. 20:56:47 You've obviously never had a function *want to output*. 20:57:33 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 I would put the first action, then the second. Then my nested ones. 20:57:47 *one 20:58:02 Did you also happen to fail to notice that Tcl is imperative as fuck? 20:59:30 May be so. But in nested expressions, that's just ugly style. 20:59:47 ... 20:59:58 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:27 <}> pikhq: No 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:05 oO 21:06:09 Nick collision? 21:06:38 -!- ehird`_ has joined. 21:06:48 -!- ehird`_ has changed nick to [. 21:06:57 <[> test 21:06:58 -!- [ has changed nick to ]. 21:06:59 wb ehird 21:07:00 <]> test 21:07:05 <]> Hmm. :P 21:07:06 } had a nick collision? 21:07:09 <]> Yah 21:07:11 /whois } 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 -NickServ- If you do not change within one minute, you will be disconnected 21:07:36 <]> yah 21:07:41 -!- Sgeo has changed nick to I. 21:07:43 -!- I has changed nick to Sgeo. 21:07:44 <]> forbidden 21:08:03 -!- ] has changed nick to _. 21:08:09 <_> this 21:08:11 <_> would be so awesome 21:08:12 <_> as a nick. 21:08:16 /nick We /me are the bork! 21:08:35 _, is that forbidden or something? 21:08:46 <_> Sgeo: No, it's allowed. I am asking in #freenode. 21:08:50 <_> xD 21:08:50 <_> I imagine I will be denied 21:08:53 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 So use something simpler if you want 21:09:26 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 I'm not sure how I can fit in not switching FDs.. 21:11:43 -!- _ has changed nick to ^. 21:11:48 <^> hah 21:11:50 <^> Sgeo: Easy 21:11:56 <^> add an extra parameter to the functions 21:12:00 <^> Or: just add some more, for backwards-compat 21:12:20 There isn't really room to add functions 21:12:38 <^> Uhm 21:12:39 <^> Explain? 21:12:59 0x00 0x01 (num-of-bytes-to-take) 0x0A 21:13:04 That's input 21:13:13 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 That would break compatibility.. 21:13:45 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:18 lol true 21:14:19 <^> How could you possibly stop them working! 21:14:29 <^> They run whole ENTERPRISES! 21:14:32 lol 21:14:40 What about output though? 21:14:45 <^> What is it right now? 21:15:04 Printing a character outputs that character unless it's 0x00, which is escape 21:15:07 to function 21:15:15 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 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 Exactly as I said 21:16:26 0x00 0x00 char 21:16:45 <^> Ah, I see. 21:16:46 Hmm. That's no one-letter nick. 21:16:52 <^> OK then: 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:11 <^> THEN, 21:17:14 <^> On top of that, 21:17:21 <^> you layer on a 'current FD' system 21:17:22 brb 21:17:32 <^> which is basically all the functions, sans FD parameters, and a 'change FD'/'get FD' functions 21:17:35 <^> Then, 21:17:47 <^> you use your model of output - i.e. JUST OUTPUT the character! - to use the implicit-FD versions. 21:17:49 <^> Simplel. 21:18:14 back 21:19:00 Would it be just simpler for a GUI client to just switch FDs every two seconds? 21:19:08 <^> Sgeo: No. 21:19:14 <^> It would be far harder to code with. 21:19:20 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:27 <^> etc 21:19:33 <^> (fgetc, and getc, ...) 21:20:37 heh, backtick is already taken 21:21:26 -!- ^ has changed nick to s. 21:21:30 s, would input/output functions in the System domain be ok? 21:21:30 -!- s has changed nick to a. 21:21:45 a, do you have ehird on highlight? 21:21:48 Yes 21:21:51 Anyway sgeo: 21:21:52 ok 21:21:59 I have some simple questions to help me understand 21:22:16 How is the current model of IO accomplished? How do I select an FD, input, output, etc. 21:22:21 Answer that, and I'll explain my suggestion. 21:22:52 0x00 0x02 0x10 f 0x0A sets the current outfile FD 21:23:01 0x00 0x02 0x11 f 0x0A sets the current infile FD 21:23:36 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:05 Okay. 21:24:08 And after that. 21:24:12 how do I do stuff with them? 21:24:26 I already described input and output 21:24:45 Do it again, I don't grasp it yet. 21:25:12 Output is either just outputting the character if it's not 0x00 21:25:22 Or just output 0x00 0x00 first to escape the next char 21:25:37 Input is 0x00 0x01 (num-of-bytes) 0x0A 21:26:07 Sgeo: Specify what 0x01 and 0x02 are in english 21:26:20 ehird: Domain specifiers 21:26:29 Sgeo: Yes... 21:26:30 What domains. 21:26:39 0x01 is the input pseudodomain 21:26:53 0x02 is the System domain 21:26:53 define `pseudodomain' 21:27:16 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:31 OK. 21:27:44 Well, my idea is quite radical then. 21:27:46 But it's very simple.. 21:28:00 0x01 will no longer be the input pseudodomain. It will be the 'IO domain'. 21:28:02 With me so far? 21:28:06 ok 21:28:12 OK, and, 21:28:19 There will be a function in it for input. 21:28:24 So, something like: 21:28:43 0x00 0x01 0x00 (num-of-bytes) 0x0A 21:28:43 (Not exact synatx, maybe. But you get the idea?) 21:29:01 I get the idea, but it's an extra byte of overhead :/ 21:29:14 Sgeo: With me? 21:29:14 -!- a has changed nick to ehird. 21:29:18 yes 21:29:19 brb 21:29:23 Sgeo: ping 21:29:27 oh 21:29:28 sorry 21:29:29 I lagged. 21:29:39 Also, I have a suggestion re: byte of overhead 21:30:07 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:25 back 21:30:48 ehird, the PSOX server doesn't know when a character is requested 21:30:57 Sgeo: It can, though, quite easily. 21:31:05 I might give an example, but that's not the point.. 21:31:10 The point is the idea I am explaining. 21:31:18 Anyway, you can see the logical outcome: 21:31:26 0x00 0x01 0x01 (char) 0x0A 21:31:35 (Please ignore that these are very verbose ways to do IO, I will fix that later..) 21:31:37 ehird, select.select() doesn't work on Windows last time I checked docs 21:31:40 Sgeo: With me so far? 21:31:48 (Don't. think about it. too much!) 21:32:10 ok 21:32:35 Sgeo: OK, now what I propose 21:32:48 It would look like this, in the core: 21:32:51 0x00 0x01 0x00 (fd) (num-of-bytes) 0x0A 21:32:59 0x00 0x01 0x01 (fd) (char) 0x0A 21:33:08 This is obviously not an ideal interface for the programmer. 21:33:14 Sgeo: But it's a solid base for IO. 21:33:20 And with that, we can build upon it: 21:33:33 0x00 0x01 0x02 (fd) 0x0A ;; change fd 21:33:40 0x00 0x01 0x03 0x0A ;; get fd (not required) 21:33:52 0x00 0x01 0x04 (num-of-bytes) 0x0A ;; no need for fd param -- works on current fd 21:33:59 0x00 0x01 0x05 (char) 0x0A ;; ditto 21:34:16 Now, with all of this we have an IO system more powerful than PSOXs. But it's still not that convenient! 21:34:25 So, what we can do.. is this: 21:34:31 You know your current stuff for output? 21:34:33 i.e. just output it 21:34:36 with a possible escape? 21:34:39 yes 21:34:45 Well, that ends up using "0x00 0x01 0x05 (char) 0x0A" 21:34:47 It's just sugar. 21:35:15 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 The point is that it would make e.g. the GUI lib *very nice* to use 21:35:38 and it also lets you unify the infile/outfile mess thing 21:36:39 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 Sgeo: And why not? 21:37:07 There is no programs to speak of. 21:37:12 This is more elegant, and it's what every other language uses. 21:37:21 It is also just as convenient if you take into account my sugar ideas.. 21:37:37 Maybe even more convenient, with my 0x01 sugar. (Shorter programs, 0x01 is easy to make in BF) 21:37:58 Also, when you start doing things like e.g. heavy file IO 21:37:59 (Which is not that uncommon I must add!) 21:38:04 it will be a lot nicer 21:38:07 and shorter 21:38:56 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 the reason 0x0A is at the end of every function is to make sure the server gets it 21:39:56 Sgeo: Simple 21:40:03 0x01 only reads one byte 21:40:08 the syntax: 21:40:08 0x01 0x?? 21:40:11 'read ?? bytes.' 21:40:32 Suppose I have a BF interpreter that only sends out at a 0x0A 21:40:36 You don't need an ending marker because it's not variadic. 21:40:37 and I have this BF program: 21:40:38 And you can escape it like this: 21:40:38 0x01 0x01 21:40:40 Now of course the question 'how do you input one byte??' 21:40:45 Probably, by 0x01 0x00. 21:40:48 +.., 21:40:52 Since you never actually want to read 0 chars. 21:40:54 What happens? 21:41:00 Sgeo: Well, let's see 21:41:04 that's 0x01 0x01 21:41:09 Then waits 21:41:14 Yes 21:41:16 Well 21:41:16 But the BF interpreter never sends it to the server 21:41:22 Sgeo: In my semantics if you look 21:41:24 that actually escapes 0x01 0x01 21:41:25 Because there's no 0x0A to flush it 21:41:30 oh 21:41:31 uh 21:41:33 no interp does that 21:41:36 no sane one 21:41:44 i guess 21:41:45 I remember GregorR being worried about oit 21:41:46 it 21:41:58 but fine 21:41:58 this: 21:41:58 0x01 0x?? 0x0A 21:41:58 Sgeo: Actually, that's good 21:41:58 Because: 21:41:59 0x01 0x0A 21:42:17 means just a literal \1 21:42:17 Hmm, wait 21:42:17 No 21:42:17 IGNORE THAT 21:42:17 :) 21:42:20 Sgeo: OK: 21:42:26 -!- BMeph has joined. 21:42:31 0x01 0x?? 0x0A 21:42:32 is a macro for 21:42:49 0x00 0x01 0x05 0x?? 0x0A 21:42:49 and: 21:42:49 0x01 0x01 0x0A 21:42:49 is a literal \1 21:42:54 IF you want to actually read one char: 21:42:57 0x01 0x00 0x0A 21:43:27 So, here's a "read one char" BF program: 21:43:42 +.-.+++++++++., 21:43:46 A "cat one char": 21:43:48 +.-.+++++++++.,. 21:43:50 But obviously 21:44:01 Oh wait 21:44:01 Sgeo: You get an EOF indicator, right? 21:44:01 OK. Then this: 21:44:17 +.-.+++++++++.,,. 21:44:17 That doesn't work if it's 0x00, though.. 21:44:24 EOF Indicator, Num-of-bytes-not-EOF, bytes, padding 21:44:40 But this is simple enough to fix: 21:44:45 +.-.+++++++++.,,>.+.+++.<.>++++++++++. 21:44:48 Is what currently happens when you request a fixed number 21:44:52 Sgeo: There's a "read one char, output": 21:44:57 ah 21:45:00 well then you just add more ,s 21:45:00 :P 21:45:05 But, you get the basic idea. 21:45:08 And I would say: that's nice and short! 21:45:18 And it allows for my cleaner semantics 21:45:27 So I would say it's a good thing 21:45:27 pikhq: Opinions? 21:45:33 0x01 0x?? 0x0A is only one byte less than 0x00 0x01 0x?? 0x0A 21:45:43 although it just frees up domain 0x01 21:45:45 I guess 21:46:07 Sgeo: Yeah, well it might be only one byte less, but the benefits that come with it are nice, very nice! 21:46:17 And it doesn't really free up domain 0x01. 21:46:21 That's the IO domain in my semantics, remember? 21:46:34 Yes, frees up 0x01 for your IO domain is what I meant 21:46:39 right 21:46:52 IMO, it's cleaner. And it's the most widely used model of IO - C, etc. use it 21:47:08 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 I suppose you'd be opposed to making input 0x00 0x01 fd num-of-bytes 0x0A? 21:48:54 and output 0x00 0x00 fd char ? 21:49:19 Sgeo: Of course... domains are the best way to organize this. 21:49:25 Besides, a domain allows for expansion of IO capabilities. 21:49:34 Like, an 'isEOF' function or something. 21:49:45 Well, input gives an EOF indicator 21:50:20 Or I could make a custom IO domain.. 21:50:26 Sgeo: I know it does. 21:50:27 it was an example 21:50:33 Can't you stop taking every example I give literally? 21:50:42 And a custom IO domain means you have two models for IO, neither of which is integrated 21:50:49 Which is ugly, and so is the whole 'pseudodomain' idea. 21:53:05 hm 21:53:10 brb 21:55:51 back 21:56:00 It would be a major change :/ 21:56:05 !bf_txtgen IO 21:56:07 !bf_textgen IO 21:56:11 Huh? 21:56:42 !help 21:56:45 help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon 21:56:47 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 Sgeo: What's the problem with that? 21:56:57 Who is going to die? 21:57:29 Why isn't bf_txtgen working? 21:57:31 !ps 21:57:35 1 Sgeo: bf_txtgen 21:57:37 2 Sgeo: ps 21:58:48 !bf_txtgen it does just slowly 21:59:15 Too slowly. Is there an online alternative? 22:00:43 Making your changes would not be easy 22:01:09 Sgeo: there's a java alternative. 22:01:12 Sgeo: and yes it would. 22:01:15 38 +++++++++[>++++++++>>><<<<-]>+.++++++. [67] 22:01:20 its just a few python files 22:01:21 sheesh 22:04:00 How often would apps need to do I/O to arbitrary FDs? 22:04:12 Sgeo: Quite often.. 22:04:18 When using multiple files when using the gui toolkit ... 22:04:23 133 +++++++++++++++[>+++++++>++++++++>++><<<<-]>.>----.>++.<<-----.>-----.<+.>++++.>.<<+++++.>++.--.+.>.<-.-------.<+++++.++++++++.>.<++. [913] 22:04:25 And besides they still have the short interface. 22:04:37 Couldn't those cases be covered with a custom domain? 22:06:37 Sgeo: Yes, but that's ugly. 22:06:42 And besides, my way has no downsides. 22:07:17 Maybe your way could go in PSOX 1.1? 22:08:27 Sgeo: Why not 1.0? 22:08:30 There's no programs to speak of. 22:08:43 The current PSOX Server doesn't count as a program 22:08:44 ? 22:09:05 Sgeo: It wouldn't require many changes.. 22:09:10 Gimme svn access and I'll branch off and do it 22:09:14 ok 22:09:24 ehird, do you have an Assembla account? 22:09:27 Sgeo: no 22:09:28 :) 22:09:34 get one 22:09:41 brb 22:09:55 haha 22:09:57 ok, later ;) 22:10:43 Why later? 22:12:16 quite busy -- you'll see 22:12:37 busy with PSOX, or with something else? 22:12:42 something else 22:13:10 Well, give me your email address, and I'll invite you 22:15:06 eh 22:15:11 penguinofthegods@gmail.com 22:15:37 ehird, so you did have an Assembla account.. 22:15:42 did i 22:15:43 :| 22:16:13 http://www.assembla.com/user/best_profile/dxUzeMKqWr25QeaaeP0Qfc 22:17:38 -!- jix has quit ("CommandQ"). 22:19:11 ahh yes 22:19:11 for Blink 22:19:41 Blink? 22:20:01 a quite old project of mine 22:20:06 it was a CMS built on Rails, minimal 22:20:08 designed to run my site 22:20:13 it was based on blocks and views.. 22:20:25 a block is a hunk of content, like a page or blog post or a picture with text or anything 22:20:34 a view specified how they were displayed, and could be controlled with ruby code 22:20:44 and you could have parent views and stuff 22:20:54 so you could have a 'site' view which displayed the menu and header and footer 22:21:00 then a 'blog' view which had that as the parent 22:21:09 and some small ruby code to tell it what blocks to dispaly and how. 22:21:24 it never got far 22:22:19 Sounds interesting.. why didn't it get far? 22:23:02 Sgeo: 1. Rails sucks 2. I am really terrible at keeping projects going 22:24:08 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 I think the timeline is: 22:24:25 -!- lispy has quit (Read error: 110 (Connection timed out)). 22:24:37 Blink, , Alchemy, various Alchemys (Alchemii?), , 22:26:17 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 re timotiis hi oerjan 22:32:27 hello 22:33:24 hallo 22:34:03 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 Sgeo: no good ones 22:34:18 in fact, cmses full stop suck 22:34:25 they are either bloated or restricted. 22:35:51 ehird, whachu working on? 22:36:52 So FALSE isn't considered esoteric anymore? 22:37:15 BMeph: uhm 22:37:19 since when 22:38:07 I didn't see it in EgoBot's list, there. 22:39:30 It doesn't interpret all languages.. 22:39:42 esolangs.org/wiki/Language_list 22:40:07 And last I checked, EgoBot wasn't PSOX enabled 22:41:54 Hmm, so MoinMoin is a wiki engine, that's used for CMS. I think that says more about CMS tech than anything else. 22:43:58 moinmoin sucks 22:45:42 -!- RedDak has quit ("I'm quitting... Bye all"). 22:58:17 -!- ihope has joined. 22:58:29 Rice toes. 23:02:03 Tice roes. 23:19:40 göa 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 And what's a göa? 23:34:24 nohird 23:36:40 * oerjan tried googling it but had no success 23:36:55 even limiting to swedish pages 23:37:11 problem is google doesn't distinguish it from "goa" properly 23:38:15 ah exact match is better 23:38:49 bah the top hits seem misspellings of "gra" 23:40:19 perhaps it is not an actual word 23:40:28 you'd think.- 23:40:34 it _does_ seem like it could be cognate to the norwegian "gj" 23:40:59 dig deeper. 23:42:30 which means feeding or dogs barking 23:46:04 * Sgeo randomly asks if it's a swear word 23:46:22 mind you that one is not easy to find either 23:46:51 i am tending towards believing "ga" is at best a deliberate misspelling 23:46:54 especially in the context 23:48:06 oerjan: Is 'gora' of any relation to Agore? :p 23:48:10 Agora, even. 23:48:38 doubtful. it means to do or make 23:49:06 norwegian "gjre" 23:52:36 Agora is named after the Agora, isn't it? 23:52:55 i should think so 23:53:23 -!- ehird has quit (Read error: 113 (No route to host)). 23:55:02 (actually there is a subtle difference between norwegian and swedish there - norwegian rarely uses it to mean "make", only "do") 23:57:09 Any relation to the Spanish word "hacer"? 23:57:21 That means to do or make. 23:57:38 from latin facere 23:57:55 i am not sure but i _think_ latin f can correspond to germanic g 23:58:05 via indoeuropean gh 23:58:12 Cool. 23:58:24 ah no 23:58:40 I think I also remember f corresponding to h somewhere... oh, right here. 23:58:40 wikipedia says facere is cognate to "do", rather 23:58:55 latin f -> spanish h, yes 23:59:04 The word "do" comes from the word "facere"? 23:59:10 dh -> f in latin, d in germanic 23:59:24 My.