←2008-06-14 2008-06-15 2008-06-16→ ↑2008 ↑all
00:01:11 * GregorR reappears.
00:01:35 <GregorR> What was your configure line?
00:01:42 <tusho> ../configure --prefix=/opt/jsmips --target=mips-jsmips --with-newlib --disable-libssp
00:01:50 <tusho> and i'm on os x 10.4, x86
00:02:11 <GregorR> It's possible, although a grim and unpopular possibility, that you need to use Apple's GCC sources rather than baseline GCC.
00:02:29 <GregorR> I don't know whether a baseline GCC will compile on Mac OS X even for cross-compiling.
00:03:07 <tusho> Ah.
00:03:16 <GregorR> But hm, it shouldn't even be trying to compile libiberty for the target, and on the host I'm sure you have strings.h :P
00:03:18 <tusho> Shit. Where are apple's gcc sources?
00:03:48 <GregorR> Actually, before going down that ugly path, could you pastebin more of the context of those errors?
00:03:53 <tusho> 'k
00:04:38 <tusho> http://rafb.net/p/SQFojI35.html
00:05:34 <tusho> GregorR: I have more context if needed.
00:06:41 <tusho> AWESOME. 3 appeals of CFJ 1966c!
00:06:52 <tusho> GregorR: Any ideas?
00:07:06 -!- jix has quit ("This computer has gone to sleep").
00:07:22 <GregorR> Well that's odd.
00:07:29 <GregorR> It's trying to compile libiberty for the target ...
00:07:36 <GregorR> But there's no reason for it to compile libiberty for the target ...
00:07:46 <tusho> GregorR: Let's venture to #gcc. Together!
00:08:06 <GregorR> Yeehaw!
00:08:21 <GregorR> (Also a perfect opportunity to subtly "doink" jsmips :P )
00:08:46 <tusho> You state the problem. I've already stated it once.
00:08:46 <tusho> :P
00:10:22 <tusho> GregorR: TREASURE THIS MOMENT. You can pretend you have a mac.
00:13:13 <tusho> GregorR: And pretend #gcc isn't dead
00:14:06 <tusho> GregorR: So. What should I do now.
00:14:29 <GregorR> Not sure. Get GNU/Linux? :P
00:14:35 <tusho> GregorR: Fail. :P
00:14:42 <tusho> (Double fail for "GNU/Linux")
00:15:01 <GregorR> Not sure. Get the GNU operating system utilizing the kernel Linux? :P
00:15:24 <tusho> How about "Get Linux"
00:16:27 <GregorR> Not sure. Get GNU? (with whatever kernel you'd like)
00:16:49 <tusho> GregorR: ROLE REVERASL IN #GCC
00:17:03 <GregorR> Hahaha
00:20:51 <GregorR> http://www.opensource.apple.com/darwinsource/projects/other/gcc-5483/ // OK, there must be an actual tarball somewhere :P
00:22:28 <GregorR> http://www.opensource.apple.com/darwinsource/tarballs/other/gcc-5483.tar.gz
00:22:59 <GregorR> I would try with Apple's GCC *shrugs* ... gross, but possibly necessary.
00:23:44 <tusho> GregorR: What, exactly, is gross about Apple's GCC?
00:24:41 <GregorR> What's gross is that a different GCC would be necessary on a different OS when you're not even targeting that OS.
00:25:46 <tusho> GregorR: OS X is a bit of a weird system
00:25:46 <tusho> :-P
00:26:11 <GregorR> Yeah, to be fair, you need a different GCC on Windows too :P
00:31:17 <tusho> .
00:33:36 <GregorR> OHWAIT
00:33:49 <GregorR> Did you download gcc-core, or the full gcc?
00:35:08 <tusho> GregorR: full
00:35:13 <GregorR> *smacks self in head*
00:35:17 <GregorR> Try configuring with --enable-languages=c
00:35:21 <tusho> GregorR: Name your patches right, bitch. :P
00:35:37 <GregorR> Well, it'll patch against either, it just doesn't touch anything out of the core.
00:36:08 <GregorR> --enable-languages=c will suppress all the other compilers, so it'll be the same compile as gcc-core.
00:36:52 <GregorR> (Again, I have too much experience writing cross-compilers for my own good, I'm quite used to downloading only the core :P )
00:37:16 <olsner_> *writing* cross-compilers or compiling them? :P
00:37:32 <tusho> olsner_: Wrompiling them.
00:37:36 <GregorR> Fair enough: Too much experience compiling GCC cross compilers.
00:37:49 <tusho> olsner_: Oh, and you know that blohsom I was writing about? Well it turns out Hobix, though written in Ruby, can do it all.
00:37:56 <tusho> And, what's more, I actually got it to work.
00:38:08 <tusho> HobixThatActuallyWorksAndIsMaintained: Coming to a ESO git repository near you!
00:38:14 <olsner_> heh, report a bug "Not writting in Haskell" and see what they do about it :P
00:38:17 <olsner_> *written
00:38:21 <GregorR> Hahaha
00:38:24 <tusho> olsner_: they = _why the lucky stiff
00:38:27 * GregorR wrote a raycaster in Haskell! >_>
00:38:33 <tusho> One of the most prominent members of the ruby community
00:38:36 <tusho> So I wouldn't think much :P
00:38:47 <tusho> Oh, and the website hasn't been updated since 2005.
00:38:59 <tusho> Which is why a hobix that actually works and is maintained is such a wonderful thing for ESO to do!
00:38:59 <olsner_> oh... so maybe it needs rewriting anyway :P
00:39:07 <tusho> olsner_: Nah, hackety.org still uses it.
00:39:10 <tusho> And it's active.
00:39:13 <tusho> So ... _why still uses it.
00:39:14 <tusho> :P
00:39:17 <tusho> And it works well. For stuff.
00:39:35 <olsner_> oh, so "_why the lucky stiff" is a person?
00:39:49 <tusho> olsner_: yes
00:40:07 <tusho> AKA _why, why the lucky stiff, and most confusingly 'why'
00:40:11 <tusho> also, he has a gui lib named 'Shoes', singular
00:40:19 <tusho> Why just released Shoes, which is a GUI library.
00:40:22 <tusho> :D
00:40:24 <tusho> http://whytheluckystiff.net/
00:40:41 <tusho> you might have seen Hackety Hack, he made that
00:41:14 <olsner_> I haven't seen much of the Rubites at all (maybe I've been avoiding them)
00:42:34 <tusho> olsner_: Me testing hobix' default install that actually works:
00:42:36 <tusho> http://eso-std.org/~tusho/hobix/
00:42:43 <tusho> http://eso-std.org/~tusho/hobix2/ (With comments. That don't work.)
00:43:23 <olsner_> "posted by elliott hird"?
00:43:32 <olsner_> tusho == ehird?
00:43:39 <tusho> olsner_: YOU GOT ME
00:43:44 <GregorR> *gasp*
00:43:46 <GregorR> :P
00:44:03 <tusho> In #esoteric today: the three people who didn't know that already
00:44:49 <olsner_> I was pretty sure I'd seen tusho and ehird speaking at the same time and acting like different persons
00:45:01 <tusho> olsner_: um.. nope
00:45:17 <tusho> GregorR: GCC BUILT
00:45:40 <tusho> anyway, I assumed my personality was unique enough that there'd be no confusion
00:45:45 <tusho> I'm slightly offended :P
00:45:55 <GregorR> tusho: YAY ^^
00:46:03 <tusho> GregorR: Link to newlib, I'm a lazy ass.
00:46:12 <GregorR> http://www.google.com/search?q=newlib
00:46:30 <tusho> GregorR: It's more snarky if you use tinyurl to link to justfuckinggoogleit.com/?q=newlib.
00:46:43 <augur> lalala
00:46:55 <augur> tusho you're ehird?
00:46:59 <augur> make that four people.
00:47:04 <tusho> augur: No, 3.
00:47:08 <tusho> I predicted the third.
00:47:11 -!- ehird has joined.
00:47:12 <augur> AWESOME.
00:47:16 <tusho> ...
00:47:21 <augur> gasp!
00:47:23 <augur> you lie!
00:47:24 <tusho> GregorR: You got my real name rong.
00:47:25 <tusho> *wrong
00:47:27 <ehird> tusho: WTF, you're still here pretending to be me!
00:47:30 <tusho> It's two t's.
00:47:32 <ehird> ORLY? Crap :P
00:47:35 -!- ehird has quit (Nick collision from services.).
00:47:44 <tusho> Pwnt.
00:47:46 <GregorR> :P
00:47:46 <augur> you're just names to me, and if the names dont match, i dont know :(
00:47:54 <tusho> augur: ehird. tusho. ehird. tusho. Repeat.
00:48:06 <augur> like if oklopol didnt alternate to oklofok
00:48:06 <tusho> GregorR: WTF NEWLIB IS 12MB
00:48:25 <tusho> augur: 'ehird' is deprecated, fyi. :P
00:48:40 <augur> how did you pronounce "ehird" btw?
00:48:49 <tusho> Ee hurd.
00:48:58 <augur> hm.
00:48:59 <tusho> For ... Elliott Hird.
00:48:59 <GregorR> tusho: The various per-system stuff is 16MB alone.
00:50:18 <olsner_> at least oklo* usually takes nicks with oklo* ... besides, I'm kind of suspecting the different oklo*'s aren't quite the same person :P
00:50:32 <augur> oh they are olsner
00:50:40 <augur> i can assure you
00:50:45 <augur> every _inch_ of them is the same...
00:50:51 <augur> >d
00:50:54 <tusho> augur: You would know, you've explored every inch.
00:51:00 <tusho> OHHHH SNAP
00:51:02 <augur> yes, that WAS the implication
00:51:05 <tusho> yes
00:51:07 <augur> thank you captain obvious
00:51:08 <tusho> I was being silly
00:51:13 <tusho> pah
00:51:19 <augur> you werent BEING silly
00:51:21 <augur> you ARE silly
00:51:23 <tusho> nobody appreciates sarcastic captain obviouses, augur
00:51:30 <tusho> GregorR: OK now how do I shot newlib.
00:51:32 <augur> you're, what, 15? all 15 year olds are silly.
00:51:47 <tusho> 15? no. :P
00:51:55 <augur> 16, whatever
00:51:56 <augur> ;P
00:51:58 <tusho> no
00:51:59 <tusho> :P
00:52:04 <augur> 14?
00:52:05 <augur> 13?
00:52:08 <augur> you cant be THAT young
00:52:08 <augur> ;)
00:52:12 <tusho> augur: you fail at logreading!
00:52:38 <augur> apparently you fail are remembering the joke we had the other day about you being 15 and pedobear coming to snatch you up :(
00:52:42 <augur> bad tusho! bad!
00:52:59 <augur> afk eating cake and drinking coffe
00:52:59 * GregorR reappears.
00:53:01 <augur> e
00:53:01 <tusho> wait, is this like double sarcasm
00:53:02 <augur> :d
00:53:09 <GregorR> tusho: Same config flags as binutils: ../configure --prefix=... --target=mips-jsmips
00:53:10 <olsner_> anyway, changing nicks is evil... you shouldn't expect every other person on irc to link your new nick to your old self *manually* - it's easier for them (us) to just treat you as an entirely new and unknown entity
00:53:24 <augur> i am infinitely recursive sarcasm
00:53:26 <augur> and irony
00:53:32 * augur is gone
00:53:34 <olsner_> fractal irony?
00:53:46 * tusho wonders how many levels of sarcasm most people have /me's age wrapped up in
00:53:51 <tusho> GOGOGOGOGOGO 'MAKE'
00:53:53 <GregorR> olsner_: I choose to treat everyone as a completely new and unknown entity, even if I've talked to them a hundred times before.
00:54:19 <olsner_> wise choice, nicks being so very easy to falsify
00:54:22 <GregorR> olsner_: Makes it easier, since I don't have to remember anyone.
00:54:32 <tusho> D'OH
00:54:35 * tusho fixes path
00:54:36 <tusho> /bin/sh: line 1: mips-jsmips-cc: command not found
00:54:56 <tusho> GregorR: Wait, what LD environment variables do I have to change for /opt/jsmips/lib
00:55:08 <GregorR> You shouldn't need any ...
00:55:31 <GregorR> Why, what do you have in /opt/jsmips/lib ?
00:55:37 <GregorR> Should just be a couple of .a files.
00:55:53 <GregorR> (And the gcc/ directory, but GCC figures that one out itself)
00:56:06 <tusho> GregorR: Oh, hah, it's trying mips-jsmips-cc
00:56:07 <tusho> it needs
00:56:10 <tusho> mips-jsmips-gcc
00:56:21 <GregorR> It's probably trying -cc because -gcc wasn't in $PATH when it configured.
00:56:29 <tusho> ic,ic
00:57:24 <GregorR> Which is a pretty stupid decision, really :P
00:57:29 <tusho> Anyway, for the logs, my age is fib(4+3)+5-4.
00:57:43 <olsner_> fib(7)+1?
00:57:49 <tusho> Err.
00:57:52 <tusho> -6
00:58:03 <tusho> fib(4+3)+5-6
00:58:08 <olsner_> fib(7)-1?
00:58:20 <tusho> olsner_: Shut up, I obfuscate everything
00:58:20 <tusho> :P
00:58:37 <GregorR> Is that a 0-indexed fib() function or a 1-indexed fib() function?
00:59:00 <tusho> GregorR: fib(0)=0, fib(1)=1
00:59:31 <GregorR> tusho: Having more luck with newlib now?
00:59:35 <tusho> GregorR: Yeah.
00:59:38 <tusho> It's compiling. Sloooooooooooooowly.
00:59:47 <GregorR> OK, then the pain is probably mostly over :P
00:59:58 <tusho> GregorR: I think JSMIPS is the real pain.
01:00:16 <GregorR> :P
01:00:19 -!- puzzlet_ has joined.
01:00:24 <GregorR> I meant the pain of cross compiling, but sure.
01:00:59 <tusho> GregorR: You know, I think we'll have to hand-code a gui with <canvas>. X11 will just be too slow
01:00:59 <tusho> :P
01:01:12 <tusho> #include <canvas.h>!
01:01:17 * GregorR is not even remotely considering GUIs yet :P
01:01:36 <olsner_> tusho: ehm, you're 12!?
01:02:07 <tusho> olsner_: sheesh, welcome to like 5 days ago
01:02:10 <tusho> GregorR: how long does newlib take to compile exactly?
01:02:14 <tusho> 7 years?
01:02:25 <GregorR> Approximately.
01:02:36 <GregorR> Longer than GCC, bizarrely enough.
01:03:07 <olsner_> really!? I thought newlib was supposed to be small?
01:03:15 <tusho> olsner_: so did I..
01:03:23 <tusho> GregorR: I think the first JSMIPS thing I'll do is a JS FFI
01:03:44 -!- timotiis has quit (Read error: 110 (Connection timed out)).
01:03:50 <GregorR> That'd be pretty nifty, and not actually too difficult.
01:03:56 <tusho> js_t *js_eval(char *src);
01:04:03 <GregorR> Just make sure you associate it with a syscall # that isn't commonly assigned to a UNIX syscall.
01:04:21 <tusho> js_t *js_prop(js_t *obj, char *name);
01:04:41 <tusho> void *js_to_func(js_t *obj);
01:04:41 <tusho> etc
01:04:53 <augur> (fib 7) + 1 huh
01:05:16 <augur> thats 14, tusho.
01:05:23 <augur> and yet you said you WERENT 14.
01:05:24 <tusho> augur: -1
01:05:28 <tusho> I corrected myself.
01:05:39 <augur> you're really 12?
01:05:45 <tusho> yes :P
01:05:52 <tusho> GregorR: JSMIPS IS DONE
01:05:53 <oklopol> tusho: did the second boss, continued for some while and missaved to a place where i can only return back to the beginning of the game :D
01:05:55 <tusho> ZOMGZZZZZ!!!
01:05:55 <augur> im ten years older than you?
01:06:00 <GregorR> tusho: Uh, you mean newlib, right?
01:06:01 <augur> oklopol! :D
01:06:04 <tusho> er
01:06:04 <tusho> yes
01:06:06 <augur> ::pounce::
01:06:07 <augur> <3you
01:06:18 * GregorR records this momentous orgy.
01:06:23 <tusho> augur: If you're 22 then you're ten years older than me.
01:06:29 <tusho> If you're something else then you're not. :P
01:06:36 <augur> yes, i'm 22. :P
01:06:41 <augur> ::rapes tusho::
01:06:43 <augur> so oklopol
01:06:47 <oklopol> so cool
01:06:49 <augur> i have an evaluation model for Reactance
01:07:03 <tusho> Sheesh. You rape me and don't even give it a second thought!
01:07:03 <oklopol> me too, i implemented it
01:07:11 <tusho> GregorR: i686-apple-darwin8-gcc-4.0.1: bin2arr.c: No such file or directory
01:07:11 <tusho> i686-apple-darwin8-gcc-4.0.1: no input files
01:07:12 <tusho> ;_;
01:07:18 <augur> tusho: why would i? it's RAPE.
01:07:24 <augur> oklopol: implemented it in JS?
01:07:30 <tusho> augur: BUT IT'S NOT CARING RAPE.
01:07:32 <augur> with IO?
01:07:39 <augur> all rape is not caring rape, tusho.
01:07:42 <oklopol> okay, i'm stopping iwbtg, a game is not worth playing if there's a possibility of having to start over
01:07:45 <tusho> CARING RAPE IS
01:07:45 <GregorR> tusho: I forgot to add that before, hg pull to get it.
01:07:55 <augur> CARING RAPE DOES NOT EXIST.
01:07:57 <augur> ugh fine
01:08:00 <oklopol> augur: just has output
01:08:26 <augur> ::rapes tusho then kisses him on the forehead::
01:08:33 <augur> oklopol: in JS tho?
01:08:34 * tusho reports to the fbi
01:08:37 <augur> can i see some working code?
01:08:44 <oklopol> augur: i've never coded anything in JS
01:08:50 <augur> lame :P
01:08:58 <augur> whats your implementation in?
01:09:01 <oklopol> python
01:09:03 <tusho> augur: Python I gues
01:09:04 <tusho> s
01:09:21 <tusho> GregorR: Can I make the test program more exciting
01:09:22 <augur> can i _see_ anything or is it just /ostensibly/ implemented
01:09:34 <oklopol> i've pasted the source
01:09:38 <GregorR> tusho: Of course.
01:09:40 <oklopol> god i'm pissed at iwbtg
01:09:44 <oklopol> what the fuck
01:09:44 <augur> o its ostensibly implemented :)
01:09:56 <GregorR> tusho: That was just whatever random crap I decided to test with :P
01:10:00 <oklopol> i didn't even see the save button, was a misfire
01:10:13 <augur> i like how tusho knows more about haskell than I do
01:10:14 <augur> :D
01:10:17 <augur> and tusho's 12
01:10:21 <augur> ahh kids
01:10:33 <GregorR> DAMN WHIPPERSNAPPERS AND THEIR HASKELL
01:12:05 <augur> eh?
01:12:09 <augur> get off my lawn!
01:13:13 -!- puzzlet has quit (Read error: 110 (Connection timed out)).
01:13:31 <tusho> GregorR: Pushed.
01:13:37 <tusho> I made the test program all modular. :P
01:14:13 <GregorR> tusho: Doesn't fit in the console though :P
01:14:21 <tusho> GregorR: Nor does your previous example.
01:14:24 <tusho> Can I make it scrollable? :P
01:14:33 <tusho> Or, if not scrollable, bigger.
01:15:05 <GregorR> Bigger, yes, but scrollable would be tricky because I'd eventually like to have full vt100 support.
01:15:31 <GregorR> Anyway, I'm just going to swap the newlines for spaces in the fibo output and push ;)
01:16:22 <tusho> GregorR:
01:16:22 <tusho> setTimeout(mipses[this.num].run, 0);
01:16:24 <tusho> that should work
01:16:25 <tusho> why doesn't it?
01:16:38 <tusho> it dies after hello world
01:16:57 <GregorR> I have no idea why it doesn't, but my current unmodified version does :P
01:17:09 <tusho> GregorR: But it's slower.
01:17:16 <tusho> (Inherently)
01:17:21 <GregorR> I think that the expression is actually reevaluated in the global scope.
01:17:32 <GregorR> When the timeout fires.
01:17:34 <GregorR> Which is lame :(
01:17:43 <GregorR> That's why I had to make the array of mipses in the first place.
01:17:47 <GregorR> Otherwise you could just do this.run
01:18:17 <tusho> GregorR: Regardless, it eval()s a string and that's really slow for js
01:18:19 <tusho> it'll be our bottleneck
01:18:32 <GregorR> I realize that, but have no solution.
01:18:40 <GregorR> Feel free to invent one, but until you do, don't just break it :P
01:21:16 <tusho> GregorR: Done.
01:21:18 <tusho> It's so much faster now.
01:21:23 <tusho> [[ var func = function () { func.mips.run(); };
01:21:23 <tusho> func.mips = this;
01:21:23 <tusho> setTimeout(func, 0);]]
01:21:31 * tusho eliminates the mips array
01:21:59 <tusho> GregorR: Hm. Where else is mipses used?
01:22:02 <GregorR> Hm, didn't realize that would work, but good to know that it does.
01:22:07 <GregorR> tusho: Pretty much nowhere :P
01:22:13 <tusho> Why did it suddenly stop working then
01:22:21 <GregorR> I need to fix test.head and test.tail.
01:22:26 <augur> er
01:22:32 <augur> tusho why are you doing it that way??
01:22:36 <augur> you can just use closure..
01:22:39 <tusho> augur: Nope.
01:22:45 <tusho> They get re-evaluated with self = Window.
01:22:55 <tusho> er this
01:22:55 <augur> wha?
01:22:58 <GregorR> Oh, actually: Leave mipses in so the 'Stop MIPS' button can stop all the MIPSes.
01:23:00 <augur> well whatever, i'll trust you :p
01:23:49 <tusho> aha, even better
01:23:50 <tusho> var self = this;
01:23:50 <tusho> setTimeout(function () { self.run(); }, 0);
01:24:06 <augur> setTimeout((function(m){ return function(){ m.run(); }; })(this), 0);
01:24:09 <tusho> GregorR: K, pull.
01:24:10 <GregorR> OK, fine, just push something X-P
01:24:18 <GregorR> Of course I said that JUST too late X_X
01:24:22 <augur> yay makeshift lets :)
01:24:32 <GregorR> OK, that console is a BIT gigantic ...
01:25:05 <GregorR> Doesn't fit on my screen.
01:25:08 <tusho> GregorR: Well, I like it. Shrink if you want to
01:25:19 <GregorR> Eh *shrugs*
01:26:02 <tusho> GregorR: Tweaked.
01:26:03 <tusho> Pull.
01:26:37 <GregorR> Whoot. OK, I'm going to fix up test.head and test.tail to work better with the new setup.
01:27:24 <tusho> GregorR: Ah, wait
01:27:27 <tusho> Let me fix that
01:27:37 <GregorR> Er
01:27:40 <GregorR> I already pushed it :P
01:28:30 <tusho> GregorR: Too bad, I pushed a more awesomer version
01:28:37 <tusho> Besides, we can currently only have one mips
01:28:40 <tusho> So why do we need mipses?
01:28:45 <tusho> We don't, really. Can I remove it?
01:29:09 <GregorR> We can currently only have one mips: Until threads are implemented >: )
01:29:11 <tusho> GregorR: even Start MIPS will only start _one_
01:29:34 <tusho> Also, we should NOT do threads by using multiple VMs...
01:30:15 <GregorR> If you make a new MIPS and point its memory at the previous MIPS' .mem, you get threads with no significant overhead or complication.
01:30:32 <tusho> GregorR: But if you just make MIPS itself handle the threads, it's less ugly.
01:30:36 <tusho> And less memory intensive.
01:30:37 <tusho> And faster.
01:30:45 <tusho> That'll be important when we start running real MT apps
01:30:55 <GregorR> I would contest that it's more ugly, less memory intensive, and neither faster nor slower.
01:31:05 <GregorR> Since you'd need to implement a bunch of thread switching code.
01:31:20 <tusho> GregorR: Yes faster, because it's one streamlined operation chain
01:32:15 <GregorR> The only difference is whether we implement context switching in JavaScript or allow the JavaScript interpreter's already-existent context switching for supporting setTimeout do it for us.
01:32:51 <tusho> GregorR: Meh, fine. Don't make jsmips any slower while I sleep.
01:32:51 <tusho> :P
01:33:20 <tusho> BAYYYEE
01:33:25 -!- tusho has quit.
01:33:52 <olsner_> wow, 12!? friggin twelve
01:46:35 -!- RedDak has quit (Remote closed the connection).
01:58:38 -!- Corun has quit ("This computer has gone to sleep").
02:01:12 -!- puzzlet_ has quit (Remote closed the connection).
02:01:17 -!- puzzlet has joined.
02:07:53 -!- Corun has joined.
02:19:40 -!- Corun has quit ("This computer has gone to sleep").
03:03:11 -!- Phenax has quit (Remote closed the connection).
03:03:20 -!- Phenax has joined.
03:14:04 <oklopol> okokokokokokokoko
03:14:22 <Phenax> okookkoooooooooooooooooooooooooooooooooooooooooooooooooooooooo
03:37:04 <oklopol> that's a bad oko
04:36:02 -!- crink has joined.
04:43:30 <crink> hi
04:43:44 <crink> is there brainfuck written in assembler?
04:53:32 <olsner_> probably ... brainfucks abound
05:15:04 -!- crink has quit ("Leaving.").
05:22:40 -!- GreaseMonkey has joined.
05:23:26 <oklopol> Deewiant: i see you're doing projecteuler
05:44:01 <oklopol> when did you start?
07:46:51 -!- arekinath has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:18:53 -!- kar8nga has joined.
08:53:52 -!- oklofok has joined.
08:53:59 -!- oklofok has quit (Remote closed the connection).
09:04:19 -!- oklopol has quit (Read error: 110 (Connection timed out)).
09:08:04 -!- oklopol has joined.
09:34:47 <Deewiant> oklopol: timestamp of the solution to the first one is 2006-04-02 11:22
09:34:54 <Deewiant> but I haven't been doing it much lately
09:35:46 <oklopol> i did some 80 tasks near christmas, and started doing again a few days ago
09:36:11 <oklopol> (actually *during* christmas)
10:24:51 -!- GreaseMonkey has quit ("Remote closed the previous member app").
10:40:10 -!- arekinath has quit.
10:51:31 -!- Hiato has joined.
11:17:43 -!- kar8nga has left (?).
11:17:50 -!- Hiato1 has joined.
11:22:17 -!- Corun has joined.
11:29:44 -!- Slereah_ has joined.
11:32:33 -!- oklofok has joined.
11:34:29 -!- oklopol has quit (Read error: 113 (No route to host)).
11:34:46 -!- Hiato has quit (Read error: 110 (Connection timed out)).
11:43:00 -!- Slereah has quit (Read error: 104 (Connection reset by peer)).
11:48:16 -!- Corun has quit (Read error: 104 (Connection reset by peer)).
11:48:49 -!- Corun has joined.
11:51:54 * SimonRC congratulates Russel T Davis on a brilliant tale of multiple-critical-miss on the "Influence Mob" roll.
11:52:26 <SimonRC> *Davies
12:15:36 -!- RedDak has joined.
12:31:32 -!- kar8nga has joined.
12:36:26 -!- timotiis has joined.
12:44:20 -!- oklofok has quit (Read error: 113 (No route to host)).
12:44:34 -!- oklopol has joined.
12:56:14 -!- kar8nga has left (?).
13:02:59 -!- oklofok has joined.
13:03:15 -!- oklopol has quit (Read error: 113 (No route to host)).
13:12:53 -!- atsampson has quit (Read error: 104 (Connection reset by peer)).
13:14:20 -!- atsampson has joined.
13:50:12 -!- ais523 has joined.
13:57:22 -!- kar8nga has joined.
14:06:33 <Slereah_> I'm back people
14:09:07 <Slereah_> Fuck
14:09:14 <Slereah_> My pi book still didn't arrive.
14:09:16 <ais523> Slereah_: hi
14:09:19 <Slereah_> I hope it's here tomorrow.
14:10:04 <Slereah_> That will teach me to order from a bookstore called Quartermelon.
14:10:20 -!- timotiis_ has joined.
14:11:01 -!- timotiis has quit (Nick collision from services.).
14:11:07 -!- timotiis_ has changed nick to timotiis.
14:36:14 -!- oklopol has joined.
14:37:26 -!- oklofok has quit (Read error: 113 (No route to host)).
14:50:49 -!- RedDak has quit (Remote closed the connection).
15:00:21 -!- Corun has quit ("This computer has gone to sleep").
15:08:20 -!- olsner has joined.
15:11:04 -!- puzzlet has quit (Remote closed the connection).
15:11:08 -!- puzzlet has joined.
15:12:53 -!- olsner_ has quit (Read error: 110 (Connection timed out)).
15:13:32 -!- jix has joined.
15:24:43 -!- oklopol has quit (Read error: 113 (No route to host)).
15:38:29 -!- puzzlet_ has joined.
15:39:00 -!- puzzlet has quit (Remote closed the connection).
16:04:20 -!- tusho has joined.
16:05:31 <tusho> hi ais523
16:05:37 <ais523> tusho: hi
16:05:46 <ais523> I'm inventing a crazy new version number system for C-INTERCAL
16:05:56 <ais523> because I'm thinking about doing things like betas and release candidates
16:06:01 <ais523> and also want to number repository entries
16:06:17 <ais523> here, take a look:
16:06:18 <ais523> [[
16:06:21 <ais523> 22.-3.0.29 (alpha in repository, before any betas)
16:06:21 <ais523> 1.-2.0.29 (beta, thus the -2)
16:06:21 <ais523> 1.-1.2.-2.0.29 (repository revision preparing for another beta)
16:06:21 <ais523> 2.-1.0.29 (this means the second release candidate for 0.29)
16:06:21 <ais523> 0.29 (version 0.29 itself)
16:06:22 <ais523> 1.29 (a bugfix for 0.29)
16:06:24 <ais523> ]]
16:06:34 <tusho> ais523: Needs more imaginary numbers
16:06:41 <ais523> tusho: nah, I like it as it is
16:06:45 <ais523> it's simple and easy to understand
16:07:07 <tusho> ais523: no, it's not
16:07:11 <ais523> all I need to do now is figure out how to get darcs to number things like that
16:07:13 <tusho> negative numbers were crazy enough
16:07:18 <ais523> and how to get Debian to do things
16:07:18 <tusho> but imaginary numbers crazier
16:07:23 <tusho> and, you can't make darcs do that
16:07:26 <tusho> darcs just tracks revisions.
16:07:38 <ais523> tusho: it allows pre-commit scripts IIRC
16:07:44 <ais523> they can update the version number for me
16:07:51 <tusho> ais523: that'll be unpredictable
16:08:05 <ais523> not if only one person ever pushes
16:08:13 <ais523> each push would increment the version number
16:08:30 <tusho> ais523: what if you let me push because i'm so awesome
16:08:31 <tusho> huh
16:08:32 <ais523> anyway, figured out how it works yet?
16:08:33 <tusho> </conversation>
16:08:35 <tusho> and no
16:08:42 <tusho> ais523: anyway
16:08:46 <tusho> CLC-INTERCAL already uses negs
16:08:47 <ais523> tusho: it's lexicographical right-to-left, numerical within the sections
16:08:50 <ais523> I told you it was easy
16:08:55 <ais523> tusho: yes, but it interprets them in decimal
16:08:55 <tusho> so you should use something else
16:09:05 <tusho> if not imaginary numbers then something else
16:09:06 <ais523> tusho: I'm not just trying to be esoteric
16:09:12 <ais523> this is actually a good version number system
16:09:40 <ais523> how else could you number, for instance, a repository revision intended to eventually become part of the second beta for version 0.29?
16:10:03 <tusho> ais523: 0.29a
16:10:08 <tusho> or, if you wanna be more precise
16:10:12 <tusho> 0.29a<revision number>
16:10:12 <tusho> like
16:10:15 <tusho> 0.29a254
16:10:27 <tusho> so, that's a non-esoteric system. If we wanna be esoteric...
16:10:33 <ais523> tusho: no, that doesn't work
16:10:38 <ais523> it needs to become before beta 2
16:10:43 <ais523> but after beta 1
16:10:45 <ais523> in the versioning system
16:11:05 <ais523> so it would be 0.29beta2~pre1 or something silly like that in existing systems
16:11:12 <tusho> ais523: Make version numbers cellular automata.
16:11:28 <ais523> tusho: seriously, though
16:11:29 <tusho> ais523: Each revision = step the cellular automata one step.
16:11:39 <tusho> Do something more fancy for betas, alphas, minors and majors.
16:11:45 <tusho> It would certainly make debian hate you
16:12:01 <ais523> tusho: I'm writing a backwards-compatible C-INTERCAL to Debian version number compiler
16:12:04 <ais523> in INTERCAL
16:12:11 <SimonRC> bah
16:12:15 <ais523> hi SimonRC
16:12:18 <tusho> ais523: Do it with my cellular automata idea.
16:12:21 <tusho> BUT
16:12:22 <SimonRC> I wish I had the motivation to do useful stuff like you do
16:12:26 <tusho> Make the cellular automata description language
16:12:31 <tusho> made up of 0-9, minus, and .
16:12:32 <SimonRC> Well, useful compared to the stuff I do
16:12:41 <tusho> and - can only come before a number and a .
16:12:48 <tusho> and . can't be at the end or the start
16:12:51 <tusho> and . can't come after .
16:13:05 <tusho> That is, things like 3345.-45.2343.-346883.-34.342.4
16:13:07 <SimonRC> bbl
16:13:15 <ais523> does . or : come first in alphabetical order?
16:13:17 * ais523 checks
16:13:30 <ais523> . comes first
16:13:45 <ais523> now I just have to try to figure out the implications of that...
16:15:40 <tusho> ais523: you don't like my idea.
16:15:43 <tusho> GregorR: You there?
16:15:45 <ais523> no, I don't
16:15:55 <ais523> I'm actually trying to do something which is almost serious here
16:16:18 <ais523> my system is flexible enough to have release candidates for alphas for betas, if necessary
16:16:33 <ais523> and it can be expressed Debian-style if necessary
16:16:33 <tusho> ais523: you can do that with mine!
16:16:38 <tusho> ditto
16:16:39 <ais523> tusho: how?
16:16:53 <ais523> oh, and by Debian-style I mean also sorting correctly
16:16:56 <tusho> ais523: well, I'm not entirely sure, but I know it's _possible_
16:17:01 <tusho> here's the basic idea to the system
16:17:12 <tusho> - code up some kind of cellular automata thingy
16:17:20 <tusho> - find an initial pattern that grows and shrinks indefinitely
16:17:25 <ais523> I did have to download the source code for dpkg to figure out how its sorting worked, though
16:17:30 <tusho> - write an input language with that format
16:17:41 <tusho> - each 'most minor' release, step it
16:17:45 <tusho> I dunno what to do for more important releases
16:17:52 <tusho> ais523: oh, and because of repeating patterns, prefix it with the year
16:17:58 <tusho> so 2008.3345.-45.2343.-346883.-34.342.4
16:18:02 <tusho> well
16:18:05 <tusho> it'd be smaller most of the time
16:18:06 <tusho> like
16:18:13 <tusho> 2008.-34.5563.3563.-45861
16:18:17 <ais523> mine gives smaller names to the most important releases
16:18:32 <tusho> ais523: then you could step it until it shrinks N for more important releases
16:18:59 <ais523> also it embeds the C-INTERCAL version number at the end of the Debian version number
16:19:21 <tusho> ais523: I'm pretty sure you can convert mine to dpkg
16:19:26 <tusho> with a bit of magic
16:19:34 <ais523> oh, in theory you can convert anything to dpkg
16:19:36 <tusho> The most stupid solution is to make the debian version the generation number
16:19:40 <ais523> because you can convert anything to my system
16:19:43 <tusho> but there's gotta be better ways
16:19:47 <tusho> But that would work.
16:19:59 <ais523> mine is basically a binary tree
16:20:08 <ais523> expressed in numbers and hyphens and dots
16:20:13 <ais523> so you can insert anywhere into it
16:20:28 <tusho> ais523: Welp, I think my solution is very intercally
16:20:37 <ais523> tusho: then you don't get INTERCAL
16:20:44 <tusho> :<
16:22:17 <ais523> tusho: you understand how a tree-sort works?
16:22:21 <tusho> Yes
16:22:24 <ais523> my system's a serialisation of that
16:22:40 <ais523> thus making it obvious that you can add a new version number anywhere in the tree
16:22:55 <ais523> and it's pretty elegant too
16:23:17 <ais523> apart from the weird historical right-to-left reading, it's pretty much a perfect version number scheme
16:23:54 <ais523> just imagine how useful it would be for people like Firefox to be able to release a release candidate for 3.0
16:24:00 <ais523> and, say, call it 3.0.-1.1
16:24:11 <ais523> and then have 3.0.-1.2 available for the second release candidate
16:24:38 <ais523> and 3.0.-1.2.-1.130 (or whatever) available for their repository versions that were partially-fixed versions of the second release candidate
16:25:33 <tusho> ais523: I don't think they'd be so enthusiatc
16:25:36 <tusho> *enthusiastic
16:26:17 <ais523> but they don't have meaningful version numbers for those at the moment
16:26:32 <ais523> they end up with separate version number schemes for repo versions and released versions
16:30:32 <ais523> incidentally, 1.-1.2.-2.0.29 Debianises to 29:0~8.2~9.1.-1.2.-2.0.29
16:30:42 <ais523> ten's complement FTW
16:31:35 <tusho> jrj
16:31:36 <tusho> *hrh
16:31:37 <tusho> *heh
16:33:26 -!- Corun has joined.
16:35:32 <SimonRC> *whistle
16:36:12 * ais523 faces the terrifying prospect of having to do string handling in INTERCAL
16:36:42 <SimonRC> write a string library!
16:36:54 <SimonRC> is there a way to pass arrays as arguments?
16:36:57 <ais523> SimonRC: that would involve doing string handling
16:37:09 <ais523> SimonRC: well, you don't pass things as arguments, as such
16:37:15 <ais523> each variable is scoped individually
16:37:18 <SimonRC> yes
16:37:25 <ais523> so you pass values in globals and scope them to simulate argument passing
16:37:31 <ais523> that works for arrays just as well as it works for scalars
16:37:35 <SimonRC> Oh I know that...
16:37:53 <SimonRC> I wondered if you could somehow have array references
16:37:55 <Slereah_> Wait
16:38:00 <Slereah_> After the combine base
16:38:06 <SimonRC> so you don't have to copy things into specific arrays all the time
16:38:08 <tusho> HAHAHAHAHAHAHAHAAH:[
16:38:09 <tusho> [[Tell me what to use then. Having read as far as to page p. 22 in the K&R, it doesn't mention another way of printing ``".]]
16:38:18 <Slereah_> Ah, wrong window
16:38:20 <tusho> We should make a language with 50 ways of printing the empty string
16:38:38 <ais523> tusho: C has an infinite number of ways to print the empty string
16:38:47 <tusho> ais523: No, but I mean, nothing else
16:39:05 <ais523> don't all NOPs print an empty string, anyway?
16:39:18 <tusho> exactly
16:39:20 <tusho> taht's what's so hilarious
16:39:23 <ais523> SimonRC: there aren't exactly references
16:39:25 <tusho> someone posted a program with printf("");
16:39:30 <ais523> but you can have overloaded variables
16:39:31 <tusho> and someone laughed at it and told them why it was stupid
16:39:34 <tusho> and they responded with that
16:39:34 <ais523> that can do a similar thing
16:39:54 <ais523> you can't overload arrays in C-INTERCAL
16:39:59 <ais523> but you can in CLC-INTERCAL
16:40:04 <ais523> it's sort of like symlinking
16:40:20 <ais523> so you can, for instance, do DO .999 <- ",1/,2" SUB #1
16:40:32 <ais523> to give yourself a pretext to evaluate ,1/,2
16:40:40 <ais523> from then on ,1 is an alias to ,2
16:40:50 <ais523> and you can scope the aliases as much as you like
16:41:01 <SimonRC> sounds like it might work
16:41:08 <ais523> the issue, though, is that if someone STASHes ,2, the new value will be referenced by ,1 rather than the old one
16:41:12 <ais523> so you can't reference auto variables
16:41:14 <ais523> only globals
16:41:23 <SimonRC> yeah
16:41:38 <ais523> the only reason symlinks work is that filesystems don't have scoping rules
16:41:52 <ais523> although scoped filesystems are an interesting idea, now I think about it
16:42:04 <ais523> it would be a greatly improved way to do temporary files
16:42:16 <ais523> and chrooting, for that matter
16:42:36 <SimonRC> ais523: I agree
16:42:53 <SimonRC> It would be nice if there were a proper system call to create anonymous files and directories
16:43:21 <ais523> SimonRC: a scoped method would allow you to create named files and directories that you could see, but no other process could, that vanished when your process ended
16:43:22 <SimonRC> rather than doing a hope-its-atomic open-and-unlink
16:43:37 <ais523> and it wouldn't cause trouble if you picked the same name as another process
16:43:40 <SimonRC> ais523: anonymous directories might work quite well for that
16:43:51 <ais523> SimonRC: yes, they might be one way to implement them
16:43:55 <SimonRC> except...
16:44:24 <SimonRC> I fear that Java File objects will interact poorly with anonymous directories and such
16:44:41 <ais523> well, my method would let you name a tempfile anything
16:44:41 <SimonRC> If I recall correctly, they use full paths a lot.
16:44:49 <SimonRC> ais523: why name it at all?
16:44:54 <ais523> you could name it /etc/passwd and your program would still work
16:44:55 <tusho> ais523: so I came up with the craziest JS thing ever.
16:45:04 <SimonRC> ais523: oh, I see what you mean now
16:45:07 <ais523> SimonRC: so you can override a system file's contents like that
16:45:35 <SimonRC> PLan9's union filesystems are a bit like that
16:46:12 <ais523> I'm not surprised
16:46:25 <ais523> however, somehow I doubt they ended up inventing symlinks for variables in programming languages
16:46:39 <ais523> but scoped files and symlinked variables are both sensible concepts in some sense
16:46:47 <tusho> ais523: hardcore plan9ers would like to make variables symlinks, probably
16:46:52 <tusho> they like the fs quite a lot :P
16:46:58 <ais523> after all, Macs have references to files
16:47:05 <ais523> in the same way that you can have pointers to variables
16:47:14 <tusho> ais523: macs references to files are, uh, symlinks.
16:47:19 <ais523> tusho: no, as in numbers
16:47:25 <ais523> they aren't in the filesystem
16:47:30 <ais523> they're ints that can be passed from program to program
16:47:34 <ais523> and used internally
16:47:37 <tusho> ais523: uh, file descriptors?
16:47:43 <ais523> tusho: the file has to be open to do that
16:47:50 <ais523> I don't think most Unices can manage it
16:47:55 <ais523> but the Mac filesystem is weird
16:47:58 <tusho> sorry, I don't think os x is any different in this area
16:48:02 <tusho> ais523: HFS+ isn't that weird
16:48:14 <ais523> there are 6 different ways of representing a file IIRC
16:48:30 <ais523> it corresponds sort of to passing around inode numbers in a typical Unix program
16:48:32 <ais523> but saner
16:49:35 <ais523> hmm... does any programming language have permissions on variables?
16:49:52 <ais523> I suppose OO languages have private/protected/public, but it's not quite the same
16:50:03 <tusho> don't think so
16:50:10 <ais523> arguably some languages have things like character special variables
16:50:10 <tusho> ais523: you know, I really dislike filesystems
16:50:19 <tusho> because I don't think heirarchically.
16:50:23 <ais523> tusho: what would you use instead?
16:50:34 <ais523> although I think a multidimensional filesystem would be good
16:50:39 <ais523> it would be based on tagging, I think
16:50:41 <tusho> ais523: Something tagged. Multidimensional sounds nice.
16:50:44 <ais523> but tags could themselves be tagged
16:50:49 <tusho> yes
16:50:50 <tusho> that sounds very good
16:50:51 <ais523> so you could do hierarchies if necessary
16:50:56 <tusho> ais523: and, then, files are just tags
16:51:09 <tusho> turtle solutions are always nicer, I feel
16:51:19 <ais523> /etc/passwd would mean "a file tagged with (passwd tagged with an untagged etc)"
16:51:25 <tusho> ais523: kind of, yeah
16:51:27 <tusho> except it would be
16:51:35 <ais523> that way it's backwards-compatible to real filesystems
16:51:48 <tusho> a tag tagged with [the tag passwd tagged with [the tag etc tagged with []]]
16:51:48 <ais523> the difference would be that instead of, say, /home/ais523
16:51:58 <ais523> you could have /home&/ais523
16:51:58 <tusho> ais523: it would be /user/ais523
16:52:09 <tusho> a tag ais523 tagged with [the tag user tagged with []]
16:52:15 <tusho> ais523: and look, users are just tags!
16:52:21 <tusho> gosh, that's so elegant.
16:52:23 <ais523> tusho: I'd take that as corresponding to the user ais523
16:52:27 <tusho> ais523: yes
16:52:29 <tusho> users can just be tags!
16:52:36 <SimonRC> you lose canonical names
16:52:39 <tusho> also, with my idea, files could have subfiles
16:52:42 <ais523> whereas /user/ais523&/home would be the same as /home&/user/ais523
16:52:44 <tusho> SimonRC: of course you do. I don't see that as a bad thing
16:52:51 <tusho> ais523: I don't really like that idea
16:52:53 <tusho> why seperate the concepts
16:52:56 <SimonRC> and there are fewer safeguards against things having duplicate names or no names
16:52:57 <ais523> now I need some way to get /home/ais523 and /user/ais523/home to map to those
16:53:02 <tusho> mine lets you make EVERYTHING a tag
16:53:02 <ais523> tusho: the & just means 'tagged with both''
16:53:08 <ais523> tusho: so are mine
16:53:14 <ais523> but this is the multidimensionality I'm talking about
16:53:18 <tusho> ais523: I don't see why /user/ais523 is not perfect
16:53:24 <ais523> tusho: that's the user itself
16:53:27 <tusho> /user/ais523/passwd
16:53:28 <ais523> not eir home directory
16:53:31 <tusho> /user/ais523/code/c-intercal/
16:53:35 <tusho> what's wrong with that?
16:53:43 <ais523> tusho: clashes
16:53:56 <SimonRC> how does one divide up space between things and programs?
16:53:56 <tusho> ais523: wait, how about this:
16:53:57 <ais523> because, say, /user/ais523/group might be "www-data"
16:54:01 <tusho> wait, wait
16:54:03 <tusho> look:
16:54:20 <ais523> SimonRC: presumably, programs would be tagged with /bin
16:54:20 <SimonRC> you might have 1000 packages installed; what stops them colliding?
16:54:33 <tusho> /user/ais523/[code,c-intercal]
16:54:36 <tusho> err
16:54:36 <tusho> or
16:54:36 <ais523> SimonRC: well, /bin/pager might be ambiguous
16:54:42 <tusho> /[user,home]/ais523/[code,c-intercal]
16:54:43 <tusho> hmm
16:54:49 <tusho> ais523: really, we need tags to be predicates with arguments
16:54:56 <ais523> but /bin/pager&/less would be unambiguous, as would /bin/pager&/more
16:55:00 <tusho> and a nice way to do composition
16:55:11 <ais523> well, /package/less and /package/more, probably
16:55:15 <tusho> ais523: user.home/ais523/code.c-intercal
16:55:28 <SimonRC> ah, I see where you are coming from
16:55:30 <tusho> ais523: oh, and file extensions would be gone
16:55:37 <tusho> because they're just tags
16:55:41 <ais523> tusho's . is the same as my &, I think, just with a different precedence
16:55:52 <ais523> so having both would be simple enough
16:55:59 <SimonRC> I would like a bit of heirarchy though still...
16:56:01 <tusho> /user.home/ais523/documents/test
16:56:03 <tusho> /user.home/ais523/documents.pdf/test
16:56:05 <tusho> /user.home/ais523/documents.txt/test
16:56:10 <tusho> hey look, it's MultiViews :P
16:56:13 <SimonRC> some tags only make sense if certain other tags are applied
16:56:21 <ais523> SimonRC: that's why tags can be tagged themself
16:56:23 <tusho> SimonRC: have dependent tags then
16:56:27 <ais523> that's what the / does
16:56:30 <SimonRC> ah, ok
16:56:32 <ais523> so it looks like a normal system
16:56:42 <SimonRC> so you have a heirarchy of tags?
16:56:46 <ais523> SimonRC: yes
16:56:46 <tusho> SimonRC: no
16:56:49 <tusho> no
16:56:50 <tusho> you don't
16:56:58 <tusho> you have a folksonomy of tags
16:57:00 <ais523> except... not exactly a hierarchy
16:57:02 <tusho> (terirble word)
16:57:07 <ais523> and I don't know what folksonomy means
16:57:18 <tusho> ais523: you have 'a heirarchy of tags' as much as you have 'a heirarchy of files'
16:57:24 <tusho> you don't, because they're tagged
16:57:30 <tusho> not heirarchically sorted
16:57:45 <ais523> yes, well it isn't a hierarchy because, say, */documents makes sense
16:57:52 <ais523> that means "things tagged with documents"
16:57:58 <SimonRC> ok
16:58:01 <ais523> without specifying anything about what documents is tagged with
16:58:47 <ais523> tusho: are you sure about that /user.home/ thing?
16:58:59 <ais523> I would have thought it would be (/home./user/ais523)/documents/test
16:59:15 <ais523> because the document is in the home section, and belongs to user ais523
16:59:30 <tusho> ais523: not sure
16:59:32 <ais523> ah, but some tags are transitive
16:59:39 <ais523> it's not right to have all tags transitive, though
16:59:53 <ais523> but, for instance, if a tag is tagged /user/ais523, so should the thing it tags
17:00:02 <ais523> hmm... no, that's wrong too
17:00:20 <SimonRC> Well, I started off feeling that the whole system had feet of clay, but that feeling is going away.
17:00:59 <SimonRC> datestamps would be tags too?
17:01:06 <ais523> SimonRC: of course
17:01:14 <ais523> it would be great if there could be tags like "yesterday" too
17:01:20 <ais523> which are automanaged by the system
17:01:26 <SimonRC> you would definitely need an equivalent to the pwd
17:01:31 <SimonRC> in shells, at least
17:01:40 <ais523> SimonRC: well, my idea is you'd have a 'working tag'
17:01:46 <SimonRC> yes
17:01:48 <ais523> that's automatically prepended to any tag specification you use
17:02:07 <tusho> ais523: tags like yesterday - just add algorithmic tags
17:02:13 <ais523> tusho: yes
17:02:15 <tusho> [now the FS is undecidable, but who cares?]
17:02:41 <ais523> tusho: algorithmic tags could probably be inefficient, though
17:02:46 <SimonRC> some tags "change faster" than others, but only typicaly so
17:02:47 <ais523> for practical use I'd recommend special-casing them
17:03:14 <SimonRC> for example, the tag specifying the current user will change very rarely
17:03:38 <tusho> ais523: remember that everything is a tag
17:03:40 <tusho> not just the fs
17:03:40 <ais523> tusho: I think we need 3 precedences for the . operator
17:03:43 <tusho> I mean _everything_
17:03:45 <ais523> tusho: yes
17:03:53 <tusho> ais523: that is, the whole system is the kernel + tags
17:04:04 <tusho> it's like microkernels, but to the incomprehensible extreme
17:04:12 <SimonRC> there is something else you lose...
17:04:15 <tusho> and I love it
17:04:18 <ais523> tusho: what I mean, is, created/20080615 is a tag
17:04:21 <ais523> which is fine
17:04:24 <tusho> ais523: yes
17:04:26 <ais523> to store in a system somewhere
17:04:32 <SimonRC> given a set of tags, it is hard to tell if it identifies a unique file or not
17:04:32 <ais523> but yesterday shouldn't be stored
17:04:32 <tusho> ais523: except
17:04:36 <tusho> created/2008/06/15
17:04:40 <tusho> or more specifically
17:04:41 <tusho> created/2008/06/15/*
17:04:45 <tusho> since seconds etc will be tracked too
17:04:47 <tusho> so
17:04:48 <ais523> SimonRC: that isn't much of a problem
17:04:52 <tusho> (created/2008/*)/*
17:04:57 <tusho> will get you all tags created 2008
17:04:59 <ais523> you could always write inode/100 if you needed to specify a file definitely
17:05:01 <SimonRC> and adding a file might change an unambiguous tag into an ambiguous one
17:05:04 <tusho> ais523: good or what.
17:05:15 <ais523> SimonRC: yes, but that's deliberate
17:05:18 <tusho> / is a bit of a jarring character though
17:05:25 <tusho> (created,2008,*),*
17:05:29 <ais523> tusho: / means tagged with
17:05:29 <tusho> meh .. don't like that
17:05:34 <tusho> ais523: yes
17:05:35 <ais523> and we need three ways to do 'and'
17:05:36 <tusho> it's a bit jarring
17:05:38 <tusho> considering how common it is
17:05:41 <tusho> and no, we don't
17:05:42 <tusho> we just need parens
17:05:47 <ais523> yes, but for simple use
17:06:00 <tusho> (created*2008*?)*?
17:06:02 <tusho> hmmm
17:06:06 <ais523> say we have low-precedence &, high-precedence . and onesided-precedence ,
17:06:06 <tusho> (created#2008#*)#*
17:06:19 <ais523> then it's /user/ais523,home/documents,pdf/test
17:06:22 <tusho> ais523: I prefer , over all of them
17:06:22 <ais523> that looks good
17:06:27 <ais523> if a little hard to understand
17:06:27 <tusho> so let's just have ,
17:06:38 <ais523> also, , is the most useful of them
17:06:54 <SimonRC> ah, so we are still keeping inodes or equivalent?
17:06:56 <ais523> a/b,c/d is ((a/b),c)/d
17:07:03 <tusho> ais523:
17:07:04 <tusho> (/created/2008/*)/user/ais523,home/documents,pdf/*
17:07:05 <ais523> SimonRC: they'd be a physical thing
17:07:11 <tusho> all pdf documents in ais523's home created in 2008
17:07:22 <tusho> utter. win.
17:07:27 <ais523> tusho: no, that's wrong
17:07:30 <tusho> gah
17:07:34 <tusho> it should be
17:07:37 <SimonRC> if two files end up with exactly the same set of tags, how do you distinguish them?
17:07:38 <tusho> /created/2008/*,/user/ais523,home/documents,pdf/*
17:07:40 <tusho> ais523: right?
17:07:40 <ais523> /created/2008/*&/user/ais523,home/documents,pdf/*
17:07:42 <tusho> SimonRC: they couldn't
17:07:48 <tusho> since tags would include their inode and similar
17:07:51 <ais523> tusho: pretty much
17:07:58 <SimonRC> ok
17:07:59 <ais523> it's just a case of operator precedence
17:08:13 <tusho> ais523:
17:08:13 <tusho> (/created/2008/*),/user/ais523,home/documents,pdf/*
17:08:21 <tusho> don't need &, really
17:08:22 <ais523> yes, that's also correct
17:08:23 <SimonRC> this gun can be pointed at whole new feet, it seems
17:08:25 <tusho> it's too uncommon, ais523
17:08:30 <tusho> , will be fine
17:08:53 <ais523> wait, no, you've put the parens on the wrong side of ,
17:09:03 <tusho> ais523: ahh
17:09:08 <tusho> ok, we need one more operator then
17:09:10 <tusho> how about $
17:09:11 <tusho> like haskell
17:09:17 <ais523> /created/2008/*,(/user/ais523,home/documents,pdf)/*
17:09:21 <tusho> /created/2008/*$/user/ais523,home/documents,pdf/*
17:09:24 <ais523> tusho: that's what I was using & for
17:09:39 <tusho> ais523: right
17:09:39 <ais523> hmm... does the , include an implied /
17:09:45 <tusho> ais523: no
17:09:49 <tusho> hm
17:09:51 <ais523> or do we make tagged "home" the same as untagged "home"
17:09:52 <tusho> do we even need /
17:09:57 <ais523> your way's more elegant
17:10:04 <tusho> ais523: i do believe that saying: 'home' tagged with anything
17:10:06 <tusho> doesn't make much sense
17:10:07 <ais523> but incapable of emulating a standard UNIX filesystem
17:10:12 <tusho> since a load of those 'home's will mean nothing
17:10:18 <ais523> tusho: as in, what if I want a dir called "home"?
17:10:20 <tusho> and I don't think we should think about backwards compatibility
17:10:23 <tusho> ais523: directories don't exist
17:10:28 <tusho> but you're right
17:10:32 <tusho> don't imply /
17:10:32 <ais523> well, I'm thinking of backward compatibility
17:10:38 <tusho> well, don't
17:10:41 <tusho> this is too strange to
17:10:55 <tusho> /created/2008/*&/user/ais523,home/documents,pdf/*
17:10:59 <tusho> I like that
17:11:01 <ais523> so do I
17:11:16 <ais523> where documents is a tag I've defined myself, in that example
17:11:26 <tusho> ais523: you don't define tags
17:11:28 <tusho> you just use them
17:11:33 <ais523> well, yes
17:11:36 <tusho> and they automagically exist
17:11:42 <ais523> I mean that that means "documents with ais523's interpretation"
17:11:49 <tusho> yes
17:12:10 <tusho> ais523: presumably, you'd make /user/ais523,home/documents tagged with /documents
17:12:16 <tusho> (or /data/documents, whatever the OS calls them)
17:12:34 <ais523> tusho: yes
17:12:52 <tusho> ais523: am I the only one who desperately wants to use a system where _EVERYTHING_ is this tag system, like, right now?
17:12:54 <ais523> so it could also be written /created/2008/*&/user/ais523,documents,pdf/*
17:12:58 <ais523> tusho: no
17:13:02 <tusho> good
17:13:08 <tusho> why has nobody thought of this before?
17:13:14 <tusho> i've heard of non-heirarchical FS'
17:13:16 <tusho> but not to this degree
17:13:19 <ais523> probably someone has but hasn't been bothered to implement it
17:13:22 <tusho> and not one that leaves the idea of an FS behiind
17:13:25 <tusho> and makes EVERYTHING in the tag system
17:14:01 <ais523> well, mine would be backwards-compatible too
17:14:09 <ais523> so systems that only knew about FSs would still work
17:14:29 <ais523> sort of the same way that DOS programs which only understand short filenames nevertheless run on 32-bit Windows
17:14:48 <tusho> ais523: if EVERYTHING is in the tag system, you can kiss native compatibility goodbye
17:14:53 <tusho> you can build an emulation layer
17:15:00 <tusho> but this is only truly amazing if it's unique
17:15:22 <ais523> well, the emulation layer could just use my translations
17:15:34 <ais523> and prefix underscores to filenames or something like that if there are clashes
17:15:39 <tusho> ais523: anyway, it occurs to me that file lookups are TC
17:15:42 <ais523> but nevertheless everything will be a tag
17:15:50 <ais523> tusho: really? I can't think of a way to do a loop
17:16:04 <tusho> ais523: no, but there'll be some tag somewhere a long the line that lets you
17:16:05 <ais523> they're boolean search operations
17:16:05 <tusho> you just know it
17:16:16 <tusho> if processes, and EVERYTHING are tags
17:16:28 <ais523> well, * and symlinks allow loops as it is
17:16:39 <ais523> and what would be done here wouldn't even be symlinks, or even hardlinks
17:16:41 <ais523> more like be-links
17:16:46 <ais523> where two things are the same things
17:16:49 <ais523> but written different ways
17:18:22 <ais523> oh dear, this is starting to remind me of Feather again
17:18:26 <tusho> ais523: indeed
17:18:52 <ais523> tusho: here's a good reason for , to imply /:
17:19:00 <ais523> you could have a versioned tagsystem
17:19:19 <ais523> where, say, if a 'file' was deleted, it would no longer be accessible except by using versioning tags
17:19:35 <ais523> but you could still find it using wildcard prefixes
17:20:20 <tusho> ais523: meh
17:20:24 <tusho> it removes too much flexibility
17:20:27 <tusho> things become hideously verbose
17:20:29 <ais523> no it doesn't
17:20:37 <tusho> ais523: write your pdf thing with it
17:20:44 <tusho> PDFs in your documents tag in your home created 2008
17:20:47 <ais523> tusho: it looks the same
17:20:52 <tusho> how can it
17:20:53 <ais523> because I was considering pdf to be a global tag
17:21:00 <tusho> ais523: but the 'documents' tag was local
17:21:02 <tusho> to ais523
17:21:05 <SimonRC> what would be a good way to copy a file?
17:21:06 <ais523> tusho: yes
17:21:09 <ais523> , has one-sided scoping
17:21:14 <tusho> ais523: yeck
17:21:23 <ais523> tusho: not really
17:21:31 <ais523> because you want to factor in lots of global tags
17:21:37 <ais523> your meaning, you just change the last , to .
17:21:44 <ais523> and then it's ais523's pdf tag
17:22:03 <ais523> well, say I've defined documents and pdf tags
17:22:29 <ais523> then it would be /user/ais523/documents.pdf/*
17:22:43 <ais523> whereas /user/ais523/documents,pdf/* uses the global pdf tag
17:23:10 <ais523> and /user/ais523/documents&pdf/* selects either my documents tag, or any PDF file
17:23:14 <ais523> so the last isn't particularly usful
17:23:20 <tusho> ais523: it should be ,.pdf
17:23:27 <ais523> ,type/pdf probably
17:23:31 <tusho> ais523: no
17:23:33 <tusho> err
17:23:34 <tusho> I mean
17:23:35 <tusho> it should be
17:23:36 <tusho> bah
17:23:37 <ais523> but with an abbreviation
17:23:39 <tusho> basically, I don't like , implying /
17:23:40 <tusho> sorry.
17:23:44 <tusho> it just seems inelegant
17:23:47 <ais523> ,mimetype/application/pdf
17:24:05 <ais523> tusho: well, use . then
17:24:06 <ais523> which doesn't
17:24:10 <ais523> I invented , as shorthand
17:24:20 <ais523> because it'll come up so often
17:24:57 <ais523> it's shorthand for add ( at the start of the string and replace the , with )./
17:25:04 <ais523> it's just that comes up a lot
17:25:23 <ais523> anyway, at this rate it's probably best for us both to invent things in our own systems
17:25:36 <ais523> and see which one looks better
17:25:38 <tusho> ais523: nah, they're close enough
17:25:43 <tusho> but
17:25:46 <tusho> ,/
17:25:46 <ais523> incidentally, permissions could be done like this too
17:25:48 <tusho> is trivial enough
17:25:52 <tusho> so just let , not imply it
17:25:52 <ais523> as is ,*
17:25:54 <tusho> and get more elegance
17:26:06 <ais523> tusho: , is a typing aid
17:26:11 <tusho> ais523: yes, but it's a terrible one
17:26:11 <ais523> so use it for what it's usually used for
17:26:15 <tusho> it's not a useful one
17:26:21 <tusho> and it impacts the elegance of the system
17:27:31 <ais523> tusho: let me come up with some paths in my system to see how much I use the three operators
17:28:36 <tusho> ais523: hmm, wait
17:28:45 <tusho> isn't /* superflouous?
17:28:52 <tusho> /user/ais523,home/documents == /user/ais523,home/documents/*
17:28:55 <ais523> /user/ais523/esoteric/intercal,home.(/apps/darcs/repos)
17:29:02 <ais523> tusho: not exactly
17:29:06 <ais523> the first is the tag itself
17:29:09 <ais523> the second is all things tagged with ti
17:29:11 <ais523> s/ti/it
17:29:18 <ais523> s/$/\//
17:29:19 <tusho> ais523: a tag is defined by its tags, and the tags tagged with it
17:29:30 <tusho> therefore, I'd say /* is wrong
17:29:36 <ais523> well, you normally need to distinugish between a directory and the files in it
17:29:46 <tusho> ais523: but let's pretend you don't
17:29:48 <ais523> e.g. suppose I want to tag a file with /user/ais523/mynewtag
17:29:58 <ais523> that's different from tagging a file with all tags tagged by /user/ais523/mynewtag
17:30:05 <tusho> ais523: just wait
17:30:05 <ais523> i.e. tagging it with /user/ais523/mynewtag/*
17:30:10 <tusho> /created/2008&/user/ais523,home/documents
17:30:19 <tusho> so much more elegant without the /*s
17:30:34 <ais523> tusho: that's just a scoping problem
17:30:59 <ais523> actually, what does the 'home' tag even mean?
17:31:04 <ais523> it should mean 'stored on the home partition'
17:31:12 <tusho> ais523: don't think about low level details like that
17:31:18 <ais523> no, I mean semantically
17:31:20 <ais523> what does /home means
17:31:29 <ais523> it means back this up preferentially over other things
17:31:33 <tusho> ais523: it means a user's home
17:31:34 <ais523> s/means/mean/
17:31:40 <ais523> tusho: that concept doesn't exist now
17:31:46 <tusho> ais523: yes it does
17:31:55 <tusho> the home tag is how you differenciate a user from their file storage
17:31:57 <ais523> well, is what important the fact that it's in my home
17:32:05 <ais523> or that it's mine, and it's home?
17:32:16 <ais523> say we're working on something together
17:32:25 <ais523> wouldn't it be great to tag it with something like /user/ais523.ehird/ESO
17:32:30 <tusho> ais523: no
17:32:35 <tusho> that'd go in /projects
17:32:37 <tusho> or similar
17:32:44 <ais523> as in, things that we both tag with that
17:32:45 <tusho> and projects beloning to ais523 would be tagged /user/ais523
17:32:54 <ais523> <tusho> that'd go in /projects
17:32:56 <tusho> and projects beloning to everyone in the group ESO would be tagged /group/ESO/*
17:32:56 <ais523> you miss the point
17:33:08 <ais523> it goes in /projects AND /user/ais523 AND /user/ehird
17:33:14 <ais523> but it should also go in /home
17:33:23 <ais523> because of the semantics that has for backup, etc
17:33:27 <tusho> i think we've reached the flaws of this system
17:33:40 <ais523> I'm beginning to think that /user/ais523/tag should mean "tag as defined by /user/ais523"
17:33:58 <ais523> however, your meaning of home is probably a good one to prevent problems
17:34:02 <ais523> except I think it should be called tags
17:34:09 <ais523> as in, things I define
17:34:12 <ais523> rather than things that tag me
17:34:15 <tusho> ais523: heh, I think we're kind of reaching a mental block
17:34:17 <tusho> like
17:34:19 <tusho> there's this huge unifying thing in front of us
17:34:21 <tusho> that makes everything elegant and fitting
17:34:23 <tusho> BUT
17:34:29 <tusho> because our minds are so stubborn, like all humans' minds
17:34:33 <tusho> and the fact that paths superficially look similar
17:34:37 <tusho> our minds are blocking it out
17:34:54 <ais523> no, I don't think that's what it is
17:35:05 <tusho> ais523: really? Because whenever I reach one of them stuff like this always happens
17:35:16 <ais523> I sort of get how this new system works
17:35:23 <ais523> I'm just having problems trying to figure out how it's organised
17:35:55 <ais523> the issue is, I think, distinguishing between a tag as an object (something you can do things with) and a tag as a subject (i.e. it tags things)
17:35:56 <tusho> ais523: maybe a slight break will help
17:36:04 <tusho> because I just figured out a crazily silly javascript workflow
17:39:23 <tusho> ais523: interested?
17:39:25 <tusho> it's very silly
17:39:33 <ais523> moderately interested
17:39:38 <ais523> depending on what it is
17:40:03 <tusho> ais523: http://ecmascript4.com/ <-- a python program that converts most of the stable parts of ECMAScript 4 to regular browser-accepting JS
17:40:08 <tusho> now, the crazy idea is
17:40:15 <tusho> set up a workflow that automatically compiles them (obviously)
17:40:21 <tusho> now, write the serverside using Rhino
17:40:27 <tusho> which is mozilla's java implementation of JS
17:40:33 <tusho> you can do this because it can interface with java libs
17:40:44 <tusho> so write ecmascript4 that uses rhino to interface a java webserver, etc
17:40:52 <tusho> then, write the clientside in ecmascript4 too
17:40:54 <tusho> and,
17:41:03 <tusho> have a 'common' part which contains ecmascript4 for client and server side
17:41:05 <tusho> all automatically compiled
17:41:06 <tusho> >:D
17:41:33 <ais523> hmm
17:41:50 <ais523> the way things are going, you're going to end up combining clientside and serverside somehow
17:41:52 <ais523> which gives me an idea
17:42:01 <ais523> a website that doesn't run on a server at all
17:42:12 <ais523> everything is entirely client-side
17:42:16 <tusho> ais523: been done
17:42:18 <tusho> oh so many times before
17:42:22 <ais523> whenever a new client visits it, they actually get the information from the other clients
17:42:29 <ais523> and there's no server involved
17:42:35 <ais523> just the information flying backwards and forwards
17:42:46 <ais523> if ever nobody's visiting the website, it simply ceases to exist
17:42:53 <tusho> ais523: you can't do p2p communication with JS
17:42:55 <tusho> sorry.
17:43:02 <ais523> tusho: no, you'd have to use Java
17:43:07 <tusho> ais523: eek
17:43:12 <tusho> if anything, Flash, please ;)
17:43:15 <tusho> at least flash is stable
17:43:24 <tusho> also, make it a 1x1 px flash that is off the screen
17:43:29 <tusho> and just make it interface with JS (it can do that)
17:43:29 <ais523> tusho: well, personally I'd say "anything but Silverlight"
17:43:30 <tusho> to build the page
17:43:35 <tusho> ais523: quite
17:43:40 <tusho> anyway
17:43:40 <ais523> Java's security model is much better than Flash's, though
17:43:46 <tusho> I got my idea after seeing http://280slides.com/Editor/ runs on 'Objective-J'
17:43:46 <ais523> which is why I have Java but not Flash installed
17:43:48 <tusho> which I told you about
17:44:03 <tusho> which is, essentially, JS with Objective-C class & method sending syntax
17:44:10 <tusho> and some functions & constants like objective-c
17:44:17 <tusho> it's very very crazy
17:44:19 <tusho> and perhaps not that logical
17:44:21 <tusho> but I can actually understand it
17:44:26 <tusho> I mean
17:44:27 <tusho> why they did it
17:45:09 <tusho> 'cause http://280slides.com/Editor/1213027183/Document.j doesn't actually look all that bat
17:45:10 <tusho> *bad
17:45:19 <tusho> ais523: but then I thought, wait a minute, ecmascript4 has all of this
17:45:29 <tusho> nice classes, strong typing, good error handling, all of that
17:45:35 <tusho> and I came up with my Evil Idea.
17:45:38 <ais523> yes, the first thing I noticed was that it was typed
17:45:48 <tusho> ais523: optionally, though
17:46:12 <tusho> ais523: select the Structural types example
17:46:14 <tusho> it's ADTs!
17:46:16 <tusho> like haskell
17:46:22 <ais523> I'm slightly disappointed that it has classes, though
17:46:27 <tusho> it has parametized types, like Java, too, check that example
17:46:31 <tusho> ais523: yes, I prefer prototype inheritance
17:46:32 <tusho> but still
17:46:35 <tusho> it looks really nice
17:46:36 <ais523> but I suppose it would have been too much to ask for them to use the IO or Self method
17:46:46 <tusho> ais523: It's Io
17:46:46 <tusho> not IO
17:46:50 <ais523> ok
17:46:54 <tusho> also, check out hte Typed higher-order functions thing
17:46:56 <ais523> well, let me try opening it in FF
17:47:00 <tusho> it's scary but it looks like C# :-P
17:47:05 <ais523> the examples dropdown doesn't work in Konqueror
17:47:08 <tusho> oh, it has namespaces too
17:47:14 <tusho> and union types..
17:47:19 <tusho> (that is var test : (String|int|double) = "test";)
17:47:34 <tusho> ais523: and nullable types, whereby you can specify with a type what can contain a null and what not
17:47:39 <tusho> (i.e. Java I'm Looking At You)
17:47:52 <tusho> it has a typed browser api, too
17:48:07 <ais523> tusho: that's the same for all browsers?
17:48:20 <tusho> ais523: It's just the w3c dom.
17:48:25 <tusho> Which everything but IE4 supports, really.
17:48:35 <ais523> document.all
17:49:01 <tusho> ais523: don't use document.all.
17:49:08 <ais523> no, I don't
17:49:12 <ais523> not nowadays, anyway
17:49:16 <tusho> IE supports the regular dom too, you know
17:49:20 <ais523> and I translated my old programs from it
17:49:32 <ais523> tusho: it's what Microsoft teach, in the hope that people will end up writing IE-only programs
17:49:51 <ais523> anyway I learnt the DOM originally by writing reflective JS programs to look at it
17:49:59 <tusho> ais523: *used to teach
17:49:59 <ais523> nowadays I generally use the Mozilla docs, which are pretty good
17:50:07 <ais523> tusho: they've fixed that?
17:50:08 <ais523> that's good
17:50:15 <tusho> ais523: they're getting better
17:50:20 <ais523> tusho: in some cases
17:50:24 <tusho> the IE team aren't evil, from what I've read of their blog
17:50:25 <ais523> I think they're confused
17:50:27 <tusho> just a bit misguided sometimes
17:50:32 <ais523> most of the employees aren't evil
17:50:32 -!- kar8nga has left (?).
17:50:33 <tusho> and, yes a bit confused
17:50:45 <tusho> i think they just need some time to catch up
17:50:53 <tusho> they're a bit slow, though, admittedly
17:51:00 <ais523> I think the company itself may have become sentient
17:51:07 <ais523> and is doing evil things against the wishes of its employees
17:51:09 <SimonRC> heh
17:51:22 * SimonRC points ais523 at the Ubersoft comic
17:51:22 <tusho> ais523: LOL! Oh lord this ecmascript 4 compiler sucks hard
17:51:27 <tusho> [[It is licensed under Creative Commons Attribution-Noncommercial-Share Alike 3.0
17:51:27 <ais523> after all, its management structure is sufficiently complicated that I wouldn't be surprised if it was TC
17:51:27 <tusho> <http://creativecommons.org/licenses/by-nc-sa/3.0/>
17:51:27 <tusho> which basically means you can use it freely for non-commercial purposes.]]
17:51:34 <tusho> Creative Commons almost = FAIL by itself
17:51:39 <tusho> but creative commons NONCOMMERCIAL?
17:51:42 * tusho dies laughing
17:51:47 <ais523> oh, CC for code
17:51:50 <ais523> yes, that's wrong
17:51:58 <ais523> for a moment I was wondering why you were so agitated
17:52:03 <tusho> ais523: CC's NC licenses aren't even OSI or DFSG or anything
17:52:10 <ais523> well, no
17:52:15 <tusho> unacceptable
17:52:21 <ais523> but more to the point, they don't take into account the fact that code can be compiled
17:52:22 <tusho> ais523: oh and the translator doesn't even include the source
17:52:27 <tusho> it's a load of *.pyc files
17:52:29 <tusho> (bytecode)
17:52:42 <ais523> CC-by-sa can almost survive for interpreted languages
17:52:44 <ais523> almost
17:52:50 <ais523> but for compiled languages it just fails
17:53:26 <tusho> ais523: oh lol:
17:53:28 <tusho> [[(Sorry for the parentheses, haven't figured out how to enter HTML in blogger)]]
17:53:33 <tusho> they don't even know html entities..
17:54:41 <ais523> `
17:54:55 <SimonRC> (I justify my company's work by saying that we're a service company, not a product company)
17:55:06 <tusho> ais523: May I humbly suggest using § instead?
17:55:08 <tusho> It's more elegant.
17:55:09 <ais523> SimonRC: what does your company do?
17:55:16 <ais523> tusho: it's harder to type
17:55:22 <tusho> ais523: no it's not
17:55:30 <ais523> tusho: what sort of keyboard are you using?
17:55:34 <tusho> ais523: apple
17:55:35 <tusho> alt-5 ;)
17:55:44 <ais523> ` is on my keyboard, without even pressing modifier keys
17:55:47 <ais523> it's to the left of 1
17:55:53 <tusho> ais523: we get all the funnest modifier keys on alt, you see.
17:56:00 <tusho> err
17:56:02 <tusho> unicode chars
17:56:07 <tusho> -ø,˚,¯˝ð•ª¥œª´•¶º•˚ª•‚—·°̄·° ̑̆̂̄°‡‡‡̋̂̆̀
17:56:16 <ais523> and alt-5 switches to the fifth tab in most programs running on Ubuntu
17:56:29 <ais523> they mess with the keyboard shortcuts if they don't follow the Ubuntu standard
17:56:34 <SimonRC> we make stuff that processes tax forms
17:56:40 <ais523> as do Debian with their keyboard standards
17:56:47 <ais523> notably the backspace/delete thing in Emacs
17:56:53 <SimonRC> I spend much of my time:
17:58:01 <SimonRC> writing Java that takes in Excel spreadsheets and produces xml that it uses to modify xml that specifies how another java program should produce some more xml that processes xml
17:58:31 <ais523> SimonRC: that sounds like you should submit it to thedailywtf
17:58:59 <SimonRC> it's not bad though
17:59:07 <SimonRC> apart from the coice of technologies
17:59:11 * ais523 remembers finding that OpenOffice's scripting language was so awful that I just went and parsed .ods with a Perl program I wrote myself instead
17:59:35 <ais523> I like OpenDocument format, because I managed to figure out how it worked even without docs, just from the content of the file itself
18:00:07 <ais523> tusho: is it worth trying to decompile their code?
18:00:11 <tusho> no
18:00:15 <tusho> python's thing is a stack machine
18:00:20 <ais523> ah
18:00:21 <tusho> so you won't get much useful
18:00:27 <ais523> decompiled Java tends to be very useful
18:00:32 <tusho> ais523: so since ECMAScript 4 is out of the question, what other language should I hybridise :P
18:00:41 <ais523> tusho: Smalltalk!
18:00:49 <tusho> ais523: objective-c is basically c+smalltalk
18:00:50 * ais523 imagines a Smalltalk to JS compiler
18:00:55 <tusho> so objective-j is basically js+smalltalk
18:00:57 * SimonRC goes away for breakfast and radio 7.
18:01:14 -!- oerjan has joined.
18:01:33 <ais523> tusho: either that, or just wait for a Feather interp with the required features to spontaneously pop into existence
18:01:45 <tusho> ais523: ooooh
18:01:47 <ais523> however, that's ridiculously unlikely, which is why bootstraps are generally needed
18:01:48 <tusho> Feather in JS
18:01:52 <tusho> that would work really well
18:01:58 <tusho> since you could share interps you make with it
18:02:01 <ais523> tusho: actually, if you can do continuations easily, it would work well
18:02:06 <tusho> ais523: yes
18:02:08 <tusho> continuation passing style
18:02:11 <ais523> JS has all the other features needed
18:02:21 <tusho> ais523: i have a new project: JS -> CPS JS
18:02:33 <ais523> I was thinking about a lambda + call/cc interp in C
18:02:36 <tusho> it'll be part of Feathejs
18:02:43 <tusho> (Feathers? Feathejs? Get it?)
18:02:44 <ais523> whose only purpose was to optimise for the operations Feather did
18:02:48 <tusho> ais523: naww
18:02:52 <tusho> JS will be more fun
18:02:57 <tusho> anyway, i'll go make a feathejs.git
18:02:59 <ais523> tusho: I'm thinking about computational order here
18:03:17 <tusho> ais523: the good thing about feather in JS is that it'll be totally detached from traditional consoles
18:03:24 <tusho> since it'll be the dom
18:03:28 <tusho> on the downside
18:03:30 <tusho> it'll be the dom
18:03:36 <ais523> the major unusual operation in Feather is giving an argument to a continuation which is almost identical to what the call/cc returned in the first place
18:04:06 <ais523> that can be optimised to prevent having to rerun the whole program since the call/cc, in many cases
18:04:15 <tusho> ais523: what should I write js2cps in do you think?
18:04:17 <tusho> JS? :-P
18:04:26 <ais523> JS is not a bad choice
18:04:54 <tusho> ais523: hmm
18:04:57 <tusho> the browser itself should do the cps
18:05:03 <tusho> it'll load the cps translator
18:05:07 <tusho> then make a request to the feathejs source
18:05:09 <tusho> then run the cps translator
18:05:11 <tusho> then eval
18:05:21 <ais523> tusho: it depends on how client-side you're doing things
18:05:25 <ais523> you like hobix, for instance
18:05:41 <tusho> ais523: well, for feathejs it just seems RIGHT
18:05:44 <ais523> ok
18:05:50 <tusho> it will have a server-side for sharing feather images, though
18:05:54 <ais523> this is going to be hilariously inefficient, though
18:05:58 <tusho> of course
18:05:59 <ais523> anyway, it needs to be client-side
18:06:00 <tusho> so is Feather
18:06:04 <tusho> and no
18:06:09 <tusho> the sharing app will be server-side
18:06:15 <tusho> since I don't want people tampering with that, it's dangerous ;)
18:06:20 <ais523> tusho: because say if you're writing a feather interp in JS
18:06:22 <tusho> but the actual thing that saves it will be writteni n feather
18:06:36 <ais523> and you're compiling into JS-with-continuations
18:06:42 <ais523> that then needs to be compiled into JS-with-CPS to run
18:06:50 <ais523> anyway, a Feather interp in Feather is trivial
18:06:55 <ais523> because it has eval
18:07:00 <ais523> well, almost
18:07:04 <ais523> the difference is:
18:07:13 <ais523> most languages have eval so that you can build code at runtime
18:07:19 <ais523> Feather has eval so that you can modify it
18:07:36 <ais523> and yes, modifying eval does change the syntax of the language
18:08:16 <tusho> ais523: I think we should write js2cps first
18:08:19 <tusho> then worry about feathejs
18:08:19 <tusho> :P
18:08:20 <ais523> yes
18:08:40 <tusho> ais523: shall we just call feathejs ... feather?
18:08:50 <tusho> it seems official enough if we're both working on it
18:08:50 <ais523> why?
18:08:55 <tusho> and it's on eso-std.org
18:08:58 <tusho> ais523: feathejs is a mouthful
18:08:59 <ais523> it's rare to call the interp the same thing as the lang
18:09:02 <tusho> ...
18:09:03 <tusho> what
18:09:03 <ais523> call it feathers
18:09:05 <ais523> as a compromise
18:09:06 <tusho> no it's not
18:09:09 <tusho> it's terribly common
18:09:15 <tusho> Ruby, Python, Perl.
18:09:17 <ais523> tusho: actually, more commonly the lang is named after the interp
18:09:19 <tusho> (don't go on about Perl vs perl.)
18:09:24 <tusho> ais523: well, yes
18:09:27 <ais523> e.g. those three cases
18:09:38 <ais523> but when the lang's named first, I reckon the interp should be called something else
18:09:43 <tusho> ais523: feathers will just make people mix up feather and feathers
18:09:47 <ais523> I like the idea of multiple feather interps
18:09:50 <ais523> being possible
18:09:51 <tusho> alright then
18:09:53 <tusho> feathejs
18:10:11 <ais523> after all, feather images /are/ portable between interps
18:10:22 <ais523> although reloading them on the same interp is much faster than porting them from one interp to another
18:10:43 <tusho> ais523: btw, who should own /home/feathejs?
18:10:46 <tusho> tusho:feathejs?
18:10:57 <ais523> yes, I think so
18:10:59 -!- sebbu2 has joined.
18:15:36 <tusho> ais523: git clone ssh://eso-std.org/home/feathejs/feathejs.git
18:15:48 <tusho> only one file there, and it's the runtime library for js2cps
18:16:26 <ais523> that's a short runtime library
18:16:47 <ais523> also, that return looks wrogn
18:16:50 <ais523> s/wrogn/wrong/
18:16:52 <ais523> this is CPS, right?
18:17:00 <tusho> ais523: it's fully correct, sorry
18:17:03 <tusho> because you finish it off like this
18:17:08 <tusho> main(function (x) { return x; });
18:17:16 <tusho> besides, 'return' is an optimization hint
18:17:24 <tusho> it means: 'this is the end of this call stack thingy'
18:17:38 <tusho> the Chicken scheme compiler does CPS conversion and it does his
18:17:41 <ais523> oh, that's going to be processed by js2cps too?
18:17:44 <tusho> ais523: no
18:18:03 -!- sebbu has quit (No route to host).
18:18:03 -!- sebbu2 has changed nick to sebbu.
18:18:04 <tusho> ais523: it's fully correct, just trust me.
18:18:08 <tusho> anyway
18:18:12 <tusho> since we're still using the js stack
18:18:16 <tusho> we will run out of it eventually
18:18:18 <tusho> which is where the wonderful
18:18:28 <tusho> super-delicious BAKER TRAMPOLINE THINGY WHAT'SITSCALLED
18:18:37 <tusho> comes in. Basically, in C, it's a setjmp/longjmp.
18:18:40 <ais523> the CPS conversion is function(a,b) { /* code */ return c; /* code */} into function(cont,a,b) { /* code */ cont(c); /* code */}
18:18:43 <tusho> And then you go back to the latest stack frame
18:18:48 <tusho> ais523: no
18:18:51 <tusho> it's to return cont(c);
18:19:04 <tusho> perhaps you should read up on why you should do that.
18:19:05 <ais523> ah, for tail-recursion in the JS interp itself?
18:19:32 <tusho> ais523: yes, pretty much
18:19:34 <tusho> it's just correct
18:19:41 <tusho> ais523: anyway, basically
18:19:44 <tusho> since we still use the js stack
18:19:45 <ais523> probably written CPS never needs to do returns, but they can be useful to avoid running out of stack
18:19:49 <tusho> but we keep the continuations along
18:19:54 <tusho> only the top stack element is useful
18:19:58 <ais523> yes
18:19:58 <tusho> while the others just take up space
18:20:00 <tusho> what we do is
18:20:00 <ais523> yes
18:20:07 <tusho> we let it grow, until we have, say, 100 elements
18:20:13 <tusho> then, we throw an exception down
18:20:20 <tusho> with the information of our locals, current function, etc
18:20:28 <tusho> then, the trampoline at the bottom catches it, and reinitiates the call
18:20:33 <ais523> tusho: actually, the exception only needs to throw a continuation and the argument to give it
18:20:36 <tusho> when it grows to 100 again, it drops down and bounces again
18:20:39 <tusho> ais523: ah, yes
18:20:48 <tusho> but yeah, this is the best way to do js cps
18:21:04 <ais523> so why the return?
18:21:20 <tusho> ais523: sorry, you're making no sense again
18:21:24 * tusho writes the trampoline
18:21:43 <ais523> as in, you wouldn't need to write return in return cont(c) if you're exception-throwing downwards
18:21:48 <ais523> because none of those returns ever happen
18:22:28 <tusho> ais523: yes they do
18:22:33 <tusho> if you don't reach 100 stack elements
18:22:37 <tusho> and besides
18:22:39 <tusho> they do happen
18:22:44 <ais523> when?
18:22:47 <tusho> ais523: uh..
18:22:51 <tusho> you're making no sense.
18:22:52 <tusho> sorry.
18:23:04 <ais523> tusho: the end of a function is never reached in CPS
18:23:11 <ais523> you always call a continuation right at the end
18:23:12 <tusho> ais523: yes, it is. when the program is finished.
18:23:22 <ais523> tusho: even then you just continuation out to an exit
18:23:32 <tusho> sorry. you're wrong. yes, that is pure cps
18:23:35 <ais523> or in JS's case, throw an exception
18:23:36 <tusho> but that's not how it's done mostly.
18:23:53 <tusho> read up on the chicken scheme compiler if you want to know more, but it'll become self-evident when cps2js evolves
18:23:59 <tusho> *js2cps
18:24:02 <ais523> hey, I've just realised that my IOCCC thing I showed you was in continuation-passing style
18:24:19 <ais523> except the continuations were defined elsewhere
18:24:51 <ais523> tusho: I see how exploiting the returns could be useful as an optimisation in some cases
18:24:56 <tusho> no
18:24:57 <tusho> sorry
18:25:03 <ais523> but it isn't needed
18:25:15 * tusho is just going to keep repeating that as he's explained it to the best of his ability
18:25:24 <tusho> if you don't understand it, well, you'll just have to wait until the code takes shape I guess
18:25:29 -!- timotiis has quit (Remote closed the connection).
18:25:34 <ais523> you haven't explained it at all, just asserted it repeatedly
18:26:30 <tusho> I've pointed you to more information
18:26:34 <tusho> (the Chicken compiler)
18:27:01 <ais523> tusho: if I write my own code that doesn't use return, will you concede that it isn't needed?
18:27:06 <tusho> ais523: it is not needed
18:27:09 <tusho> but it is far more useful
18:27:15 <ais523> far more?
18:27:17 <tusho> yes
18:27:31 <ais523> well, then it's an optimisation, like I said
18:27:34 <tusho> no
18:27:36 <tusho> it's not an optimization
18:27:43 <tusho> that's like saying c is an optimization of brainfuck
18:27:45 <tusho> it's not true
18:28:08 <ais523> tusho: would you say that PEBBLE's an optimisation of brainfuck?
18:28:48 <tusho> no
18:29:24 <ais523> well, I would
18:29:37 <tusho> anyway, Narcissus (JS in JS) has a JS parser in JS
18:29:41 <tusho> which simplifies our work greatly
18:29:50 <ais523> yes, I was wondering where we'd get one of those
18:29:59 <ais523> incidentally, how many people told them to just use eval?
18:30:06 <tusho> ais523: heh
18:30:11 <tusho> it's buried in the mozilla cvs
18:30:18 <tusho> so I bet anyone who found it wouldn't be that dumb
18:30:34 <tusho> ais523: oh and I think it only works in mozilla
18:30:37 <tusho> but who cares, honesty
18:30:38 <tusho> *honestly
18:30:49 <ais523> tusho: what, mozilla-specific JS?
18:30:55 <ais523> as in, not working in WebKit, for instance?
18:30:55 <tusho> ais523: yeah, __proto__ and stuff
18:30:58 <ais523> that could be a problem
18:31:00 <tusho> webkit does __proto__
18:31:01 <tusho> i believe
18:31:03 <tusho> maybe
18:31:14 <tusho> opera doesn't though
18:31:15 <tusho> and nor does ie
18:31:26 <tusho> ais523: thankfully, this'll only be usable with FF3 or a webkit nightly
18:31:28 <ais523> what does __proto__ do?
18:31:32 <tusho> since those are both blazing fast
18:31:37 <tusho> and prototypical inheritance confusing stuff
18:31:47 <ais523> tusho: actually, the version of Konqueror I've got is pretty fast on complex JS
18:31:53 <tusho> ais523: no, sorry
18:31:56 <tusho> it might seem like it
18:32:03 <ais523> but FF3 isn't, at least on Linux, because it has disk access problems
18:32:14 <ais523> it's a release-blocking bug that they're looking into at the moment
18:32:14 <tusho> but here's a comparison: FF3 can do what Safari3 lagged the system and took 10+ seconds to do,
18:32:17 <tusho> in about 3 seconds
18:32:22 <tusho> ais523: they've fixed that..
18:32:29 <tusho> it's at release candidate 3 now
18:32:38 <ais523> ah, I only have rc1 over here
18:32:39 <ais523> but 3?
18:32:46 <ais523> why wasn't rc2 good enough?
18:32:56 <tusho> ais523: rc3 just changed on mac os x
18:32:58 <tusho> not sure what they did
18:33:04 <tusho> a mac specific bug I think
18:33:19 -!- puzzlet has joined.
18:33:38 <tusho> ais523: do you mind if I depend on jquery
18:33:46 <ais523> what is jquery?
18:34:05 <tusho> ais523: a tiny, tiny JS library that makes DOM manipulation a cinch
18:34:05 <tusho> http://jquery.com/
18:34:08 <tusho> very popular
18:34:19 <tusho> it does stuff chained
18:34:24 <tusho> which means all the methods return self
18:34:28 <tusho> very useful in practice
18:34:45 <tusho> ais523: Bonus points - if we use jQuery we can use jQuery UI - http://ui.jquery.com/
18:34:51 <augur> its also a pain in the ass to work with when making big complicated programs. :)
18:34:53 <tusho> which is some WEB TWO POINT OH-style gui widgets for jquery
18:34:58 <tusho> which will be useful for feather apps
18:35:01 <tusho> like the class browser
18:35:04 <tusho> augur: bullcrap
18:35:11 <augur> if you say so :)
18:35:12 <tusho> it just doesn't do anything but dom manipulation
18:35:14 <tusho> and that's by design
18:35:32 <ais523> tusho: well, you need a proper separation
18:35:38 <ais523> it would be useful for writing IO commands
18:35:45 <ais523> but the class browser itself would be written in Feather
18:35:51 <tusho> ais523: yes, of course
18:35:55 <ais523> also, ideally the IO commands would be the same between interps
18:35:55 <tusho> I mean we would interface jquery ui into feather
18:36:11 <ais523> tusho: you would make the jquery UI available as IO commands that Feather could use
18:36:18 <tusho> ais523: 'IO commands'?
18:36:20 <tusho> you mean classes, right
18:36:25 <tusho> because jQuery UI is a class library
18:36:27 <ais523> tusho: IO commands are lower-level
18:36:28 <tusho> so we'd expose them as objects
18:36:32 <ais523> you expose them via classes, though
18:36:32 <tusho> ais523: no, I don't like that
18:36:39 <tusho> it should have a proper ffi
18:36:46 <ais523> tusho: they have to exist even if classes don't for some reasona
18:36:57 <tusho> ais523: well, then you can't use jQuery UI
18:36:59 <tusho> big whoop
18:37:01 <ais523> and FFIs are kind-of difficult with a language which can change its paradigm at will
18:37:16 <ais523> tusho: yes you can, you just reimplement it in Feather
18:37:21 <augur> now see, this is why i find it absolutely hilarious that people like JQuery
18:37:24 <ais523> you know how introspective Smalltalk is?
18:37:25 <augur> im in their little demo page
18:37:30 <ais523> Feather is worse
18:37:31 <augur> and half their shit doesnt even work
18:37:32 <ais523> much worse
18:37:35 <tusho> augur: uh, yes it does
18:37:44 <augur> uh, no it doesn't
18:37:46 <ais523> tusho: actually, it didn't for me when I tried on Konqueror
18:37:53 <tusho> ais523: what, jQuery UI?
18:37:58 <tusho> jQuery UI is in preprepreprepreprperpeprepreprepalpha, basically.
18:37:59 <ais523> the example on their homepage
18:38:13 <tusho> ais523: WFM
18:38:25 <ais523> it did nothing when I tried it
18:38:40 <tusho> ais523: WFM
18:39:00 <ais523> yes, I was just explaining what symptomps I sawa
18:39:03 <augur> now im not saying _everything_ in JQuery doesn't work
18:39:18 <augur> but man, so much of it is buggy its not even funny
18:39:28 <tusho> augur: i don't think you've actually used jquery.
18:39:29 <tusho> i may be wrong.
18:40:11 <augur> tusho, i've never used it because every time i try to, in the DEMOS, it fails.
18:40:25 <augur> its like scriptaculous
18:40:29 <tusho> Works for me and tons of other people too, including some of the most-visisted websites.
18:40:34 <augur> im sure it does, tusho
18:40:37 <tusho> You may be using w3m or something.
18:40:46 <ais523> most of the demos are working for me, sort of, in Konqueror
18:40:49 <ais523> but some things go wrong
18:40:51 <augur> but it doesnt matter to ME that it works for YOU
18:40:58 <ais523> e.g. the DOM screws up a bit on some of them
18:41:09 <tusho> ais523: konqueror isn't really that good, anyway.
18:41:15 <ais523> incidentally, have you seen how badly anagolf screws up on Konqueror when you use the back button?
18:41:32 <augur> theres a wonderful software development adage, about bug fixing
18:41:53 <augur> about how a coder should never EVER say something like "Well it works fine here!"
18:41:55 <ais523> augur: yes, several in fact, which one are you thinking of?
18:42:16 <augur> because it doesnt MATTER that it works fine on his computer, the only thing that ever matters is that it works fine on the user's computer
18:42:17 <ais523> augur: do you know about Schrodingbugs?
18:42:32 <ais523> tusho: JQuery UI's messing up too badly for me to be usable
18:42:45 <tusho> ais523: jquery ui is in pre-alpha
18:42:49 <tusho> anyway, remember
18:42:52 <augur> are those bugs that result from not collapsing wave functions? :p
18:42:54 <ais523> well, that explains why it isn't usable
18:42:59 <tusho> feathejs will be impossible slow on konq and everything else, ais523
18:43:09 <tusho> FF3 and nightly WebKits are the only things it'll be usable on, I suspect
18:43:14 <tusho> just because of the nature of feather
18:43:18 <tusho> and implementing it in something as slow as JS
18:43:27 <augur> oh i love it man
18:43:29 <augur> "Supports IE 6.0+, FF 2+, Safari 3.1+, Opera 9.0+."
18:43:29 <tusho> so, it doesn't matter if it doesn't work on anything else
18:43:30 <ais523> augur: no, they're bits of code that works fine for everyone, but then someone looks at the source and sees that they never should have worked in the first place, then suddenly they break for everyone
18:43:32 <augur> for JQuery UI
18:43:41 <tusho> augur: it's pre-alpha.
18:43:48 <tusho> it will support that when they actually officially release.
18:43:49 <augur> heh well, i'm using Safari 3.1.1
18:43:55 <augur> tusho, where does it say it's prealpha
18:43:58 <ais523> augur: and yes, I know that doesn't make any sense, but some people swear they exist on occasion
18:44:10 <ais523> augur: tusho's just assuming that it's prealpha because it isn't working properly
18:44:15 <tusho> ais523: no, i'm not
18:44:18 <augur> ofcourse he his
18:44:20 <augur> is*
18:44:25 <tusho> jesus christ, no I'm not
18:44:43 <ais523> http://ui.jquery.com/functional_demos/#ui.dialog <-- tusho: does that seriously work for you?
18:44:44 <augur> he's 12, so what can you expect, really
18:44:45 <augur> ;)
18:45:05 <tusho> ais523: works for me
18:45:06 -!- puzzlet_ has quit (Read error: 110 (Connection timed out)).
18:45:11 <augur> no template file.
18:45:16 <tusho> ok, the dialog one doesn't
18:45:18 <ais523> same error here too
18:45:22 <tusho> because, guess what, they just launched the new site
18:45:28 <tusho> like, yesterday.
18:45:54 <augur> interestingly, they're up to the 1.5 version
18:45:59 <augur> which means its post post post alpha :P
18:46:02 <augur> its post RC.
18:46:21 <augur> this isnt alpha stuff, tusho
18:46:26 <tusho> augur: no, sorry, you're wrong
18:46:28 <tusho> 1.5 changed a lot
18:46:32 <tusho> so it isn't stable
18:46:45 <tusho> besides, it's not the library itself that's particuarly unstable, it's THE SITE.
18:46:46 <augur> well i dont think this version is 1.5
18:46:48 <tusho> The site launched may 5th.
18:46:49 <augur> but they're working on 1.5
18:46:57 <tusho> ___it's the site___
18:47:28 <ais523> hmm... if ais523 numbers were calculated using chains of people who had ever agreed with me, the results would be quite different, I expect
18:47:29 <augur> ah no, they're on 1.5
18:47:53 <tusho> augur: _THE._ _SITE._
18:47:54 <augur> man, ressig is a fucking idiot.
18:48:04 <tusho> um
18:48:08 <augur> what about the site, tusho.
18:48:12 <tusho> resig doesn't even work on jquery ui
18:48:17 <tusho> and that was totally uncalled for
18:48:34 <augur> wow, tusho, you're a bit of a ressig whore arent you
18:48:37 <tusho> ...
18:48:49 <tusho> i simply recommended using jquery and jquery ui
18:48:55 <tusho> and then defended it from incorrect criticism
18:49:06 <tusho> now resig is a fucking idiot and I'm a 'resig whore'? Yeah, fuck you.
18:49:07 <augur> *correct criticism.
18:49:11 <ais523> augur: stop trying to wind ehird up
18:49:18 <ais523> even though e deserves it
18:49:19 <augur> apparently i dont even have to try
18:49:23 <augur> i just have to disagree with him
18:49:29 <ais523> the bit at the end was a bit uncalled-for
18:49:32 -!- tusho has quit ("got better things to do").
18:49:33 <augur> man, 12 year olds are bitchy
18:49:53 <ais523> and /quit rather than /part?
18:50:11 <ais523> besides, I haven't seen em that angry before
18:50:26 <augur> all because _I_ don't like JQuery
18:51:03 <augur> really, he IS a resig whore. or a jquery whore. or whatever you wanna call him.
18:51:10 <ais523> what or who is resig, anyway?
18:51:19 <augur> the guy who developed jquery
18:51:43 <ais523> well, the UI stuff seems very different from the rest of it
18:51:51 <augur> he gets lots of praise for building JQuery and everything i've seen that uses JQuery extensively doesn't work
18:52:02 <ais523> ah, I can see why that would annoy you
18:52:08 * ais523 wonders if ehird's logreading
18:52:15 <augur> who cares
18:52:20 <ais523> my guess is no, actually
18:52:33 <augur> it doesnt matter
18:52:34 <ais523> but e'll come back and read the logs eventually
18:52:48 <augur> dude, hes 12 years old. you cant expect him to act maturely
18:53:05 <ais523> augur: it's generally bad manners to say how old someone else is on the Internet
18:53:14 <ais523> COPPA and all that, it can lead to trouble
18:53:15 <augur> HE said how old he was the other day.
18:53:17 <augur> its in the logs.
18:53:21 <ais523> yes, but...
18:53:22 <augur> its public information.
18:53:24 <augur> but nothing
18:53:31 <ais523> it's the principle of the thing
18:53:36 <ais523> anyway, my morals are weird
18:53:39 <ais523> at least according to ehird
18:53:46 <augur> i have to agree with him here
18:53:51 <ais523> yes
18:53:55 <ais523> quite a lot of people do
18:54:00 <ais523> I reckon my morals are weird too
18:54:10 <ais523> ehird started trying to find loopholes in them, but morals don't work like that
18:54:29 <augur> they do. PEOPLE don't work like that tho. ;)
18:54:48 <ais523> well, if there are loopholes in my morals it's because the words I expressed them in are wrong
18:56:21 -!- jix has quit ("This computer has gone to sleep").
18:57:32 <ais523> looking for loopholes in a set of morals just defeats the point of morals
18:58:26 <ais523> no doubt, though, ehird's morals are Turing-complete, operate like a nomic, and have FFIs to twelve different languages
18:58:38 <ais523> or if they didn't before I said that they do now
18:58:47 * oerjan thought that 12 year old thing was a joke someone had made while he wasn't here...
18:58:55 <ais523> maybe it is
18:59:56 <oerjan> *he = oerjan
19:00:01 <augur> no, its not
19:00:06 <augur> tusho said it himself.
19:00:08 <augur> numerous times.
19:00:24 <ais523> augur: you've said it multiple times
19:00:30 <ais523> not sure about tusho emself, though
19:00:32 <augur> ive repeated it multiple times ;)
19:00:39 <augur> look at the logs, ais.
19:00:43 -!- tusho has joined.
19:00:46 <ais523> hi tusho
19:00:47 <augur> tusho how old are you.
19:00:57 -!- tusho has quit (Remote closed the connection).
19:01:02 <augur> lol
19:01:08 <ais523> augur: really, that's not funny
19:01:28 <augur> hey, i only asked him his age
19:01:37 <ais523> augur: yes, that's not a wise thing to do
19:01:42 <ais523> especially given the circumstances
19:01:46 <augur> why? am i going to break him?
19:01:49 <ais523> it may have been the reason e left in the first place
19:01:54 -!- tusho has joined.
19:02:03 <tusho> hmph. my message didn't get through
19:02:06 <tusho> ais523: yes they do / oerjan: no it wasn't
19:02:07 -!- tusho has quit (Client Quit).
19:02:09 <ais523> augur: AFAIR doing that's illegal in America, anyway
19:02:18 <augur> ais, are you serious? tusho isnt a fragile piece of china
19:02:24 <augur> ais, no its not illegal to ask someone their age
19:02:30 <ais523> it is if they're under 13
19:02:36 <ais523> and you seem to think e is
19:02:45 <augur> no, its not illegal if theyre under 13
19:02:46 <augur> lol
19:03:07 <augur> where did you get such a silly idea
19:03:16 <augur> that you cant ask how old someone is if they're under 13
19:03:17 <augur> be serious
19:03:18 <ais523> I'm a bit unfamiliar with US law, not being American, I'll look it up
19:03:33 -!- tusho has joined.
19:03:48 <augur> tusho, ais thinks its illegal to ask someone their age if they're under 13.
19:03:59 <ais523> I'm looking it up
19:04:01 <ais523> it's unwise anyway
19:04:03 <ais523> even if not illegal
19:04:13 <augur> why is it unwise, ey?
19:04:13 <tusho> to clear it up since you're not shutting up about it: yes, i'm 12, no, responding to everything I do with "oh but he's 12, you can't expect him to be reasonable!!1" is not a clever idea, because it's stupid and an invalid argument. and also my age is irrelevant.
19:04:15 -!- tusho has quit (Client Quit).
19:04:28 <ais523> yes, tusho is right here
19:04:36 <ais523> and apparently logreading, so I was wrong
19:04:49 <augur> hes right that his age is irrelevant, or it would be if it wasn't clearly a factor in his illogical arguments.
19:05:19 <augur> i mean, really? im looking at the site, seeing bugs, and he says i'm not seeing bugs? lets be serious here
19:05:28 <augur> either its because hes 12 years old
19:05:36 <augur> or its because hes mentally retarded
19:05:39 -!- puzzlet has quit (Remote closed the connection).
19:05:44 -!- puzzlet has joined.
19:05:45 <ais523> augur: no, it's because e uses a different browser
19:05:51 <augur> yes but thats not what he said
19:05:56 <augur> he didnt say "well i dont see it"
19:06:01 <augur> he said "no YOURE not seeeing it"
19:06:26 <ais523> anyway, COPPA sec. 1303 (a) (1) debatably bans asking for personal information from people you suspect are under 13
19:06:32 -!- tusho has joined.
19:06:37 <ais523> although I'm not a lawyer, therefore am not sure
19:06:43 <tusho> augur, unless you're an expert in reality manipulation, or the logs are forged, I absolutely did not
19:06:44 -!- tusho has quit (Remote closed the connection).
19:06:52 <augur> lmfao haha
19:06:54 <ais523> and no, e didn't, on that
19:07:01 <oerjan> actually could we do a compromise and say you are _both_ mentally retarded for continuing this quarreling?
19:07:18 <augur> "augur: uh, yes it does"
19:07:23 <ais523> oerjan: no, that's not a compromise, a compromise would be to say they're 50% wrong each
19:07:34 <ais523> anyway, it's past 7 on a Sunday, so I have to go
19:07:36 <ais523> bye everyone
19:07:37 <oerjan> is TOO a compromise
19:07:46 <ais523> hope the flame war's gone by the time I get back here on Monday
19:07:48 -!- ais523 has quit ("(1) DO COME FROM ".2~.2"~#1 WHILE :1 <- "'?.1$.2'~'"':1/.1$.2'~#0"$#65535'"$"'"'&.1$.2'~'#0$#65535'"$#0'~#32767$#1"").
19:08:06 <augur> so oerjan, whats your esolang of choice
19:08:18 <oerjan> gotta be unlambda
19:09:27 <augur> hmm
19:10:22 <augur> boring. :p
19:11:27 <augur> i mean REAL esolang, not just combinatorial calculus
19:20:15 <augur> can you read unlambda or do you have to sit and decompose it?
19:20:45 <oerjan> decompose i guess
19:21:24 <augur> hm.
19:21:31 -!- tusho has joined.
19:22:11 <augur> do you know of any esolangs that aren't incomprehensible, they just do things in a very different fashion?
19:23:01 <tusho> augur: intercal
19:23:14 <augur> intercal is so incomprehensible X.x
19:23:23 <tusho> only if you don't know it
19:23:25 <tusho> (which I don't)
19:23:29 <tusho> ais523 can read it fine
19:23:34 <augur> i mean something you can just look at and understand easily, and could be used for real programming
19:23:41 <tusho> augur: prolog could count
19:23:50 <augur> prolog is so fucking esoteric XD
19:24:11 <tusho> there is your answer then
19:24:23 <augur> but prolog doesnt do it differently :(
19:24:30 <tusho> augur: what
19:24:30 <augur> prolog is older than programs!
19:24:31 <tusho> yes it does
19:24:35 <tusho> well, yeah, sure
19:24:37 <augur> well, in spirit anyway
19:24:38 <tusho> but it sure does things differently
19:24:55 <augur> yeah differently than most programming languages
19:25:00 <augur> but i mean REALLY different
19:25:05 -!- Corun has quit ("This computer has gone to sleep").
19:25:09 <tusho> augur: dunno then
19:25:13 <tusho> prolog is pretty different to me.
19:25:17 <augur> i dont know what that would MEAN mind you
19:27:51 -!- augur has quit (Read error: 104 (Connection reset by peer)).
19:28:09 -!- augur has joined.
19:28:09 <augur> damn interblogs
19:28:22 <tusho> GregorR: ping
19:28:28 <augur> damn interblogs disconnected me! >|
19:31:22 <augur> i wonder if anyones ever set up a big complicated prolog environment
19:31:31 <augur> with lots of implications
19:31:35 <augur> and then did something like
19:31:47 <augur> "find all truths"
19:34:01 <augur> itd be interesting. plug in the laws of physics and let prolog have a go. :p
19:34:27 <tusho> augur: find all the truths makes prolog complain
19:34:36 <augur> lameprolog
19:34:44 <tusho> augur:
19:34:44 <tusho> ?- X.
19:34:44 <tusho> % ... 1,000,000 ............ 10,000,000 years later
19:34:44 <tusho> %
19:34:45 <tusho> % >> 42 << (last release gives the question)
19:34:52 <tusho> (SWI-Prolog)
19:36:14 <augur> lolwut
19:37:11 <tusho> augur: it actually does that
19:37:55 <augur> tusho, what do you think of the idea that variables can store multiple simultaneous values?
19:38:09 <tusho> augur: quantum arrays
19:38:09 <tusho> :P
19:38:13 <augur> not values in data structures, but just multiple values
19:38:17 <augur> quantum arrays? lol
19:38:18 <augur> :)
19:38:26 <augur> im toying with the idea of something like
19:38:30 <augur> 5, 3 -> x
19:38:37 <augur> x == 5 // true
19:38:40 <augur> x == 3 // true
19:39:03 <tusho> augur: you lose a lot of nice properties
19:39:06 <tusho> but it could work
19:39:10 <augur> nice properties??
19:39:42 <augur> i rather like it because you could get a bunch of nice stuff
19:39:49 <augur> for instance
19:40:00 <augur> (1, 2, 3, 4)*2 == 2, 4, 6, 8
19:40:37 <augur> or if you had a let like thing
19:41:03 <augur> if x = 5, 3
19:41:09 <augur> let z = x such that x > 4
19:41:19 <augur> would sort of filter
19:42:59 <tusho> augur: what about mixing it with my inside-out conditionals
19:43:11 <augur> what are you inside out conditions??
19:43:30 <tusho> if n == 0 { fact n = 0 } else { if result == n * fact (n-1) { fact n = result } }
19:43:36 <tusho> you can do conditionals to assert things
19:43:42 <tusho> if x `member` xs { select xs = x }
19:44:22 <augur> im not entirely sure how that works, but conditionals on multiple values will simultaneously evaluate for all matching multiple values
19:44:24 <augur> e.g.
19:44:30 <augur> x = 2, 3
19:44:39 <augur> if x > 2, y = x+1
19:44:43 <augur> y == 3, 4
19:44:59 <augur> but
19:45:04 <augur> if x > 4, z = x+1
19:45:13 <augur> z == undefined
19:45:25 <tusho> augur: im not sure how it works
19:45:26 <augur> sorry, that should've been x > 1 obviously :p
19:45:29 <tusho> ihope suggested an alternate syntax
19:45:35 <tusho> if { fact n = 0 } then n == 0
19:45:43 <tusho> which makes more sense I guess
19:45:53 <tusho> if { select xs = x } then { x `member` xs }
19:45:55 <augur> well, what are inside out conditionals, first
19:46:41 <tusho> augur: what I just demonstarted
19:46:44 <tusho> *demonstrated
19:47:02 <augur> i dont see what that /means/ tho
19:47:11 <augur> i can see an example of syntax, but i dont know what it does
19:48:30 <tusho> augur: nor do I
19:48:34 <tusho> but it makes sense, really
19:48:35 <augur> lol
19:48:43 <augur> how can it make sense if you dont know what it does? :P
19:49:46 <tusho> if { f x && x `member` xs && x `member` ys } then { filter f xs = ys }
19:50:14 <augur> ah, so its implicational
19:50:23 <augur> e.g.
19:51:04 <augur> filter(f, xs, ys) :- member(x,xs), member(x,ys), f(x)
19:51:11 <tusho> augur: yeah, I likened it to prolog too
19:51:14 <tusho> I guess it IS just prolog
19:51:24 <augur> mind you, that definition of filter is incorrect ;)
19:51:28 <tusho> well, yes
19:51:29 <tusho> :-P
19:51:43 <tusho> augur: it's just quite funny - if you 'unwrap' the conditional from the function body, kinda, you get prolog
19:51:59 <augur> well, its actually exactly prolof
19:52:02 <augur> prolog**
19:52:10 <augur> because prologs :- is a logical implication
19:52:17 <augur> x :- y
19:52:22 <augur> is equivalent to
19:52:24 <augur> x if y
19:52:30 <augur> or, if y, then x
19:52:38 <augur> which is yours :)
19:52:44 <augur> if { y } then { x }
19:53:23 <tusho> augur: well yeah
19:53:27 <tusho> i just find it funny how little you have to chance
19:53:28 <tusho> *change
19:53:39 <augur> i guess :)
19:54:26 <augur> the real reason that theres so little to change is not the "reversal" thing but rather because you dont need to have ys available first
19:54:29 <augur> i mean
19:54:38 <augur> i could easily see that being some sort of /assertion/
19:54:39 <augur> like
19:54:54 <augur> if( ... ){ ys_is_a_filter_of_xs = true; }
19:55:04 <augur> or something like that
19:55:18 <augur> assert( ys = filter f xs )
19:55:34 <augur> but that only works if ys already exists
19:55:41 <augur> which i dont think you were implying in your version
19:58:25 <tusho> I wasn't no
20:02:30 <tusho> augur: So is bollflflllflflflf a dskfsdjflsdfsdf?
20:02:39 <tusho> (This is very important.)
20:05:12 <augur> no, only folflfblblbbb is.
20:05:15 -!- timotiis has joined.
20:06:41 <augur> its an incredibly common error that people math, tho, and i dont know why
20:06:52 -!- SimonRC has quit ("Reconnecting").
20:06:56 -!- SimonRC has joined.
20:07:12 <tusho> that people math?
20:08:00 -!- SimonRC has quit (Client Quit).
20:08:27 -!- SimonRC has joined.
20:09:29 -!- SimonRC has quit (Client Quit).
20:09:39 -!- SimonRC has joined.
20:11:57 <augur> make
20:12:02 <augur> i cant type ;)
20:13:37 <augur> btw, do you know if prolog can do reverse deductions
20:13:41 <augur> e.g.
20:13:46 <augur> if theres some rule
20:13:47 <augur> x :- y
20:13:51 <augur> can you assert some y
20:13:57 <augur> and prolog will say aha, x!
20:14:51 <augur> it cant, right?
20:18:43 <tusho> augur: uh
20:18:44 <tusho> no
20:18:45 <tusho> it can't
20:18:49 <tusho> that would be slightly impossible, i think
20:18:57 <augur> nuh
20:19:11 <augur> x :- y is just a biconditional
20:19:16 <augur> x iff y
20:20:21 <augur> i can envision some ways to achieve it
20:21:50 <augur> i mean
20:22:08 <augur> the classic example of prolog is the grandparentage thing
20:22:14 <oerjan> no, just one-way conditional (in prolog anyway)
20:22:21 <augur> er
20:22:33 <augur> no, its biconditional. to show x, show y
20:22:48 <oerjan> that's one way
20:23:02 <augur> its biconditional. there are no cases where x is true but y is false
20:23:07 <augur> and where y is true but x is false
20:23:08 <augur> :P
20:23:14 <oerjan> sure there can be
20:23:17 <augur> how?
20:23:21 <augur> if you have this:
20:23:24 <augur> x :- y
20:23:40 <augur> and if y :- true
20:23:42 <augur> then x :- true
20:23:48 <oerjan> you can have another statement x :- z, say
20:24:00 <augur> ah, no sorry i guess i was thinking more strictly not prolog syntax
20:24:03 <augur> x :- y
20:24:05 <augur> x :- z
20:24:14 <augur> is just one conditional statement spread over two lines
20:24:18 <augur> x :- y | z
20:24:51 <augur> so yeah, in that regard single rules in prolog arent biconditional
20:25:01 <oerjan> well as long as x is an atom
20:25:22 <augur> but prolog systems are biconditional in that all the ORs on the left are part of a larger biconditional statement
20:25:38 <augur> i mean, if you have x :- y; x :- z
20:25:50 <augur> then logically thats x iff y or z
20:26:04 <oerjan> are you familiar with horn clauses?
20:26:15 <augur> yeah, they're not that complicated.
20:26:16 <augur> :P
20:27:01 <oerjan> i suppose you may be correct when you make the closed world assumption
20:27:04 <augur> i guess you can say its not strictly biconditional since prolog doesn't treat absence as negation
20:27:20 <oerjan> i.e. assuming nothing is true unless it is provable from the given set
20:27:22 <augur> yeah, im assuming the rules you put in are all there is and nothing more ;)
20:28:06 <augur> you cant run logic backwards to discover new rules :p
20:28:29 <augur> but in the grandparent example, for instance
20:28:43 <augur> its relatively clear that if I just assert
20:28:50 <augur> parent(a,b), parent(b,c)
20:28:58 <augur> its trivial to run the logic backwards and decude
20:29:01 <augur> deduce*
20:29:05 <augur> grandparent(a,c)
20:29:12 <augur> even if i dont ASK ?- grandparent(a,c)
20:31:01 <oerjan> well proof search is possible it just tends to blow up for anything complicated
20:31:11 <augur> so? :)
20:31:27 <oerjan> so yeah
20:31:36 <augur> were in #esoteric. uselessness up in the face of complexity is practically the motto of this place
20:32:21 <augur> why did i type up? that makes no sense.
20:34:51 <tusho> augur: #haskell are making co-jokes
20:36:46 <oerjan> again?
20:36:55 <tusho> yes
20:37:20 <augur> yes but are they doing them in cotime
20:37:23 <augur> thats the question
20:37:26 <oerjan> what a bunch of co-nuts
20:37:37 <tusho> coconuts
20:37:43 <augur> coconuts are just nuts
20:37:52 <tusho> BAHAHAHAHAHAHAHAHA
20:37:54 <augur> conuts, on the otherhand
20:38:04 <augur> are nuts that exist in perpendicular time.
20:39:54 <augur> HAHAHAHAHA
20:40:00 <augur> im listening to macbreak weekly
20:40:16 <augur> and theyre talking about how steve jobs was quite gaunt looking at wwdc
20:41:05 <augur> and ihnatko said "it's not that he didn't look good, but... he looked like a vegan"
20:49:19 -!- B|u35un has quit (Read error: 110 (Connection timed out)).
20:49:56 -!- B|u35un has joined.
21:11:36 -!- oklopol has joined.
21:14:51 <GregorR> NOM NOM NOM
21:15:17 <tusho> GregorR: <3 YOU"RE HERE
21:15:24 <tusho> I have so many awesome jsmips ideas.
21:15:36 <tusho> GregorR: For example. I figured how to make it 'TEH FAST'.
21:15:47 <tusho> Compile to JavaScript and use eval().
21:15:54 <tusho> Far, far faster than interpreting it.
21:16:14 <GregorR> That's on my future agenda, interpretation was just a "is-this-even-feasible?" step.
21:16:14 <tusho> GregorR: Of course, startup goes terribly slowly, but then the program blazes.
21:16:22 <tusho> And, what's better, you can just save the compiled version.
21:16:26 <GregorR> I'd like to compile ELF files directly to JavaScript code and then just include a foo.js
21:16:27 <tusho> GregorR: Well before you get in too deep..
21:16:34 <tusho> Hmm.
21:16:38 <tusho> I was thinking more intermediate.
21:16:46 <tusho> That is, it uses the current code
21:16:50 <tusho> but produces a function on-the-fly at startup
21:17:31 <GregorR> Hm, not sure what you mean.
21:17:33 <tusho> GregorR: Anyway, we don't need mipses even with threads.
21:17:43 <GregorR> OH right
21:17:44 <tusho> Just make a MIPS object keep track of its 'children' (threads created in itself)
21:17:52 <tusho> Then make the MIPS object stop its children when it is stopped.
21:18:07 <tusho> more elegant.
21:18:16 <GregorR> The problem isn't controlling the children, that's easy, the problem is context switching.
21:18:31 <tusho> GregorR: You still don't need mipses.
21:18:40 <tusho> (I mean the global array)
21:18:45 <GregorR> Oh duh - yeah, they could all still run.
21:18:51 <GregorR> *slaps head*
21:18:57 <GregorR> I have no idea why I thought mipses was necessary for that.
21:19:04 <tusho> GregorR: Because you're a retard?
21:19:08 <tusho> O wait.
21:19:08 <tusho> :P
21:19:20 <tusho> I'm gonna go assasinate mips
21:19:20 <tusho> es
21:19:56 <tusho> GregorR: And change .stopped = true; into .stop()
21:20:22 <GregorR> Good ol' accessor functions :P
21:20:36 <tusho> GregorR: By the way, I have another speed increase, but it involves basically jiggling about the whole of mips.js
21:20:45 <GregorR> ...?
21:20:48 <tusho> Specifically, you're doing everything in the constructor, whereas you should be putting functions and the like on to MIPS.prototype
21:20:53 <tusho> Permission to convert 'em all?
21:21:02 <tusho> It'll make MIPS creation faster, and is also 'better'
21:21:26 <GregorR> Feel free, I'm not particularly used to JavaScript's prototype syntax - I like the system, never liked the syntax, so I never got used to using it :P
21:21:46 <tusho> OK, then don't touch the code while I do this
21:21:48 <tusho> It won't merge
21:21:48 <tusho> :P
21:24:56 <tusho> GregorR: JS just has function scope
21:24:58 <tusho> for (var i
21:25:00 <tusho> is misleading
21:25:05 -!- Corun has joined.
21:25:33 <GregorR> I suppose that's true *shrugs*
21:28:34 <tusho> GregorR: Shit, I broke it. :P
21:28:58 <tusho> Oh.
21:28:59 <tusho> Duh.
21:29:01 <GregorR> *shocker*
21:29:41 -!- oklofok has joined.
21:29:57 <GregorR> oklofok, one of the oklofolk
21:30:27 * tusho kicks js for being stupid
21:30:53 -!- kar8nga has joined.
21:31:06 * GregorR kicks tusho for offending the JavaScript gods.
21:31:09 -!- kar8nga has left (?).
21:31:43 <tusho> GregorR: wtf zeroArray is not defined
21:31:48 <tusho> YES IT IS
21:32:54 <tusho> GregorR: Hm.
21:33:00 <tusho> I have a great way to speed up performance.
21:33:11 <tusho> Your include stuff isn't actually needed, all of them can be included in tandem.
21:33:15 <tusho> In the <head> section
21:34:52 <oerjan> hm the oklofolk. small blue gnomes living in Finland, in the valley next to the muumins
21:35:09 <oerjan> or am i confusing with smurfs
21:38:36 <tusho> GregorR: ok, now just to fix the mountain of bugs
21:38:36 <tusho> :D
21:38:59 <SimonRC> um
21:39:05 <SimonRC> ah
21:39:12 <tusho> oh
21:39:42 <oerjan> er
21:39:48 <tusho> uh
21:40:02 <olsner> eh
21:40:07 <tusho> oo
21:40:21 -!- oklofok has quit (Read error: 104 (Connection reset by peer)).
21:40:27 <tusho> DAMNIT OKLOFOK
21:40:33 <oerjan> ha
21:40:39 <olsner> c-c-c-connection reset by peer
21:41:01 <tusho> GregorR: if I do this
21:41:04 <tusho> function initMIPSIO() {
21:41:06 <tusho> in mipsio.js
21:41:11 <tusho> and I include mipsio.js in my <head>
21:41:20 <tusho> and use that function in window.onload
21:41:24 <tusho> why does it say it's not defined?
21:42:00 -!- oklofok has joined.
21:44:31 <tusho> GregorR: ?
21:47:04 <tusho> GregorR: ping
21:47:41 -!- oklopol has quit (Read error: 110 (Connection timed out)).
21:47:54 -!- oklopol has joined.
21:48:10 <tusho> GregorR: ping
21:49:22 <tusho> GregorR: ping
21:51:13 -!- oklofok has quit (Read error: 113 (No route to host)).
21:51:18 -!- oklopol has quit (No route to host).
21:58:56 <tusho> GregorR: ping
22:00:09 * oerjan gets the strange feeling #esoteric went into a time loop...
22:00:18 <tusho> oerjan: ping
22:00:24 <oerjan> a slightly imprecise one
22:00:36 <tusho> John McCain: ping
22:00:44 -!- olsner has quit (heinlein.freenode.net irc.freenode.net).
22:00:44 -!- GregorR has quit (heinlein.freenode.net irc.freenode.net).
22:00:54 <tusho> kubrick.freenode.net: ping
22:01:54 <tusho> ping: oerjan
22:02:12 <oerjan> gnop
22:02:20 <tusho> error
22:02:21 <tusho> error
22:02:21 <tusho> error
22:02:22 <tusho> error
22:02:22 <tusho> error
22:02:23 <tusho> error
22:02:24 <tusho> error
22:02:25 <tusho> error
22:02:27 <tusho> rorre
22:02:31 <SimonRC> lol
22:02:39 <tusho> lol: ping SimonRC
22:04:30 -!- Hiato1 has quit ("Leaving.").
22:04:37 * SimonRC tries to recall what computer system it was that suffered from a certain piece of memory getting corrupted always in the same way, and it had a way to detect this corruption and abort with an error message, but alas the corruption always overwrote the length-and-pointer of the error message string, giving the same substring of the error message each time.
22:04:55 <tusho> SimonRC tries to recall what computer system it was that suffered from a certain piece of memory getting corrupted always in the same way, and it had a way to detect this corruption and abort with an error message, but alas the corruption always overwrote the length-and-pointer of the error message string, giving the same substring of the error message each time.
22:07:18 * SimonRC curses BB software
22:07:18 <tusho> SimonRC tries to recall what computer system it was that suffered from a certain piece of memory getting corrupted always in the same way, and it had a way to detect this corruption and abort with an error message, but alas the corruption always overwrote the length-and-pointer of the error message string, giving the same substring of the error message each time.
22:07:31 <tusho> SimonRC tries to recall what computer system it was that suffered from a certain piece of memory getting corrupted always in the same way, and it had a way to detect this corruption and abort with an error message, but alas the corruption always overwrote the length-and-pointer of the error message string, giving the same substring of the error message each time.
22:07:47 <SimonRC> for some reason, BB software writers think it is a really great idea to abbreviate the list of pages of a thread
22:07:56 <tusho> for some reason, BB software writers think it is a really great idea to abbreviate the list of pages of a thread
22:08:13 <tusho> SimonRC: Kareha doesn't do that
22:08:13 <tusho> :P
22:08:36 <SimonRC> goodness, we couldn't be expected to actually handle a list of 50 page nubers all on our own
22:08:43 -!- olsner has joined.
22:08:43 -!- GregorR has joined.
22:08:46 <tusho> Kareha doesn't doooooooooooooooo that.
22:08:48 <tusho> GregorR: Ping.
22:10:44 <SimonRC> tusho: gee I wonder wht youwatched on the telly last night
22:10:54 <tusho> SimonRC: huh?
22:11:15 <SimonRC> um, the way you repeated everything I said was a bit of a give-away
22:11:24 -!- lifthras1ir has joined.
22:11:30 -!- lament has quit (heinlein.freenode.net irc.freenode.net).
22:11:30 -!- lifthrasiir has quit (heinlein.freenode.net irc.freenode.net).
22:11:55 <tusho> SimonRC: I'm sorry. I have no idea what you're talking about.
22:12:14 <SimonRC> maybe it is just a co-incidence
22:12:18 <tusho> Probably.
22:12:23 <tusho> What are you talking about?
22:12:26 <SimonRC> I was referring to Midnight
22:12:41 <SimonRC> The latest Doctor Who episode
22:12:50 -!- lament has joined.
22:13:01 <GregorR> YAY NETSPLIT
22:13:07 <tusho> GregorR: Yeah.
22:13:07 <GregorR> tusho: You'd better not have removed my include stuff.
22:13:17 <tusho> GregorR: Haven't committed but yes.
22:13:25 <tusho> It's unneeded. :P
22:13:27 <SimonRC> which includes an inteligence that (initially) repeats what everyone says
22:13:30 <GregorR> tusho: Some ridiculously tiny performance benefit at the cost of requiring the user to include everything from html? God that's stupid.
22:14:06 <tusho> GregorR: Um, it's 6 files.
22:14:14 <tusho> And regardless of the performance benefit, it has two extra pros:
22:14:17 <GregorR> tusho: That means that if somebody else was using this code from their html, they'd have to update their include list if we had the audacity of adding a new header.
22:14:19 <tusho> 1. firebug doesn't mess up the location info
22:14:22 <tusho> 2. it's a lot simpler
22:14:25 <GregorR> 1. who cares.
22:14:27 <GregorR> 2. no it isn't
22:14:50 <tusho> GregorR: You are assuming that anyone is actually going to use this project, and even write their own page using it...
22:15:05 <GregorR> Even if that's not the case, I should support that possibility.
22:15:18 <tusho> GregorR: Well it's a bit late, as this is bundled with my prototyping
22:15:35 <tusho> Which is working fine, apart from one bug.
22:15:47 <GregorR> If you push the removal of includes, I revoke your push privileges. You can push by sending things in for my approval.
22:16:08 * tusho shrugs. Fine.
22:16:09 <GregorR> Seriously, that's really annoying. Don't make giant architectural changes to my code for really stupid performance benefits at a disadvantage to the user of the code.
22:16:20 <tusho> giant architechtural changes? .. it was a few lines
22:16:28 <tusho> also, firebug is very useful.
22:16:31 <GregorR> It was a few /lines/, but a giant /architectural/ change.
22:16:36 <tusho> I'll just fork, I guess.
22:16:40 <GregorR> X_X
22:16:42 <tusho> Which is really silly, of course.
22:16:48 <tusho> But I like this project. So.
22:17:15 <GregorR> Can somebody else come into this conversation on how ridiculous it is to remove a working include() primitive from JavaScript? After I finally got include() working in a language that stupidly has no include()?
22:17:36 <GregorR> Which allows the user of the code to not have to maintain a ridiculous include list.
22:17:46 <tusho> GregorR: include() is pretty common in JS .. it's just rarely needed
22:18:33 <GregorR> include() allows extensibility. Without include(), any time you add a new .js file you have to update every .html file that uses the code.
22:19:23 <tusho> GregorR: what's wrong with one more line?...
22:19:48 <GregorR> One more line times X files where X is a number not within your control = bad.
22:20:05 <tusho> ... This is silly.
22:20:14 <tusho> The actual chance of this happening = 0.
22:20:20 <tusho> The actual chance of wanting to use firebug = 1.
22:22:05 <tusho> GregorR: but feel free to revoke my push privileges; I'm happy developing a fork
22:22:34 -!- augur has quit (heinlein.freenode.net irc.freenode.net).
22:22:34 -!- atsampson has quit (heinlein.freenode.net irc.freenode.net).
22:23:05 -!- augur has joined.
22:23:05 -!- atsampson has joined.
22:23:08 <tusho> BRB.
22:23:19 -!- GregorR has quit (heinlein.freenode.net irc.freenode.net).
22:23:19 -!- olsner has quit (heinlein.freenode.net irc.freenode.net).
22:23:41 -!- atsampson has quit (Remote closed the connection).
22:23:56 -!- atsampson has joined.
22:28:30 -!- RedDak has joined.
22:29:01 -!- olsner has joined.
22:29:01 -!- GregorR has joined.
22:30:01 <GregorR> Yaaaay netsplits.
22:30:22 -!- clog has joined.
22:30:22 -!- clog has joined.
22:37:35 <tusho> BACK.
22:37:37 <tusho> *Back
22:42:11 -!- GregorR has quit (clarke.freenode.net irc.freenode.net).
22:42:12 -!- olsner has quit (clarke.freenode.net irc.freenode.net).
22:49:27 -!- tusho has quit (clarke.freenode.net irc.freenode.net).
22:49:27 -!- Phenax has quit (clarke.freenode.net irc.freenode.net).
22:49:27 -!- bsmntbombdood has quit (clarke.freenode.net irc.freenode.net).
22:49:27 -!- oerjan has quit (clarke.freenode.net irc.freenode.net).
22:49:27 -!- lament has quit (clarke.freenode.net irc.freenode.net).
22:49:27 -!- timotiis has quit (clarke.freenode.net irc.freenode.net).
22:49:27 -!- fizzie has quit (clarke.freenode.net irc.freenode.net).
22:49:27 -!- lifthras1ir has quit (clarke.freenode.net irc.freenode.net).
22:49:27 -!- puzzlet has quit (clarke.freenode.net irc.freenode.net).
22:49:27 -!- Polar has quit (clarke.freenode.net irc.freenode.net).
22:49:27 -!- AAAAAAue4njxuz has quit (clarke.freenode.net irc.freenode.net).
22:49:27 -!- Dewi has quit (clarke.freenode.net irc.freenode.net).
22:49:27 -!- Deewiant has quit (clarke.freenode.net irc.freenode.net).
22:49:27 -!- B|u35un has quit (clarke.freenode.net irc.freenode.net).
22:49:27 -!- RedDak has quit (clarke.freenode.net irc.freenode.net).
22:49:27 -!- Corun has quit (clarke.freenode.net irc.freenode.net).
22:49:27 -!- sekhmet has quit (clarke.freenode.net irc.freenode.net).
22:49:27 -!- dbc has quit (clarke.freenode.net irc.freenode.net).
22:49:27 -!- mtve has quit (clarke.freenode.net irc.freenode.net).
22:49:27 -!- SimonRC has quit (clarke.freenode.net irc.freenode.net).
22:49:27 -!- Slereah_ has quit (clarke.freenode.net irc.freenode.net).
22:49:27 -!- sebbu has quit (clarke.freenode.net irc.freenode.net).
22:49:27 -!- atsampson has quit (Connection reset by peer).
22:49:27 -!- atsampson has joined.
22:49:27 -!- GregorR has joined.
22:49:27 -!- olsner has joined.
22:49:27 -!- RedDak has joined.
22:49:27 -!- lament has joined.
22:49:27 -!- lifthras1ir has joined.
22:49:27 -!- Corun has joined.
22:49:27 -!- B|u35un has joined.
22:49:27 -!- SimonRC has joined.
22:49:27 -!- timotiis has joined.
22:49:27 -!- tusho has joined.
22:49:27 -!- puzzlet has joined.
22:49:27 -!- sebbu has joined.
22:49:27 -!- oerjan has joined.
22:49:27 -!- Slereah_ has joined.
22:49:27 -!- Phenax has joined.
22:49:27 -!- fizzie has joined.
22:49:27 -!- Deewiant has joined.
22:49:27 -!- bsmntbombdood has joined.
22:49:27 -!- Polar has joined.
22:49:27 -!- AAAAAAue4njxuz has joined.
22:49:27 -!- sekhmet has joined.
22:49:27 -!- Dewi has joined.
22:49:27 -!- dbc has joined.
22:49:27 -!- mtve has joined.
22:49:27 <tusho> GregorR: Anyway, for when you have multiple files, the overwhelmingly common thing to do is to concat them all together, then run them through a JS packer
22:49:28 <tusho> for distribution
22:49:34 <tusho> So, still only one include for this mythical external user who wrote his own page.
22:50:31 -!- olsner has quit (clarke.freenode.net irc.freenode.net).
22:50:31 -!- GregorR has quit (clarke.freenode.net irc.freenode.net).
22:54:16 <Dewi> tusho: lack of includes is the reason pages include dozens of hundreds of kb of unused script
22:54:24 <Dewi> dozens or hundreds, even
22:54:34 <tusho> Dewi: that's called "bad coding"
22:54:43 <tusho> thankfully, JSMIPS depends on all of itself.
22:54:46 <Dewi> tusho: huh?
22:54:59 <Dewi> tusho: how is it bad coding to not be able to do the impossible?
22:55:30 <Dewi> tusho: requiring a whole server-side infrastructure just to have dynamically loading scripts is stupid
22:55:44 <tusho> ...
22:55:49 <tusho> I think you're misguided as to what I am talking about.
22:56:14 <Dewi> javascript needs includes almost as badly as it needs decent namespacing
22:57:10 <tusho> Dewi: ecmascript4 has namespaces
22:57:29 -!- olsner has joined.
22:57:29 -!- GregorR has joined.
22:57:39 <tusho> tusho: GregorR: Anyway, for when you have multiple files, the overwhelmingly common thing to do is to concat them all together, then run them through a JS packer
22:57:39 <tusho> [22:50] tusho: for distribution
22:57:40 <tusho> [22:50] tusho: So, still only one include for this mythical external user who wrote his own page.
22:57:47 <tusho> (in case he missed it due to netsplit)
23:00:45 <GregorR> OK, that's a good point >_>
23:01:02 * tusho feels victorious :-P
23:01:09 <GregorR> I forgot all about packing.
23:01:14 <Dewi> tusho: hmm... I've seen techniques based on people adding <script> tags to the DOM. You could probably add/remove modules that way if you really needed to
23:01:25 <tusho> Dewi: yes, that is what gregorr currently does
23:01:29 <GregorR> Dewi: That's what I'm -- yeah.
23:01:33 <tusho> but yeah, once you're packing, you might as well just run 'cat' over them
23:03:39 <tusho> Anyway, as for dependencies...
23:03:50 <tusho> mipsio depends on console. mips depends on mipsio.
23:03:52 <tusho> Everything else has no dependencies.
23:03:55 <tusho> Okay then
23:04:00 <Dewi> I still think there's a case for <script src="jspacker.js?module=foo&module=bar&module=baz">
23:04:08 <GregorR> mips.js depends on vmem.js
23:04:12 <tusho> ah yes
23:04:18 <tusho> Dewi: yes, sometimes
23:06:18 <Dewi> most of the problem is the way you often don't have access to the <head> from the context you're working in
23:06:29 <Dewi> but that's more about how most serverside frameworks suck
23:06:53 <tusho> Dewi: re: serverside frameworks - ditto to that
23:07:02 <Dewi> most of these technologies work okay on their own
23:07:15 <tusho> my dream server-side framework is ecmascript4 or similar (i.e. same server/client language)
23:07:19 <tusho> that lets you access the DOM of the resulting page
23:07:20 <Dewi> but I've never seen HTML + CSS + javascript actually working comfortably together
23:07:27 <tusho> it would be so blissful
23:09:00 * GregorR disappears into Fathers-Day-ness.
23:09:08 -!- oerjan has quit ("Good night").
23:09:10 <tusho> GregorR: Do I have permission to push? :-P
23:09:13 <GregorR> Yes :P
23:12:15 <tusho> Dewi: Do you agree ;_;
23:14:15 -!- RedDak has quit (Remote closed the connection).
23:15:28 <Dewi> hehe
23:15:38 <Dewi> tusho: I don't have all the context
23:15:56 <tusho> tusho: my dream server-side framework is ecmascript4 or similar (i.e. same server/client language)
23:15:56 <tusho> [23:08] tusho: that lets you access the DOM of the resulting page
23:15:59 <tusho> tusho: it would be so blissful
23:16:06 <tusho> (in reply to what you said about server-side frameworks)
23:16:13 <Dewi> tusho: oh that
23:16:49 <Dewi> tusho: I'm not sure how that would work
23:17:04 <Dewi> tusho: but server-side frameworks are what's generating the DOM
23:17:22 <tusho> Dewi: basically, you could do like
23:17:28 <Dewi> tusho: I have no respect for the 95% of templating systems that consider the output to be text
23:17:29 <tusho> $("foo").addClass("bar")
23:17:35 <tusho> before the page gets to the browser
23:17:42 <tusho> (of course not in a controller...)
23:18:01 <tusho> Dewi: the problem with xml templating languages is that they break when you're not generating xml.
23:18:51 <Dewi> tusho: xslt has its uglinesses, certainly. I just haven't seen anything else that natively has a concept of the structure of the output
23:19:09 <tusho> xslt, yech
23:19:20 <tusho> Dewi: i think what to do here is embrace the unix philosophy that it's probably text.
23:19:27 <Dewi> tusho: so for me, at the moment, I just have to think of HTML as an XML tree serialized down to HTML4
23:19:52 <Dewi> tusho: oh, and that text is probably 8-bit bytes? bleh.
23:20:27 <tusho> Dewi: maybe if you replaced 'XML' with 's-expressions' and 'XSLT' with 'lisp' you could have a winner ;)
23:20:31 <Dewi> I'll be happy to treat it as text if and when it's possible to quickly and easily parse/serialize fragments
23:21:07 <Dewi> tusho: heh. I don't know lisp, but XSLT does kind of seem like "lisp with 1% of the functionality and 100 times more verbose syntax"
23:21:36 <Dewi> (and I don't know what s-expressions are)
23:21:45 <tusho> Dewi: s-expressions are what lisp code and data is made of.
23:25:00 <Dewi> tusho: a confusing little bit of haskell is all I got fed at university, and the closest thing I've had to non-imperative programming since is XSL
23:25:53 <augur> well, lisp DATA is made of lists
23:26:05 <augur> which can be represented externally as s-expressions
23:29:12 <tusho> Dewi: want a mocked-up XSLT-replacement I just wrote?
23:29:14 <tusho> i.e. an example on it
23:29:16 <tusho> *in
23:29:19 <tusho> where it is unimplemented
23:29:31 <Dewi> tusho: I guess...
23:29:34 <tusho> http://paste.lisp.org/display/62294
23:29:34 * Dewi smiles.
23:29:41 <augur> dewi, whatchu trying to make?
23:29:42 <tusho> nicer than xslt, at least
23:29:59 <tusho> though a little hacky..
23:30:12 <Dewi> augur: nothing, just talking about how server-side templating languages that don't appreciate the structure of their output, suck
23:30:21 <Dewi> augur: while at the same time, I have a feeling XSLT sucks in most other ways
23:30:35 <augur> ah. well noone uses XSLT to do templating. ;)
23:30:39 <Dewi> and I don't know of anything else
23:30:47 <augur> atleast, noone i know who does this stuff professionally.
23:31:01 <Dewi> augur: I've never seen professional code that didn't
23:31:10 <augur> really? weird.
23:31:14 <GregorR> I wish there was a blit-and-raster-oriented equivalent to <canvas>
23:31:21 <tusho> GregorR: I thought you were gone.
23:31:23 <GregorR> Then SDL could run pseudo-efficiently on JSMIPS :P
23:31:26 <Dewi> augur: not professional as in "doing it for money", professional as in "this code is not wildly irresponsible and broken"
23:31:31 <augur> everyone i know does their templating in their language of choice
23:31:32 <GregorR> I was showering, now is the brief time between showering and leaving :P
23:31:34 <augur> namely ruby or php
23:31:53 <tusho> augur: Yes, that's because you hang out with the WEB TWO POINT OH crowd.
23:32:00 <augur> lol
23:32:10 <Dewi> augur: I don't know ruby, but PHP has large amounts of problems relating to treating HTML as text, and text as bytes
23:32:25 <augur> hm. ive never had any issues with it doing that but ok.
23:32:26 <Dewi> it's almost impossible to write truly correct code
23:32:47 <augur> well, the majority of websites that use dynamic content are run off php
23:32:48 <augur> so..
23:33:02 <Dewi> I don't know anyone who habitually escapes content each and every time it moves between native, HTML, database, etc
23:33:37 <Dewi> they just do it when they predict a problem
23:33:53 <Dewi> except programmers are really bad at predicting problems; it would be better if we just did things right
23:34:10 <tusho> Dewi: http://paste.lisp.org/display/62294#1
23:34:13 <augur> ::shrug:: never seen any problems.
23:34:15 <tusho> replaced the XML in my example with s-expressions
23:34:16 <Dewi> augur: most dynamic web sites that get hacked also are
23:34:28 <tusho> augur: because you don't think about languages other than english, presumably.
23:34:28 <augur> php based?
23:34:34 <Dewi> augur: yes
23:34:49 <Dewi> tusho: or even english with punctuation
23:34:57 <augur> sure, but thats mostly because of bad SQL management yeah.
23:35:17 <Dewi> tusho: MS Word and Mac punctuation gets chewed up real nicely by systems using Latin-1
23:35:24 <augur> but thats a problem with anything db based
23:35:29 <Dewi> augur: huh?
23:35:35 <augur> what huh?
23:35:43 <Dewi> augur: I don't think it's really SQL's problem
23:35:48 <augur> no, its not
23:35:55 <tusho> augur: PLACEHOLDERS
23:35:58 <tusho> Let me show PHP programmers them!
23:36:00 <augur> its a problem of poorly managing your DB tho
23:36:16 <Dewi> augur: most php coders don't even use the parameterised SQL interface they are given
23:36:20 <augur> but you're always going to have issues with sql injection
23:36:42 <Dewi> augur: I've literally never read code other than mine that used a parameterised interface to SQL
23:36:51 <augur> XSLT doesnt make that vanish, as far as i know.
23:36:57 <tusho> augur: NO. You're not going to always have issues with it.
23:37:03 <tusho> Placeholders = SQL injection is IMPOSSIBLE.
23:37:07 <Dewi> augur: no, because XSLT is at the other end
23:37:15 <augur> ey?
23:37:24 <Dewi> augur: for databases, parameterised interfaces are the way to go
23:37:26 <tusho> Oh shit, augur doesn't know what SQL placeholders are.
23:37:30 <tusho> WEB TWO POINT OH!
23:37:40 <augur> tusho, what?
23:37:46 <Dewi> tusho and I are using different language to describe the same thing, btw
23:37:53 * tusho makes mental note - never, ever use any code augur has touched
23:37:59 <tusho> even if it doesn't use a database.
23:37:59 <Dewi> parameters/placeholders
23:38:00 * GregorR uses Web 3.9
23:38:19 <tusho> GregorR: Loser. I run Web 4.1 pre-pre-pre-pre-post-beta-alpha-pre-pre-pre-RC60.
23:38:31 <augur> o_O
23:38:53 <augur> is there a serious discussion here or did i just fall into the middle of tusho having a seizure?
23:39:06 <tusho> #esoteric is the premier channel for seizures.
23:39:24 * Dewi suspects a causal link
23:39:40 <Dewi> I mean I come in here and innocently complain about how everything sucks
23:39:45 <Dewi> and before I know it, I'm failing to read lisp
23:39:59 <tusho> Dewi: my code isn't THAT hard to understand is it :P
23:40:10 <tusho> oh I missed passing the users list to mapcar though
23:40:11 <tusho> :q
23:40:26 * tusho continues work on the amazingly awesome feathejs
23:40:42 <augur> *sigh*
23:41:52 <tusho> Feathejs is really truly awesome though.
23:42:01 <Dewi> tusho: that (table) is a hell of a long way from anything a designer would touch
23:42:14 <tusho> Dewi: yep, it is
23:42:33 <tusho> Dewi: however, competent designers write their own xhtml and css
23:42:41 <tusho> so I'm sure you could mangle something that they'd touch into XML
23:42:42 <Dewi> tusho: incidentally the reason for adopting XSLT where I worked 3 years ago, was the foolish expectation that designers and their tools (dreamweaver etc) could handle it
23:43:14 <tusho> Dewi: I'd say that what to do in this case is to have the designer create a mockup (i.e. with 3 fake entries of people)
23:43:18 <tusho> then add the declarations yourself
23:43:21 <tusho> unfortunate, but foolproof
23:43:22 <Dewi> tusho: oh, and I need to say we were actually using a near-identical metalanguage of XSLT - where there was an implied "/"-matching template around everything so static HTML was a valid XSL that would output itself
23:43:39 -!- oklopol has joined.
23:43:58 <augur> oklopol! :D
23:44:03 <tusho> OKLOPOL
23:44:03 <tusho> MY LOVE
23:44:12 <augur> hey, i claimed him first! >O
23:44:21 <tusho> TOUCH
23:44:22 <tusho> *THOUGH
23:44:24 <tusho> *TOUGH
23:44:28 <tusho> THOUGH. WE CAN SHARE!
23:44:36 <augur> ok.
23:44:39 <tusho> (and one again #esoteric turns homoerotic)
23:44:49 <augur> was it ever NOT homoerotic?
23:44:51 <augur> lets be honest.
23:44:53 <tusho> augur: yes
23:45:01 <tusho> before slereah came.
23:45:03 <tusho> :P
23:45:07 <augur> yeah well
23:45:10 <augur> he IS pretty gay
23:45:11 <tusho> oklopol and bsmntbombdood did have the occasional orgies, though.
23:45:21 <augur> slereah is just cocks cocks cocks
23:45:31 <bsmntbombdood> hawt
23:45:41 <augur> oklopol, i think im going to write the parser for Reactance tonight
23:45:51 <tusho> bsmntbombdood: you, me, oklopol, augur
23:45:51 <tusho> yes?
23:45:52 <augur> we should formalize the grammar.
23:46:02 <tusho> augur: fuck you, we're being homoerotic.
23:46:09 <tusho> can't you see we're BUSY?!
23:46:12 <augur> tusho, you're underage. i cant homoeroticize you.
23:46:15 <augur> in public.
23:46:26 * tusho sets mode +i #esoteric
23:46:27 <tusho> TADA
23:46:36 <augur> ::homoeroticizes tusho::
23:46:44 * tusho sets mode -i #esoteric
23:46:46 <tusho> MWAHAHAHAHA
23:47:04 <augur> tusho have you watched sicp?
23:47:13 <tusho> augur: no
23:47:20 <augur> you should, its really good
23:47:27 <tusho> maybe I will, sometime
23:55:59 <SimonRC> um, "watched"?
23:56:08 <SimonRC> I thought SICP was a book?
23:56:16 <augur> it was a lecture before it was a book
23:56:20 <SimonRC> ah, ok
23:56:26 <augur> and there are videos of the lectures on the interblogs
23:56:40 <augur> actually, there are videos of a number of different versions
23:57:16 <augur> one set of videos is Abelson and Sussman teaching at HP
23:57:27 <augur> very good, very fast
23:57:35 <augur> theres also brian harvey from berkeley
23:58:01 <augur> you can watch various versions of the SICP course from the last few years
23:58:56 <oklopol> so cool
23:59:02 <augur> hey you
23:59:16 * SimonRC goes to bed ( http://www.ebonmusings.org/atheism/ghost.html )
23:59:48 -!- timotiis has quit (Read error: 110 (Connection timed out)).
←2008-06-14 2008-06-15 2008-06-16→ ↑2008 ↑all