←2010-06-03 2010-06-04 2010-06-05→ ↑2010 ↑all
00:17:00 <jamesstanley> 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 <jamesstanley> http://aw.eso.me.uk/p/?show=f4b3bfce0
00:25:50 <jamesstanley> good night guys
00:26:09 <ArcticDeath> night
00:26:44 <jamesstanley> also i just noticed that the 4th line of the loop for 3's can be shortened
00:26:46 <jamesstanley> but anyway...
00:28:46 -!- oerjan has quit (Quit: Good night).
00:31:33 -!- ArcticDeath has left (?).
00:32:13 <Sgeo_> jamesstanley, given 8-bit BF, you can um, simulate 8^2n bit BF easily
00:32:15 <Sgeo_> iirc
00:33:45 <pikhq> And itoa isn't hard to do.
00:34:42 <Sgeo_> itoa?
00:34:47 <Sgeo_> int to string?
00:36:49 <pikhq> Yuh.
00:37:00 <pikhq> So he could output numbers.
00:39:31 <Sgeo_> 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 <pikhq> 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 <zzo38> 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 <zzo38> !!!!!!!!!!!
01:30:26 <zzo38> 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 <zzo38> 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 <zzo38> An example code is: : 2+ 2 + ;
01:32:15 <zzo38> Which can also be written as: [[ 2 + ]] CONSTANT `2+
01:32:41 <zzo38> Or: NULL DATA-OPEN 2 L, `+ , DATA-CLOSE COMPILE CONSTANT `2+
01:33:08 <zzo38> Or: 2 `+ 1 CURRY CONSTANT `2+
01:33:22 <zzo38> Or even a bunch of other ways.
01:35:44 <zzo38> Or: NULL DATA-OPEN 2 L, +` EXIT` DATA-CLOSE COMPILE CONSTANT `2+
01:36:15 <zzo38> Or: 2 1[[ + ]] CONSTANT `2+
01:36:26 <zzo38> 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 <zzo38> 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 <Gregor> http://codu.org/tmp/BalMusetteNocturne-wipp1.mp3 Gregor attempts to play two musical instruments at once and records it poorly!
03:21:31 <Gregor> Gregor accidentally bolds things!
03:24:15 -!- Mathnerd314 has quit (Ping timeout: 245 seconds).
03:24:55 <pikhq> Gregor also uses mp3 for once!
03:24:57 <pikhq> The horror!
03:25:14 <Gregor> 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 <pikhq> Ah.
03:28:41 <Gregor> I see you have no opinion on the music itself :P
03:29:05 <pikhq> I've not listened yet.
03:29:10 <pikhq> :P
04:05:04 -!- pikhq has quit (Quit: LOGGING OF FOR WEEK. MUAHAHAH.).
04:16:54 -!- zzo38 has joined.
04:17:07 <zzo38> Sometimes the log file is application/octet-stream by mistake?
04:18:59 <zzo38> Which IRC server softwares can be compiled with the GNU C compiler and can work on Windows and on Linux?
05:34:18 <coppro> dunno
05:35:03 <coppro> seven's at git clone git://git.freenode.net/ircd-seven.git
05:35:34 <zzo38> I found ngIRCd I think I will use that one. If I can get it to compile
05:45:26 <oktolol> 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 <oktolol> 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 <Gregor> I'm glad that you think I can do impossible things on the harmonica.
05:46:07 <oklopol> i love how mirc shoves all my past mistakes in my face for the rest of my life
05:46:11 <Gregor> It's nice to know you have that kind of confidence in me.
05:46:25 <Gregor> Well, not impossible, but the kinds of things that people study the harmonica for YEARS to be able to do.
05:46:29 <Gregor> However, that's not a harmonica.
05:46:38 <oklopol> i thought the fast things are just you moving your mouth over the thing
05:46:43 <oklopol> err along it
05:46:57 <Gregor> The chords are the real complication :P
05:47:10 <Gregor> Since some of them would involve tonguing an intervening hole on a harmonica.
05:47:19 <oklopol> well i have crappy quality, i thought there was just thirds
05:47:31 <oklopol> hmm
05:47:33 <oklopol> oh right
05:47:42 <Gregor> Yeah, the audio quality is bad since I don't have decent recording equipment :P
05:48:57 <Gregor> Not gonna continue instrument guessing?
05:49:32 <oklopol> 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 <oklopol> drilling
05:50:09 <Gregor> Well, it's a melodica, so you wouldn't have guessed it anyway :P
05:50:17 <oklopol> err i don't really know much about instruments, harmonicas and well okay make that sound
05:50:24 <oklopol> the list would've included melodica
05:50:30 <oklopol> if i'd remembered its name
05:50:39 <Gregor> The fact that you've heard of it is astounding ...
05:50:59 <oklopol> it's the thing you blow into and play like a piano?
05:51:26 <Gregor> Yup
05:52:13 <oklopol> i have heard the name lots of times, anyway i gotta go to uni so have fun with your instruments ->
05:52:33 <oklopol> er heard of the instrument or the name?
05:52:38 <oklopol> because the instrument is common
05:52:42 <Gregor> ???
05:52:44 <Gregor> Common where?
05:52:49 <Gregor> I'd never seen one.
05:52:53 <oklopol> all the cool kids have them
05:53:00 <Gregor> WELL THEN I'M COOL NOW
05:53:04 <oklopol> i dunno, i've had at least one
05:53:17 <oklopol> and i just met one at a thing
05:53:45 * Sgeo_ decides that he <3 Zelda music
05:53:52 <oklopol> maybe it's like our national instrument dunno
05:53:53 <oklopol> ->
05:54:12 <Sgeo_> Actually, I made that decision a long time ago
06:08:25 <zzo38> 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 <zzo38> What is wrong?
06:14:28 <coppro> you don't have make?
06:19:04 <zzo38> 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 <zzo38> Which package is "make" program?
06:49:45 <zzo38> What other packages are required to compile ngIRCd?
06:49:45 <coppro> dunno
06:49:49 <coppro> dunno
06:50:38 -!- FireyFly has joined.
06:57:02 <zzo38> 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 <zzo38> 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 <zzo38> 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 <zzo38> I also have one process that will not go away, process 924 cmd.exe
07:19:00 <zzo38> Attempting to terminate the process does nothing, attempting to debug gives error message that it cannot execute the program
07:21:03 <zzo38> Now Cygwin Setup seems stuck!
07:22:33 <zzo38> 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 <CakeProphet> ...hello
07:50:05 -!- CakeProphet has quit (Quit: Reconnecting).
07:50:19 -!- CakeProphet has joined.
07:52:30 <jabb> Hi!
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:05:54 <jabb> Does this look esoteric: (0)3< (1)10< @; (1)20*(1)< (^)(,_1)>` (0)>1-< ! ?
08:08:38 <mtve> yep
08:24:22 <CakeProphet> :o
08:24:35 <CakeProphet> yes it does.
08:27:02 <jabb> I have that running in my interpreter succesfully
08:38:32 -!- Phantom_Hoover has joined.
08:47:23 <olsner> btw, I successfully got my compiler to compile a working brainfuck interpreter the other week, that was fun
09:04:30 <Phantom_Hoover> Cool, there's a low-level x86 Common Lisp implementation.
09:04:39 <Phantom_Hoover> olsner: Compiler for what?
09:08:27 <jabb> Phantom_Hoover: Got a cat example going
09:08:51 <Phantom_Hoover> Does it halt on EoF?
09:09:02 <jabb> yeah
09:09:05 <jabb> just tested it
09:20:05 <Phantom_Hoover> Right, standard procedure once you have an interpreter and working examples is to post it on the wiki.
09:20:18 <Phantom_Hoover> Although I would advise you strongly not to post the interpreter there.
09:20:30 <Phantom_Hoover> (The code, I mean)
09:20:52 <jabb> github?
09:21:31 <Phantom_Hoover> Pretty much wherever.
09:21:54 <Phantom_Hoover> 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 <coppro> which commonly-used color space is the biggest?
09:28:16 <Phantom_Hoover> http://en.wikipedia.org/wiki/File:Colorspace.png seems relevant.
09:30:34 -!- BeholdMyGlory has joined.
09:30:51 <coppro> useful, but that seems to be mostly RGB spaces
09:31:24 <Phantom_Hoover> The rainbow?
09:31:50 <Phantom_Hoover> Since it contains every frequency of light from the sun
09:32:03 <Phantom_Hoover> 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:25:42 <Phantom_Hoover> I hope that it's just a media invention.
10:26:04 <Phantom_Hoover> Sadly, the thing about them burning bins to get high off the fumes seems not to have been.
10:27:01 <DH____> What? No they burn bins because it's fun...
10:27:35 <Phantom_Hoover> Hmm, admittedly the citation for that was the Metro.
10:27:58 <Phantom_Hoover> Which has lower journalistic standards than, say, a pigeon.
10:28:33 <DH____> The Metro's one of the more reliable papers, I find. Would you rather beleive the Sun? Or the Mail?
10:28:43 <Phantom_Hoover> No.
10:28:50 <Phantom_Hoover> I believe no-one!
10:28:55 <Phantom_Hoover> Not even you!
10:29:11 <Phantom_Hoover> Anyone with more underscores than letters in their nick is not to be trusted.
10:29:36 <DH____> I don't know why it did that...
10:29:52 <DH____> 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 <PH______________> I am exceedingly untrustworthy now.
10:34:04 -!- tombom has joined.
10:34:07 <jabb> 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 <PH______________> No you're not!
10:34:57 <PH______________> 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 <PH______________> (set-weight neuron output (+ (car range) (random (coerce (- (car range) (cdr range)) 'double-float)))))
10:37:55 <PH______________> 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 <PH______________> And I used cdr when I should have used cadr, too...
10:41:09 <PH______________> And I got various indices wrong. Oh well, it's fixed now.
10:52:58 <augur> heyo
10:54:19 -!- Gracenotes has joined.
11:06:12 <PH______________> augur!
11:07:16 <augur> hey
11:07:19 <augur> Gracenotes! :D
11:07:52 <PH______________> I don't recall Gracenotes ever actually saying anything...
11:08:51 <augur> hes magical
11:08:54 <augur> he doesnt have to
11:09:49 <e2e> but you can be magical too!!!
11:10:01 <PH______________> How?
11:10:11 <e2e> don't you see??
11:10:13 <e2e> lol
11:10:15 <PH______________> I tried learning Lisp, but that didn't work; nor did Haskell.
11:10:15 <e2e> sorry
11:10:27 <e2e> random bs
11:10:41 <PH______________> Oh, by not saying anything.
11:10:49 <PH______________> But that doesn't make me magical.
11:11:05 <PH______________> Magic requires that I don't *have* to say anything.
11:11:13 <PH______________> fungot?
11:11:24 <PH______________> Oh, no!
11:11:33 <e2e> I'm a fairy princess
11:12:19 <e2e> in a way
11:13:28 -!- softmoon has joined.
11:14:14 <PH______________> e2e: Which way?
11:14:31 <e2e> I
11:14:39 <e2e> don't
11:14:42 <e2e> know
11:15:39 <e2e> levitation
11:17:08 <e2e> wait thats false
11:17:22 <e2e> nm
11:17:29 <softmoon> Do anyone know something about Lali Puna?
11:21:06 <softmoon> I do not know something about music
11:22:54 -!- softmoon has quit (Quit: softmoon).
11:45:13 -!- e2e has quit.
11:52:21 <PH______________> 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 <FireFly> Hrm
12:32:42 <FireFly> A function that returns its argument, x → x, what's it called again?
12:32:44 * FireFly forgets
12:34:51 <augur> identity function
12:35:01 <FireFly> Ah, yeah, thanks
12:35:32 <fizzie> There was a "you'll forget your own identity next" pseudo-pun waiting there.
12:37:59 <Deewiant> PH______________: VBScript, PerlScript
12:40:16 -!- augur has quit (Remote host closed the connection).
12:40:26 -!- augur has joined.
12:43:53 <CakeProphet> :o
12:44:24 <CakeProphet> I think I understand it, just need to see it in use.
12:46:54 <PH______________> Deewiant: Are they standardised?
12:47:04 <Deewiant> What do you mean
12:48:15 <__jabb> PH: http://esolangs.org/wiki/Mimsy
12:48:55 <PH______________> I thought "mimsy" was from Jabberwocky.
12:49:16 <PH______________> "All mimsy were the borogroves, and the mome raths outgrabe."
12:49:36 <Deewiant> 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 <PH______________> Oh, really?
12:49:57 <__jabb> yeah
12:50:06 <__jabb> http://en.wikipedia.org/wiki/Jabberwocky
12:50:22 <PH______________> Also, the language looks pretty good.
12:50:35 <PH______________> It's sufficiently like line noise.
12:50:54 <PH______________> 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 <AnMaster> PH______________, that is one irritating nick!
12:53:44 <PH______________> I'm trying to be untrustworthy.
12:54:14 <PH______________> (I'm Phantom_Hoover, if you haven't realised)
12:54:51 <AnMaster> I did realise that from /whois
12:54:59 <AnMaster> and I suspected it before that
12:56:46 <PH______________> (10:28:47) Phantom Hoover: Anyone with more underscores than letters in their nick is not to be trusted.
12:56:50 <PH______________> That is why.
12:58:38 <AnMaster> I see
12:58:50 <AnMaster> PH______________, anyone with a space in their nick is not to be trusted at all
12:58:58 <AnMaster> since that doesn't work
12:58:59 <PH______________> I don't acutally have one.
12:59:04 <PH______________> It's the client.
12:59:05 <AnMaster> PH______________, what about that quote then?
12:59:11 <PH______________> s/acutally/actually/
12:59:13 <AnMaster> okay, such clients are not to be trusted
12:59:20 <PH______________> Very probably.
12:59:33 <PH______________> I'll probably change in a while.
13:00:02 <AnMaster> PH______________, oh?
13:00:11 <AnMaster> btw "-PH______________- VERSION Purple IRC", never heard about that
13:00:23 <PH______________> On the other hand, irssi had my real name on whois, and I couldn't see how to change it easily.
13:00:31 <AnMaster> PH______________, the irssi config
13:00:35 <AnMaster> I presume
13:00:37 <PH______________> AnMaster: Toying with Pidgin. It's vaguely tolerable.
13:00:45 <AnMaster> PH______________, probably called gecos or such
13:00:46 <AnMaster> not sure
13:00:52 <AnMaster> since I don't use irssi
13:01:03 <PH______________> What do you use?
13:01:07 <Deewiant> PH______________: /set name
13:01:14 <AnMaster> 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 <AnMaster> Deewiant, did you see that idea a few days ago about befunge with branch delay slots?
13:03:46 <Deewiant> Yes, I did
13:04:17 -!- Phantom_Hoover has joined.
13:04:17 <Deewiant> I was going to comment about that being very feral for a fingerprint but decided not to
13:05:29 <AnMaster> Deewiant, not as a fingerprint I thought, but as a fungiod
13:05:56 <AnMaster> (sorry for slow reply, had to clean my glasses due to small accident there)
13:06:21 <Deewiant> You did say "as a fingerprint perhaps", but yes.
13:06:39 <AnMaster> hm, maybe I did
13:06:41 <Deewiant> And a reply isn't slow unless it takes at least five minutes to come.
13:06:50 <Deewiant> 2010-06-02 01:25:20( AnMaster) as a fingerprint perhaps
13:06:50 <AnMaster> heh
13:07:27 <AnMaster> hm, as a fingerprint it is much less useful than as a core feature of a fungoid
13:07:42 <AnMaster> since the latter would allow a nice pipeline in a hardware implementation
13:07:56 <AnMaster> while the former would have to enable that only sometimes
13:08:03 <AnMaster> and require dual implementation or something
13:09:39 <Phantom_Hoover> Fingerprint?
13:10:34 <AnMaster> 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 <AnMaster> fungot uses SOCK and a few other ones for example
13:10:51 <AnMaster> hey, where is fungot? fizzie!
13:13:19 <fizzie> Let's see.
13:13:23 <fizzie> (Just arrived home today.)
13:13:38 <AnMaster> fizzie, hi!
13:13:40 * Phantom_Hoover whistles innocently
13:13:44 <AnMaster> Phantom_Hoover, what?
13:14:23 -!- fungot has joined.
13:14:29 <__jabb> He's unstrustworthy
13:14:33 <Phantom_Hoover> I kinda sorta changed my nick to fungot during a netsplit.
13:14:33 <fungot> Phantom_Hoover: i'm still learning
13:14:39 -!- __jabb has changed nick to jabb.
13:14:44 <Phantom_Hoover> __jabb, I'm not anymore.
13:14:58 <jabb> I don't believe you
13:15:02 <Phantom_Hoover> No underscores, see?
13:15:05 <fizzie> The nick-change seems to have not been related: RAW >>> ERROR :Closing Link: momus.zem.fi (Ping timeout: 260 seconds) <<<
13:15:15 <fizzie> (If it drops, it won't try to reconnect.)
13:18:13 <AnMaster> Phantom_Hoover, one underscore!
13:18:45 <Phantom_Hoover> True, but the ratio of underscores to letters is low.
13:20:06 <Phantom_Hoover> fungot
13:20:07 <fungot> Phantom_Hoover: don't take your class as any indication of decision of opinion whatsoever.).
13:20:15 <Phantom_Hoover> ^style
13:20:15 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher ic irc* jargon lovecraft nethack pa speeches ss wp youtube
13:21:41 <fizzie> It reverts to that style on startup by default.
13:25:54 <CakeProphet> !haskell print (show "Hello")
13:26:13 <EgoBot> "\"Hello\""
13:28:11 <EgoBot> *** Exception: Prelude.read: no parse
13:30:28 <EgoBot> 1
13:31:01 <CakeProphet> !hasle;; print (read \$ show "print" :: String)
13:31:06 <CakeProphet> !haslell print (read \$ show "print" :: String)
13:31:20 <CakeProphet> !haslell print (read (show "print") :: String)
13:31:35 <CakeProphet> ...ah
13:31:36 <EgoBot> "print"
13:32:47 <CakeProphet> !Haskell print \$ [(+1), (+2), (+3), negate] <\$> 3
13:32:56 <CakeProphet> !haskell print \$ [(+1), (+2), (+3), negate] <\$> 3
13:33:27 <CakeProphet> ...we need lambdabot.
13:34:42 <Deewiant> !haskell import Control.Applicative; main = print \$ [(+1), (+2), (+3), negate] <\$> 3
13:36:28 <Deewiant> !haskell import Control.Applicative; main = print \$ [(+1), (+2), (+3), negate] <*> pure 3
13:36:30 <EgoBot> [4,5,6,-3]
13:39:23 -!- augur has quit (Remote host closed the connection).
13:39:36 -!- augur has joined.
13:40:40 <Phantom_Hoover> augur,
13:40:42 <Phantom_Hoover> !
13:40:58 <Deewiant> xyzzy,
13:40:59 <Deewiant> ni!
13:41:08 <augur> xyzygy
13:41:22 <Phantom_Hoover> fungot,
13:41:22 <fungot> 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 <Phantom_Hoover> R!
13:44:13 <AnMaster> 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 <Phantom_Hoover> AnMaster, everything uses the class system.
13:45:57 <Phantom_Hoover> Except JavaScript.
13:46:03 <AnMaster> oh?
13:46:12 <Phantom_Hoover> JavaScript: Program equality.
13:46:38 <AnMaster> really? wouldn't the ability to determine that solve the halting problem? ;P
13:46:52 <Phantom_Hoover> Urgh.
13:47:05 <Phantom_Hoover> Well, once we get FTL travel...
13:47:16 <AnMaster> what has that got to do with it?
13:48:26 <Slereah> Well, not much, since that's not useful if you don't have infinite memory
13:48:32 <Phantom_Hoover> FTL → time travel → TwoDucks interpreter → halting oracle.
13:49:00 <Slereah> But time travel violates quantum unitarity, though
13:49:14 <Phantom_Hoover> Dammit.
13:49:35 <AnMaster> Phantom_Hoover, also it requires infinite space as well
13:49:51 <AnMaster> and how does FTL imply time travel?
13:49:51 <Phantom_Hoover> That doesn't stop us normally.
13:50:00 <Phantom_Hoover> AnMaster: Relativity.
13:50:08 <AnMaster> hm
13:50:17 <AnMaster> does it allow going backward in time?
13:50:23 <AnMaster> or just slowing it down/speeding it up?
13:50:56 <Phantom_Hoover> It allows violation of causality, which is basically time travel.
13:51:02 <augur> AnMaster: if you can go faster than light
13:51:06 <augur> and relativity holds
13:51:10 <augur> then you travel backwards in time
13:52:36 <AnMaster> augur, ah right
13:52:54 <augur> 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 <fizzie> Completeness is one reason.
14:33:53 <coppro> implicit conversion of its operands to boolean type, and it looks better than !!x != !!y
14:34:30 <Phantom_Hoover> But in what context would you need it?
14:37:12 -!- BeholdMyGlory has joined.
14:40:23 <oklopol> i've needed a logical xor many times
14:40:40 <Phantom_Hoover> For what sort of things?
14:40:42 <oklopol> can't think of a situation tho
14:40:44 <oklopol> ^
14:40:58 <oklopol> for when i've needed exactly one of two things to be true, obviously
14:41:11 <oklopol> rare, but i recall needing it multiple times
14:41:41 <Phantom_Hoover> 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 <oklopol> 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 <CakeProphet> hmmm I wonder if you could use a constrain-enabled type system to automate unit testing.
15:08:24 <CakeProphet> Phantom_Hoover: make a bitchin' VM
15:10:37 <CakeProphet> give it support for stuff like function pointers.... profit?
15:13:43 <CakeProphet> but yeah.. constraints and types.. so
15:13:55 <CakeProphet> Haskell's system only lets you specify whole sets of objects
15:14:13 <CakeProphet> Int passes for all system-bound integer values...
15:15:02 <Phantom_Hoover> CakeProphet: Define "bitchin'".
15:15:42 <CakeProphet> 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 <CakeProphet> Phantom_Hoover: I don't know. Uses something previous unused in VM design.
15:15:59 <CakeProphet> an esoteric VM
15:16:05 <Phantom_Hoover> Been done.
15:16:50 <CakeProphet> hmmm
15:17:07 <CakeProphet> (t | c) where t is a type and c is a constraint.
15:17:09 <Phantom_Hoover> Although...
15:17:16 <CakeProphet> constraints would be like... type-level predicate functions sort of.
15:17:37 <Phantom_Hoover> 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 <CakeProphet> Phantom_Hoover: well... do something different
15:18:13 <CakeProphet> but equally bitchin'
15:18:20 <Phantom_Hoover> No, I mean actually write the VM.
15:18:29 <CakeProphet> ...ah
15:18:41 <Phantom_Hoover> Lazy K is an incredibly functional language, so it could be fun.
15:18:58 <CakeProphet> hmmm...
15:19:12 * CakeProphet is thinking about constraints and type systems.
15:19:58 <CakeProphet> conditionals would change constraints on a type.
15:20:08 -!- hiato has joined.
15:20:21 <CakeProphet> if (x>100) f (x) else x
15:20:44 <CakeProphet> the constraint on x changes for each of those nested expressions
15:21:04 <Phantom_Hoover> 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 <CakeProphet> in the truth-expression x is Int | x > 100
15:21:19 <CakeProphet> Phantom_Hoover: What about a VM that operates on a tree?
15:21:31 <CakeProphet> instead of the stack/register based designs.
15:21:35 <Phantom_Hoover> Hang on.
15:21:57 <Phantom_Hoover> IIRC lazy languages use trees to evaluate.
15:22:01 <Phantom_Hoover> Ooh.
15:22:11 <CakeProphet> :)
15:22:16 <CakeProphet> there you go...
15:22:38 <Phantom_Hoover> OTOH low-level functional programming is an underexplored concept, so there's nothing to build on...
15:22:45 <Phantom_Hoover> Right, let's get designing.
15:22:46 <CakeProphet> 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 <CakeProphet> like... have a virtual filesystem of sorts
15:23:02 <CakeProphet> if you allow for naming of tree nodes as well as enumeration
15:23:08 <Phantom_Hoover> Yes, but it would be nice if it was lazy and functional as well.
15:23:25 <Phantom_Hoover> OK, so source and data should both be trees, which seems sensible.
15:23:30 <CakeProphet> ...lazy VM? I'd say only provide operations for /supporting/ lazy evaluation
15:23:34 <CakeProphet> but make the VM itself eager
15:23:49 <Phantom_Hoover> Baah, no!
15:24:02 <CakeProphet> .. well, if you think there's benefit to having it lazy.
15:24:02 <Phantom_Hoover> Low-level lazy evaluation is much interestinger.
15:24:09 <Phantom_Hoover> It's esoteric!
15:24:15 <CakeProphet> rofl. granted.
15:24:29 * CakeProphet was thinking of a practical VM... for implementing lazy languages.
15:24:32 <Phantom_Hoover> Eager evaluation is so 19**s.
15:24:37 <CakeProphet> or only partially lazy languages.
15:24:52 <CakeProphet> IO for example... can specify certain expressions to be lazy at a method level
15:25:02 <CakeProphet> rather than having everything implicitly lazy.
15:25:33 <Phantom_Hoover> Lazy K is completely lazily evaluated and manages IO pretty well.
15:25:44 <CakeProphet> ...er, I meant io the language
15:25:46 <CakeProphet> not IO
15:25:59 <Phantom_Hoover> Oh.
15:26:03 <CakeProphet> io is eager
15:26:05 <Phantom_Hoover> !wiki IO
15:26:08 -!- coppro has quit (Quit: I am leaving. You are about to explode.).
15:26:08 <CakeProphet> but methods take lazy parameters
15:26:11 <Phantom_Hoover> `wiki IO
15:26:12 -!- augur has quit (Remote host closed the connection).
15:26:20 -!- augur has joined.
15:26:34 <CakeProphet> looool
15:26:36 <HackEgo> No output.
15:26:46 <CakeProphet> !google io programming language
15:26:55 <Phantom_Hoover> Hmm.
15:27:06 <Phantom_Hoover> It seems like it's intended to be *useful*.
15:27:10 <Phantom_Hoover> BOO!
15:27:34 <DH____> io =/= iota?
15:27:42 <CakeProphet> ...different.
15:27:46 <Phantom_Hoover> No.
15:27:51 <CakeProphet> io is not iota
15:28:09 <Phantom_Hoover> Lazy K would actually be feasible, since it runs purely at the SKI level.
15:28:13 <CakeProphet> Phantom_Hoover: usefulness doesn't exclude novelty of concept. :)
15:28:37 <Phantom_Hoover> So it's innately tree-based as it is.
15:28:58 <CakeProphet> what I was thinking of was a VM that explicitly operates on a global tree
15:29:12 <Phantom_Hoover> So the I-less cat program, ``skk would become...
15:29:13 <CakeProphet> and then particular lazy languages could implement how laziness works.
15:29:39 <Phantom_Hoover> OK, so the low-level code manipulates a tree?
15:29:51 <CakeProphet> ...that's how I would see it working.
15:29:56 <Phantom_Hoover> And then we write an interpreter for a lazy language in that?
15:30:00 <Phantom_Hoover> Hmm, interesting.
15:30:07 <CakeProphet> I always think a VM should model hardware somewhat closely
15:30:11 <CakeProphet> but provide abstraction
15:30:14 <Phantom_Hoover> Would code be in the tree as well?
15:30:20 <Phantom_Hoover> For the low-level language.
15:30:24 <CakeProphet> it's possible to set it up that way.
15:30:31 <CakeProphet> but it has to be tree-based code
15:30:40 <Phantom_Hoover> Is there actually a hardware structure for trees?
15:30:44 <CakeProphet> ...no.
15:30:50 <Phantom_Hoover> OK.
15:30:54 <Phantom_Hoover> Just wondering.
15:30:58 <CakeProphet> well
15:31:00 <CakeProphet> filesystem
15:31:01 <CakeProphet> is the only one
15:31:03 <CakeProphet> that's tree-like
15:31:13 <CakeProphet> but that's not strictly hardware
15:31:19 <Phantom_Hoover> Indeed.
15:31:19 <CakeProphet> just low-level.
15:31:26 <Phantom_Hoover> OK, so the low-level code.
15:31:45 <Phantom_Hoover> If it's implemented as a tree, it would seem like it would be quite functional already.
15:31:54 <CakeProphet> ...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 <CakeProphet> that are hierarchial
15:32:06 <CakeProphet> so if you name a node x... inside the parent node y... and its parent is root
15:32:06 <Phantom_Hoover> OK.
15:32:10 <CakeProphet> then you have /y/x
15:32:11 <CakeProphet> to refer to x
15:32:19 <Phantom_Hoover> OK.
15:32:59 <CakeProphet> ....so you could implement scoping rules like that perhaps.
15:33:16 <CakeProphet> ...also I'd say there should be a way to reference other nodes and jump to them.
15:33:50 <CakeProphet> also... types?
15:33:58 <CakeProphet> most VMs have a fixed number of types
15:34:05 <CakeProphet> regist-erbased vms like Parrot, for example
15:34:32 <CakeProphet> have int registers, float registers, byte registers, and "object" registers
15:34:41 <CakeProphet> object registers basically being pointer registers...
15:35:11 <CakeProphet> I don't know how a tree would handle types.
15:35:25 -!- saxamo has joined.
15:35:30 <Phantom_Hoover> Each node has a type?
15:35:36 <CakeProphet> that's a possibility.
15:36:00 <CakeProphet> another alternative is to have a tree for each type
15:36:01 -!- saxamo has left (?).
15:36:04 <CakeProphet> but that might ruin the design.
15:36:21 <Phantom_Hoover> It sort of loses the elegance of having a single, global tree.
15:36:25 <CakeProphet> yes.
15:36:50 <CakeProphet> well... if all of your data structures are the same byte-size
15:36:51 <CakeProphet> all is well
15:36:56 -!- Slereah has quit (Remote host closed the connection).
15:36:58 <CakeProphet> the best way to do that is to make pointers to everything.
15:37:17 <Phantom_Hoover> Probably.
15:37:23 <CakeProphet> that's how PYthon gets dynamic typing... everything is a pointer to a single C struct.
15:37:43 <CakeProphet> but that's kind of inefficient I think.
15:37:45 <CakeProphet> hmmm...
15:38:12 <CakeProphet> another idea is to have both a tree and a set of registers.
15:38:22 <Phantom_Hoover> So... struct node { void *data; struct node *leaf1; struct node *leaf2; }?
15:38:38 <CakeProphet> ah... binary tree?
15:38:46 <Phantom_Hoover> Seems sensible.
15:38:50 <CakeProphet> hmmm...
15:38:56 <CakeProphet> less you can do with it though.
15:39:14 <Phantom_Hoover> Well, the SKI calculus fits nicely into a binary tree.
15:39:20 <Phantom_Hoover> If you curry.
15:39:20 <CakeProphet> ah, okay.
15:39:48 <CakeProphet> I suppose you could change it later. I think arbitrary child nodes would be fun.
15:40:11 <Phantom_Hoover> Well, you could possibly simulate that.
15:40:16 -!- softmoon has joined.
15:40:25 <CakeProphet> haha.. just link them altogether
15:40:46 <Phantom_Hoover> Also, I assume nodes would need the type of the data as well.
15:41:12 <CakeProphet> 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 <CakeProphet> yeah I suppose so.
15:41:59 <CakeProphet> oh... and they'd have optional names too
15:42:07 <CakeProphet> or do you want to do that?
15:42:17 <CakeProphet> names work better with arbitrary child nodes.
15:42:24 <Phantom_Hoover> Mad idea: strip node size by making one of the child nodes NULL and the other a pointer to the data.
15:42:27 <CakeProphet> or at least make more sense.
15:42:29 <Phantom_Hoover> For leaves.
15:42:47 <CakeProphet> -nod- that works.
15:42:57 <CakeProphet> linked list would use the other node as a next pointer.
15:43:48 <CakeProphet> .....named nodes would be epic
15:44:06 <Gregor> Named noodles would be epic
15:44:34 <CakeProphet> .return would be a node referencing the node of the calling code. :)
15:44:44 <Phantom_Hoover> Do we want to have data in parent nodes?
15:44:51 <CakeProphet> I'd say so.
15:46:06 <CakeProphet> if you want to have homoiconicity
15:46:17 <CakeProphet> you'll need a way to represent VM code in the tree
15:46:35 <CakeProphet> and an instruction that runs VM code in the tree.
15:46:59 <Phantom_Hoover> OK, soo...
15:47:13 <Phantom_Hoover> Wait, we want TCness too.
15:47:21 <Phantom_Hoover> So control flow will be needed.
15:47:34 <CakeProphet> yeah, something basic will do.
15:47:47 <CakeProphet> hmmm... there's uh....
15:47:59 <Phantom_Hoover> How about, say, "move to the first child of the current node if it's 0, else the second"
15:48:11 <CakeProphet> yeah I'd so like
15:48:15 <Phantom_Hoover> And then have an exec instruction.
15:48:29 <CakeProphet> "branch to node references by first child, if non-null, else branch to node in second node, if non-null"
15:48:34 <CakeProphet> *referenced
15:49:08 <Phantom_Hoover> So set the first child to if 0, the second child to else, then jump to it.
15:49:23 <CakeProphet> mhm
15:49:26 <Phantom_Hoover> Although you'd probably want to segregate the tree into "code" and "data".
15:49:40 <CakeProphet> 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 <CakeProphet> so like...
15:49:53 <Phantom_Hoover> So move the selected code into the code branch.
15:49:55 <CakeProphet> a standard namespace for functions could be like
15:50:12 <CakeProphet> /f
15:50:16 <CakeProphet> /f/map
15:50:18 <CakeProphet> /f/reduce
15:50:26 <CakeProphet> would point to code in the tree
15:50:28 <CakeProphet> or something.
15:50:36 <Phantom_Hoover> Well, with a binary tree you can still do that.
15:50:37 <CakeProphet> under the node "f"
15:50:45 <CakeProphet> but you only have two nodes.
15:50:52 <Phantom_Hoover> Have /data, /code/source and /code/functions.
15:51:01 <Phantom_Hoover> Or somesuch.
15:51:24 <CakeProphet> I still think having more than two nodes would benefit from named-node semantics.
15:51:47 <CakeProphet> hmmm... here's an idea
15:52:01 <CakeProphet> if you wanted like... an intermediate language
15:52:05 <CakeProphet> that did stuff like named nodes
15:52:09 <Phantom_Hoover> Hmm, yeah.
15:52:13 <CakeProphet> and then a low-level... which was focused on being efficient
15:52:19 <CakeProphet> *is
15:52:30 <Phantom_Hoover> So we have the low-level binary tree language, and a mid-level filesystemy one?
15:52:51 <CakeProphet> ....see
15:53:20 <CakeProphet> 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 <CakeProphet> *concerned
15:53:28 <CakeProphet> my typing is terrible right now.
15:53:33 <Phantom_Hoover> Aww.
15:53:36 <CakeProphet> but...
15:53:41 <CakeProphet> if you don't care about efficiency
15:53:55 <CakeProphet> then yes, that's fine.
15:54:05 <Phantom_Hoover> If we cared much about efficiency we wouldn't be doing trees, would we?
15:54:12 <CakeProphet> ha, I suppose
15:54:16 <CakeProphet> what I would do
15:54:20 <CakeProphet> is have the low-level interface tree-less
15:54:31 <CakeProphet> so you don't have to do tree-lookups all the time with static information
15:54:40 <Phantom_Hoover> Since it's going to work with an ungodly amount of mallocing and referencing.
15:54:58 <CakeProphet> pools!
15:55:47 <CakeProphet> malloc a fixed amount of objects, and acquire/recycle them.
15:55:56 <CakeProphet> to limit malloc/free calls.
15:56:07 <Phantom_Hoover> Yes, indeed.
15:56:40 <CakeProphet> if I were going with efficiency I'd have registers as well.
15:57:06 <Phantom_Hoover> But I don't really see how you can easily implement variable-child trees,
15:57:13 <CakeProphet> magic.
15:57:15 <CakeProphet> ...
15:57:23 <CakeProphet> well... it depends.
15:57:32 <Phantom_Hoover> I prefer the intermediate code idea.
15:57:57 <Phantom_Hoover> (Also, given modern computer speeds it's not really going to be a noticeable slowdown)
15:58:08 <CakeProphet> psh
15:58:20 <CakeProphet> well
15:58:37 <CakeProphet> because the low-level representation is inefficient
15:58:39 <CakeProphet> then.... oh well.
15:58:41 <CakeProphet> :P
15:58:51 <CakeProphet> they can go make their own and conquer the world more.
16:00:21 <CakeProphet> ...hmmmmm
16:00:22 <CakeProphet> you know
16:00:29 <Phantom_Hoover> Oldest joke ever.
16:00:31 <Phantom_Hoover> Anyway.
16:00:33 <CakeProphet> 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 <Phantom_Hoover> Making nodes enumerable seems worthwhile.
16:01:00 <CakeProphet> indeed
16:01:19 <Phantom_Hoover> I think a 16-bit integer should be enough for sane addressing.
16:01:42 <CakeProphet> maybe use tree nodes as your reference semantics... but then for data
16:01:43 <Phantom_Hoover> Make the first few bits say to what depth, and then the rest specify the path taken.
16:01:46 <CakeProphet> instead of referencing data
16:01:48 <CakeProphet> use a union
16:01:55 <CakeProphet> since they'll be a fixed number of types.
16:02:01 <CakeProphet> int, bool, float, double, etc
16:02:07 <CakeProphet> value types.
16:02:23 <Phantom_Hoover> Remind me, what are unions?
16:02:40 <CakeProphet> unions represent a combination of multiple types
16:02:46 <CakeProphet> the size of a union is the size of the largest nested type
16:03:01 <Phantom_Hoover> OK, so if you have a char and an int?
16:03:03 <CakeProphet> you can read/write to a union type with any of the nested types
16:03:15 <Phantom_Hoover> Then does the char represent the first byte of the int?
16:03:33 <CakeProphet> yeah.
16:03:34 -!- augur has quit (Read error: Connection reset by peer).
16:03:36 <CakeProphet> sort of.
16:03:38 <CakeProphet> like
16:03:40 <jamesstanley> 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 <Gregor> That "yeah" isn't a "yeah" :P
16:03:43 <CakeProphet> if you read the union value as a char
16:03:45 <CakeProphet> it'll be the first byte
16:03:54 -!- augur has joined.
16:03:58 <Gregor> "First" as in "whatever my architecture decides to lay out first"
16:04:02 <Gregor> Not "first" in any consistent way.
16:04:06 <Phantom_Hoover> Yes, I know.
16:04:14 <Gregor> And even that first is undefined, as unions can be as wonky as they want really.
16:04:19 <Phantom_Hoover> I needed an example quickly.
16:04:28 <jamesstanley> generally they're fairly sane but portable code shouldn't rely on the layout of a union
16:04:30 <CakeProphet> ...is unions a bad idea? :P
16:04:36 -!- hiato has joined.
16:04:46 <Gregor> unions are perfectly OK so long as you use them properly.
16:04:56 <jamesstanley> 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 <jamesstanley> (like what they're meant for)
16:05:32 <CakeProphet> Phantom_Hoover: union value_type { char character; int integer; bool boolean; float decimal;}
16:05:36 <CakeProphet> ;
16:05:58 <CakeProphet> it's like a struct
16:06:04 <jamesstanley> not really
16:06:05 <CakeProphet> but instead of setting the memory contents
16:06:06 <jamesstanley> apart from the syntax
16:06:09 <CakeProphet> side by side
16:06:13 <CakeProphet> all members take up the same place in memory
16:06:21 <jamesstanley> CakeProphet: not necessarily but normally yes
16:06:32 -!- fishes has quit (Ping timeout: 276 seconds).
16:06:41 <jamesstanley> in fact i don't know of a single implementation that doens't so it's safe to assume so
16:07:00 <Deewiant> Implementing a union as a struct is probably valid
16:07:13 <Phantom_Hoover> Wait, so is that how the data in the node is represented?
16:07:14 <jamesstanley> #define union struct
16:07:18 <jamesstanley> and nobody is any the wiser!
16:07:58 <CakeProphet> Phantom_Hoover: a union is a new kind of type. So you'd have variables of type union value_type
16:08:04 <CakeProphet> and then
16:08:09 <CakeProphet> union value_type x;
16:08:11 <CakeProphet> x.character
16:08:18 <CakeProphet> would access the union as a character... essentially.
16:08:20 <Phantom_Hoover> Ah, right.
16:08:30 <Phantom_Hoover> OK, so how does the language use this?
16:08:46 <Phantom_Hoover> i.e. how does it decide which type it wants?
16:08:52 <jamesstanley> you specify
16:08:54 <CakeProphet> 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 <CakeProphet> and yes.
16:09:12 <CakeProphet> you choose which field to use
16:09:14 <Phantom_Hoover> No, I mean the tree language.
16:09:19 <CakeProphet> oh... uh.
16:09:32 <CakeProphet> hmmm, dunno. But I assume you'd only want value types as nodes
16:09:32 <jamesstanley> 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 <Phantom_Hoover> Yes, I got that.
16:09:49 <CakeProphet> because the tree could be used to describe any kind of data structure.
16:09:55 <CakeProphet> er... reference type structure
16:09:56 <CakeProphet> that is.
16:11:30 <CakeProphet> I guess the language could just set nodes
16:11:43 <Phantom_Hoover> Wait, why bother making the VM deal with types?
16:11:44 <CakeProphet> the union just gives you weakly typed values.
16:12:02 <CakeProphet> Phantom_Hoover: it doesn't need to... but you'll want unions for sure then
16:12:02 <Phantom_Hoover> Just make each node hold, say, 4 bytes and make the low-level code deal with it.
16:12:25 <CakeProphet> hmmm... that's a possibility. That's essentially what unions do in most cases anyways.
16:12:28 <Phantom_Hoover> Basically as assembly does.
16:12:58 <CakeProphet> hmmm... okay yeah that works.
16:13:19 <CakeProphet> just use C's weak typing semantics
16:13:25 <CakeProphet> to implement weak typing. :P
16:14:39 <Phantom_Hoover> Yep.
16:14:47 <CakeProphet> will you want node-references?
16:14:53 <Phantom_Hoover> Yes.
16:15:09 <Phantom_Hoover> And as I mentioned above they can be implemented fairly elegantly.
16:15:13 <CakeProphet> simple enough to do, as long as the data type is as large as your architectures address range.
16:16:17 <CakeProphet> a possible way to do variable length child lists btw is to make the sizing explicit somewhere
16:16:40 <CakeProphet> the alternative is a linked list.
16:16:53 <CakeProphet> which works for traversal... but not direct indexing.
16:18:51 <CakeProphet> hmmm... I wonder if there's a hash algorithm you could use
16:18:55 -!- Oranjer has joined.
16:19:07 <CakeProphet> to give you O(1) node lookup when referenced by name
16:19:16 <CakeProphet> regardless of absolute or relative naming within the tree structure.
16:19:23 <Phantom_Hoover> I think you can address at least 27 levels of a binary tree with a 4-byte address.
16:19:38 <CakeProphet> well...
16:19:45 <CakeProphet> you could just use hardware-level pointers
16:19:49 <CakeProphet> and pass those around.
16:19:52 <CakeProphet> problem solved, right?
16:20:04 <Phantom_Hoover> And since that represents over 200 million nodes, it seems sufficient.
16:20:20 <Phantom_Hoover> And implementation-level pointers seem inelegant.
16:20:58 <Phantom_Hoover> Consider a 32-bit address, the first 5 bits of which specify the depth to go to.
16:21:14 <Phantom_Hoover> Then the next 27 bits specify the directions along the nodes needed.
16:21:30 <CakeProphet> ...why do that when you can just use pointers? What would be the loss?
16:21:31 -!- softmoon has left (?).
16:22:02 <Phantom_Hoover> Because a parent and child node could have totally different addresses.
16:23:26 <CakeProphet> one solution for variable-children is to have a global hash table
16:23:30 <CakeProphet> and to use /only/ named semantics.
16:23:38 <CakeProphet> which is essentially a superset of enumeration
16:23:41 <CakeProphet> in essence.
16:24:15 <Phantom_Hoover> We can unite these schemes, then.
16:24:20 <Phantom_Hoover> I think.
16:24:25 <CakeProphet> so then the trees don't actually hold the data or pointers to the data... but instead contain hash information
16:24:41 <Phantom_Hoover> If the tree-based address is used as the hash key.
16:24:52 <CakeProphet> yes, if you can ensure no collisions.
16:24:57 <Phantom_Hoover> Hmm...
16:25:24 <Phantom_Hoover> The order of evaluation is going to have to be carefully chosen.
16:25:45 <Phantom_Hoover> Since if you go straight down, you've only got 27 levels.
16:26:08 <CakeProphet> well... just figure out what information uniquely identifies each node.
16:26:12 <CakeProphet> for named nodes
16:26:28 <CakeProphet> it would be a) the name of the node b) the hash value of its parent
16:26:37 <Phantom_Hoover> Actual names seem decadent for the low-level code.
16:26:48 <CakeProphet> possibly.
16:27:09 <Phantom_Hoover> So what if we use my address scheme to specify keys on a hash table?
16:27:31 <Phantom_Hoover> The system will run out of memory long before it runs out of addresses.
16:27:37 <CakeProphet> hmmm...
16:27:42 <CakeProphet> maybe with some revisions
16:27:47 <CakeProphet> but yeah
16:27:48 <Phantom_Hoover> Probably.
16:28:08 <Phantom_Hoover> Particularly since my address scheme has multiple addresses for half the nodes.
16:28:31 <Phantom_Hoover> Indeed, there are 2^27 ways of addressing the root node.
16:28:52 <Phantom_Hoover> How about we make the root node and its immediate children register-like?
16:29:06 <CakeProphet> hmmm... hex?
16:29:14 <CakeProphet> could a hex representation help with hashing?
16:29:54 <Phantom_Hoover> ...How?
16:30:01 <CakeProphet> ...no clue, just brainstorming.
16:30:18 <Phantom_Hoover> I can't see how it would possibly help.
16:30:26 <CakeProphet> guess not.
16:30:32 <Phantom_Hoover> Anyway, how is code represented in the tree?
16:30:49 <CakeProphet> that depends on the code.
16:31:05 <Phantom_Hoover> Like I said, representing it as directly linear won't work.
16:31:06 <CakeProphet> what kind of code we have determines how it would be represented.
16:31:16 <CakeProphet> if its function
16:31:29 <CakeProphet> you could have functions as nodes with their arguments as children.
16:31:44 <CakeProphet> 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 <CakeProphet> so then
16:32:51 <Phantom_Hoover> I'm afraid I shall go mad if I try to work out the depth in them.
16:33:00 <Phantom_Hoover> However, 2 should
16:33:04 <CakeProphet> argument nodes could either be (a) data, in the case of leaves or b) unevaluated functions, in the case of branches)
16:33:08 <Phantom_Hoover> Ignore that.
16:33:13 <CakeProphet> ...which would support lazy evaluation I think.
16:33:21 <Phantom_Hoover> 27 levels should be enough for a lot of LK programs.
16:34:06 <CakeProphet> lazy evaluation would essentially be manipulating unevaluated program expressions as values.
16:34:19 <Phantom_Hoover> 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 <CakeProphet> Phantom_Hoover: yep.
16:34:42 <Phantom_Hoover> Also, mmapping parts of the tree is nice.
16:34:52 <Phantom_Hoover> As is moving whole branches.
16:34:55 <CakeProphet> dunno how mmapping works.
16:35:13 <Phantom_Hoover> It's probably incorrect terminology in this case.
16:35:31 <Phantom_Hoover> I mean making two nodes point to the same data.
16:35:35 <CakeProphet> hmm... the hash idea would be problematic with a stateful tree, actually.
16:35:46 <CakeProphet> if the key is dependent on location.
16:36:10 <CakeProphet> then movement of a branch would invalidate all hash-based references.
16:36:39 <Phantom_Hoover> Can't you make two keys point to the same object?
16:37:03 <CakeProphet> not really.
16:37:09 <CakeProphet> unless you have an array of references
16:37:24 <CakeProphet> then the references can be the same.
16:37:31 <Phantom_Hoover> The hash table contains the machine pointers to the nodes.
16:37:56 <Phantom_Hoover> 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 <Phantom_Hoover> OK, so now the language.
16:42:16 <Phantom_Hoover> 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 <Phantom_Hoover> Aha, lament is growing untrustworthy!
16:44:11 <CakeProphet> Phantom_Hoover: what kind of semantics will be involved in specifying node structure?
16:44:41 <Phantom_Hoover> I don't know.
16:44:46 <CakeProphet> also... when attempting to evaluate data as code... you'll likely want some kind of quote system, like Lisp.
16:45:05 <Phantom_Hoover> Well, not really.
16:45:14 <Phantom_Hoover> More like db in assembly.
16:45:40 <Phantom_Hoover> Also, evaluation order needs to be considered.
16:46:13 <CakeProphet> hmmm... this is where enumeration will come in handy
16:46:15 <CakeProphet> you can do left-right
16:46:31 <Phantom_Hoover> Yes, I thought that.
16:46:34 <CakeProphet> if your nodes are ordered.
16:46:55 <Phantom_Hoover> And they'll have to be ordered for the addressing scheme to work.
16:47:05 <Phantom_Hoover> Indeed, for *anything* to work.
16:47:08 <CakeProphet> so I'd say use arrays for node relationships... the hash table would be for naming.
16:47:44 <Phantom_Hoover> Shouldn't naming be a high-level construct.
16:47:49 <Phantom_Hoover> Aww, I have to go.
16:47:53 <Phantom_Hoover> I'll be back laer.
16:47:53 <CakeProphet> not necessarily.
16:47:56 <CakeProphet> alrighty.
16:47:58 <Phantom_Hoover> s/laer/later/
16:48:14 <CakeProphet> see ya.
16:48:46 <CakeProphet> an additional semantic that I liked was the inclusion of name-only nodes.
16:48:52 <CakeProphet> by prefixing the name with a .
16:49:43 <CakeProphet> so for example... a language that wanted to implement functions
16:49:50 <CakeProphet> could add a .return node to function nodes
16:50:33 <CakeProphet> .return would contain a reference to the calling code
16:51:25 <CakeProphet> 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 <CakeProphet> so the inclusion of a naming scheme that's independent of the enumeration semantics
16:55:25 <CakeProphet> would require low-level representation.
16:55:48 <CakeProphet> one of the points of a VM is to be more semantically abstract than machine level code
16:58:25 <DH____> gtg cya
16:58:27 -!- DH____ has left (?).
17:05:02 <uorygl> 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 <uorygl> 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 <CakeProphet> "sup"
17:06:31 <CakeProphet> ...
17:06:47 <CakeProphet> also, I have no clue.
17:07:24 <CakeProphet> I'd need to see how those other addresses were produced.
17:07:48 <uorygl> That information is simply not available.
17:08:39 <CakeProphet> ...that's quite complicated then.
17:09:13 <CakeProphet> I think you'd need two sets of data
17:09:15 <CakeProphet> like some kind of mask.
17:09:41 <uorygl> 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 <CakeProphet> ah okay... so it's left-to-right
17:10:25 <CakeProphet> so.....
17:10:26 <uorygl> So the goal is to make sure a packet never gets stuck.
17:11:51 <CakeProphet> 01000000 || (01011101 & 11000000)
17:12:01 <uorygl> 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 <CakeProphet> hmmm... okay.
17:12:38 <CakeProphet> so I think you'd have a depth to addresses
17:12:43 <CakeProphet> which is the number of bits they check.
17:12:47 <CakeProphet> from left to right
17:13:00 <CakeProphet> and then produce a mask from that depth
17:13:09 <CakeProphet> (01011101 & 11000000)
17:13:26 <CakeProphet> the right-hand byte is the mask byte for a depth-2 lookup
17:13:50 <CakeProphet> it basically just clears out all the extraneous bits for the purpose of determining which router we should route to.
17:14:09 <CakeProphet> that bitwise will give us 01000000
17:14:18 <CakeProphet> and so looking for 01
17:14:24 <CakeProphet> is the same as looking for 01000000
17:14:36 <CakeProphet> which will just be & I think
17:14:41 <CakeProphet> ...er.
17:14:43 <CakeProphet> maybe not.
17:15:28 <CakeProphet> that would just be == :P
17:16:04 <CakeProphet> so you'd have 10000000 11000000 11100000 11110000...
17:16:20 <CakeProphet> for different depth sizes
17:16:24 <CakeProphet> ....is this making any sense?
17:19:10 <CakeProphet> uorygl: maybe... bitwise AND?
17:19:28 <CakeProphet> the address could be the bitwise AND of all the routers it routes to.
17:19:45 <CakeProphet> since the semantics for routing are left-to-right, it would cover any overlaps.
17:21:16 <CakeProphet> so if something wants to ask "does router C with address 00101010 map to router B with address 00100010 "
17:23:16 <CakeProphet> you would essentially start at the left
17:23:36 <CakeProphet> and find a bit in C that's on at the same place as in B
17:23:57 <CakeProphet> if there is one... chop it out of the search bit
17:24:09 <CakeProphet> and pass it along
17:25:21 <CakeProphet> so the first 1 to be found going left-to-right that those two bit patterns have in common is 0010
17:25:51 <CakeProphet> so you'd take 00100000
17:25:54 <CakeProphet> negate it
17:26:01 <CakeProphet> and with address B
17:26:12 <CakeProphet> and that would give you 00000010
17:26:25 <CakeProphet> which is the query we want to pass along to all of the routers routed by C
17:26:37 <CakeProphet> C will then ask "hey do you guys route to 00000010?"
17:26:43 <CakeProphet> and they'll perform the same procedure.
17:27:05 <CakeProphet> until you get 00000000
17:27:23 <CakeProphet> which I guess is like "localhost"
17:31:51 <CakeProphet> in any case it would be a lot of bitwise hackery
17:41:16 <CakeProphet> hmmm... for a tree-hash algorithm
17:41:21 <CakeProphet> if it's a binary tree
17:41:30 <CakeProphet> then you can just have the bits reflect which branch you're talking about
17:41:51 <CakeProphet> you start at root... the first bit tells you which branch you go to
17:42:02 <CakeProphet> second tells you the second branch to goto, etc.
17:43:01 <CakeProphet> that would give you a depth of 32.
17:43:09 <CakeProphet> for a 32-bit address.
17:43:35 <CakeProphet> you could actually perform movement within the tree with bitwise operations only.
17:43:42 <CakeProphet> at least in the low-level implementation.
17:44:57 <CakeProphet> so the lower-level language would have instructions for setting/operating a register that controls current tree location.
17:47:40 <CakeProphet> well no, the addressing would be a little more complicated than that
17:47:43 <CakeProphet> but that's the basic idea.
18:06:34 <uorygl> 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 <CakeProphet> I meant OR actually.
18:10:35 <uorygl> Then a single 255 will spread throughout the entire network. :)
18:11:13 <CakeProphet> ...that's why there needs to be a mask somewhere.
18:11:16 <AnMaster> 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 <uorygl> Right. I'm afraid I don't understand you fully, then.
18:11:35 <AnMaster> it seems gcc generates different code for not having a default: vs. having "default: break;"
18:11:42 <AnMaster> that makes no sense to me
18:12:33 <CakeProphet> don't know.
18:14:38 <AnMaster> it should make no diff according the C99...
18:14:39 <AnMaster> huh
18:15:39 <AnMaster> (§6.8.4.2, paragraph 5)
18:16:15 <CakeProphet> 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 <CakeProphet> what could fill in the blanks there for "information given elsewhere" and "something that can be bitwised"
18:35:35 <AnMaster> 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 <AnMaster> 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 <AnMaster> (with HDR it would be even more raw data than "just" 728 MB of course!)
18:38:49 <AnMaster> fizzie, at least zoom it is a much more manageable 11 images
18:38:53 <AnMaster> for one rotation
18:39:54 <AnMaster> hm fizzie seems away but isn't marked /away
18:40:38 <uorygl> I'm away a majority of the time but I'm rarely marked as such.
18:40:41 <uorygl> I think.
18:41:19 <AnMaster> impractical for others
18:48:15 -!- Gracenotes has joined.
18:49:41 <CakeProphet> GRACENOTES IS SILLY
18:51:26 * Gracenotes creates several screenfuls worth of dadaist user page
19:13:52 <AnMaster> CakeProphet, why?
19:14:23 <CakeProphet> ...
19:14:31 <CakeProphet> :)
19:44:41 <fizzie> 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 <fizzie> (I was picking up the cat from its temporary place.)
19:52:33 -!- zzo38 has joined.
20:32:25 <AnMaster> fizzie, anyway, yay I managed to make a reliable rotation function
20:32:27 <AnMaster> that took a while
20:32:58 <AnMaster> since it likes to start at 0xffff instead of 0x0
20:33:02 <AnMaster> for some weird reason
20:33:17 <AnMaster> so I had to handle overflow when rotating
20:33:54 <AnMaster> but now it can move reliably in multiples of (360/111.66666) degrees!
20:34:05 <AnMaster> (yeah weird number, but I blame crappy gears)
20:35:26 <fizzie> 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 <AnMaster> err
20:37:51 <AnMaster> I don't think I seen it before
20:38:26 <fizzie> It's a custom-built thing, not a mindstorms thing. But still.
20:39:23 <AnMaster> iirc "ultimate builders set" lego mindstorms ad-on set had some plotter thing
20:39:27 <AnMaster> think I built it even
20:39:33 <AnMaster> low precision though
20:40:19 <AnMaster> fizzie, it used pneumatics for the pen so fairly slow speed. I mean, much slower than that video
20:40:29 <AnMaster> fizzie, also yeah the cups driver was a nice touch
20:40:41 <AnMaster> the lego one had no such bit
20:40:46 <AnMaster> just RCX-controlled
20:40:52 <fizzie> The comments refer to http://bricker.ru/images/sets/1092_brickset.jpg
20:42:15 -!- MigoMipo has joined.
20:42:31 <AnMaster> fizzie, also that printer head causes some serious swaying of the whole thing
20:42:35 <AnMaster> would reduce precision
20:43:12 <AnMaster> fizzie, ah, hm http://www.peeron.com/inv/sets/1092-1
20:43:18 <AnMaster> yeah that explains the old style motor
20:43:37 <fizzie> "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 <fizzie> (From the poster.)
20:44:52 <AnMaster> fizzie, I do get the point of those mini figures at the control panels
20:44:57 <AnMaster> but the horse?
20:44:58 <AnMaster> huh
20:45:05 <AnMaster> same goes for the palm tree
20:45:37 <fizzie> Yes, I don't know what's up with that.
20:45:43 <fizzie> The poster seems to have a thing about horses.
20:45:48 <AnMaster> fizzie, also, I can only spot one motor
20:45:54 <AnMaster> fizzie, I can't find the second one
20:45:58 <AnMaster> and you would need at least two
20:46:04 <fizzie> I haven't looked at it so closely.
20:46:20 <zzo38> 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 <AnMaster> 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 <AnMaster> ah found the other one
20:47:04 <AnMaster> right
20:47:12 <zzo38> 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 <fizzie> That depends a lot on how large a network it is.
20:47:41 <zzo38> Just one node
20:47:49 <zzo38> (so far)
20:47:49 <fizzie> Probably not a lot, then.
20:48:15 <AnMaster> fizzie, also I want to see the sensor setup
20:48:23 <AnMaster> doesn't seem to be standard lego sensors
20:48:26 <zzo38> I had to completely reinstall Cygwin for it to work
20:48:36 <AnMaster> because there is no way it could keep position that well without good sensors
20:48:43 <AnMaster> lego gears have way too much slippage
20:48:48 <fizzie> AnMaster: "FAQ: Does this use mindstorms? Nope, wiring demo board + homemade analog electronics and sensors."
20:49:10 <fizzie> 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 <fizzie> 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 <AnMaster> nice
20:50:09 <zzo38> What exactlly is it you are making with the lego now?
20:50:12 <fizzie> And "FAQ: Open source, schematics etc? Yes, I'll try to get around to this soon."
20:50:29 <AnMaster> zzo38, me? an automated panorama taker
20:50:38 <fizzie> Me? Nothing.
20:50:39 <AnMaster> it uses mindstorms (RCX, not the new NXT, don't have that)
20:50:50 <zzo38> OK
20:50:57 <AnMaster> fizzie, "FAQ: Wrote your own driver? Yes, how sad is that!!"
20:50:59 <AnMaster> wonderful :)
20:51:25 <zzo38> Did you know, there is a Forth for Lego systems
20:51:34 <AnMaster> zzo38, I know about pbForth yes
20:51:42 <AnMaster> but I'm using BrickOS and C here
20:52:03 <zzo38> C would probably be faster anyways
20:52:12 <zzo38> But Forth is almost as fast as C
20:52:15 <AnMaster> zzo38, well, I'm doing rather embedded C...
20:52:36 <zzo38> Still, C is generally faster
20:52:38 <AnMaster> zzo38, an example is: http://sprunge.us/QXMB
20:52:45 <AnMaster> fizzie, you might want to see that too
20:52:49 <AnMaster> nice busy loop on CPU :)
20:53:20 <AnMaster> 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 <AnMaster> 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 <AnMaster> with quite good reasons
20:54:34 -!- ws has joined.
20:54:40 <AnMaster> the interrupts caused quite a bit of overhead
20:54:45 <AnMaster> ais523, hi
20:55:14 <zzo38> Now I can just use "sprunge QXMB", sprunge pastebin really is very better than the other one, I think
20:55:43 <AnMaster> zzo38, what? did you add an alias in your browser or such?
20:55:50 <zzo38> No, command-line
20:56:04 <AnMaster> zzo38, sprunge for me pastes to it, not views paste on it...
20:56:15 <zzo38> I type "sprunge QXMB" at the command-line and it put output to stdout
20:56:20 <AnMaster> I see
20:56:25 <AnMaster> zzo38, and how do you paste to it?
20:56:33 <zzo38> For me, I wrote my own script. "sprunge" without a argument pastes to it, with a argument views it
20:56:42 <AnMaster> zzo38, and to paste a file to it?
20:56:51 <zzo38> Just type "sprunge < file.txt"
20:56:58 <ais523> hi AnMaster
20:57:32 <zzo38> It is written using NT command script, but a similar way could be done in UNIX
20:57:57 <AnMaster> zzo38, whole current source is http://sprunge.us/ffMD
20:58:30 <AnMaster> 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 <AnMaster> zzo38, sure, I use a sprunge() { curl -F 'sprunge=<-' http://sprunge.us; } simply
20:59:05 <AnMaster> then I can redirect input to it
20:59:07 <AnMaster> like:
20:59:10 <AnMaster> sprunge < panobot.c
20:59:16 <AnMaster> or:
20:59:20 <AnMaster> foo | sprunge
20:59:37 <AnMaster> zzo38, I don't need a viewing script for it
20:59:41 <AnMaster> but sure, would be trivial
20:59:58 <AnMaster> just:
21:00:01 <AnMaster> curl http://sprunge.us/ffMD
21:00:15 <AnMaster> so yeah making the shell function do that would be trivial
21:00:22 -!- alise has joined.
21:00:25 <AnMaster> (I don't even have it as a script, just a shell function)
21:00:27 <AnMaster> alise, hi!
21:00:51 <alise> Hello.
21:01:25 <AnMaster> building wise the only thing that remains on my panoramic head is the shutter trigger
21:01:39 <AnMaster> I wonder how feasible it would be to trigger it electronically using the remote shutter thingy
21:01:45 <AnMaster> I don't think I have the required stuff
21:01:55 <AnMaster> to build a controlling circuit
21:02:14 <AnMaster> and I don't know the wiring
21:02:18 <AnMaster> it has 3 pins
21:02:39 <AnMaster> so mechanical trigger it is
21:03:36 <AnMaster> the question remains: how
21:04:30 <AnMaster> and I think the light sensor needs some adjustment to work well
21:04:31 <alise> It is criminal that these weekends are so short.
21:05:13 <alise> 00:55:34 <Phantom_Hoover> Wow, Eliezer Yudkowsky is very odd.
21:05:14 <alise> 00:56:59 <Phantom_Hoover> Apparently not signing your children up for cryonics makes you a bad person.
21:05:14 <alise> 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 <alise> 00:59:27 <Phantom_Hoover> OTOH, my philosophy makes cryonics pointless, so...
21:05:26 <alise> "My Philosophy" is almost as irritating a phrase as "My GIRLFRIEND".
21:05:44 <ais523> why the allcaps?
21:05:56 <alise> Because that's how "my girlfriend" is pronounced in my internal vocalising system.
21:06:00 <ais523> ah
21:06:00 <alise> 01:30:02 <Phantom_Hoover> lament: Doesn't cryonics work by freezing you after you die?
21:06:00 <alise> That's supposing ~(cryonics works) to prove ~(cryonics works).
21:06:10 <AnMaster> alise, aren't you going to move abroad?
21:06:26 <ais523> AnMaster: don't encourage her...
21:06:29 <alise> 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 <AnMaster> ais523, ?
21:06:41 <alise> It used to be "when your heart stopped".
21:06:47 <alise> ais523: Don't encourage me to what, and why?
21:07:04 <ais523> hmm, I'm not sure actually
21:07:10 <AnMaster> XD
21:07:15 <ais523> there was a pronoun discussion in another channel, so I was more hoping reaction to that
21:07:37 <alise> 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 <ais523> heh
21:08:04 <AnMaster> (let (how 'penumatic))
21:08:08 <AnMaster> okay that works
21:08:12 <AnMaster> modulo spelling
21:08:22 <AnMaster> suboptimal but works
21:08:45 <alise> ais523: I don't suppose you have any eso solutions to my problem?
21:09:13 <ais523> to which problem? the one that we mostly only talk about in private? no
21:09:32 <ais523> I did invent a new esolang in my head a few nights ago, though
21:09:39 <ais523> no name yet, no real fixed syntax, just semantics
21:09:43 <alise> I has liek a private network of informational dissemination
21:09:53 <alise> Actually this ircd really needs to support /query a,b,c.
21:09:53 <zzo38> ais523: How does it work?
21:10:01 <alise> It'd be very useful for ad-hoc privacy.
21:10:10 <zzo38> What is /query a,b,c
21:10:13 <ais523> basically, there are a finite number of variables, chosen by the person writing the program
21:10:17 <ais523> each is a rational number
21:10:25 <ais523> zzo38: query/privmsg with more than two people
21:10:27 <alise> zzo38: you can do "PRIVMSG a,b,c :poop" in the IRC RFC protocols
21:10:29 <ais523> but Freenode blocks it
21:10:32 <alise> to send a message to a, b, and c
21:10:39 <alise> ais523: say, does the message indicate the other recipients?
21:10:43 <ais523> each variable stores an unbounded rational number, and is initialised to 1
21:10:44 <alise> it should do, so that it operates as an ad-hoc channel
21:10:49 <ais523> alise: I think so, probably at the start of the line
21:10:58 <alise> ais523: How?
21:11:01 <alise> That's just the hostname.
21:11:15 <ais523> as in, :hostname.whatever PRIVMSG a,b,c :poop
21:11:17 <ais523> is what I'd expect
21:11:27 <alise> ah
21:11:37 <ais523> might be rather long though
21:11:42 -!- augur has quit (Remote host closed the connection).
21:11:54 <ais523> the program is full of statements like a = b + c and f = g / h
21:11:57 <zzo38> ?
21:12:07 <ais523> basically, assigning the result of an arithmetic operation to a variable
21:12:08 <alise> ais523: ok, so currently that just sounds like rational arithmetic.
21:12:10 <zzo38> OK
21:12:15 <alise> ais523: although really -- don't you want a*b and ^-1?
21:12:21 <ais523> no I don't
21:12:26 <alise> ais523: whysoever not?
21:12:40 <ais523> well, + - * / are what exist
21:12:45 <alise> 02:17:15 <Phantom_Hoover> And Ruby is implemented in C? [...] 02:17:35 <Phantom_Hoover> THEN IT'S NOT TC.
21:12:51 <ais523> I'm not sure yet if you're allowed to use constants rather than variables
21:12:55 <alise> no, it's just that MRI isn't actually a Ruby implementation
21:13:04 <alise> ais523: you don't need full - and /...
21:13:07 <alise> just infix - and ^-1
21:13:08 <ais523> now, the eso part: the program runs statements at random
21:13:17 <alise> ais523: TARPIT IT GRRRR
21:13:24 <ais523> as in, each time it runs a statement, it picks a random statement and runs it
21:13:30 <ais523> the program terminates if it tries to do a division by 0
21:13:35 <ais523> question: is this TC?
21:13:47 <ais523> it's not obvious either way, I've been thinking about it for a while
21:13:50 <zzo38> I have made a esolang where dividing by zero is the only form of flow control
21:14:13 <ais523> (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 <AnMaster> ais523, can it do deterministic computation at all?
21:14:28 <zzo38> ais523: I don't know if it is TC?
21:14:36 <zzo38> Perhaps post it on the wiki, and then we can see
21:14:43 <ais523> AnMaster: I think so, if you use enough variables; but I'm not sure if it can do /useful/ deterministic computation
21:14:52 <ais523> I need to work out syntax and a name before I post it on the wiki...
21:14:58 <AnMaster> ais523, how do you mean with enough variables?
21:15:18 <ais523> AnMaster: well, suppose you want to calculate a + b + c + d
21:15:21 <AnMaster> ais523, well apart from the degenerate case of only one expression
21:15:29 <AnMaster> ais523, ah okay, order is irrelevant there
21:15:34 <ais523> if you use temp variables, as in e = a + b; f = e + c; g + c + d
21:15:55 <AnMaster> ais523, only two variables and one operator per assignment?
21:16:01 <ais523> 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 <ais523> at all times
21:16:05 <ais523> AnMaster: that's it
21:16:06 <alise> 02:37:21 <PH______________> (set-weight neuron output (+ (car range) (random (coerce (- (car range) (cdr range)) 'double-float)))))
21:16:11 <alise> set-weight --> setf (weight neuron)
21:16:16 <alise> lern2lithp
21:16:29 <ais523> how do you know set-weight isn't a macro that does that?
21:16:29 <alise> ais523: If it's TC, then randomness shouldn't matter.
21:16:36 <alise> ais523: Also, no, you define setf macros.
21:16:39 <alise> They can do anything.
21:16:48 <alise> Anything that sets should be (setf (some-relevant-accessor x) ...).
21:16:56 <alise> It's Lisp good-practice.
21:17:01 <ais523> 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 <alise> ais523: well, no, because you could just by chance get 1,2,3,... out of a randomness generator every time
21:17:35 <zzo38> There is the esolang where it is not TC, but there is a command that makes it TC
21:17:42 <zzo38> Or at least that is what it says.
21:17:43 <alise> so if it's actually tc it has to work with every "random" result
21:17:47 <alise> thus the randomness is irrelevant
21:17:49 <alise> zzo38: oerjan's thing yeah?
21:17:52 <alise> HQ9+ extension
21:17:58 <zzo38> alise: Yes, I mean that.
21:18:05 <AnMaster> ais523, does it remove computed statements?
21:18:19 <alise> AnMaster: no
21:18:24 <ais523> AnMaster: ?
21:18:25 <AnMaster> okay
21:18:29 <ais523> alise: yep, agreed
21:18:29 <alise> ais523: I am pretty sure your thing doesn't have loops of any sort.
21:18:35 <zzo38> 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 <ais523> alise: statements can run more than once
21:18:49 <ais523> each time it picks a random statement, regardless of whether it's run before or not
21:18:59 <ais523> so from another point of view, it has loops everywhere
21:19:14 <alise> 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 <alise> (Two-dimensional line numbers? (a,b) PRINT ...)
21:19:30 <ais523> alise: I don't understand
21:19:32 <alise> *a/b I gues
21:19:33 <AnMaster> ais523, how would you make it divide by zero only when things are done?
21:19:33 <alise> *guess
21:19:38 <alise> ais523: well
21:19:39 <ais523> there is a jump somewhere randomly all the time
21:19:46 <alise> a = b / 0
21:19:48 <alise> say a is 1/2
21:19:54 <alise> whatever that means
21:19:54 <ais523> alise: only set the variable in the denominator to 0 when you detect that things are done
21:19:58 <AnMaster> ais523, I could see how if you had some logical operator, like == or such
21:19:59 <ais523> alise: I don't get the notion of "Jump" here
21:20:07 <alise> ais523: "execute 1/2 as next line, not random()"
21:20:11 <ais523> AnMaster: you can compare numbers with a 0/non-0 result using -
21:20:14 <alise> figure out twod line numbers yourself :P
21:20:16 <ais523> alise: that would defeat the whole point of the language
21:20:22 <alise> maybe floor(1 / 2)
21:20:22 <AnMaster> ais523, hm true
21:20:28 <alise> *floor(1/2)
21:20:32 <ais523> executing random() is clearly enough for repetition of some sort
21:21:20 <AnMaster> 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 <AnMaster> maybe
21:21:57 <AnMaster> s/repeats/repeats in loops/
21:22:01 <AnMaster> that solves the issue alise is pointing at I think
21:22:01 <ais523> AnMaster: it wouldn't be an RNG otherwise
21:22:08 <ais523> we're assuming a mathematically perfect RNG
21:22:18 <ais523> although /dev/urandom would probably be good enough
21:22:19 <alise> ais523: a mathematically perfect RNG would repeat itself, I think...
21:22:23 <alise> ais523: or at least could
21:22:25 <AnMaster> ais523, well then 1,2,3,1,2,3,... is not an issue?
21:22:27 <ais523> alise: yes, but not forever
21:22:33 <alise> ais523: or are we talking 0 to /infinity/ RNG?
21:22:35 <ais523> well, with probability 1
21:22:42 <alise> which I am not even sure makes sense
21:22:46 <alise> can you select a completely random natural?
21:22:46 -!- tombom has quit (Read error: Connection reset by peer).
21:22:50 <ais523> alise: 0 to the number of statements in the program
21:22:54 <ais523> as in, you run a random statement each time
21:22:57 <ais523> that isn't 0 to infinity
21:22:57 <alise> such that you're distributed fairly over the naturals?!
21:22:58 -!- tombom has joined.
21:23:04 <ais523> but you call the RNG an infinite number of times
21:23:07 <ais523> or until the program terminates
21:23:11 <ais523> to get the next statement each tiem
21:23:12 <ais523> *time
21:23:41 <zzo38> Perhaps zero to infinity RNG is sensible if you have to use p-adic numbers?
21:24:11 <zzo38> But even then, it isn't perfect, because ....11111 can just as well represent negative one
21:24:15 <zzo38> Which is less than zero
21:24:38 <AnMaster> zzo38, what?
21:25:32 <zzo38> And .....01010101010101 can represent negative one third
21:25:51 <zzo38> (Try multiplying by three and adding one and you will see that the answer is zero)
21:25:57 <AnMaster> zzo38, why would we need negative numbers here at all
21:26:11 <zzo38> In case you subtract, I suppose?
21:26:25 <AnMaster> zzo38, not needed for statement selection?
21:27:22 <zzo38> I suppose so.
21:27:50 <zzo38> 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 <zzo38> 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 <zzo38> 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 <zzo38> Can SUMMON be enabled?
21:39:15 <fizzie> No, it would be then too easy to SUMMON CTHULHU by accident.
21:40:31 <zzo38> I don't care about that
21:40:34 <zzo38> Can USERS be enabled?
21:41:16 <zzo38> In ngIRCd it seems SUMMON is always disabled, although it does understand that command
21:41:21 <zzo38> But it cannot be enabled
21:44:40 <zzo38> 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 <zzo38> 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 <zzo38> Now I just should implement SIRCL format for channel log and then it should be working
21:51:11 <zzo38> And then I can set the router
22:01:04 <alise> abc
22:07:12 <alise> The pik of the hq is absent.
22:09:03 -!- Phantom_Hoover has joined.
22:09:10 <Phantom_Hoover> CakeProphet, back.
22:09:33 <oerjan> as prophesied
22:12:46 <Phantom_Hoover> It occurs to me that most esolang interpreters are really VMS.
22:12:53 <Phantom_Hoover> s/VMS/VMs/
22:13:19 <Phantom_Hoover> Since they tend to have nothing to do with the underlying system.
22:13:40 -!- relet has joined.
22:14:50 <oerjan> but not HQ9+. the + character clearly should increment the underlying system's accumulator.
22:15:12 <oerjan> otherwise it has simply not been implemented correctly.
22:15:31 <oerjan> this might of course pose a problem in systems that have no accumulator.
22:15:41 <Phantom_Hoover> Unless the implementation is optimising and strips out unnecessary instructions.
22:16:01 <Phantom_Hoover> OK, so the tree VM.
22:16:35 <Phantom_Hoover> It occurred to me that my addressing scheme needs different instructions for equality,
22:17:26 <Phantom_Hoover> Since 00000.* always refers to the root node, and so on.
22:17:44 <Phantom_Hoover> So a PCMP instruction would probably be helpful.
22:19:25 <ais523> oerjan: my Thutu implementation of HQ9+ uses its own emulated accumulator
22:19:38 <ais523> because it's too abstracted to know if there's an underlying accumulator or not
22:20:08 <oerjan> well it's not HQ9+
22:20:23 <Phantom_Hoover> What is "the accumulator"?
22:20:31 <Phantom_Hoover> In x86, for instance.
22:20:35 <Phantom_Hoover> eax?
22:20:43 <oerjan> '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 <alise> eax is the accumulator
22:27:44 <oerjan> eaxcellent!
22:29:23 <Phantom_Hoover> alise is here?
22:29:33 <alise> It is Friday, is it not?
22:29:43 <alise> 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 <Phantom_Hoover> OK. Read the logs and comment on the tree-based VM idea.
22:30:02 <oerjan> Phantom_Hoover: there is no alise, it's just a talking weather balloon. or maybe a talking venus.
22:30:48 <alise> Weather balloon.
22:30:54 <alise> Phantom_Hoover: No; I demand distilled information!
22:30:59 <alise> (Or at least log links.)
22:31:07 <Phantom_Hoover> Today's log.
22:31:24 <Phantom_Hoover> The basic idea was to have a global tree in which code and data are stored.
22:31:38 <oerjan> ais523: oh btw you forgot to delete Talk:Joke languages
22:31:54 <oerjan> *Category talk:Joke languages
22:32:12 <ais523> ok, thanks
22:32:29 <ais523> not sure how I missed that one
22:32:37 <alise> Why delete that category?
22:32:47 <alise> I hereby register my disagreement.
22:32:51 <oerjan> also Category:Algorithmic information theory
22:33:04 <alise> Delete that one, yes.
22:33:06 <Phantom_Hoover> alise, the talk page.
22:33:10 <oerjan> alise: um the talk page, which was spam
22:33:16 <alise> Ah.
22:33:26 <alise> Algorithmic information theory shouldn't be a category.
22:33:30 <alise> Only John Tromp uses it.
22:33:49 <oerjan> oh hm it actually has an article
22:33:56 <ais523> oerjan: deleted and semisalted
22:34:08 <Phantom_Hoover> alise, you have failed to read the proposition.
22:34:16 <Phantom_Hoover> I am disappointed.
22:34:48 <alise> I'm merely supporting it even more strongly.
22:34:58 <Sgeo> It's an alise
22:34:58 <alise> Anyway suck my Dijkstra. (I will henceforth use this insult forevermore.)
22:35:01 <Phantom_Hoover> Also, I thought you might like http://en.wikipedia.org/wiki/Talk:Lambda_calculus#Proposed_criticism_of_lambda_calculus
22:35:04 <Sgeo> alise: I've come to hate LambdaMOO
22:35:14 <alise> Why?
22:35:47 <Sgeo> 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 <alise> lol @ http://en.wikipedia.org/wiki/Talk:Lambda_calculus#Proposed_criticism_of_lambda_calculus
22:36:01 <alise> 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 <Phantom_Hoover> I really hope it's a joke.
22:36:08 <Sgeo> Seems like more of a "Don't bother RTFM, just ask us"
22:36:09 <alise> but then, earlier:
22:36:10 <alise> Wikipedia user Wikid77 is an American computer scientist, world traveller, and wiki-inventor.
22:36:17 <alise> fucking pretentious fuckwit kid ARH
22:36:18 <alise> *ARGH
22:36:20 <alise> burn with fire
22:36:31 <alise> what is it with SUPER SMRT kids and being... like that
22:36:33 <Phantom_Hoover> Don't read the TV Tropes Troper Tales pages for Mary Sue.
22:36:35 <alise> I'm not like that am I?
22:36:41 <Sgeo> Wouldn't a computer scientist actually appreciate lambda calculus?
22:36:48 <Phantom_Hoover> Or Genius Bruiser.
22:36:58 <Phantom_Hoover> It's as bad as it sounds.
22:37:03 <Sgeo> alise, I'm considered super-smart relative to the other computer students at my school, mostly
22:37:07 <Sgeo> At least, I think
22:37:44 <Phantom_Hoover> Compared to my fellow computing students I am Donald Knuth.
22:37:49 <Phantom_Hoover> And I'm not all that good.
22:38:27 <alise> IRC user Elliott Hird is a British computer scientist, mathematician, philosopher and typographer.
22:38:33 <alise> *is a renowned British
22:40:03 <alise> 05:05:56 <AnMaster> (sorry for slow reply, had to clean my glasses due to small accident there)
22:40:06 <alise> We did not need that information.
22:40:19 <alise> 05:10:47 <AnMaster> fungot uses SOCK and a few other ones for example
22:40:19 <alise> Please don't tell us what you use. This has gone too far.
22:40:20 <fungot> 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 <Phantom_Hoover> 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 <Phantom_Hoover> Wow!
22:40:39 <alise> The "Other" region of the US.
22:41:03 <Sgeo> Non-continental US?
22:41:13 <Sgeo> Erm, that doesn't technically describe Alaska, does it
22:41:14 <Phantom_Hoover> Hawaii?
22:41:27 <Sgeo> Non-contiguous?
22:41:28 <alise> 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 <alise> Information scientist and world traveller.
22:42:12 <alise> 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 <Phantom_Hoover> 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 <alise> ASHDFGHHK
22:42:23 <Phantom_Hoover> He reminds me of Lumenos.
22:42:24 <alise> "This user lives in Texas."
22:42:26 <alise> oh I can stop reading now
22:42:28 <Phantom_Hoover> Although not as insane.
22:42:38 <alise> Phantom_Hoover: real machines that do functional programming on a low level exist
22:42:47 <Phantom_Hoover> http://lumeniki.referata.com/wiki/Main_Page
22:42:53 <Phantom_Hoover> A tribute to insanity.
22:43:09 <Phantom_Hoover> Why do you have to spoil my fun?
22:43:21 <Sgeo> alise, I'm thinking of making a gaming computer
22:43:30 <alise> Phantom_Hoover: wow, that wiki is like a cross-referenced masturbation video.
22:43:44 <alise> 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 <Phantom_Hoover> You didn't have to deal with him for about a month.
22:43:54 <ais523> alise: is that a good thing?
22:43:59 <Phantom_Hoover> I have no idea why I did it.
22:44:05 <alise> ais523: no.
22:44:15 <Sgeo> On Intel's website: "How many programs will you run at once?" The max option: 4+
22:44:18 <alise> Lumenism is a system for discovering and organizing information particularly on controversial topics. Here's how:
22:44:18 <alise> 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 <alise> Clarifying terminology using neologisms.
22:44:18 <alise> 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 <alise> er (knowledge lover) like Lumenos.
22:44:23 <Phantom_Hoover> I just kind of... fell into it.
22:44:25 <alise> Establishing the largest consensus groups possible.
22:44:27 <alise> 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 <alise> 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 <alise> 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 <alise> 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 <alise> 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 <alise> 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 <Sgeo> "What kind of social networking do you want to do?" WTF?
22:44:49 -!- coppro has joined.
22:44:51 <alise> Yes, a huge flood.
22:44:53 <alise> But dammit, the world has to see.
22:44:55 <Phantom_Hoover> He turned up at Wikiindex after an incident I don't want to explain, and he wikilawyered for *weeks*.
22:44:55 <alise> It goes on: http://lumeniki.referata.com/wiki/Lumenism
22:44:59 <alise> Sgeo: See /msg.
22:45:20 <ais523> alise: incidentally, an automatically enforced 3RR automatically makes wikis democratic, if everyone can be bothered to use all their reverts
22:45:26 <Phantom_Hoover> He is the only person who ever uses it.
22:45:43 <Phantom_Hoover> Although I have an account there, along with a couple of others from RationalWiki.
22:45:47 <ais523> Phantom_Hoover: how /can/ you wikilawyer for weeks without everyone just ignoring you?
22:46:00 <Phantom_Hoover> We were a little crazy.
22:46:49 <Phantom_Hoover> http://www.wikiindex.org/WikiIndex_talk:Policies_and_Guidelines
22:47:48 <alise> That repeated "i" is irritating.
22:47:58 <Phantom_Hoover> It is indeed.
22:48:42 <Phantom_Hoover> Although the site's administration is even worse.
22:49:12 <Phantom_Hoover> As best I can tell, most of the sane people went to another site, and only a few idiots remained.
22:57:31 <zzo38> I think I found a bug in ngIRCd
22:57:38 <alise> Report it
22:58:23 <zzo38> 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 <zzo38> Usually there is no use for + type predefined channel
22:58:56 <zzo38> 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 <zzo38> I can fix that bug
23:01:59 <zzo38> 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 <Phantom_Hoover> CakeProphet, are you there?
23:05:20 -!- BeholdMyGlory has quit (Remote host closed the connection).
23:09:58 <Phantom_Hoover> Is anyone going to discuss the tree computer?
23:11:15 <alise> Explain it.
23:12:26 <Phantom_Hoover> OK, like I said the only (or at least primary) data structure is a tree.
23:12:40 <Phantom_Hoover> I'm not sure if we agreed, but I think it was binary.
23:12:59 <Phantom_Hoover> Code and data are both stored on this.
23:13:39 <Phantom_Hoover> There is a low-level language operating on this level.
23:14:04 <Phantom_Hoover> Which is eagerly-evaluated, possibly by traversing the tree depth-first.
23:15:40 -!- coppro has quit (Ping timeout: 240 seconds).
23:15:41 <Phantom_Hoover> Each node contains a 4-byte value.
23:16:22 <Phantom_Hoover> 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 <Phantom_Hoover> 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 <alise> <Phantom_Hoover> 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 <alise> So, finite tree.
23:18:14 <alise> DFA, Q.E.D.
23:18:16 <Phantom_Hoover> Yes.
23:18:27 <Phantom_Hoover> DFA?
23:18:46 <alise> My suggestion: 0 is /, 1 is a bit.
23:18:51 <Phantom_Hoover> Dimensional Fund Advisors? Democracy For America?
23:18:56 <alise> 11101111 is 111/1111
23:19:00 <alise> Phantom_Hoover: Sigh.
23:19:08 <Phantom_Hoover> What?
23:19:25 <alise> Deterministic is the first word.
23:19:35 <Phantom_Hoover> Deterministic Finite-state Automaton?
23:19:47 <Phantom_Hoover> OK.
23:19:50 <alise> YOU WIN
23:20:18 <Phantom_Hoover> Why is it so bad if it's not TC?
23:20:26 <alise> Er, I meant FSM.
23:20:31 <alise> Phantom_Hoover: It's boooooooring :P
23:20:39 <Phantom_Hoover> It's honest.
23:21:05 <Phantom_Hoover> 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 <alise> You confuse languages with implementations.
23:22:09 <alise> You should die because of this.
23:22:12 <Phantom_Hoover> Yes, I know.
23:22:17 <Phantom_Hoover> It's a terrible sin.
23:22:31 <Phantom_Hoover> TC implementations are non-existent, so it's not that awful.
23:23:20 <coppro> why is that always bad? Some languages effectively are their implementations, like Perl
23:23:21 <coppro> (Perl 5, anyway)
23:23:45 <Phantom_Hoover> OK, so why should it be TC>
23:24:15 <Phantom_Hoover> TC languages are two-a-penny.
23:24:28 <Sgeo> Wait, Perl doesn't have formal specs?
23:24:49 <alise> coppro:
23:24:55 <alise> <Phantom_Hoover> Why is it so bad if it's not TC?
23:24:55 <alise> <Phantom_Hoover> It's honest.
23:24:55 <alise> <Phantom_Hoover> Since it doesn't pretend to be TC while written in C, like everything else is.
23:25:07 <Phantom_Hoover> That's inaccurate, I give you.
23:25:09 <alise> this "TC isn't valid because [some facet of the universe] isn't TC" thinking is a disease
23:25:12 <coppro> Sgeo: Sure it does. it's written in C
23:25:16 <alise> and must be stomped upon with great force at every opportunity
23:25:25 <Phantom_Hoover> Also, the universe isn't TC.
23:25:36 <Phantom_Hoover> You can't run forever, however hard you try.
23:25:50 <Sgeo> And the universe is finite
23:26:04 <Phantom_Hoover> It's a fantastically useful theoretical concept, but isn't real.
23:26:08 -!- augur has quit (Ping timeout: 240 seconds).
23:26:28 <Sgeo> But that doesn't mean languages, as described, aren't theoretically, if not physically, TC
23:26:35 <alise> Phantom_Hoover: Graham's number isn't real!
23:26:38 <Phantom_Hoover> I accept that.
23:26:39 <alise> Ultrafinitism forever!!
23:26:58 <coppro> there's no proof that the Universe isn't TC
23:27:03 <Sgeo> i isn't real!
23:27:33 <Phantom_Hoover> What's wrong with saying that TC isn't real, but is useful in mathematics?
23:27:48 <coppro> and in fact, there is evidence suggesting that the Universe is super-TC
23:28:01 <Sgeo> coppro, wait what?
23:28:20 <coppro> Sgeo: There are those who believe that quantum mechanics is not modelable by a Turing machine
23:28:23 <Phantom_Hoover> Quantum.
23:28:24 <alise> I believe the universe to be finite, and I believe that --
23:28:25 <Sgeo> If the universe is super-TC, let's build a super-TC cpu!
23:28:28 <alise> How did I know you'd bring up QM?
23:28:47 <alise> I am pretty sure you could make a universe on a Turing machine that, to its inhabitants, behaved perfectly quantum.
23:28:48 <Phantom_Hoover> OK, can we stop the philosophy?
23:28:52 <alise> Phantom_Hoover: No.
23:29:01 <Sgeo> <3 philosophy
23:29:03 <Phantom_Hoover> alise: With a PRNG, then?
23:29:10 <alise> coppro: We can't model quantum mechanics on a TM in this universe, perhaps.
23:29:18 <alise> coppro: But that doesn't mean the universe itself is running on super-TC hardware.
23:29:19 <Phantom_Hoover> Or a nondeterministic TM?
23:29:23 <coppro> alise: yes it does
23:29:36 <coppro> either it can or cannot be modeled by a TM
23:29:38 <Sgeo> Well, we can't even build a TM in this universe, so
23:29:49 <coppro> a "nondeterministic TM" is not a TM at all
23:29:51 <Phantom_Hoover> We *can* build a TM.
23:29:58 <Phantom_Hoover> Just not a universal one.
23:30:05 <Sgeo> Oh erm, >.> right
23:30:07 <alise> coppro: no
23:30:10 <alise> coppro: consider:
23:30:31 <alise> 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 <coppro> 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 <alise> I don't see any issue with proposing that the simulator somehow makes its random numbers "inaccessible" to us.
23:31:20 <coppro> alise: nor do I
23:31:25 <Sgeo> Why wouldn't "that universe" be emulable, except for memory constrains?
23:31:27 <Sgeo> *constraints?
23:31:30 <alise> emulable isn't a word
23:31:31 <coppro> TMs are not random, however
23:31:43 -!- tombom has quit (Quit: Leaving).
23:31:50 <Phantom_Hoover> Emulable is a lovely word and should be real.
23:32:26 <coppro> 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 <alise> Lumenos is practically a superhero but for eir one crippling kryptonite weakness to a deadly form of ikilumen known as termMites.
23:32:32 <alise> 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 <alise> 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 <alise> Lumenos becomes distracted, agitated (more like freegan pissed off), and tends to flee from the deadly air vaprations.
23:32:36 <alise> http://lumeniki.referata.com/wiki/Ikilumen_of_Lumenos'_mind what!
23:33:05 <Phantom_Hoover> I had to *argue* with him.
23:33:16 <Phantom_Hoover> It's open-edit, feel free to annoy him.
23:33:28 <alise> 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 <alise> Hooooovie you came! *BIG hug*
23:33:43 <alise> `addquote <Lumenos> Hooooovie you came! *BIG hug*
23:33:46 <coppro> 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 <alise> "If you want me to stay, make me a sysop and bureaucrat." xD
23:34:02 <alise> 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 <HackEgo> No output.
23:34:06 <alise> Is this guy for real
23:34:12 <Phantom_Hoover> It would appear.
23:34:20 -!- Oranjer has joined.
23:34:23 <coppro> 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 <Sgeo> alise, where's this?
23:34:29 <Phantom_Hoover> Otherwise he shows a dedication for parody that is in itself weird.
23:34:36 <Sgeo> UTMs can model UTMs
23:34:43 <alise> "(Prune. With a chainsaw)" --Phantom_Hoover
23:34:46 <alise> --http://www.wikiindex.org/index.php?title=Lumeniki&diff=69874&oldid=68851
23:34:52 <alise> Sgeo: http://lumeniki.referata.com/
23:35:06 <alise> http://www.wikiindex.org/Lumeniki Look at that, it's big again.
23:35:18 <alise> This guy is fucking insane
23:35:56 <Sgeo> Where's the You came bit?
23:36:21 <coppro> Sgeo: exactly
23:36:21 <Phantom_Hoover> 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 <Phantom_Hoover> `quote
23:36:48 <alise> Sgeo: on Phantom_Hoover's talk page on lumeniki; I'm sure you can figure it out.
23:36:49 <coppro> now, I should add one thing
23:36:54 <alise> Seems HackEgo is still broken.
23:37:01 <HackEgo> No output.
23:37:04 <alise> <coppro> 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 <alise> I don't believe the universe is infinite.
23:37:09 <alise> So there.
23:37:12 <Phantom_Hoover> `run ls
23:37:28 <HackEgo> No output.
23:37:32 <Phantom_Hoover> A UTM can model a UTM, can't it?
23:37:58 <coppro> alise: Size is the only possible reason why no UTM within the Universe can model the Universe if it is TC
23:38:08 <Sgeo> Why is it tthat to me, it's obvious both coppro and alise are wrong?
23:38:10 <alise> coppro: I also believe a UTM can probably model the universe.
23:38:17 <alise> Sgeo: Because you are wrong in a different way.
23:38:33 <Phantom_Hoover> alise, you didn't have to deal with Lumenos' debate maps.
23:38:44 <coppro> if you had a UTM within the Universe, and the Universe is just TC, then that UTM could model the Universe
23:38:55 <coppro> except for the obvious fact that it's physically impossible
23:39:20 <coppro> I think there's actually a proof of the Universe's irreducibility
23:39:25 <alise> Phantom_Hoover: This wiki is so confusing...
23:39:34 <Sgeo> When you said "Within the universe", you mean physically?
23:39:36 <alise> coppro: that would be an astonishing result.
23:39:40 <alise> coppro: it would disprove the church-turing thesis.
23:39:45 <alise> coppro: thus I believe it is not so.
23:39:49 <oerjan> 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 <oerjan> (in case someone here didn't know this already)
23:40:14 <alise> 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 <Phantom_Hoover> In the Wikiindex dispute, he eviscerated the discussion and scrambled everything in it.
23:40:31 <coppro> alise: it would also disprove everything and prove everything, since it would be a contradiction
23:40:31 <Sgeo> "Hereto sapien"?
23:41:02 <coppro> it is obvious that the Universe cannot be modeled from within itself; the question is whether the computational power is sufficient
23:41:09 <oerjan> and also, the usual quantum complexity class BQP fits snugly inside the deterministic complexity class PSPACE
23:41:41 <alise> 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 <oerjan> (meaning that turning quantum -> deterministic is also just a question of blowing up space or time requirements)
23:42:20 <Sgeo> What's wrong with RationalWiki?
23:42:35 -!- zzo38 has quit (Remote host closed the connection).
23:43:21 <alise> 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 <coppro> 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 <alise> 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 <alise> And I dislike their writing style. It smacks of "Lol, I am smarter than you" no matter who reads it.
23:44:18 <Phantom_Hoover> alise, I'm afraid I'm one of the administrators, so I'll just leave before an argument starts.
23:44:30 -!- Phantom_Hoover has quit (Client Quit).
23:44:39 <alise> Phantom_Hoover: Is it rational to leave whenever someone disagrees with your site?
23:44:41 <alise> Wow, that guy's touchy.
23:45:15 -!- coppro has set topic: <alise> 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 <Phantom_Hoover> alise, it's more the fact that it's quarter to 12 and I don't like arguing with people.
23:46:48 <Phantom_Hoover> By all means create an account and criticise the site there
23:46:48 <alise> 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 <alise> Talk or don't talk at all.
23:46:59 <Phantom_Hoover> I'm sorry, then.
23:47:01 <alise> No, I'm criticising the site here. If you were mature you would ignore me instead of confronting me like that.
23:47:09 <Phantom_Hoover> No, OK?
23:47:10 <alise> Or at least confronting me in a more... rational way.
23:47:23 <Phantom_Hoover> I'm allowed not to want to have an argument, OK?
23:48:01 <oerjan> I disagree with your argument, but I'll defend to death your right not to have it
23:48:05 <Phantom_Hoover> And it's not "my site", either.
23:48:24 <alise> "My boss" isn't MY boss, either.
23:48:27 <alise> He's other people's boss too.
23:48:36 <alise> Phantom_Hoover: If you don't want an argument, don't respond to me.
23:48:37 <jabb> is there a static place to announce a language?
23:48:44 <Phantom_Hoover> jabb: Not really.
23:48:50 <Phantom_Hoover> The wiki is where it's normally done.
23:48:53 <Sgeo> How would you announce something ina static place?
23:48:56 <alise> Now really, saying "Don't say that! Stop criticising that!" won't stop an argument, only provoke it.
23:48:57 <alise> jabb: wiki.
23:49:00 <alise> esolangs.org/wiki
23:49:10 <Phantom_Hoover> He's used that already.
23:49:47 <Phantom_Hoover> 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 <oerjan> jabb: what do you mean by static? there is the esoforum which is only barely alive...
23:50:06 <Sgeo> an esoteric esoteric programming language?
23:50:12 <alise> Phantom_Hoover: But you did anyway.
23:50:18 <Phantom_Hoover> I didn't say that.
23:50:29 <alise> 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 <alise> (And don't say I'm starting an argument, you kindled the fire.)
23:50:41 <Phantom_Hoover> How?
23:50:49 <Phantom_Hoover> I linked you to Lumenos.
23:50:52 <jabb> ahh, used to announcing something on usenet or something
23:50:53 <Sgeo> "in some assembly language"?
23:51:04 <alise> Phantom_Hoover: By leaving/rejoining a lot and saying "NO DON'T TALK ABOUT IT".
23:51:13 <alise> jabb: we used to have a mailing list
23:51:16 <alise> uncountable aeons ago
23:51:17 <Phantom_Hoover> I left/rejoined TWICE.
23:51:27 <alise> Phantom_Hoover: Well, I didn't say much int he first place...
23:52:54 <Phantom_Hoover> 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 <Sgeo> jabb, what's the data type of the hand?
23:53:22 <alise> Phantom_Hoover: Stop whining and just go to sleep.
23:53:25 <alise> You don't have to be emotional.
23:53:41 <alise> You would think -- okay, I refuse to make another jab at the name RationalWiki. How could I stoop so low?
23:53:54 <Phantom_Hoover> Why do you always have to act oh so superior to all lesser beings?
23:54:02 <Phantom_Hoover> Anyway. I'll sleep now.
23:54:03 -!- Phantom_Hoover has quit (Quit: Leaving).
23:54:09 <alise> I'm not acting superior ... you're acting hurt.
23:54:15 <coppro> both
23:54:22 <uorygl> Are the two actings mutually exclusive?
23:54:25 <Sgeo> jabb, so In Hand's data type varies?
23:54:27 <alise> How am I acting superior?
23:54:32 <coppro> you usually are
23:54:40 <alise> I was belittling Phantom_Hoover, yes...
23:54:51 <alise> But I don't recall bembiggening myself.
23:54:57 <Sgeo> Hey, a use for C unions!
23:55:10 <coppro> You do it implicitly
23:55:13 <alise> Sgeo: There are plenty.
23:55:16 <coppro> like a politician does
23:55:19 <alise> coppro: That's not very helpful.
23:55:26 <alise> "What am I doing wrong?" "You're breaking it!!"
23:55:31 <alise> "How?" "That's just what you do!"
23:55:38 <coppro> 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 <uorygl> alise: "stop whining" and variants come across as insulting.
23:56:31 <alise> uorygl: I never denied I was being insulting: only that I was acting superior.
23:56:37 <alise> Anyway, that rather contradicts with coppro saying that I'm always like that.
23:56:40 <jabb> Sgeo, yeah can be a number, list or null (None in python)
23:57:15 <Sgeo> jabb, should the interpreter be considered to be a reference interpreter?
23:57:16 <jabb> Sgeo: any memory location is that way, list, number or none
23:57:26 <Sgeo> And which wins, spec or interp?
23:57:46 <Sgeo> Spec seems a bit vague in places. I'll work on clarifying it based on interp
23:58:21 <jabb> hmm, I'd go with interp
23:58:47 <jabb> but they're remarkably close, albeit the specs is a bit vague
←2010-06-03 2010-06-04 2010-06-05→ ↑2010 ↑all