←2007-07-26 2007-07-27 2007-07-28→ ↑2007 ↑all
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:05:21 <SimonRC> hm
00:05:23 <SimonRC> ah!
00:05:57 <test_> i don't see why
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:50 <test_> the obvious way?
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:07:52 <SimonRC> test_: erm
00:09:03 <bsmntbombdood> that amb macro is waaay beyond me
00:09:13 <SimonRC> heh
00:09:56 <bsmntbombdood> i must've skipped that chapter in sicp
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:17:48 <test_> loops
00:18:41 <bsmntbombdood> that amb thing is amazing
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:23:38 <bsmntbombdood> ok
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:13 <bsmntbombdood> i wonder how the speed is
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> (define (an-integer-between lo hi)
00:34:11 <bsmntbombdood> (if (>= lo hi) (amb) (amb lo (an-integer-between (+ lo 1) hi))))
00:34:14 <bsmntbombdood> that's right, right?
00:34:38 <lament> looks right
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:38:53 <oklofok> hmm
00:39:25 <bsmntbombdood> (a-pythagorean-triple-between 1 10) => (1 1 0)
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:39:55 <lament> prints "123"
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.
01:35:19 <oerjan> @index showIntAtBase
03:26:03 * pikhq is back in Ratpoison. :D
03:29:19 <bsmntbombdood> ion ftw
03:32:12 <pikhq> "He plans to release future versions of Ion3 as closed source"
03:33:55 <bsmntbombdood> what!?!
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:48:02 <bsmntbombdood> anyway, that doesn't make ion any less aweseom
03:53:56 <pikhq> Yes it does.
03:59:20 <bsmntbombdood> how?
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:32 <pikhq> Oh, right.
04:09:51 <pikhq> Shawn Betts writes Conkeror, Ratpoison, *and* StumpWm.
04:09:55 <pikhq> Man, that guy rocks.
04:10:25 <pikhq> O.O
04:10:26 <bsmntbombdood> conkeror was much less than i expected
04:10:48 <pikhq> The man has *also* written nethack-el and LiCE (a port of the Elisp engine to Common Lisp). . .
04:11:04 * pikhq bows
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:46:40 <immibis> oops
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:47:17 <immibis> sorry
04:50:21 <oklofok> well can you?
04:52:01 <immibis> no
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:18 * pikhq curses
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:00:45 <immibis> scaled?
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:02:19 <oklofok> why did you dure?
05:02:21 <oklofok> *curse
05:02:41 <oklofok> (curse -> dure... how?)
05:02:48 <pikhq> Magic.
05:03:21 <oklofok> why did you curse?
05:03:30 <oklofok> is that relevant news?
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:03:56 <pikhq> Damned right.
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:04:26 <immibis> but oklofok isn't
05:04:31 <oklofok> oh yeah it is.
05:04:34 <oerjan> #esoteric-blah?
05:04:43 <immibis> oerjan: /whois oklofok
05:04:50 <oklofok> oerjan: very-esoteric.
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:17 <immibis> !raw join #esoteric-blah
05:05:45 <oklofok> it often happens channels die out but i don't leave them
05:05:47 <oklofok> in a few months
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:09:48 <Sukoshi> So :|
05:10:20 <oklofok> hmm
05:10:55 <oklofok> ah
05:11:02 <Sukoshi> Ah?
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:11:31 <oklofok> ah
05:11:43 * oklofok ponders some more
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:51 <immibis> no you're not
05:19:57 <immibis> or is it a secret channel?
05:20:17 <immibis> yes, i see it's secret
05:21:39 <immibis> wait, no it's not
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:19 <oklofok> *d
05:22:25 <oklofok> it's always like that
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:24:00 <immibis> ok...
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:25:15 <immibis> messy code though
05:25:16 <immibis> but it works
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:22 <Sukoshi> Alright.
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:34:28 <Sukoshi> Yup.
05:35:10 <Sukoshi> 精神の安心為に、種類が必要と思う。
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:29 <Sukoshi> How hard is that? :P
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:19 <oklofok> well
05:38:21 <oklofok> guess sometimes
05:38:33 <Sukoshi> o_O Do you write a lot of code?
05:38:39 <oklofok> all the time
05:38:47 <Sukoshi> You fit it into one file?!
05:39:03 <oklofok> err yeah, i don't like having many
05:39:04 <oklofok> ah
05:39:07 <pikhq> *sigh*
05:39:07 <Sukoshi> .....
05:39:11 <oklofok> well, one file per application
05:39:14 <Sukoshi> .....
05:39:16 <pikhq> oklofok: That ain't right.
05:39:18 <oklofok> :P
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:39 <oklofok> or .c
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:54 <oklofok> oh
05:40:57 <pikhq> gcc bar.o foo.o -o foobar
05:41:11 <oklofok> are the sdl-things .libs?
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:33 <oklofok> okay
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:41:45 <oklofok> huh?
05:41:48 <oklofok> .lib
05:41:53 <Sukoshi> Rather -Lsdl
05:41:57 <oklofok> library files
05:42:08 <pikhq> No, -lSDL
05:42:14 <pikhq> oklofok: That's not how UNIX works.
05:42:43 <oklofok> i see.
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:43:53 <immibis> *oklofok
05:44:07 <immibis> that is on unix
05:44:19 <immibis> on windows...not sure
05:44:51 <oklofok> apt-get isn't the way to get libsdl
05:45:08 <pikhq> apt-get install sdl-dev
05:45:15 <pikhq> . . . I think.
05:45:28 <oklofok> nope
05:45:43 <pikhq> apt-cache search sdl
05:45:53 <Sukoshi> aptitude is better.
05:45:57 <pikhq> True.
05:46:00 <Sukoshi> Since it resolves package removes in a nicer way.
05:46:06 <Sukoshi> aptitude search sdl
05:46:09 * pikhq uses Gentoo, anyways
05:46:15 <Sukoshi> Slackware :P
05:46:26 <pikhq> Another good distro.
05:46:54 <oklofok> i have no idea what to download there
05:47:04 <oklofok> that's a lot of files.
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:49:52 <pikhq> That'd be it.
05:52:33 <oklofok> "unable to fetch some archives"
05:52:40 <oklofok> guess that's okay
05:52:40 <oklofok> ...?
05:52:45 <pikhq> Uh. . .
05:52:51 <pikhq> aptitude update
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:38 <pikhq> Ah.
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:02 <pikhq> ...
05:54:11 <pikhq> What did you do?
05:54:53 <oklopol> oh error with connection or something
05:55:39 <oklopol> Fetched 2B in 6s (0B/s)
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:57:47 <Sukoshi> Oh. Hmph then.
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:44 <pikhq> Bit better.
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:01:50 <pikhq> No idea.
06:01:54 <pikhq> Magic, no doubt.
06:03:07 <Sukoshi> Yep. BitTorrent.
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:26 <oklofok> ./ knows
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:40 <bsmntbombdood> unicode is evil
06:06:54 <pikhq> No, Unicode is most holy.
06:06:59 * Sukoshi pats the missionary.
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:10:03 <bsmntbombdood> varied width encodings--
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:09 <bsmntbombdood> just don't like 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:07 <immibis> probably not
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:43:32 <pikhq> s/{{/{/
06:44:12 <immibis> so variable names can contain spaces?
06:44:15 <pikhq> Yeah.
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:31 <immibis> no
06:44:40 <pikhq> No idea, but it's legal.
06:44:43 <pikhq> Read it.
06:44:47 <pikhq> All 11 rules.
06:44:48 <immibis> probably just "applicable_charsets" would do
06:44:53 <immibis> no man here
06:44:55 <immibis> except for me
06:44:59 <immibis> no man(1) here
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:51:09 <pikhq> Yeah. ;)
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:53:14 <immibis> * I don't
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:55:50 <immibis> which is crazy, really
06:57:13 <pikhq> Very.
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:29 <immibis> bye
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:26:50 <pikhq> "live"?
07:26:57 <Sukoshi> Like Smalltalk and Lisp.
07:27:08 <pikhq> . . . That doesn't help me.
07:27:12 <Sukoshi> ... :P
07:27:18 <Sukoshi> Fully introspective at runtime?
07:27:25 <Sukoshi> On-the-fly editable?
07:27:33 <pikhq> Oh.
07:27:42 <pikhq> Duh.
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:28:46 <pikhq> Sadly, no.
07:28:50 <lament> boo
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:22 <pikhq> Not yet.
07:29:33 <Sukoshi> ``Not yet'' ?
07:29:35 <lament> oh, really?
07:29:44 <pikhq> Planned for Tcl 9. . .
07:29:45 <lament> those { blah } things aren't first-claass?
07:29:50 <pikhq> Oh.
07:29:51 <lament> just syntax?
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:28 <pikhq> Yeah.
07:30:35 <pikhq> Those are first-class.
07:30:37 <pikhq> My bad.
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:31:58 <pikhq> Sure.
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:33:50 <pikhq> Yeah.
07:33:53 <lament> what does it do?
07:34:06 <lament> does it create a variable called foo and put the function in it?
07:34:10 <pikhq> No. . .
07:34:22 <pikhq> Functions, unfortunately, aren't first class.
07:34:25 <Sukoshi> :(
07:34:26 <lament> :(
07:38:47 <pikhq> *That* is what's planned for Tcl 9.
07:38:47 <lament> like ruby!
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 <Sukoshi> That was Io.
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 <lament> and that
07:38:47 <Sukoshi> lament: Wanna fork Io to use ST style?
07:38:47 <lament> well, why?
07:38:47 <lament> ST is there, no?
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:20 <lament> heh
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 <Sukoshi> Heh.
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:47 <lament> as far as i can tell
07:40:47 <Sukoshi> Heh.
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:45:49 <lament> i think i will
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:53:43 <lament> )
07:55:29 <pikhq> proc deposit {amount} {balance} {incr balance $amount;return $balance};# Only meaningful in Jim, which is Tcl + closures + lambda
07:55:50 <lament> rrright :)
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:02:01 <Sukoshi> :|
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:06:37 <lament> FFI?
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:06 <lament> Foo := Object clone
08:24:06 <lament> Foo clone := Foo
08:24:10 -!- ^_` has joined.
08:24:10 <lament> hee :)
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:54:10 <Sukoshi> In Java, of course.
08:55:15 <bsmntbombdood> gah, why do you insist on using java :(
08:55:23 <oklopol> Sukoshi: ?
08:55:29 <oklopol> what did you mean
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:56:23 <Sukoshi> :(
08:56:26 <Sukoshi> How lhame.
08:56:41 <oklopol> java does that sometimes
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:25:55 <bsmntbombdood> yeahs, why do you like that?
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:32:35 <bsmntbombdood> what are you saying?
09:34:18 <Sukoshi> Huh?
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:35:49 <bsmntbombdood> so?
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:36:35 <Sukoshi> Reading is a skill :)
09:36:41 <bsmntbombdood> i read that
09:36:48 <Sukoshi> There you go then.
09:37:30 <bsmntbombdood> what you said would mean the sepperation of objects and primitives is unwarrented
09:37:52 <Sukoshi> IMO it is.
09:38:42 <oklofok> a separation is needless, true, but it's a good separation.
09:38:57 <Sukoshi> Now anime time. Yay.
09:39:02 <oklofok> i mean, sepperation, because that's like 50 times cooler way to type it.
09:41:00 <RodgerTheGreat> 'morning, everyone.
09:41:11 <oklofok> err... evening
09:41:39 <RodgerTheGreat> ok
09:41:57 <RodgerTheGreat> it's 4:40 AM where I'm sitting
09:42:05 <oklofok> there's a big hole in my pants... that's not good, there are my only pants
09:42:10 <oklofok> it's 11:40 here
09:42:42 <RodgerTheGreat> oklofok: hm. holy pants could prove problematic.
09:42:55 <RodgerTheGreat> where's the hole?
09:42:58 <oklofok> that joke only works when spoken
09:43:03 <oklofok> it's in the crotch.
09:43:18 -!- ^_` has quit (Connection timed out).
09:43:19 <RodgerTheGreat> "I've got a hole... in my PANTS..."
09:44:42 <oklofok> it's not visible
09:44:57 <oklofok> i'm just afraid they might break completely
09:44:59 <oklofok> in public
09:45:01 <oklofok> or smth
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:37 <RodgerTheGreat> oklofok: camping can be fun sometimes
09:45:52 <bsmntbombdood> especially naked camping!
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:06 <RodgerTheGreat> ooh, that could make it less fun
09:46:16 <RodgerTheGreat> why are you forced to go camping with your ex?
09:46:24 * oklofok is a scouter-boy
09:46:41 <RodgerTheGreat> ah
09:46:43 <RodgerTheGreat> hm
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:07 <bsmntbombdood> build one
09:48:24 <oklofok> not a bad idea
09:48:51 <bsmntbombdood> figure out how to make a few gates with sticks
09:48:57 <oklofok> i'm pretty sure i could at least build an fsm of some sort from just like branches
09:48:59 <oklofok> yes
09:49:01 <oklofok> sticks
09:49:03 <oklofok> noodles
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:49:48 <bsmntbombdood> oklofok: you could also try being social
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 <bsmntbombdood> how did you do it?
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:05 <bsmntbombdood> sure
09:51:12 <oklofok> so you can press down the other end and the other goes up
09:51:21 <oklofok> so, we make 3 of there
09:51:22 <oklofok> *these
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:55 <RodgerTheGreat> s/?/:
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:07 <oklofok> but
09:52:14 <bsmntbombdood> i don't get it
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:20 <bsmntbombdood> the joining 3 see saws in the middle
09:53:27 <RodgerTheGreat> hm. a clever design, but without scalability it's a very limited system
09:53:27 <oklofok> well
09:53:37 <oklofok> you have two of them be input
09:53:41 <oklofok> and on output
09:53:53 <oklofok> or: you have input's be under output
09:54:03 <bsmntbombdood> ok
09:54:11 <oklofok> and: you have inputs be over output
09:54:30 <bsmntbombdood> oh, and a weight on the other side?
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:54:45 <oklofok> yes, exactly
09:54:48 <oklofok> that is needed for and
09:54:52 <oklofok> 'and'
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:57:59 <bsmntbombdood> there's ways to make the levers better
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:02 <bsmntbombdood> you can program it be rearanging the levers
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:08 <bsmntbombdood> what do you mean?
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:37 <RodgerTheGreat> you need a constant motive force input
10:01:47 <oklofok> err yes, that's what i've been trying to say :)
10:02:07 <RodgerTheGreat> :)
10:02:09 <bsmntbombdood> the energy can come from the clock
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:02:58 <bsmntbombdood> oklofok: clock = finger pressing on a stick
10:03:01 <oklofok> ah
10:03:06 <oklofok> yes, that is okay
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:04:38 <RodgerTheGreat> hm. so, a mechanical amplifier...
10:04:46 <bsmntbombdood> a lever, of course
10:04:54 <RodgerTheGreat> bingo
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:04 <bsmntbombdood> you can do that by hanging string from above
10:06:29 <RodgerTheGreat> what about some kind of pendulum system generating a periodic on/off stick flip?
10:06:31 <oklofok> hmm
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:08:55 <oklofok> good idea
10:09:00 <bsmntbombdood> charcoal?
10:09:01 <oklofok> gimme your number and i can test
10:09:03 <oklofok> ;)
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:09:29 <RodgerTheGreat> aw. :(
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:02 <Sukoshi> Of course oklofok.
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:14 <Sukoshi> Battery.
10:11:18 <oklofok> ah
10:11:20 <Sukoshi> (Yeah, I left that out.)
10:11:25 <oklofok> i thought induction current
10:11:27 <bsmntbombdood> oh, that's less cool
10:11:31 <oklofok> not that interesting then
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:01 <oklofok> err.... with a magnet?
10:12:01 <bsmntbombdood> hand crank
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:08 <Sukoshi> oklofok: Huh?
10:12:21 <Sukoshi> Yeah, the problem is, the source has to be direct current.
10:12:27 <RodgerTheGreat> dayum
10:12:28 <oklofok> ah
10:12:30 <oklofok> didn't think of that
10:12:40 <oklofok> that is a bit trickier
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:03 <bsmntbombdood> sound compresses the carbon, lowering resistance
10:13:11 <Sukoshi> AC to DC is a breeze.
10:13:12 <bsmntbombdood> how could you make a diode?
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:25 <RodgerTheGreat> bsmntbombdood: gap-junction diode
10:13:30 <bsmntbombdood> and capacitors would need to be huge
10:13:33 <Sukoshi> oklofok: It probably wouldn't.
10:13:44 <RodgerTheGreat> like in a razorblade radio or a pencil-lead radio
10:13:52 <Sukoshi> Your typical magnet is 10G. Not even close to anything much
10:13:52 <Sukoshi> .
10:14:04 <RodgerTheGreat> two dissimilar conductive materials can function as a diode in the right configuration
10:14:10 <bsmntbombdood> RodgerTheGreat: not familiar
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:31 <oklofok> physics... math... urgh
10:15:40 <bsmntbombdood> and heat
10:15:45 <RodgerTheGreat> hm. I didn't know the copper+salt water trick. How much power do you get out of one?
10:15:55 <Sukoshi> Science - math = phail.
10:16:00 <bsmntbombdood> RodgerTheGreat: very, very, little
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:16 <bsmntbombdood> i dunno
10:16:36 <bsmntbombdood> you oxidize one pole of it with the heat
10:16:41 <oklofok> anyway, who said you have to have a *typical* magnet? and what is T?
10:16:44 <bsmntbombdood> i used a blow torche
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:10 <RodgerTheGreat> would a "typical" magnet be a lodestone?
10:17:25 <Sukoshi> Probably.
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:16 <oklofok> eh
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:37 <Sukoshi> Not a person's hands :P
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:20:53 <Sukoshi> Errr...
10:20:59 <Sukoshi> Heh. XChat failure.
10:21:00 <oklofok> ?
10:21:02 <Sukoshi> Well, more anime time.
10:21:04 <oklofok> oh
10:21:06 <oklofok> :\}
10:21:16 <oklofok> why don't you finish that sentence first :P
10:21:34 <RodgerTheGreat> what animes are being watched?
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:25:43 <bsmntbombdood> what mechanism did it use?
10:25:50 <RodgerTheGreat> rod logic
10:26:06 <RodgerTheGreat> beyond that, I don't know much
10:26:30 <RodgerTheGreat> but it represented bits in memory with mechanical rods that could slide back and forth in two positions
10:26:45 <bsmntbombdood> wow
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:27:47 <bsmntbombdood> what would it take to build a transistor?
10:28:03 <RodgerTheGreat> hm
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:34:07 <bsmntbombdood> me too, i'll play around with it in the morning
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:48:38 <oklofok> these look quite ugly :P
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:50:24 <oklofok> *these
10:51:16 <bsmntbombdood> i dunno if i'll be able to find stuff for it
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:09:03 <oklofok> *gates
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
15:49:09 <bsmntbombdood> and i can't find anything to do lever-logic with
16:12:45 <SimonRC> "lever-logic"?
16:13:44 <ehird`> #define SIX 1 + 5
16:13:44 <ehird`> #define NINE 8 + 1
16:13:44 <ehird`> while (SIX * NINE == 42) {...}
16:13:46 <ehird`> hah
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:25:47 <bsmntbombdood> SimonRC: logic with levers
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:47:46 <pikhq> Evil.
16:50:48 <SimonRC> ??
16:51:12 <pikhq> Rube Goldberg computation is evil cause I say so.
16:54:23 <SimonRC> ah, ok
16:59:36 <ehird`> pikhq, No, it's fun!
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:27:45 <bsmntbombdood> oh bo;y
17:28:33 <SimonRC> hm?
17:29:09 <bsmntbombdood> the shaft-passer
17:29:48 <bsmntbombdood> now make one that's rigid in 3 dimensions
17:46:32 -!- jix has joined.
17:54:10 <RodgerTheGreat> bbl
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:17 <lament> nice
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:55:59 <pikhq> Hahah.
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:37 <ehird`> true
20:47:45 * ehird` growls about how messages are broken
20:47:47 <ehird`> generic functions FTW
20:47:55 <ehird`> that solves that problem actually
20:48:05 <ehird`> x + y is just +(x y)
20:48:11 <pikhq> [+ x y]
20:48:14 <pikhq> Err.
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:45 <pikhq> Well, no. . .
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:47 <ehird`> yeah yeah whatever :P
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:23 <ehird`> pikhq, an idiots
20:50:25 -!- RedDak has joined.
20:50:33 <ehird`> *an idiot's
20:50:37 <pikhq> Yeah.
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:02 <ehird`> Mostly, yes.
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:52:56 <pikhq> Example?
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:08 <ehird`> strings are not.
20:54:23 <ehird`> It's ugly in theory at least.
20:54:25 <ehird`> Maybe not looks.
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)
20:59:58 <ehird`> that's nicely generic
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
21:03:30 <ehird`> annoying
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".
22:59:21 <bsmntbombdood> reversible?
23:01:57 <ihope> Yes, reversible.
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:28:14 <bsmntbombdood> with toothpicks as the levers
23:30:43 <SimonRC> define: "i-hook"
23:30:58 <SimonRC> what does it calculate?
23:31:54 <bsmntbombdood> http://img.alibaba.com/photo/50205808/Hook_and_Eye_Hook.jpg
23:32:00 <bsmntbombdood> SE2 is an i-hook
23:32:34 <SimonRC> you mean "eye-hook"
23:32:36 <SimonRC> sigh
23:32:43 <bsmntbombdood> ...whatever
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:33:50 <bsmntbombdood> i've never seen eye-hook in print
23:33:51 <lament> iHook
23:34:07 <SimonRC> heh
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:27 <SimonRC> ouch
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:50:19 <RodgerTheGreat> howdy, everybody
23:51:52 <bsmntbombdood> hi
23:54:10 <RodgerTheGreat> hey, bsmntbombdood
23:54:12 <RodgerTheGreat> 'sup?
23:54:25 <bsmntbombdood> been trying to build some levers
23:56:15 <RodgerTheGreat> ah, the mechanical logic project continues
23:59:51 <bsmntbombdood> i've been using toothepicks resting on other toothepicks, it's very fragile and almost impossible to chain gates
←2007-07-26 2007-07-27 2007-07-28→ ↑2007 ↑all