00:00:03 a continuation does not mutate itself 00:00:09 yes, why couldn't you do that? 00:00:54 How do you implement re-useable continuations on top of non-reusable coroutines? 00:01:16 maybe we're thinking of different ways of defining continuations in coroutines 00:01:19 i'd explain mine but it's long 00:03:32 wikipedia says that coroutines are "best implemented using continuations" 00:04:10 it says nothing about the possibility of implementing continuations using coroutines, although that does seem intuitively impossible 00:05:21 hm 00:05:23 ah! 00:05:57 i don't see why 00:06:04 One could say that co-routines are more of an imperative thing whereas continuations are more of an impure-functionl thing. 00:06:13 sorry, not totally relevent 00:06:26 true, but co-routines could be said to be functional 00:06:38 test_: so how would you implement continuations with coroutines? 00:06:47 lament, the simple way? :P 00:06:50 the obvious way? 00:06:57 its not easy to cram into an irc message 00:07:05 must be not all that simple then :) 00:07:09 i can think of no obvious way 00:07:15 (of course, i'm convinced it's impossible) 00:07:25 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 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 test_: erm 00:09:03 that amb macro is waaay beyond me 00:09:13 heh 00:09:56 i must've skipped that chapter in sicp 00:13:10 it seems that coroutines are almost exactly "one-use" continuations 00:13:30 so how would you get "multi-use" out of them is unclear 00:17:48 loops 00:18:41 that amb thing is amazing 00:19:17 -!- test_ has quit (Read error: 104 (Connection reset by peer)). 00:22:28 you can write the specification of the problem instead of how to solve it 00:23:06 bsmntbombdood: that's exactly how Prolog already works 00:23:12 consider looking at it 00:23:38 ok 00:24:27 (as usually, scheme shines at being able to emulate any programming paradigm out there) 00:25:09 i believe Haskell has a LogicT monad somewhere :) 00:25:13 i wonder how the speed is 00:25:44 (based on Oleg (TM) work, i think) 00:27:13 btw i have read a couple of times that _delimited_ continuations are essentially equivalent to arbitrary monads. 00:32:27 fucked-up things nobody understands often tend to be equivalent to one another 00:34:11 (define (an-integer-between lo hi) 00:34:11 (if (>= lo hi) (amb) (amb lo (an-integer-between (+ lo 1) hi)))) 00:34:14 that's right, right? 00:34:38 looks right 00:35:25 shouldn't that be > rather than >= ? 00:35:55 i think he's using Python semantics for lo and hi 00:35:58 it won't work with the a-pythagorean-triple-between proc in sicp 00:38:53 hmm 00:39:25 (a-pythagorean-triple-between 1 10) => (1 1 0) 00:39:44 i think i've been missing something in my life until this if scheme macros can actually archieve stuff like that 00:39:49 prolog has 'between' built-in 00:39:51 ?- between(1, 3, N), write(N), fail. 00:39:55 prints "123" 00:47:38 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 @index showIntAtBase 03:26:03 * pikhq is back in Ratpoison. :D 03:29:19 ion ftw 03:32:12 "He plans to release future versions of Ion3 as closed source" 03:33:55 what!?! 03:34:49 Read the Wikipedia page. 03:36:33 http://archlinux.org/pipermail/tur-users/2007-April/004644.html 03:41:43 last time i checked in with tumuo there was an ion4 in the works 03:48:02 anyway, that doesn't make ion any less aweseom 03:53:56 Yes it does. 03:59:20 how? 03:59:35 just because his new code won't be open doesn't make his old code any worse 04:01:09 No, it means that it'll stagnate. 04:01:42 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 i think ion can be extended in lua enough to not need active dev 04:09:06 The dev of Conkeror uses Ratpoison. Since Conkeror rocks, Ratpoison must also rock. 04:09:32 Oh, right. 04:09:51 Shawn Betts writes Conkeror, Ratpoison, *and* StumpWm. 04:09:55 Man, that guy rocks. 04:10:25 O.O 04:10:26 conkeror was much less than i expected 04:10:48 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 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 was trying to see if you could /topic a user 04:47:17 sorry 04:50:21 well can you? 04:52:01 no 04:52:10 it sets the topic of the current channel instead 04:52:24 so don't try it unless you don't like the channel you're in 04:52:35 and since you're only on #esoteric... 04:58:18 * pikhq curses 04:58:32 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 scaled? 05:01:07 immibis: i'm not only on #esoteric 05:01:41 Scaled Composites. 05:01:48 but you're right in that i like this channel 05:01:51 Creator of SpaceShipOne. 05:02:19 why did you dure? 05:02:21 *curse 05:02:41 (curse -> dure... how?) 05:02:48 Magic. 05:03:21 why did you curse? 05:03:30 is that relevant news? 05:03:36 To me, at least. . . 05:03:47 [16:02] ->> oklofok is on :#esoteric 05:03:51 because... you like rockets? 05:03:56 Damned right. 05:04:08 true, [16:02] ->> oklopol is on #haskell #toboge #esoteric-blah @#vjn #osdev #esoteric 05:04:22 immibis: also this one is one multiple channels. 05:04:26 but oklofok isn't 05:04:31 oh yeah it is. 05:04:34 #esoteric-blah? 05:04:43 oerjan: /whois oklofok 05:04:50 oerjan: very-esoteric. 05:05:09 oerjan: he's the only user on that channel 05:05:09 i guess it was created for bot flood not to takeover here 05:05:17 !raw join #esoteric-blah 05:05:45 it often happens channels die out but i don't leave them 05:05:47 in a few months 05:06:51 -!- Sukoshi has joined. 05:07:04 So, I'm guessing a constructor in Java can't throw an exception? 05:09:13 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 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 So :| 05:10:20 hmm 05:10:55 ah 05:11:02 Ah? 05:11:14 you can't throw an exception in a constructor and still have the object actually created 05:11:28 Well, I want it to throw another exception. 05:11:30 so they don't let you catch the super's exception because you will never need it 05:11:31 ah 05:11:43 * oklofok ponders some more 05:12:02 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 So the subclass basically throws a domain-specific version of the exception. 05:15:58 immibis: anyway, i'm also on #scheme 05:16:53 Maybe a minor refactor is neccessary hmm. 05:17:07 Now the interface won't be as nice as I wanted it to be, but it'll work. 05:18:26 yeah, well, interfaces are overrated anyway 05:18:55 Okomol Opilovonal <<< i have to compliment me on my choise for name 05:19:25 public MyClass() throws SuperClassException {super("Parameter");} 05:19:51 no you're not 05:19:57 or is it a secret channel? 05:20:17 yes, i see it's secret 05:21:39 wait, no it's not 05:22:06 when i'm on that channel, /whois says you are on it 05:22:11 when i'm not, /whois says you're not 05:22:18 external messages and colors are disallowes 05:22:19 *d 05:22:25 it's always like that 05:22:36 it's not secret once you're on it 05:22:49 but... i don't see a secret flag on #scheme 05:23:46 immibis: that java code doesn't help, she wanted to catch super's constructor's error in the subclass's constructor 05:24:00 ok... 05:25:11 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 messy code though 05:25:16 but it works 05:26:29 I think a refactor is better. 05:26:43 Is ``Releases the value stream points to'' a good comment? :P 05:26:59 Because objects *are* technically references. 05:27:52 Dunno if Java coders understand references/pointers in their lexicon though. 05:28:59 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 Alright. 05:29:32 Although when I code, I think of Objects as pointers though. 05:29:38 I guess that's just my C background showing. 05:30:13 oklofok: http://www.cecs.csulb.edu/~hill/cecs497/nestreme/howto.html <-- Havas unun bonan tempon. 05:30:40 Unu artikolo ke eksplenas la metodo pri krei unu emulatoro. 05:32:16 Vi kaj via esperanto. :p 05:33:17 (One article that explains the method of creating one emulator. ?) 05:34:28 Yup. 05:35:10 精神の安心為に、種類が必要と思う。 05:35:30 Question marks for everyone! 05:35:39 Not my fault you don't have UTF-8. 05:36:12 oh, i forgot, i actually thought you were totally bewildered about something :D 05:36:39 Maybe the amount of bewilderment you see on IRC will go down if you get UTF-8 support working :P 05:36:44 Sukoshi: i actually stopped making the emulator because sdl was just too hard for me to download :) 05:36:56 i guess it's just an apt-get... 05:37:02 I'm convinced that UTF-8 support sucks in UNIX. 05:37:03 but they never *really* work. 05:37:14 You need libsdl and libsdl-dev. 05:37:29 How hard is that? :P 05:37:51 not very, if i just ask for them to install themselves and they will 05:38:02 So you can't link to them? 05:38:04 if i actually have to know where to put what, it gets quite hard 05:38:16 i've never done *anything* with multiple files 05:38:19 well 05:38:21 guess sometimes 05:38:33 o_O Do you write a lot of code? 05:38:39 all the time 05:38:47 You fit it into one file?! 05:39:03 err yeah, i don't like having many 05:39:04 ah 05:39:07 *sigh* 05:39:07 ..... 05:39:11 well, one file per application 05:39:14 ..... 05:39:16 oklofok: That ain't right. 05:39:18 :P 05:39:20 That just ain't right. 05:39:41 Good luck having someone else read your code :P 05:39:46 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 UTF-8 works like a beaut on me system har. 05:40:08 oklofok: It's not all that hard. . . 05:40:09 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 Sukoshi: I've got USE="unicode", a Unicode local, and yet my terminal hates Unicode. 05:40:31 Well, it's considered a Very Bad Thing (TM). 05:40:36 i guess it's not, i just never learned how to link other than one .cpp 05:40:39 or .c 05:40:47 gcc -c -o foo.o foo.c 05:40:51 gcc -c -o bar.o bar.c 05:40:51 except with an ide, but i don't have one in linux 05:40:54 oh 05:40:57 gcc bar.o foo.o -o foobar 05:41:11 are the sdl-things .libs? 05:41:20 If you need to link anthing else, one adds it to the last command line. . . 05:41:27 i know how to use those in visual c++, but i'm guessing gcc does it a bit differently 05:41:33 okay 05:41:39 No, they're in /lib. 05:41:43 then i don't see how i would not succeed 05:41:43 Attach the flag -LSDL IIRC. 05:41:45 huh? 05:41:48 .lib 05:41:53 Rather -Lsdl 05:41:57 library files 05:42:08 No, -lSDL 05:42:14 oklofok: That's not how UNIX works. 05:42:43 i see. 05:42:54 The libraries are under /lib or /usr/lib. . . To link to them, you just do -lLIBRARY_NAME. 05:43:09 And then, the dynamic linker magically takes care of the rest. 05:43:19 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 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 *oklofok 05:44:07 that is on unix 05:44:19 on windows...not sure 05:44:51 apt-get isn't the way to get libsdl 05:45:08 apt-get install sdl-dev 05:45:15 . . . I think. 05:45:28 nope 05:45:43 apt-cache search sdl 05:45:53 aptitude is better. 05:45:57 True. 05:46:00 Since it resolves package removes in a nicer way. 05:46:06 aptitude search sdl 05:46:09 * pikhq uses Gentoo, anyways 05:46:15 Slackware :P 05:46:26 Another good distro. 05:46:54 i have no idea what to download there 05:47:04 that's a lot of files. 05:47:05 .... Read the package descriptions ... 05:49:03 how do i get the rest of a description? 05:49:30 "Simple DirectMedia Layer development fil" might be it 05:49:52 That'd be it. 05:52:33 "unable to fetch some archives" 05:52:40 guess that's okay 05:52:40 ...? 05:52:45 Uh. . . 05:52:51 aptitude update 05:53:00 When was the last time you did something like that? 05:53:34 that'd be a long time ago. 05:53:38 Ah. 05:53:55 aptitude update&&aptitude upgrade; 05:53:55 "Some index files failed to download, they have been ignored, or old ones used instead." 05:54:02 this, again, is from update. 05:54:02 ... 05:54:11 What did you do? 05:54:53 oh error with connection or something 05:55:39 Fetched 2B in 6s (0B/s) 05:56:48 Do them seperately. ``aptitude update'' ``aptitude upgrade'' 05:57:27 Sukoshi: "aptitude update&&aptitude upgrade" will only continue to aptitude upgrade if the aptitude update returns 0. 05:57:47 Oh. Hmph then. 05:58:02 I don't like BT's weird tracker request thinger. 05:58:20 actually i did "apt-get update", aptitude *did* work 05:58:38 i have no idea what aptitude is... but i guess it's like apt-get? 05:58:44 Bit better. 05:58:48 It's a more full-featured version of apt-get. 06:00:07 -!- oerjan has quit ("leaving"). 06:00:58 How did BT even catch on, I can't understand. It's a mishmash of technologies. 06:01:46 BitTorrent, you mean? 06:01:50 No idea. 06:01:54 Magic, no doubt. 06:03:07 Yep. BitTorrent. 06:03:15 ...is there an alternative? 06:03:35 Distributed IP over Avian Carrier. 06:03:53 It wouldn't be hard to write something cleaner than the BT standard. 06:05:17 i think the reason people use it is that not everyone cares if its standard is ugly 06:05:26 ./ knows 06:05:29 And that there's nothing better, sadly. 06:05:45 is there actually something wrong with torrents? 06:05:49 Writing a BT tracker must be a *royal* pain. 06:06:15 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 unicode is evil 06:06:54 No, Unicode is most holy. 06:06:59 * Sukoshi pats the missionary. 06:07:14 Of course, I come from Tcl, where Unicode is par for the course. 06:07:44 The only complaint I've seen articulated correctly against Unicode is Matz's objection. 06:07:45 if you must use unicode, you should at least have the decency to use UTF-32 06:07:55 (seriously: everything is a string, and every string is UTF-8) 06:10:03 varied width encodings-- 06:12:38 incr {ASCII compatible character sets containing more writing systems than any other} 06:17:08 now that i have SDL, i wonder if i should also have sdl.h somewhere 06:17:49 I think it's SDL.h, but I'm not sure. 06:19:48 be it either one of those, i can't find it 06:36:51 bsmntbombdood: what's wrong with them? 06:37:09 just don't like them 06:37:45 would you rather all words in a language be the same length, too? :) 06:39:02 pikhq: i'm learning tcl, and is that legal, incrementing a string? 06:39:07 probably not 06:39:30 don't you need to increment a _variable_? 06:40:21 That *is* incrementing a variable. 06:40:37 You type [incr var], not [incr $var]. 06:40:46 isn't it pretty inefficient having strings only? 06:41:19 oklofok: The interpreter stores different representations of the string. . . 06:41:50 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 It gets a different representation when you try to use it differently. 06:43:22 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 s/{{/{/ 06:44:12 so variable names can contain spaces? 06:44:15 Yeah. 06:44:23 Have you read the Tcl man page? 06:44:31 but who would want a variable called "ASCII compatible character sets containing more writing systems than any other" 06:44:31 no 06:44:40 No idea, but it's legal. 06:44:43 Read it. 06:44:47 All 11 rules. 06:44:48 probably just "applicable_charsets" would do 06:44:53 no man here 06:44:55 except for me 06:44:59 no man(1) here 06:45:20 http://www.tcl.tk/man/tcl8.4/TclCmd/Tcl.htm 06:45:45 That's the full syntax and semantics of Tcl. . . Memorize it, and your Tcling will be better off. 06:50:47 thats a clever website name, tcl.tk 06:51:09 Yeah. ;) 06:52:03 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 Yeah, it's the offical Tcl/Tk website. 06:52:56 but immibis doesn't have tcl on this computer 06:53:14 * I don't 06:55:05 Download a Tclkit. 06:55:34 * immibis thinks he's already gone over the "limit" on his "unlimited download" connection though. 06:55:50 which is crazy, really 06:57:13 Very. 06:58:06 -!- toBogE has quit (Read error: 104 (Connection reset by peer)). 06:58:26 you can ask greasemonkey about that, he appears to have the same isp, i have to go now. 06:58:29 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 Does TCL have live objects? 07:26:50 "live"? 07:26:57 Like Smalltalk and Lisp. 07:27:08 . . . That doesn't help me. 07:27:12 ... :P 07:27:18 Fully introspective at runtime? 07:27:25 On-the-fly editable? 07:27:33 Oh. 07:27:42 Duh. 07:27:58 That's something it's had from day one. 07:28:27 pikhq: can you fuck around with the execution stack? 07:28:34 That was my next question. 07:28:37 is it accessible as a first-class object of some kind? 07:28:46 Sadly, no. 07:28:50 boo 07:29:03 One can go and pull variables from things up the stack, though. . . 07:29:08 Are blocks/methods first class objects? 07:29:22 Not yet. 07:29:33 ``Not yet'' ? 07:29:35 oh, really? 07:29:44 Planned for Tcl 9. . . 07:29:45 those { blah } things aren't first-claass? 07:29:50 Oh. 07:29:51 just syntax? 07:29:56 Those aren't blocks, those are *strings*. 07:30:09 I misinterpreted you. 07:30:12 but if you can execute strings... 07:30:18 that basically makes them blocks too, doesn't it 07:30:27 since everything's a string anyway... 07:30:28 Yeah. 07:30:35 Those are first-class. 07:30:37 My bad. 07:30:41 okay, so tcl does have blocks :) 07:30:44 Now, if only Tcl had Smalltalk style syntax ... :P 07:31:04 Io is a very nice language, by the way. 07:31:05 can you specify function signatures in tcl? 07:31:33 Could you do me a favor and use terminology I can find via Wikipedia? 07:31:47 Wikipedia's CS articles are woefully bad :P 07:31:54 at least, can you specify how many arguments the function has 07:31:58 Sure. 07:32:10 can you do that for a string? :) 07:32:17 proc foo {arg1 arg2 arg3} {# code here} 07:32:55 what exactly does proc do? 07:33:08 Defines a function. 07:33:23 To call that function: foo arg1 arg2 arg3 07:33:45 proc itself is a builtin function? 07:33:50 Yeah. 07:33:53 what does it do? 07:34:06 does it create a variable called foo and put the function in it? 07:34:10 No. . . 07:34:22 Functions, unfortunately, aren't first class. 07:34:25 :( 07:34:26 :( 07:38:47 *That* is what's planned for Tcl 9. 07:38:47 like ruby! 07:38:47 Sadly, functions can only be passed by reference ATM. 07:38:47 What a lame shortcoming :| 07:38:47 (or, of course, you can do some radical language modification, adding anonymous functions) 07:38:47 pass-by-reference/pointer stuff is so ugly 07:38:47 newMethod := method(x, x + 2) 07:38:47 That was Io. 07:38:47 -!- GreaseMonkey has quit (Connection timed out). 07:38:47 -!- GreaseMonkey_ has joined. 07:38:47 Io is nice but some design decisions seemed silly 07:38:47 proc newMethod x {return [+ $x 2]} 07:38:47 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 Sukoshi: actually yes, thats one of mine 07:38:47 newMethod := [ :x | x + 2] is nicer, IMO. 07:38:47 Io's method calling is much less pretty than smalltalk-style would be 07:38:47 and that 07:38:47 lament: Wanna fork Io to use ST style? 07:38:47 well, why? 07:38:47 ST is there, no? 07:38:47 But most ST implementations ... erm... suck? :P 07:38:47 I suppose the difference is Io is not supposed to be inside a virtual computer 07:38:47 One can actually take advantage of the Tcl pass-by-reference procs. . . 07:38:47 Plus, you can't play around as nicely with live objects if you don't have a prototype based system. 07:38:47 proc lambda {argl body} {K [info level 0] [proc [info level 0] $argl $body]} proc K {a b} {set a} 07:38:47 Bleh. That didn't paste right. 07:38:47 proc lambda {argl body} {K [info level 0] [proc [info level 0] $argl $body]};proc K {a b} {set a} 07:38:47 Sukoshi: i wonder how difficult completely changing the syntax of Io would be :) 07:38:47 Voila. A lambda function which returns a reference to a function. 07:39:06 lament: Hm. Do you know a lot about VM design? 07:39:12 If so, you can help out the Slate team. 07:39:12 Sukoshi: I've seen plugins for Squeak that changed the syntax of Smalltalk 07:39:20 heh 07:39:26 i used to hang out in that channel some years ago 07:39:37 back when it was actually being developed 07:39:39 Bit hackish, in that it creates named procs. . . 07:39:45 That must have been glorious. 07:40:00 Well, it's died, now that the main VM developer has left in a sonorous case of OSS angst. 07:40:01 and recently i just randomly checked #slate logs and saw a conversation between you and water 07:40:09 Heh. 07:40:09 about how slate is dead :( 07:40:34 i'm not sure if it was all that glorious 07:40:41 there was exactly one developer 07:40:47 as far as i can tell 07:40:47 Heh. 07:40:57 so the channel was basically water and that guy 07:41:25 I had made a syntax highlighting mode for Slate for Nedit :) 07:41:28 Have you seen Piumarta's new Coke stuff? 07:41:47 no... haven't heard of piumarta or coke 07:43:28 Sukoshi: http://www.tcl.tk/cgi-bin/tct/tip/187.html 07:43:34 I've recently become disillusioned in Python, and now would be interested in another language 07:43:44 Io seems nice in general 07:44:03 but perhaps not good enough syntax to be useful 07:44:54 I should try actually writing something in it? 07:45:49 i think i will 07:47:12 http://wiki.tcl.tk/10743 07:47:19 * pikhq bows before that god 07:53:16 hm, io is actually really pretty 07:53:41 Account deposit := method(amount, balance = balance + amount 07:53:43 ) 07:55:29 proc deposit {amount} {balance} {incr balance $amount;return $balance};# Only meaningful in Jim, which is Tcl + closures + lambda 07:55:50 rrright :) 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:01:52 I *really* feel like coding an emulator. 08:01:59 But, I wanna work in a group. 08:02:01 :| 08:04:03 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 FFI? 08:07:21 Foreign Function Interface. 08:07:57 -!- GreaseMonkey has joined. 08:13:33 -!- GregorR-L has quit ("Leaving"). 08:14:10 io list syntax is ugly :) 08:20:56 Here's a surprising thing. Why doesen't Java have an OctetString class? 08:21:04 OctetStrings are useful on many occasions, methinks. 08:24:06 Foo := Object clone 08:24:06 Foo clone := Foo 08:24:10 -!- ^_` has joined. 08:24:10 hee :) 08:25:53 -!- GreaseMonkey has quit (Nick collision from services.). 08:25:58 -!- ^_` has changed nick to GreaseMonkey. 08:53:54 What interface do you implement to use the addition operator? 08:54:10 In Java, of course. 08:55:15 gah, why do you insist on using java :( 08:55:23 Sukoshi: ? 08:55:29 what did you mean 08:55:54 you mean, how do you overload operator + for a class of your own? 08:56:04 because, you can't, of course 08:56:23 :( 08:56:26 How lhame. 08:56:41 java does that sometimes 08:57:08 but i think java's separation of primitives and objects is quite pretty 08:57:20 (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 Really? I don't like its seperation of primitives and objects. 09:25:55 yeahs, why do you like that? 09:26:45 Well, it is a bit of a thin wrapper on top of C, which is the only advantage I see. 09:27:21 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 Well, obviously there's the business of the constructor, but the idea is the same. 09:32:35 what are you saying? 09:34:18 Huh? 09:34:32 If you understand C, the meaning there should be obvious. 09:35:43 < Sukoshi> I mean, any C coder can think of Object blah = new Object(); to translate 09:35:46 to void *blah; blah = malloc(sizeof(blah)); if (blah == NULL) { ... } 09:35:49 so? 09:36:09 bsmntbombdood: i just do like it. 09:36:27 Well, it is a bit of a thin wrapper on top of C, which is the only advantage I see. 09:36:35 Reading is a skill :) 09:36:41 i read that 09:36:48 There you go then. 09:37:30 what you said would mean the sepperation of objects and primitives is unwarrented 09:37:52 IMO it is. 09:38:42 a separation is needless, true, but it's a good separation. 09:38:57 Now anime time. Yay. 09:39:02 i mean, sepperation, because that's like 50 times cooler way to type it. 09:41:00 'morning, everyone. 09:41:11 err... evening 09:41:39 ok 09:41:57 it's 4:40 AM where I'm sitting 09:42:05 there's a big hole in my pants... that's not good, there are my only pants 09:42:10 it's 11:40 here 09:42:42 oklofok: hm. holy pants could prove problematic. 09:42:55 where's the hole? 09:42:58 that joke only works when spoken 09:43:03 it's in the crotch. 09:43:18 -!- ^_` has quit (Connection timed out). 09:43:19 "I've got a hole... in my PANTS..." 09:44:42 it's not visible 09:44:57 i'm just afraid they might break completely 09:44:59 in public 09:45:01 or smth 09:45:15 going camping for a week tomorrow *shiver* 09:45:24 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 oklofok: camping can be fun sometimes 09:45:52 especially naked camping! 09:45:53 yes, but not if your ex is there and she hates you 09:45:54 as long as there are no stinging insects and it isn't burning hot 09:46:06 ooh, that could make it less fun 09:46:16 why are you forced to go camping with your ex? 09:46:24 * oklofok is a scouter-boy 09:46:41 ah 09:46:43 hm 09:46:56 you spend a long time with people, you're bound to nail a few of them 09:47:51 hot is okay, insects are okay, naked is okay, what is not okay is the fact my computer isn't there 09:48:07 build one 09:48:24 not a bad idea 09:48:51 figure out how to make a few gates with sticks 09:48:57 i'm pretty sure i could at least build an fsm of some sort from just like branches 09:48:59 yes 09:49:01 sticks 09:49:03 noodles 09:49:28 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 me and a friend made 'or' and 'and' with rubber bands and chop sticks 09:49:48 oklofok: you could also try being social 09:50:00 we were gonna make a 'xor', but the way we implemented them, it would've taken a while 09:50:11 how did you do it? 09:50:11 bsmntbombdood: i can do that... for a few days 09:50:28 hmm, it's a bit complicated... 09:50:35 i mean, at least the way we did it 09:50:47 so... basically first we built see-saws 09:51:01 like, you have a horizontal stick with another on top of it 09:51:05 sure 09:51:12 so you can press down the other end and the other goes up 09:51:21 so, we make 3 of there 09:51:22 *these 09:51:37 and attache them so that there is a joint with all three of them in the middle 09:51:46 this is one of the most insane articles I've seen on slashdot in a while? 09:51:50 you can easily make 'or'/'and' that way 09:51:55 s/?/: 09:51:56 http://blogs.nature.com/climatefeedback/2007/07/google_turns_to_the_dark_side.html 09:52:04 and xor is trivial if you have those 09:52:07 but 09:52:14 i don't get it 09:52:24 on an LCD, the color displayed on the screen has no impact on power usage! aargh 09:52:33 it gets problematic with multiple gates, since you have to put in weights everywhere, and everything affects anything 09:53:04 bsmntbombdood: what don't you get? if i just try to explain again, i'll say the same thing. 09:53:18 i mean, unless instructed what to clear up 09:53:20 the joining 3 see saws in the middle 09:53:27 hm. a clever design, but without scalability it's a very limited system 09:53:27 well 09:53:37 you have two of them be input 09:53:41 and on output 09:53:53 or: you have input's be under output 09:54:03 ok 09:54:11 and: you have inputs be over output 09:54:30 oh, and a weight on the other side? 09:54:42 and then you attach weights so that a seesaw will be in a certain position if no external weigth is given 09:54:45 yes, exactly 09:54:48 that is needed for and 09:54:52 'and' 09:55:10 so, you see how this isn't a very modular solution 09:56:52 those gates will just be able to evaluate simple logic expressions since they work simultaneously 09:57:08 like, when you give input, the output is there at the speed of sound, of course 09:57:23 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 there's ways to make the levers better 09:58:03 if you want something you can program in, you need something that evaluates in *cycles* 09:58:33 i mean, not just calculates as you put input, like a gate system like that would 09:58:49 you could easily write any adder on that, if you just have the time :P 09:58:53 that just needs gates that self-reset without a constant input, and then a clock-pulsing system of some kind 09:59:02 you can program it be rearanging the levers 09:59:49 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 what do you mean? 10:00:29 i mean, that it can, for example, have a loop 10:01:23 addition can be done on a finite gate system, but that's pretty much it 10:01:28 it seems like that would just trend towards a balance between the gates 10:01:37 you need a constant motive force input 10:01:47 err yes, that's what i've been trying to say :) 10:02:07 :) 10:02:09 the energy can come from the clock 10:02:22 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 doesn't have to be turing complete to pass the time 10:02:40 bsmntbombdood: yeah, so we need to design a clock or potentially an amplifier 10:02:44 bsmntbombdood: the idea was to have just rubber bands and sticks :) 10:02:57 RodgerTheGreat: nooooo, stay *band+stick*! 10:02:58 oklofok: clock = finger pressing on a stick 10:03:01 ah 10:03:06 yes, that is okay 10:03:12 if we could come up with a mechanical amplifier, it could add the needed energy to the system 10:03:27 oklofok: can we use rocks and possibly string as well? 10:03:55 yes, absolutely, if those will help us get to the cycle level of computation 10:04:19 because, almost any cycle system will be programmable 10:04:38 hm. so, a mechanical amplifier... 10:04:46 a lever, of course 10:04:54 bingo 10:05:07 can you explain what that would do physically? 10:05:34 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 and then try to figure out how to do the information flow there 10:06:04 you can do that by hanging string from above 10:06:29 what about some kind of pendulum system generating a periodic on/off stick flip? 10:06:31 hmm 10:07:07 RodgerTheGreat: might is well just use some cyclic finger tapping 10:07:48 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 If I were out in the wilderness, I'd bring along spools of magnet wire, some iron nails, and some cups. 10:08:22 The challenge: Create a telephone system that broadcasts as far as possible. 10:08:29 Prove the math along the way for extra fun and profit. 10:08:55 how do you make a speaker/microphone out of those materials? 10:08:55 good idea 10:09:00 charcoal? 10:09:01 gimme your number and i can test 10:09:03 ;) 10:09:11 Sukoshi: with a system of coils and electromagnets, you might be able to build relay logic! 10:09:22 I'm more of an RF geek, sorry :P 10:09:29 aw. :( 10:10:17 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 and... it will actually be a wireless phone? 10:10:58 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 Of course oklofok. 10:11:06 it'd be very tricky without some form of amplification, but the principle is quite workable 10:11:09 where do you get the current for the electromagnet? 10:11:14 Battery. 10:11:18 ah 10:11:20 (Yeah, I left that out.) 10:11:25 i thought induction current 10:11:27 oh, that's less cool 10:11:31 not that interesting then 10:11:34 I've never actually read the original Bell telephone spec, but I know enough electrics to build it myself. 10:11:39 well... okay, it's trivial making a dynamo 10:11:39 right, you could do it with a permanent magnet maybe 10:11:46 if you already have all those things 10:11:50 Where are you going to generate the force to create a large enough current? 10:12:01 err.... with a magnet? 10:12:01 hand crank 10:12:05 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 oklofok: Huh? 10:12:21 Yeah, the problem is, the source has to be direct current. 10:12:27 dayum 10:12:28 ah 10:12:30 didn't think of that 10:12:40 that is a bit trickier 10:12:40 Or else you'll have the magnetic field oscillating, and that'll produce extra anoyances. 10:12:42 bell made a pressure-sensitive resistor out of powdered carbon 10:12:58 Reading about it takes away 90% of the fun :|. 10:13:02 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 sound compresses the carbon, lowering resistance 10:13:11 AC to DC is a breeze. 10:13:12 how could you make a diode? 10:13:19 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 bsmntbombdood: gap-junction diode 10:13:30 and capacitors would need to be huge 10:13:33 oklofok: It probably wouldn't. 10:13:44 like in a razorblade radio or a pencil-lead radio 10:13:52 Your typical magnet is 10G. Not even close to anything much 10:13:52 . 10:14:04 two dissimilar conductive materials can function as a diode in the right configuration 10:14:10 RodgerTheGreat: not familiar 10:14:40 Sukoshi: have more loops in your coil 10:14:41 10 G = .001 T, by the way. 10:14:51 you can make a solar cell out of copper and salt water 10:14:55 oklofok: Find the maximum of the function. You'll find it's not much. 10:15:14 bsmntbombdood: http://members.aol.com/djadamson7/articles/foxhole.html 10:15:31 physics... math... urgh 10:15:40 and heat 10:15:45 hm. I didn't know the copper+salt water trick. How much power do you get out of one? 10:15:55 Science - math = phail. 10:16:00 RodgerTheGreat: very, very, little 10:16:06 and is it a real solar cell, or does it just work by corroding the copper? 10:16:09 Sukoshi: physics + _ = phail 10:16:16 i dunno 10:16:36 you oxidize one pole of it with the heat 10:16:41 anyway, who said you have to have a *typical* magnet? and what is T? 10:16:44 i used a blow torche 10:16:59 oklofok: Where are you going to get a magnet like that from? 10:17:09 That can generate appreciable current? 10:17:10 would a "typical" magnet be a lodestone? 10:17:25 Probably. 10:17:25 Sukoshi: it's not about the magnet, it's about the coil 10:17:34 bsmntbombdood: might work better just to make a thermocouple if you have a blowtorch. 10:17:40 oklofok: It's not about the coil, it's about the flux. 10:18:00 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 err... yeah, but it's a direct increase in current if you add loops. 10:18:24 Only if they're in the flux. 10:18:36 the magnet creates the flux.. 10:18:40 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 It's not an inifinite field. 10:18:53 that makes it more practical than a blowtorch in the woods 10:19:03 but you actually know you can't coil up a decent current with a small magnet? 10:19:04 Or else you could build awesome generators with a magnet and massive amounts of coils --> Dun work that way. 10:19:16 eh 10:19:22 that's how generators are made 10:19:33 They use things like water and steam to push them. 10:19:37 Not a person's hands :P 10:19:58 err yes, but we're creating the amount of current a battery creates 10:20:11 not electricity for the whole town 10:20:11 As I said, do the math if you don't believe me *shrug*. 10:20:51 The rate of flux change is huge, and so the 10:20:53 Errr... 10:20:59 Heh. XChat failure. 10:21:00 ? 10:21:02 Well, more anime time. 10:21:04 oh 10:21:06 :\} 10:21:16 why don't you finish that sentence first :P 10:21:34 what animes are being watched? 10:22:14 Sukoshi: if i feel like relearning how to do those boring physics calculations, i'll calculate that 10:25:15 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 what mechanism did it use? 10:25:50 rod logic 10:26:06 beyond that, I don't know much 10:26:30 but it represented bits in memory with mechanical rods that could slide back and forth in two positions 10:26:45 wow 10:26:55 I understand how the machine functions on a systemic level, but there isn't much information on the mechanical details 10:27:47 what would it take to build a transistor? 10:28:03 hm 10:28:54 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 relays and transistors are easier to work with because they're strictly binary, whereas tubes are analog 10:29:57 hmm, i gotta get me some sticks and bands... 10:34:07 me too, i'll play around with it in the morning 10:47:58 actually, i just realized i have like a ton of both 10:48:33 gotta practice a bit though 10:48:38 these look quite ugly :P 10:49:51 my friend once made a gun out of these that shot a stick meters 10:50:00 the same guy i did the ports with 10:50:22 it's not that hard, but it's pretty fun making stuff out of there 10:50:24 *these 10:51:16 i dunno if i'll be able to find stuff for it 10:53:48 -!- Sukoshi has left (?). 11:08:44 first stick broken, 0 gates done. 11:08:59 how the hell did we make those ports that pretty... 11:09:03 *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 i didn't sleep last night and now i fell better than when i do sleep 15:49:09 and i can't find anything to do lever-logic with 16:12:45 "lever-logic"? 16:13:44 #define SIX 1 + 5 16:13:44 #define NINE 8 + 1 16:13:44 while (SIX * NINE == 42) {...} 16:13:46 hah 16:14:14 oklofok: what is your design? 16:14:26 ehird`: we've all seen that before 16:14:35 SimonRC, well i haven't, so bleh =P 16:17:36 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 so i felt justified in pasting it here. 16:25:47 SimonRC: logic with levers 16:26:07 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 Evil. 16:50:48 ?? 16:51:12 Rube Goldberg computation is evil cause I say so. 16:54:23 ah, ok 16:59:36 pikhq, No, it's fun! 16:59:43 I want tennis balls to compute 2 + 3! 17:00:44 maybe i should start simple, like a calculator that can only add and subtract :P 17:01:01 Doesn't make it any less evil. 17:11:59 the problem with any mechanical computer is how to amplify 17:12:22 Don't forget there is such a thing as a "torque amplifier" 17:21:00 After more than five years of searching, I have found it! 17:21:01 http://drgoulu.wordpress.com/2005/12/29/eviteur-daxe/ 17:21:02 the legendary "shaft-passer", that allows one shaft to pass through another 17:21:03 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 oh bo;y 17:28:33 hm? 17:29:09 the shaft-passer 17:29:48 now make one that's rigid in 3 dimensions 17:46:32 -!- jix has joined. 17:54:10 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 nice 19:55:30 11:53 [freenode] -!- ####esoteric ###esoteric Forwarding to another channel 19:55:30 11:53 [freenode] -!- ###esoteric ##esoteric Forwarding to another channel 19:55:30 11:53 [freenode] -!- ##esoteric #esoteric Forwarding to another channel 19:55:59 Hahah. 19:56:14 Someone been having fun with chanserv? 20:08:28 heh, i was complaining io's list syntax was ugly 20:08:32 http://iota.flowsnake.org/syntax-extensions.html 20:27:10 somebody should make an ascii movie based on those redirections 20:27:18 redirect to the next line of the frame 20:45:49 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 X op Y - if X doesn't respond to op, try Y op X damnit! 20:46:51 then "" . num . "blah" would just be num . "blah" 20:47:15 * pikhq growls about how the idea of operators is broken. . . 20:47:37 true 20:47:45 * ehird` growls about how messages are broken 20:47:47 generic functions FTW 20:47:55 that solves that problem actually 20:48:05 x + y is just +(x y) 20:48:11 [+ x y] 20:48:14 Err. 20:48:27 [+ $x $y];#forgot the dereference 20:48:37 tcl is hardly a purely object-oriented language with binary operators built in and generic functions :) 20:48:44 [incr Tcl] doesn't count =P 20:48:45 Well, no. . . 20:48:59 It doesn't *have* an object system. . . 20:49:36 And binary operators? Well, Tcl 8.5 gets arithmetic functions that can be used in place of expr. . . 20:49:47 yeah yeah whatever :P 20:49:53 still not relevant, in the context of what i was saying 20:50:11 (Perfect language: Prototype-based OOP, with generic functions, and NO damn messages!) 20:50:14 (honestly, whose idea was it to have a function which evaluates infix statements rather than just some arithmetic functions?) 20:50:23 pikhq, an idiots 20:50:25 -!- RedDak has joined. 20:50:33 *an idiot's 20:50:37 Yeah. 20:50:49 plus they wanted to keep their precious parsing spec so small because that is much more important than readability of code. 20:51:04 I find Tcl to be damned readable, actually. . . 20:52:02 Mostly, yes. 20:52:09 But some idiosyncracies can make it annoying 20:52:44 especially their insistance on making everything a function, even when it is really ugly as a function 20:52:56 Example? 20:53:38 most of their control structures 20:53:48 Uh, that's not ugly. . . 20:54:04 that sort of code-data-happy attitude only works when your code is structured in a data-like way 20:54:08 if {expr-statement-here} {code-which-is-uplevel'd} 20:54:08 strings are not. 20:54:23 It's ugly in theory at least. 20:54:25 Maybe not looks. 20:54:40 * pikhq still doesn't see what's ugly about it 20:55:26 All if does is do an uplevel if that expr statement returns true. . . 20:56:54 Hmm, my idea of a perfect OOP language is flawed - generic functions don't work well with prototype inheritance 20:59:56 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 that's nicely generic 21:00:13 Though it allows for insanely obfuscated code... I think that's a good thing 21:01:26 "Hello!\n" print(stdout) 21:01:26 stdout print("Hello!\n") would be equivilent, i think that's nice 21:03:07 oh, wait, that won't work 21:03:19 99 . " bottles of beer" would be " bottles of beer" . 99 21:03:30 annoying 22:38:21 -!- jix has quit ("CommandQ"). 22:54:09 you need proper generic functions 22:57:41 -!- pikhq_ has joined. 22:58:30 I have a simple idea for a reversible esolang. 22:59:10 I think I'll put it on wiki. 22:59:16 Also, I think I'll call everything "wiki". 22:59:21 reversible? 23:01:57 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 ok, floral wire, twisted into i-hook like shapes, pressed into corkboard for fulcrums 23:28:14 with toothpicks as the levers 23:30:43 define: "i-hook" 23:30:58 what does it calculate? 23:31:54 http://img.alibaba.com/photo/50205808/Hook_and_Eye_Hook.jpg 23:32:00 SE2 is an i-hook 23:32:34 you mean "eye-hook" 23:32:36 sigh 23:32:43 ...whatever 23:32:55 it is so-called because it has an eye like a needle has an eye 23:33:21 I was wondering just HTF something the shape of the letter i would be a "hook" 23:33:50 i've never seen eye-hook in print 23:33:51 iHook 23:34:07 heh 23:34:55 Actually aplle have patented the iBrick 23:35:24 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 ouch 23:35:40 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 howdy, everybody 23:51:52 hi 23:54:10 hey, bsmntbombdood 23:54:12 'sup? 23:54:25 been trying to build some levers 23:56:15 ah, the mechanical logic project continues 23:59:51 i've been using toothepicks resting on other toothepicks, it's very fragile and almost impossible to chain gates