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