00:00:03 <SimonRC> a continuation does not mutate itself
00:00:09 <test_> yes, why couldn't you do that?
00:00:54 <SimonRC> How do you implement re-useable continuations on top of non-reusable coroutines?
00:01:16 <test_> maybe we're thinking of different ways of defining continuations in coroutines
00:01:19 <test_> i'd explain mine but it's long
00:03:32 <lament> wikipedia says that coroutines are "best implemented using continuations"
00:04:10 <lament> it says nothing about the possibility of implementing continuations using coroutines, although that does seem intuitively impossible
00:06:04 <SimonRC> One could say that co-routines are more of an imperative thing whereas continuations are more of an impure-functionl thing.
00:06:13 <SimonRC> sorry, not totally relevent
00:06:26 <test_> true, but co-routines could be said to be functional
00:06:38 <lament> test_: so how would you implement continuations with coroutines?
00:06:47 <test_> lament, the simple way? :P
00:06:57 <test_> its not easy to cram into an irc message
00:07:05 <lament> must be not all that simple then :)
00:07:09 <lament> i can think of no obvious way
00:07:15 <lament> (of course, i'm convinced it's impossible)
00:07:25 <test_> SimonRC, to take a quote from lazy k, the computation part of coroutines is an implementation detail... so if you imagine "yield" as a branching statement, they are pure
00:07:32 <SimonRC> In the pure functional world we have things like Control.Monad.Cont.ContT, which is fatal to those with an IQ of less that 150.
00:13:10 <lament> it seems that coroutines are almost exactly "one-use" continuations
00:13:30 <lament> so how would you get "multi-use" out of them is unclear
00:19:17 -!- test_ has quit (Read error: 104 (Connection reset by peer)).
00:22:28 <bsmntbombdood> you can write the specification of the problem instead of how to solve it
00:23:06 <lament> bsmntbombdood: that's exactly how Prolog already works
00:23:12 <lament> consider looking at it
00:24:27 <lament> (as usually, scheme shines at being able to emulate any programming paradigm out there)
00:25:09 <oerjan> i believe Haskell has a LogicT monad somewhere :)
00:25:44 <oerjan> (based on Oleg (TM) work, i think)
00:27:13 <oerjan> btw i have read a couple of times that _delimited_ continuations are essentially equivalent to arbitrary monads.
00:32:27 <lament> fucked-up things nobody understands often tend to be equivalent to one another
00:34:11 <bsmntbombdood> (if (>= lo hi) (amb) (amb lo (an-integer-between (+ lo 1) hi))))
00:35:25 <oerjan> shouldn't that be > rather than >= ?
00:35:55 <lament> i think he's using Python semantics for lo and hi
00:35:58 <bsmntbombdood> it won't work with the a-pythagorean-triple-between proc in sicp
00:39:44 <oklofok> i think i've been missing something in my life until this if scheme macros can actually archieve stuff like that
00:39:49 <lament> prolog has 'between' built-in
00:39:51 <lament> ?- between(1, 3, N), write(N), fail.
00:47:38 <bsmntbombdood> why does sicp implement amb as an extension to eval rather than just a macro?
01:33:25 -!- oklopol has quit (anthony.freenode.net irc.freenode.net).
01:33:25 -!- sp3tt has quit (anthony.freenode.net irc.freenode.net).
01:33:25 -!- meatmanek has quit (anthony.freenode.net irc.freenode.net).
01:33:35 -!- meatmanek has joined.
01:33:35 -!- sp3tt has joined.
01:33:35 -!- oklopol has joined.
03:26:03 * pikhq is back in Ratpoison. :D
03:32:12 <pikhq> "He plans to release future versions of Ion3 as closed source"
03:34:49 <pikhq> Read the Wikipedia page.
03:36:33 <pikhq> http://archlinux.org/pipermail/tur-users/2007-April/004644.html
03:41:43 <bsmntbombdood> last time i checked in with tumuo there was an ion4 in the works
03:59:35 <bsmntbombdood> just because his new code won't be open doesn't make his old code any worse
04:01:09 <pikhq> No, it means that it'll stagnate.
04:01:42 <pikhq> Ratpoison, on the other hand, is still actively maintained (although a bit less actively, since the main author is currently involved in porting it to Common Lisp)
04:02:24 -!- GregorR-L has joined.
04:05:09 <bsmntbombdood> i think ion can be extended in lua enough to not need active dev
04:09:06 <pikhq> The dev of Conkeror uses Ratpoison. Since Conkeror rocks, Ratpoison must also rock.
04:09:51 <pikhq> Shawn Betts writes Conkeror, Ratpoison, *and* StumpWm.
04:09:55 <pikhq> Man, that guy rocks.
04:10:48 <pikhq> The man has *also* written nethack-el and LiCE (a port of the Elisp engine to Common Lisp). . .
04:33:36 -!- immibis has joined.
04:37:13 -!- toBogE has joined.
04:45:21 -!- GreaseMonkey has joined.
04:46:37 -!- immibis has set topic: alin0.
04:47:03 -!- immibis has set topic: Esoteric programming language discussion | FORUM AND WIKI: esolangs.org | CHANNEL LOGS: http://ircbrowse.com/cdates.html?channel=esoteric.
04:47:12 <immibis> was trying to see if you could /topic a user
04:52:10 <immibis> it sets the topic of the current channel instead
04:52:24 <immibis> so don't try it unless you don't like the channel you're in
04:52:35 <immibis> and since you're only on #esoteric...
04:58:32 <pikhq> http://www.latimes.com/news/local/la-me-explode27jul27,0,3190584.story?coll=la-home-local Explosion at Scaled kills 2, injures 4
05:01:07 <oklofok> immibis: i'm not only on #esoteric
05:01:41 <pikhq> Scaled Composites.
05:01:48 <oklofok> but you're right in that i like this channel
05:01:51 <pikhq> Creator of SpaceShipOne.
05:03:36 <pikhq> To me, at least. . .
05:03:47 <immibis> [16:02] ->> oklofok is on :#esoteric
05:03:51 <oklofok> because... you like rockets?
05:04:08 <immibis> true, [16:02] ->> oklopol is on #haskell #toboge #esoteric-blah @#vjn #osdev #esoteric
05:04:22 <oklofok> immibis: also this one is one multiple channels.
05:05:09 <immibis> oerjan: he's the only user on that channel
05:05:09 <oklofok> i guess it was created for bot flood not to takeover here
05:05:45 <oklofok> it often happens channels die out but i don't leave them
05:06:51 -!- Sukoshi has joined.
05:07:04 <Sukoshi> So, I'm guessing a constructor in Java can't throw an exception?
05:09:13 <Sukoshi> Well, you can. But in this case, I want this constructor to invoke its super's constructor, and the super throws an exception.
05:09:47 <Sukoshi> But I can't wrap a try/catch around it, because the compiler cries saying it needs the super's constructor to be the first statement in the constructor.
05:11:14 <oklofok> you can't throw an exception in a constructor and still have the object actually created
05:11:28 <Sukoshi> Well, I want it to throw another exception.
05:11:30 <oklofok> so they don't let you catch the super's exception because you will never need it
05:12:02 <Sukoshi> Because this class is subclassed by other classes, the meaning of the internal exception has different meanings for the subclass's user based on the subclass used.
05:12:22 <Sukoshi> So the subclass basically throws a domain-specific version of the exception.
05:15:58 <oklofok> immibis: anyway, i'm also on #scheme
05:16:53 <Sukoshi> Maybe a minor refactor is neccessary hmm.
05:17:07 <Sukoshi> Now the interface won't be as nice as I wanted it to be, but it'll work.
05:18:26 <oklofok> yeah, well, interfaces are overrated anyway
05:18:55 <oklofok> Okomol Opilovonal <<< i have to compliment me on my choise for name
05:19:25 <immibis> public MyClass() throws SuperClassException {super("Parameter");}
05:19:57 <immibis> or is it a secret channel?
05:22:06 <immibis> when i'm on that channel, /whois says you are on it
05:22:11 <immibis> when i'm not, /whois says you're not
05:22:18 <oklofok> external messages and colors are disallowes
05:22:36 <oklofok> it's not secret once you're on it
05:22:49 <oklofok> but... i don't see a secret flag on #scheme
05:23:46 <oklofok> immibis: that java code doesn't help, she wanted to catch super's constructor's error in the subclass's constructor
05:25:11 <immibis> maybe: private MyClass(int parm1) throws Exception {super(parm1);} public static MyClass create() {MyClass c=new MyClass(0); CONSTRUCTOR CODE; return c;}
05:26:29 <Sukoshi> I think a refactor is better.
05:26:43 <Sukoshi> Is ``Releases the value stream points to'' a good comment? :P
05:26:59 <Sukoshi> Because objects *are* technically references.
05:27:52 <Sukoshi> Dunno if Java coders understand references/pointers in their lexicon though.
05:28:59 <immibis> probably ``releases the stream" would be better because java does not distinguish much between the reference and the object it refers to
05:29:32 <Sukoshi> Although when I code, I think of Objects as pointers though.
05:29:38 <Sukoshi> I guess that's just my C background showing.
05:30:13 <Sukoshi> oklofok: http://www.cecs.csulb.edu/~hill/cecs497/nestreme/howto.html <-- Havas unun bonan tempon.
05:30:40 <Sukoshi> Unu artikolo ke eksplenas la metodo pri krei unu emulatoro.
05:32:16 <pikhq> Vi kaj via esperanto. :p
05:33:17 <pikhq> (One article that explains the method of creating one emulator. ?)
05:35:30 <oerjan> Question marks for everyone!
05:35:39 <Sukoshi> Not my fault you don't have UTF-8.
05:36:12 <oerjan> oh, i forgot, i actually thought you were totally bewildered about something :D
05:36:39 <Sukoshi> Maybe the amount of bewilderment you see on IRC will go down if you get UTF-8 support working :P
05:36:44 <oklofok> Sukoshi: i actually stopped making the emulator because sdl was just too hard for me to download :)
05:36:56 <oklofok> i guess it's just an apt-get...
05:37:02 <pikhq> I'm convinced that UTF-8 support sucks in UNIX.
05:37:03 <oklofok> but they never *really* work.
05:37:14 <Sukoshi> You need libsdl and libsdl-dev.
05:37:51 <oklofok> not very, if i just ask for them to install themselves and they will
05:38:02 <Sukoshi> So you can't link to them?
05:38:04 <oklofok> if i actually have to know where to put what, it gets quite hard
05:38:16 <oklofok> i've never done *anything* with multiple files
05:38:33 <Sukoshi> o_O Do you write a lot of code?
05:38:47 <Sukoshi> You fit it into one file?!
05:39:03 <oklofok> err yeah, i don't like having many
05:39:11 <oklofok> well, one file per application
05:39:16 <pikhq> oklofok: That ain't right.
05:39:20 <pikhq> That just ain't right.
05:39:41 <Sukoshi> Good luck having someone else read your code :P
05:39:46 <Sukoshi> Or making your code even somewhat modular.
05:39:51 * pikhq really, really hates having locale set to en_US.UTF-8 and not having Unicode work at all
05:40:08 <Sukoshi> UTF-8 works like a beaut on me system har.
05:40:08 <pikhq> oklofok: It's not all that hard. . .
05:40:09 <oklofok> it's pretty modular, i don't see what that has to do with the fact i don't have multiple files
05:40:27 <pikhq> Sukoshi: I've got USE="unicode", a Unicode local, and yet my terminal hates Unicode.
05:40:31 <Sukoshi> Well, it's considered a Very Bad Thing (TM).
05:40:36 <oklofok> i guess it's not, i just never learned how to link other than one .cpp
05:40:47 <pikhq> gcc -c -o foo.o foo.c
05:40:51 <pikhq> gcc -c -o bar.o bar.c
05:40:51 <oklofok> except with an ide, but i don't have one in linux
05:40:57 <pikhq> gcc bar.o foo.o -o foobar
05:41:20 <pikhq> If you need to link anthing else, one adds it to the last command line. . .
05:41:27 <oklofok> i know how to use those in visual c++, but i'm guessing gcc does it a bit differently
05:41:39 <pikhq> No, they're in /lib.
05:41:43 <oklofok> then i don't see how i would not succeed
05:41:43 <Sukoshi> Attach the flag -LSDL IIRC.
05:42:14 <pikhq> oklofok: That's not how UNIX works.
05:42:54 <pikhq> The libraries are under /lib or /usr/lib. . . To link to them, you just do -lLIBRARY_NAME.
05:43:09 <pikhq> And then, the dynamic linker magically takes care of the rest.
05:43:19 <Sukoshi> C libraries are compiled to object files (.o and .so) and these object files are kept in a directory which is maintained by LD_CONFIG. You give gcc an -l flag and it includes the corresponding lib as neccessary.
05:43:43 <immibis> oklogok: the -lFILENAME flag to ld (or gcc) will link the library called libFILENAME.so or libFILENAME.a which is somewhere on the search path, into your program.
05:44:51 <oklofok> apt-get isn't the way to get libsdl
05:45:08 <pikhq> apt-get install sdl-dev
05:45:43 <pikhq> apt-cache search sdl
05:46:00 <Sukoshi> Since it resolves package removes in a nicer way.
05:46:09 * pikhq uses Gentoo, anyways
05:46:26 <pikhq> Another good distro.
05:46:54 <oklofok> i have no idea what to download there
05:47:05 <Sukoshi> .... Read the package descriptions ...
05:49:03 <oklofok> how do i get the rest of a description?
05:49:30 <oklofok> "Simple DirectMedia Layer development fil" might be it
05:52:33 <oklofok> "unable to fetch some archives"
05:53:00 <pikhq> When was the last time you did something like that?
05:53:34 <oklofok> that'd be a long time ago.
05:53:55 <pikhq> aptitude update&&aptitude upgrade;
05:53:55 <oklopol> "Some index files failed to download, they have been ignored, or old ones used instead."
05:54:02 <oklopol> this, again, is from update.
05:54:53 <oklopol> oh error with connection or something
05:56:48 <Sukoshi> Do them seperately. ``aptitude update'' ``aptitude upgrade''
05:57:27 <pikhq> Sukoshi: "aptitude update&&aptitude upgrade" will only continue to aptitude upgrade if the aptitude update returns 0.
05:58:02 <Sukoshi> I don't like BT's weird tracker request thinger.
05:58:20 <oklopol> actually i did "apt-get update", aptitude *did* work
05:58:38 <oklopol> i have no idea what aptitude is... but i guess it's like apt-get?
05:58:48 <Sukoshi> It's a more full-featured version of apt-get.
06:00:07 -!- oerjan has quit ("leaving").
06:00:58 <Sukoshi> How did BT even catch on, I can't understand. It's a mishmash of technologies.
06:01:46 <pikhq> BitTorrent, you mean?
06:03:15 <oklofok> ...is there an alternative?
06:03:35 <pikhq> Distributed IP over Avian Carrier.
06:03:53 <Sukoshi> It wouldn't be hard to write something cleaner than the BT standard.
06:05:17 <oklofok> i think the reason people use it is that not everyone cares if its standard is ugly
06:05:29 <pikhq> And that there's nothing better, sadly.
06:05:45 <oklofok> is there actually something wrong with torrents?
06:05:49 <Sukoshi> Writing a BT tracker must be a *royal* pain.
06:06:15 <Sukoshi> The standard is heavily baroque. Part of it is CGI, part of it is a peer-wire protocol, another is a BT specific bencode protocol.
06:06:54 <pikhq> No, Unicode is most holy.
06:07:14 <pikhq> Of course, I come from Tcl, where Unicode is par for the course.
06:07:44 <Sukoshi> The only complaint I've seen articulated correctly against Unicode is Matz's objection.
06:07:45 <bsmntbombdood> if you must use unicode, you should at least have the decency to use UTF-32
06:07:55 <pikhq> (seriously: everything is a string, and every string is UTF-8)
06:12:38 <pikhq> incr {ASCII compatible character sets containing more writing systems than any other}
06:17:08 <oklofok> now that i have SDL, i wonder if i should also have sdl.h somewhere
06:17:49 <pikhq> I think it's SDL.h, but I'm not sure.
06:19:48 <oklofok> be it either one of those, i can't find it
06:36:51 <lament> bsmntbombdood: what's wrong with them?
06:37:45 <lament> would you rather all words in a language be the same length, too? :)
06:39:02 <immibis> pikhq: i'm learning tcl, and is that legal, incrementing a string?
06:39:30 <immibis> don't you need to increment a _variable_?
06:40:21 <pikhq> That *is* incrementing a variable.
06:40:37 <pikhq> You type [incr var], not [incr $var].
06:40:46 <oklofok> isn't it pretty inefficient having strings only?
06:41:19 <pikhq> oklofok: The interpreter stores different representations of the string. . .
06:41:50 <pikhq> If you're only using a variable as a number, you only are dealing with a C int. . . If you're only using a variable as a list, then you're only dealing with a list.
06:42:11 <pikhq> It gets a different representation when you try to use it differently.
06:43:22 <pikhq> immibis: To dereference that variable, BTW, one would type either ${{ASCII compatible character sets containing more writing systems than any other} or [set {ASCII compatible character sets containing more writing systems than any other}]
06:44:12 <immibis> so variable names can contain spaces?
06:44:23 <pikhq> Have you read the Tcl man page?
06:44:31 <immibis> but who would want a variable called "ASCII compatible character sets containing more writing systems than any other"
06:44:40 <pikhq> No idea, but it's legal.
06:44:48 <immibis> probably just "applicable_charsets" would do
06:45:20 <pikhq> http://www.tcl.tk/man/tcl8.4/TclCmd/Tcl.htm
06:45:45 <pikhq> That's the full syntax and semantics of Tcl. . . Memorize it, and your Tcling will be better off.
06:50:47 <immibis> thats a clever website name, tcl.tk
06:52:03 <immibis> i assume it has info on tcl/tk as well?
06:52:39 * immibis would go to the website if he actually wanted to know that.
06:52:53 <pikhq> Yeah, it's the offical Tcl/Tk website.
06:52:56 <immibis> but immibis doesn't have tcl on this computer
06:55:05 <pikhq> Download a Tclkit.
06:55:34 * immibis thinks he's already gone over the "limit" on his "unlimited download" connection though.
06:58:06 -!- toBogE has quit (Read error: 104 (Connection reset by peer)).
06:58:26 <immibis> you can ask greasemonkey about that, he appears to have the same isp, i have to go now.
06:58:30 -!- immibis has quit ("Give a man a fish and he will eat for a day. Teach him how to fish, and he will sit in a boat and drink beer all day").
07:26:00 <Sukoshi> Does TCL have live objects?
07:27:08 <pikhq> . . . That doesn't help me.
07:27:18 <Sukoshi> Fully introspective at runtime?
07:27:58 <pikhq> That's something it's had from day one.
07:28:27 <lament> pikhq: can you fuck around with the execution stack?
07:28:34 <Sukoshi> That was my next question.
07:28:37 <lament> is it accessible as a first-class object of some kind?
07:29:03 <pikhq> One can go and pull variables from things up the stack, though. . .
07:29:08 <Sukoshi> Are blocks/methods first class objects?
07:29:44 <pikhq> Planned for Tcl 9. . .
07:29:45 <lament> those { blah } things aren't first-claass?
07:29:56 <pikhq> Those aren't blocks, those are *strings*.
07:30:09 <pikhq> I misinterpreted you.
07:30:12 <lament> but if you can execute strings...
07:30:18 <lament> that basically makes them blocks too, doesn't it
07:30:27 <lament> since everything's a string anyway...
07:30:35 <pikhq> Those are first-class.
07:30:41 <lament> okay, so tcl does have blocks :)
07:30:44 <Sukoshi> Now, if only Tcl had Smalltalk style syntax ... :P
07:31:04 <Sukoshi> Io is a very nice language, by the way.
07:31:05 <lament> can you specify function signatures in tcl?
07:31:33 <pikhq> Could you do me a favor and use terminology I can find via Wikipedia?
07:31:47 <Sukoshi> Wikipedia's CS articles are woefully bad :P
07:31:54 <lament> at least, can you specify how many arguments the function has
07:32:10 <lament> can you do that for a string? :)
07:32:17 <pikhq> proc foo {arg1 arg2 arg3} {# code here}
07:32:55 <lament> what exactly does proc do?
07:33:08 <pikhq> Defines a function.
07:33:23 <pikhq> To call that function: foo arg1 arg2 arg3
07:33:45 <lament> proc itself is a builtin function?
07:34:06 <lament> does it create a variable called foo and put the function in it?
07:34:22 <pikhq> Functions, unfortunately, aren't first class.
07:38:47 <pikhq> *That* is what's planned for Tcl 9.
07:38:47 <pikhq> Sadly, functions can only be passed by reference ATM.
07:38:47 <Sukoshi> What a lame shortcoming :|
07:38:47 <pikhq> (or, of course, you can do some radical language modification, adding anonymous functions)
07:38:47 <lament> pass-by-reference/pointer stuff is so ugly
07:38:47 <Sukoshi> newMethod := method(x, x + 2)
07:38:47 -!- GreaseMonkey has quit (Connection timed out).
07:38:47 -!- GreaseMonkey_ has joined.
07:38:47 <lament> Io is nice but some design decisions seemed silly
07:38:47 <pikhq> proc newMethod x {return [+ $x 2]}
07:38:47 <Sukoshi> The only decision I think was silly was the decision to nix the ST syntax.
07:38:47 -!- GreaseMonkey_ has changed nick to GreaseMonkey.
07:38:47 <lament> Sukoshi: actually yes, thats one of mine
07:38:47 <Sukoshi> newMethod := [ :x | x + 2] is nicer, IMO.
07:38:47 <lament> Io's method calling is much less pretty than smalltalk-style would be
07:38:47 <Sukoshi> lament: Wanna fork Io to use ST style?
07:38:47 <Sukoshi> But most ST implementations ... erm... suck? :P
07:38:47 <lament> I suppose the difference is Io is not supposed to be inside a virtual computer
07:38:47 <pikhq> One can actually take advantage of the Tcl pass-by-reference procs. . .
07:38:47 <Sukoshi> Plus, you can't play around as nicely with live objects if you don't have a prototype based system.
07:38:47 <pikhq> proc lambda {argl body} {K [info level 0] [proc [info level 0] $argl $body]} proc K {a b} {set a}
07:38:47 <pikhq> Bleh. That didn't paste right.
07:38:47 <pikhq> proc lambda {argl body} {K [info level 0] [proc [info level 0] $argl $body]};proc K {a b} {set a}
07:38:47 <lament> Sukoshi: i wonder how difficult completely changing the syntax of Io would be :)
07:38:47 <pikhq> Voila. A lambda function which returns a reference to a function.
07:39:06 <Sukoshi> lament: Hm. Do you know a lot about VM design?
07:39:12 <Sukoshi> If so, you can help out the Slate team.
07:39:12 <lament> Sukoshi: I've seen plugins for Squeak that changed the syntax of Smalltalk
07:39:26 <lament> i used to hang out in that channel some years ago
07:39:37 <lament> back when it was actually being developed
07:39:39 <pikhq> Bit hackish, in that it creates named procs. . .
07:39:45 <Sukoshi> That must have been glorious.
07:40:00 <Sukoshi> Well, it's died, now that the main VM developer has left in a sonorous case of OSS angst.
07:40:01 <lament> and recently i just randomly checked #slate logs and saw a conversation between you and water
07:40:09 <lament> about how slate is dead :(
07:40:34 <lament> i'm not sure if it was all that glorious
07:40:41 <lament> there was exactly one developer
07:40:57 <lament> so the channel was basically water and that guy
07:41:25 <lament> I had made a syntax highlighting mode for Slate for Nedit :)
07:41:28 <Sukoshi> Have you seen Piumarta's new Coke stuff?
07:41:47 <lament> no... haven't heard of piumarta or coke
07:43:28 <pikhq> Sukoshi: http://www.tcl.tk/cgi-bin/tct/tip/187.html
07:43:34 <lament> I've recently become disillusioned in Python, and now would be interested in another language
07:43:44 <lament> Io seems nice in general
07:44:03 <lament> but perhaps not good enough syntax to be useful
07:44:54 <lament> I should try actually writing something in it?
07:47:12 <pikhq> http://wiki.tcl.tk/10743
07:47:19 * pikhq bows before that god
07:53:16 <lament> hm, io is actually really pretty
07:53:41 <lament> Account deposit := method(amount, balance = balance + amount
07:55:29 <pikhq> proc deposit {amount} {balance} {incr balance $amount;return $balance};# Only meaningful in Jim, which is Tcl + closures + lambda
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:01:52 <Sukoshi> I *really* feel like coding an emulator.
08:01:59 <Sukoshi> But, I wanna work in a group.
08:04:03 <Sukoshi> One thing I don't like about Io is that it's FFI is pretty bleh.
08:06:06 -!- GreaseMonkey_ has joined.
08:06:15 -!- GreaseMonkey has quit (Nick collision from services.).
08:06:25 -!- GreaseMonkey_ has quit (Read error: 104 (Connection reset by peer)).
08:07:21 <Sukoshi> Foreign Function Interface.
08:07:57 -!- GreaseMonkey has joined.
08:13:33 -!- GregorR-L has quit ("Leaving").
08:14:10 <lament> io list syntax is ugly :)
08:20:56 <Sukoshi> Here's a surprising thing. Why doesen't Java have an OctetString class?
08:21:04 <Sukoshi> OctetStrings are useful on many occasions, methinks.
08:24:10 -!- ^_` has joined.
08:25:53 -!- GreaseMonkey has quit (Nick collision from services.).
08:25:58 -!- ^_` has changed nick to GreaseMonkey.
08:53:54 <Sukoshi> What interface do you implement to use the addition operator?
08:55:54 <oklopol> you mean, how do you overload operator + for a class of your own?
08:56:04 <oklopol> because, you can't, of course
08:57:08 <oklopol> but i think java's separation of primitives and objects is quite pretty
08:57:20 <oklopol> (don't get me wrong, i hate java)
09:14:32 -!- ^_` has joined.
09:15:56 -!- GreaseMonkey has quit (Nick collision from services.).
09:17:54 <Sukoshi> Really? I don't like its seperation of primitives and objects.
09:26:45 <Sukoshi> Well, it is a bit of a thin wrapper on top of C, which is the only advantage I see.
09:27:21 <Sukoshi> I mean, any C coder can think of Object blah = new Object(); to translate to void *blah; blah = malloc(sizeof(blah)); if (blah == NULL) { ... }
09:29:37 <Sukoshi> Well, obviously there's the business of the constructor, but the idea is the same.
09:34:32 <Sukoshi> If you understand C, the meaning there should be obvious.
09:35:43 <bsmntbombdood> < Sukoshi> I mean, any C coder can think of Object blah = new Object(); to translate
09:35:46 <bsmntbombdood> to void *blah; blah = malloc(sizeof(blah)); if (blah == NULL) { ... }
09:36:09 <oklofok> bsmntbombdood: i just do like it.
09:36:27 <Sukoshi> <Sukoshi> Well, it is a bit of a thin wrapper on top of C, which is the only advantage I see.
09:37:30 <bsmntbombdood> what you said would mean the sepperation of objects and primitives is unwarrented
09:38:42 <oklofok> a separation is needless, true, but it's a good separation.
09:39:02 <oklofok> i mean, sepperation, because that's like 50 times cooler way to type it.
09:42:05 <oklofok> there's a big hole in my pants... that's not good, there are my only pants
09:42:58 <oklofok> that joke only works when spoken
09:43:18 -!- ^_` has quit (Connection timed out).
09:44:57 <oklofok> i'm just afraid they might break completely
09:45:15 <oklofok> going camping for a week tomorrow *shiver*
09:45:24 <RodgerTheGreat> oklofok: I just had an idea. I was thinking about sewing methods for pant repair, and I realized that you could make a knitting-based esolang
09:45:53 <oklofok> yes, but not if your ex is there and she hates you
09:45:54 <RodgerTheGreat> as long as there are no stinging insects and it isn't burning hot
09:46:56 <oklofok> you spend a long time with people, you're bound to nail a few of them
09:47:51 <oklofok> hot is okay, insects are okay, naked is okay, what is not okay is the fact my computer isn't there
09:48:57 <oklofok> i'm pretty sure i could at least build an fsm of some sort from just like branches
09:49:28 <RodgerTheGreat> when I go camping I generally either survive by playing with my palm pilot (which conveniently has BF and BASIC interpreters), woodcarving or playing board games like RISK with my friends
09:49:39 <oklofok> me and a friend made 'or' and 'and' with rubber bands and chop sticks
09:50:00 <oklofok> we were gonna make a 'xor', but the way we implemented them, it would've taken a while
09:50:11 <oklofok> bsmntbombdood: i can do that... for a few days
09:50:28 <oklofok> hmm, it's a bit complicated...
09:50:35 <oklofok> i mean, at least the way we did it
09:50:47 <oklofok> so... basically first we built see-saws
09:51:01 <oklofok> like, you have a horizontal stick with another on top of it
09:51:12 <oklofok> so you can press down the other end and the other goes up
09:51:37 <oklofok> and attache them so that there is a joint with all three of them in the middle
09:51:46 <RodgerTheGreat> this is one of the most insane articles I've seen on slashdot in a while?
09:51:50 <oklofok> you can easily make 'or'/'and' that way
09:51:56 <RodgerTheGreat> http://blogs.nature.com/climatefeedback/2007/07/google_turns_to_the_dark_side.html
09:52:04 <oklofok> and xor is trivial if you have those
09:52:24 <RodgerTheGreat> on an LCD, the color displayed on the screen has no impact on power usage! aargh
09:52:33 <oklofok> it gets problematic with multiple gates, since you have to put in weights everywhere, and everything affects anything
09:53:04 <oklofok> bsmntbombdood: what don't you get? if i just try to explain again, i'll say the same thing.
09:53:18 <oklofok> i mean, unless instructed what to clear up
09:53:27 <RodgerTheGreat> hm. a clever design, but without scalability it's a very limited system
09:53:37 <oklofok> you have two of them be input
09:53:53 <oklofok> or: you have input's be under output
09:54:11 <oklofok> and: you have inputs be over output
09:54:42 <oklofok> and then you attach weights so that a seesaw will be in a certain position if no external weigth is given
09:55:10 <oklofok> so, you see how this isn't a very modular solution
09:56:52 <oklofok> those gates will just be able to evaluate simple logic expressions since they work simultaneously
09:57:08 <oklofok> like, when you give input, the output is there at the speed of sound, of course
09:57:23 <RodgerTheGreat> we should put our heads together to come up with a more scalable gate design, and then you can use it to make a 4-bit adder or something
09:58:03 <oklofok> if you want something you can program in, you need something that evaluates in *cycles*
09:58:33 <oklofok> i mean, not just calculates as you put input, like a gate system like that would
09:58:49 <oklofok> you could easily write any adder on that, if you just have the time :P
09:58:53 <RodgerTheGreat> that just needs gates that self-reset without a constant input, and then a clock-pulsing system of some kind
09:59:49 <oklofok> we tried to figure out a way to get the program "flow", but when you just have rubber bands and sticks, that is a bit of a problem
10:00:29 <oklofok> i mean, that it can, for example, have a loop
10:01:23 <oklofok> addition can be done on a finite gate system, but that's pretty much it
10:01:28 <RodgerTheGreat> it seems like that would just trend towards a balance between the gates
10:01:47 <oklofok> err yes, that's what i've been trying to say :)
10:02:22 <oklofok> anyway, a pretty tc-ish system could easily be created just it you could transmit the result back to the input ports
10:02:39 <bsmntbombdood> doesn't have to be turing complete to pass the time
10:02:40 <RodgerTheGreat> bsmntbombdood: yeah, so we need to design a clock or potentially an amplifier
10:02:44 <oklofok> bsmntbombdood: the idea was to have just rubber bands and sticks :)
10:02:57 <oklofok> RodgerTheGreat: nooooo, stay *band+stick*!
10:03:12 <RodgerTheGreat> if we could come up with a mechanical amplifier, it could add the needed energy to the system
10:03:27 <RodgerTheGreat> oklofok: can we use rocks and possibly string as well?
10:03:55 <oklofok> yes, absolutely, if those will help us get to the cycle level of computation
10:04:19 <oklofok> because, almost any cycle system will be programmable
10:05:07 <oklofok> can you explain what that would do physically?
10:05:34 <oklofok> i'm thinking about a system where input is given, then something is done to get the output back to the input ports
10:05:56 <oklofok> and then try to figure out how to do the information flow there
10:06:29 <RodgerTheGreat> what about some kind of pendulum system generating a periodic on/off stick flip?
10:07:07 <bsmntbombdood> RodgerTheGreat: might is well just use some cyclic finger tapping
10:07:48 <oklofok> so when the output happens, strings are pulled or left loose, and when the pendulum does a swing, whether they were loose or not will then pull on the strings attached to the input?
10:08:04 <Sukoshi> If I were out in the wilderness, I'd bring along spools of magnet wire, some iron nails, and some cups.
10:08:22 <Sukoshi> The challenge: Create a telephone system that broadcasts as far as possible.
10:08:29 <Sukoshi> Prove the math along the way for extra fun and profit.
10:08:55 <bsmntbombdood> how do you make a speaker/microphone out of those materials?
10:09:01 <oklofok> gimme your number and i can test
10:09:11 <RodgerTheGreat> Sukoshi: with a system of coils and electromagnets, you might be able to build relay logic!
10:09:22 <Sukoshi> I'm more of an RF geek, sorry :P
10:10:17 <Sukoshi> You run the wire through the cup. As you speak into the cup, it acts like a waveguide that causes the copper to vibrate. The copper has to vibrate in the presence of an electromagnet to create a changing magnetic flux upon the wire, and cause current to flow along it. You run that through an antenna you make out of more wire, et voila.
10:10:47 <oklofok> and... it will actually be a wireless phone?
10:10:58 <Sukoshi> The receiver works similarly, except that you have to have current running in the receiver wire as well, so that the changes in magnetic flux will create repulsion in the wires.
10:11:06 <RodgerTheGreat> it'd be very tricky without some form of amplification, but the principle is quite workable
10:11:09 <bsmntbombdood> where do you get the current for the electromagnet?
10:11:25 <oklofok> i thought induction current
10:11:34 <Sukoshi> I've never actually read the original Bell telephone spec, but I know enough electrics to build it myself.
10:11:39 <oklofok> well... okay, it's trivial making a dynamo
10:11:39 <bsmntbombdood> right, you could do it with a permanent magnet maybe
10:11:46 <oklofok> if you already have all those things
10:11:50 <Sukoshi> Where are you going to generate the force to create a large enough current?
10:12:05 <RodgerTheGreat> or you could be moving a permanent magnet back and forth through a coil as an energy source. It'd be hilarious
10:12:21 <Sukoshi> Yeah, the problem is, the source has to be direct current.
10:12:40 <Sukoshi> Or else you'll have the magnetic field oscillating, and that'll produce extra anoyances.
10:12:42 <bsmntbombdood> bell made a pressure-sensitive resistor out of powdered carbon
10:12:58 <Sukoshi> Reading about it takes away 90% of the fun :|.
10:13:02 <RodgerTheGreat> well, you can turn AC into DC a couple of ways... you could fabricate capacitors and diodes out of relatively common materials
10:13:19 <oklofok> hmm, but anyway, a rotating magnet will provide quite a lot of power, it will just need you to rotate it yourself... for which you need a wheel of some sort...
10:13:33 <Sukoshi> oklofok: It probably wouldn't.
10:13:52 <Sukoshi> Your typical magnet is 10G. Not even close to anything much
10:14:04 <RodgerTheGreat> two dissimilar conductive materials can function as a diode in the right configuration
10:14:40 <oklofok> Sukoshi: have more loops in your coil
10:14:41 <Sukoshi> 10 G = .001 T, by the way.
10:14:51 <bsmntbombdood> you can make a solar cell out of copper and salt water
10:14:55 <Sukoshi> oklofok: Find the maximum of the function. You'll find it's not much.
10:15:14 <RodgerTheGreat> bsmntbombdood: http://members.aol.com/djadamson7/articles/foxhole.html
10:15:45 <RodgerTheGreat> hm. I didn't know the copper+salt water trick. How much power do you get out of one?
10:16:06 <RodgerTheGreat> and is it a real solar cell, or does it just work by corroding the copper?
10:16:09 <oklofok> Sukoshi: physics + _ = phail
10:16:41 <oklofok> anyway, who said you have to have a *typical* magnet? and what is T?
10:16:59 <Sukoshi> oklofok: Where are you going to get a magnet like that from?
10:17:09 <Sukoshi> That can generate appreciable current?
10:17:25 <oklofok> Sukoshi: it's not about the magnet, it's about the coil
10:17:34 <RodgerTheGreat> bsmntbombdood: might work better just to make a thermocouple if you have a blowtorch.
10:17:40 <Sukoshi> oklofok: It's not about the coil, it's about the flux.
10:18:00 <Sukoshi> You can only fit so many coils in so small a space -- if you coil it too much, you need the flux to be as big *anyways*.
10:18:05 <oklofok> err... yeah, but it's a direct increase in current if you add loops.
10:18:24 <Sukoshi> Only if they're in the flux.
10:18:36 <oklofok> the magnet creates the flux..
10:18:40 <RodgerTheGreat> or even a fire, actually. You could directly generate quite a bit of current with a good thermocouple system heated in a good fire.
10:18:43 <Sukoshi> It's not an inifinite field.
10:18:53 <RodgerTheGreat> that makes it more practical than a blowtorch in the woods
10:19:03 <oklofok> but you actually know you can't coil up a decent current with a small magnet?
10:19:04 <Sukoshi> Or else you could build awesome generators with a magnet and massive amounts of coils --> Dun work that way.
10:19:22 <oklofok> that's how generators are made
10:19:33 <Sukoshi> They use things like water and steam to push them.
10:19:58 <oklofok> err yes, but we're creating the amount of current a battery creates
10:20:11 <oklofok> not electricity for the whole town
10:20:11 <Sukoshi> As I said, do the math if you don't believe me *shrug*.
10:20:51 <Sukoshi> The rate of flux change is huge, and so the
10:21:16 <oklofok> why don't you finish that sentence first :P
10:22:14 <oklofok> Sukoshi: if i feel like relearning how to do those boring physics calculations, i'll calculate that
10:25:15 <RodgerTheGreat> I wish there were blueprints for the Z1 available online. I'm sure they'd give us some ideas for our stick-band computer
10:26:30 <RodgerTheGreat> but it represented bits in memory with mechanical rods that could slide back and forth in two positions
10:26:55 <RodgerTheGreat> I understand how the machine functions on a systemic level, but there isn't much information on the mechanical details
10:28:54 <RodgerTheGreat> well, a better question might be asking how to build an amplifier. Vacuum tubes, Relays and transistors all do essentially the same thing- they modulate a powerful signal based on a weak one
10:29:52 <RodgerTheGreat> relays and transistors are easier to work with because they're strictly binary, whereas tubes are analog
10:29:57 <oklofok> hmm, i gotta get me some sticks and bands...
10:47:58 <oklofok> actually, i just realized i have like a ton of both
10:48:33 <oklofok> gotta practice a bit though
10:49:51 <oklofok> my friend once made a gun out of these that shot a stick meters
10:50:00 <oklofok> the same guy i did the ports with
10:50:22 <oklofok> it's not that hard, but it's pretty fun making stuff out of there
10:53:48 -!- Sukoshi has left (?).
11:08:44 <oklofok> first stick broken, 0 gates done.
11:08:59 <oklofok> how the hell did we make those ports that pretty...
11:53:21 -!- ehird` has joined.
13:02:33 -!- RedDak has joined.
13:53:31 -!- oklopol has quit (anthony.freenode.net irc.freenode.net).
13:53:31 -!- sp3tt has quit (anthony.freenode.net irc.freenode.net).
13:53:31 -!- meatmanek has quit (anthony.freenode.net irc.freenode.net).
13:53:45 -!- meatmanek has joined.
13:53:45 -!- sp3tt has joined.
13:53:45 -!- oklopol has joined.
13:53:57 -!- fizzie has quit (anthony.freenode.net irc.freenode.net).
13:55:13 -!- fizzie has joined.
14:24:29 -!- Tritonio has joined.
14:52:16 -!- Tritonio has quit (Read error: 110 (Connection timed out)).
15:42:15 <bsmntbombdood> i didn't sleep last night and now i fell better than when i do sleep
16:13:44 <ehird`> while (SIX * NINE == 42) {...}
16:14:14 <SimonRC> oklofok: what is your design?
16:14:26 <SimonRC> ehird`: we've all seen that before
16:14:35 <ehird`> SimonRC, well i haven't, so bleh =P
16:17:36 <ehird`> it's better than #define the_pope_is_catholic 1; while (the_pope_is_catholic) and #define until(x) while (!(x)); #define hell_freezes_over 0; do { ... } until(hell_freezes_over)
16:17:42 <ehird`> so i felt justified in pasting it here.
16:26:07 <bsmntbombdood> SimonRC: like oklofok and RodgerTheGreat and me were talking about
16:27:09 -!- sebbu has joined.
16:36:16 * ehird` makes mental note to clear up space to make rube goldberg machine computer
16:37:29 -!- atrapado has joined.
16:51:12 <pikhq> Rube Goldberg computation is evil cause I say so.
16:59:43 <ehird`> I want tennis balls to compute 2 + 3!
17:00:44 <ehird`> maybe i should start simple, like a calculator that can only add and subtract :P
17:01:01 <pikhq> Doesn't make it any less evil.
17:11:59 <SimonRC> the problem with any mechanical computer is how to amplify
17:12:22 <SimonRC> Don't forget there is such a thing as a "torque amplifier"
17:21:00 <SimonRC> After more than five years of searching, I have found it!
17:21:01 <SimonRC> http://drgoulu.wordpress.com/2005/12/29/eviteur-daxe/
17:21:02 <SimonRC> the legendary "shaft-passer", that allows one shaft to pass through another
17:21:03 <SimonRC> Despite the name, it is not a snark but really exists.
17:24:14 -!- RedDak has quit (Read error: 113 (No route to host)).
17:46:32 -!- jix has joined.
18:02:38 -!- RodgerTheGreat_ has joined.
18:11:32 -!- RodgerTheGreat has quit (Read error: 110 (Connection timed out)).
18:36:57 -!- atrapado has quit ("tempo!").
19:12:24 -!- pikhq_ has joined.
19:16:15 -!- pikhq has quit (Read error: 110 (Connection timed out)).
19:17:54 -!- pikhq_ has changed nick to pikhq.
19:45:09 -!- RodgerTheGreat_ has quit.
19:48:14 -!- ihope has joined.
19:54:59 -!- lament has left (?).
19:55:01 -!- lament has joined.
19:55:30 <lament> 11:53 [freenode] -!- ####esoteric ###esoteric Forwarding to another channel
19:55:30 <lament> 11:53 [freenode] -!- ###esoteric ##esoteric Forwarding to another channel
19:55:30 <lament> 11:53 [freenode] -!- ##esoteric #esoteric Forwarding to another channel
19:56:14 <pikhq> Someone been having fun with chanserv?
20:08:28 <lament> heh, i was complaining io's list syntax was ugly
20:08:32 <lament> http://iota.flowsnake.org/syntax-extensions.html
20:27:10 <ehird`> somebody should make an ascii movie based on those redirections
20:27:18 <ehird`> redirect to the next line of the frame
20:45:49 <ihope> lament: you still haven't created #####esoteric!
20:46:26 * ehird` growls about how binary operators in many OOP languages are fundamentally broken
20:46:36 <ehird`> X op Y - if X doesn't respond to op, try Y op X damnit!
20:46:51 <ehird`> then "" . num . "blah" would just be num . "blah"
20:47:15 * pikhq growls about how the idea of operators is broken. . .
20:47:45 * ehird` growls about how messages are broken
20:47:55 <ehird`> that solves that problem actually
20:48:27 <pikhq> [+ $x $y];#forgot the dereference
20:48:37 <ehird`> tcl is hardly a purely object-oriented language with binary operators built in and generic functions :)
20:48:44 <ehird`> [incr Tcl] doesn't count =P
20:48:59 <pikhq> It doesn't *have* an object system. . .
20:49:36 <pikhq> And binary operators? Well, Tcl 8.5 gets arithmetic functions that can be used in place of expr. . .
20:49:53 <ehird`> still not relevant, in the context of what i was saying
20:50:11 <ehird`> (Perfect language: Prototype-based OOP, with generic functions, and NO damn messages!)
20:50:14 <pikhq> (honestly, whose idea was it to have a function which evaluates infix statements rather than just some arithmetic functions?)
20:50:25 -!- RedDak has joined.
20:50:49 <ehird`> plus they wanted to keep their precious parsing spec so small because that is much more important than readability of code.
20:51:04 <pikhq> I find Tcl to be damned readable, actually. . .
20:52:09 <ehird`> But some idiosyncracies can make it annoying
20:52:44 <ehird`> especially their insistance on making everything a function, even when it is really ugly as a function
20:53:38 <ehird`> most of their control structures
20:53:48 <pikhq> Uh, that's not ugly. . .
20:54:04 <ehird`> that sort of code-data-happy attitude only works when your code is structured in a data-like way
20:54:08 <pikhq> if {expr-statement-here} {code-which-is-uplevel'd}
20:54:23 <ehird`> It's ugly in theory at least.
20:54:40 * pikhq still doesn't see what's ugly about it
20:55:26 <pikhq> All if does is do an uplevel if that expr statement returns true. . .
20:56:54 <ehird`> Hmm, my idea of a perfect OOP language is flawed - generic functions don't work well with prototype inheritance
20:59:56 <ehird`> OK: how about in obj message(obj2), if not obj responds_to(message) (or something) it's interpreted as obj2 message(obj)
21:00:13 <ehird`> Though it allows for insanely obfuscated code... I think that's a good thing
21:01:26 <ehird`> "Hello!\n" print(stdout)
21:01:26 <ehird`> stdout print("Hello!\n") would be equivilent, i think that's nice
21:03:07 <ehird`> oh, wait, that won't work
21:03:19 <ehird`> 99 . " bottles of beer" would be " bottles of beer" . 99
22:38:21 -!- jix has quit ("CommandQ").
22:54:09 <SimonRC> you need proper generic functions
22:57:41 -!- pikhq_ has joined.
22:58:30 <ihope> I have a simple idea for a reversible esolang.
22:59:10 <ihope> I think I'll put it on wiki.
22:59:16 <ihope> Also, I think I'll call everything "wiki".
23:03:03 -!- pikhq has quit (Read error: 110 (Connection timed out)).
23:19:15 -!- RedDak has quit ("I'm quitting... Bye all").
23:28:06 <bsmntbombdood> ok, floral wire, twisted into i-hook like shapes, pressed into corkboard for fulcrums
23:31:54 <bsmntbombdood> http://img.alibaba.com/photo/50205808/Hook_and_Eye_Hook.jpg
23:32:55 <SimonRC> it is so-called because it has an eye like a needle has an eye
23:33:21 <SimonRC> I was wondering just HTF something the shape of the letter i would be a "hook"
23:34:55 <SimonRC> Actually aplle have patented the iBrick
23:35:24 <SimonRC> Specifically, they have a patent on the mechanism of a device refusing to charge if it detecs you using it with more that one computer.
23:35:40 <SimonRC> Tech support are going to *love* tht one
23:46:43 -!- pikhq_ has changed nick to pikhq.
23:46:53 -!- sebbu has quit ("dowdow").
23:50:05 -!- RodgerTheGreat has joined.
23:59:51 <bsmntbombdood> i've been using toothepicks resting on other toothepicks, it's very fragile and almost impossible to chain gates