←2008-05-06 2008-05-07 2008-05-08→ ↑2008 ↑all
00:02:03 -!- slereah__ has joined.
00:06:21 -!- slereah_ has joined.
00:09:04 -!- olsner has quit ("Leaving").
00:16:23 -!- slereah_ has quit (Read error: 104 (Connection reset by peer)).
00:18:17 -!- sebbu2 has quit ("@+").
00:19:36 -!- slereah__ has quit (Read error: 110 (Connection timed out)).
00:28:49 <ehird> a
00:43:37 -!- Slereah_ has joined.
02:10:06 <ehird> bye for today :)
02:10:28 -!- ehird has quit (Remote closed the connection).
04:54:20 -!- Sgeo has joined.
05:26:51 -!- GreaseMonkey has joined.
05:27:32 <Sgeo> Is it safe to assume everyone in here was a superstar in any and all computer-related classes?
05:28:03 <Sgeo> Hi Firefox-extension
05:34:55 <GregorR> Everyone? Maybe not. Me? Absolutely. X-P
05:35:41 <pikhq> Of course it's not safe to assume that.
05:35:55 <pikhq> You can't be a superstar without having taken computer-related classes of any merit.
05:35:58 <pikhq> :p
05:38:19 <Slereah_> Sgeo : I do okay, but then again, we do number crunching
05:40:05 <Sgeo> Does my Database class at SUNY Farmingdale count as having any merit?
05:43:14 <Slereah_> It's up to you!
05:43:21 <Slereah_> I don't even know what's a database.
06:18:34 -!- GreaseMonkey has quit ("Unisex.").
06:37:28 -!- Sgeo has quit ("Ex-Chat").
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:40:56 -!- Iskr has joined.
09:01:34 <oklopol> shit. you've talked me off the backlog mirc shows :\
09:01:46 <oklopol> a lot can happen during 18 hours of sleep
09:02:18 <oklopol> i think it's pretty safe
09:02:23 <oklopol> to assume that
09:11:46 -!- Corun has joined.
09:32:49 -!- GreaseMonkey has joined.
10:18:01 <oklopol> kemuri seems to be a hard way to print stuff.
10:18:30 <oklopol> not at all interesting
10:19:36 <oklopol> oh, right, you did discuss it
10:22:07 <oklopol> "09:07:11 <Slereah_> It's hard to find new ideas!" <<< about that unbalanced [] thing, you should look at what i did with nopol, two different nested structures with < and >
10:22:37 <oklopol> well, i had " " too, it's really just that i did it in a nice way, not that it's actually hard to do
10:23:01 <oklopol> you could just code an arbitrary number of brackets in "<"+" "*(bracket_id)
10:39:33 <oklopol> a guy on our chan did do /(pok)+/ at some point, but that never got all that popular
10:39:45 <oklopol> 10:12:41 <ais523> pokpokpopokpkopkopokpkopokpokpkopokpokpkopokpkopkopkopokpkopokpkoppokpkopokpokpkpokpokpokpkopko
10:52:55 -!- Corun has quit ("Arr.").
10:58:01 -!- GreaseMonkey has quit ("Unisex.").
11:09:56 <oklopol> i wonder how sensible a language could be made where there is only one type of nesting, and contents of any nested structure could be shuffled without the semantics of the program changing
11:09:58 <oklopol> hmm
11:09:59 <oklopol> well
11:10:17 <oklopol> lisp + role tags
11:10:25 <oklopol> would be a trivial way
11:10:50 <oklopol> ((func #1) (#2 oper) (oper #3))
11:34:05 <oklopol> Slereah_: a database is an unordered set of named tables, which are unordered sets of (at least in practise) ordered tuples, where the places of the tuples are named
11:36:14 <fizzie> Depending on the database, of course; I would say it's more oftener a multiset instead of a plain old set.
11:36:46 <oklopol> the latter, is, indeed
11:37:44 <Slereah_> Said he, six hours later.
11:38:13 <oklopol> well i was asleep when you said it
11:38:41 <oklopol> anyway, you have to know that much about databases, so i had to tell you
11:38:49 <Slereah_> But you've been here for more than two hours D:
11:39:00 <oklopol> i slept for 18 hours, i was here the whole time
11:39:02 <oklopol> oh
11:39:05 <oklopol> well yes
11:39:09 <oklopol> guess what i was doing?
11:39:11 <oklopol> *-?
11:39:17 <Slereah_> Masturbating?
11:39:25 <oklopol> no
11:39:27 <oklopol> guess again
11:39:49 <fizzie> Setting things on fire?
11:39:51 <Slereah_> Masturbating?
11:40:05 <fizzie> Hopefully not a combination of those two activities. Ouch.
11:40:20 <oklopol> getting closer.
11:40:57 <oklopol> or should i say "getting warmer", might just be a finnish idiom
11:41:42 <oklopol> the correct and obvious answer is i was reading the 18 hours logs
11:42:26 <Slereah_> Is what we're saying that fascinating
11:43:59 <oklopol> getting warmer has to do with this game where you are trying to find an object, and the hider tells you "cold"..."hot" at times, according to your position
11:44:01 <oklopol> close = warm
11:44:07 <oklopol> well, or hot
11:44:39 <Slereah_> It exists here as well.
11:44:44 <Slereah_> And in Amurrica
11:45:34 <oklopol> during the game i was always mostly concerned with how the game could ever be perceived as interesting when you would just slowly approach the object
11:45:44 <oklopol> nowadays i know it actually *isn't* interesting
11:46:09 <oklopol> sometimes i wish i'd had cleverer parents, wouldn't have wasted my time with other kids :o
11:46:31 <oklopol> i mean, games kids play make no sense
11:48:03 <oklopol> they should be illegalized, and kids should be adviced only to play interesting games like... umm... right, there are none
11:48:25 <oklopol> wise words i say. to the shop i then go ->
11:48:29 <Slereah_> What about tag?
11:48:36 <Slereah_> For a TAG SYSTEM :D
11:51:03 <oklopol> tag can be interesting in an environment with obstacles, but you won't find many irl... also, even then it would mostly be about memorizing the environment, because that gives you a great advantage, and the algorithmic part comes only after that... the problem is this is automatic learning which doesn't really teach a kid to use their memorization skills
11:51:19 <oklopol> and the algorithms are fairly trivial
11:51:30 <oklopol> so basically, it all comes down to being fast.
11:52:02 <oklopol> and i don't care much for physical stuff, except sex, as some might already know
11:52:06 <oklopol> right, shop
11:52:07 <oklopol> ->
12:16:26 <Slereah_> "Unfortunately, the combinatory expressions for interesting combinations of functions tend to be lengthy and unreadable."
12:16:31 <Slereah_> Damn you McCarthy!
12:25:22 <oklopol> lolwut?
13:29:06 <oklopol> okokokokokokokoko
15:07:31 -!- ehird has joined.
15:10:32 -!- ehird has quit (Read error: 104 (Connection reset by peer)).
15:24:52 -!- ehird has joined.
16:38:29 -!- sebbu has joined.
16:42:27 -!- ais523 has joined.
16:44:57 <ais523> ehird: non-automatically-generated hello
16:45:15 <ehird> ais523: hello!
16:45:21 <ehird> i have been pondering my language
16:45:58 <ais523> which one? the interactive fiction language?
16:52:14 <ehird> ais523: yep
16:52:26 <ehird> it's not really an IF language
16:52:29 <ehird> it's modeled around your game
16:52:40 <ehird> the idea is that if it can do something as complex as yours easily, it'll be good for everything else too
16:56:46 <ehird> ais523: i guess what i should do is translate one of your puzzles
16:56:52 <ehird> but I'm not about to read your C code ;)
16:56:59 <ais523> the SMETANA one is probably the easiest to translate
16:57:18 <ais523> and there's nothing hidden in the code, that is you can determine how the program is meant to behave from how it has behaved
16:57:29 <ais523> except for bugs, of course
16:57:38 <ehird> ais523: yes, but i'd have to study it
16:57:39 <ehird> :-)
16:58:00 <ais523> well, you should be able to implement the stairs problem without reference to my code
16:58:03 <ais523> all the data's there
16:58:13 <ais523> and there are only two commands on the steps to deal with, plus NOP
16:58:58 <ehird> ais523: plus nop?
16:59:00 <ehird> how do you nop on it?
16:59:04 <ais523> the top and bottom steps do nothing
16:59:44 <ehird> ah
17:00:16 * ehird studies it from the comfort of his web interface
17:00:40 <ehird> ais523: hm, your brainfuck problem might be simpler to do
17:00:40 <ehird> no?
17:00:53 <ais523> ehird: I would have thought it would have been harder
17:01:05 <ehird> ais523: really? howso? apart from the 'implementing BF' thing
17:01:10 <ais523> because there are all sorts of edge cases like >+[>+] that you have to handle
17:01:20 <ehird> ais523: so just limit the number of steps that a program runs
17:01:30 <ais523> the halting problem's unsolvable, so the things catch fire if the programs run for too long or too far to the right
17:01:42 <ais523> and shake their heads on erroneous input
17:07:51 <ehird> ais523: right
17:07:55 <ehird> not very hard, really
17:08:05 <ais523> it strikes me as much harder than the step problem
17:08:15 <ais523> which is near-trivial to implement
17:08:56 <ehird> talk: statue 1 run
17:08:56 <ehird> statue 1 output: statue 2 run
17:08:56 <ehird> ptr > X: statue burn
17:08:56 <ehird> steps > X: statue burn
17:08:56 <ehird> statue 1 burn and statue 2 burn: win
17:09:07 <ais523> yes
17:09:28 <ais523> oh, and any error (including ptr < 0, unmatched brackets): statue shakes head
17:15:49 <ehird> ais523: ok
17:15:53 -!- ais523_ has joined.
17:15:56 <ehird> ais523: that seems simpler than the stairs to me
17:16:15 <ais523_> I missed much of the conversation, sorry
17:16:19 <ais523_> connection troubles...
17:16:21 -!- ais523 has quit (Nick collision from services.).
17:16:22 <ehird> <ais523> yes
17:16:22 <ehird> <ais523> oh, and any error (including ptr < 0, unmatched brackets): statue shakes head
17:16:22 <ehird> <ehird> ais523: ok
17:16:22 <ehird> * ais523_ (n=ais523@147.188.254.116) has joined #esoteric
17:16:25 -!- ais523_ has changed nick to ais523.
17:17:43 <ais523> ehird: the stairs are fully described as: s resets puzzle, u and d increment/decrement step number, while standing on a goto step goto the step mentioned, then swap according to the step you land on
17:18:03 <ais523> oh, and you need to account for infinite loops too, but so does the Brainfuck
17:18:13 <ehird> ais523: that would be modeled as the right number of 'stair' instances
17:18:17 <ehird> instead of a counter
17:18:17 <ehird> probably
17:18:46 <ais523> it's not like you need a parser or anything, the data is (in the C program) stored as the number of the step to goto or the numbers of the steps to swap
17:18:50 <ehird> damnit i need to come up with syntax ofr events now
17:19:09 <ais523> don't you have @{} already?
17:19:18 <ais523> events are basically that, but not restricted to user input
17:20:21 <ehird> ais523: kind of
17:20:25 <ehird> can't think of a good way to do it though
17:20:26 <ehird> and also
17:20:29 <ehird> @{} overrides
17:20:31 <ehird> events cascade
17:25:45 -!- ais523 has quit (Read error: 104 (Connection reset by peer)).
17:26:14 -!- ais523 has joined.
17:26:36 <ais523> sorry...
17:26:40 <ais523> [Wed May 7 2008] [17:20:37] <ehird> damnit i need to come up with syntax ofr events now
17:26:42 <ais523> [Wed May 7 2008] [17:20:55] <ais523> don't you have @{} already?
17:26:44 <ais523> [Wed May 7 2008] [17:21:04] <ais523> events are basically that, but not restricted to user input
17:26:54 <ais523> and then my connection went down
17:27:07 <ehird> input
17:27:07 <ehird> <ehird> ais523: kind of
17:27:07 <ehird> <ehird> can't think of a good way to do it though
17:27:07 <ehird> <ehird> and also
17:27:07 <ehird> <ehird> @{} overrides
17:27:07 <ehird> <ehird> events cascade
17:27:32 <ais523> oh, all events happen if they have the same trigger
17:27:45 <ais523> is there some way to override instead?
17:30:14 <ehird> ais523: yes, presumably
17:30:20 <ehird> but ... events stacking up just seems logical to me
17:30:30 <ehird> whereas reactions to user input overriding seems logical too
17:30:42 <ehird> if you want something to work in one room you define it in that room
17:30:47 <ehird> and define the base case in the object
17:30:53 <ehird> but when you say 'on X do Y'
17:30:57 <ehird> you don't want to disturb other thing
17:32:31 <ehird> ais523: isn't that intuitive? it is to me
17:32:48 <ais523> yes, it's intuitive
17:33:01 <ais523> interference with other events is also important
17:33:18 <ais523> maybe you could do it like MediaWiki does, where events can cause future events on the same trigger to not happen if they want to
17:33:34 <ais523> and the events would happen in order from most specific to least specific
17:33:46 <ehird> ais523: yes
17:33:48 <ehird> that's the regular model
17:33:57 <ehird> you have a specific 'halt events' return
17:34:04 <ehird> standard stuff
17:34:18 <ehird> so, really, I do need to get seperate syntax for events
17:38:02 <ehird> ais523: the problem with choosing random syntax like @{...} is that you have to justify it and use it to unif ythe rest.
17:46:52 -!- UnrelatedToQaz has joined.
17:47:25 <UnrelatedToQaz> hey all
17:47:32 <ais523> hello
17:47:33 -!- cherez has quit (Read error: 113 (No route to host)).
17:52:33 <ehird> ais523: any event syntax ideas?
17:52:56 <ais523> it should be some character followed by something in braces that describes the event
17:53:16 <ais523> defining event triggers is the problem
17:53:22 <ais523> what sort of things should trigger events?
17:54:17 <ehird> ais523: anything
17:54:23 <ehird> you just trigger it
17:54:32 <ehird> in an object
17:54:36 <ais523> oh, so you have a specific trigger-event command?
17:54:46 <ehird> ais523: more likely syntax, it'll be very common
17:54:51 <ais523> so, for instance, how would you trigger an event on entering a room?
17:55:18 <ehird> ais523: you'd link the event and a function
17:55:22 <ehird> (probably an anonymous one)
17:56:26 -!- cherez has joined.
17:57:20 -!- timotiis has joined.
17:57:36 -!- Sgeo has joined.
17:59:28 <ehird> ais523: i'm thinking maybe:
17:59:42 <ehird> #enter:{|s,e|...}
17:59:45 <ehird> s is the sender
17:59:46 <ehird> e is the vent
17:59:47 <ehird> *event
17:59:53 <ehird> you'd put that in a room
18:00:00 <ehird> in a class you could do
18:00:14 <ehird> the same
18:00:14 <ehird> ais523: and to trigger:
18:00:32 <ehird> #event(a,b,c)
18:00:38 <ehird> ais523: ah, and those get passed additionally
18:00:40 <ehird> so
18:00:42 <ehird> you could hook into that with
18:00:48 <ehird> #event:{|s,e,a,b,c|...}
18:00:59 <ehird> hmm
18:01:01 <ehird> can't be :
18:01:10 <ehird> that's used for object properties
18:01:38 <ais523> "you'd put that in a room"?
18:01:43 <ehird> ais523: yes, in a room definition
18:01:46 <ais523> ah, you mean in the room's command list
18:01:54 <ais523> what would trigger the #enter?
18:01:54 <ehird> ais523:
18:01:55 <ehird> #statue1:talk={|S,E,M| statue2:run(M)}
18:01:58 <ehird> (random example)
18:02:03 <ehird> ais523: and the engine would, probably
18:02:07 <ais523> would you have to define it in the room transition commands everywhere?
18:02:07 <ehird> but there's an example
18:02:15 <ehird> which would require statue1 to send the 'talk' message like this:
18:02:20 <ehird> #$:talk("foo")
18:02:46 <ais523> heh, events as properties of objects
18:03:08 <ehird> ais523: yeah, i'm just kinda inventing stuff here
18:03:53 <ehird> ais523: ooo
18:03:56 <ehird> anonymous events
18:04:14 <ais523> ehird: you're going to end up inventing Smalltalk at this rate
18:04:19 <ehird> #{statue1:burned && statue2:burned}={|S,E,M| }
18:04:22 <ais523> maybe I should just program the game in that
18:04:22 <ehird> ais523: quite
18:04:33 <ehird> ais523: i am halfway to just making a ruby dsl for the IF stuff
18:04:42 <ehird> but that's less fun
18:05:09 <ehird> ais523: and then we can't use % as a comment character
18:05:33 <ais523> oh, you were going to use % as a comment character?
18:05:38 <ais523> I thought you'd decided against that
18:07:16 <ehird> ais523: nah, it's too good to pass up
18:07:26 <ehird> my language is *almost* erlang and prolog
18:07:26 <ehird> :-P
18:08:02 <ehird> ais523: anyway, the pattern i have in my head for events is signal/slot
18:08:08 <ehird> Qt uses it, it's great
18:11:57 -!- timotiis_ has joined.
18:11:57 -!- UnrelatedToQaz has quit ("ChatZilla 0.9.82 [Firefox 3.0b5/2008032620]").
18:13:30 <ehird> So!
18:13:57 <ais523> so what?
18:14:10 <ais523> sorry, couldn't resist
18:14:39 <ehird> ais523: heh
18:21:46 <ais523> anyway, were you intending to say something, or were you just doing the IRC version of a KAL?
18:28:04 <ehird> ais523: i have no idea
18:31:08 <ehird> ais523: suggested solution: Diaiwurncuan Sufuahsnf. Our task is to define this concept and how it relates to the IF language
18:31:39 <ais523> ehird: you'll have to port it from the oko
18:32:13 <ehird> ais523: yes
18:32:26 <ehird> > <- ] >< [ - - - < > < < 3
18:32:29 <ehird> ais523: that is the oko form
18:32:43 <Slereah_> RABBIT!
18:34:45 -!- oerjan has joined.
18:35:51 <oerjan> <ehird> damn you oerjan -- that wiki really is addictive
18:36:05 <oerjan> David-Morgan Mar calls it crack :)
18:36:06 <ehird> <oerjan> <ehird> damn you oerjan -- that wiki really is addictive
18:36:19 <ehird> (can we get a chain going?)
18:36:28 <oerjan> <ehird> (can we get a chain going?)
18:36:31 <ehird> <oerjan> <ehird> (can we get a chain going?)
18:36:32 <oerjan> nope
18:36:36 <ais523> <ehird> <oerjan> <ehird> (can we get a chain going?)
18:36:45 <ehird> DAMNIT OERJAN
18:36:49 <ehird> <ehird> DAMNIT OERJAN
18:37:35 -!- Phenax has quit (Read error: 110 (Connection timed out)).
18:37:50 <ehird> well this is hard
18:38:52 <ehird> ooh, i have an esoteric idea
18:38:54 -!- timotiis has quit (Connection timed out).
18:39:02 <ais523> ehird: what is it?
18:39:19 <ais523> and will I or oerjan be able to name a lang that already does that within a minute?
18:39:22 <ehird> ais523: a webcomic where the script is edited like a wiki, and then at drawing time, the website lets you choose a region of the comic and draw in there
18:39:34 <ais523> OK, that is pretty new
18:39:38 <ehird> so the end thing is a really, really warped version of the wiki-edited script
18:39:42 <ais523> although arguably Mandatory Fun Day was getting like that
18:39:47 <ehird> heh
18:40:08 <oerjan> hm isn
18:40:11 <ehird> ais523: but the background was the same for MFD
18:40:15 <ais523> Wikipedia used to do similar things with stories as part of a sandbox game
18:40:20 <ehird> this would be 100% custom, except maybe with the panels in place
18:40:27 <ais523> but all the sandbox games got purged a while ago, at least the ones which had died
18:40:28 <ehird> it would require no running, really
18:40:31 <oerjan> 't there a page for doing that with Dinosaur Comics? </vague recall>
18:40:42 <ehird> oerjan: not really
18:40:48 <ehird> i'm saying that the WHOLE THING would be done collaboratively
18:40:55 <ehird> by dividing the comment into small blocks which can be claimed and worked on
18:40:58 <ehird> *comic
18:41:07 <ehird> so it all fits together, but in a picasso kind of way
18:41:30 <ais523> [18:41:09] <ehird> ais523: a webcomic where the script is edited like a wiki, and then at drawing time, the website lets you choose a region of the comic and draw in there
18:41:35 <ais523> [18:42:18] <oerjan> 't there a page for doing that with Dinosaur Comics? </vague recall>
18:41:41 <ais523> oerjan: that was more than a minute
18:41:48 <ehird> ais523: and it wasn't even true
18:42:00 <ehird> my idea is, afaik, unique
18:42:34 <oerjan> maybe it's just because i've seen people making parodies of DC which resemble that
18:43:46 <oerjan> i was just trying to think of things that resembled it on the few webcomics i have noticed
18:44:32 <oerjan> DMM has Infinity on 30 Credits which is supposed to be cooperative, and also a randomizer (but no added text) for his own Irregular Webcomic
18:44:47 <ehird> oerjan: infinity on 30 credits let people do their own comics
18:44:52 <ehird> mine wouldn't even have one-panel-per-person
18:45:00 <ehird> it'd be divided into small bits which could be painted on
18:45:06 <ehird> so even one panel would be patchwork
18:45:23 <ais523> I've seen cooperative painting games where each person had a colour of pixel
18:45:36 <ais523> you could set pixels to your own colour, and that was that
18:45:45 <ais523> other people could then change them to eir colour
18:45:56 <ais523> so all changes were mutable
18:45:57 <ehird> ais523: that's a bit more extreme
18:46:02 <ehird> but similar to my idea
18:46:11 <ais523> yes, especially as there was no plan for what the final outcome would look like
18:46:15 <ais523> I haven't seen any get very far, though
18:46:26 <ais523> maybe I should check back some time to see what the results were like
18:46:36 <oerjan> there could be a voting scheme
18:46:39 <ais523> the issue is that the people had to take it in turns to set pixels in the implementation I saw
18:46:54 <ais523> which is a silly idea, but they were trying to embed it inside a computer game so they had no other option
18:48:28 <ehird> oerjan: yes
18:48:33 <ehird> you work on a block
18:48:36 <ehird> people vote for it
18:48:43 <ehird> the highest voting ones get put together
18:48:51 <ehird> basically, the collaborative-script would define each panel
18:49:00 <ehird> and be quite specific - like 'foo to the left', 'bar to the right'
18:49:08 <ehird> so that it will all fit together, and maliciousness can just be voted out
18:49:20 <ehird> so you get a patchwork, surrealist comic with a crazy plot
18:49:22 <ehird> without any work!
18:49:28 <ehird> (apart from implementing it...)
18:51:42 <oerjan> an alternative idea - make each pixel RGB the median of the suggestions for it
18:52:15 <ais523> oerjan: that's better than choosing the mean, but it's still unlikely to come up with a coherent outcome
18:52:50 <ehird> ais523 is right
18:52:56 <oerjan> anyone was hoping for coherence? :D
18:52:58 <ehird> because people will draw thigns in slightly different places
18:53:01 <ehird> and in slightly different ways
18:53:14 <ehird> oerjan: if you look at the comic as it is now before starting and read the plot a lot, then yes, it could come out pretty coherent
18:53:20 <ehird> with voting
18:54:26 <ehird> ais523: worth implementing?
18:55:09 <oerjan> hm perhaps a version control system
18:56:09 <oerjan> wikipedia is down?
18:56:18 <Deewiant> evidentl
18:56:19 <Deewiant> +y
18:56:29 <Sgeo> http://i93.photobucket.com/albums/l65/rustik2/cnnsucks.jpg
18:56:48 <ais523> http://www.thewritingpot.com/wikistatus/ says it's down with a locked database
18:57:01 <ais523> and gives a reason too
18:57:10 <oerjan> Sgeo: o_O
18:57:23 <oerjan> that genuine?
18:57:33 <ais523> yep, Brion's website confirms it
18:57:38 <ais523> https://wikitech.leuksman.com/view/Server_admin_log
18:57:51 <ais523> oh, thewritingpot.com isn't quite official
18:57:59 <ais523> but many experienced Wikipedians know of it
18:58:06 <ais523> and it's updated wiki-style when there's a problem
18:58:57 <Sgeo> Couldn't a vandal screw around with it?
18:59:09 <ais523> #wikipedia tells me that the wiki's mostly up, just one of the servers got the bad change
18:59:26 <ais523> Sgeo: yes, but its recent changes are logged, and they'd likely be reverted back round
18:59:30 <ais523> it hasn't been a problem so far
19:01:25 <ehird> <Sgeo> Couldn't a vandal screw around with it?
19:01:32 <ehird> you take a bad question about wikipedia
19:01:39 <ehird> and change it into a bad question about a wikipedia status monitor
19:01:44 <ehird> bizzare
19:06:39 <ais523> oh, and about the wiki-outage, I just got the following message on the Wikimedia developers mailing list (which I'm subscribed to, although I'm not a developer): "This breaks the site. Overloads the central DB. Reverted."
19:06:59 <ais523> that was by Brion Vibber, the release manager
19:07:05 <ais523> so we know what the problem was now
19:07:23 <Sgeo> What was reverted, exactly/
19:07:35 <ais523> Sgeo: the change that the message reverted to
19:07:52 <Sgeo> What was the problem causing change?
19:07:53 <ais523> s/reverted/refered/
19:07:55 <ais523> r34358
19:08:00 <ais523> which I'll look up if you like
19:08:20 <ais523> the problem is I normally go to them via Wikipedia, and as it's down, I'll have to remember the URL
19:08:48 <ais523> it was this change: http://svn.wikimedia.org/viewvc/mediawiki?view=rev&revision=34358
19:15:25 <ehird> ais523: the problem is that it's even possible to break it like that ;)
19:16:13 <ais523> well, it was a pretty big change
19:16:24 <ais523> and referring to non-existent DB tables will cause all sorts of errors
19:17:13 <ehird> ais523: why is wikipedia running svn HEAD automatically?
19:17:16 <ehird> without testing?
19:17:22 <ais523> ehird: it doesn't run svn HEAD
19:17:35 <ais523> it's synched with it pretty often, though, about once a week and sometimes faster
19:17:50 <ais523> if the devs think something is potentially problematic they test it on test.wikipedia.org
19:18:18 <ais523> however, the bug was in part of the code that's designed to be shared across all Wikimedia sites, it's in the shared authorisation stuff
19:18:28 <ehird> ais523: then why wasn't it tested
19:18:40 <ais523> ehird: probably it was but the bug didn't show up in testing
19:19:15 <ais523> Brion said it overloaded the database; something stupid like checking a nonexistent table on every pageview maybe wouldn't show up in testing but would completely hammer the database in production
19:20:03 <ehird> ais523: so they should stress-test
19:20:27 <ais523> oh well, this sort of thing doesn't happen very often
19:20:45 <ehird> ais523: wikipedia should use mediawiki to manage it
19:20:47 <ehird> and push it in REAL TIME
19:21:03 <ehird> of course then you can disable the revert function so you can't revert the removal of the revert button
19:21:04 <ais523> we need a programming language where you can edit running programs
19:21:07 <ehird> solution: infinite regress wikimedia
19:21:09 -!- helios24 has joined.
19:21:10 <ehird> *mediawiki
19:21:10 <ais523> it would be useful for lots of thing
19:21:13 <ais523> s/$/s/
19:21:35 <ais523> Wikpedia's back up now, anyway
19:21:48 <oerjan> i _think_ it is called Smalltalk, iiuc
19:22:05 <ais523> oerjan: you can do that in Smalltalk?
19:22:10 <ais523> cool
19:22:11 <oerjan> and Lisp too i guess
19:22:39 <ehird> yes
19:22:42 <ehird> it is called smalltalk
19:22:45 <ehird> and to a lesser extent lisp
19:22:47 <ehird> ais523: smalltalk has no programs
19:22:55 <ehird> just a bunch of classes
19:22:56 <ehird> and a heap of objects
19:23:11 <ehird> you might, say, tell it to evaluate 'WebServer startOn: 8080'
19:23:14 <ais523> is it possible to write a loop, and edit code inside the loop while the loop is running?
19:23:17 <ehird> instead of actually running anything
19:23:19 <ehird> ais523: well, no
19:23:27 <ehird> but you can change a method that runs a loop
19:23:32 <ehird> and have it immediately propagate along the system
19:23:36 <ehird> so any future call will use the new definition
19:23:39 <ehird> without anything extra done
19:24:16 <ais523> ah, the point is that most of the time a Smalltalk 'program' isn't running
19:24:23 <ais523> because it responds to external messages
19:24:37 <ais523> say if you wrote an OS kernel in Smalltalk, could you hotpatch it?
19:25:30 <oerjan> Erlang also is good for runtime patching but maybe not as directly (?)
19:25:42 <ehird> say if you wrote an OS kernel in Smalltalk, could you hotpatch it?
19:25:42 <ehird> yep
19:25:46 <ehird> just edit the method
19:25:49 <ehird> and voila, all future calls call it
19:25:54 <ehird> of course you'd need to compile the kernel
19:26:02 <ehird> but let's pretend that bootstrapping is magical
19:42:01 <lament> let's pretend that magic is magical
19:42:48 <ehird> lament: yes
19:54:27 <ehird> ais523: So!
19:55:07 <ais523> ehird: KAL
19:55:15 <ehird> ais523: LAK
19:55:42 <ais523> KALs are things sent down Internet connections for no other purpose than to prevent the connection ending, I think
19:55:51 <ais523> sort of like pongs, but without a corresponding ping
19:59:01 <ehird> ais523: you know what would be cool?
19:59:06 <ais523> what?
19:59:06 <ehird> a wiki which runs programs to generate its pages
19:59:19 <ais523> like MediaWiki special pages?
20:01:15 <ehird> ais523: not really
20:04:06 <ehird> ais523: any perlnomic ideas?
20:04:10 <ais523> yes
20:04:17 <ehird> i have this urge to grab some random perl webapp
20:04:20 <ehird> and run it through my package creator
20:04:32 <ais523> what would be really useful would be a generic way for CGI scripts to store data persistently
20:04:34 <ais523> that wasn't a pain to use
20:04:50 -!- oerjan has set topic: Reinventing the square wheel for fun and economic ruin | http://tunes.org/~nef/logs/esoteric.
20:04:52 <ehird> ais523: i can do that
20:05:03 <ehird> ais523: and also i will make a unified login/logout interface
20:05:07 <ehird> and also a header/footer
20:05:09 * oerjan didn't think "profit" sounded quite right
20:05:35 <ehird> ais523: should i bite comex or jay
20:05:41 <ehird> OR YOU
20:05:50 <ais523> ehird: you can't bite me, you aren't looking at me
20:06:01 <ehird> ais523: but i can fix that
20:06:05 <ais523> as for comex or jay, comex doesn't have a whole lot of points right now
20:06:13 <ais523> and the bite and move timers are the same timer
20:06:17 <ehird> oh
20:06:25 <ais523> if you turn to look at me, then I'll run away
20:06:26 <ehird> You bit jay for 3 points. You notice red aura blinking around you.
20:06:29 <ehird> good enough
20:07:40 <ehird> ais523: so, would you vote for a unified login/logout system
20:07:49 <ais523> yes, if implemented properly
20:07:57 <ehird> oh dear
20:07:58 <ehird> adduser_sgeoster
20:08:01 <ehird> sgeo wants in on ecmanomic
20:08:09 <ais523> ecmanomic?
20:08:15 <ais523> is that a JS version of PerlNomic?
20:08:16 <ehird> ais523: http://ecmanomic.org/
20:08:18 <ehird> perlnomic for JS
20:08:54 <Sgeo> ehird, is that as bad as if i wanted in on PerlNomic?
20:09:10 <ehird> Sgeo: do you even know any js?
20:09:19 <Sgeo> ehird, yesish
20:09:26 <Sgeo> I did some stuff in YouOS a while ago
20:09:50 <Sgeo> I don't like the fact that users seem to be identified by password though..
20:09:50 <ais523> gosh, ecmanomic is really hard to read
20:10:37 <ehird> Sgeo: they're not?
20:10:39 <ais523> ehird: for bonus points, get PerlNomic to use public-key authentication, at least as an alternative to crypted passwords if not a replacement
20:10:53 <ehird> ais523: sha512^100+salt
20:11:37 <Sgeo> Oh, is the username stored in a cookie?
20:12:01 <ehird> Sgeo: What?
20:12:06 <ehird> I just made my adduser, and I put in my password
20:12:07 <Sgeo> for ECMAnomic
20:12:09 <ehird> I don't see it anywhere.
20:12:26 <Sgeo> ehird, refresh, and you'll see the adduser
20:12:36 <ehird> No.
20:12:39 <ehird> I mean my password.
20:12:51 <Sgeo> set functionName to vote. Notice how it doesn't ask you for Username
20:13:14 <Sgeo> Put in a junk password. See the errormessage
20:13:43 <ehird> Sgeo: so?
20:13:48 <ehird> ais523: I wanna start my own codenomic.
20:13:51 <ehird> ais523: Language suggestions?
20:14:06 <ais523> ehird: Smalltalk
20:14:10 <Sgeo> So each player is basically identified by password
20:14:21 <ehird> ais523: It would be nice, but hooking it into Squeak safely etc would be a pain
20:14:29 <ehird> and I'm not gonna give unrestricted access :-)
20:14:32 <ais523> it seems the obvious choice the way the conversation's been going over the last two days or so
20:14:40 <ais523> ehird: chroot it?
20:14:48 <ehird> ais523: I guess so...
20:15:03 <ehird> ais523: But smalltalk has a very closed-world view.
20:15:06 <ehird> I dunno -- I'll consider it
20:16:09 <ehird> ais523: For the moment, any other ideas?
20:16:22 <ais523> no sane ones, really
20:16:31 <ais523> maybe Ruby, if there isn't one yet
20:16:40 <ehird> ais523: there is a ruby one but it's dead
20:16:43 <ehird> so i'll consider it
20:16:49 <ehird> ais523: but none that you know? :P
20:16:50 <ais523> what makes you think yours won't be dead?
20:16:54 <ais523> and can you revive it?
20:17:05 <ehird> ais523: it's dead as in not online any more
20:17:13 <ehird> as for ACTIVITY, who cares?
20:18:02 -!- Sgeo has quit (Read error: 104 (Connection reset by peer)).
20:19:20 -!- Sgeo has joined.
20:19:35 <Sgeo> X just died for no obvious reason
20:19:48 <ehird> ais523: maybe an esolang?
20:19:53 <ais523> you didn't do a C-M-backspace?
20:20:04 <Sgeo> I don't think so
20:20:08 <ais523> ehird: INTERCAL would likely work best out of the ones I know, except it's lousy at string-handling
20:20:28 <ais523> the issue with an esolang nomic is nobody would want to read the code
20:20:50 <ais523> but with an INTERCAL nomic, you could have all proposals appending to the end of the code
20:21:00 <ais523> using COME FROM and suchlike to modify what had gone before
20:22:15 <ehird> ais523: why aren't there any /easy/ esolangs
20:23:06 <ais523> ehird: well, unless you count Easy, it's because some sorts of esolangs (like tarpits) can't be easy pretty much by definition, and ones which would be easy to program in are a pain to implement
20:23:21 <ehird> :\
20:23:48 <ais523> so Cyclexa and many-tiered Underlambda would be easy to program in, but the implementation efforts keep getting stuck
20:24:01 <ais523> what about GolfScript and similar esolangs?
20:24:12 <ais523> they're not all that difficult by esolang standards
20:24:16 <ais523> but can be a pain to read
20:25:25 <ehird> ais523: golfscript sounds interesting
20:25:32 <ehird> ais523: also, want help implementing underlambda?
20:25:37 <ehird> i'd love to
20:25:38 <ais523> there's a FlogScript on esolangs.org that seems based on it
20:25:46 <ais523> and help implementing underlambda would be fine
20:25:50 <ais523> as would help speccing it out
20:25:54 <ehird> ais523: seems to be yshl's
20:25:59 <ehird> of anagolf
20:26:12 <ais523> I sort of know what I want, but it's hard to put it in writing
20:26:20 <ehird> ais523: hm, flogscript is a bit too hard to read
20:26:31 <ehird> Oh gawd, flogscript isn't yshl's
20:26:33 <ehird> it's zzo38s
20:26:48 <ais523> many of zzo38's langs are pretty good, though
20:27:05 <ehird> ais523: yeah, he just has a ton of crackpot stuff on his blog :-)
20:27:07 <ehird> btu anyway
20:27:10 <ehird> it seems to embed brainfuck
20:27:13 <ehird> which is a dumb idea, imo
20:27:17 <ehird> (reading src)
20:27:26 <ais523> hey, Underlambda embeds brainfuck
20:27:32 <ais523> but for useful purposes
20:27:47 <ais523> < and > implement access to a secondary stack, something that would help a lot in Underload
20:27:54 <ais523> . and , are nice I/O
20:28:14 <ais523> [ and ] form a simple imperative looping construct, which is sometimes nicer than the functional or concatenative versions
20:28:23 <ais523> and + and - are nice increment/decrement shortcuts
20:28:36 <ais523> so all 8 commands are useful, and I may as well give them the names they have in BF
20:29:01 -!- oerjan has quit ("Good night").
20:32:22 <ehird> ais523: i'm hacking out a little smallnomic
20:32:25 <ehird> with Seaside
20:32:52 <ais523> ehird: what level does it self-modify at? The entire code for the site?
20:33:05 <ehird> ais523: the smalltalk classes
20:33:18 <ehird> so it's really just a smalltalk class browser at its heart ;)
20:33:24 <ehird> but with '[edit this]' and all that
20:33:28 <ehird> that is - it WILL be
20:33:36 <ehird> ais523: all of Seaside is done within smalltalk
20:33:38 <ehird> no files involved
20:34:04 <ehird> it's also a heretical framework - continuation-based, stateful, html is generated programmatically and not by a template, etc
20:34:07 <ehird> but i think it'll fit great for this
20:34:17 <ehird> since you can write a program with callbacks on links, and say 'go to page a, then b'
20:34:17 <ehird> etc
20:34:26 <ehird> ais523: it leads to slightly ugly urls though
20:34:38 <ais523> 'heretical''s an interesting name for it
20:34:39 <ehird> like
20:34:40 <ehird> http://localhost:8080/seaside/nomic?_k=zbHRaYHq&_c
20:34:44 <ehird> _k is the continuation id there
20:34:49 * ais523 almost clicked on that link
20:34:54 <ehird> you can have meaningful urls, but you have to do it manually
20:35:02 <ehird> ais523: but then a nomic doesn't need bookmarking all the time, does it
20:35:05 <ehird> just a few parts
20:35:12 <ehird> and it's described as heretical by its author
20:35:28 <ais523> you only really need a static URL at the entry point
20:36:02 <ehird> ais523: yes
20:36:06 <ehird> and things like editing specific classes
20:36:16 <ehird> but e.g. a map, or moving, or biting ... none of those need persistent urls
20:36:24 <ehird> /nomic?_k=zbHRaYHq&_c is a fine url for them
20:36:24 <ais523> are you going to have a rollback feature like perlnomic does?
20:36:27 <ehird> esp. cause of the programming benefits
20:36:33 <ehird> ais523: hm, i don't know..
20:36:34 <ehird> should i?
20:36:37 <ehird> it sounds difficult
20:36:40 <ais523> if nobody does anything for three days, anybody can undo the last proposal without authenticating
20:36:54 <ehird> ais523: OK, that'll be easy
20:36:57 <ais523> as one line of protection against accidental massive breakage
20:37:00 <ehird> I just need to store every proposal, forever.
20:37:10 <ehird> Which I should do anyway.
20:37:17 <ehird> ais523: mine'll even have a wiki-style 'class history'
20:37:20 <ais523> that would be still better, actually, use it as a rollforwards rather than a rollback
20:37:41 <ehird> ais523: using squeak is bizzare
20:37:44 <ehird> since it's its own windowing system
20:37:49 <ehird> and font renderer, etc
20:37:53 <ehird> even mouse interaction
20:38:24 <ais523> BTW, how easy would it be for you to host a pushable-by-me darcs repo for C-INTERCAL?
20:38:29 <ais523> eso-std.org seems like a good place for it
20:38:50 <ais523> I've started using darcs versioning, and I think I'm getting the hang of it
20:39:08 <ehird> <ais523> BTW, how easy would it be for you to host a pushable-by-me darcs repo for C-INTERCAL? <-- very easy
20:39:19 <ehird> you can even do it *right now*
20:39:21 <ais523> what about pushable-by-me, pullable-by-world
20:39:27 <ehird> ais523: just as easy
20:39:43 <ehird> ais523: I'll install a temp httpd.
20:39:54 <ais523> how persistent will the site be?
20:39:58 <ehird> ais523: All you have to do is 'darcs push elliotthird.org://var/www/darcs/c-intercal'
20:40:05 <ehird> and persistent, if I need to wipe, I'll back it up
20:40:12 <ais523> OK
20:40:12 <ehird> besides -- it doesn't need to be that persistent, you can always just repush
20:40:15 <ehird> but i will back up
20:40:20 <ais523> will the same ssh ⁎⁡*⁕⁑⁢⁂⁎ still work, or did you wipe it?
20:40:25 <ehird> ais523: oh, that's wiped
20:40:37 <ehird> i'll give you the password 'YesIJustSaidThisOverIRC'
20:40:42 <ehird> have fun racing to change it
20:40:42 <ehird> :D
20:41:12 <ehird> ais523: done
20:41:52 <ehird> now
20:41:54 <ehird> wait for me to install nginx
20:41:56 <ais523> ⁎⁡*⁕⁑⁢⁂⁎ changed
20:42:13 <ehird> ais523: by the way, smallnomic will not work on IE
20:42:16 <ehird> any complaints? ;)
20:42:22 <ais523> no
20:42:26 <ais523> what goes wrong, BTW?
20:42:52 <ehird> ais523: i'm going to use :after for the seperators on the menu
20:42:54 <ehird> technically it'll work
20:42:57 <ehird> it'll just look odd :P
20:43:15 <ais523> oh, that
20:46:17 <ais523> ehird: I've set up public-key authentication to your server
20:46:26 <ehird> ais523: that's nice?
20:46:27 <ais523> my public key's in my home dir over on elliotthird.org
20:46:34 <ehird> ais523: how did you do that?
20:46:36 <ais523> yes, it means I don't need to know my ⁎⁡*⁕⁑⁢⁂⁎ over there
20:46:40 <ehird> oh, does ssh already have it unabled
20:46:42 <ais523> ehird: ssh-keygen a key
20:46:43 <ehird> *enabled
20:46:44 <ehird> right
20:46:47 <ehird> okay, fine, sure
20:46:48 <ehird> ais523: OK, wait
20:46:50 <ais523> and then copy the public key to the right place
20:47:07 <ais523> wait for what, nginx, or something else?
20:48:12 <ehird> ais523: okay, about to add you to www-data
20:48:18 <ehird> er how do i add a user to a group
20:48:36 <ais523> adduser user group
20:48:57 <ehird> ais523: an existing user?
20:49:00 <ais523> yes
20:49:05 <ais523> two args adds an existing user
20:49:08 <ais523> one arg creates a user
20:49:38 <Sgeo> oO at existance of MX records for tt
20:49:58 <ehird> ais523: okay
20:49:59 <ehird> cd /var/www
20:50:01 <ehird> mkdir darcs
20:50:05 <ehird> mkdir darcs/c-intercal
20:50:42 <ais523> wait, I have to log out and back in again
20:50:55 <ais523> I may have been added to www-data, but my instance of bash wasn't
20:50:56 -!- jix has joined.
20:51:38 <ais523> ehird: still can't do it, /var/www is 755 not 775
20:51:55 <ehird> ais523: you are in www-data.
20:52:12 <ais523> yes, but group can't write to the directory
20:52:20 <ais523> it's read-write-exec for user, but read-exec for group
20:52:25 <ehird> ah
20:52:38 <ehird> ais523: fix'd
20:53:16 <ais523> OK, dirs made
20:53:25 <ais523> now all that's needed is a darcs push to the right location, presumably
20:53:32 <ehird> ais523: yes, just:
20:53:38 <ehird> 'darcs push elliotthird.org://var/www/darcs/c-intercal'
20:53:41 <ehird> then just 'darcs push' after that
20:54:42 <ehird> ais523: and the pull url
20:54:43 <ehird> is http://elliotthird.org/darcs/c-intercal/
20:54:49 <ehird> people can get it by 'darcs get http://elliotthird.org/darcs/c-intercal/'
20:54:58 <ehird> you can s/elliotthird.org/eso-std
20:55:12 <oklopol> http://i93.photobucket.com/albums/l65/rustik2/cnnsucks.jpg <<< i saw this like 7 years ago, it's older than Sgeo.
20:55:14 <ais523> I'll use eso-std for the time being
20:55:18 <oklopol> well, 15
20:55:37 <ehird> 'i saw this like 7 years ago, it's older than Sgeo.'
20:55:40 * Sgeo is 19
20:55:40 <ehird> best thing ever said
20:55:55 <ehird> Sgeo: lies
20:56:16 <ais523> hmm... it seems I can't push to a nonexistent repo
20:56:20 <ehird> ais523: hmm
20:56:22 <ehird> 'darcs init'
20:56:23 <ais523> presumably it needs initialising first?
20:56:24 <ehird> in the right dir
20:56:25 <ehird> remotely
20:56:47 <Sgeo> Although I think the name "Sgeo" might be around 7 years old, actually. I'm 19 though
20:56:50 <ais523> oh, and it's one slash not two after the colon in the push command
20:56:51 -!- Iskr has quit ("Leaving").
20:56:56 <ehird> ais523: is it?
20:56:59 <ehird> i'm pretty sure it's two
20:57:09 <ais523> with two it interprets eso-std:// as the protocol
20:57:26 <ehird> ah
20:57:31 <ais523> -bash: darcs: command not found
20:57:44 <ehird> ais523: oops
20:57:57 <ehird> i should just give you root :P
21:01:17 <ehird> ais523: by the way
21:01:18 <ehird> darcs is there now
21:01:50 <oklopol> ehird: ais523: Language suggestions? <<< nomictalk
21:01:55 <ehird> oklopol: heh
21:04:13 <ais523> ehird: http://eso-std.org/darcs/c-intercal redirects me to localhost for some reason
21:04:22 <ais523> and thus shows no useful data
21:04:25 <ehird> hm
21:04:26 <ehird> so it does
21:05:12 <ehird> ais523: well i can either make all of elliotthird.org redir to eso-std
21:05:14 <ehird> or the other way around.
21:05:38 <ais523> if you aren't using elliotthird.org for anything right now, redirect to eso-std
21:05:43 <ais523> otherwise redirect in the other direction
21:06:17 <ehird> ais523: okay it is fixed
21:06:21 <ehird> but your browser still remembers the redir
21:06:22 <ehird> so kill it
21:07:07 <ais523> OK, I get a blank repo, pushing now
21:07:42 <oklopol> Sgeo: wtf? didn't you say you were 15?
21:08:03 <Sgeo> Maybe some years ago..
21:08:07 <oklopol> 8|
21:08:13 * oklopol needs to do some logreading
21:08:26 <ehird> ais523: did it push?
21:08:32 <ais523> it's still pushing
21:08:36 <ais523> taking remarkably long about it
21:08:58 <ais523> it's created the lockfile on your server, but then seems to have done nothing after that
21:09:07 <ehird> ais523: darcs is slow
21:09:17 <ais523> several minutes slow?
21:09:34 -!- oklopol has set topic: Reinventing the square wheel - ??? - Profit | http://tunes.org/~nef/logs/esoteric.
21:09:37 <ehird> ais523: Yep
21:10:00 <ais523> oh, and sleeping and not using any CPU
21:10:10 <ais523> generally, processes are either IO-bound or CPU-bound
21:10:14 <ais523> but darcs seems to be neither
21:10:23 <ehird> ais523: Ctrl-C, Up, Enter.
21:10:35 <ehird> Any other language suggestions by the way? I just realised how big a proposition writing a smalltalk browser is ;P
21:10:52 <ais523> Unlambda
21:10:55 <ais523> you have continuations
21:10:57 <oklopol> anyone know that log where Sgeo says his age? i want to see proof he didn't age 5 years in a few months.
21:11:01 <ais523> OK, that was a joke
21:11:07 <oklopol> well, 4
21:11:18 <ehird> ais523: I might do it in underlambda, if we collab on an impl
21:11:18 <oklopol> as if anyone could get 19-15 right
21:11:32 <ais523> may as well collab on an impl right
21:11:48 <ais523> LET (19-15)=5
21:12:30 <oklopol> does someone have an easy way to grep the whole tunes logs?
21:12:34 <ihope> oklopol: people don't age 4 years in a few months. Q.E.D.
21:12:37 <ihope> :-P
21:12:51 <ehird> <ais523> may as well collab on an impl right
21:12:56 <oklopol> lines with Sgeo saying 15 or 19
21:12:57 <ehird> bizzarest thing ais523 has ever said
21:13:01 <Sgeo> Didn't there used to be a link to searchable logs?
21:13:03 <ehird> oklopol: download them all
21:13:06 <ehird> and grep
21:13:10 <ehird> Sgeo: they can't acutally search
21:13:10 <oklopol> ehird: how?
21:13:18 <ehird> oklopol: a wget script
21:13:18 <ais523> ehird: I was trying to reply to both yours and oklopols comments at the same time, and got confused
21:13:19 <ais523> also I'm tired
21:13:20 <ehird> basically, set it to mirror
21:13:25 * ihope slaps Sgeo for using the past past tense
21:13:37 * Sgeo keeps logs..
21:13:39 <ehird> ais523: "Editing component: SNHome" yay
21:13:39 <oklopol> not past tense
21:13:41 <ehird> (SN = SmallNomic)
21:13:42 <oklopol> pasted tense.
21:13:46 <ihope> Yeah, that.
21:13:50 <oklopol> *not past past tense
21:13:56 <ehird> ais523: it helps that smalltalk is introspective as all hell
21:14:12 <oklopol> (someone search the log for me :P)
21:14:14 <Sgeo> Ofc, greppping for #esoteric logs only might be a bit tricky
21:14:15 <ehird> i just opened up the Class class :D
21:14:22 <ehird> Sgeo: err no
21:14:26 <ehird> download all the #esoteric logs
21:14:28 <ehird> then grep them
21:14:30 <ehird> it only takes 5 minutes
21:14:33 <Sgeo> Also, my birthday was May 1st, so searching for 18 might be better than 19
21:14:53 <oklopol> ehird: wanna do it? i'm on windows
21:15:00 <oklopol> I WILL PAY LOTS.
21:15:04 <oklopol> AND LOTS.
21:15:35 <ehird> oklopol: heh
21:16:06 <oklopol> in case you know a simple way to do it on win, do tell me, i'd prolly make a python script, but that would be a waste of 10 minutes
21:16:29 <ais523> the realoaded darcs push is still going, by the way
21:16:33 <ais523> s/a//
21:17:28 <ehird> switch to git
21:17:28 <ehird> :-P
21:17:48 <Sgeo> Google's no help
21:18:47 <ais523> Sgeo: is there a windows version of wget, or of curl?
21:18:51 <ais523> there ought to be by now
21:18:56 <oklopol> isn't it like one wget and grep on linux?
21:19:00 <ais523> a cygwin port, at least
21:19:03 <oklopol> just please do it so i can be in peace..
21:19:04 <ais523> oklopol: yes
21:19:18 <oklopol> well, at peace
21:19:18 <ais523> but I'm not sure how to set it up properly
21:19:26 <Sgeo> ais523, I think there is for wget. If I knew what curl was, I might be able to say something
21:19:47 <Sgeo> http://en.wikipedia.org/wiki/Wget#External_links
21:19:49 <ais523> it's what ehird recommended to me to make a rule-resubmit bot for IRCnomic
21:19:53 <ehird> ais523: --mirror
21:19:54 <Sgeo> http://users.ugent.be/~bpuype/wget/
21:19:55 <ehird> for wget
21:20:54 <Sgeo> wget -i looks like it would do what you need
21:21:25 <Sgeo> If you turn the list of logs into a list of files readable by that..
21:21:28 <ehird> ais523: so, underlambda
21:21:33 <ehird> step 1. pick a language ;)
21:21:40 <Sgeo> Or just recursive 1 level deep?
21:22:15 <ais523> ehird: that's an interesting choice
21:22:20 <ais523> it's designed to be implementable in anything
21:22:52 <ehird> ais523: let's optimize for speed, because we'll never get it
21:23:31 <ais523> OK, what you really need in Underlambda is serialisable first-class functions
21:23:48 <ais523> with access to the call stack
21:24:18 <ehird> ais523: OK, we'll be rolling our own then.
21:24:33 * Sgeo pokes ais523 or oklopol or whoever was asking me
21:25:32 <ais523> Sgeo: not sure
21:25:38 <ais523> 1 level deep would be fine for the tunes.org logs
21:25:49 <ehird> just use --mirror
21:25:50 <ehird> it works
21:25:52 <ehird> i've done it before
21:27:20 <ehird> ais523: shall we go for C?
21:27:22 <ehird> it would be hideously ugly
21:27:25 <ehird> :D
21:27:33 <ehird> (and maybe fast)
21:27:34 <ais523> especially with the access-to-callstack stuff
21:27:45 <ehird> ais523: does the callstack serialization need to be cross-platform?
21:27:56 <ais523> no
21:28:01 <ais523> it only needs to be per-executable
21:28:12 <ais523> it can vary from recompile to recompile if needed the way I've specced it out
21:28:16 <ais523> but having it cross-platform would be nice
21:28:26 <ais523> Underlambda is an obvious lang to serialise into, but not the only choice
21:28:39 <ehird> ais523: I think if we go to C, we should roll our own callstack.
21:28:42 <ais523> yes
21:28:48 -!- helios24 has quit ("Leaving").
21:28:53 <ehird> Since with cross-platform continuations, we could change everything magically into smalltalk.
21:29:06 <ehird> ais523: but then how do FFIs work?
21:29:14 <ehird> Sure, it works if the C function you go into doesn't call into Underlambda
21:29:19 <ehird> but if you do that, then our callstack becomes wrong
21:29:20 <ais523> it's really easy to do roll-your-own callstack, actually, just by appending the rest of the program to the end of what you call
21:29:25 <ehird> and any continuation isn't a real continuation
21:29:32 <ais523> I didn't think about FFIs
21:29:46 <ais523> it's hard to see how you could continuationise another lang that you know nothing about, though, anyway
21:29:58 <ais523> I don't mind too much if continuations and FFIs don't mix, they don't in INTERCAL for instance
21:30:02 <ehird> ais523: if you do the callstack then you're mostly fine
21:30:05 <ehird> ais523: one way
21:30:08 <ehird> is to switch to CPS
21:30:13 <ehird> and provide a wrapper for regular functions
21:30:16 <ehird> so, if you want to call into underlambda again
21:30:18 <ehird> you write in CPS
21:30:25 <ehird> but if you just want to call into a random C lib
21:30:31 <ehird> then it just uses the wrapper function
21:30:33 <ais523> CPS might make sense
21:30:36 <ehird> (which just does k(func(...)), basically)
21:30:41 <ehird> ais523: the problem is that CPS is fugly without closures
21:30:43 <ehird> and I mean fugly
21:30:49 <ais523> the s/// version of the compiler is pretty much CPS
21:30:58 <ais523> except that it isn't full CPS
21:31:00 <ehird> yeah
21:31:05 <ais523> it passes the program context around, but not the data stack
21:31:09 <ais523> so it's a sort of cut-down CPS
21:31:13 <ais523> a setjmpPS, in a way
21:31:20 <ehird> ais523: I mean, CPS would let us support any kind of windy callstack.
21:31:26 <ehird> ais523: But make the code inscrutable.
21:31:37 <ehird> ais523: Serializing the call-stack isn't portable, etc.
21:31:47 <ehird> And rolling our own won't let us do arbitary call stacks
21:33:44 <ais523> maybe use naive call-stack concatenation?
21:33:55 <ais523> that does tail-recursion automatically without extra effort
21:34:07 <ais523> effectively, you remove the ^ from the program and add TOS in its place
21:34:44 <ehird> ais523: i don't wanna go a rewriting way
21:34:51 <ehird> I even want to - holy crap - parse it
21:34:52 <ehird> I know, heretical
21:34:53 <ais523> it wouldn't be rewriting
21:34:56 <ais523> and it would be parsed
21:35:07 <ehird> okay
21:35:07 <ehird> well
21:35:08 <ehird> still :P
21:35:12 <ehird> the naive method kinda sucks.
21:35:14 <ais523> but presumably, in C, you implement functions as a linked list of fundamental functions
21:35:14 <ehird> in my opinion!
21:35:29 <ehird> ais523: i have an idea
21:35:33 <ehird> let's just create a repo :p
21:35:43 <ehird> oh, darn, perl has a consistent style, but not C
21:35:46 <ehird> now we have to argue again
21:35:54 <ais523> well, the darcs push still hasn't finished
21:36:02 <ais523> so I'm going to assume that it won't ever, and kill it
21:36:22 <ehird> ais523: IT WILL NEVER FINISH
21:36:24 <ehird> dun dun dun
21:36:33 <ehird> ais523: do you have any darcs revisions already there?
21:36:37 <ehird> or have you just put it in darcs?
21:36:43 <ais523> no revisions there yet
21:36:48 <ais523> just the init
21:36:52 <ais523> I'm going to try using send/apply
21:36:55 <ehird> ais523: on your local copy?
21:36:59 <ehird> and send/apply won't work properly
21:37:04 <ehird> what i mean
21:37:06 <ais523> send on local, apply on foreign
21:37:07 <ehird> is locally, do yuo have any revisions
21:37:11 <ais523> yes, lots locally
21:37:12 <ehird> or have you just imported it
21:37:13 <ehird> ah
21:37:15 <ais523> 10 of them in fact
21:37:24 <ehird> otherwise a change to git would take 3 minutes
21:37:27 <ehird> now it'll take 7 ;)
21:39:01 <ais523> ehird: what's the syntax for scp?
21:39:12 <ais523> I thought I remembered, but I seem to be wrong
21:39:23 <ehird> ais523: scping the repo won't work realiably
21:39:28 <ehird> really you want to get push working
21:39:31 <ais523> ehird: i'm not scping the repo
21:39:35 <ais523> I'm scping a sendbundle
21:40:22 <ehird> ais523: also won't work properly
21:40:26 <ehird> the repos won't be equivilent
21:40:28 <ais523> why not?
21:40:46 <ehird> not sure, but i'm pretty sure that it's true
21:41:04 <ais523> ehird: the problem isn't with darcs, but with the network connection
21:41:14 <ehird> ais523: on my end or yours
21:41:18 <ais523> sendbundle.darcs 75% 2208KB 12.5KB/s - stalled -
21:41:22 <ais523> not sure whose end the problem's on yet
21:41:22 <ehird> OK
21:41:26 <ehird> then just keep trying to push
21:41:30 <ehird> i think it's your end
21:41:32 <ehird> my vps is fine
21:42:07 <ehird> ais523: hm, scheme would work
21:42:11 <ehird> wait, no
21:42:12 <ehird> okay
21:42:13 <ehird> let's just do C
21:42:18 <ehird> ais523: OK, time for a stylistic argument
21:42:34 <ais523> what, in terms of indentation style, or something more major than that?
21:42:40 <ehird> ais523: mainly the first
21:42:54 <ehird> ok, let me get some controversy going
21:43:02 <ehird> type func(type foo, type bar, type baz)
21:43:02 <ehird> {
21:43:03 -!- AnMaster has quit ("bbiab kernel upgrade").
21:43:04 <ehird> int foo;
21:43:05 <ais523> OK, in that case, 1 space, GNU-style (so half a space before braces), but with 3 spaces before case labels
21:43:07 <ehird> return BLAH;
21:43:10 <ehird> if (x) {
21:43:12 <ehird> ...
21:43:14 <ehird> }
21:43:14 <ehird> }
21:43:21 <ais523> ehird: how many spaces indentation is that?
21:43:23 <ehird> ais523: i hate gnu style so much
21:43:23 <ehird> and 4
21:43:29 <ais523> ehird: I was joking
21:43:33 <ehird> oh good
21:43:37 <ehird> ais523: you can never be sure with you
21:43:48 <ais523> I hate GNU-style too, and half-space indentation is silly
21:43:56 <ehird> ais523: in an ideal world
21:43:59 <ehird> i'd use hard-tabs
21:44:04 <ehird> and people could choose how many spaces they wanted
21:44:06 <ais523> now, my typical style is two-space indentation, { is on a separate line from the if (x)
21:44:11 <ais523> but otherwise the same as you
21:44:12 <ehird> but editors interpreted it as '8 spaces'
21:44:16 <ehird> which is just WRONG
21:44:19 <ehird> and now we can't use them
21:44:22 <ehird> because that assumption spread
21:44:23 <ehird> yayyy
21:45:33 <ehird> ais523: ignore that rant
21:45:38 <ehird> oh, and
21:45:44 <ehird> case labels should be on the same column as the switch
21:45:48 * ehird watches ais523 shoot him
21:46:07 <ais523> ehird: I put case labels there too
21:46:16 * ehird shoots ais523 for completeness
21:48:55 <ehird> ais523: here's how to coerce emacs to do your bidding
21:49:02 <ehird> (add-hook 'c-mode-hook (lambda ()
21:49:02 <ehird> (c-set-style "linux")
21:49:02 <ehird> (setq c-basic-offset 4)))
21:49:17 <ais523> oh, I use c-set-style "bsd" with a c-basic-offset of 2
21:49:23 <ais523> what's the difference between "linux" and "bsd"?
21:49:38 <ehird> ais523: bsd indents extra function parameters differently i think
21:49:38 <ehird> let me test
21:50:38 <ehird> ais523: OK, no difference as far as I can tell
21:50:41 <ehird> let's use BSD, both of us
21:50:51 <ais523> may as well, if the styles are identical
21:50:59 <ehird> ais523: I think you can change c-mode's settings for a specific dir
21:51:07 <ais523> oh, it's probably to do with where the brace after the if() { is
21:51:11 <ehird> ah
21:51:17 <ais523> but Emacs doesn't move that from where the user puts it
21:51:20 * ehird consults pikiwedia
21:51:27 <ehird> ais523: ever tried electric mode?
21:51:28 <ais523> I put a newline in between the if() and the {
21:51:32 <ais523> ehird: yes, I normally use it
21:51:44 <ais523> but I manually type newlines before a {
21:52:57 <ais523> the darcs push, or any large copy over ssh, doesn't seem to work properly from here
21:53:14 <ais523> maybe the University network I'm on thinks I'm filesharing and is throttling it...
21:53:36 <ehird> ais523: so, should we use git for underlambda
21:54:09 <ais523> ehird: maybe it's better to decide on the version control system /after/ we have some code...
21:54:19 <ehird> ais523: i always like getting a copy out first
21:54:21 <ais523> but I don't have much of an issue with using gitorious or somewhere like that
21:55:06 <ehird> 0% [Connecting to archive.ubuntu.com (91.189.88.31)]
21:55:08 <ehird> always lags
21:55:09 <ehird> for ages
21:55:12 <ehird> (on elliotthird.org)
21:57:39 -!- AnMaster has joined.
21:59:11 <ais523> I'll see what happens if I push to elliotthird.org instead
21:59:51 -!- jix has quit ("CommandQ").
22:00:25 <ais523> no better
22:01:07 <ehird> wtf
22:01:09 <ehird> i just installed git
22:01:10 <ehird> but it's not there
22:01:19 <ais523> ehird: did you install the right git?
22:01:25 <ehird> .. oh crap
22:01:27 <ais523> you warned me that 'git' was the wrong package on ubunutu
22:01:32 <ehird> yeah
22:01:33 <ehird> stupid
22:06:05 <ais523> when I want to install something and I know the name of the command,
22:06:13 <ais523> I which the command to make sure I don't have it already
22:06:23 <ais523> then try to run the command and let command-not-found tell me which package it's in
22:09:36 <ehird> ais523: eh just gonna use gitorious
22:09:38 <ehird> handles all this for me
22:12:42 <ehird> ais523: git clone git@gitorious.org:underlambda/mainline.git
22:12:54 <ehird> err wait
22:12:54 <ehird> not yet
22:13:48 <ehird> OK
22:13:50 <ehird> ais523: now you cna
22:14:43 <ais523> Initialized empty Git repository in /home/ais523/esoteric/udld/mainline/.git/
22:14:43 <ais523> Access denied or bad repository path
22:14:43 <ais523> fatal: The remote end hung up unexpectedly
22:14:53 <ehird> ais523: oh of course
22:14:56 <ehird> also
22:14:57 <ehird> udld?
22:14:59 <ehird> that's underload
22:15:08 <ehird> ais523: git clone git://gitorious.org/underlambda/mainline.git
22:15:11 <ehird> git remote add origin git@gitorious.org:underlambda/mainline.git
22:15:17 <ais523> ehird: I use .udl for Underlambda, .ul for Underload
22:15:22 <ais523> so tab completion works well
22:15:26 <ehird> ais523: ah
22:15:35 <ehird> i suggest retconning underload into .uel
22:15:39 <ais523> fatal: Not a git repository at /usr/share/perl5/Git.pm line 197.
22:15:39 <ehird> so that .ul can be used for underlambda
22:15:43 <ehird> which is arguably far superior ;)
22:15:45 <ais523> I use .unl for underlambda
22:15:53 <ehird> ais523: yes, but it deserves the 2-char
22:15:58 <ehird> ais523: also, git --version
22:16:09 <ais523> git version 1.5.4.3
22:16:18 <ehird> OK
22:16:20 <ehird> that should be fine...
22:16:24 <ehird> ais523: paste your session
22:17:11 <ais523> will do
22:17:42 <ais523> http://pastebin.ca/1011107
22:18:42 <ehird> ais523:
22:18:42 <ehird> compare
22:18:44 <ehird> $ git clone git@gitorious.org:underlambda/mainline.git
22:18:46 <ehird> $ git clone git://gitorious.org/underlambda/mainline.git
22:18:56 <ais523> but I copy/pasted!
22:18:59 <ais523> how did that happen?
22:19:07 <ais523> which one should I use, anyway?
22:19:08 <ehird> ais523: because x11 has two clipboards
22:19:11 <ehird> selection (pasted with middle-click)
22:19:16 <ehird> and copied (depends onthe app)
22:19:22 <ais523> yes, I know, but it was a middle-click paste both times, I think
22:19:27 <ais523> which one should I use, anyway?
22:19:35 <ehird> ais523: well, the selection clipboard is retarded
22:19:38 <ehird> it's too easy to override
22:19:40 <ehird> and very fiddly
22:19:48 <ehird> but the keybindings for the real one
22:19:51 <ais523> I only use it for quick select-pastes, usually
22:19:52 <ehird> are inconsistent between apps
22:19:56 <ehird> and i don't even think xterm supports it
22:20:05 <ehird> os x comes on top again -- cmd-{c,x,v}
22:20:10 <ehird> and it doesn't interfere with ^C
22:20:12 <ehird> because cmd != ctrl
22:20:14 <ais523> ehird: gnome-terminal does, it's C-S-c for copy, C-S-v for paste
22:20:16 <ehird> (this is how windows is broken)
22:20:29 <ais523> oh, and Linux ought to use super more
22:20:44 <ais523> I can use it to zoom into windows using Compiz, which is actually useful on occasion, but not much else
22:21:47 <ehird> ais523: os x has a global zoom
22:21:55 <ehird> something + mouse wheel
22:21:56 <ehird> it's fun
22:22:03 <ais523> yes, super + mouse wheel over here
22:22:03 <ehird> ais523: but even better - it has a keybinding to invert the whole screen
22:22:06 <ehird> which can be a godsend
22:22:14 <ehird> (and makes tons of images look very, very creepy)
22:22:16 <ais523> there's probably one over here too, I'll check
22:22:29 <ehird> ais523: compiz doesn't count, they just took os x and ripped it off wholesale, badly :p
22:22:54 <ais523> s-N to invert the window, s-M to invert the screen
22:23:09 <ais523> and no, they ripped off OSX wholesale, but pretty well
22:23:44 <ehird> very well != just as good
22:24:58 <ehird> ais523: So I am about to create the first file.
22:25:00 <ehird> Exciting, I know.
22:25:27 <ehird> ais523: Oh, and, MIT license.
22:25:45 <ais523> fine
22:27:08 <ehird> ais523: I just pushe
22:27:09 <ehird> d
22:27:49 <ais523> how do I pull?
22:28:00 <ais523> or init, for that matter?
22:28:12 <ehird> ais523: ummm
22:28:16 <ehird> do you not have the repo yet?
22:28:19 <ehird> $ git clone git://gitorious.org/underlambda/mainline.git
22:28:20 <ais523> not yet
22:28:25 <ehird> $ git remote add origin git@gitorious.org:underlambda/mainline.git
22:28:54 <ais523> first command worked, second didn't
22:29:03 <ais523> neither with @ nor ://
22:29:11 <ehird> ais523: the second has to
22:29:14 <ehird> it's juts adding a remote
22:29:17 <ehird> nothing can fail
22:29:21 <ehird> oh
22:29:24 <ehird> ais523: you need to do it in the repo
22:30:00 <ais523> ah, it works now
22:30:17 <ehird> ais523: ok, first things first - header file
22:30:20 <ehird> i don't think we'll need multiple
22:30:37 <ehird> how do you do your include guards, out of curiosity?
22:30:39 <ehird> i do _HEADER_H_
22:30:48 <ais523> ehird: I normally don't do include guards
22:30:56 <ehird> ais523: well that's suicidla
22:30:58 <ehird> *suicidal
22:30:59 <ais523> they shouldn't be necessary in well-written programs
22:31:04 <ehird> yes they should
22:31:08 <ehird> headers are free to include others to use their types
22:31:12 <ehird> but that's an implementation detail
22:31:18 <ehird> and things using those headers shouldn't need to know that
22:31:19 <ais523> also, generally my headers work when included multiple times anyway
22:31:26 <ehird> (and then know not to include that header again)
22:31:38 <ais523> if they're just #defines and prototypes, there isn't a problem
22:31:57 <ehird> ais523: hmm, the parse tree can be a data type can't it
22:31:59 <ehird> in underlambda
22:32:07 <ais523> what do you mean by that?
22:32:11 <ehird> never mind
22:32:20 <ehird> ais523: shall we implement the highest layer and the lowest layer as one?
22:32:24 <ehird> that is, just a regular interp
22:32:27 <ehird> instead of a layer of compilers
22:33:24 <ais523> yes, that's whay I intended to happen
22:33:32 <ehird> ais523: OK
22:33:35 <ais523> s/y(.*)y/y$1t/
22:33:35 <ehird> so we don't even need to think about layer
22:33:36 <ehird> s
22:33:38 <ehird> that's convenient
22:33:43 <ehird> isn't it :-)
22:33:50 <ais523> um... (.*?), but it doesn't matter in this case
22:33:55 <ais523> yes, it's convenient
22:34:09 <ais523> the layers exist for more limited implementations that can't manage the whole thing in one go
22:34:12 <ehird> ais523: should we even have the word 'layer' in the code?
22:34:14 <ehird> i don't think so
22:34:19 <ais523> probably not needed
22:34:25 <ehird> i think we should just mentally fnord all mentions of 'layer' in the spec ;)
22:34:27 <ais523> my reference interp only has it in comments, to explain where things come from
22:34:41 <ehird> ais523: ok and now we need to define the data types
22:34:44 <ais523> for instance, layer 5 rules are preprocessor rules, whereas the other rules control run-time behaviour
22:34:45 <ehird> i assume that church numerals aren't sane
22:34:48 <ehird> so we need multiple types
22:35:00 <Sgeo> Which is easier, Qt or GTK?
22:35:06 <ais523> yes, the only data type in theory is the function from a stack of functions to a stack of functions
22:35:15 <ais523> Sgeo: I think GTK, but not by much, they're both pretty easy
22:35:16 <ehird> Sgeo: you've used c for a few days
22:35:21 <ehird> Sgeo: also, Qt is easier
22:35:23 <ehird> but Qt is C++
22:35:45 <ais523> however, I recommend integer and list as data types
22:35:51 <ehird> ais523: and string
22:35:53 <ais523> probably string too, which is a list of integers
22:35:59 <ehird> ais523: no, a string is not a list of integers
22:36:00 <ehird> well
22:36:04 <ais523> it is in Underlambda
22:36:04 <ehird> it's not a list of 0-255s
22:36:12 <ehird> ais523: these integers are unicode codepoints right
22:36:19 <Sgeo> I tried writing a GTK program while being bored in my Database class, and I couldn't remember the function to make a box
22:36:23 <ehird> actually ais523
22:36:25 <ehird> even going that route
22:36:30 <ehird> it makes things like strlen nigh-on impossible
22:36:31 <ais523> well, I leave charset undefined, but they're meant to allow unicode
22:36:32 <ehird> please seperate out strings
22:36:35 <Sgeo> I guess most programmers actually have references w/ them anyway, and have more practice,,
22:36:35 <ehird> also
22:36:43 <ais523> ehird: you use the list length function to do a strlen
22:36:50 <ehird> ais523: can't work consistently with unicode
22:36:59 <ais523> ehird: you don't store octets!
22:37:02 <ehird> two equivalent strings can be different lengths of codepoints
22:37:07 <ais523> you store the raw unicode values, including the ones above 256
22:37:15 <ais523> if someone's using combining characters that's their fault
22:37:27 <ehird> ais523: heh, nice attitude
22:37:35 <ehird> reminds me of 'if someone's using unicode that's their fault'
22:37:40 <ehird> unfortunately it's a crappy attitude :)
22:37:40 <ehird> brb
22:37:51 <ais523> ehird: combining characters should add extra to the length of the string for all sorts of reasons
22:38:07 <ais523> partly because editing them can be done by editing the combining character and the character it combines to separately
22:38:12 <ais523> so you can put the cursor between them
22:38:30 <ais523> and partly because otherwise you could have infinitely long characters by overprinting multiples of the same combiner
22:39:18 * Sgeo downloads a LiveCD w/ KDE 4.0.4
22:43:46 <ais523> Sgeo: a LiveCD of what?
22:43:53 <ais523> KDE doesn't run without some OS supporting it
22:44:10 <Sgeo> http://home.kde.org/~binner/kde-four-live/
22:44:13 <ais523> or is it designed to be able to run KDE from assuming you already have a particular OS running?
22:44:17 <Sgeo> OpenSUSE
22:44:31 <ais523> ah
22:45:22 <ehird> Back
22:45:26 <Sgeo> wbehird
22:45:27 <ehird> ais523: yes, but
22:45:31 <ehird> things are still broken
22:45:34 <ehird> if you don't have special strings
22:45:44 <ais523> ehird: how is an interp meant to tell if something's a string or not?
22:45:55 <ehird> ais523: special syntax
22:46:00 <ehird> just like you can't S functions consistently
22:46:02 <ehird> in underlambda
22:46:04 <ais523> AAAAARRRRRRRRGH!
22:46:04 <ehird> you have to use a list
22:46:10 <ehird> ais523: you already have one element of that
22:46:20 <ais523> what do you mean "you have to use a list"
22:46:24 <ais523> of course you can S functions
22:46:29 <ehird> ais523: you told me off for doing it
22:46:29 <ais523> the interp just prints out the function
22:46:32 <ais523> nothing hard about that
22:46:35 <ehird> you said it would probably say <function>
22:46:36 <ehird> or similar
22:46:39 <ais523> you weren't printing out functions, though
22:46:39 <ehird> in a reference interp
22:46:42 <ehird> what wsa i
22:46:45 <ais523> you were trying to print out their source
22:46:46 -!- timotiis_ has changed nick to timotiis.
22:46:56 <ehird> well, yes :P
22:46:57 <ais523> printing out a function is a perfectly good, defined possibility
22:47:06 <ehird> ais523: ok, but special syntax for strings isn't evil
22:47:07 <ais523> it may not be human-readable (although it might be)
22:47:10 <ehird> "abc" can just ... make a string
22:47:12 <ais523> but you can read them back in again
22:47:14 <ehird> it's simple
22:47:17 <ais523> and "abc" does just make a string
22:47:21 <ehird> & lets unicode support be exemplary
22:47:26 <ais523> but its equivalent to a list of characters
22:47:35 <ais523> which are numbers
22:47:40 <ehird> :|
22:48:00 <ais523> that way, list-manipulation and string-manipulation functions are the same thing
22:48:43 <ehird> Doesn't work with unicode
22:48:54 <ehird> you have to do it like haskell
22:49:04 <ais523> ehird: there are only so many characters on a keyboard
22:49:24 <ehird> ais523: so multi char names
22:49:44 <ehird> you'll need em eventually
22:49:51 <ais523> maybe we can have, say, A be a command for extracting the first element of a list, and Á be a command for extracting the first char of a Unicode string
22:49:52 <Sgeo> How is unicode stuff stored in C?
22:49:59 <ais523> Sgeo: in wchar_ts
22:50:03 <ais523> but not very successfully
22:50:10 <ais523> nobody seems to support or use them properly
22:50:19 <Sgeo> So what do people use?
22:50:21 <ehird> Sgeo: ICU
22:50:25 <Sgeo> ICU?
22:50:30 <ehird> err no
22:50:54 <ehird> icu-project.org
22:50:55 <ehird> Sgeo:
22:51:04 <ais523> ehird: combining characters are just wrong in terms of making sense
22:51:05 <ehird> Sgeo: but most importantly? Stop whatever you're doing and go /learn c/
22:51:11 <ehird> ais523: tough. they're here.
22:51:16 <ais523> what happens if you read in input and it has an unmatched combining character at the start?
22:51:22 <ehird> ais523: tough. they're here.
22:51:22 <ais523> most programs existing today could handle that
22:51:26 <ais523> your proposal couldn't
22:51:30 <ehird> yes it could
22:51:54 <ais523> you're trying to treat combining characters and the characters they combine with as one char
22:51:59 <ais523> but nothing treats them like that
22:52:20 <ehird> i'm not
22:52:27 <ais523> the correct Underlambda way to handle this, anyway, would be for a combining char + the char it combines with to actually be one char
22:52:35 <ais523> just assign it a massively large integer as a codepoint
22:52:39 <ais523> then strings will be lists again
22:52:42 <ais523> that's a /lot/ neater
22:52:54 <ais523> and you could have conversion functions to and from other encodings, if needed
22:53:14 <ais523> happy?
22:53:24 <ehird> ais523: not what i said :P
22:53:29 <ais523> no, not what you said
22:53:32 <ais523> much better
22:54:07 <ais523> you'd want duplicate commands for everything
22:54:14 <ais523> that's not good style at all
22:54:21 <ehird> didn't say that
22:54:22 <ehird> oh well
22:54:23 <ehird> :)
22:54:24 <ais523> it's as bad as the strtof strtod thing
22:55:39 <ais523> so, data types: function, number, list
22:55:47 <ais523> oh, and continuation
22:56:05 <ais523> they're functions too, but special-casing them will add a lot of memory efficiency, probably, if there's some easy way to do it
22:56:24 <ehird> ais523: we need to display them as functions
22:56:24 <ais523> Underlambda numbers are nonnegative integers the way I've done it, though
22:56:24 <ehird> so why not function?
22:56:29 <ais523> I may need to add a floating-point type
22:56:33 <ehird> ais523: also, let's maybe do CPS
22:56:33 <ais523> ehird: everything's a function
22:56:36 <ehird> then continuations are cheap
22:56:51 <ais523> ehird: an Underlambda continuation is expensive as source, though
22:57:10 <ais523> obliterate the current program and stack, recreate the stack, handle payload, run rest of program
22:57:15 <ais523> that's what the code amounts to
22:57:28 <ehird> ais523: aha but if you do cps
22:57:33 <ais523> and although that's what needs to be printed out, moving around multiple copies of the program would be insane
22:57:39 <ais523> it's much better to use a CPS continuation instead
22:57:45 <ais523> and convert that into a function if and when necessary
22:58:49 <ehird> ais523: um
22:58:53 <ehird> CPS continuation = function..
22:59:03 <ehird> in ANYTHING
22:59:10 <ais523> yes
22:59:17 <ais523> but can you print out source code for a CPS continuation?
22:59:22 <ais523> in any language?
22:59:42 <ais523> what I mean is, presumably we'll be throwing around a pointer or something like that as the continuation
22:59:52 <ais523> but will have to write the whole thing out when writing it to a file
23:00:15 <ais523> you could space-optimise by grouping data stack and call-stack in continuations, like C-INTERCAL does
23:00:18 <ehird> ais523: we won't make our c cps
23:00:35 <ais523> that is, use shallow copies of bits of the call and data stacks that are the same
23:00:40 <ais523> and refcount them
23:00:49 <ais523> that saves a huge amount of memory
23:00:54 <ais523> but it's different from a standard function
23:01:21 <ehird> hmmmmmm
23:01:45 <ehird> * ais523 (n=ais523@147.188.254.116) has left #ircnomic ("(1) DO COME FROM ".2~.2"~#1 WHILE :1 <- "'?.1$.2'~'"':1/.1$.2'~#0"$#65535'"$"'"'&.1$.2'~'#0$#65535'"$#0'~#32767$#1"")
23:01:46 <ehird> ?
23:01:55 <ais523> ehird: INTERCAL sig
23:02:07 <ehird> ais523: why did you leave
23:02:18 <ais523> oh, because I didn't want to have to think about ircnomic
23:02:28 <ais523> I'm in the middle of a storm at Agora as it is
23:02:51 <ais523> and it seemed dead for the night
23:02:56 <ais523> so I symbollicaly parted from it
23:05:09 <ais523> on another note, that interview questions thread on thedailywtf.com now has at least one Brainfuck version
23:09:40 <ehird> ais523:
23:09:48 <ais523>
23:10:09 <ehird> ais523:
23:10:42 <ais523> ?
23:11:52 <Sgeo> ais523, the important CFJ is 1932?
23:12:04 <ais523> yes
23:12:09 <ehird> ais523:
23:12:12 <ais523> maybe I should rejoin #ircnomic after all
23:13:56 <Sgeo> How are you allowed to make your judgement a contract?
23:14:03 <ais523> Sgeo: it's an equity case
23:14:09 <ehird> dooo dooo
23:14:17 <ais523> the judgement is a contract, according to the rules
23:15:29 <ehird> #esoteric SUBJECT SERIES: Programming misconceptions
23:15:34 <ehird> "Huffman encoding sucks. I wrote a program in high school that did it. Stupid algorithm doesn't even give you the same document back when you decode it!" -- reddit comment
23:15:51 <ais523> that's not a programming misconception, that's a bug
23:16:03 <ehird> ais523: in someone's brain ;P
23:16:28 <ais523> ehird: you should get the same document back after decoding, if the encoder and decoder are compatible
23:16:44 <ehird> ais523: yep
23:16:55 <ehird> this person doesn't realize that
23:17:08 <ais523> the fact that eirs didn't means that eir interpreter was buggy
23:17:24 <ais523> wow, it took me far too long to figure out that "eirs" was the correct pronoun
23:18:05 <ehird> i like singular they :|
23:18:13 <ais523> so do I
23:18:18 <ais523> but I'm nomicing a lot at the moment
23:20:47 <ehird> ais523: 3 + 4 is the standard smalltalk test program
23:20:51 <ehird> IMO it should be 4 - 3
23:20:57 <ehird> since the parser might be going the wrong way ;)
23:21:10 <ais523> 3 + 4 should do something far more interesting than returning 7
23:21:20 <ais523> in INTERCAL, + is a list separator, sort of like , in most other languages
23:21:34 <ehird> ais523: also, I'm probably going to write a ruby nomic
23:21:42 <ehird> would you participate? you can pick up perl from perlnomic so..
23:21:54 <ais523> "you can pick up perl from perlnomic"
23:21:59 <ais523> no you can't, surely?
23:22:16 <ais523> and I probably wouldn't participate in a rubynomic just because that would be too many nomics at once, and I'm busy with exams at the moment
23:22:26 <ehird> ais523: ihope doesn't know perl
23:22:31 <ehird> and e participates in perlnomic
23:22:36 <ais523> ehird: not really
23:22:44 <ais523> e participates in the bite game
23:22:49 <ehird> also, rubynomic would probably be really trivial
23:22:51 <ais523> and votes when people tell em to
23:22:55 <ehird> so maybe 5 minutes a day :-P
23:23:16 <ais523> not much fun in a nomic if you can't spend several weeks planning scams
23:24:21 <ehird> ais523: scams would be easy!
23:24:31 <ais523> ehird: scams shouldn't be easy
23:24:37 <ais523> an easily-scammable nomic could be in trouble
23:24:49 <ehird> :<
23:25:17 <ais523> unless you introduce a strong tradition of using scams to fix emself
23:25:35 <ais523> standard protocol when you find a way to do anything is to give yourself a few points and fix the flaw at the same time
23:25:55 <ais523> in longer-running nomics, winning the game at the same time is also acceptable as long as you restore the ruleset to someting sane
23:26:23 <ehird> <ais523> unless you introduce a strong tradition of using scams to fix emself # that sounds fun
23:26:29 <ais523> it is
23:26:37 <ehird> every 2nd proposal a scam :-)
23:26:58 <ais523> ehird: you don't understand the art of nomicish scamming
23:29:59 <Sgeo> What does the tradition say about scams that can't be exploited to fix emselves?
23:30:16 <ais523> Sgeo: that particular tradition doesn't bind em
23:30:29 <ais523> but it's bad form to repeat the same scam more than once in any case
23:30:34 <ais523> even if someone else did it first time
23:30:36 <ehird> :)
23:30:47 <Sgeo> Didn't that happen with the Walrus scam?
23:30:47 <ais523> generally scams will be fixed by voting on a rules-change
23:30:49 <Sgeo> in Agora?
23:30:50 <ais523> Sgeo: yep
23:30:57 <ais523> the same thing happened in IRCnomic too
23:31:00 <Sgeo> A copycat scam soon emerged, and people voted it down?
23:31:02 <ais523> and it was the same scam...
23:31:09 <ehird> ais523:
23:31:10 <Sgeo> ais523, hm, when, and why don't I remember?
23:31:17 <ehird> Compare: http://beta.reddit.com/, http://sp.reddit.com/reddit2mockup.jpg
23:31:20 <ehird> So ironic..
23:31:21 <ais523> near the start of the most recent game, after the suffusion
23:31:35 <ais523> I submitted a proposal activity-bonus that gave people points for voting FOR it
23:31:49 <ais523> then someone else (it might even have been you) tried the same thing and people voted AGAINST it
23:31:52 <ehird> it was me
23:31:55 <ais523> oh
23:31:56 <ehird> but people voted for it
23:31:57 <ehird> :|
23:32:08 <ais523> maybe there were three attempts, then
23:32:16 <ais523> ISTR the first one is the only one that passed, though
23:33:12 <ehird> no
23:33:14 <ehird> mine did
23:33:22 <ais523> do you have logs for that?
23:33:27 <ehird> i think mine predates yours
23:33:29 <ehird> ais523: nope wiped
23:33:39 <Sgeo> Logs wiped? Howwhy?
23:33:57 <ehird> i wiped my machine
23:33:58 <ehird> server
23:35:35 <ais523> my logs only go back to April 21
23:36:42 <ehird> ais523: when did ircnomic start
23:36:58 <ais523> can't remember
23:37:39 <ihope> I could find the beginnings of ircnomic.
23:38:20 <ais523> ah, I seem to have the whole thing
23:38:27 <ihope> April 20.
23:38:34 <ais523> April 21 was the start of the original ruleset after the first suffusion
23:38:40 <ihope> [2008-04-20 15:22:33] <ihope> Rule 1: Anyone may propose a change to the rules and vote either FOR or AGAINST a proposed change. After five minutes, if more than half of the votes are FOR the proposed change, it occurs.
23:38:42 <ihope> Aye.
23:38:43 <ais523> which is when I first came to hear of it
23:39:26 * ihope nods excessively
23:39:55 <ehird> the original suffusion was, i seem to remember, epic
23:39:57 <ais523> ehird: looking through my logs, it seems that my activitybonus passed, and then you proposed to give /yourself/ points (and nobody else), and that failed
23:40:24 <Sgeo> Did it involve the rule that, if it became negative, would knock out the other rules?
23:40:24 <ehird> ais523: nah, i did another one soon
23:40:30 <Sgeo> Or was that after the first suffusion?
23:40:34 <ehird> Sgeo: after
23:40:38 <Sgeo> oh
23:40:49 <Sgeo> I don't think I was around for the first suffusion, was I?
23:41:24 <ehird> nope
23:41:28 <ehird> me, ihope, kyevan, some others
23:41:34 <ehird> it was very oldskool.
23:44:11 <ehird> ais523: hm
23:44:15 <ehird> reddit lets you create your own reddits
23:44:18 <ehird> redditnomic? :D
23:44:56 -!- ais523 has quit ("(1) DO COME FROM ".2~.2"~#1 WHILE :1 <- "'?.1$.2'~'"':1/.1$.2'~#0"$#65535'"$"'"'&.1$.2'~'#0$#65535'"$#0'~#32767$#1"").
23:45:05 <ihope> Pancake is the best nomic!
23:45:16 * ihope induces ehird to participate in it
23:45:23 <ehird> pancakonomic
23:46:04 <ihope> If you want to Suggest that it be renamed, go ahead. :-P
23:47:19 * ihope ponders an improvement that could be made to those light, fluffy Pancake rules
23:49:54 <ehird> brb
23:57:06 <ehird> back
23:57:15 <ehird> ihope: Would you participate in a smallnomic?
23:57:17 <ehird> Smalltalk nomic
23:57:28 <ihope> Maybe.
23:57:54 <ihope> I take it there's a way for Smalltalk to be a nomic.
23:59:04 <ehird> ihope: Yeah .. by writing a nomic app for it :P
23:59:20 <ehird> Basically, it's Perlnomic, except instead of editing files, you edit classse and methods
23:59:39 <ihope> Numix.
←2008-05-06 2008-05-07 2008-05-08→ ↑2008 ↑all