00:17:00 solved problem 1 of project euler in brainfuck :D (ok, ok, it needs a weird brainfuck with at least 18-bit wide cells and number i/o instead of character i/o) 00:25:47 http://aw.eso.me.uk/p/?show=f4b3bfce0 00:25:50 good night guys 00:26:09 night 00:26:44 also i just noticed that the 4th line of the loop for 3's can be shortened 00:26:46 but anyway... 00:28:46 -!- oerjan has quit (Quit: Good night). 00:31:33 -!- ArcticDeath has left (?). 00:32:13 jamesstanley, given 8-bit BF, you can um, simulate 8^2n bit BF easily 00:32:15 iirc 00:33:45 And itoa isn't hard to do. 00:34:42 itoa? 00:34:47 int to string? 00:36:49 Yuh. 00:37:00 So he could output numbers. 00:39:31 What about inputting numbers? 00:41:00 * Sgeo_ starts thinking about transformations of BF code and order in which such are applied 00:42:10 Sgeo_: That's a trivial matter of parsing. 00:49:05 -!- jabb_ has quit (Quit: Page closed). 01:07:08 -!- Tritonio_GR1 has joined. 01:07:30 -!- Tritonio_GR has quit (Ping timeout: 248 seconds). 01:17:16 -!- zzo38 has joined. 01:20:29 -!- DH____ has quit (Read error: Connection reset by peer). 01:21:51 -!- DH____ has joined. 01:29:23 I found out how to fix the game_id so that it matched of the filename of the module: http://zzo38computer.cjb.net/PySol/ruleset/ Now you must rename each file, otherwise it won't work!!!! 01:29:28 !!!!!!!!!!! 01:30:26 I also added in a Interactive Exec command, so that you can enter a Python code at run-time. http://zzo38computer.cjb.net/PySol/plugin/extra_commands.py 01:31:49 Now I invented the idea for HighForth with is like Forth but with high-level functions and it can be used with other high-level functions such as JavaScript, Python, etc. 01:31:58 An example code is: : 2+ 2 + ; 01:32:15 Which can also be written as: [[ 2 + ]] CONSTANT `2+ 01:32:41 Or: NULL DATA-OPEN 2 L, `+ , DATA-CLOSE COMPILE CONSTANT `2+ 01:33:08 Or: 2 `+ 1 CURRY CONSTANT `2+ 01:33:22 Or even a bunch of other ways. 01:35:44 Or: NULL DATA-OPEN 2 L, +` EXIT` DATA-CLOSE COMPILE CONSTANT `2+ 01:36:15 Or: 2 1[[ + ]] CONSTANT `2+ 01:36:26 Or: 2 1 S[[ + ]] CONSTANT `2+ 01:52:26 -!- Tritonio_GR1 has quit (Ping timeout: 276 seconds). 02:10:04 -!- cheater99 has quit (Ping timeout: 240 seconds). 02:11:52 -!- zzo38 has left (?). 02:18:14 -!- cheater99 has joined. 02:33:34 -!- zzo38 has joined. 02:33:34 -!- Mathnerd314 has joined. 02:33:43 This is how the simple IRC log format can be written: http://zzo38computer.cjb.net/textfile/miscellaneous/SIRCL 02:48:38 -!- zzo38 has quit (Remote host closed the connection). 02:50:01 -!- coppro has joined. 02:55:34 -!- Gregor has joined. 03:15:33 -!- coppro has quit (Remote host closed the connection). 03:16:08 -!- coppro has joined. 03:21:15 http://codu.org/tmp/BalMusetteNocturne-wipp1.mp3 Gregor attempts to play two musical instruments at once and records it poorly! 03:21:31 Gregor accidentally bolds things! 03:22:03 http://www.youtube.com/watch?v=uRv8gnBMiWM 03:24:15 -!- Mathnerd314 has quit (Ping timeout: 245 seconds). 03:24:55 Gregor also uses mp3 for once! 03:24:57 The horror! 03:25:14 I made it ogg, but the first person I sent it to I knew wouldn't be able to play a .ogg :P 03:25:30 Ah. 03:28:41 I see you have no opinion on the music itself :P 03:29:05 I've not listened yet. 03:29:10 :P 04:05:04 -!- pikhq has quit (Quit: LOGGING OF FOR WEEK. MUAHAHAH.). 04:16:54 -!- zzo38 has joined. 04:17:07 Sometimes the log file is application/octet-stream by mistake? 04:18:59 Which IRC server softwares can be compiled with the GNU C compiler and can work on Windows and on Linux? 05:34:18 dunno 05:35:03 seven's at git clone git://git.freenode.net/ircd-seven.git 05:35:34 I found ngIRCd I think I will use that one. If I can get it to compile 05:45:26 Gregor: did you learn to play the harmonica just for that? or is it a different instrument or you knew it already or 05:45:45 i actually first thought i'd just comment on everything except the music but then i thought it'd be a bit too obvious 05:45:54 -!- oktolol has changed nick to oklopol. 05:46:03 I'm glad that you think I can do impossible things on the harmonica. 05:46:07 i love how mirc shoves all my past mistakes in my face for the rest of my life 05:46:11 It's nice to know you have that kind of confidence in me. 05:46:25 Well, not impossible, but the kinds of things that people study the harmonica for YEARS to be able to do. 05:46:29 However, that's not a harmonica. 05:46:38 i thought the fast things are just you moving your mouth over the thing 05:46:43 err along it 05:46:57 The chords are the real complication :P 05:47:10 Since some of them would involve tonguing an intervening hole on a harmonica. 05:47:19 well i have crappy quality, i thought there was just thirds 05:47:31 hmm 05:47:33 oh right 05:47:42 Yeah, the audio quality is bad since I don't have decent recording equipment :P 05:48:57 Not gonna continue instrument guessing? 05:49:32 yeah and i'm using my laptop's speakers and they are hammering the other side of the wall and boring through it 05:49:47 drilling 05:50:09 Well, it's a melodica, so you wouldn't have guessed it anyway :P 05:50:17 err i don't really know much about instruments, harmonicas and well okay make that sound 05:50:24 the list would've included melodica 05:50:30 if i'd remembered its name 05:50:39 The fact that you've heard of it is astounding ... 05:50:59 it's the thing you blow into and play like a piano? 05:51:26 Yup 05:52:13 i have heard the name lots of times, anyway i gotta go to uni so have fun with your instruments -> 05:52:33 er heard of the instrument or the name? 05:52:38 because the instrument is common 05:52:42 ??? 05:52:44 Common where? 05:52:49 I'd never seen one. 05:52:53 all the cool kids have them 05:53:00 WELL THEN I'M COOL NOW 05:53:04 i dunno, i've had at least one 05:53:17 and i just met one at a thing 05:53:45 * Sgeo_ decides that he <3 Zelda music 05:53:52 maybe it's like our national instrument dunno 05:53:53 -> 05:54:12 Actually, I made that decision a long time ago 06:08:25 I loaded ngIRCd into Cygwin but now it is error message It doesn't work it says "bash: make: command not found" 06:11:13 What is wrong? 06:14:28 you don't have make? 06:19:04 I have make in MinGW but in Cygwin it says it doesn't? 06:21:06 -!- MizardX has quit (Ping timeout: 248 seconds). 06:22:31 -!- Mathnerd314 has joined. 06:47:05 Which package is "make" program? 06:49:45 What other packages are required to compile ngIRCd? 06:49:45 dunno 06:49:49 dunno 06:50:38 -!- FireyFly has joined. 06:57:02 In the Free Geek they now have the newest version of Ubuntu on their servers, but it has some things missing, even the "mail" command doesn't work 06:57:52 It says tell the administrator to install these softwares, he wasn't in on that day and how else can it be done without "mail" command? 07:06:57 -!- Mathnerd314 has quit (Ping timeout: 252 seconds). 07:13:27 -!- relet has joined. 07:17:11 Cygwin installer keeps displaying error messages about files that are in use, even though they aren't in use (I checked the permissions, I also checked the processes) 07:17:41 I also have one process that will not go away, process 924 cmd.exe 07:19:00 Attempting to terminate the process does nothing, attempting to debug gives error message that it cannot execute the program 07:21:03 Now Cygwin Setup seems stuck! 07:22:33 Now everything is stuck 07:23:17 -!- zzo38 has quit (Remote host closed the connection). 07:25:00 -!- MigoMipo has joined. 07:28:59 -!- MigoMipo has quit (Remote host closed the connection). 07:40:21 -!- jabb has quit (Ping timeout: 264 seconds). 07:42:12 -!- jabb has joined. 07:50:04 ...hello 07:50:05 -!- CakeProphet has quit (Quit: Reconnecting). 07:50:19 -!- CakeProphet has joined. 07:52:30 Hi! 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:05:54 Does this look esoteric: (0)3< (1)10< @; (1)20*(1)< (^)(,_1)>` (0)>1-< ! ? 08:08:38 yep 08:24:22 :o 08:24:35 yes it does. 08:27:02 I have that running in my interpreter succesfully 08:38:32 -!- Phantom_Hoover has joined. 08:47:23 btw, I successfully got my compiler to compile a working brainfuck interpreter the other week, that was fun 09:04:30 Cool, there's a low-level x86 Common Lisp implementation. 09:04:39 olsner: Compiler for what? 09:08:27 Phantom_Hoover: Got a cat example going 09:08:51 Does it halt on EoF? 09:09:02 yeah 09:09:05 just tested it 09:20:05 Right, standard procedure once you have an interpreter and working examples is to post it on the wiki. 09:20:18 Although I would advise you strongly not to post the interpreter there. 09:20:30 (The code, I mean) 09:20:47 googlecode? 09:20:52 github? 09:21:31 Pretty much wherever. 09:21:54 Except the wiki is entirely public domain, so if you want to have any control over the license don't post it there. 09:27:24 which commonly-used color space is the biggest? 09:28:16 http://en.wikipedia.org/wiki/File:Colorspace.png seems relevant. 09:30:34 -!- BeholdMyGlory has joined. 09:30:51 useful, but that seems to be mostly RGB spaces 09:31:24 The rainbow? 09:31:50 Since it contains every frequency of light from the sun 09:32:03 Although you can't combine them... 09:41:10 -!- augur has joined. 10:00:38 -!- Sgeo has joined. 10:02:31 -!- Sgeo_ has quit (Ping timeout: 240 seconds). 10:04:34 -!- e2e has joined. 10:12:28 -!- BeholdMyGlory has quit (Remote host closed the connection). 10:14:53 -!- Slereah has joined. 10:19:09 -!- Gracenotes has quit (Read error: Operation timed out). 10:24:16 http://www.ecanadanow.com/curiosity/2010/06/03/the-newest-high-vodka-eyeballing/ Dear god, the youth of today are stupid. 10:25:42 I hope that it's just a media invention. 10:26:04 Sadly, the thing about them burning bins to get high off the fumes seems not to have been. 10:27:01 What? No they burn bins because it's fun... 10:27:35 Hmm, admittedly the citation for that was the Metro. 10:27:58 Which has lower journalistic standards than, say, a pigeon. 10:28:33 The Metro's one of the more reliable papers, I find. Would you rather beleive the Sun? Or the Mail? 10:28:43 No. 10:28:50 I believe no-one! 10:28:55 Not even you! 10:29:11 Anyone with more underscores than letters in their nick is not to be trusted. 10:29:36 I don't know why it did that... 10:29:52 I set my name as DH and it added them to the end... 10:30:01 -!- Phantom_Hoover has changed nick to PH______________. 10:30:24 I am exceedingly untrustworthy now. 10:34:04 -!- tombom has joined. 10:34:07 Nah, you seem to be up front about everything 10:34:13 -!- jabb has changed nick to __jabb. 10:34:19 <__jabb> I'm unstrustworthy 10:34:35 No you're not! 10:34:57 Your underscore:letter ratio is only 1:2. 10:36:49 * PH______________ has written possibly the ugliest line of code in his life 10:37:04 <__jabb> I wish to see it 10:37:21 (set-weight neuron output (+ (car range) (random (coerce (- (car range) (cdr range)) 'double-float))))) 10:37:55 The first time I tried I got lost in parentheses, so I had to undo and rewrite it very carefully. 10:38:36 <__jabb> I'm a lisp noob 10:39:07 And I used cdr when I should have used cadr, too... 10:41:09 And I got various indices wrong. Oh well, it's fixed now. 10:52:58 heyo 10:54:19 -!- Gracenotes has joined. 11:06:12 augur! 11:07:16 hey 11:07:19 Gracenotes! :D 11:07:52 I don't recall Gracenotes ever actually saying anything... 11:08:51 hes magical 11:08:54 he doesnt have to 11:09:49 but you can be magical too!!! 11:10:01 How? 11:10:11 don't you see?? 11:10:13 lol 11:10:15 I tried learning Lisp, but that didn't work; nor did Haskell. 11:10:15 sorry 11:10:27 random bs 11:10:41 Oh, by not saying anything. 11:10:49 But that doesn't make me magical. 11:11:05 Magic requires that I don't *have* to say anything. 11:11:13 fungot? 11:11:24 Oh, no! 11:11:33 I'm a fairy princess 11:12:19 in a way 11:13:28 -!- softmoon has joined. 11:14:14 e2e: Which way? 11:14:31 I 11:14:39 don't 11:14:42 know 11:15:39 levitation 11:17:08 wait thats false 11:17:22 nm 11:17:29 Do anyone know something about Lali Puna? 11:19:28 what about it 11:21:06 I do not know something about music 11:22:54 -!- softmoon has quit (Quit: softmoon). 11:45:13 -!- e2e has quit. 11:52:21 Is there any browser scripting language other than JavaScript? 11:57:02 -!- Gracenotes has quit (Ping timeout: 260 seconds). 12:04:21 <__jabb> html 12:04:24 <__jabb> buahahahaha 12:08:52 -!- augur has quit (Remote host closed the connection). 12:09:04 -!- augur has joined. 12:21:04 -!- FireyFly has changed nick to FireFly. 12:32:31 Hrm 12:32:42 A function that returns its argument, x → x, what's it called again? 12:32:44 * FireFly forgets 12:34:51 identity function 12:35:01 Ah, yeah, thanks 12:35:32 There was a "you'll forget your own identity next" pseudo-pun waiting there. 12:37:59 PH______________: VBScript, PerlScript 12:40:16 -!- augur has quit (Remote host closed the connection). 12:40:26 -!- augur has joined. 12:43:53 :o 12:44:19 * CakeProphet is learning about SM in Haskell 12:44:24 I think I understand it, just need to see it in use. 12:44:38 Haskell SM? Eew. 12:46:54 Deewiant: Are they standardised? 12:47:04 What do you mean 12:48:15 <__jabb> PH: http://esolangs.org/wiki/Mimsy 12:48:55 I thought "mimsy" was from Jabberwocky. 12:49:16 "All mimsy were the borogroves, and the mome raths outgrabe." 12:49:36 VBScript is only supported in Windows, and PerlScript requires ActivePerl and therefore also Windows. 12:49:45 <__jabb> which is a poem from Through the Looking Glass :P 12:49:54 Oh, really? 12:49:57 <__jabb> yeah 12:50:06 <__jabb> http://en.wikipedia.org/wiki/Jabberwocky 12:50:22 Also, the language looks pretty good. 12:50:35 It's sufficiently like line noise. 12:50:54 And it maintains a healthy disregard for whitespace. 12:51:05 <__jabb> :D 12:51:36 * CakeProphet thinks his tree-based language will be sweet. 12:53:26 PH______________, that is one irritating nick! 12:53:44 I'm trying to be untrustworthy. 12:54:14 (I'm Phantom_Hoover, if you haven't realised) 12:54:51 I did realise that from /whois 12:54:59 and I suspected it before that 12:56:46 (10:28:47) Phantom Hoover: Anyone with more underscores than letters in their nick is not to be trusted. 12:56:50 That is why. 12:58:38 I see 12:58:50 PH______________, anyone with a space in their nick is not to be trusted at all 12:58:58 since that doesn't work 12:58:59 I don't acutally have one. 12:59:04 It's the client. 12:59:05 PH______________, what about that quote then? 12:59:11 s/acutally/actually/ 12:59:13 okay, such clients are not to be trusted 12:59:20 Very probably. 12:59:33 I'll probably change in a while. 13:00:02 PH______________, oh? 13:00:11 btw "-PH______________- VERSION Purple IRC", never heard about that 13:00:23 On the other hand, irssi had my real name on whois, and I couldn't see how to change it easily. 13:00:31 PH______________, the irssi config 13:00:35 I presume 13:00:37 AnMaster: Toying with Pidgin. It's vaguely tolerable. 13:00:45 PH______________, probably called gecos or such 13:00:46 not sure 13:00:52 since I don't use irssi 13:01:03 What do you use? 13:01:07 PH______________: /set name 13:01:14 PH______________, ERC, haven't I told you before? 13:01:23 * PH______________ goes off to change his client again 13:01:26 -!- PH______________ has quit (Quit: Leaving.). 13:03:32 Deewiant, did you see that idea a few days ago about befunge with branch delay slots? 13:03:46 Yes, I did 13:04:17 -!- Phantom_Hoover has joined. 13:04:17 I was going to comment about that being very feral for a fingerprint but decided not to 13:05:29 Deewiant, not as a fingerprint I thought, but as a fungiod 13:05:56 (sorry for slow reply, had to clean my glasses due to small accident there) 13:06:21 You did say "as a fingerprint perhaps", but yes. 13:06:39 hm, maybe I did 13:06:41 And a reply isn't slow unless it takes at least five minutes to come. 13:06:50 2010-06-02 01:25:20( AnMaster) as a fingerprint perhaps 13:06:50 heh 13:07:27 hm, as a fingerprint it is much less useful than as a core feature of a fungoid 13:07:42 since the latter would allow a nice pipeline in a hardware implementation 13:07:56 while the former would have to enable that only sometimes 13:08:03 and require dual implementation or something 13:09:39 Fingerprint? 13:10:34 Phantom_Hoover, befunge98 thing, kind of like a loadable library of functions that the interpreter provides, will be loaded on A-Z 13:10:47 fungot uses SOCK and a few other ones for example 13:10:51 hey, where is fungot? fizzie! 13:13:19 Let's see. 13:13:23 (Just arrived home today.) 13:13:38 fizzie, hi! 13:13:40 * Phantom_Hoover whistles innocently 13:13:44 Phantom_Hoover, what? 13:14:23 -!- fungot has joined. 13:14:29 <__jabb> He's unstrustworthy 13:14:33 I kinda sorta changed my nick to fungot during a netsplit. 13:14:33 Phantom_Hoover: i'm still learning 13:14:39 -!- __jabb has changed nick to jabb. 13:14:44 __jabb, I'm not anymore. 13:14:58 I don't believe you 13:15:02 No underscores, see? 13:15:05 The nick-change seems to have not been related: RAW >>> ERROR :Closing Link: momus.zem.fi (Ping timeout: 260 seconds) <<< 13:15:15 (If it drops, it won't try to reconnect.) 13:18:13 Phantom_Hoover, one underscore! 13:18:45 True, but the ratio of underscores to letters is low. 13:20:06 fungot 13:20:07 Phantom_Hoover: don't take your class as any indication of decision of opinion whatsoever.). 13:20:15 ^style 13:20:15 Available: agora alice c64 ct darwin discworld europarl ff7 fisher ic irc* jargon lovecraft nethack pa speeches ss wp youtube 13:21:41 It reverts to that style on startup by default. 13:25:54 !haskell print (show "Hello") 13:26:13 "\"Hello\"" 13:28:10 !haskell print \$ read "print" 13:28:11 *** Exception: Prelude.read: no parse 13:29:33 !haskell print \$ read "1" :: Int 13:30:26 !haskell print (read "1" :: Int) 13:30:28 1 13:31:01 !hasle;; print (read \$ show "print" :: String) 13:31:06 !haslell print (read \$ show "print" :: String) 13:31:20 !haslell print (read (show "print") :: String) 13:31:26 s/haslell/haskell/ 13:31:34 !haskell print (read (show "print") :: String) 13:31:35 ...ah 13:31:36 David Haskellhoff. 13:31:36 "print" 13:32:47 !Haskell print \$ [(+1), (+2), (+3), negate] <\$> 3 13:32:56 !haskell print \$ [(+1), (+2), (+3), negate] <\$> 3 13:33:27 ...we need lambdabot. 13:34:42 !haskell import Control.Applicative; main = print \$ [(+1), (+2), (+3), negate] <\$> 3 13:36:28 !haskell import Control.Applicative; main = print \$ [(+1), (+2), (+3), negate] <*> pure 3 13:36:30 [4,5,6,-3] 13:39:23 -!- augur has quit (Remote host closed the connection). 13:39:36 -!- augur has joined. 13:40:40 augur, 13:40:42 ! 13:40:58 xyzzy, 13:40:59 ni! 13:41:08 xyzygy 13:41:22 fungot, 13:41:22 Phantom_Hoover: ' but initialize it from a file, so i keep to 255 byte lines much pain. but oh well its a known fact that the syntax-rules word does is remove the ever so slight overhead of a function 13:41:23 R! 13:44:13 C++ is outdated btw. It wants to preserve the class system all the injustices that implies. 13:44:21 * AnMaster runs 13:44:22 -!- Moult has joined. 13:44:32 -!- Moult has left (?). 13:45:52 AnMaster, everything uses the class system. 13:45:57 Except JavaScript. 13:46:03 oh? 13:46:12 JavaScript: Program equality. 13:46:38 really? wouldn't the ability to determine that solve the halting problem? ;P 13:46:52 Urgh. 13:47:05 Well, once we get FTL travel... 13:47:16 what has that got to do with it? 13:48:26 Well, not much, since that's not useful if you don't have infinite memory 13:48:32 FTL → time travel → TwoDucks interpreter → halting oracle. 13:49:00 But time travel violates quantum unitarity, though 13:49:14 Dammit. 13:49:35 Phantom_Hoover, also it requires infinite space as well 13:49:51 and how does FTL imply time travel? 13:49:51 That doesn't stop us normally. 13:50:00 AnMaster: Relativity. 13:50:08 hm 13:50:17 does it allow going backward in time? 13:50:23 or just slowing it down/speeding it up? 13:50:56 It allows violation of causality, which is basically time travel. 13:51:02 AnMaster: if you can go faster than light 13:51:06 and relativity holds 13:51:10 then you travel backwards in time 13:52:36 augur, ah right 13:52:54 assuming relativity holds. 14:05:22 -!- MizardX has joined. 14:24:05 -!- ineiros has changed nick to ineiros__. 14:24:43 -!- augur has quit (Remote host closed the connection). 14:24:52 -!- augur has joined. 14:25:33 -!- ineiros__ has quit (Quit: .). 14:32:00 * Phantom_Hoover wonders why on earth one would possibly want a logical XOR operator. 14:33:24 -!- Tritonio_GR has joined. 14:33:26 Completeness is one reason. 14:33:53 implicit conversion of its operands to boolean type, and it looks better than !!x != !!y 14:34:30 But in what context would you need it? 14:37:12 -!- BeholdMyGlory has joined. 14:40:23 i've needed a logical xor many times 14:40:40 For what sort of things? 14:40:42 can't think of a situation tho 14:40:44 ^ 14:40:58 for when i've needed exactly one of two things to be true, obviously 14:41:11 rare, but i recall needing it multiple times 14:41:41 I recall there being a comment from Larry Wall about why he didn't want a ^^ operator because he didn't want to spend forever telling people why it didn't short-circuit. 14:41:55 heh 14:52:00 -!- relet has quit (Quit: Leaving.). 14:52:23 * Phantom_Hoover has an overwhelming desire to do low-level code 15:08:10 hmmm I wonder if you could use a constrain-enabled type system to automate unit testing. 15:08:24 Phantom_Hoover: make a bitchin' VM 15:10:37 give it support for stuff like function pointers.... profit? 15:13:43 but yeah.. constraints and types.. so 15:13:55 Haskell's system only lets you specify whole sets of objects 15:14:13 Int passes for all system-bound integer values... 15:15:02 CakeProphet: Define "bitchin'". 15:15:42 but if you could do like (Int within [1..100])... the type checker could use that information to invalid a program based on data-sets that won't match up at runtime. 15:15:54 Phantom_Hoover: I don't know. Uses something previous unused in VM design. 15:15:59 an esoteric VM 15:16:05 Been done. 15:16:50 hmmm 15:17:07 (t | c) where t is a type and c is a constraint. 15:17:09 Although... 15:17:16 constraints would be like... type-level predicate functions sort of. 15:17:37 In the Lazy K spec it suggests that it could be used as bytecode for a VM. 15:17:46 -!- Tritonio_GR has quit (Quit: Leaving.). 15:18:08 Phantom_Hoover: well... do something different 15:18:13 but equally bitchin' 15:18:20 No, I mean actually write the VM. 15:18:29 ...ah 15:18:41 Lazy K is an incredibly functional language, so it could be fun. 15:18:58 hmmm... 15:19:12 * CakeProphet is thinking about constraints and type systems. 15:19:58 conditionals would change constraints on a type. 15:20:08 -!- hiato has joined. 15:20:21 if (x>100) f (x) else x 15:20:44 the constraint on x changes for each of those nested expressions 15:21:04 I also have a couple of old BF interpreters lying around, and it would be trivial to adjust them to be more VMy. 15:21:06 in the truth-expression x is Int | x > 100 15:21:19 Phantom_Hoover: What about a VM that operates on a tree? 15:21:31 instead of the stack/register based designs. 15:21:35 Hang on. 15:21:57 IIRC lazy languages use trees to evaluate. 15:22:01 Ooh. 15:22:11 :) 15:22:16 there you go... 15:22:38 OTOH low-level functional programming is an underexplored concept, so there's nothing to build on... 15:22:45 Right, let's get designing. 15:22:46 Phantom_Hoover: what I like about a tree design is that you can integrate a lot of POSIX-type stuff into the language 15:22:52 like... have a virtual filesystem of sorts 15:23:02 if you allow for naming of tree nodes as well as enumeration 15:23:08 Yes, but it would be nice if it was lazy and functional as well. 15:23:25 OK, so source and data should both be trees, which seems sensible. 15:23:30 ...lazy VM? I'd say only provide operations for /supporting/ lazy evaluation 15:23:34 but make the VM itself eager 15:23:49 Baah, no! 15:24:02 .. well, if you think there's benefit to having it lazy. 15:24:02 Low-level lazy evaluation is much interestinger. 15:24:09 It's esoteric! 15:24:15 rofl. granted. 15:24:29 * CakeProphet was thinking of a practical VM... for implementing lazy languages. 15:24:32 Eager evaluation is so 19**s. 15:24:37 or only partially lazy languages. 15:24:52 IO for example... can specify certain expressions to be lazy at a method level 15:25:02 rather than having everything implicitly lazy. 15:25:33 Lazy K is completely lazily evaluated and manages IO pretty well. 15:25:44 ...er, I meant io the language 15:25:46 not IO 15:25:59 Oh. 15:26:03 io is eager 15:26:05 !wiki IO 15:26:08 -!- coppro has quit (Quit: I am leaving. You are about to explode.). 15:26:08 but methods take lazy parameters 15:26:11 `wiki IO 15:26:12 -!- augur has quit (Remote host closed the connection). 15:26:20 -!- augur has joined. 15:26:27 !google io 15:26:29 http://google.com/search?q=io 15:26:34 looool 15:26:36 No output. 15:26:46 !google io programming language 15:26:47 http://google.com/search?q=io+programming+language 15:26:55 Hmm. 15:27:06 It seems like it's intended to be *useful*. 15:27:10 BOO! 15:27:34 io =/= iota? 15:27:42 ...different. 15:27:46 No. 15:27:51 io is not iota 15:28:09 Lazy K would actually be feasible, since it runs purely at the SKI level. 15:28:13 Phantom_Hoover: usefulness doesn't exclude novelty of concept. :) 15:28:37 So it's innately tree-based as it is. 15:28:58 what I was thinking of was a VM that explicitly operates on a global tree 15:29:12 So the I-less cat program, ``skk would become... 15:29:13 and then particular lazy languages could implement how laziness works. 15:29:39 OK, so the low-level code manipulates a tree? 15:29:51 ...that's how I would see it working. 15:29:56 And then we write an interpreter for a lazy language in that? 15:30:00 Hmm, interesting. 15:30:07 I always think a VM should model hardware somewhat closely 15:30:11 but provide abstraction 15:30:14 Would code be in the tree as well? 15:30:20 For the low-level language. 15:30:24 it's possible to set it up that way. 15:30:31 but it has to be tree-based code 15:30:40 Is there actually a hardware structure for trees? 15:30:44 ...no. 15:30:50 OK. 15:30:54 Just wondering. 15:30:58 well 15:31:00 filesystem 15:31:01 is the only one 15:31:03 that's tree-like 15:31:13 but that's not strictly hardware 15:31:19 Indeed. 15:31:19 just low-level. 15:31:26 OK, so the low-level code. 15:31:45 If it's implemented as a tree, it would seem like it would be quite functional already. 15:31:54 ...what I've come up with for this kind of stuff is that nodes are enumerated... and optionally can be given labels. 15:31:57 that are hierarchial 15:32:06 so if you name a node x... inside the parent node y... and its parent is root 15:32:06 OK. 15:32:10 then you have /y/x 15:32:11 to refer to x 15:32:19 OK. 15:32:59 ....so you could implement scoping rules like that perhaps. 15:33:16 ...also I'd say there should be a way to reference other nodes and jump to them. 15:33:50 also... types? 15:33:58 most VMs have a fixed number of types 15:34:05 regist-erbased vms like Parrot, for example 15:34:32 have int registers, float registers, byte registers, and "object" registers 15:34:41 object registers basically being pointer registers... 15:35:11 I don't know how a tree would handle types. 15:35:25 -!- saxamo has joined. 15:35:30 Each node has a type? 15:35:36 that's a possibility. 15:36:00 another alternative is to have a tree for each type 15:36:01 -!- saxamo has left (?). 15:36:04 but that might ruin the design. 15:36:21 It sort of loses the elegance of having a single, global tree. 15:36:25 yes. 15:36:50 well... if all of your data structures are the same byte-size 15:36:51 all is well 15:36:56 -!- Slereah has quit (Remote host closed the connection). 15:36:58 the best way to do that is to make pointers to everything. 15:37:17 Probably. 15:37:23 that's how PYthon gets dynamic typing... everything is a pointer to a single C struct. 15:37:43 but that's kind of inefficient I think. 15:37:45 hmmm... 15:38:12 another idea is to have both a tree and a set of registers. 15:38:22 So... struct node { void *data; struct node *leaf1; struct node *leaf2; }? 15:38:38 ah... binary tree? 15:38:46 Seems sensible. 15:38:50 hmmm... 15:38:56 less you can do with it though. 15:39:14 Well, the SKI calculus fits nicely into a binary tree. 15:39:20 If you curry. 15:39:20 ah, okay. 15:39:48 I suppose you could change it later. I think arbitrary child nodes would be fun. 15:40:11 Well, you could possibly simulate that. 15:40:16 -!- softmoon has joined. 15:40:25 haha.. just link them altogether 15:40:46 Also, I assume nodes would need the type of the data as well. 15:41:12 well... binary works. If you wanted something production quality, though, you'd definitely want to take advantage of the performance benefits of using actual arrays. 15:41:22 yeah I suppose so. 15:41:59 oh... and they'd have optional names too 15:42:07 or do you want to do that? 15:42:17 names work better with arbitrary child nodes. 15:42:24 Mad idea: strip node size by making one of the child nodes NULL and the other a pointer to the data. 15:42:27 or at least make more sense. 15:42:29 For leaves. 15:42:47 -nod- that works. 15:42:57 linked list would use the other node as a next pointer. 15:43:48 .....named nodes would be epic 15:44:05 linkedlist/data, linkedlist/next, linkedlist/prev 15:44:06 Named noodles would be epic 15:44:07 for doubly-linked 15:44:34 .return would be a node referencing the node of the calling code. :) 15:44:44 Do we want to have data in parent nodes? 15:44:51 I'd say so. 15:46:06 if you want to have homoiconicity 15:46:17 you'll need a way to represent VM code in the tree 15:46:35 and an instruction that runs VM code in the tree. 15:46:59 OK, soo... 15:47:13 Wait, we want TCness too. 15:47:21 So control flow will be needed. 15:47:34 yeah, something basic will do. 15:47:47 hmmm... there's uh.... 15:47:59 How about, say, "move to the first child of the current node if it's 0, else the second" 15:48:11 yeah I'd so like 15:48:15 And then have an exec instruction. 15:48:29 "branch to node references by first child, if non-null, else branch to node in second node, if non-null" 15:48:34 *referenced 15:49:08 So set the first child to if 0, the second child to else, then jump to it. 15:49:23 mhm 15:49:26 Although you'd probably want to segregate the tree into "code" and "data". 15:49:40 generally... that's why I thought arbitrary child size would be nice 15:49:48 * CakeProphet is taking ideas from his tree-based esoteric language for this 15:49:50 so like... 15:49:53 So move the selected code into the code branch. 15:49:55 a standard namespace for functions could be like 15:50:12 /f 15:50:16 /f/map 15:50:18 /f/reduce 15:50:26 would point to code in the tree 15:50:28 or something. 15:50:36 Well, with a binary tree you can still do that. 15:50:37 under the node "f" 15:50:45 but you only have two nodes. 15:50:52 Have /data, /code/source and /code/functions. 15:51:01 Or somesuch. 15:51:24 I still think having more than two nodes would benefit from named-node semantics. 15:51:47 hmmm... here's an idea 15:52:01 if you wanted like... an intermediate language 15:52:05 that did stuff like named nodes 15:52:09 Hmm, yeah. 15:52:13 and then a low-level... which was focused on being efficient 15:52:19 *is 15:52:30 So we have the low-level binary tree language, and a mid-level filesystemy one? 15:52:51 ....see 15:53:20 I don't think binary trees will be very efficient. I'm generally considered about efficiency (even with esoteric things), so I wouldn't even use binary trees at all... 15:53:25 *concerned 15:53:28 my typing is terrible right now. 15:53:33 Aww. 15:53:36 but... 15:53:41 if you don't care about efficiency 15:53:55 then yes, that's fine. 15:54:05 If we cared much about efficiency we wouldn't be doing trees, would we? 15:54:12 ha, I suppose 15:54:16 what I would do 15:54:20 is have the low-level interface tree-less 15:54:31 so you don't have to do tree-lookups all the time with static information 15:54:40 Since it's going to work with an ungodly amount of mallocing and referencing. 15:54:58 pools! 15:55:47 malloc a fixed amount of objects, and acquire/recycle them. 15:55:56 to limit malloc/free calls. 15:56:07 Yes, indeed. 15:56:40 if I were going with efficiency I'd have registers as well. 15:57:06 But I don't really see how you can easily implement variable-child trees, 15:57:13 magic. 15:57:15 ... 15:57:23 well... it depends. 15:57:32 I prefer the intermediate code idea. 15:57:57 (Also, given modern computer speeds it's not really going to be a noticeable slowdown) 15:58:08 psh 15:58:20 well 15:58:30 when Google isn't interested in your ground-breaking VM research 15:58:37 because the low-level representation is inefficient 15:58:39 then.... oh well. 15:58:41 :P 15:58:51 they can go make their own and conquer the world more. 15:59:02 !google recursion 15:59:03 http://google.com/search?q=recursion 16:00:21 ...hmmmmm 16:00:22 you know 16:00:29 Oldest joke ever. 16:00:31 Anyway. 16:00:33 instead of using pointers for everything... consider a union? 16:00:38 -!- hiato has changed nick to cows. 16:00:47 -!- cows has changed nick to fishes. 16:00:50 Making nodes enumerable seems worthwhile. 16:01:00 indeed 16:01:19 I think a 16-bit integer should be enough for sane addressing. 16:01:42 maybe use tree nodes as your reference semantics... but then for data 16:01:43 Make the first few bits say to what depth, and then the rest specify the path taken. 16:01:46 instead of referencing data 16:01:48 use a union 16:01:55 since they'll be a fixed number of types. 16:02:01 int, bool, float, double, etc 16:02:07 value types. 16:02:23 Remind me, what are unions? 16:02:40 unions represent a combination of multiple types 16:02:46 the size of a union is the size of the largest nested type 16:03:01 OK, so if you have a char and an int? 16:03:03 you can read/write to a union type with any of the nested types 16:03:15 Then does the char represent the first byte of the int? 16:03:33 yeah. 16:03:34 -!- augur has quit (Read error: Connection reset by peer). 16:03:36 sort of. 16:03:38 like 16:03:40 Phantom_Hoover: that is undefined. you are not allowed to read from a different type than the one you last wrote to 16:03:41 That "yeah" isn't a "yeah" :P 16:03:43 if you read the union value as a char 16:03:45 it'll be the first byte 16:03:54 -!- augur has joined. 16:03:58 "First" as in "whatever my architecture decides to lay out first" 16:04:02 Not "first" in any consistent way. 16:04:06 Yes, I know. 16:04:14 And even that first is undefined, as unions can be as wonky as they want really. 16:04:19 I needed an example quickly. 16:04:28 generally they're fairly sane but portable code shouldn't rely on the layout of a union 16:04:30 ...is unions a bad idea? :P 16:04:36 -!- hiato has joined. 16:04:46 unions are perfectly OK so long as you use them properly. 16:04:56 unions are a good idea if you use them to reduce the memory requirements of an array of a struct, for example 16:05:00 -!- hiato has left (?). 16:05:03 (like what they're meant for) 16:05:32 Phantom_Hoover: union value_type { char character; int integer; bool boolean; float decimal;} 16:05:36 ; 16:05:58 it's like a struct 16:06:04 not really 16:06:05 but instead of setting the memory contents 16:06:06 apart from the syntax 16:06:09 side by side 16:06:13 all members take up the same place in memory 16:06:21 CakeProphet: not necessarily but normally yes 16:06:32 -!- fishes has quit (Ping timeout: 276 seconds). 16:06:41 in fact i don't know of a single implementation that doens't so it's safe to assume so 16:07:00 Implementing a union as a struct is probably valid 16:07:13 Wait, so is that how the data in the node is represented? 16:07:14 #define union struct 16:07:18 and nobody is any the wiser! 16:07:58 Phantom_Hoover: a union is a new kind of type. So you'd have variables of type union value_type 16:08:04 and then 16:08:09 union value_type x; 16:08:11 x.character 16:08:18 would access the union as a character... essentially. 16:08:20 Ah, right. 16:08:30 OK, so how does the language use this? 16:08:46 i.e. how does it decide which type it wants? 16:08:52 you specify 16:08:54 basically using a union is a way to represent all the possible value types you might want to deal with without having to use pointers. 16:09:01 and yes. 16:09:12 you choose which field to use 16:09:14 No, I mean the tree language. 16:09:19 oh... uh. 16:09:32 hmmm, dunno. But I assume you'd only want value types as nodes 16:09:32 Phantom_Hoover: if you want the "char" you say x.character, if you want the "float" you say x.decimal (even thouugh it's binary not decimal... but that's what you called the field) 16:09:42 Yes, I got that. 16:09:49 because the tree could be used to describe any kind of data structure. 16:09:55 er... reference type structure 16:09:56 that is. 16:11:30 I guess the language could just set nodes 16:11:43 Wait, why bother making the VM deal with types? 16:11:44 the union just gives you weakly typed values. 16:12:02 Phantom_Hoover: it doesn't need to... but you'll want unions for sure then 16:12:02 Just make each node hold, say, 4 bytes and make the low-level code deal with it. 16:12:25 hmmm... that's a possibility. That's essentially what unions do in most cases anyways. 16:12:28 Basically as assembly does. 16:12:58 hmmm... okay yeah that works. 16:13:19 just use C's weak typing semantics 16:13:25 to implement weak typing. :P 16:14:39 Yep. 16:14:47 will you want node-references? 16:14:53 Yes. 16:15:09 And as I mentioned above they can be implemented fairly elegantly. 16:15:13 simple enough to do, as long as the data type is as large as your architectures address range. 16:16:17 a possible way to do variable length child lists btw is to make the sizing explicit somewhere 16:16:40 the alternative is a linked list. 16:16:53 which works for traversal... but not direct indexing. 16:18:51 hmmm... I wonder if there's a hash algorithm you could use 16:18:55 -!- Oranjer has joined. 16:19:07 to give you O(1) node lookup when referenced by name 16:19:16 regardless of absolute or relative naming within the tree structure. 16:19:23 I think you can address at least 27 levels of a binary tree with a 4-byte address. 16:19:38 well... 16:19:45 you could just use hardware-level pointers 16:19:49 and pass those around. 16:19:52 problem solved, right? 16:20:04 And since that represents over 200 million nodes, it seems sufficient. 16:20:20 And implementation-level pointers seem inelegant. 16:20:58 Consider a 32-bit address, the first 5 bits of which specify the depth to go to. 16:21:14 Then the next 27 bits specify the directions along the nodes needed. 16:21:30 ...why do that when you can just use pointers? What would be the loss? 16:21:31 -!- softmoon has left (?). 16:22:02 Because a parent and child node could have totally different addresses. 16:23:26 one solution for variable-children is to have a global hash table 16:23:30 and to use /only/ named semantics. 16:23:38 which is essentially a superset of enumeration 16:23:41 in essence. 16:24:15 We can unite these schemes, then. 16:24:20 I think. 16:24:25 so then the trees don't actually hold the data or pointers to the data... but instead contain hash information 16:24:41 If the tree-based address is used as the hash key. 16:24:52 yes, if you can ensure no collisions. 16:24:57 Hmm... 16:25:24 The order of evaluation is going to have to be carefully chosen. 16:25:45 Since if you go straight down, you've only got 27 levels. 16:26:08 well... just figure out what information uniquely identifies each node. 16:26:12 for named nodes 16:26:28 it would be a) the name of the node b) the hash value of its parent 16:26:37 Actual names seem decadent for the low-level code. 16:26:48 possibly. 16:27:09 So what if we use my address scheme to specify keys on a hash table? 16:27:31 The system will run out of memory long before it runs out of addresses. 16:27:37 hmmm... 16:27:42 maybe with some revisions 16:27:47 but yeah 16:27:48 Probably. 16:28:08 Particularly since my address scheme has multiple addresses for half the nodes. 16:28:31 Indeed, there are 2^27 ways of addressing the root node. 16:28:52 How about we make the root node and its immediate children register-like? 16:29:06 hmmm... hex? 16:29:14 could a hex representation help with hashing? 16:29:54 ...How? 16:30:01 ...no clue, just brainstorming. 16:30:18 I can't see how it would possibly help. 16:30:26 guess not. 16:30:32 Anyway, how is code represented in the tree? 16:30:49 that depends on the code. 16:31:05 Like I said, representing it as directly linear won't work. 16:31:06 what kind of code we have determines how it would be represented. 16:31:16 if its function 16:31:29 you could have functions as nodes with their arguments as children. 16:31:44 the function-nodes data would be a hash reference to the functions implementing code. 16:31:52 * Phantom_Hoover looks at some Lazy K programs 16:32:41 so then 16:32:51 I'm afraid I shall go mad if I try to work out the depth in them. 16:33:00 However, 2 should 16:33:04 argument nodes could either be (a) data, in the case of leaves or b) unevaluated functions, in the case of branches) 16:33:08 Ignore that. 16:33:13 ...which would support lazy evaluation I think. 16:33:21 27 levels should be enough for a lot of LK programs. 16:34:06 lazy evaluation would essentially be manipulating unevaluated program expressions as values. 16:34:19 I think there should be an eagerly-evaluated language at the base of the system, though. 16:34:23 -!- lament has joined. 16:34:28 Phantom_Hoover: yep. 16:34:42 Also, mmapping parts of the tree is nice. 16:34:52 As is moving whole branches. 16:34:55 dunno how mmapping works. 16:35:13 It's probably incorrect terminology in this case. 16:35:31 I mean making two nodes point to the same data. 16:35:35 hmm... the hash idea would be problematic with a stateful tree, actually. 16:35:46 if the key is dependent on location. 16:36:10 then movement of a branch would invalidate all hash-based references. 16:36:39 Can't you make two keys point to the same object? 16:37:03 not really. 16:37:09 unless you have an array of references 16:37:17 as your table. 16:37:24 then the references can be the same. 16:37:31 The hash table contains the machine pointers to the nodes. 16:37:56 Two mmapped bits of tree have the same pointers for different keys. 16:39:09 -!- BeholdMyGlory has quit (Remote host closed the connection). 16:39:23 -!- BeholdMyGlory has joined. 16:40:47 OK, so now the language. 16:42:16 I think for the low-level one that the programmer should have to specify the node structure. 16:42:53 -!- lament has changed nick to _lament. 16:43:42 Aha, lament is growing untrustworthy! 16:44:11 Phantom_Hoover: what kind of semantics will be involved in specifying node structure? 16:44:41 I don't know. 16:44:46 also... when attempting to evaluate data as code... you'll likely want some kind of quote system, like Lisp. 16:45:05 Well, not really. 16:45:14 More like db in assembly. 16:45:40 Also, evaluation order needs to be considered. 16:46:13 hmmm... this is where enumeration will come in handy 16:46:15 you can do left-right 16:46:22 breadth first 16:46:31 Yes, I thought that. 16:46:34 if your nodes are ordered. 16:46:55 And they'll have to be ordered for the addressing scheme to work. 16:47:05 Indeed, for *anything* to work. 16:47:08 so I'd say use arrays for node relationships... the hash table would be for naming. 16:47:44 Shouldn't naming be a high-level construct. 16:47:49 Aww, I have to go. 16:47:53 I'll be back laer. 16:47:53 not necessarily. 16:47:56 alrighty. 16:47:58 s/laer/later/ 16:48:14 see ya. 16:48:46 an additional semantic that I liked was the inclusion of name-only nodes. 16:48:52 by prefixing the name with a . 16:49:43 so for example... a language that wanted to implement functions 16:49:50 could add a .return node to function nodes 16:50:33 .return would contain a reference to the calling code 16:51:25 so a lazy language could implement functions by a) making a copy of the function node, to represent a lazily-evaluating code object b) set the copy's .return node to reference calling code's node. 16:52:46 -!- Phantom_Hoover has quit (Ping timeout: 265 seconds). 16:55:21 so the inclusion of a naming scheme that's independent of the enumeration semantics 16:55:25 would require low-level representation. 16:55:48 one of the points of a VM is to be more semantically abstract than machine level code 16:58:25 gtg cya 16:58:27 -!- DH____ has left (?). 17:04:14 * uorygl ponders an ad-hoc addressing scheme. 17:05:02 Suppose that we have a network containing a whole bunch of routers. One of these routers is connected to five other routers; these other routers give their addresses as 00000111, 01011101, 10010111, 10011010, and 10101010. 17:05:51 What should our router give its own address as to each of the other five routers in order to best express its routing ability? 17:06:30 "sup" 17:06:31 ... 17:06:47 also, I have no clue. 17:07:24 I'd need to see how those other addresses were produced. 17:07:48 That information is simply not available. 17:08:39 ...that's quite complicated then. 17:09:13 I think you'd need two sets of data 17:09:15 like some kind of mask. 17:09:41 But routing is always done to the router with the largest shared prefix. Like, all packets with a destination address beginning with 01 go to 01011101, because that's the only neighbor router that also begins with 01. 17:10:02 ah okay... so it's left-to-right 17:10:25 so..... 17:10:26 So the goal is to make sure a packet never gets stuck. 17:11:51 01000000 || (01011101 & 11000000) 17:12:01 Let's call the neighboring routers A, B, C, D and E. 00 packets go to A, 01 packets go to B, 1000 packets go to C and D, 10010 packets go to C, 10011 packets go to D, 101 packets go to E, and 11 packets go to C through E. 17:12:23 hmmm... okay. 17:12:38 so I think you'd have a depth to addresses 17:12:43 which is the number of bits they check. 17:12:47 from left to right 17:13:00 and then produce a mask from that depth 17:13:09 (01011101 & 11000000) 17:13:26 the right-hand byte is the mask byte for a depth-2 lookup 17:13:50 it basically just clears out all the extraneous bits for the purpose of determining which router we should route to. 17:14:09 that bitwise will give us 01000000 17:14:18 and so looking for 01 17:14:24 is the same as looking for 01000000 17:14:36 which will just be & I think 17:14:41 ...er. 17:14:43 maybe not. 17:15:28 that would just be == :P 17:16:04 so you'd have 10000000 11000000 11100000 11110000... 17:16:20 for different depth sizes 17:16:24 ....is this making any sense? 17:19:10 uorygl: maybe... bitwise AND? 17:19:28 the address could be the bitwise AND of all the routers it routes to. 17:19:45 since the semantics for routing are left-to-right, it would cover any overlaps. 17:21:16 so if something wants to ask "does router C with address 00101010 map to router B with address 00100010 " 17:23:16 you would essentially start at the left 17:23:36 and find a bit in C that's on at the same place as in B 17:23:57 if there is one... chop it out of the search bit 17:24:09 and pass it along 17:25:21 so the first 1 to be found going left-to-right that those two bit patterns have in common is 0010 17:25:51 so you'd take 00100000 17:25:54 negate it 17:26:01 and with address B 17:26:12 and that would give you 00000010 17:26:25 which is the query we want to pass along to all of the routers routed by C 17:26:37 C will then ask "hey do you guys route to 00000010?" 17:26:43 and they'll perform the same procedure. 17:27:05 until you get 00000000 17:27:23 which I guess is like "localhost" 17:31:51 in any case it would be a lot of bitwise hackery 17:41:16 hmmm... for a tree-hash algorithm 17:41:21 if it's a binary tree 17:41:30 then you can just have the bits reflect which branch you're talking about 17:41:51 you start at root... the first bit tells you which branch you go to 17:42:02 second tells you the second branch to goto, etc. 17:43:01 that would give you a depth of 32. 17:43:09 for a 32-bit address. 17:43:35 you could actually perform movement within the tree with bitwise operations only. 17:43:42 at least in the low-level implementation. 17:44:57 so the lower-level language would have instructions for setting/operating a register that controls current tree location. 17:47:40 well no, the addressing would be a little more complicated than that 17:47:43 but that's the basic idea. 18:06:34 CakeProphet: if a router's address is the bitwise AND of the routers it routes to, a single zero will spread throughout the entire network. 18:09:02 I meant OR actually. 18:10:35 Then a single 255 will spread throughout the entire network. :) 18:11:13 ...that's why there needs to be a mask somewhere. 18:11:16 hm anyone remember what happens in a case statement if you don't have a default: and the value turns out to be not one of the listed ones? 18:11:32 Right. I'm afraid I don't understand you fully, then. 18:11:35 it seems gcc generates different code for not having a default: vs. having "default: break;" 18:11:42 that makes no sense to me 18:12:33 don't know. 18:14:38 it should make no diff according the C99... 18:14:39 huh 18:15:39 (§6.8.4.2, paragraph 5) 18:16:15 uorygl: hmmm... the address needs to be something that can be bitwised with information given elsewhere to determine information about the network point. 18:16:47 what could fill in the blanks there for "information given elsewhere" and "something that can be bitwised" 18:35:35 fizzie, I just calculated what a 360° degree panorama from my camera mounted vertically at max zoom (200 mm in 35 mm equiv.) would give. With decent overlap: 52 images. This is 728 MB of RAW image data from my camera. And the final image would be at about 287.6 megapixles (this is based on overlap being gone, so 36 images instead of 52) 18:36:30 fizzie, do you think you could lend me that super system at your university for the HDR stitching? I would mail you the 16 bit tiffs ;P 18:36:59 (with HDR it would be even more raw data than "just" 728 MB of course!) 18:38:49 fizzie, at least zoom it is a much more manageable 11 images 18:38:53 for one rotation 18:39:54 hm fizzie seems away but isn't marked /away 18:40:38 I'm away a majority of the time but I'm rarely marked as such. 18:40:41 I think. 18:41:19 impractical for others 18:48:15 -!- Gracenotes has joined. 18:49:41 GRACENOTES IS SILLY 18:51:26 * Gracenotes creates several screenfuls worth of dadaist user page 19:13:52 CakeProphet, why? 19:14:23 ... 19:14:31 :) 19:44:41 AnMaster: I have this thing that auto-marks me away when xlock activates, but it seems to be broken at the moment. I can never remember to actually do /away, except when leaving work. 19:45:03 (I was picking up the cat from its temporary place.) 19:52:33 -!- zzo38 has joined. 20:32:25 fizzie, anyway, yay I managed to make a reliable rotation function 20:32:27 that took a while 20:32:58 since it likes to start at 0xffff instead of 0x0 20:33:02 for some weird reason 20:33:17 so I had to handle overflow when rotating 20:33:54 but now it can move reliably in multiples of (360/111.66666) degrees! 20:34:05 (yeah weird number, but I blame crappy gears) 20:35:26 Speaking of Lego, I guess you might've seen this one before, but it's pretty nifty: http://www.youtube.com/watch?v=zX09WnGU6ZY 20:37:34 * AnMaster wgets 20:37:35 err 20:37:38 youtube-dls 20:37:51 I don't think I seen it before 20:38:26 It's a custom-built thing, not a mindstorms thing. But still. 20:39:23 iirc "ultimate builders set" lego mindstorms ad-on set had some plotter thing 20:39:27 think I built it even 20:39:33 low precision though 20:40:19 fizzie, it used pneumatics for the pen so fairly slow speed. I mean, much slower than that video 20:40:29 fizzie, also yeah the cups driver was a nice touch 20:40:41 the lego one had no such bit 20:40:46 just RCX-controlled 20:40:52 The comments refer to http://bricker.ru/images/sets/1092_brickset.jpg 20:42:15 -!- MigoMipo has joined. 20:42:31 fizzie, also that printer head causes some serious swaying of the whole thing 20:42:35 would reduce precision 20:43:12 fizzie, ah, hm http://www.peeron.com/inv/sets/1092-1 20:43:18 yeah that explains the old style motor 20:43:37 "FAQ: Just a remake of the 1092a? No, I'd never seen the 1092a until now. However some of the parts came from a 8094 kit amongst others many years ago. It is made to my own design, but I acknolwedge influences and the great work of the official lego designers !" 20:43:39 (From the poster.) 20:44:52 fizzie, I do get the point of those mini figures at the control panels 20:44:57 but the horse? 20:44:58 huh 20:45:05 same goes for the palm tree 20:45:37 Yes, I don't know what's up with that. 20:45:43 The poster seems to have a thing about horses. 20:45:48 fizzie, also, I can only spot one motor 20:45:54 fizzie, I can't find the second one 20:45:58 and you would need at least two 20:46:04 I haven't looked at it so closely. 20:46:20 Finally I got ngIRCd to compile and run. It works now. (You can't currently connect to it from the internet; the router is not set yet and it is only in testing mode) 20:46:33 and it can't be a micro motor, they are way slower, than the speed of the pen, plus rather weak (so gearing them that much is not feasible 20:47:03 ah found the other one 20:47:04 right 20:47:12 How much memory and CPU time will an IRC server software take up if I am also using the computer for a lot of other things too? 20:47:30 That depends a lot on how large a network it is. 20:47:41 Just one node 20:47:49 (so far) 20:47:49 Probably not a lot, then. 20:48:15 fizzie, also I want to see the sensor setup 20:48:23 doesn't seem to be standard lego sensors 20:48:26 I had to completely reinstall Cygwin for it to work 20:48:36 because there is no way it could keep position that well without good sensors 20:48:43 lego gears have way too much slippage 20:48:48 AnMaster: "FAQ: Does this use mindstorms? Nope, wiring demo board + homemade analog electronics and sensors." 20:49:10 AnMaster: "FAQ: Sensor info: Horizontal positioning using homemade shaft encoder﻿ (black/white rotating lego squares you see in the vid) with a SY-CR102 photo reflector from Maplins, (only £0.89 or \$1.30)." 20:49:19 AnMaster: "... This is into a sampled analog input as I couldn't get full enough saturation to trigger the ext interrupt pins. There are also push buttons built into lego bricks for left and right end stop detection." 20:50:01 nice 20:50:09 What exactlly is it you are making with the lego now? 20:50:12 And "FAQ: Open source, schematics etc? Yes, I'll try to get around to this soon." 20:50:29 zzo38, me? an automated panorama taker 20:50:38 Me? Nothing. 20:50:39 it uses mindstorms (RCX, not the new NXT, don't have that) 20:50:50 OK 20:50:57 fizzie, "FAQ: Wrote your own driver? Yes, how sad is that!!" 20:50:59 wonderful :) 20:51:25 Did you know, there is a Forth for Lego systems 20:51:34 zzo38, I know about pbForth yes 20:51:42 but I'm using BrickOS and C here 20:52:03 C would probably be faster anyways 20:52:12 But Forth is almost as fast as C 20:52:15 zzo38, well, I'm doing rather embedded C... 20:52:36 Still, C is generally faster 20:52:38 zzo38, an example is: http://sprunge.us/QXMB 20:52:45 fizzie, you might want to see that too 20:52:49 nice busy loop on CPU :) 20:53:20 because I'm not using brickOS as such, I'm using a patched version called bibo, since it fixes lots of bugs and upstream brickOS development is dead 20:53:43 however bibo dropped the preemptive multitasking in favour of cooperative multitasking 20:54:25 -!- ais523 has joined. 20:54:25 -!- ais523 has quit (Changing host). 20:54:25 -!- ais523 has joined. 20:54:26 with quite good reasons 20:54:34 -!- ws has joined. 20:54:40 the interrupts caused quite a bit of overhead 20:54:45 ais523, hi 20:55:14 Now I can just use "sprunge QXMB", sprunge pastebin really is very better than the other one, I think 20:55:43 zzo38, what? did you add an alias in your browser or such? 20:55:50 No, command-line 20:56:04 zzo38, sprunge for me pastes to it, not views paste on it... 20:56:15 I type "sprunge QXMB" at the command-line and it put output to stdout 20:56:20 I see 20:56:25 zzo38, and how do you paste to it? 20:56:33 For me, I wrote my own script. "sprunge" without a argument pastes to it, with a argument views it 20:56:42 zzo38, and to paste a file to it? 20:56:51 Just type "sprunge < file.txt" 20:56:58 hi AnMaster 20:57:32 It is written using NT command script, but a similar way could be done in UNIX 20:57:57 zzo38, whole current source is http://sprunge.us/ffMD 20:58:30 ais523, I think you would be interested in it, but since you filter urls... and 156 lines is a bit too long for IRC directly :P 20:58:59 zzo38, sure, I use a sprunge() { curl -F 'sprunge=<-' http://sprunge.us; } simply 20:59:05 then I can redirect input to it 20:59:07 like: 20:59:10 sprunge < panobot.c 20:59:16 or: 20:59:20 foo | sprunge 20:59:37 zzo38, I don't need a viewing script for it 20:59:41 but sure, would be trivial 20:59:58 just: 21:00:01 curl http://sprunge.us/ffMD 21:00:15 so yeah making the shell function do that would be trivial 21:00:22 -!- alise has joined. 21:00:25 (I don't even have it as a script, just a shell function) 21:00:27 alise, hi! 21:00:51 Hello. 21:01:25 building wise the only thing that remains on my panoramic head is the shutter trigger 21:01:39 I wonder how feasible it would be to trigger it electronically using the remote shutter thingy 21:01:45 I don't think I have the required stuff 21:01:55 to build a controlling circuit 21:02:14 and I don't know the wiring 21:02:18 it has 3 pins 21:02:39 so mechanical trigger it is 21:03:36 the question remains: how 21:04:30 and I think the light sensor needs some adjustment to work well 21:04:31 It is criminal that these weekends are so short. 21:05:13 00:55:34 Wow, Eliezer Yudkowsky is very odd. 21:05:14 00:56:59 Apparently not signing your children up for cryonics makes you a bad person. 21:05:14 If you support cryonics this is perfectly reasonable: you are basically sentencing them to death -- like Logan's Run except you set the date at 80-odd. 21:05:26 00:59:27 OTOH, my philosophy makes cryonics pointless, so... 21:05:26 "My Philosophy" is almost as irritating a phrase as "My GIRLFRIEND". 21:05:44 why the allcaps? 21:05:56 Because that's how "my girlfriend" is pronounced in my internal vocalising system. 21:06:00 ah 21:06:00 01:30:02 lament: Doesn't cryonics work by freezing you after you die? 21:06:00 That's supposing ~(cryonics works) to prove ~(cryonics works). 21:06:10 alise, aren't you going to move abroad? 21:06:26 AnMaster: don't encourage her... 21:06:29 Anyway even if I didn't accept cryonics I do not believe that any definition of death other than information-theoretic death is acceptable. 21:06:36 ais523, ? 21:06:41 It used to be "when your heart stopped". 21:06:47 ais523: Don't encourage me to what, and why? 21:07:04 hmm, I'm not sure actually 21:07:10 XD 21:07:15 there was a pronoun discussion in another channel, so I was more hoping reaction to that 21:07:37 ais523: It's a good thing you didn't mean anything because almost any meaning I can assign to that line offends me :) 21:07:53 heh 21:08:04 (let (how 'penumatic)) 21:08:08 okay that works 21:08:12 modulo spelling 21:08:22 suboptimal but works 21:08:45 ais523: I don't suppose you have any eso solutions to my problem? 21:09:13 to which problem? the one that we mostly only talk about in private? no 21:09:32 I did invent a new esolang in my head a few nights ago, though 21:09:39 no name yet, no real fixed syntax, just semantics 21:09:43 I has liek a private network of informational dissemination 21:09:53 Actually this ircd really needs to support /query a,b,c. 21:09:53 ais523: How does it work? 21:10:01 It'd be very useful for ad-hoc privacy. 21:10:10 What is /query a,b,c 21:10:13 basically, there are a finite number of variables, chosen by the person writing the program 21:10:17 each is a rational number 21:10:25 zzo38: query/privmsg with more than two people 21:10:27 zzo38: you can do "PRIVMSG a,b,c :poop" in the IRC RFC protocols 21:10:29 but Freenode blocks it 21:10:32 to send a message to a, b, and c 21:10:39 ais523: say, does the message indicate the other recipients? 21:10:43 each variable stores an unbounded rational number, and is initialised to 1 21:10:44 it should do, so that it operates as an ad-hoc channel 21:10:49 alise: I think so, probably at the start of the line 21:10:58 ais523: How? 21:11:01 That's just the hostname. 21:11:15 as in, :hostname.whatever PRIVMSG a,b,c :poop 21:11:17 is what I'd expect 21:11:27 ah 21:11:37 might be rather long though 21:11:42 -!- augur has quit (Remote host closed the connection). 21:11:54 the program is full of statements like a = b + c and f = g / h 21:11:57 ? 21:12:07 basically, assigning the result of an arithmetic operation to a variable 21:12:08 ais523: ok, so currently that just sounds like rational arithmetic. 21:12:10 OK 21:12:15 ais523: although really -- don't you want a*b and ^-1? 21:12:21 no I don't 21:12:26 ais523: whysoever not? 21:12:40 well, + - * / are what exist 21:12:45 02:17:15 And Ruby is implemented in C? [...] 02:17:35 THEN IT'S NOT TC. 21:12:51 I'm not sure yet if you're allowed to use constants rather than variables 21:12:55 no, it's just that MRI isn't actually a Ruby implementation 21:13:04 ais523: you don't need full - and /... 21:13:07 just infix - and ^-1 21:13:08 now, the eso part: the program runs statements at random 21:13:17 ais523: TARPIT IT GRRRR 21:13:24 as in, each time it runs a statement, it picks a random statement and runs it 21:13:30 the program terminates if it tries to do a division by 0 21:13:35 question: is this TC? 21:13:47 it's not obvious either way, I've been thinking about it for a while 21:13:50 I have made a esolang where dividing by zero is the only form of flow control 21:14:13 (and it's possible that removing + and * and arbitrary / would change the computational class; the random execution prevents you "lumping" statements easily) 21:14:21 ais523, can it do deterministic computation at all? 21:14:28 ais523: I don't know if it is TC? 21:14:36 Perhaps post it on the wiki, and then we can see 21:14:43 AnMaster: I think so, if you use enough variables; but I'm not sure if it can do /useful/ deterministic computation 21:14:52 I need to work out syntax and a name before I post it on the wiki... 21:14:58 ais523, how do you mean with enough variables? 21:15:18 AnMaster: well, suppose you want to calculate a + b + c + d 21:15:21 ais523, well apart from the degenerate case of only one expression 21:15:29 ais523, ah okay, order is irrelevant there 21:15:34 if you use temp variables, as in e = a + b; f = e + c; g + c + d 21:15:55 ais523, only two variables and one operator per assignment? 21:16:01 then if it's the only thing you ever calculate and all the variables are >= 1, then you know that g is <= the actual answer 21:16:02 at all times 21:16:05 AnMaster: that's it 21:16:06 02:37:21 (set-weight neuron output (+ (car range) (random (coerce (- (car range) (cdr range)) 'double-float))))) 21:16:11 set-weight --> setf (weight neuron) 21:16:16 lern2lithp 21:16:29 how do you know set-weight isn't a macro that does that? 21:16:29 ais523: If it's TC, then randomness shouldn't matter. 21:16:36 ais523: Also, no, you define setf macros. 21:16:39 They can do anything. 21:16:48 Anything that sets should be (setf (some-relevant-accessor x) ...). 21:16:56 It's Lisp good-practice. 21:17:01 alise: it's obviously nondeterministic, but as you say, I think it's entirely possible that you can arrange things so the randomness is irrelevant 21:17:33 ais523: well, no, because you could just by chance get 1,2,3,... out of a randomness generator every time 21:17:35 There is the esolang where it is not TC, but there is a command that makes it TC 21:17:42 Or at least that is what it says. 21:17:43 so if it's actually tc it has to work with every "random" result 21:17:47 thus the randomness is irrelevant 21:17:49 zzo38: oerjan's thing yeah? 21:17:52 HQ9+ extension 21:17:58 alise: Yes, I mean that. 21:18:05 ais523, does it remove computed statements? 21:18:19 AnMaster: no 21:18:24 AnMaster: ? 21:18:25 okay 21:18:29 alise: yep, agreed 21:18:29 ais523: I am pretty sure your thing doesn't have loops of any sort. 21:18:35 However, it is TC if there is a program that can be written and work in all 256 ways, I suppose. Otherwise it is not TC but there is a command to make it TC? 21:18:39 alise: statements can run more than once 21:18:49 each time it picks a random statement, regardless of whether it's run before or not 21:18:59 so from another point of view, it has loops everywhere 21:19:14 ais523: How about if an operation a = b OP c would cause a division by zero, we jump to a by somehow interpreting it as a line number. 21:19:22 (Two-dimensional line numbers? (a,b) PRINT ...) 21:19:30 alise: I don't understand 21:19:32 *a/b I gues 21:19:33 ais523, how would you make it divide by zero only when things are done? 21:19:33 *guess 21:19:38 ais523: well 21:19:39 there is a jump somewhere randomly all the time 21:19:46 a = b / 0 21:19:48 say a is 1/2 21:19:51 then it'd jump to 1/2 21:19:54 whatever that means 21:19:54 alise: only set the variable in the denominator to 0 when you detect that things are done 21:19:58 ais523, I could see how if you had some logical operator, like == or such 21:19:59 alise: I don't get the notion of "Jump" here 21:20:07 ais523: "execute 1/2 as next line, not random()" 21:20:11 AnMaster: you can compare numbers with a 0/non-0 result using - 21:20:14 figure out twod line numbers yourself :P 21:20:16 alise: that would defeat the whole point of the language 21:20:22 maybe floor(1 / 2) 21:20:22 ais523, hm true 21:20:28 *floor(1/2) 21:20:32 executing random() is clearly enough for repetition of some sort 21:21:20 ais523, it can be TC under the condition of a rng that never repeats itself and in enough _finite_ time will cover all states several times 21:21:22 maybe 21:21:57 s/repeats/repeats in loops/ 21:22:01 that solves the issue alise is pointing at I think 21:22:01 AnMaster: it wouldn't be an RNG otherwise 21:22:08 we're assuming a mathematically perfect RNG 21:22:18 although /dev/urandom would probably be good enough 21:22:19 ais523: a mathematically perfect RNG would repeat itself, I think... 21:22:23 ais523: or at least could 21:22:25 ais523, well then 1,2,3,1,2,3,... is not an issue? 21:22:27 alise: yes, but not forever 21:22:33 ais523: or are we talking 0 to /infinity/ RNG? 21:22:35 well, with probability 1 21:22:42 which I am not even sure makes sense 21:22:46 can you select a completely random natural? 21:22:46 -!- tombom has quit (Read error: Connection reset by peer). 21:22:50 alise: 0 to the number of statements in the program 21:22:54 as in, you run a random statement each time 21:22:57 that isn't 0 to infinity 21:22:57 such that you're distributed fairly over the naturals?! 21:22:58 -!- tombom has joined. 21:23:04 but you call the RNG an infinite number of times 21:23:07 or until the program terminates 21:23:11 to get the next statement each tiem 21:23:12 *time 21:23:41 Perhaps zero to infinity RNG is sensible if you have to use p-adic numbers? 21:24:11 But even then, it isn't perfect, because ....11111 can just as well represent negative one 21:24:15 Which is less than zero 21:24:38 zzo38, what? 21:25:32 And .....01010101010101 can represent negative one third 21:25:51 (Try multiplying by three and adding one and you will see that the answer is zero) 21:25:57 zzo38, why would we need negative numbers here at all 21:26:11 In case you subtract, I suppose? 21:26:25 zzo38, not needed for statement selection? 21:27:22 I suppose so. 21:27:50 But dividing by zero is the form of flow control is something I have already invented: http://esoteric.voxelperfect.net/wiki/Divzeros 21:32:37 In PHIRC, I can easily test my IRC server just with the command "/C" by itself, without any parameters. "/C" by itself assumes "/C localhost 194" automatically, do you like this feature? Does any other IRC clients have that feature? 21:37:08 I already found out how to disable all channels other than "+" at the start, and to change the 005 message to match. There is no configuration setting for that so I had to modify the source-codes 21:38:09 Can SUMMON be enabled? 21:39:15 No, it would be then too easy to SUMMON CTHULHU by accident. 21:40:31 I don't care about that 21:40:34 Can USERS be enabled? 21:41:16 In ngIRCd it seems SUMMON is always disabled, although it does understand that command 21:41:21 But it cannot be enabled 21:44:40 Is there a way to make the HELP command work better? So that you can receive a help message, even before PASS/USER/NICK 21:47:46 I want to make it so that some nicknames can't be used unless the correct PASS and USER commands are given for that nickname 21:49:59 -!- oerjan has joined. 21:51:06 Now I just should implement SIRCL format for channel log and then it should be working 21:51:11 And then I can set the router 22:01:04 abc 22:07:12 The pik of the hq is absent. 22:09:03 -!- Phantom_Hoover has joined. 22:09:10 CakeProphet, back. 22:09:33 as prophesied 22:12:46 It occurs to me that most esolang interpreters are really VMS. 22:12:53 s/VMS/VMs/ 22:13:19 Since they tend to have nothing to do with the underlying system. 22:13:40 -!- relet has joined. 22:14:50 but not HQ9+. the + character clearly should increment the underlying system's accumulator. 22:15:12 otherwise it has simply not been implemented correctly. 22:15:31 this might of course pose a problem in systems that have no accumulator. 22:15:41 Unless the implementation is optimising and strips out unnecessary instructions. 22:16:01 OK, so the tree VM. 22:16:35 It occurred to me that my addressing scheme needs different instructions for equality, 22:17:26 Since 00000.* always refers to the root node, and so on. 22:17:44 So a PCMP instruction would probably be helpful. 22:19:25 oerjan: my Thutu implementation of HQ9+ uses its own emulated accumulator 22:19:38 because it's too abstracted to know if there's an underlying accumulator or not 22:20:08 well it's not HQ9+ 22:20:23 What is "the accumulator"? 22:20:31 In x86, for instance. 22:20:35 eax? 22:20:43 's fault if thutu is too removed from the underlying machine 22:21:45 * oerjan has no idea whether x86 has an accumulator. 22:26:59 eax is the accumulator 22:27:44 eaxcellent! 22:29:23 alise is here? 22:29:33 It is Friday, is it not? 22:29:43 And a most excellent Friday too, might I add, for no reason other than to give me a second line to write. 22:29:53 OK. Read the logs and comment on the tree-based VM idea. 22:30:02 Phantom_Hoover: there is no alise, it's just a talking weather balloon. or maybe a talking venus. 22:30:48 Weather balloon. 22:30:54 Phantom_Hoover: No; I demand distilled information! 22:30:59 (Or at least log links.) 22:31:07 Today's log. 22:31:24 The basic idea was to have a global tree in which code and data are stored. 22:31:38 ais523: oh btw you forgot to delete Talk:Joke languages 22:31:54 *Category talk:Joke languages 22:32:12 ok, thanks 22:32:29 not sure how I missed that one 22:32:37 Why delete that category? 22:32:47 I hereby register my disagreement. 22:32:51 also Category:Algorithmic information theory 22:33:04 Delete that one, yes. 22:33:06 alise, the talk page. 22:33:10 alise: um the talk page, which was spam 22:33:16 Ah. 22:33:26 Algorithmic information theory shouldn't be a category. 22:33:30 Only John Tromp uses it. 22:33:49 oh hm it actually has an article 22:33:56 oerjan: deleted and semisalted 22:34:08 alise, you have failed to read the proposition. 22:34:16 I am disappointed. 22:34:48 I'm merely supporting it even more strongly. 22:34:58 It's an alise 22:34:58 Anyway suck my Dijkstra. (I will henceforth use this insult forevermore.) 22:35:01 Also, I thought you might like http://en.wikipedia.org/wiki/Talk:Lambda_calculus#Proposed_criticism_of_lambda_calculus 22:35:04 alise: I've come to hate LambdaMOO 22:35:14 Why? 22:35:47 Well, not "hate", but I ask why people don't care about keeping the library organized, so newcomers could easily find things, and they said that newcomers could always just ask them 22:35:52 lol @ http://en.wikipedia.org/wiki/Talk:Lambda_calculus#Proposed_criticism_of_lambda_calculus 22:36:01 His interests include astronomy, search engines, programming, computer graphics, ergonomics, electronic encyclopedias, and advanced wiki-formattting. He's the guy, in school, that corrected the answers in the back of the Physics textbook ("Don't ya hate people like that?"). 22:36:05 I really hope it's a joke. 22:36:08 Seems like more of a "Don't bother RTFM, just ask us" 22:36:09 but then, earlier: 22:36:10 Wikipedia user Wikid77 is an American computer scientist, world traveller, and wiki-inventor. 22:36:17 fucking pretentious fuckwit kid ARH 22:36:18 *ARGH 22:36:20 burn with fire 22:36:31 what is it with SUPER SMRT kids and being... like that 22:36:33 Don't read the TV Tropes Troper Tales pages for Mary Sue. 22:36:35 I'm not like that am I? 22:36:41 Wouldn't a computer scientist actually appreciate lambda calculus? 22:36:48 Or Genius Bruiser. 22:36:58 It's as bad as it sounds. 22:37:03 alise, I'm considered super-smart relative to the other computer students at my school, mostly 22:37:07 At least, I think 22:37:44 Compared to my fellow computing students I am Donald Knuth. 22:37:49 And I'm not all that good. 22:38:27 IRC user Elliott Hird is a British computer scientist, mathematician, philosopher and typographer. 22:38:33 *is a renowned British 22:40:03 05:05:56 (sorry for slow reply, had to clean my glasses due to small accident there) 22:40:06 We did not need that information. 22:40:19 05:10:47 fungot uses SOCK and a few other ones for example 22:40:19 Please don't tell us what you use. This has gone too far. 22:40:20 alise: all because r2q2 said yow to you? fizzie said earlier that a befunge program that solves: 2x2 4x 1 0 deewiant anmaster: i wouldn't. 22:40:25 Oh, look Wikid77 has been in the West US, the East US, the Northeast US, the Southeast US *and* the other US. 22:40:29 Wow! 22:40:39 The "Other" region of the US. 22:41:03 Non-continental US? 22:41:13 Erm, that doesn't technically describe Alaska, does it 22:41:14 Hawaii? 22:41:27 Non-contiguous? 22:41:28 The User:Wikid77 is a long-term user on English Wikipedia (editing since 2001) and German Wikipedia, who also edits Wikimedia Commons in 20 languages. He is an American computer scientist, mathematician, information scientist, and world traveller. 22:41:35 Information scientist and world traveller. 22:42:12 Originally intended as the "sum of all knowledge" (vision), wiki efforts continued as the "sum of all censorship" in late 2008, as suggestions were deleted, text was trimmed or simplified, with images or maps cut to reduce data. Many people quit in disgust during 2006-2008, unable to handle the negative chaos. 22:42:17 Incidentally, I joined in with the tree idea for the purpose of making a VM that could do functional programming on a low level. 22:42:19 ASHDFGHHK 22:42:23 He reminds me of Lumenos. 22:42:24 "This user lives in Texas." 22:42:26 oh I can stop reading now 22:42:28 Although not as insane. 22:42:38 Phantom_Hoover: real machines that do functional programming on a low level exist 22:42:40 Google "Reduceron" 22:42:47 http://lumeniki.referata.com/wiki/Main_Page 22:42:53 A tribute to insanity. 22:43:09 Why do you have to spoil my fun? 22:43:21 alise, I'm thinking of making a gaming computer 22:43:30 Phantom_Hoover: wow, that wiki is like a cross-referenced masturbation video. 22:43:44 Sgeo: I can give you all the specs and it will cost super cheap and be most excellent. Also, I will give you humble service. 22:43:51 You didn't have to deal with him for about a month. 22:43:54 alise: is that a good thing? 22:43:59 I have no idea why I did it. 22:44:05 ais523: no. 22:44:15 On Intel's website: "How many programs will you run at once?" The max option: 4+ 22:44:18 Lumenism is a system for discovering and organizing information particularly on controversial topics. Here's how: 22:44:18 Debates are made more fruitful and civil by techniques or technology that allow quick, back-and-forth dialogue, while enforcing time/attention restraints using time-enforced dialogue (ted) and wikibrawl methods. 22:44:18 Clarifying terminology using neologisms. 22:44:18 Efficiently organizing and storing information to avoid repetition and enable newcomers to quickly and conveniently see if the answer to their question is in this information storage place. A wikiforum is particularly suitable to this goal, but a wikiforms' function can be simulated with with paper or voice, for people who don't own networked computers, for information that requires greater privacy, or for people who do not want to become a cripled philosoph 22:44:23 er (knowledge lover) like Lumenos. 22:44:23 I just kind of... fell into it. 22:44:25 Establishing the largest consensus groups possible. 22:44:27 Research how a lumeniki may be improved to maximize liberty by avoiding power being concentrated in the hands of administrators or the owners of the servers: 22:44:30 Allowing modularity so that anyone can easily extract part of the wiki and move it to a different host, sponsor, governor, or legal agreement. 22:44:33 Make LumenikiLu useful to readers by allowing them to customize how the content is filtered for them to see rather than administrators censoring what everyone sees. 22:44:36 Governance decision power delegated by the wiki software when consensus is not happening: A one-vote-per-person "democratic" system would require identification of people and have disadvantages in terms of privacy and convenience. An alternative would be a meritocratic system that would delegate power based on the amount of content contributed (which is recognized to be valuable). This would avoid cheating with sock puppets and some mistakes due to lack of e 22:44:41 xperience. The idea of software making the decisions (see technocracy) is to achieve real rule-by-law where laws are so perfected they can be carried out by computers/robots. You might think this would re 22:44:44 quire very wise and benevolent policy makers, well sort of, actually power checks are built into the (educational) system although any system may devolve into non-pareto or non-utilitarian, authoritarian hierarchies if not maintained by (the majority of) persons who are either benevolent and/or intelligent enough to maintain it. That is undoubtedly the Truthism. 22:44:44 "What kind of social networking do you want to do?" WTF? 22:44:49 -!- coppro has joined. 22:44:51 Yes, a huge flood. 22:44:53 But dammit, the world has to see. 22:44:55 He turned up at Wikiindex after an incident I don't want to explain, and he wikilawyered for *weeks*. 22:44:55 It goes on: http://lumeniki.referata.com/wiki/Lumenism 22:44:59 Sgeo: See /msg. 22:45:20 alise: incidentally, an automatically enforced 3RR automatically makes wikis democratic, if everyone can be bothered to use all their reverts 22:45:26 He is the only person who ever uses it. 22:45:43 Although I have an account there, along with a couple of others from RationalWiki. 22:45:47 Phantom_Hoover: how /can/ you wikilawyer for weeks without everyone just ignoring you? 22:46:00 We were a little crazy. 22:46:49 http://www.wikiindex.org/WikiIndex_talk:Policies_and_Guidelines 22:47:48 That repeated "i" is irritating. 22:47:58 It is indeed. 22:48:42 Although the site's administration is even worse. 22:49:12 As best I can tell, most of the sane people went to another site, and only a few idiots remained. 22:57:31 I think I found a bug in ngIRCd 22:57:38 Report it 22:58:23 If you create a + type predefined channel, it will set server operators as channel operators anyways, even though that shouldn't be allowed. (The MODE command doesn't work for modeless channels anyways, though) 22:58:35 Usually there is no use for + type predefined channel 22:58:56 But now I want to add in a function to make it so predefined channels are the ones which are automatically logged 22:59:01 I can fix that bug 23:01:59 Probably nobody cares about that bug anyways, but I will fix it anyways. The only reason I need predefined channels is for two reasons: Topic messages and automatic logging (using SIRCL format). There should not be any operators, even server operators should not be allowed to change topics or anything else on + type channels. 23:02:26 -!- augur has joined. 23:02:58 CakeProphet, are you there? 23:05:20 -!- BeholdMyGlory has quit (Remote host closed the connection). 23:09:58 Is anyone going to discuss the tree computer? 23:11:15 Explain it. 23:12:26 OK, like I said the only (or at least primary) data structure is a tree. 23:12:40 I'm not sure if we agreed, but I think it was binary. 23:12:59 Code and data are both stored on this. 23:13:39 There is a low-level language operating on this level. 23:14:04 Which is eagerly-evaluated, possibly by traversing the tree depth-first. 23:15:40 -!- coppro has quit (Ping timeout: 240 seconds). 23:15:41 Each node contains a 4-byte value. 23:16:22 The addressing scheme I came up with was that the first 5 bits specified the depth, and the next 27 specified the path from the root node. 23:17:23 CakeProphet had the idea of making this faster by having a hash table of the pointers in physical memory corresponding to the address. 23:18:08 The addressing scheme I came up with was that the first 5 bits specified the depth, and the next 27 specified the path from the root node. 23:18:11 So, finite tree. 23:18:14 DFA, Q.E.D. 23:18:16 Yes. 23:18:27 DFA? 23:18:30 Google it. 23:18:46 My suggestion: 0 is /, 1 is a bit. 23:18:48 There's your path. 23:18:51 Dimensional Fund Advisors? Democracy For America? 23:18:56 11101111 is 111/1111 23:19:00 Phantom_Hoover: Sigh. 23:19:08 What? 23:19:25 Deterministic is the first word. 23:19:35 Deterministic Finite-state Automaton? 23:19:47 OK. 23:19:50 YOU WIN 23:20:18 Why is it so bad if it's not TC? 23:20:26 Er, I meant FSM. 23:20:31 Phantom_Hoover: It's boooooooring :P 23:20:39 It's honest. 23:21:05 Since it doesn't pretend to be TC while written in C, like everything else is. 23:22:02 -!- coppro has joined. 23:22:05 You confuse languages with implementations. 23:22:09 You should die because of this. 23:22:12 Yes, I know. 23:22:17 It's a terrible sin. 23:22:31 TC implementations are non-existent, so it's not that awful. 23:23:20 why is that always bad? Some languages effectively are their implementations, like Perl 23:23:21 (Perl 5, anyway) 23:23:45 OK, so why should it be TC> 23:24:15 TC languages are two-a-penny. 23:24:28 Wait, Perl doesn't have formal specs? 23:24:49 coppro: 23:24:55 Why is it so bad if it's not TC? 23:24:55 It's honest. 23:24:55 Since it doesn't pretend to be TC while written in C, like everything else is. 23:25:07 That's inaccurate, I give you. 23:25:09 this "TC isn't valid because [some facet of the universe] isn't TC" thinking is a disease 23:25:12 Sgeo: Sure it does. it's written in C 23:25:16 and must be stomped upon with great force at every opportunity 23:25:25 Also, the universe isn't TC. 23:25:36 You can't run forever, however hard you try. 23:25:50 And the universe is finite 23:26:04 It's a fantastically useful theoretical concept, but isn't real. 23:26:08 -!- augur has quit (Ping timeout: 240 seconds). 23:26:28 But that doesn't mean languages, as described, aren't theoretically, if not physically, TC 23:26:35 Phantom_Hoover: Graham's number isn't real! 23:26:38 I accept that. 23:26:39 Ultrafinitism forever!! 23:26:58 there's no proof that the Universe isn't TC 23:27:03 i isn't real! 23:27:33 What's wrong with saying that TC isn't real, but is useful in mathematics? 23:27:48 and in fact, there is evidence suggesting that the Universe is super-TC 23:28:01 coppro, wait what? 23:28:20 Sgeo: There are those who believe that quantum mechanics is not modelable by a Turing machine 23:28:23 Quantum. 23:28:24 I believe the universe to be finite, and I believe that -- 23:28:25 If the universe is super-TC, let's build a super-TC cpu! 23:28:28 How did I know you'd bring up QM? 23:28:47 I am pretty sure you could make a universe on a Turing machine that, to its inhabitants, behaved perfectly quantum. 23:28:48 OK, can we stop the philosophy? 23:28:52 Phantom_Hoover: No. 23:29:01 <3 philosophy 23:29:03 alise: With a PRNG, then? 23:29:10 coppro: We can't model quantum mechanics on a TM in this universe, perhaps. 23:29:18 coppro: But that doesn't mean the universe itself is running on super-TC hardware. 23:29:19 Or a nondeterministic TM? 23:29:23 alise: yes it does 23:29:36 either it can or cannot be modeled by a TM 23:29:38 Well, we can't even build a TM in this universe, so 23:29:49 a "nondeterministic TM" is not a TM at all 23:29:51 We *can* build a TM. 23:29:58 Just not a universal one. 23:30:05 Oh erm, >.> right 23:30:07 coppro: no 23:30:10 coppro: consider: 23:30:31 TM can run {universe that appears to be quantum}, but from inside {universe that appears to be quantum}, we cannot emulate that universe, only {another universe that appears to be quantum}. 23:30:47 alise: But that would violate the principle of UTM equivalence 23:31:08 -!- MigoMipo has quit (Read error: Connection reset by peer). 23:31:12 I don't see any issue with proposing that the simulator somehow makes its random numbers "inaccessible" to us. 23:31:20 alise: nor do I 23:31:25 Why wouldn't "that universe" be emulable, except for memory constrains? 23:31:27 *constraints? 23:31:30 emulable isn't a word 23:31:31 TMs are not random, however 23:31:43 -!- tombom has quit (Quit: Leaving). 23:31:50 Emulable is a lovely word and should be real. 23:32:26 we have near-UTMs in this Universe (machines that would be UTMs if they had infinite space), that means they can emulate any TM. By definition, there cannot exist a TM that a UTM cannot emulate 23:32:32 Lumenos is practically a superhero but for eir one crippling kryptonite weakness to a deadly form of ikilumen known as termMites. 23:32:32 Noise pollution: Marl is the gosh of noise pollution. His one most loyal and faithful servant on Earth, Marlean, is actually Lumenos step sister. The antiChrist appointed Marlean to distract and frustrate any attempt by Lumenos or Klearance to think. However, marlikilumen has differing effects on Lumenos and Klearance. 23:32:32 Klearance becomes sedated, hypnotized, and usually will fall asleep or stare at a lumenator, lucidly dreaming of something he thinks he needs to do without having access to the brain functions which could solve any real problem when these actually exist. 23:32:33 Lumenos becomes distracted, agitated (more like freegan pissed off), and tends to flee from the deadly air vaprations. 23:32:36 http://lumeniki.referata.com/wiki/Ikilumen_of_Lumenos'_mind what! 23:33:05 I had to *argue* with him. 23:33:16 It's open-edit, feel free to annoy him. 23:33:28 Hooooovie you came! *BIG hug* I did it right that time, hugh? I know how you like those little stars. You so smart. Do you know how to spell "hugh"? First editor who is sticking around a little while maybe? I think there might be a special place for the Hoovester in the Lumeniki tip jar. Lumenos 17:12, September 6, 2009 (UTC) 23:33:35 -!- Oranjer has quit (Read error: Connection reset by peer). 23:33:36 Hooooovie you came! *BIG hug* 23:33:43 `addquote Hooooovie you came! *BIG hug* 23:33:46 so if the Universe cannot be modeled by any TM (including, by definition, a UTM) inside it, it cannot be emulated by any TM at all. 23:33:57 "If you want me to stay, make me a sysop and bureaucrat." xD 23:34:02 Sometimes I think you no longer love me. I know that is just my low self esteem talking but, you know, it would be nice to hear you say it every now and then. Lumenos 08:37, November 13, 2009 (UTC) 23:34:04 No output. 23:34:06 Is this guy for real 23:34:12 It would appear. 23:34:20 -!- Oranjer has joined. 23:34:23 so therefore its computational complexity class must be super-TC, since it can in fact model a UTM, as evidenced by the existence of UTMs within it 23:34:25 alise, where's this? 23:34:29 Otherwise he shows a dedication for parody that is in itself weird. 23:34:36 UTMs can model UTMs 23:34:43 "(Prune. With a chainsaw)" --Phantom_Hoover 23:34:46 --http://www.wikiindex.org/index.php?title=Lumeniki&diff=69874&oldid=68851 23:34:52 Sgeo: http://lumeniki.referata.com/ 23:35:06 http://www.wikiindex.org/Lumeniki Look at that, it's big again. 23:35:18 This guy is fucking insane 23:35:56 Where's the You came bit? 23:36:21 Sgeo: exactly 23:36:21 http://www.wikiindex.org/index.php?title=Lumeniki&oldid=68851 He seems to think that he invented MediaWiki's XML export feature. 23:36:45 `quote 23:36:48 Sgeo: on Phantom_Hoover's talk page on lumeniki; I'm sure you can figure it out. 23:36:49 now, I should add one thing 23:36:54 Seems HackEgo is still broken. 23:37:01 No output. 23:37:04 so therefore its computational complexity class must be super-TC, since it can in fact model a UTM, as evidenced by the existence of UTMs within it 23:37:08 I don't believe the universe is infinite. 23:37:09 So there. 23:37:12 `run ls 23:37:28 No output. 23:37:32 A UTM can model a UTM, can't it? 23:37:58 alise: Size is the only possible reason why no UTM within the Universe can model the Universe if it is TC 23:38:08 Why is it tthat to me, it's obvious both coppro and alise are wrong? 23:38:10 coppro: I also believe a UTM can probably model the universe. 23:38:17 Sgeo: Because you are wrong in a different way. 23:38:33 alise, you didn't have to deal with Lumenos' debate maps. 23:38:44 if you had a UTM within the Universe, and the Universe is just TC, then that UTM could model the Universe 23:38:55 except for the obvious fact that it's physically impossible 23:39:20 I think there's actually a proof of the Universe's irreducibility 23:39:25 Phantom_Hoover: This wiki is so confusing... 23:39:34 When you said "Within the universe", you mean physically? 23:39:36 coppro: that would be an astonishing result. 23:39:40 coppro: it would disprove the church-turing thesis. 23:39:45 coppro: thus I believe it is not so. 23:39:49 i wish to point out that a deterministic TM can easily model a nondeterministic one, with just an exponential blowup in time 23:40:13 (in case someone here didn't know this already) 23:40:14 Phantom_Hoover: The only solid opinion I can come up with is that this Lumenos guy possibly likes RationalWiki, which makes me detest him (her?). 23:40:15 In the Wikiindex dispute, he eviscerated the discussion and scrambled everything in it. 23:40:31 alise: it would also disprove everything and prove everything, since it would be a contradiction 23:40:31 "Hereto sapien"? 23:41:02 it is obvious that the Universe cannot be modeled from within itself; the question is whether the computational power is sufficient 23:41:09 and also, the usual quantum complexity class BQP fits snugly inside the deterministic complexity class PSPACE 23:41:41 actually now I'm just raging at RationalWiki, which is nicer than reading this wiki 23:41:52 -!- Phantom_Hoover has quit (Quit: Leaving). 23:42:13 (meaning that turning quantum -> deterministic is also just a question of blowing up space or time requirements) 23:42:20 What's wrong with RationalWiki? 23:42:35 -!- zzo38 has quit (Remote host closed the connection). 23:43:21 Sgeo: It's mostly filled with foaming-at-the-mouth people who seem to like making fun of silly religious beliefs more than RATIONALLY EXAMINING THINGS. 23:43:35 alise: also, the Church-Turing thesis is not something that can be taken for granted. That's the whole point of digital physics 23:43:36 Anti-religion is perfectly acceptable but it is not rationality, and their articles also are almost completely devoid of reason; it approaches more of a comedy wiki. 23:43:52 -!- Phantom_Hoover has joined. 23:44:02 And I dislike their writing style. It smacks of "Lol, I am smarter than you" no matter who reads it. 23:44:18 alise, I'm afraid I'm one of the administrators, so I'll just leave before an argument starts. 23:44:23 *PLEASE* 23:44:30 -!- Phantom_Hoover has quit (Client Quit). 23:44:39 Phantom_Hoover: Is it rational to leave whenever someone disagrees with your site? 23:44:41 Wow, that guy's touchy. 23:45:15 -!- coppro has set topic: Phantom_Hoover: Is it rational to leave whenever someone disagrees with your site [RationalWiki]? | http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 23:46:12 -!- Phantom_Hoover has joined. 23:46:34 alise, it's more the fact that it's quarter to 12 and I don't like arguing with people. 23:46:48 By all means create an account and criticise the site there 23:46:48 Phantom_Hoover: You know, entering to say something after logreading is a technique I used to use and is widely regarded as extremely immature here. 23:46:51 Talk or don't talk at all. 23:46:59 I'm sorry, then. 23:47:01 No, I'm criticising the site here. If you were mature you would ignore me instead of confronting me like that. 23:47:09 No, OK? 23:47:10 Or at least confronting me in a more... rational way. 23:47:23 I'm allowed not to want to have an argument, OK? 23:48:01 I disagree with your argument, but I'll defend to death your right not to have it 23:48:05 And it's not "my site", either. 23:48:24 "My boss" isn't MY boss, either. 23:48:27 He's other people's boss too. 23:48:36 Phantom_Hoover: If you don't want an argument, don't respond to me. 23:48:37 is there a static place to announce a language? 23:48:44 jabb: Not really. 23:48:50 The wiki is where it's normally done. 23:48:53 How would you announce something ina static place? 23:48:56 Now really, saying "Don't say that! Stop criticising that!" won't stop an argument, only provoke it. 23:48:57 jabb: wiki. 23:49:00 esolangs.org/wiki 23:49:10 He's used that already. 23:49:47 Also, I'm not telling you not to say it. I'm saying that I'm not interested in responding to your criticism. 23:49:56 jabb: what do you mean by static? there is the esoforum which is only barely alive... 23:50:06 an esoteric esoteric programming language? 23:50:12 Phantom_Hoover: But you did anyway. 23:50:18 I didn't say that. 23:50:29 Personally I think your response comes across as quite emotionally attached to this wiki, to the point of not wanting to rationally reply to criticism. 23:50:35 (And don't say I'm starting an argument, you kindled the fire.) 23:50:41 How? 23:50:49 I linked you to Lumenos. 23:50:52 ahh, used to announcing something on usenet or something 23:50:53 "in some assembly language"? 23:51:04 Phantom_Hoover: By leaving/rejoining a lot and saying "NO DON'T TALK ABOUT IT". 23:51:13 jabb: we used to have a mailing list 23:51:16 uncountable aeons ago 23:51:17 I left/rejoined TWICE. 23:51:27 Phantom_Hoover: Well, I didn't say much int he first place... 23:52:54 Look, I have to do this thing called SLEEPING now, and I was tired as it was. I don't really want to have a nice day spoilt by an argument, and I tried to indicate this. 23:53:06 jabb, what's the data type of the hand? 23:53:22 Phantom_Hoover: Stop whining and just go to sleep. 23:53:25 You don't have to be emotional. 23:53:41 You would think -- okay, I refuse to make another jab at the name RationalWiki. How could I stoop so low? 23:53:54 Why do you always have to act oh so superior to all lesser beings? 23:54:02 Anyway. I'll sleep now. 23:54:03 -!- Phantom_Hoover has quit (Quit: Leaving). 23:54:09 I'm not acting superior ... you're acting hurt. 23:54:15 both 23:54:22 Are the two actings mutually exclusive? 23:54:25 jabb, so In Hand's data type varies? 23:54:27 How am I acting superior? 23:54:32 you usually are 23:54:40 I was belittling Phantom_Hoover, yes... 23:54:51 But I don't recall bembiggening myself. 23:54:57 Hey, a use for C unions! 23:55:10 You do it implicitly 23:55:13 Sgeo: There are plenty. 23:55:16 like a politician does 23:55:19 coppro: That's not very helpful. 23:55:26 "What am I doing wrong?" "You're breaking it!!" 23:55:31 "How?" "That's just what you do!" 23:55:38 I'd elaborate but I'm running late and I might miss my bus if I don't leave in like 2 minutes 23:56:12 alise: "stop whining" and variants come across as insulting. 23:56:31 uorygl: I never denied I was being insulting: only that I was acting superior. 23:56:37 Anyway, that rather contradicts with coppro saying that I'm always like that. 23:56:40 Sgeo, yeah can be a number, list or null (None in python) 23:57:15 jabb, should the interpreter be considered to be a reference interpreter? 23:57:16 Sgeo: any memory location is that way, list, number or none 23:57:26 And which wins, spec or interp? 23:57:46 Spec seems a bit vague in places. I'll work on clarifying it based on interp 23:58:21 hmm, I'd go with interp 23:58:47 but they're remarkably close, albeit the specs is a bit vague