00:00:01 .... 00:00:08 :) 00:00:10 hehe 00:00:19 !help 00:00:21 help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon 00:00:23 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:00:24 YhwOS, the OS for the True Believer. 00:00:41 -!- ooooo has left (?). 00:01:31 http://kidsquid.com/images/irdr-01Jan2007.jpg 00:02:08 (that's a pic of my ipod screen) 00:02:38 not too good at macro photography yet 00:03:54 next step is to be able to click links :) 00:05:02 wifif 00:08:24 what does "wifif" mean? 00:09:50 hmmm... stack-based languages are pretty easy to inspect... 00:10:05 since you can put in a debugging command to have the program print out its stack. 00:12:16 s/wifif/wifi/ 00:13:14 but you could achieve the same effect in other languages. 00:13:36 With some difficulty. 00:13:38 Like in PYthon you can print globals() and locals() and get the program state from your perspective. 00:13:47 ja 00:13:49 Brainfuck's equivalent is printing out the entire memory. 00:13:54 * bsmntbombdood departs 00:14:07 Or dir(object) you peek into the scope of an object. 00:14:10 * CakeProphet waves. 00:20:39 * pikhq says "Sayounara". 00:20:50 Anyone seen RazorX lately? 00:27:43 certainly, just not under that name. 00:29:01 What name? 00:29:59 * GregorR points at Sukoshi 00:30:17 Sukoshi: Anata ga iru! 00:45:46 * bsmntbombdood hasn't seen Razor-Z long time 00:45:59 Razor-X 00:46:03 or whatever 00:52:36 -!- Asztal has joined. 00:56:56 -!- clog has joined. 00:56:56 -!- clog has joined. 00:57:27 -!- meatmanek has joined. 01:14:09 -!- fizzie has joined. 01:17:38 もしかしたら、pikhq. 01:17:43 bsmntbombdood: I'm Razor-X. 01:18:53 Sukoshi: Meaning? 01:19:02 ``Maybe''. 01:19:05 Ah. 01:19:06 ;) 01:21:57 あら!忘れた!あけましておめでとうございます。新年で強く生きます!!! 01:24:02 What's 忘 and 強 mean? 01:24:11 Your Kanji's not very strong, is it? :P 01:24:16 No. 01:24:32 忘れる == わすれる, 強い == つよい 01:24:47 Also, what's the reading for "new year" there? 01:24:54 しんねん 01:25:04 Both are pretty easy Kanji, so :P 01:25:04 . . . I should've known that. 01:25:23 Annoying Kanji : 風 01:25:33 * pikhq wonders what tsuyoi means 01:25:42 Strong. 01:25:44 Ah. 01:26:18 (I can't be expected to know the kanji for words I don't know. . . As for wasureru. . . Yeah, I need to know that for class. My bad.) 01:26:56 Advantages of not taking a Japanese class. 01:27:29 Yeah, yeah, yeah. 01:27:38 * pikhq still doesn't have an IME set up. :/ 01:28:08 大変だわ。 01:28:30 変 means. . .? 01:28:54 (furigana, please) 01:29:01 へん、かわ --> Strange, exchange. 01:29:10 Hmm. 01:29:11 Yeah. It's a Kanji which makes no sense :P 01:29:17 Here used as たいへん 01:29:20 http://deadbeefbabe.org/paste/3099 beautiful... my first esolang (that I built an interpreter for) 01:29:26 Ah. 01:29:29 Look. Even the J2's in my school beat you! 01:29:40 I'm Japanese 3. 01:29:47 J2 == Japanese 2. 01:29:56 Now I just need to add in maybe a few more commands (I kinda like it the way it is... with minimal commands though).. and maybe something weird like a preprocessor. 01:29:56 (to be fair, the first two years had the world's. Stupidest. Teacher.) 01:30:07 He waited until second year to teach *kana*. 01:30:15 ....................................................................................................... 01:30:27 Much less kanji. 01:30:37 Almost every piece of literature I've come across, and my own experiences, scream that you should learn as little Romaji as humanly possible. 01:30:53 I self-taught kana first year. 01:30:57 Only student to do so. 01:31:14 Ouch. 01:31:26 Kana is easy to self learn though, heh. 01:32:51 語 is also a Kanji with a lot of readings. 01:34:34 "Go" is the one that comes to mind. 01:35:16 こ、ご、かた、がた. 01:35:20 Ok. Not as bad as I thought. 01:35:33 (if that's wrong, well, it looks kind of. . . tiny on my screen.) 01:35:36 And かだ Heh. 01:42:26 oooh Sukoshi 01:46:07 hmmm... there's no conditional jumps in Stew though... 01:46:16 unless you can create one from the minimal tools given. 02:15:46 One thing I suspect is that the booleans are entirely useless for computation - you cannot do anything with them other than comparing, giving you just a new boolean. 02:17:36 However, it seems to me that numbers can be used to select an operator from a stack, which can then be run, giving you conditional execution. 02:20:55 hmmm... ooh yeah :D 02:21:01 I didn't think about that. 02:21:11 the @ command with some comparison operations. 02:21:42 0 would give the current queue... 1 would give the second Queue 02:22:30 Neat. 02:22:33 That works out nicely too. 02:22:52 * CakeProphet loves it when an unintentional feature arises. 02:23:22 I also need a string-to-int int-to-string builtin. 02:23:33 -!- Asztal has quit (Read error: 113 (No route to host)). 02:23:45 maybe just call it "flip"... strings becomes ints (if possible)... ints become strings. 02:24:00 -!- Asztal has joined. 02:25:26 division and mod could easily be used as conditionals. 02:27:06 well... divsion plus floor (Python divison will be "true" division by default in later releases... but you can go ahead and specify it now using the __future__ module) 02:27:21 so uneven division will return floats. 02:28:33 it is also a well-known fact that 1-x and x*y with 0/1 gives you boolean not and and 02:30:26 you can get integer division by combining true division with mod 02:30:32 Yeah. 02:30:45 or floor. 02:31:15 ah yes, you have all three. 02:31:34 I might get rid of the lolno function then 02:31:56 isn't that negation on numbers? 02:32:07 no... right now it's boolean not 02:32:09 but.. 02:32:12 since I'm removing booleans 02:32:42 True converts to 1... False and None to 0 02:32:45 should they ever pop up 02:33:23 so boolean not would work... we just don't need it. 02:33:33 I want to strip out everything :D 02:33:40 that can be done otherwise. 02:33:49 in a more unconvential way. 02:35:03 Except random :D 02:35:13 I don't want to fool with building a random number generator myself. 02:36:01 although that _is_ considered one of the canonical programs for a new esoteric language. :) 02:36:25 well... it's not a full blown random generator. 02:36:37 It just allows randit from 1 to a given int 02:37:08 and if the value on the queue isn't an integer... it does the from-zero-to-one-float-random-thing (forogot the name of it) 02:38:15 floor can also be sumulated with round(x - 0.5) 02:38:21 sounds about as much as you can expect without a full-blown library of statistical distributions. 02:38:54 I could put a shitload of the standardlb into the specification... if I wanted. 02:38:56 and everything else can be constructed from those two cases. 02:39:22 sockets, file IO, etc 02:39:50 which I might do as an "extended stew"... for OS related juju 02:41:06 hmm.. oh I need to add greater than and less than. 02:41:23 greaterthan-and-equal-to is just a superset of multiple operations. 02:43:21 i thought you said you could use div and floor. 02:43:55 I could? 02:44:26 * CakeProphet doesn't know how to do gt and lt any other way. 02:44:33 than by simply having them present :D 02:45:28 The INTERCAL stdlib has random number generation in it. 02:45:54 I like the way the syntax oscilates from postfix to prefix 02:46:03 it's really bizzare. 02:47:50 I have the urge to add a little hack to do in-line Python.... 02:47:54 :D 02:49:06 You need to try out other languages. 02:49:32 Yeah. 02:49:40 I can do some schemish stuff... nothing huge though. 02:49:44 I attempted C but got bored. 02:49:46 let's say you have a non-zero integer and you want to test if it is positive or negative. 02:49:47 Perl looks interesting. 02:49:53 look at floor (1/x) 02:50:13 Write an infix->prefix translator in Scheme. 02:50:27 >.> 02:50:56 actually, floor (1/(2*x)) 02:50:57 I can do Glass fairly well... out of all the esolangs it's the one I'm most proficient at. 02:51:25 on second thought, zero is not a problem either. 02:51:35 I can read most of C... I still need to learn what structs are :D 02:51:38 floor (1/(2*x-1)) 02:51:45 don't really want to code it though. 02:52:11 eh, wait 02:52:17 I can do FORTH... never actually used it... but the syntax is so simple how can you -not- use FORTH? 02:52:33 -1 would give you a division by zero 02:52:47 er... 1 02:52:52 -!- Asztal has quit (Read error: 104 (Connection reset by peer)). 02:53:06 nope. 02:53:10 -!- digital_5e has joined. 02:53:20 but it isn't quite there yet. 02:53:22 oh yeah... anything multiplied by zero is one 02:53:28 duh, stupid math 02:53:54 floor (1/(4*x-2)) 02:54:20 eh... I think I'll just use builtins for comparison :P 02:54:31 that should have only two possible values, -1 and 0. 02:55:12 I guess it wouldn't be too hard to implement in Stew... since it's functional, I can abstract. 02:55:30 more properly... it's "procedural" (everything is on a global stew) 02:55:45 so -floor (1/(4*x-2)) == (x<=0) 02:56:29 new builtins. 02:57:01 for floats you would take floor before doing this, giving (x<1) 02:57:02 CHORD (yes, all caps... it felt like the thing to do) switches integers to ASCII... and ASCII to integers. 02:57:23 FLIP changes ints to strings, and strings to ints. 02:57:30 er... flip 02:57:32 lower case 02:58:05 so a CHORD is not a string? :) 02:59:34 hehe... 02:59:42 it's a combination of chr and ord 03:00:01 which are the functions that do the underlying magic. 03:00:25 CHORD was something that would have been waaay too tedious to implement in Stew. 03:00:36 and flip was just impossible 03:01:54 I suppose you could build a BF interpreter in Stew. 03:02:02 Yum, Stew. 03:02:22 just have a queue representing each possible symbol... and do a bunch of conditional rotations via comparisons. 03:02:35 then call the function at the top que. 03:02:38 queue 03:02:58 except... there's always that pesky while loop. 03:05:53 just make sure that the op for the while loop places itself back in the queue 03:06:26 oh, you mean the bf loop 03:06:31 yeah 03:06:37 Stew doesn't have whiles. 03:06:49 [] is hard to implement 03:06:50 Trying to prove Stew Turing-complete? 03:07:00 Nah... 03:07:12 just wondering -if- it could do a BF interpreter. 03:07:15 can a stack contain stack elements? 03:07:15 so... I guess so :P 03:07:21 Nope. 03:07:31 Just a single of stack of queues. 03:07:41 all data is in the queues... and all the queues are in the stack. 03:07:45 it's a little weird to get used to :D 03:07:57 so no queues in the queues either. 03:08:12 * bsmntbombdood eats Cake(Prophet) 03:08:12 No unless you can find a bug that lets you do so. 03:08:15 which is highly likely. 03:09:08 If you push all the values from the top queue... it's removed and the one below it takes its place... if that paticular quirk helps an. 03:09:10 y 03:09:47 back 03:10:02 the only loop construct in Stew (at the moment) is a function mapper() 03:10:09 which... I haven't tested yet. 03:10:11 is there a way to get to queues other than the top one? 03:10:36 Yeah. 03:10:47 how? 03:11:22 -!- digital_5e has quit (Connection timed out). 03:11:24 @ takes the topmost int from the top-most queue as a stack looker-backer. 03:11:27 like DUP in Forth. 03:11:40 pushes an old queue back to the top. 03:11:54 it's how you would do conditionals in Stew. 03:12:24 give it a comparison... it returns either 1 or 0... and use that to conditionally flip between the top two queues. 03:13:34 is there a way to swap or rotate the top queues? 03:13:36 -!- ihope_ has quit ("Leaving"). 03:13:39 and I'm guessing... if you used negative integers it would get the bottom most queue... since I didn't really specify any sort of check for that thing... and that's how Python would do it. 03:13:49 Like I just said :P 03:13:55 aha! 03:13:59 Use comparisons in combination with @ 03:14:10 that means you can use the bottom queues for globals! 03:14:29 An order list of globals :/ 03:14:33 ordered 03:14:40 facny 03:14:44 *fancy 03:15:43 % is the foreach operator... it calls a function for each item in the top queue (using some fancy voodoo to make sure that each item is at the front of the queue at some point. 03:16:25 can you use % to delete the topmost queue? 03:16:59 hmmm... don't think you could... 03:17:19 well... if your function didn't put anything in the queue. 03:17:39 I'd need to tweak the interpreter a bit to parse an empty function though :D 03:17:47 it would take all of two seconds. 03:18:02 OneOrMore -> ZeroOrMore ? :) 03:18:18 yup 03:18:20 just did it. 03:18:22 abacus 03:18:25 oops 03:20:56 The queue-based counterpart to @ is . 03:20:59 let's say you made each BF loop into a queue. 03:21:14 you can get a specific element from the topmost queue as well. 03:21:28 allowing for inter-queue conditionals :D 03:21:33 placing it in a specific position from the bottom. 03:21:34 * CakeProphet forgot about . 03:22:16 (by the way "stew" is the phonetical squashing of stack and queue) 03:22:40 s/stew/stueue/ 03:22:48 that looks silly. 03:22:51 stew is much better :D 03:22:57 that's the point 03:23:09 * CakeProphet likes stew better for some reason. 03:23:54 although stue is norwegian for living-room 03:24:10 I can't imagine stew being very efficient... pretty much any operation on it involves messing with a two-dimensional array. 03:24:13 or a cottage 03:24:22 stue might work nicely :D 03:24:40 it has the -ue end of queue 03:24:47 and the st- beginning of stack. 03:25:08 what about quack? 03:25:15 hahahaha 03:25:24 stue quack? 03:25:29 quack stue? 03:25:41 I like quack stue :D 03:25:42 or maybe just quack. 03:25:54 * bsmntbombdood likes 03:25:54 ... 03:26:11 meh... now I can't decide on a name. 03:26:14 so many good choices. 03:27:40 eh... for now I'll just call it stew 03:27:45 for reference purposes :D 03:28:30 hmm... wait 03:28:36 It'll be hard to get foreach to work properly. 03:28:57 why? 03:29:02 As functions that call will eat up their arguments and return new ones... which go on a fancy result list to the side. 03:29:15 it would be difficult to make it implicitly "eat up" values... 03:29:26 unless you just like... outputed them. 03:29:47 that's one of the few functions that eat up values and don't spit anything back. 03:29:53 is there a way to simply remove a value? 03:30:04 ah. 03:30:13 You could make it an instrinsic property of foreach... but then it would eat -too- many. 03:30:22 there's currently not a pop... 03:30:25 :D 03:30:57 pops just sorta happen as the low level commands and functions start consuming values... 03:31:42 * CakeProphet -could- add a delete command... 03:31:44 it would be nice. 03:32:53 better yet... make it a builtin... so you can foreach it :D 03:33:35 builtin functions have the advanage of being treated as data... commands have the advantage of you-don't-need-to-explicitly-call-them-they-just-happen. 03:37:56 -!- Metuk has quit (Read error: 110 (Connection timed out)). 03:39:30 eh, why is Stew.q not being initialized? 03:40:32 it doesn't exist anymore :D 03:40:43 It was causing problems with referencing. 03:41:08 Now it just slices from the stack each operation... which is... kind of dirty... but eh. 03:41:18 so the pastebin is not accurate? (http://deadbeefbabe.org/paste/3099) 03:41:22 Nope. 03:41:43 as soon as I make a little tweak, I'll post up the latest. 03:44:12 a minor tweak in how Stew does symbols allows the interpreter to call any arbitrary string as though it were an op. :D 03:44:29 ( op is the "official" term for a procedure in the Stew lingo...) 03:44:33 OFFICIAL 03:44:37 ADHERE TO IT 03:50:26 NEVER 03:50:43 WE WILL CALL IT A "DUWN" 03:51:36 alright, I think I have a functioning def-bf interpreter... 03:51:52 would anyone like to help me make some test programs? 03:52:11 +[>+] 03:52:22 hehe... got my own interpreter testing to do :P 03:52:50 RodgerTheGreat: Test any normal Brainfuck code. 03:52:56 If that fails, j00 fail. 03:53:01 pikhq: already did that 03:53:06 works like a champ 03:53:08 Mmkay. 03:53:15 +[<+] 03:53:17 Hmm. . . 03:53:29 Not sure what to do. 03:53:40 * bsmntbombdood dies and goes to bed 03:53:52 oerjan, oh... and functions have the nifty ability to be constants :D 03:54:03 and I'm working on testing pointer control... 03:54:04 since they just push values to the stack... you can use them as constants to values. 03:54:18 program counter control is going to be tricky to test... 03:54:21 I mean... ops] 03:54:23 :D 03:54:27 Yeah. . . 03:56:41 alright, # pushes pointer location, and ; pops it. 03:56:59 so if my program is >>,<++#.,;[->.<] 03:57:23 with an input of "ab" 03:57:34 I should get an output of "abb", right? 04:00:52 ah! 04:01:11 you can create a constant function 04:01:25 just use eq to start with 04:01:41 eh, i mean, op :) 04:02:12 :P 04:02:22 the OP needs to be called though. 04:02:34 and... currently my interpreter is printing ouit strange results. 04:02:45 ...I messed it up again. :P 04:03:11 what i mean is, you can use it with foreach to turn every element of a queue into the same value. 04:03:57 ...aaaah 04:04:33 pikhq: er... did I code that right? 04:04:58 hehe... using esoteric languages is the fine art of misusing every bit of the languages features. 04:07:29 eh, is recursion the only way to do a loop in Stew? 04:07:50 because it might be hard on the Python stack. 04:08:21 as far as I can tell. 04:08:41 indefinite loops anyways 04:08:45 Um. . . 04:08:50 there's iterations. 04:08:55 Maybe? 04:09:28 well, shit- I'm getting stack underflows. It's either a faulty program or my interpreter 04:09:38 -!- Sukoshi has left (?). 04:09:44 -!- Sukoshi has joined. 04:10:21 my interpreter keeps printing the stack with no apparent reason to do so. 04:10:29 I've searched the whole program for a reason why. 04:10:45 hi, Sukoshi 04:10:47 you might want to adjust run to do proper tail call optimization. 04:10:52 Hey. 04:11:18 I'm working on getting a functioning Def-BF interpreter going 04:11:21 oerjan, run doesn't do function calls. 04:11:23 so that recursion can be safely used for loops. 04:12:05 oerjan, it retrieves the functions as data... the call is from the ^ command... which calls the call() method... which calls the __call__ method of an Op object :D 04:12:30 which might be unnesiary. 04:12:50 I could easily reduce it to a call to run() 04:21:05 alright... 04:21:15 fixed some stuff... but it still prints out the stack a bunch.. 04:23:35 hmmm... to make it do optimization for tail recursion you simply return the call right? 04:24:00 that ensures that Python no longer has to keep track of the functions local state. 04:24:48 * pikhq discovers that SMB3 kicks ass with a game genie. . . 04:25:01 Hammer Mario. All. Day. Long. 04:25:03 :) 04:26:08 or you turn the call into iteration. 04:27:43 RodgerTheGreat: Has someone finished the spec? 04:28:07 I wrote the original spec, and the low-level portion is complete. 04:28:20 Link me up, Rodger. 04:28:27 if you check in run whether the last command in the list is ^, and then whether its argument is an op, then you can shortcut and use the same invocation of run to do it. 04:28:53 The only change I made to what you've seen before is that I replaced the @ symbol with %, to free up @ as a reserved "word". One moment... 04:29:29 http://nonlogic.org/dump/text/1167711731.html 04:30:06 I'm implementing the low-level spec outlined in "Basic Commands" 04:30:28 Currently, I've left out ? just to save myself some minor headaches 04:31:00 So, the low-level commands perform definite jumps? 04:31:06 yes 04:31:26 Like +++++%. should output what? 04:31:35 %: control the program counter, and #; control the pointer 04:32:14 I think that ought to output CHR$(5) 04:32:42 But doesen't % jump to location 5? 04:32:51 wait, no- that would infinite loop 04:32:53 yes 04:32:57 zero-indexed 04:33:26 Hooray. Def-BF -- More ways to infinite loop. 04:33:32 yeah... 04:34:04 anyway... 04:34:11 * RodgerTheGreat snaps his fingers 04:34:13 -!- BrainMachine has joined. 04:34:22 bfmode 04:34:22 execution mode is currently: defbf 04:34:29 What about +++++#, inputs 'a' . 04:34:46 BrainMachine: +++++#, 04:34:49 that would store a in location 5 04:34:55 the syntax is 04:35:01 bfprog +++++# 04:35:03 er 04:35:07 bfprog +++++#, 04:35:12 bfinput a 04:35:13 bfrun 04:35:29 and that's pretty much that 04:35:44 bfprog +++++#,. 04:35:46 bfinput a 04:35:48 bfrun 04:35:48 a 04:35:52 Yay. 04:36:22 -!- oerjan has quit ("Good night."). 04:36:22 bfprog +++++>>>>,<<<<#. 04:36:24 bfrun 04:36:39 whoops 04:36:43 Heh. 04:36:44 bfprog +++++>>>>,<<<<#<. 04:36:46 bfrun 04:36:46 a 04:36:54 so, that aspect works 04:37:26 -!- calamari has quit ("Leaving"). 04:37:26 Man. I wish I could play some more with this. 04:37:29 bfprog +++++#,<+++++;. 04:37:33 bfinput a 04:37:34 bfrun 04:37:35 Pointer stack underflow error. Amazing. 04:37:36 But, I must finish my homework. 04:37:36 04:37:45 lol 04:38:01 Why does it spit out some erroneous character at the end? 04:38:08 bfprog +++++#,<<<<<[-]>>>>>. 04:38:11 bfinput a 04:38:15 bfrun 04:38:15 a 04:38:24 Whoo. 04:38:35 Sukoshi: oh, that's a bug/feature of the way error messages work 04:39:03 it just adds a "\nError Message\n" to the output stream 04:39:29 Aha. 04:39:33 Anywho, homework time. 04:39:38 cya 04:39:43 I might come up with my own interpreter tonight too. 04:39:47 sweet 04:39:51 the more the merrier 04:40:20 Oh, how does ? work, by the way? 04:40:44 once I can get this interpreter firing on all cylinders, I'll start working on the High-Spec->Low-Spec compiler 04:41:21 Sukoshi: the plan is for it to read the next n characters as long as they're numbers. Inelegant, but it works 04:41:58 How'll you tell that they're numbers? Do an ASCII bound check? 04:42:06 yeah 04:42:14 Aha. 04:42:36 or, since it's Java, I can repeatedly try Integer.parseInt() 04:42:49 I'm not really sure which would be easier 04:42:59 Well, in the all cylinders world, there's nothing that fancy. 04:42:59 it'll end up being ugly code, I know it 04:44:49 if you can think of a better way for ? to work, by all means let me know 04:45:28 I was thinking about having it just read in the next ascii char, but that limits values to 8-bit, and makes it hard to use interactive interpreter 04:45:29 s 04:48:26 * pikhq jumps off of cliffs in SMB3, singing "Suicide is painless, it brings on many changes, I can take or leave it if I please." 04:48:58 the philosophical side of nintendo. 04:49:09 http://www.codu.org/Kill_Yourself.org 04:49:10 Erm 04:49:13 http://www.codu.org/Kill_Yourself.ogg 04:49:13 Actually, it's the song from MASH. 04:49:18 GregorR: I've got it. 04:49:32 http://en.wikipedia.org/wiki/Suicide_Is_Painless 04:49:42 Uh, different song ... 04:49:53 I've got the Kill Yourself song. 04:49:57 Ah, OK :P 04:50:24 "Take out your favorite limb, take out your favorite eye, it doesn't matter how so long as you die!" 04:50:49 RodgerTheGreat: I'm doing Mash *and* Nintendo. 04:51:15 lmao: http://en.wikipedia.org/wiki/List_of_songs_about_suicide 04:52:46 I should add my Kill Yourself song to that 8-D 04:53:23 wtf? "Strawberry Fields Forever" isn't on the list. 04:58:30 "Let me take you down/'cause I'm going to/Strawberry fields-/nothing is real/-and nothing to get hung about/" 05:03:53 Don't use Wikipedia to gain relevance. 05:05:37 ? 05:15:20 -!- anonfunc has quit. 05:16:48 -!- anonfunc has joined. 05:32:39 good night, everyone 05:32:50 -!- RodgerTheGreat has quit. 05:32:55 -!- BrainMachine has quit (Remote closed the connection). 06:39:51 I ... eat ... babies. 06:48:01 High-five! 06:48:29 http://www.donotputthebaby.com/index.php?s=Mouth 07:56:22 * pikhq would like to salute the RIAA for their claims on a) the rampancy of piracy b) the cost of each song 07:57:58 They have recently valued a single song to be worth $150,000. . . 07:59:05 Well, if each person is worth $1,000,000 then their songs must be some fraction of them, no? 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:00:34 Let's estimate that maybe 20% of the US population (6,000,000 people here) pirate songs. 08:01:00 Let's say each of these downloads, say, 3 albums of 12 songs a year. 08:01:23 2,160,000,000 songs. 08:01:32 This is, obviously, a low estimate. 08:02:13 Now, with each worth $150,000, we get $324,000,000,000,000 worth of songs pirated. 08:02:16 I'd say 40%. 08:02:30 324 trillion dollars. 08:02:56 That's more than the entire GDP of France. 08:03:10 For comparision, the USA GDP is $12.485 trillion dollars. 08:03:22 : 08:03:23 P 08:05:17 Wow. 08:05:28 That's an order of magnitude larger than the world's GDP. 08:06:00 $44,454,843,000,000 dollars. 08:06:06 44 trillion dollars. 08:06:08 Dear god. 08:10:01 Shift my calculations by an order of magnitude. 08:10:51 60,000,000, people, 21,600,000,000 songs, $3,240,000,000,000,000 songs pirated. 08:15:06 Well, in the RIAA's heart, that's how much is being pirated. 08:15:41 Only in the US. 08:16:04 Applying this to global scale gets us having lost every year the amount of value produced since the dawn of mankind. 08:16:20 (just guessing on that, but hey. Sounds about right.) 08:20:49 In conclusion: balding men with more cash than sense should not be allowed to talk about money at all. 08:21:07 In conclusion: We should sue the RIAA. 08:22:18 In conclusion: We should just let the RIAA's recent decision to sue a front company for the Russian mafia take its course. 08:22:25 I'm buying the popcorn. ;) 08:22:34 Ah. Russia. 08:22:53 They decided to sue AllOfMP3. 08:22:54 The We're-still-totalitarian-you-bums nation. 08:23:02 * Sukoshi laughs. 08:23:13 For. . . More than the GDP of Russia. 08:23:24 Hahahahahahaha. 08:23:42 Since AllOfMP3 has mafia ties, this should be rather amusing. 08:23:52 Yeah, if that happened, AllOfMP3 would own Russia by now and they'd have their own corporate army and their own figurehead President. 08:24:35 s/AllOfMP3/RIAA/ s/Russia/America/ 08:24:38 Creepy. 08:24:45 Yup. 08:25:05 It's RIAA vs. EquallyHugeGiant. 08:25:37 (I've also heard rumors of the RIAA having American mafia ties. . . This gets more and more amusing.) 08:25:46 This 'aint exactly ripe fields for Socialism in the world now. 10:01:40 -!- jix_ has joined. 11:43:17 -!- tgwizard has joined. 11:49:05 -!- Asztal has joined. 12:19:24 -!- oklopol has joined. 12:32:01 -!- jix__ has joined. 12:33:20 -!- oerjan has joined. 12:40:29 -!- jix_ has quit (Read error: 113 (No route to host)). 14:33:38 -!- Asztal has quit (Read error: 113 (No route to host)). 14:46:32 -!- anonfunc has quit. 14:57:11 -!- Sph1nx has joined. 15:11:01 -!- ihope_ has joined. 15:12:33 -!- Sph1nx has quit (" !"). 15:28:49 -!- ihope has quit (Read error: 110 (Connection timed out)). 15:35:43 -!- oerjan has quit ("leaving"). 16:23:47 -!- RodgerTheGreat has joined. 16:23:58 hi 16:28:23 -!- RodgerTheGreat_ has joined. 16:28:23 -!- RodgerTheGreat has quit (Read error: 104 (Connection reset by peer)). 16:31:18 -!- RodgerTheGreat_ has changed nick to RodgerTheGreat. 18:09:31 -!- oerjan has joined. 18:43:54 hey, lambdabot@#haskell also has a BF interpreter 18:51:38 not that shocking since a bf interpreter takes 15 minutes to write 18:52:09 yeah 19:04:14 -!- RodgerTheGreat has quit (Read error: 104 (Connection reset by peer)). 19:04:25 -!- RodgerTheGreat has joined. 20:21:16 -!- Asztal has joined. 20:24:48 -!- Asztal has quit (Client Quit). 21:50:46 using minimal evaluation with boolean and/or makes for nice looking code 21:51:28 you mean making use of logical short-circuiting? 21:52:18 char *editor = getenv("VISUAL") || getenv("EDITOR") || (command_exists_p("emacs") && "emacs") || "vi"; 21:53:05 Yes, making use of logical short-circuiting :P 21:54:05 actually it is not essential in that example. 21:54:50 True ... but it would be fairly inefficient without :P 21:56:03 void *p=malloc(x) || exit(1) 21:57:19 That *works*. . . But I'd rather not use such a thing. 21:57:23 void *p; 21:57:26 Err. 21:57:32 void *p=malloc(x); 21:57:43 if(!p) exit(1); 21:57:49 Seems a bit clearer to me. 21:57:56 conciseness is good 21:58:28 Clarity is worthwhile, IMO. 21:58:52 some languages call that operator 'orelse'. 21:59:12 which is pretty clear. 21:59:30 I like the idea of making threats to your compiler 21:59:49 and (...) or die(1); is idiomatic perl. 21:59:50 it'd be like the opposite of INTERCAL 22:00:37 oerjan: is that good or bad? 22:00:40 hm, that probably should be die("..."). my perl is getting rusty. 22:02:10 * GregorR hates perl's proponderance of silly conditional keywords. 22:02:11 it's good. perfectly clear, too. 22:02:28 Also, I hate this: do something if (x); instead of if (x) do something; 22:02:45 And 'unless', I hate that too. 22:02:53 Really, I just hate Perl.l 22:03:16 I hate executable line noise. 22:03:24 and here i was going to mention that Haskell has when and unless in the Control.Monad module. 22:03:25 python > perl 22:03:36 prefixed though, being functions. 22:03:40 Brainfuck > Python 22:03:54 GregorR: that is nice sometimes 22:03:57 closer to english 22:04:07 Closer to English != nice 22:04:29 Malbolge > Brainfuck :) 22:05:49 but what is perl > ? 22:06:02 A pile of horse dung? 22:06:08 Mind you, that's only in terms of programming. 22:06:10 maybe COBOL. 22:06:13 In general, the horse dung is more useful. 22:07:22 darn, has someone made a BF interpreter in COBOL yet? 22:07:36 oerjan: Undoubtedly. 22:07:44 I made one in ORK, that's like COBOL++ :) 22:07:50 :) 22:07:53 I still need to do BF in my OISC 22:08:07 Actually, it's ADD 1 TO COBOL GIVING COBOL. 22:08:22 pikhq: Sooo much typing ;) 22:08:31 When you say OISC, are you referring to OISC the general concept with no specific implementation or a specific implementation, such as MISC? 22:09:03 GregorR: MY oisc 22:09:06 of course that is anecdotical, i believe the GIVING COBOL is redundant. 22:09:10 bsmntbombdood: Ahhhhhhhh 22:09:19 Perhaps even INCREASE COBOL BY 1. 22:09:24 :p 22:09:32 There is such a thing as a programming language. 22:09:37 A programming language can be incremented. 22:09:38 22:09:46 There is a programming language named COBOL. 22:09:50 COBOL is to be incremented. 22:09:58 Not quite. 22:10:10 and i think there is some reasonable expression notation in cobol as well. perhaps. 22:10:17 -!- RodgerTheGreat_ has joined. 22:10:26 Make your class be operated on by a mathematician named Gregor. 22:10:34 Oh right. 22:10:39 -!- RodgerTheGreat has quit (Read error: 104 (Connection reset by peer)). 22:10:50 There is a mathematician named Gregor. 22:10:54 Gregor's first operand is COBOL. 22:10:58 Gregor's second operand is 1. 22:11:01 Gregor is to add. 22:11:13 ORK is Gregor's result. 22:11:51 Or, the acronym for that: MNGGFOCOBOLGSO1GAORKGR 22:34:33 -!- ihope_ has quit (pratchett.freenode.net irc.freenode.net). 22:34:33 -!- tgwizard has quit (pratchett.freenode.net irc.freenode.net). 22:34:34 -!- GregorR has quit (pratchett.freenode.net irc.freenode.net). 22:35:49 -!- ihope_ has joined. 22:35:49 -!- tgwizard has joined. 22:35:49 -!- GregorR has joined. 22:41:10 -!- ihope_ has quit (pratchett.freenode.net irc.freenode.net). 22:41:10 -!- tgwizard has quit (pratchett.freenode.net irc.freenode.net). 22:41:10 -!- GregorR has quit (pratchett.freenode.net irc.freenode.net). 22:41:33 -!- ihope_ has joined. 22:41:33 -!- tgwizard has joined. 22:41:33 -!- GregorR has joined. 22:50:46 -!- ihope_ has quit (pratchett.freenode.net irc.freenode.net). 22:50:46 -!- tgwizard has quit (pratchett.freenode.net irc.freenode.net). 22:50:46 -!- GregorR has quit (pratchett.freenode.net irc.freenode.net). 22:51:08 -!- ihope_ has joined. 22:51:08 -!- tgwizard has joined. 22:51:08 -!- GregorR has joined. 23:03:50 -!- ihope_ has quit (pratchett.freenode.net irc.freenode.net). 23:03:50 -!- tgwizard has quit (pratchett.freenode.net irc.freenode.net). 23:03:50 -!- GregorR has quit (pratchett.freenode.net irc.freenode.net). 23:04:14 -!- ihope_ has joined. 23:04:14 -!- tgwizard has joined. 23:04:14 -!- GregorR has joined. 23:39:49 -!- Asztal has joined. 23:43:48 -!- ihope_ has quit ("http://tunes.org/~nef/logs/esoteric/06.08.09"). 23:48:00 -!- Fordsway has joined. 23:50:12 -!- Fordsway has left (?).