←2008-11-18 2008-11-19 2008-11-20→ ↑2008 ↑all
00:01:03 <nooga> yyyy
00:02:42 <ehird> http://pastie.org/318300
00:02:44 <ehird> delicious!
00:02:50 <ehird> although i need a result_of in the final one, whatever
00:02:56 <ehird> wait
00:03:03 <ehird> that needs to be an assert, for the result_of, doesn't it?
00:03:07 <ehird> or maybe a side-effect
00:03:29 <ehird> http://pastie.org/318301
00:03:29 <ehird> tada
00:06:23 <nooga> o
00:07:24 <oerjan> +ul (o )(~(o)~*:S~:^):^
00:07:25 <thutubot> oo ooo oooo ooooo oooooo ooooooo oooooooo ooooooooo oooooooooo ooooooooooo oooooooooooo ooooooooooooo oooooooooooooo ooooooooooooooo oooooooooooooooo ooooooooooooooooo oooooooooooooooooo ooooooooooooooooooo oooooooooooooooooooo ooooooooooooooooooooo oooooooooooooooooooooo ...too much output!
00:11:38 <oklopol> o
00:12:16 <oerjan> +ul (o )(~(ok)~*:S~:^):^
00:12:17 <thutubot> oko okoko okokoko okokokoko okokokokoko okokokokokoko okokokokokokoko okokokokokokokoko okokokokokokokokoko okokokokokokokokokoko okokokokokokokokokokoko okokokokokokokokokokokoko okokokokokokokokokokokokoko okokokokokokokokokokokokokoko okokokokokokokokokokokokokokoko ...too much output!
00:12:34 <oerjan> thutubot is so lagged
00:12:40 <oklopol> yuog fol
00:12:43 <oklopol> sleapp ->
00:13:20 <oerjan> sweat drooms
00:15:13 <nooga> what was that?
00:16:12 <nooga> where is help tor thutubot ?
00:16:23 <ehird> nowhere.
00:16:30 <nooga> dang
00:16:34 <ehird> only one command
00:16:35 <ehird> +ul
00:16:37 <ehird> it runs underload
00:16:40 <ehird> its written in thutu
00:16:42 <nooga> uhm
00:16:43 <ehird> (look it up on the wiki)
00:18:44 <ehird> Hmm.
00:18:48 <ehird> Maybe I should write my own prolog for this.
00:18:59 <ehird> fizzie: oerjan: Probably the best, isn't it, considering the sandboxing I'd have to do otherwise
00:21:44 <nooga> funny
00:28:16 <fizzie> fungot's got a ^help, though.
00:28:17 <fungot> fizzie: http://en.wikipedia.org/ wiki/ fnord ( user fnord) 13:12, 15 march 2007 ( utc)
00:28:18 <fizzie> ^help
00:28:18 <fungot> ^<lang> <code>; ^def <command> <lang> <code>; ^show [command]; lang=bf/ul, code=text/str:N; ^str 0-9 get/set/add [text]; ^style [style]; ^bool
00:34:06 <nooga> what langs does it support?
00:34:24 <nooga> a
00:34:34 <fizzie> Brainfuck and Underload; that's the bf/ul there.
00:34:44 <nooga> i remember that there was another bot
00:35:08 <fizzie> There's also an undocumented ^code command that runs non-sandboxed Befunge, but that's limited to me only since it's so unsafe.
00:35:10 <nooga> that supported even my poor SADOL
00:35:30 <fizzie> fungot's written in Funge-98, in case that wasn't mentioned yet.
00:35:31 <fungot> fizzie: if there is other other fair use media, consider checking that you have specified the fair use rationale.
00:35:56 <fizzie> It's also very obsessed about fair use when it's using this current babble-database.
00:35:59 <fizzie> ^style
00:35:59 <fungot> Available: agora alice darwin discworld europarl ff7 fisher ic irc lovecraft pa speeches ss wp*
00:36:25 <oerjan> Egobot, how we miss thee
00:37:07 <nooga> ^style discworld
00:37:07 <fungot> Selected style: discworld (a subset of Terry Pratchett's Discworld books)
00:37:17 <fizzie> [2008-04-26 01:15:37] < EgoBot> 1l 2l adjust axo bch bf{8,[16],32,64} funge93 fyb fybs glass glypho kipple lambda lazyk linguine malbolge pbrain qbf rail rhotor sadol sceql trigger udage01 unlambda whirl
00:37:22 <fizzie> The list was indeed impressive.
00:37:24 <nooga> what now?
00:37:38 <fizzie> Now you can talk to fungot, and it'll respond with mangled Discworld stuff.
00:37:39 <fungot> fizzie: " i think someone trod on my hat."
00:37:56 <fizzie> fungot: You don't have a hat.
00:37:56 <fungot> fizzie: ' interesting point," said rincewind. ' i'm missing meals here, you see? the universe doesn't stop even for my clock,' said bucket.
00:38:08 <oerjan> ho wrude!
00:38:16 <nooga> wa
00:38:19 <ehird> trippy, i can't tell if that was a real quote or not
00:38:39 <nooga> fungot: Where is my egg?
00:38:40 <fungot> nooga: it was her mouth. it looked like a witch dancing through raindrops, never getting wet. wait until morning.' the valkyrie turned in the saddle.
00:38:59 <fizzie> This one might not be one of the best ones.
00:39:06 <nooga> ;p
00:39:28 <nooga> ^style lovecraft
00:39:28 <fungot> Selected style: lovecraft (H. P. Lovecraft's writings)
00:40:06 <fizzie> "agora" is Agora rules; "alice" is Lewis Carroll's books; "darwin" is Darwin's writings with messed-up tokenization; "discworld" you've seen; "europarl" is European Parliament speeches 1996-2006; "ff7" is Final Fantasy VII script; "fisher" is transcribed telephone conversations; ...
00:40:20 <nooga> fungot: I can see something over there.
00:40:21 <fungot> nooga: serve as the eyes of the falling dreamer. there were
00:40:28 -!- sebbu has quit ("@+").
00:41:09 <fizzie> "ic" is the INTERCAL manual; "irc" is #esoteric + #scheme IRC logs (probably the most sensiblest one); "lovecraft" is this one; "pa" is Penny Arcade comics; "speeches" is just some speeches from Project Gutenberg; "ss" is Shakespeare; "wp" is 1/256th of Wikipedia talk pages.
00:43:05 <fizzie> The "darwin" one is only funny because it's filled with :)-smileys, thanks to a bug. (Fungot's hardcoded punctuation stuff -- the very visible triangle in http://zem.fi/~fis/fungot.b98.txt -- doesn't match with what was used when building the data files.)
00:43:05 <fungot> fizzie: at some of the things. in the second place, his organic processes shewed a certain queerness of proportion which fnord utterly to shame the emotional fnord and fnord.
00:43:49 <fizzie> fungot: Stop talking about "organic processes" like you don't have those. Wait, I guess you don't, at that.
00:43:50 <fungot> fizzie: as a mining engineer of considerable prominence. enclosed were some very curious mediaeval information. he seemed, in fine, to have picked up a sight o' fnord in the
00:48:20 <fizzie> I think it's sleep-time; almost 03 am, finally got MATLAB to plot those figures the way I wanted them so it's a good point to sleep. Night.
00:49:19 -!- oerjan has quit ("leaving").
00:51:17 <nooga> O_o
00:51:21 <nooga> coded it by hand?
00:53:08 -!- Asztal has joined.
01:02:01 <ehird> nooga: yes
01:02:03 <ehird> its written in befunge
01:02:06 <ehird> oh
01:02:07 <ehird> you mean
01:02:08 <ehird> fizzie
01:02:10 <ehird> 's matlab
01:02:16 <ehird> bye for today
01:02:28 <nooga> bye
01:03:27 <nooga> i'm thinking about an algorithm that will place graph nodes on a square lattice so that the summary length of edges would be the smallest
01:04:27 <nooga> hah
01:04:35 <nooga> 'night
01:49:46 -!- Slereah has set topic: http://tunes.org/~nef/logs/esoteric | Hilarious topic.
02:49:34 -!- oerjan has joined.
04:02:24 -!- Asztal_ has joined.
04:19:14 -!- Asztal has quit (Read error: 110 (Connection timed out)).
04:24:14 -!- Slereah_ has joined.
04:34:48 -!- Corun has joined.
04:45:16 -!- Slereah has quit (Read error: 110 (Connection timed out)).
04:50:50 -!- oerjan has quit ("leaving").
05:06:59 -!- Asztal_ has quit ("ChatZilla 0.9.84 [Firefox 3.0.1/2008070208]").
05:52:46 -!- Corun has quit ("This computer has gone to sleep").
06:15:02 -!- Slereah_ has quit (Read error: 113 (No route to host)).
06:16:06 -!- Sgeo has quit (Read error: 110 (Connection timed out)).
06:26:54 -!- Slereah_ has joined.
06:55:05 -!- GreaseMonkey has joined.
06:58:58 -!- Corun has joined.
06:59:10 -!- Corun has quit (Client Quit).
06:59:50 -!- Corun has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:57:16 -!- olsner has quit ("Leaving").
08:59:59 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)).
09:01:05 -!- puzzlet has joined.
09:10:27 <ais523> AnMaster: online?
09:18:34 <oklopol> o
09:19:06 <ais523> oko
09:19:56 <oklopol> i just woke up, and now i have to break my holy never-go-out-again principle already :<
09:20:18 <oklopol> life is not very fair
09:20:56 <ais523> why do you have to do out? school?
09:21:18 <oklopol> yes, i need to go show em i've done my c++.
09:21:50 <oklopol> also i need to go take the dog out.
09:23:13 <oklopol> she's getting a bit frustrated, i think, trying to eat my fingers as i type.
09:25:51 <oklopol> also i probably need to go to the shop, all i have here is noodles, and that's really all i've eaten all week
09:26:05 <oklopol> of course that's only two days, but i ate them last week too
09:26:11 <ais523> go outside, it's a good day for it over in the UK
09:26:30 <ais523> therefore by unsafe and overconfident extrapolation I assume it is where you live too
09:26:33 <oklopol> well i wouldn't know, the curtains are closed
09:27:30 <oklopol> last night it was so windy i couldn't ride my bike at all, had to walk home backwards, also rainy but i don't mind that. if you didn't see my complaints yesterday
09:28:11 <oklopol> by extrapolation on that, it's not that nice a day outside.
09:28:13 <ais523> "had to walk home backwards"?
09:28:40 <oklopol> yes, i had my guitar on my back, so the wind couldn't get to my head.
09:29:20 <ais523> I like to have natural light even when I'm indoors programming, it saves on electricity
09:29:29 <ais523> and I like to look out of the windows from time to time too
09:30:00 <oklopol> walking backwards with a bicycle is pretty hard btw. somehow my bike balancing reflexes just don't cover that.
09:30:16 <oklopol> probably because they're backwards, but anyway.
09:31:08 <oklopol> i don't like natural light usually. i like the occasional day out in the summer, but usually i like sitting in the dark
09:31:23 <oklopol> or with a small light on
09:31:33 * oklopol is powergeek
09:32:09 <oklopol> also the topic is hilarious!
09:32:54 <oklopol> seems i'm too tired to leave my computer.
09:33:09 -!- Corun has quit (Remote closed the connection).
09:33:29 -!- Corun_ has joined.
09:33:44 <oklopol> hi Corun_
09:34:06 <Corun_> Meep.
09:35:15 -!- GreaseMonkey has quit ("So, how much do you love noodles?").
09:35:50 <nooga> o
09:35:53 -!- Corun_ has changed nick to Corun.
09:37:03 <nooga> oklopol: lawl
09:38:07 <ais523> GreaseMonkey: pretty appropriate quit msg by the way, that must have been deliberate...
09:38:22 <nooga> ;]
09:40:28 <oklopol> i love noodles, but my stomach can't stomach it if i don't eat anything else with them.
09:41:07 <nooga> i usually eat in KFC or gas stations (those awful hot-dogs) + cola :D
09:41:24 <oklopol> are you a trucker?
09:41:29 <nooga> or in work - pizza or chinese shit
09:41:43 <oklopol> i wish i had the money only to eat fast food
09:41:57 <oklopol> slow food is simply inferior.
09:42:11 <nooga> nope, i'm proud owner of 30 years old Mercedes-Benz
09:42:17 <ais523> fast food as in junk food, or as in preprepared meals you get in a shop?
09:42:26 <nooga> and i just sit in that car and drive around for fun
09:42:37 <oklopol> ais523: preferably junk food
09:42:40 <ais523> I mostly eat preprepared sandwitches from the various canteens here
09:42:50 <oklopol> but preprepared meals are often good too
09:42:54 <oklopol> it's all about the speed
09:43:12 <nooga> i'm just too lazy to prepare something from scratch
09:43:38 <oklopol> for most my senses, i have a limit for how good stimuli can get, for food the limit is pretty low, most things taste equally unbelievably awesome.
09:44:54 <nooga> yesterday i ate a sandwich from subway and smoked a pack of cigs ;]
09:44:59 <nooga> that must be healthy
09:45:34 <ais523> hmm... I avoid all sorts of unhealthy things just because I don't like them
09:45:50 <ais523> I don't smoke, I haven't drunk alcohol for about 4 years or drunk caffeine for about 3
09:45:57 <ais523> and eat lots of vegetables and salads
09:46:03 <ais523> just due to my preferences about things I like
09:46:03 <nooga> good for you
09:47:29 <nooga> i smoke, eat junk and drive my car around, killing atmosphere
09:47:30 <nooga> ;]
09:49:10 <ais523> nooga: have you ever heard of hypermiling?
09:49:17 <nooga> what?
09:49:24 <ais523> apparently not
09:49:28 <ais523> it's catching on quite a lit
09:49:31 <ais523> *lot
09:49:40 <nooga> ah
09:49:42 <ais523> basically it's a competition to see how fuel-efficiently you can drive a car
09:49:51 <nooga> ah yes
09:50:00 <ais523> your score is the ratio of how fuel-efficient it is when you drive it to how fuel-efficient it is in the spec
09:50:14 <AnMaster> morning
09:50:27 <AnMaster> and yes I'm online, a bit preoccupied
09:50:49 <nooga> well
09:51:58 <nooga> my car is 30 years old, has enormous (as for european car) engine capacity and weights sth about 2000 kilo
09:52:07 <nooga> + the tires are quite broad
09:55:12 <nooga> evil :D
09:58:06 <oklopol> i find "saving the nature" a bit too conservative for my taste, why not ruin it, and see what the future brings along.
09:59:20 <nooga> the car ruins my wallet
09:59:55 <oklopol> same thing applies for the money, why not spend it all, and see what happens
10:00:23 <nooga> yea
10:00:26 <oklopol> i could probably continue in the university even if i lived on the street.
10:00:30 <nooga> i saw what happens
10:00:40 <oklopol> maybe even better, i couldn't do anything but read in the library.
10:00:45 <oklopol> because i wouldn't have anything.
10:00:54 <oklopol> wow what happend?
10:00:57 <oklopol> *happened
10:01:02 <nooga> flat owner goes mad for a month
10:01:09 <oklopol> did you live in the woods and hunt your own food
10:01:16 <nooga> friends feed you
10:01:24 <oklopol> lol awesome :D
10:01:37 <ais523> nooga: how did you get more money again?
10:02:19 <nooga> next month = salary ;]
10:02:35 <nooga> + some shitty projects
10:02:44 <nooga> and i can smoke, drive, eat and pay for my flat
10:03:06 <oklopol> i have tons of money, i'm scared of using it
10:03:13 <nooga> give me some ;]
10:03:50 <oklopol> yeah right, and take away your awesome drifter life
10:04:28 <oklopol> if i had like a tent and some kinda blanket, i would be the happiest man alive
10:04:44 <oklopol> it's all the social pressure that's keeping my routines up
10:05:14 <oklopol> well i would probably want a computer, so guess i'd need to get moneys for like a cellphone.
10:07:28 <nooga> ah
10:07:30 <nooga> details
10:07:41 <nooga> i've met funny guy in netherlands
10:07:50 <oklopol> funny guys are funny
10:07:57 <nooga> homeless one, in tidy clothes, with watch and everything
10:08:19 <nooga> he was with a huuge dog that looked well fed and happy
10:08:59 <nooga> the guy was speaking quite sophisticated english and claimed that he was a mechanical enginieer
10:09:18 <oklopol> :)
10:10:00 <nooga> he said that he sleeps on a street with dog, under one blanket so even in the winter it's comfortably warm
10:10:21 <nooga> and said that he had to move out because the dog attacked housekeeper
10:10:31 <nooga> and almost killed him ;d
10:10:33 <oklopol> xD
10:11:20 <nooga> so
10:11:24 <nooga> it's possible
10:11:43 <oklopol> so cool
10:12:06 <nooga> mkay
10:12:15 <nooga> university awaits
10:12:19 <oklopol> hmm
10:12:37 <nooga> i must go there and do something unspecified in some unspecified lab
10:12:37 <oklopol> for me too, should do morning stuffs and leave.
10:12:51 <oklopol> i must go show them 7 c++ exercises and come back.
10:12:55 <nooga> lawl
10:14:00 <oklopol> i would've had like 8 hours of lectures, but i didn't feel like it after yesterday's stormy
10:14:03 -!- nooga has quit (Client Quit).
10:14:06 <oklopol> byes
10:14:07 <oklopol> ->
10:14:40 <ais523> bye
10:21:14 -!- puzzlet has quit (Remote closed the connection).
10:21:23 -!- puzzlet has joined.
10:47:53 -!- Mony has joined.
10:48:13 <Mony> plop
11:04:40 <ehird> #include <stdio.h>
11:04:40 <ehird> int main(void) {
11:04:40 <ehird> printf("%d\n", (int)sizeof(42)["where is your god now?"]);
11:04:41 <ehird> return 0;
11:04:41 <ehird> }
11:04:43 <ehird> discuss
11:05:05 <Mony> zomg !
11:07:31 <oklopol> ehird: that's not portable....
11:07:41 <ehird> oklopol: are you sure?
11:08:35 <oklopol> well it's not portable in that the behavior is not guaranteed in the standard, it might be portable portable
11:09:11 <oklopol> god the topic is hilarious
11:09:22 <ehird> oklopol: o rly, i think you're bullshitting.
11:09:51 <oklopol> ;;)
11:09:53 <MizardX> Well... strings are pointers to memory, and array indexing is commutative. It's the same as (int)("where is your god now?" + 32) or (int)("where is your god now?" + 16) depending on architecture.
11:10:12 <oklopol> MizardX: it's not that
11:10:20 <oklopol> it's the size of 42
11:10:23 <fizzie> sizeof(42) is usually 2, 4 or 8, not 16 or 32.
11:10:44 <oklopol> also the int conversion
11:10:57 <oklopol> both can change from machine to machine
11:11:14 <oklopol> not machine dammit, compilation? my words are gone
11:11:33 <oklopol> well machine, depending what the definition of machine is
11:11:35 <oklopol> aaaanyway.
11:14:19 <fizzie> Anyway, yes, it's close to (int)*("where is your god now?" + sizeof(42)) -- it's not good to forget the * there.
11:17:47 <fizzie> Oh, actually that's not what it is. That was funky.
11:18:00 <oklopol> it isn't?
11:18:05 <fizzie> It's actually just sizeof(char).
11:18:33 <oklopol> okay then i got owned pretty bad.
11:18:36 <fizzie> Because the syntax goes "sizeof unary-expression" or "sizeof (type-name)", and a cast is unary-expression.
11:19:00 <fizzie> So it's the size of the "where is your god now?"[42] expression.
11:19:17 <oklopol> "the case"
11:19:18 <oklopol> *cast
11:19:32 <oklopol> the cast is outside the sizeof, i don't understand what that has to do with precedence
11:20:17 <fizzie> The cast just converts the size_t result of sizeof into int, I don't think it has much to do there.
11:21:09 <oklopol> errso by cast
11:21:16 <oklopol> you meant the indexing
11:21:20 <oklopol> *err, so
11:21:21 <fizzie> Oh, uh, I meant, the [] binds so tight, right.
11:22:30 <oklopol> well okay, this was new to me, that's why you shouldn't learn by doing, only by memorizing the specs can you read actual real life codez.
11:24:31 <oklopol> but, i should reeeeeally start going soon ;)
11:24:32 <oklopol> ->
11:50:13 -!- sebbu has joined.
11:59:16 -!- Corun has quit ("This computer has gone to sleep").
12:14:43 -!- Corun has joined.
12:19:49 <ehird> http://www.ariel.com.au/a/teaching-programming.html
12:19:50 <ehird> ^
12:19:56 <ehird> puts gets.to_i + gets.to_i
12:20:05 <ehird> s/gets/readline/ if that floats your boat.
12:24:43 <oklopol> the oklotalk way would be "out !In + !In"
12:25:10 <oklopol> i've recently started loving oklotalk's syntax again
12:26:15 <oklopol> whoops. that's wrong
12:26:36 <oklopol> unary binds tightest, so "out ( !In + !In"
12:26:41 <ehird> oklopol: you should make oklotalk concatenative
12:26:51 <oklopol> it actually is somewhat
12:26:55 <ehird> In ! In! + out
12:27:03 <ehird> oklopol: what is the !
12:27:05 <ehird> and why In vs out?
12:27:21 <oklopol> !Function means call function
12:27:31 <oklopol> out is a function too, but it's lowercase, so it's an actual call
12:27:43 <ehird> hmm oklopol
12:27:47 <ehird> what is !X vs x?
12:27:50 <oklopol> this is an okenity issue in oklotalk terminology
12:27:54 <oklopol> x would take an argument
12:27:58 <oklopol> so you'd have to do
12:28:00 <oklopol> in()
12:28:15 <ehird> oklopol: ah, use/mention distinction?
12:28:22 <ehird> i.e. "the function X" vs "call X with no args"
12:28:30 <oklopol> yes
12:28:41 <ehird> oklopol: there are two nice solutions:
12:28:55 <ehird> 1. make it lazy and have no 0-arg functions, they're just thunks, like haskell. <-- Best option, obviously
12:29:06 <oklopol> no, that's not good
12:29:16 <ehird> 2. make it the MENTIONING that requires the exrta char. "in" with no args is clearly more common than passing the function in around
12:29:20 <ehird> make passing the function in &in
12:29:31 <ehird> ==> shorter code, all calling looks the same
12:29:38 <oklopol> passing the function is "In", calling it is "in"
12:29:44 <oklopol> that's how oklotalk rolls.
12:29:48 <ehird> ok, but
12:29:52 <ehird> why wouldn't this work
12:29:58 <ehird> out ( in + in
12:30:11 <oklopol> because in, + and in are all funcokens = the "use" case
12:30:13 <oklopol> so that's
12:30:25 <oklopol> out ( in( +( in( argument ) ) ) )
12:30:38 <oklopol> argument being the contents of _
12:30:40 <ehird> oklopol: solution for that:
12:30:45 <ehird> when you know the arity of a function, never read more args than it
12:30:52 <ehird> since the system knows that in has no arguments, that can work fine
12:30:54 <ehird> [perl does that]
12:31:01 <oklopol> so, basically i'd have to change parsing at runtime.
12:31:06 <ehird> well, yeah.
12:31:11 <ehird> perl seems to manage fine :p
12:31:22 <ehird> also i'd say runtime syntax is very oko.
12:31:27 <oklopol> anyway, why are you trying to change oklotalk? it's perfect, and your solutions are just copying languages you like.
12:31:33 <ehird> no, i dislike perl.
12:31:38 <ehird> i'm just making suggestions :p
12:31:43 <oklopol> well okay
12:32:07 <oklopol> but that's one thing about oklotalk i'm never going to change
12:32:11 <oklopol> because i like it a lots.
12:32:12 <ehird> it would seem that runtime syntax to minimize the code size and to make errors even-more-impossible is very oko.
12:32:34 <oklopol> yeah well, oklotalk did have that originally, but i decided to remove runtime parsing.
12:32:49 <ehird> (errors even more impossible because you cannot give most funcs too many args, simply impossible, and if you give too little args it's a syntax error, not runtime)
12:32:56 <ehird> although oklotalk has syntax errors
12:32:58 <ehird> go fig :p
12:33:15 <oklopol> syntax error?
12:33:23 <ehird> yeah, like
12:33:28 <oklopol> oklotalk will never have syntax errors, that's one of the design goals.
12:33:28 <ehird> if "foo" is known to take two args
12:33:29 <ehird> the program
12:33:30 <ehird> foo 1
12:33:32 <ehird> although
12:33:36 <ehird> you could make that mean
12:33:40 <ehird> foo 1 ()
12:33:42 <ehird> where () = nil
12:36:23 <oklopol> bleh
12:44:19 <oklopol> you can also do "out\+(In\(,)"
12:45:50 <oklopol> which means out( reduce( +, map( in, [(), ()] ) ) )
12:46:44 <ehird> lol
12:46:58 <ehird> oklopol: does oklotalk have an event-based library?
12:47:02 <ehird> that you can nest events.
12:47:04 <ehird> then you could do
12:47:07 <oklopol> can't think of anything much shorter
12:47:18 <ehird> x@in=>x@in=>out x
12:47:19 <ehird> or something
12:47:28 <ehird> binded_var@event => dowhat
12:47:32 <ehird> err
12:47:40 <ehird> x@in=>y@in=>out x+y
12:47:42 <ehird> obviously
12:48:27 <oklopol> no it doesn't have that, although you can just do X=in;Y=in;out(X+Y
12:49:08 <ehird> oklopol: right but, that's not how that'd work
12:49:15 <ehird> it'd just idle until it got input then schedule another listener
12:49:20 <ehird> i.e. you could continue doing crap after saying that
12:49:26 <ehird> and also more advanced event triggers, etc
12:49:40 <ehird> i.e. in isn't a function there
12:49:48 <ehird> it's saying, when the in event is trigered bind the result to x
12:49:52 <ehird> then schedule another trigger
12:49:58 <ehird> then add the two results together when that is triggered
12:50:04 <ehird> and output
12:50:09 <ehird> e.g. you could have a very simple gui lib that way
12:50:41 <oklopol> can you show me an example, and i can tell you if you can just do it the exact same way?
12:51:02 <ehird> like
12:51:05 <ehird> e.g. you can do it for callbacks
12:51:15 <ehird> clicked(button) => out "button clicked"
12:51:16 <ehird> or whatever
12:51:24 <ehird> it's just a generic pattern for scheduling events/callbacks
12:51:36 <ehird> nothing complicated
12:51:53 <oklopol> i think you'd start a new thread for that
12:52:08 <oklopol> and then call a blocking function in it
12:52:13 <ehird> nahh, do something like twisted
12:52:18 <ehird> its non-blocking & event-based
12:52:20 <ehird> instead of threads
12:52:22 <ehird> so you can do a lot more
12:52:24 <ehird> without having 1000000 threads
12:52:37 <oklopol> iirc, that's @(X=in)
12:52:38 <ehird> http://twistedmatrix.com/trac/ ('s for python)
12:52:46 <ehird> ah, that makes sense
12:52:58 <oklopol> iirc, that's @(X=in),@(Y=in),@(out(X+Y))
12:53:04 <ehird> hmm
12:53:06 <ehird> that's a bit ugly
12:53:09 <ehird> oklopol: what's the lambda syntax again
12:53:11 <ehird> {...}?
12:53:13 <oklopol> yeah
12:53:18 <ehird> i'd go for:
12:53:30 <ehird> wait
12:53:33 <oklopol> i'm not sure @ is the character for threads, but there's a character for threads
12:53:38 <ehird> oklopol: whats the arg syntax again?
12:53:40 <ehird> orrrrrrrrrrrrrrrr
12:53:41 <oklopol> _
12:53:43 <oklopol> contains args
12:53:44 <ehird> what's the implicit arg stuff
12:53:48 <ehird> right right but what about
12:53:50 <ehird> a nested lambda
12:53:56 <oklopol> (patternz -> things)
12:54:03 <oklopol> {N -> N*5}
12:54:08 <ehird> @in = {x -> @in = {y -> out (x+y)}}
12:54:12 <oklopol> {N -> {A -> N + 3} * 5}
12:54:13 <ehird> @button(clicked) = {out "hi"}
12:54:18 <ehird> ah, with allcaps
12:54:18 <ehird> whatever
12:54:21 <oklopol> whoops, that made no sense, but anyway
12:54:22 <ehird> ^ nice
12:54:27 <ehird> and not actually threads btw,
12:54:31 <ehird> just non-blockingy stuff
12:54:50 <ehird> you just have a mainloop, going through every bit in turn, and run it, nonblockingly
12:55:02 <ehird> = you can have like 1,000,000 of them and it still works
12:55:04 <oklopol> oh, you're going by what the name of "@" might suggest it means?
12:55:15 <ehird> no
12:55:19 <ehird> im suggesting what it should mean
12:55:20 <ehird> :D
12:55:21 <oklopol> but saying that'd be neat?
12:55:22 <oklopol> yeah okay
12:55:25 <ehird> ya
12:55:36 <ehird> oklopol: it could be useful for your oklotalk os
12:55:36 <ehird> :p
12:56:00 <oklopol> :P
12:56:00 <ehird> just build everything (keypress,mouse click,move,gui-state-changed (to rerender)) etc as an event
12:57:00 <oklopol> hmhmm
12:57:28 <oklopol> i'm definitely not going to add syntax for events in case events are simply an external thing
12:57:42 <oklopol> so i'd have to somehow incorporate that to the normal message passing syste.
12:57:47 <oklopol> *system
12:57:48 <oklopol> but...
12:58:45 <oklopol> A = @{ @smth = {out "smth given"}; @smthelse = {out "smth else given"} }; A ! §Smthelse
12:59:02 <oklopol> "§" is currently used for atoms, i may change that.
13:00:29 <oklopol> but how about: A = @{ @[§smth, `{out "smth given"}]; @[§smthelse, `{out "smth else given"}] }; A ! §smthelse; A ! §smth; A ! §smthelse
13:00:38 <ehird> bit verbose, but looks pretty
13:00:45 <oklopol> so that you could give the thread a "cue"
13:01:07 <oklopol> basically just a pattern
13:02:01 <oklopol> patterns are done using the "quote code" list [\ ... ], usually, but for static stuff like an atom or a list you could just as well have the cues without it.
13:03:04 <oklopol> well, that's actually equal to A = @{ §smth -> {out "smth given"}; §smthelse -> {out "smthelse given"}; } :P
13:03:16 <oklopol> only if multiple events could trigger at once would there be a difference
13:03:49 <oklopol> *that* i might be willing to add new syntax for, something like "=>"
13:04:08 <ehird> wellllll
13:04:12 <ehird> read up on twisted
13:04:13 <ehird> :P
13:04:22 <oklopol> oklotalk is proud to have a lot of things that mean almost the same, but you have to know the small details or you'll crash everything.
13:04:25 <oklopol> twisted?
13:04:30 <ehird> i linked it before.
13:04:34 <ehird> http://www.twistedmatrix.com/
13:04:41 <ehird> its the same kind of event-based system i envisioned for that thing
13:04:43 <ehird> in python
13:04:50 <oklopol> mhmm.
13:05:33 <oklopol> i don't really feel like reading that.
13:06:30 <oklopol> hmm, yeah i'll do what i said, "=>" will just be a nonblocking "->"
13:07:35 <oklopol> meaning it opens a new thread waiting for the arguments
13:08:08 <ehird> oklopol:
13:08:09 <ehird> threads are evil
13:08:10 <ehird> ;_;
13:08:22 <ehird> slow, hacky, race conditions, can't have loads at once, ...
13:09:16 <oklopol> yeah and recursion is bad, it uses up the stack, you can get exponential runtime if you make the smallest error ...
13:09:35 -!- ais523_ has joined.
13:09:37 <ehird> hi ais523_
13:09:46 <oklopol> that's conceptually equal to what you described earlier.
13:09:59 <oklopol> it's just i call it thread, you call it something else.
13:10:14 <oklopol> threads aren't evil.
13:10:57 <ais523_> oklopol: they are sometimes, it depends on whether you use fork() or evil_fork()
13:11:08 <oklopol> ais523: yeah but oklotalk always uses the first one
13:11:12 <oklopol> that's in the spec
13:12:26 <oklopol> but yeah you're right, if you just open a normal thread for the event, that constantly polls for events or something, then yeah, that's slow and hacky.
13:12:36 <oklopol> but it will just execute the blocking poll
13:12:39 <oklopol> and go to sleep
13:12:47 <oklopol> and, with =>, even that doesn't happen
13:13:16 <oklopol> because => just always waits for the input, the function will basically just have a list of "events being waited for", which is then run on input that it is given.
13:14:16 <oklopol> as for race conditions, oklotalk isn't a language where you write stable code, that's simply not what it's aiming for, it's about writing code fast, and in creative ways
13:14:46 <ehird> yeah but
13:14:46 <ehird> oklopol:
13:14:49 <ehird> to get programs working right
13:14:50 <ais523_> does it have a Funge/INTERCAL-like model in which you can predict the speeds threads run at at compile time?
13:14:54 <ehird> soemtimes you need to solve race conditions
13:14:56 <ehird> and that is a lot of code
13:14:57 <ehird> and time
13:14:59 <ehird> so on the whole...
13:15:57 <oklopol> ehird: i've never encountered a race condition, therefor, i don't believe they're actually a problem unless you're a bad programmer.
13:16:00 <oklopol> *therefore
13:16:02 <oklopol> well
13:16:13 <oklopol> i've never had a program that suffered from a race condition
13:16:41 <ehird> presumably, because you havent wrote the kind of problem that runs into them
13:16:43 <ehird> e.g. parallel stuff
13:16:55 <AnMaster> ais523_, hi
13:17:07 <ais523_> hi
13:17:12 <ais523_> sorry for leaving so abruptly earlier
13:17:22 <ais523_> my laptop ran out of battery and did an emergency hibernate
13:17:35 <ais523_> and I was about 30% of the way through uploading gcc-bf, too
13:17:42 <oklopol> ehird: i've written parallel stuff. but anyway, this is a moot point, i already explained to you why race condition arguments don't apply
13:18:01 <oklopol> just happen to think they *never* apply, but we don't have to argue about that now.
13:18:17 <oklopol> we can argue about it later, when i'm all grown up and have written parallel code that doesn't work.
13:21:14 -!- nooga has joined.
13:21:18 <nooga> ah
13:22:38 <nooga> fizzie
13:26:47 <fizzie> Yes?
13:30:11 -!- Corun has quit ("This computer has gone to sleep").
13:47:23 -!- Slereah has joined.
13:48:05 <nooga> fizzie: i've got a graph in which each node is connected to 3 undirected edges
13:48:15 <nooga> nodes are of 2 types
13:48:37 <Slereah> 1 and 2?
13:49:00 <nooga> and i want to draw that graph placing vertices on square grid so that sum of edge length will be the smallest
13:49:49 <ais523_> nooga: heh, if I had that problem I would have asked oklopol, probably
13:49:59 <ais523_> or maybe oerjan
13:50:04 <fizzie> It feels like half of the time people ask something it's about graph layouting.
13:50:15 <ais523_> really?
13:50:29 <fizzie> It's not only on this channel; elsewhere, too.
13:50:45 <nooga> i figured out that fizzie is also on #algo
13:50:49 <ais523_> ah
13:50:51 <fizzie> Of course it's probably more like a single-digit percentage, but still.
13:50:54 <nooga> so i thought he might know
13:51:03 <fizzie> What's #algo? I don't think I'm on anything like that.
13:51:04 <oklopol> #algo?
13:51:15 <nooga> ##algorithms
13:51:16 <nooga> ;p
13:51:19 <oklopol> i'm there.
13:51:29 <oklopol> fizzie isn't
13:51:46 <nooga> no wai
13:52:00 <fizzie> If I am, it's news to me.
13:52:01 <nooga> so i mixed you two into one supreme being
13:52:02 <oklopol> nooga: so, put them all in the same position, (0,0)
13:52:07 <oklopol> distances are zero
13:52:11 <oklopol> wow, that was easy.
13:52:16 <nooga> gaaa
13:52:18 <nooga> no
13:52:20 <oklopol> nno?
13:52:24 <fizzie> Actually that was my first thought too. :p
13:52:40 <nooga> nodes are transistors of types P and N
13:53:09 -!- Slereah_ has quit (Read error: 148 (No route to host)).
13:53:09 <nooga> and i'm figuring out how to make a compact circuit with shortest cables possible
13:53:37 <ais523_> nooga: do you have mirror-image versions of the transistors
13:53:43 <ais523_> or are b, c, e in a fixed order?
13:53:47 <Slereah> Why, are cables that expensives?
13:53:56 <nooga> cables have resistance
13:53:57 <fizzie> Anyway, Very Busy(tm) now; hopefully the oklopol side of the hypothetical oklozzie complex will help here.
13:54:06 <oklopol> :P
13:54:38 <oklopol> well it's about wires so this is ais523 territory, also i'm not that comfortable with solving intractable problems.
13:55:12 <oklopol> hmm
13:55:27 <oklopol> three undirected edges you say, right okay transistors
13:55:44 <ais523_> nooga: don't you need to put in resistors as well as transistors?
13:55:52 <nooga> MOSFET
13:55:58 <ais523_> even so
13:56:02 <ais523_> digital circuit?
13:56:06 <nooga> yep
13:56:12 <ais523_> ah, ok
13:57:26 <oklopol> can the wires intersect each other? you're not being very specific
13:57:35 <nooga> yep they can
13:57:40 <oklopol> can the wires intersect the transistors?
13:57:53 <oklopol> manhattan distance?
13:57:55 <nooga> well, why not
13:58:08 <oklopol> or you know euclidean
13:58:17 <nooga> transistors will be on one side of the board and connections on the other
13:59:03 <fizzie> You could maybe abuse one of the many IC placement-and-routing tools.
13:59:35 <oklopol> what an ugly practical solution
13:59:36 <oklopol> :D
13:59:39 <nooga> :D
14:00:23 -!- ais523_ has quit ("http://www.mibbit.com ajax IRC Client").
14:00:29 <nooga> distance is not a problem
14:00:54 <oklopol> so, we have a set of nodes, and a set of three other nodes for each node specifying three nodes they're connected with, we need to find a placing for each node such that the sum of distances to each of these neighbors for each node are minimal.
14:01:00 -!- Asztal has joined.
14:01:02 <nooga> problem is how to find the solution in a way a bit more elegant than bruteforce or genetic algo
14:01:25 <nooga> yup
14:01:46 <oklopol> depends on how good a solution you want
14:02:08 <nooga> ah well
14:02:23 <nooga> node count isn't bigger than 10000
14:04:10 <oklopol> well
14:04:20 <oklopol> a random scheme that comes to mind
14:04:46 <oklopol> hmm wait...
14:05:28 <oklopol> intractable problems are fun
14:05:32 <oklopol> broken m-keys aren't :<
14:06:12 <oklopol> well. one thing you can do
14:06:37 <oklopol> is find connected components for deleting a certain node, for all nodes
14:06:50 <oklopol> basically you find nodes the dropping of which results in multiple graphs
14:07:01 <oklopol> hmm
14:07:14 <oklopol> not sure that works well with this kinda thing, i'm not sure what kind the graphs you have are.
14:07:33 <oklopol> anyway i think the components aren't *that*
14:07:48 <oklopol> hmph, aren't that connected, probably there are sets of close nodes that split the network.
14:08:27 <oklopol> that lets you divide and conquer, the merging step is simply finding the two spots on the map to put the submaps in
14:08:35 <oklopol> *finding two
14:09:04 <oklopol> but i don't know, as i said, a bit stupid trying to find a good strategy with only a slight guess about what the graphs look like
14:10:55 <nooga> hm
14:11:33 <oklopol> but say you have something like abfbcedb, you could split on b, and then recurse on a, f and ced
14:11:37 <nooga> i could prepare some samples
14:12:18 <oklopol> now, you need not only find a good placing for the subgraphs, you need to get the things b is connected to to be "on the side" of the returned map
14:12:28 <oklopol> because they need to be connected to b in the merging step
14:13:00 <nooga> the graph is quite massive because it's an output from my integrator
14:13:00 <ais523> AnMaster: anyone else who cares: http://code.eso-std.org/gcc-bf/gcc-bf.tar.bz2 is a version of gcc-bf so far which actually compiles
14:13:07 <AnMaster> ais523, nice
14:13:14 <oklopol> but that's really not very hard, because we can have wires go through anything, it's simple just to mingle the whole subgraphs together.
14:13:24 <oklopol> hmm. i'm really bad at explaining my visions.
14:13:24 <nooga> in which you can define eg OR gate wrom basic P and N elements
14:13:43 <nooga> and then define eg. adder which uses that OR
14:13:51 <AnMaster> ais523, i'm wgetting it
14:14:02 <ais523> AnMaster: use the wrapper script to run it, and the arg -Wl,-progress,-abi,-asm if you don't want it to just seem to hang for ages and then crash
14:14:05 <oklopol> nooga: yeah i get it; that's why i think something like this might work, you probably don't have that many cycles
14:14:20 <nooga> mhm
14:15:04 <nooga> and everything is compiled into a huge graph with basic P and N elements
14:15:13 <oklopol> (if there's no cycles, then this is a trivial problem)
14:15:44 <oklopol> (because a divide-and-conquer scheme like that will work perfectly)
14:15:50 <oklopol> (reasonably perfectly)
14:18:39 <nooga> ais523: ported libc?
14:18:52 <ais523> nooga: newlib compiles, sort of
14:19:00 <ais523> it compiles enough to produce a libc
14:19:19 <ais523> the makefile crashes eventually but I can still salvage the libraries it creates
14:20:13 <oklopol> hmm. i want a nice hypertext editor, something like {xxx} which is then a direct link to opening the file xxx in a new tab.
14:20:24 <oklopol> in case it's not open, otherwise just showing the tab
14:21:15 <oklopol> otherwise wordpad is a perfect text editor
14:21:34 <oklopol> (except for the obvious defect of not remembering which font i like)
14:26:12 -!- Slereah_ has joined.
14:26:31 <nooga> jedit is quite cool
14:26:43 <ehird> oklopol: Didn't they call that html? :p
14:27:49 <oklopol> err no they didn't call that kinda program html. and i like my syntax better. html is more about markup than about hyperlinks.
14:28:13 <oklopol> hyperlinks wouldn't need that much crap, they'd need one hyperlink contruct for doing hyperlinks.
14:28:22 <ehird> oklopol:
14:28:27 <ehird> <a href=hello>foo</a>
14:28:34 <ehird> admittedly, thats longer than {hello}
14:28:44 <ehird> oklopol: how about mediawiki?
14:28:47 <ehird> foo bar [[hello]]
14:28:53 <fizzie> Gnome's "Tomboy" note-taking thing seemed like a reasonable thing, but never got around starting to use it.
14:29:05 <oklopol> who cares about the syntax, i'm asking about the program
14:30:00 <nooga> i thought about an editor in which you can embed scripts in the text
14:30:22 <nooga> that are collapsable and take some arguments
14:30:35 <nooga> and generate something when you write the file
14:31:18 <nooga> or work as links, keep some data which will be written in specified format etc
14:32:01 <fizzie> Seems like they made a Windows version of that thing, too; http://live.gnome.org/Tomboy/Win32 -- of course, the links there aren't to other files, just other Tomboy notes, so you'd need to keep everything there in order for it to be useful.
14:32:11 <nooga> soo it looks like: some text yadda yadda [script button] yadda yadda
14:32:26 <nooga> and when you click the button you can edit the script or sth
14:37:29 -!- oklopol has set topic: http://tunes.org/~nef/logs/esoteric | Enhanced, even more hilarious topic.
14:45:26 <nooga> ah
14:46:59 -!- Slereah has quit (Read error: 110 (Connection timed out)).
14:53:50 -!- puzzlet_ has joined.
14:54:24 -!- puzzlet has quit (Remote closed the connection).
14:56:16 -!- Slereah has joined.
15:03:42 <nooga> that graph thingy drives me mad
15:13:27 -!- puzzlet_ has quit (Remote closed the connection).
15:13:32 -!- puzzlet has joined.
15:18:12 -!- Slereah_ has quit (Read error: 110 (Connection timed out)).
15:20:28 -!- Slereah has quit (Read error: 110 (Connection timed out)).
15:24:11 <nooga> ais523: how to use that gcc-bf thing?
15:24:18 <ehird> compile it
15:24:19 <ehird> run it
15:25:43 <nooga> omfg
15:25:44 <nooga> huuuge
15:26:07 <nooga> got shitloads of errors
15:30:35 <ais523> nooga: errors or warnings?
15:30:40 <ais523> there are a huge number of warnings
15:30:44 <ais523> most of which are in gcc itself
15:30:51 <ais523> not in my code
15:32:16 <nooga> nah
15:32:17 <nooga> errors
15:32:27 <nooga> it failed
15:32:41 <ais523> I'm not really surprised, I had trouble getting it to compile at my end
15:32:45 <ais523> what was the first error?
15:32:51 <ais523> or the last error if you can't see the first
15:33:39 <nooga> configure: error: /bin/sh ../../gcc-4.2-20070719/fixincludes/../config.sub bf failed
15:33:43 <nooga> first
15:33:51 <ais523> nooga: ah, ok
15:33:57 <ais523> did my patches to config.sub apply properly?
15:34:10 <nooga> have no idea
15:34:16 <nooga> never compiled gcc
15:34:33 <ais523> nooga: what did you do upon downloading the package?
15:34:43 <ais523> just run the build script?
15:35:02 <ais523> it uses programs nobody has, is the problem, I used realpath in it and possibly you don't have that
15:35:27 <nooga> um
15:35:54 <nooga> i have realpath
15:35:57 <ais523> ah, ok
15:36:01 -!- KingOfKarlsruhe has joined.
15:36:03 <nooga> and yes, i just run the script
15:36:27 <nooga> as root ;p
15:36:29 <ais523> grep for bf) in gcc-4.2-20070719/config.sub
15:36:32 <ais523> and don't run as root
15:36:35 <ais523> it doesn't need it
15:37:21 <nooga> bf) ?
15:37:33 <ais523> nooga: it's how you do a switch statement in bash
15:37:39 <ais523> my patch should have added it
15:37:48 <ais523> but the error message suggests that it didn't patch for some reason
15:37:53 <nooga> none
15:38:08 <nooga> :{
15:38:32 <ais523> ah, ok
15:39:11 <ais523> nooga: if you run patch gcc-4.2-20070719/config.sub < patches/config.sub.patch, what happens?
15:42:56 <nooga> WOOOOOOOOOT
15:43:02 <nooga> i didn't have patch
15:44:05 <ais523> strange to have realpath but not patch...
15:44:15 <ais523> that's a possibility I hadn't even thought of
15:44:26 <ais523> you probably want to make sure you have gcc's other dependencies too, there are quite a lot
15:47:00 <nooga> aaaaaaa
15:47:11 <nooga> never seeen so many errors in one make
15:49:51 <ais523> sorry everyone, connection problems...
15:50:49 <nooga> meh
15:50:53 <nooga> i give up
15:52:33 * AnMaster is building gcc-bf too
15:52:37 <AnMaster> but I lacked realpath
15:52:45 <AnMaster> wrote a shell function replacement
15:52:46 <ais523> nooga: it'll have a saner build script in a while
15:52:53 <AnMaster> ais523, see /msg too
15:53:25 <AnMaster> ais523, at some point you will want to be able to compile gcc-bf with itself
15:53:39 <ais523> I'm not sure that's even possible, but it would be fun to try
15:53:49 <ais523> gcc-bf compiles files very quickly and links them very slowly
15:53:59 <AnMaster> heh
15:54:07 <AnMaster> ais523, Linux for BF?
15:54:16 <ais523> AnMaster: thought of that too, it's a worrying thought
15:54:21 <ais523> probably we should get qemu for BF first
15:54:25 <ais523> then use that to run Linux
15:54:30 <AnMaster> ais523, no MMU so you would need uclinux
15:54:34 <ais523> although that's cheating really
15:54:45 <AnMaster> and yes it is cheating
15:54:49 <AnMaster> and wouldn't work
15:54:56 <AnMaster> since qemu doesn't compile on gcc 4.x
15:54:59 <ais523> AnMaster: hmm... maybe I should try to build uclibc rather than newlib for gcc-bf
15:55:07 <AnMaster> ais523, maybe, no idea
15:55:16 <AnMaster> newlib is even more minimal isn't it?
15:55:29 <ais523> yep
15:55:40 <ais523> I added just enough to clean up all the dangling references
15:55:53 <AnMaster> hm?
15:56:01 <ais523> newlib can't do everything by itself
15:56:06 <AnMaster> ah right
15:56:08 <nooga> i think it would be better to write a minimal C compiler that targets bf
15:56:08 <ais523> it needs to know how to do I/O for instance
15:56:11 <AnMaster> would need some low level functions
15:56:18 <AnMaster> nooga, nah
15:56:22 <AnMaster> write an LLVM backend
15:56:25 <AnMaster> instead
15:56:27 <ais523> nooga: BF-C exists IIRC, doing it with gcc seems to impress more people though
15:56:34 <nooga> ah
15:56:40 <AnMaster> ais523, yes and it could handle C99
15:56:45 <AnMaster> and potentially C++
15:56:55 <nooga> C++ requires RTTI
15:56:57 <AnMaster> if you implement a libstdc++
15:56:57 <ais523> AnMaster: gcc-bf can handle C99, although doesn't have all its standard library
15:56:58 <ehird> bf-c is broken
15:56:59 <ehird> and shit
15:56:59 <ehird> :D
15:57:06 <AnMaster> ais523, right
15:57:13 <AnMaster> nooga, yes and?
15:57:22 <nooga> i can't imagine that in bf
15:57:27 <AnMaster> RTTI is implemented at quite a high level I believe
15:57:29 <ais523> and there's no reason in theory why it couldn't handle C++, except it would be a pain to get gcc to not try to do clever linker tricks that won't work
15:57:43 <AnMaster> ais523, heh
15:58:49 <nooga> prolog -> bf :D
15:59:25 <AnMaster> nooga, um prolog isn't an esolang
15:59:28 <AnMaster> so not relevant
15:59:31 <ais523> AnMaster: so, neither is C
15:59:38 <AnMaster> oh that was -> to
15:59:40 <AnMaster> not -> better than
15:59:55 <ais523> I suppose writing a gplc backend could be interesting
16:00:04 <AnMaster> gplc?
16:00:23 <ais523> the GNU Prolog compiler
16:00:30 <ais523> as opposed to gprolog which is an interpreter
16:00:40 <ais523> amusingly, you can create gprolog by giving gplc a blank file as input
16:00:49 <ais523> apart from the command-line args end up different I think
16:02:19 <nooga> heh
16:02:34 <nooga> i want that circuit router done :|
16:04:56 <AnMaster> <ais523> amusingly, you can create gprolog by giving gplc a blank file as input <-- um the program generates the other one?
16:05:19 <AnMaster> ???
16:05:25 <ais523> AnMaster: gplc is a compiler
16:05:32 <ais523> gprolog's a Prolog interp with a debugger and such
16:05:42 <ais523> if gplc isn't given an initial goal, it links in a small interp so you can run the program
16:05:50 <ais523> and the debugger's linked in unless you tell it not to
16:06:01 <AnMaster> heh
16:09:19 <ehird> nice alternative to collabedit: http://etherpad.com/
16:10:23 <nooga> collaborative coding in that way sucks
16:10:52 <ehird> yes, but it's good for other things
16:10:58 <ehird> ais523 & comex have used it extensively before
16:11:01 <ehird> (collabedit)
16:11:05 <ehird> etherpad seems faster.
16:11:34 <nooga> good for what things?
16:11:36 <ais523> gobby works better but it isn't a website and takes about two months to install on Mac OS X
16:11:58 <ehird> nooga: planning scams in Agora, for instance :-P I've used it for that before...
16:12:06 <ehird> ais523: and when it is installed it's awkward to use
16:12:36 <ais523> I thought it was pretty easy to use, actually
16:12:47 <ais523> maybe it varies by OS
16:12:48 <ehird> yes, if it likes your platform it probably is.
16:13:10 <ehird> when it uses about 5 different focus/window-creation mechanisms none of which you are familiar with, when its graphics keep redrawing itself oddly,
16:13:18 <ehird> when it refuses to use a font bigger than like 4px by default...
16:13:24 <ehird> when you can't use any of the common shortcuts in its editor... etc
16:13:29 <ais523> ah
16:13:34 <ais523> none of that happened to me
16:13:57 <ehird> well, you're lucky, you use X11. (See wut i did thar? I said lucky and x11 in the same sentence. arf arf arf)
16:14:01 <nooga> heheheh
16:14:30 -!- Asztal has quit (Read error: 110 (Connection timed out)).
16:27:38 -!- puzzlet_ has joined.
16:28:24 -!- puzzlet has quit (Remote closed the connection).
16:46:07 -!- thutubot has quit (Read error: 60 (Operation timed out)).
17:01:32 <MizardX> oklopol: You have any link that describes oklotalk? All I can find in the logs is examples.
17:02:48 -!- ehird has quit (Remote closed the connection).
17:02:48 -!- ais523 has quit (Remote closed the connection).
17:03:20 <AnMaster> hrrm
17:03:26 <AnMaster> I wonder what happened there
17:03:32 <AnMaster> he was talking a second before
17:03:55 <AnMaster> oh server is down
17:03:55 -!- ais523 has joined.
17:03:58 <AnMaster> ais523, hi
17:04:01 <AnMaster> what happened there?
17:04:10 -!- ehird has joined.
17:04:50 <ais523> AnMaster: no idea
17:04:54 <ais523> oh, I get it
17:05:00 <ais523> ehird's server rebooted
17:05:02 <AnMaster> ais523, server crashed or something I believe
17:05:04 <ais523> and took my bouncer with it
17:05:07 <AnMaster> ais523, yes that is rather strange
17:05:10 <ais523> the fact I'm here must mean the reboot worked
17:05:10 <AnMaster> to just reboot
17:05:38 <ais523> not crashed, deliberately rebooted
17:05:44 <ais523> after an upgrade
17:06:51 <oklopol> MizardX: nope. i have a short spec/tutorial about it's simplified sister language oklotalk-- somewhere.
17:07:21 <oklopol> but oklotalk has a few features i haven't even finished yet, even though the language was born mannny years ago
17:09:12 <MizardX> this one? http://www.vjn.fi/oklopol/oklotalk--.txt
17:10:19 <oklopol> no that's just an example program
17:10:35 <oklopol> at least it's in the articles somewhere randomly split into n pieces
17:11:47 <oklopol> that's a subset of oklotalk with sexp syntax
17:12:25 <oklopol> because i was to lazy to make an actual parser, and there was a deadline because that was a highschool project
17:12:40 <oklopol> i probably wouldn't have gotten even that implemented without a deadline
17:12:59 <oklopol> i never do, which is why i wish there were esolang courses @ the uni
17:14:47 <oklopol> i'd like it if there was like a mandatory programming project every month. would prevent my slacking, because i'm quite a perfectionist when it comes to school (well university, i didn't give a shit about high school)
17:17:22 -!- jix has joined.
17:17:40 <MizardX> I don't understand this line: (-> [$setcar h] h) ... wouldn't that just return the argument that was passed to it?
17:17:52 <ehird> nope
17:17:54 <ehird> it has weird scope
17:17:59 <ehird> since you have an h in the "object" containing it
17:18:04 <ehird> the h in that pattern match overrides it
17:18:09 <ehird> then it returns the new car that you provided it
17:18:15 <ehird> so, yes, it returns what you give, but with a side-effect
17:18:20 <oklopol> yeah you should think of it as OO with function syntax.
17:18:29 <oklopol> well dunno about "should", but you can, in that case.
17:20:20 <oklopol> don't ask why you can still have recursion... ;)
17:21:24 -!- puzzlet_ has quit (Remote closed the connection).
17:21:38 -!- puzzlet has joined.
17:22:00 <MizardX> ' is recusion?
17:22:12 <oklopol> yeah, it's basically just a shorthand
17:22:30 <oklopol> well, also useful with lambdas i guess
17:22:54 <ehird> MizardX: ' = current func
17:23:07 <ehird> so yes it enables easy recursion
17:23:14 <oklopol> indeed, it's not actually "recursion", it's just as well the c++ "this" pointer
17:27:27 <MizardX> { } = lambda, and (-> ) is pattern match?
17:27:57 <ehird> MizardX: {} = thing. it's the object/function thin
17:27:57 <ehird> g
17:28:02 <ehird> and (-> ) is the pattern match on the args yeah
17:28:30 <oklopol> (-> pattern expr-to-eval expr-to-eval expr-to-eval...)
17:28:32 -!- puzzlet has quit (Remote closed the connection).
17:28:33 <oklopol> yeah
17:28:37 -!- puzzlet has joined.
17:30:05 <oklopol> the implementation may have a few features, especially regarding pattern matching, that aren't specced there.
17:30:41 <oklopol> i think i added guards, as a special tuple
17:31:29 -!- Asztal has joined.
17:40:30 <MizardX> how are strings implemented? list of atoms?
17:42:28 <oklopol> in my interp they were a python string. but a list of atoms would be nicer, or a list of characters.
17:42:54 <oklopol> currently there's nothing in the semantics that separates strings from lists.
17:43:38 <oklopol> except that strings have less functionality
17:43:59 <oklopol> i was simply too lazy to scrap the string implementation and just make them lists.
17:44:07 <oklopol> which would've taken like 10 minutes
17:44:22 <oklopol> MizardX: are you implementing it?
17:44:36 <oklopol> because if you are, you may need further info about the scoping.
17:44:38 <oklopol> it's a bit complex
17:45:16 <oklopol> well not that complex, but somewhat
17:45:25 <oklopol> "not a bit, somewhat"
17:45:45 <oklopol> i should think what i say
17:46:41 <MizardX> oklopol: Well... I was trying to implement a redivider parser in oklotalk... but now that you mention it, it could be fun to implement an interpreter for oklotalk.
17:47:19 <oklopol> parsing would be nicer if i'd implemented cutting and pasting lists... but you can do it already ofc, you just have to add the functionality yourself
17:48:05 <oklopol> i don't think it'd be that hard to implement it, took me about a week of slowly typing it up, but that was mainly because i was making stuff up as i went
17:49:07 <oklopol> i wanted both static and dynamic scoping, and that wasn't all that hard to implement, the problem was i also wanted function parameters to be persistent so you could do something like that setcar thing
17:49:20 <oklopol> unfortunately this meant you had to make a new object if you wanted to recurse.
17:49:38 <oklopol> because otherwise the caller would've destroy its own variables
17:50:23 <oklopol> so there's a runtime monitor on all objects, and an object is copied if it's made a call to from inside itself <<< this is what i didn't want you to ask about, but it's helpful if you want to try implementing
17:53:58 <jix> sorry
17:54:09 <ais523> hi jix
17:54:15 <oklopol> jix: that's okay i like getting pinged
17:54:16 <ais523> did you just ping the whole of #esoteric by mistake, or just me?
17:54:20 <oklopol> whole
17:54:20 -!- Asztal_ has joined.
17:54:31 <jix> in my old irc client /ping did ping the server and not the channel ^^
17:54:44 <ais523> and I'm used to getting pinged because I keep losing connection without telling anyone
17:54:46 <oklopol> yeah usually you have to quote it
17:54:55 <ais523> so people talking to me tend to ping me a lot when I stop talking to find out if I'm here
17:55:06 <ehird> was that good
17:56:14 * oklopol leaves for a while
18:00:32 <MizardX> Hmm... an atom is any non-whitespace, non-alphanumeric, non-grouping character followed by non-whitespace, non-grouping? such as %abc ? Or is it just $abc, with a dollar sign?
18:01:53 <MizardX> [^\w\s()[\]{}][^\s()[\]{}]*
18:09:37 <fizzie> Made a Redivider implementation in JavaScript for no real reason:
18:09:38 <fizzie> js> p.expr("1+(2*3)+4")[1]
18:09:39 <fizzie> 123*4++
18:09:45 <fizzie> That's the example program there.
18:11:01 -!- Asztal has quit (Read error: 110 (Connection timed out)).
18:12:20 <MizardX> Add a link in the wiki :)
18:12:47 <fizzie> It doesn't have a web page yet, just works in a JavaScript shell. Maybe I'll make a small page with an input form or something, and then link to it.
18:13:01 <ehird> fizzie: link to the source, he means
18:13:26 <MizardX> paste.eso-std.org/
18:13:31 <fizzie> Well, soonishly. It doesn't have any usage examples or anything.
18:14:15 <fizzie> http://zem.fi/~fis/redivider.js.txt if you just want to see it, but I'll be polishing it up a bit more.
18:14:39 <ehird> fuck you man, that's really short
18:14:40 <ehird> :(
18:15:06 <AnMaster> looks long to me
18:15:09 <fizzie> 714 lines, it's not really that short.
18:15:31 <AnMaster> fizzie, is javascript OO?
18:15:38 <fizzie> If you want.
18:15:44 <AnMaster> hm
18:15:46 <fizzie> It's a prototype-style OO, though.
18:15:50 <AnMaster> ah
18:15:59 <fizzie> So you can add methods to objects any way you wish.
18:17:09 <ehird> i know js
18:17:09 <ehird> :P
18:23:15 <oklopol> MizardX: $ followed by alnum
18:24:03 <MizardX> ok
18:24:38 <MizardX> _ included?
18:25:12 <oklopol> sure. at least in actual oklotalk
18:26:49 <MizardX> float numbers?
18:26:59 <oklopol> none.
18:27:23 <oklopol> you can add them if you please, there's a rational number implementation, the one you linked.
18:27:49 <MizardX> literal strings?
18:28:23 <oklopol> yeah the usual syntax.
18:28:35 <MizardX> double/single quoted?
18:28:55 <oklopol> whaddya think?
18:29:29 <oklopol> i can't tell you because you can already deduce it yourself :P
18:29:56 <MizardX> double quoted, sure. But not all languages allow single quotes, or they mean different things.
18:30:16 <ehird> ' = this
18:30:17 <ehird> remember
18:30:27 <MizardX> oh, forgot
18:30:40 -!- Asztal_ has quit (Connection timed out).
18:36:16 -!- puzzlet has quit (Read error: 60 (Operation timed out)).
18:36:20 -!- puzzlet has joined.
18:43:23 -!- puzzlet_ has joined.
18:55:17 -!- olsner has joined.
18:55:22 -!- puzzlet has quit (Read error: 110 (Connection timed out)).
18:58:18 -!- Corun has joined.
19:14:44 -!- kar8nga has joined.
19:17:05 -!- M0ny has joined.
19:26:45 <ehird> Someone make up a nice-sounding word. That is short.
19:27:12 <bsmntbombdood> glurf
19:28:03 <ehird> that is nice. now other people enter some and i shall pick the nicest, and you shall gain money*
19:28:05 <ehird> *no money
19:34:39 -!- Mony has quit (Read error: 110 (Connection timed out)).
19:35:05 -!- M0ny has changed nick to Mony.
19:35:16 <AnMaster> ehird, are you ignoring me or would you see a word I pasted?
19:35:31 <Deewiant> AnMaster: use a bot
19:35:35 <AnMaster> hm
19:35:46 <AnMaster> Deewiant, well no I don't want to circumvent ignore
19:35:49 <AnMaster> it is his own fault
19:35:59 <Deewiant> true true
19:36:57 <ehird> Deewiant: that was a very dada two lines.
19:37:14 <AnMaster> as I said Deewiant: his own fault
19:38:11 <oklopol> ehird: how about flyug
19:38:19 <oklopol> rolls off the tongue pretty nicely
19:38:24 <ehird> oklopol: maybe in finnish
19:38:26 <ehird> how do you pronounce it?
19:38:27 * oklopol is a lizard
19:38:32 <ehird> also it's quite hard to type
19:39:30 <oklopol> ehird: i pronounce it like it's pronounced in finnish. i don't think you can express that in english
19:39:57 <Deewiant> yu doesn't sound very nice to me
19:39:58 <oklopol> and no it's not a very finnish word, unless you're a lizard
19:40:17 <oklopol> "yu" can't exist in a finnish word.
19:40:33 <oklopol> that's why you don't like idd
19:40:37 <oklopol> *it
19:40:47 <Deewiant> yep
19:41:00 <Deewiant> but there are some things that can't exist in finnish words which sound good
19:41:04 <Deewiant> unbelievably enough :-P
19:41:23 <oklopol> well flyug for instance :O
19:41:30 <Deewiant> no, not that one
19:42:04 <ehird> finns are so fun!
19:42:08 <ehird> totally.
19:44:23 <Mony> bye
19:44:25 -!- Mony has quit ("Join the Damnation now !").
19:54:18 -!- Corun has quit ("This computer has gone to sleep").
19:55:04 * oklopol joins
20:20:48 -!- Asztal has joined.
20:46:26 <fizzie> FLYUGZEUG.
20:47:02 <fizzie> From the German word flugzeug 'aircraft'.
20:47:48 <Deewiant> 'flight-stuff'
20:48:11 <oklopol> "tool" would be closer
20:48:21 <oklopol> "gizmo"
20:49:34 <Deewiant> tool is werkzeug
20:50:08 <oklopol> aaand?
20:50:28 <Deewiant> I've never seen das Zeug in itself mean anything other than "stuff" as an uncountable
20:51:20 <oklopol> like, as a singular? "es gab Zeug da" or something?
20:51:31 <oklopol> that doesn't sound right.
20:51:59 <oklopol> singular isn't the correct term...
20:52:10 <Deewiant> uncountable. :-P
20:52:11 <oklopol> like milch and wasser and the like.
20:52:12 <oklopol> yeah
20:53:17 <Deewiant> "uncountable." » "like, singular? no, that's not right." » "uncountable". » "yeah"
20:53:29 <oklopol> lol
20:53:33 <oklopol> i missed that, sorry :P
20:53:44 <oklopol> stopped reading after "stuff"
20:53:52 <oklopol> for some reason
20:55:23 <oklopol> well anyway, i haven't seen it used as an uncountable
20:55:47 <oklopol> but, i'd say it's the "kalu" in "työkalu".
20:55:49 <Deewiant> that's the only way I've seen it used alone
20:55:53 <oklopol> it's like a thingie.
20:55:55 <Deewiant> well, sorat
20:55:59 <Deewiant> s/at/ta/
20:56:16 <Deewiant> but you don't have "ein Zeug".
20:56:21 <Deewiant> you have "Zeug".
20:56:38 <oklopol> maybe so.
21:00:34 <oklopol> (google gives "das Zeug" as the first sensical result)
21:01:02 <Deewiant> yep, and that's uncountable. Or a meaning I'm unaware of. :-P
21:01:45 <oklopol> i didn't even read context, but hmm right, that's true :D
21:02:05 <oklopol> i'm trying to do other stuff here, really end up doing nothing at all.
21:03:23 <fizzie> Zoinks.
21:06:53 <oklopol> now Deewiant, how come we keep ending up in arguments about language? i mean, i don't even care about language!
21:07:11 <Deewiant> Then don't talk about it ;-)
21:07:18 <fizzie> I have a feeling I've been the cause of at least some of those.
21:08:04 <ais523> time to go home, anyway
21:08:07 <ais523> bye everyone
21:08:16 <Deewiant> o/
21:08:18 <oklopol> bye
21:08:29 <fizzie> Wave-wave.
21:08:40 <oklopol> Deewiant: I DON'T THINK O/ IS ACTUALLY ENGLISH
21:08:48 * oklopol leaves! ->
21:09:06 <fizzie> Gneh, my Tampere train leaves in ten hours, and I'm still lacking slides for a presentationationary thing. :/
21:09:07 <Deewiant> oklopol: I don't think -> is
21:09:23 <fizzie> Yes, according to people here "->" is a very Finnish thing.
21:09:51 <oklopol> Deewiant: in fact, in my opinion... nevermind
21:10:05 <Deewiant> :-)
21:24:34 <AnMaster> hm
21:24:54 * AnMaster wonders what would happen if an (email) bounce message would bounce
21:25:04 <AnMaster> would it stop bouncing after a while or just continue?
21:25:43 <fizzie> Double-bounces aren't usually sent out.
21:26:42 <fizzie> Postfix at least has a feature to deliver double-bounces to the postmaster account; I'm not sure if it even does that by default.
21:28:41 <fizzie> I think with the default configuration Postfix sends bounce messages using a suitable SMTP envelope address so that if the bounce bounces, it will be just discarded.
21:30:02 <fizzie> Still, I'm sure there are numerous people who have managed to configure infinite email loops.
21:30:39 <fizzie> "grep -c TODO" gives me the number 11 for my LaTeX file. :/
21:31:49 <AnMaster> fizzie, ouch
21:32:02 <AnMaster> fizzie, better hurry up then
21:32:35 <fizzie> I should be packing up things and all that fluff, too.
21:33:05 -!- puzzlet_ has quit (Remote closed the connection).
21:33:10 -!- puzzlet has joined.
21:34:10 -!- jix_ has joined.
21:34:16 -!- LinuS has joined.
21:43:46 -!- jix__ has joined.
21:45:39 -!- MizardX- has joined.
21:45:46 -!- MizardX has quit (Nick collision from services.).
21:45:50 -!- MizardX- has changed nick to MizardX.
21:48:43 -!- jix__ has quit (Read error: 60 (Operation timed out)).
21:53:00 -!- jix has quit (Read error: 113 (No route to host)).
21:58:05 -!- jix_ has quit (Read error: 110 (Connection timed out)).
22:04:10 -!- Corun has joined.
22:07:10 -!- warrie has joined.
22:15:06 -!- LinuS has quit ("Puzzi. S, parlo proprio con te. Puzzi.").
22:22:22 -!- Asztal_ has joined.
22:24:25 -!- Asztal__ has joined.
22:25:45 -!- Asztal___ has joined.
22:28:46 -!- Asztal____ has joined.
22:30:13 -!- Asztal_____ has joined.
22:30:31 <Asztal_____> wow... 5 clones of me
22:30:39 <Asztal_____> worst ISP ever
22:33:21 -!- Asztal has quit (Nick collision from services.).
22:33:26 -!- Asztal_____ has changed nick to Asztal.
22:36:27 -!- kar8nga has left (?).
22:42:53 -!- Asztal_ has quit (Read error: 110 (Connection timed out)).
22:43:16 -!- Asztal__ has quit (Read error: 110 (Connection timed out)).
22:44:46 -!- Asztal___ has quit (Read error: 110 (Connection timed out)).
22:47:58 -!- Asztal____ has quit (Read error: 110 (Connection timed out)).
22:48:35 -!- psygnisfive has quit (Remote closed the connection).
23:03:37 -!- KingOfKarlsruhe has quit (Remote closed the connection).
23:46:06 -!- MizardX has quit (Read error: 54 (Connection reset by peer)).
23:46:11 -!- MizardX- has joined.
23:46:13 -!- MizardX- has changed nick to MizardX.
23:46:23 -!- Corun has quit ("This computer has gone to sleep").
23:48:25 -!- olsner has quit ("Leaving").
23:54:27 -!- jix has joined.
←2008-11-18 2008-11-19 2008-11-20→ ↑2008 ↑all