00:05:32 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
00:05:36 -!- UpTheDownstair has joined.
00:05:46 -!- UpTheDownstair has changed nick to nazgjunk.
00:27:46 <bsmntbombdood> I have a great urge to do something incredibly esoteric with pointers right now
00:30:41 <SevenInchBread> not much you can do with an integer pointer to make it esoteric... floating point, imaginary, rational?
00:31:05 <bsmntbombdood> The actual pointer doesn't have to be esoteric, just its use
00:31:38 <SevenInchBread> that points to an integer, which becomes to pointers new value.
00:31:51 <sebbu> SimonRC, watching what ?
00:32:22 <SevenInchBread> well... it gives you some moderate form of control flow.
00:32:52 <SimonRC> the eclipse is nearly over now
00:33:43 <SimonRC> bsmntbombdood: you can use pointers as your only primitive type?
00:33:56 <SimonRC> actually, make that cons cells as your only primitive type
00:34:11 <SimonRC> nil is a cons cell that points to itself twice
00:35:23 <SimonRC> a number might become a listy-kinda thing
00:35:49 <SimonRC> with clever sharing, a number could easily be a tree with NILs at the leaves
00:36:08 <SevenInchBread> so then concatenation of the trees would be like addition.
00:36:50 <SimonRC> 1 = a pair of differnt NILs
00:36:55 <SimonRC> or maybe that would be 1 and 2
00:37:10 <SimonRC> 2 would be two pointers to the same copy of 1
00:37:21 <SimonRC> 3 would be a pointer to one and 2
00:37:30 <SimonRC> I am sure you can think of a way
00:37:52 <SevenInchBread> (cons (cons (cons (cons (cons nil))))) ...5, and then use the properties of lists to do arithmetic.
00:38:26 <SevenInchBread> ... just assume all of those have nill on them or whatever :P
00:38:56 <SimonRC> because all pointer have to be valid
00:39:15 <SimonRC> actually, you can do this a better way...
00:39:27 * SimonRC searches for the thing he needs
00:39:58 <SevenInchBread> yeah, I'm pretty sure nil is a null pointer by itself.
00:40:20 <SevenInchBread> not a pointer to nils... that's a recursive definition and you'd never be able to end a list. :)
00:40:32 <bsmntbombdood> if the value of a node is the sum of its children...
00:41:01 <SimonRC> here we go: http://www.cs.st-andrews.ac.uk/~eb/writings/bignums.ps
00:41:07 <SimonRC> "Every Number Has At Most Two Digits"
00:42:26 <SimonRC> just tell your viewer to turn it the right way up
00:42:34 <SevenInchBread> 0 = nil 1 = (0 nil) 2 = (1 nil) 3 = (2 nil) 4 = (3 nil) etc
00:44:15 -!- thematrixeatsyou has joined.
00:44:37 -!- GreaseMonkey has quit (Nick collision from services.).
00:44:44 -!- thematrixeatsyou has changed nick to GreaseMonkey.
00:45:57 <SimonRC> bsmntbombdood: basically, a number is either: all zero or first half zero + second half non-zero, or first half non-zero + second half anything.
00:47:10 <SimonRC> ah, that's the magic type theory notation
00:47:21 <SimonRC> it comes from the types-as-proof-specifications thingy
00:47:58 <SimonRC> the things on top are the data and types you start off with, and the bit at the bottom is the data or type that you can construct
00:48:19 <SimonRC> it's not really much beyond Haskell's GADTs
00:48:55 <SevenInchBread> I really wish OSes had some easy way for languages to easily communicate without whole processes.
00:49:04 <SimonRC> if we represent a zero in either half as a pointer to the cons cell itself, we have a high-efficiency representation not only for small numbers, but also for sparse bit vectors (if we are clever when the first half is non-zero and the second half is zero).
00:49:43 <SimonRC> If we are not clever in that latter case, we get an efficient notation for small numbers but not for all sparse ones
00:49:59 <SimonRC> SevenInchBread: it's called "threads"
00:50:10 -!- oerjan has joined.
00:50:19 <SevenInchBread> ...I've never actually figured out what threads are...
00:50:32 <SimonRC> like processes, but they share an address space
00:50:49 <bsmntbombdood> http://en.wikipedia.org/wiki/Image:PM1%2B1%3D2lemma.jpg
00:51:36 <SimonRC> nonono, I mean they share a heap and globals between them
00:52:17 <SevenInchBread> yeah... they share a heap... so in order to communicate they need to alter data on the heap yeah?
00:53:02 <SimonRC> of course, properly you should not share address space without a proper shared-address-space system. Channels from Erlang are good, STM from Haskell is good, even though they got it from the database world, and locks and monitors suck with a suckage of several Lovelace.
00:53:14 -!- sebbu has quit (Client Quit).
00:53:45 <SimonRC> Channels are good if you know how the data will flow, and STM (transactions) is good if you don't care much about the exact order updates happen.
00:54:29 <SimonRC> STM has a horrible overhead sometimes, but it is still a win if it lets you use 8 cores rather than 1.
00:56:26 <bsmntbombdood> pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine)(void *), void *arg);
00:56:49 -!- jix__ has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
00:57:21 <SimonRC> Then you give up and write it in a language with some actual concurrency *support* rather than a concurrency *burden*.
01:00:04 <SimonRC> like I said, C=bad for this
01:00:35 * oerjan wonders if you could do reverse pointers - like COME FROM.
01:01:06 <SimonRC> you might be able to do some dreadful hashing trick
01:01:15 <oerjan> in INTERCAL, but that is for program flow.
01:01:37 <SimonRC> some Fortrans had an "AT", which was like a COME FROM
01:01:54 <SimonRC> and of course COME FROM is back in fasion with the emergence of AOP.
01:06:11 <fizzie> FORTRAN's DO loop is somewhat come-from-y, since you just give the line number where the loop ends, and there's nothing at that line marking the end of the loop. (Most people would probably stick a CONTINUE statement there, though.)
01:06:35 * SimonRC lols at the "reverse-find" algorithm
01:07:23 <SimonRC> It's complexity bound has possibly the world's slowest-growing function that tends to infinity and is yet useful for something.
01:07:41 <SimonRC> it contains the inverse of the ackermann function
01:09:28 <oerjan> hm... googling reverse-find + ackermann gives me nothing
01:09:55 <oerjan> or more precisely, one page in Hebrew.
01:10:11 <oerjan> which is about equivalent. :)
01:11:22 -!- ihope_ has joined.
01:11:34 <ihope_> ~ctcp #esoteric ACTION ACTION ACTION
01:11:51 <oerjan> SimonRC: That was supposed to be a hint to get a URL, btw :)
01:12:01 <ihope_> ~exec self.raw("PRIVMSG #esoteric :\001ACTION ACTION\001")
01:12:10 <SimonRC> http://www.scottaaronson.com/writings/bignumbers.html
01:17:36 <ihope_> ~exec self.raw("PRIVMSG #esoteric :Foobar\001")
01:17:48 <ihope_> ~exec self.raw("PRIVMSG #esoteric :Foo\001ACTION bar\001")
01:18:19 <ihope_> My client failed to display that one.
01:18:40 <oerjan> Mine too. Not quite RFC-compliant.
01:19:07 <oerjan> But then the RFC doesn't seem very useful in this case.
01:20:07 <oerjan> did anyone see it properly?
01:20:35 <oerjan> (I.e. Foo and bar on separate lines, the last as an emote)
01:22:26 <ihope_> Is it supposed to do that?
01:22:34 <ihope_> Mine didn't show it at all.
01:22:42 <ihope_> ~exec self.raw("PRIVMSG #esoteric :\001ACTION bar\001"Foo)
01:22:50 <ihope_> ~exec self.raw("PRIVMSG #esoteric :\001ACTION bar\001Foo")
01:22:59 <ihope_> Didn't see that either.
01:23:27 <oerjan> That one came out as an emote to me, but with an \A inside.
01:23:30 <ihope_> ~exec self.raw("PRIVMSG #esoteric :foo\001bar\001\r\nPRIVMSG #esoteric :\001bar\001foo")
01:23:45 <ihope_> I didn't see anything there either.
01:24:06 <oerjan> you mean you saw absolutely nothing?
01:24:30 <ihope_> I didn't realize bsmnt_bot replied at all until I read the logs.
01:25:00 <ihope_> ~exec self.raw("PRIVMSG #esoteric :foo\001\001bar")
01:25:07 <ihope_> ~exec self.raw("PRIVMSG #esoteric :foo\001\001")
01:25:15 <ihope_> ~exec self.raw("PRIVMSG #esoteric :\001\001bar")
01:25:34 -!- ihope_ has quit ("Reconnecting...").
01:25:48 -!- ihope_ has joined.
01:25:59 <oerjan> it seems my client uses the first character to decide whether it is an emote, but then ignores anything inside.
01:26:05 <ihope_> ~exec self.raw("PRIVMSG #esoteric :\001\001bar")
01:26:35 <oerjan> bsmnt_bot [i=gavin@abacus.kwzs.be] requested unknown CTCP Abar from #esoteric:
01:26:45 <ihope_> ~exec self.raw("PRIVMSG #esoteric :\001\001")
01:27:10 <ihope_> ~exec self.raw("PRIVMSG #esoteric :\001ACTION throws a \001 at ihope_\001")
01:27:19 <ihope_> ~exec self.raw("PRIVMSG #esoteric :\001\001\001")
01:28:06 <oerjan> (I am using \A for inverted A on my screen)
01:28:18 <ihope_> === Unknown CTCP [\0x01] () from bsmnt_bot
01:28:41 <oerjan> that seems standard-compliant, at least.
01:29:27 <oerjan> it should have been unknown CTCP "" followed by a single \A in a message, I think.
01:30:03 <oerjan> anyhow, the conclusion is that you can count on \A working only at the ends of messages.
01:30:43 <ihope_> It looks to me that if there's more than one \1 in a message, it fails to show.
01:30:52 <ihope_> Naturally, our clients are different...
01:30:57 -!- GreaseMonkey has quit (Read error: 60 (Operation timed out)).
01:31:22 <ihope_> Do most clients implement CTCP as "if it starts with \1 and ends with \1 then the first word of what's in between is the command and everything else is the parameters"?
01:31:40 <oerjan> mine seems to only look at "starts with \1"
01:32:24 <ihope_> Maybe #tapthru would be a better place to ask...
01:34:12 <oerjan> it occurs to me that it is reasonable to ignore multiple CTCPs, since they could be used to flood your screen.
01:48:14 <oerjan> anything in particular?
01:49:38 <oerjan> eh, the pages aren't numbered
01:51:00 <oerjan> oh. i don't think we are reading the same URL...
01:51:16 <bsmntbombdood> http://www.cs.st-andrews.ac.uk/~eb/writings/bignums.ps
01:51:56 -!- manveru has left (?).
02:16:43 -!- nazgjunk has quit ("Leaving").
02:23:52 -!- GreaseMonkey has joined.
02:28:52 -!- ihope_ has changed nick to ihope^.
02:32:13 -!- ihope^ has changed nick to ihope_.
02:43:37 <SimonRC> the solution is the Use a parser-generator or a monadic parsing library
02:44:11 <SimonRC> the latter give you unbelievably awful code but you never have to look at it.
02:44:38 <SimonRC> the latter give you nice lear code, though it might be fiddly to use sometimes
02:49:45 <SevenInchBread> I'm just using a... class-with-some-event-methods approach.
02:52:38 <oerjan> hm... do the methods correspond to tokens of the grammar?
02:53:34 <oerjan> otherwise you might indeed end up messy, if you try to make it input-driven rather than grammar-driven.
02:55:20 <oerjan> but recursive descent can be simple if the grammar is suitable for it.
02:57:59 <SimonRC> predictive is trivial even in Pascal
03:04:18 <SevenInchBread> this part of it is building the AST by just finding literal characters and reacting to them.
03:09:14 -!- GreaseMonkey has quit (Nick collision from services.).
03:09:20 -!- thematrixeatsyou has joined.
03:13:54 <oerjan> the typical way is to make the parser call the input routines rather than the other way around.
03:14:25 <oerjan> and to let the parser branch and do recursive calls to sub-parsers based on what was read.
03:15:07 <SevenInchBread> oooh... I've got a really good way to implement that...
03:15:59 <oerjan> (sometimes it would be useful to recurse even before anything was read)
03:16:15 <oerjan> like with operator precedence.
03:17:06 <oerjan> oh, and usually you need lookahead for input, since sub-parsers and post-parsers may need to look at a token again.
03:17:31 <SevenInchBread> yeah... I used that... having a readuntil() makes things way less messy. :)
03:19:35 <oerjan> incidentally the parser generators mentioned before are input-driven, and as SimonRC said, the resulting code is horribly messy (but efficient)
03:20:50 <SevenInchBread> well... that's a bad demostration of it... since it just shows thei internals... lemme find where I used it.
03:21:02 <oerjan> being based around a constructed finite automaton which few would want to create by hand.
03:22:18 <SevenInchBread> basically you give it a coroutine that yields output and will be sent input.
03:23:06 <SevenInchBread> if it yields a string, the string if outputted... if it yields another coroutine, it'll make that coroutine the "sub-reader" for as long as its active..
03:24:14 <SevenInchBread> you'd need to modify the concept some... but it could effectively be the basis for a parser.
03:24:59 <oerjan> except that it is the coroutine that is the real parser.
03:25:51 <SevenInchBread> you could have the parser do an event-based call thing... and take the return value of the callback as its yield.
03:26:07 <oerjan> so this is exactly the opposite of what i suggested.
03:26:26 <oerjan> if you let the parser do the calling, you don't need coroutines.
03:28:06 <oerjan> ok to be more precise: if you let the parser do the calling and let the result be passed as the return value of the call.
03:31:19 -!- calamari has joined.
03:34:42 <ihope_> I suddenly want to see the results of one of those "uptime games" in this channel.
03:34:52 <ihope_> Voice everybody, see who stays voiced the longest.
03:35:09 <ihope_> And hope the network doesn't catastrophic(al)ly fail.
03:35:15 <calamari> wouldn't be me.. I shut down every night
03:35:46 <ihope_> Who'd last the longest?
04:01:34 -!- GreaseMonkey has joined.
04:01:50 -!- thematrixeatsyou has quit (Nick collision from services.).
04:31:28 <bsmntbombdood> 9:28PM up 83 days, 4:38, 1 user, load averages: 0.10, 0.09, 0.08
04:37:54 -!- oerjan has quit ("leaving").
04:52:15 -!- GreaseMonkey has quit (Nick collision from services.).
04:52:33 -!- GreaseMonkey has joined.
05:44:17 -!- ihope_ has changed nick to ihope.
06:18:43 -!- calamari has quit ("Leaving").
07:43:48 -!- GreaseMonkey has quit (Read error: 110 (Connection timed out)).
07:50:35 -!- RodgerTheGreat has quit.
07:55:22 -!- RodgerTheGreat has joined.
07:55:34 -!- RodgerTheGreat has quit (Client Quit).
07:56:32 -!- RodgerTheGreat has joined.
07:56:44 -!- RodgerTheGreat has quit (Client Quit).
07:57:15 -!- RodgerTheGreat has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:05:35 -!- ShadowHntr has quit (Read error: 110 (Connection timed out)).
08:15:06 -!- helios24 has joined.
09:13:24 -!- wooby has joined.
09:22:30 -!- Sukoshi has joined.
09:28:14 -!- sebbu has joined.
09:45:10 -!- sebbu2 has joined.
10:04:18 -!- sebbu has quit (Connection timed out).
10:13:58 -!- ShadowHntr has joined.
10:22:37 -!- Sukoshi has quit ("ERC Version 5.1 (CVS) $Revision: 1.796 $ (IRC client for Emacs)").
10:29:04 -!- wooby has quit.
10:42:05 -!- ihope_ has joined.
10:45:45 -!- nazgjunk has joined.
10:47:15 -!- cmeme has quit (Remote closed the connection).
10:59:39 -!- ihope has quit (Read error: 110 (Connection timed out)).
11:06:56 -!- cmeme has joined.
12:03:18 -!- ShadowHntr has quit ("End of line.").
12:12:22 -!- jix__ has joined.
12:43:16 -!- Sukoshi`` has quit (Read error: 110 (Connection timed out)).
12:46:11 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
12:46:43 -!- nazgjunk has joined.
13:04:16 -!- jix__ has changed nick to jix.
13:08:43 -!- tgwizard has joined.
13:12:01 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
13:28:28 -!- nazgjunk has joined.
13:31:49 -!- sebbu has joined.
13:47:10 -!- nazgjunk has quit ("Leaving").
13:51:13 -!- sebbu2 has quit (Read error: 110 (Connection timed out)).
14:22:57 -!- ihope_ has quit (Connection timed out).
14:28:02 -!- nazgjunk has joined.
15:01:10 -!- nazgjunk has quit ("Leaving").
15:02:18 -!- helios24 has quit ("Leaving").
15:15:19 -!- nazgjunk has joined.
15:34:41 -!- oerjan has joined.
16:11:45 -!- tgwizard has quit (Connection timed out).
16:12:15 -!- tgwizard has joined.
16:16:03 <oerjan> you better get it changed then.
16:25:45 -!- nazgjunk has quit (Read error: 54 (Connection reset by peer)).
16:27:52 -!- nazgjunk has joined.
16:28:19 <oklopol> yeah... just had to read the logs first
16:28:27 -!- oklopol has left (?).
16:28:31 -!- oklopol has joined.
16:28:52 * oklopol enjoys his brand new window <3
16:31:01 <oerjan> is it made with Glass?
16:31:25 <oerjan> indeed, why doesn't Glass have a window system?
16:31:33 <oklopol> yep, wondering the same thing
16:31:49 <oklopol> it should have a lot of inbuilt window stuff
16:33:10 <RodgerTheGreat> it'd be poor object-oriented design. Windows should extend glass, adding special properties, while Glass is a more general case, also extended by classes like PetriDish and MagnifyingGlass
16:34:07 <oerjan> the windows system has to be made out of Glass, not just written in C++.
16:36:43 <RodgerTheGreat> it'd be difficult to make anything mechanical entirely out of glass
16:39:11 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
16:39:44 -!- nazgjunk has joined.
16:41:09 -!- nazgjunk has quit (Read error: 54 (Connection reset by peer)).
16:41:17 <oerjan> right... we need an F class for fibers.
16:41:56 -!- nazgjunk has joined.
16:49:28 <oklopol> are fibers just faster threads?
16:49:56 <RodgerTheGreat> they also have less overhead, I believe, unless that's what you mean by "faster"
16:52:12 -!- UpTheDownstair has joined.
16:53:00 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
17:06:08 -!- UpTheDownstair has quit (Read error: 104 (Connection reset by peer)).
17:06:47 -!- UpTheDownstair has joined.
17:07:49 -!- UpTheDownstair has quit (Read error: 54 (Connection reset by peer)).
17:08:14 -!- UpTheDownstair has joined.
17:11:11 -!- UpTheDownstair has quit (Read error: 104 (Connection reset by peer)).
17:16:06 -!- nazgjunk has joined.
17:38:13 -!- digital_me has joined.
17:59:18 -!- SevenInchBread has quit (Read error: 104 (Connection reset by peer)).
18:11:05 -!- digital_me has quit ("Lost terminal").
18:26:03 -!- helios24 has joined.
18:32:58 -!- ShadowHntr has joined.
18:39:24 -!- goban has quit (Read error: 104 (Connection reset by peer)).
18:39:39 -!- goban has joined.
18:45:34 -!- helios24 has quit ("Leaving").
18:48:42 -!- helios24 has joined.
18:56:01 -!- jix__ has joined.
18:59:54 -!- jix has quit (Nick collision from services.).
18:59:56 -!- jix__ has changed nick to jix.
19:23:28 -!- kxspxr has joined.
19:24:27 -!- kxspxr has quit (Client Quit).
19:27:00 -!- pgimeno has left (?).
19:35:45 -!- ihope has joined.
19:35:53 <ihope> ~ctcp #esoteric Foo
19:37:25 <jix> ~ctcp #esoteric Version
19:37:42 <jix> ~ctcp #ruby-de Version
19:38:56 <ihope> ...I could have just used /names, eh?
19:55:27 <oerjan> hint: add bounds checks
19:55:30 <bsmntbombdood> it segfaults at cur = code[state.pc], saying "Cannot access memory at address &cur"
19:55:39 * SimonRC sends oerjan to get the keys to the spin-lock.
19:56:31 <oerjan> now that does sound strange
19:56:50 <oerjan> maybe cur is the result of a cast?
19:56:59 <SimonRC> And while you're there, could you kill the idle process?
19:57:46 <SimonRC> Sorry, I've just been reading about fictional objects and tasks that noobs are sent to fetch/do.
19:58:09 <SimonRC> bsmntbombdood: some architectures pass structs by reference in C.
19:58:15 <SimonRC> I have read about such things.
19:58:27 -!- SevenInchBread has joined.
19:58:43 <SimonRC> But you'd only be able to break that by writing an ill-typed program.
20:00:17 <ihope> Wait... is this Python or no?
20:00:22 * SimonRC asks bsmntbombdood to find out the password for the root window.
20:00:47 <oerjan> have you set any strange options?
20:01:31 <SimonRC> (The root window in X Windows is "root" in the graph theory sense, not like the "root user".)
20:02:04 * SimonRC asks ihope to fetch an optical mouse ball from the cupboard.
20:02:17 <SimonRC> sorry, i am having an attack of silly creativity.
20:03:32 <oerjan> what other variables are broken?
20:03:49 <SevenInchBread> hmmm... bugSophia actuallys looks pretty fun... I should implement it.
20:04:33 <SimonRC> maybe your linker fucked up
20:08:47 <oerjan> immediately, or does it go throught the loop?
20:09:42 <oerjan> what happens if you make cur global?
20:11:39 -!- ShadowHntr has quit ("End of line.").
20:12:39 -!- helios24 has quit ("Leaving").
20:25:34 -!- oerjan has quit ("leaving").
20:28:06 * jix is writing a compiler
20:28:13 <jix> but it's for a non esoteric language
20:28:17 <jix> so it's a bit offtopic
20:28:38 <oklopol> i just coded a working game ai in python
20:28:56 <jix> how could that happen?!
20:29:13 <oklopol> i opened the file and it loaded a 4 hour old version
20:29:28 <oklopol> maybe python doesn't save on alt-f-s
20:30:08 <oklopol> hmm... maybe i'll rewrite it... what could be more fun
20:30:17 <jix> uhm how could python save?
20:30:51 -!- sebbu2 has joined.
20:31:27 <jix> i'm writing my compiler using test driven development
20:31:55 <oklopol> i don't really feel like coding anymore... i'll go kill myself or something ->
20:32:04 <jix> oklopol: nah don't do that
20:32:26 <jix> oh and i don't have a girlfriend anymore!
20:32:41 <jix> oklopol: you have one?
20:32:47 <jix> i got one a month ago
20:33:08 <jix> so you know what will happen to you in a month
20:33:10 <oklopol> i don't agree with your "prefer spending time with her over programming" though
20:33:42 <ihope> oklopol: you'll turn into jix, of course.
20:33:45 <ihope> You know German, right?
20:33:54 <lament> If not, you have a month to learn it.
20:34:05 <ihope> And to move to Germany.
20:34:16 <ihope> Or at least proxy through Germany, or something.
20:34:29 <jix> oklopol: no i don't hope those things will happen to me... i got really depressed and everything before we decided to uhm ... "break up" (sais my dictionary)
20:34:30 <oklopol> hmm... i'm not sure if that's what jix was about to say
20:35:05 <ihope> SevenInchBread: is it always done in COBOL?
20:35:06 <jix> *will happen to you
20:35:22 <oklopol> jix i'm not that social... i think i'll manage a break-up
20:35:33 <jix> oklopol: no the break-up wasn't the problem
20:35:46 <SevenInchBread> but... taking 3 hours to type out the (truncated) 99 bottles of beer song in a language that doesn't even have an implementation... is the kind that gets me excited.
20:35:47 <jix> the time before that
20:35:57 <jix> 1.5 weeks before that
20:36:15 <lament> one would think being social makes it _easier_ to manage a break-up
20:36:31 <oklopol> hmm... social is not the word
20:39:34 <jix> well but now i have time to code :)
20:40:41 <oklopol> i'm pretty furious now, fuck this
20:43:29 -!- sebbu3 has joined.
20:50:26 -!- sebbu has quit (Connection timed out).
21:02:02 -!- sebbu2 has quit (Read error: 110 (Connection timed out)).
21:34:32 -!- goban has quit (Read error: 104 (Connection reset by peer)).
21:34:37 -!- goban has joined.
21:42:47 -!- goban has quit (Read error: 104 (Connection reset by peer)).
21:43:02 -!- goban has joined.
21:50:04 <SevenInchBread> mmm... http://esolangs.org/wiki/BugSophia#99_bottles_of_beer_.28truncated_lytics.29 <--coolest looking 99BoB ever.
21:54:37 <bsmntbombdood> Can't figure out how to return values from subroutines
21:56:19 <SevenInchBread> I've never figured out what a vm was other than some kind of abstract-assembly type thing.
21:57:09 <SevenInchBread> either way... your system architecture needs to be able to work with the vm... so I don't get how it's any better than without it. :P
21:58:45 <SevenInchBread> that's supposed to be the advantage of a VM right? You don't need to be compatable with the architecture underneath.
21:59:34 <SevenInchBread> hmmm.... once I make a bS interpreter... I should give it a count mode so that it'll keep track of how many "threads" were created during execution.
22:00:37 <SevenInchBread> they're not really threads to the OS... but they work concurrently...
22:04:07 <oklopol> i remade the ai :DDDDDDDDDDDDDDDDDD
22:04:16 <oklopol> was a 20 min job on the second attempt :P
22:04:32 <SevenInchBread> bsmntbombdood, but doesn't the VM have to be compatable with the architecture?
22:04:45 <SevenInchBread> -nod- things are way easier once you know how you're going to do them. :)
22:05:24 <SevenInchBread> let's see.... the minimum amount of threads the 99 bottles program would create is....
22:06:32 <bsmntbombdood> SevenInchBread: The point of a vm is to play with it's assembly language
22:06:44 <bsmntbombdood> It's nothing more than an implementation of a language
22:08:00 <SevenInchBread> (25 * 99) for the strings.... 1 for the counter... and 1 + (27 * 99) for the main loop
22:08:11 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
22:09:29 <SevenInchBread> 2 + (52 * 99) ...mmm, -opens up Python to do the next bit-
22:11:31 <bsmntbombdood> zomg, that's the sum of all numbers below 100, + 200
22:13:30 -!- goban has quit (Read error: 104 (Connection reset by peer)).
22:13:39 -!- goban has joined.
22:20:36 <SevenInchBread> oklopol, What kind of ai? I admit I'm a little curious... I wouldn't know where to begin with ai.
22:20:51 -!- sebbu has joined.
22:21:46 <oklopol> the game's rules are somewhat complicated... i took the short road
22:22:27 <oklopol> just a board game by me and a friend... would have rules online, but once again in finnish
22:22:28 <SevenInchBread> brute force... that's where the ai simply simulate every possible situation that could occur and determine which is best?
22:23:12 <oklopol> you can specify it for the
22:23:32 <oklopol> but, the problem is never depth, it's width
22:24:15 <SevenInchBread> O think a fun game to play would be like "befunge hockey chess"... where you have two goals and take turns placing befunge characters on the field inbetween instruction ticks or something.
22:24:45 <oklopol> because a human will easily recognize it does not matter in which order he does some 20 moves... while it's very hard to make the computer do the same
22:24:54 <SevenInchBread> and try to be the first to complete the specified object and output the results to your output stream. :)
22:25:27 <oklopol> the game is kinda sick, every turn means putting a piece on the board and doing a lot of recursive jumping...
22:25:53 <oklopol> i wish i had irl friends who could program befunge...
22:26:25 <SevenInchBread> could rig up some over-the-network thing with a basic GUI
22:26:38 <oklopol> yeah, actually not that hard
22:26:45 <oklopol> do it and well have fun together ;D
22:27:21 <SevenInchBread> ...I really don't want to have to swap IP addresses... not for security or anything... I'm just really lazy
22:34:14 -!- UpTheDownstair has joined.
22:34:35 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
22:35:30 -!- UpTheDownstair has changed nick to nazgjunk.
22:40:12 -!- sebbu3 has quit (Connection timed out).
22:41:55 <oklopol> okay... anybody wanna explain something to me
22:42:27 <oklopol> i made a timeout for my algo, it only does 300000 iterations before terminating
22:42:46 <oklopol> this way i get 35 moves (the algo tries to find the longest combo)
22:43:49 <oklopol> okay, i have no idea why, but i put if iterations>100000 and random.random()<0.1: return combo << a short termination randomly in every 10th recursive call
22:44:23 <oklopol> and suddenly it finds length 50 combos
22:44:58 <oklopol> (i have manually archieved a 15 combo from that starting point :P)
22:46:37 * SevenInchBread got a subdomain... now just needs to figure out how to access it.
22:46:41 <oklopol> actually... it of course does the 300000 iterations anyway, because i just increase the counter when i call the function... so it won't be increased when short terminating
22:47:25 <oklopol> you gotta love it when you get a feeling you should do something no matter if it seems not to make sence... and it doubles the capability of your program
22:48:55 <SevenInchBread> hmm... now I need to find a decent befunge interpret that works incrementally instead of all at once.
22:51:30 * oklopol loves torturing his computer
22:52:11 <SevenInchBread> ...I wonder how terrible of a server my computer makes. :)
22:53:31 -!- tgwizard has quit (Remote closed the connection).
22:53:43 <oklopol> muahaha! two million iterations!
22:54:01 <SevenInchBread> hmmm... usually servers are designed to have a lot of storage space and RAM right?
22:54:17 <oklopol> i don't play with hardware
22:54:21 <oklopol> never seen a computer naked
22:54:35 <SevenInchBread> I doubt you'd design one with high-end graphics cards. ;)
22:55:10 <oklopol> true, might be kinda redundant
22:56:41 <oklopol> i've done 3 semesters of cisco ccna... but i have no idea how to set up a server
23:03:25 <SevenInchBread> a large website would want a lot of disk space... while a search engine would want massive massive hoards of anything good.
23:14:35 <oklopol> kay... a combo of 901 moves... record move is 35 from last night...
23:14:57 <oklopol> i don't think this is such a good training opponent after all -______-
23:25:54 * SimonRC procedes to write a program with a runtime that explodes like ackermann's function.
23:26:11 <SimonRC> It is only for the purpose of writing a proof, though.
23:26:20 <SimonRC> I just need to show something is copmputable.
23:27:03 <SimonRC> nonono, a particular thing
23:27:36 <oklopol> i misread your typo, sorry
23:39:20 -!- oerjan has joined.
23:39:50 -!- nazgjunk has quit ("Leaving").
23:53:03 -!- Asztal has joined.
23:56:02 <oerjan> bsmntbombdood: in general, or in SimonRC's program?
23:56:56 <oerjan> it was invented in order to show that there are functions that can be computed with general recursion but not with primitive recursion.
23:57:39 <SevenInchBread> now I just need to flesh out the GUI and an interpreter thing.
23:58:17 <oerjan> in order to do this, it had to grow at a whopping speed.
23:58:18 -!- RobHu has joined.
23:58:19 <SevenInchBread> in the meantime... I shall turn my domain name into AN AWESOME WEBSITE.
23:58:31 <SevenInchBread> where's a lazy-to-use HTML server program I could use.
23:59:37 <oerjan> Asztal: Here? And did you bring a tent?