00:01:20 <- 00:01:24 in the game, that is 00:01:36 just had to make sure i'm not misunderstood 00:01:37 -> 00:04:10 -!- timotiis has quit (Read error: 110 (Connection timed out)). 01:01:31 -!- sebbu has quit ("@+"). 01:34:03 -!- ehird has quit (Remote closed the connection). 01:49:40 -!- Corun has quit ("This computer has gone to sleep"). 02:09:51 -!- Sgeo has joined. 03:43:07 http://www.codu.org/wiki/?title=Card-Based+Nomic // idea for a card-based nomic 03:48:23 * oerjan vaguely recalls the first nomic game he played had all the initial rules printed on cards 03:49:12 other than that, it was probably an original Suber version 04:09:31 Goodbye cruel Internet... at least until Midnight EDT.. 04:10:45 kthxbai 04:14:32 http://en.wikipedia.org/wiki/Alex_Smith_%28The_Simplest_Universal_Computer_Proof_contest_winner%29 04:14:39 I know a guy on Wikipedia D: 04:17:14 omgwtfbbq 04:19:32 yay wikipedia's Search has autocompletion? 04:19:52 Wot? 04:22:32 for some reason, i went to wikipedia by hand and started writing Alex Smith in the search box... 04:22:58 it came up with a menu... 04:24:51 ... 04:24:55 He's younger than me D: 04:25:07 what am I doing with my life, not winning awesome awards. 04:31:06 What amuses me is that the article's title isn't his name. 04:31:16 -!- Sgeo has quit (Read error: 110 (Connection timed out)). 04:31:29 It's "Alex Smith (The Simplest Universal Computer Proof contest winner)", like his name alone would be too obscure so they have to add that. 04:32:18 which it is, in that he is not the most famous person named Alex Smith 04:32:51 Sure, but that seems a little long. 04:33:06 curiously Alex Ian Smith is unused... 04:34:04 as is Alexander Ian Smith 04:39:01 -!- pikhq has quit (Read error: 110 (Connection timed out)). 04:40:25 I can't seem to do any programming nowadays. 04:40:36 It's frustrating. 04:42:33 Maybe I should write that Post-to-C on Python. 04:42:41 I don't really need to write it in C. 04:48:50 Uh, it's probably because his name is too /common/. 04:49:26 Yeah, just "Alex Smith" leads to the page of someone whose life is nowhere near as valuable. 04:50:27 -!- Sgeo has joined. 04:52:10 unfortunately quarterbacks beat geeks in famousness 90% of the time :D 04:54:03 Who ever said life was fair? 04:54:13 I don't know, but I bet he was a quarterback. 05:28:18 Sgeo: http://www.codu.org/wiki/?title=Card-Based+Nomic 05:28:51 Hm. 05:29:07 With the Post-to-C translator, I get this thing for a short program : http://membres.lycos.fr/bewulf/Russell/b.c 05:29:32 But I get incompatible type for assignment on the state="b"; 05:29:49 Where state is char state[20]="a"; 05:29:54 Uhhh, what idiot wrote if (state=="a")? 05:30:00 Me. 05:30:05 I know, I'm bad :( 05:30:07 TEE HEE 05:30:10 Go lurn C 05:30:10 ... 05:30:12 Oh. 05:30:16 Right. 05:30:21 C has no simple string comparaison. 05:30:43 Sure it does ... just they're in the standard library, not the language proper :P 05:30:52 How lame is that! 05:31:04 I'm too spoiled by Python. 05:31:16 Seems appropriate for a language that basically is just portable assembler. 05:32:13 I didn't want to involve the libraries. 05:32:16 Slereah, proof that Python is dangerous for humans! 05:32:49 More men were lost at C than they were swallowed by Python. 05:33:06 PUN ... SO ... LAME ... 05:33:15 Indeed. 05:33:16 MUST ... NOT ... RIP OUT ... VITAL ORGANS ... 05:33:38 * oerjan makes a call to the pun police 05:34:39 I used to have some sort of C sheet full of functions. 05:34:57 I wonder where it went 05:37:02 Ah, strcpy 05:37:04 and cmp 05:45:41 -!- oerjan has quit ("leaving"). 05:45:46 http://membres.lycos.fr/bewulf/Russell/b.c 05:45:51 This look allright? 05:45:57 It compiles, at least. 05:46:08 (Program is a:@:b;b:<:c;c:a:d;d:!:d ) 05:53:08 strcmp returns 0 if the strings match. 05:53:28 Oh. 05:53:34 I'll add a bang. 05:53:43 That's what she said. 05:53:49 Oh you. 05:54:03 Thar. 05:54:13 Other than that, seems okay? 05:54:22 In a Post machine kind of way. 05:54:36 It's 7 AM, I don't really want to deal with IO to find out. 06:21:58 http://www.youtube.com/watch?v=1WfJT_0WKEM earthrise+set if anyone cares 06:37:22 nifty 06:38:11 footage from a japanese satellite? 06:39:10 http://inventorspot.com/articles/japanese_spacecraft_records_full_earth_rising_over_moon_13000 06:39:30 http://forums.fark.com/cgi/fark/comments.pl?IDLink=3556810 06:43:13 -!- Sgeo has quit ("Ex-Chat"). 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:16:46 -!- jix has joined. 08:37:58 -!- Def has joined. 08:39:09 -!- olsner has quit ("Leaving"). 08:47:55 -!- Def has quit (Read error: 104 (Connection reset by peer)). 08:48:10 -!- Def has joined. 08:57:49 -!- Def has quit (Read error: 104 (Connection reset by peer)). 08:58:15 -!- Def has joined. 09:01:58 -!- Iskr has joined. 10:28:02 -!- Corun has joined. 10:41:02 -!- GreaseMonkey has quit ("Unisex."). 10:57:20 -!- ais523 has joined. 11:15:04 -!- lifthrasiir has quit (Read error: 110 (Connection timed out)). 11:37:20 -!- lifthrasiir has joined. 13:03:16 -!- Corun has quit ("This computer has gone to sleep"). 13:07:43 -!- timotiis has joined. 13:30:32 -!- timotiis has quit (Read error: 110 (Connection timed out)). 13:31:24 -!- pikhq has joined. 14:06:37 -!- Corun has joined. 14:11:25 -!- Corun has quit (Client Quit). 14:12:28 -!- Corun has joined. 15:13:55 -!- timotiis has joined. 15:37:50 -!- Corun has quit ("This computer has gone to sleep"). 15:42:40 -!- timotiis has quit (Read error: 110 (Connection timed out)). 15:49:32 -!- Corun has joined. 16:15:23 -!- ehird has joined. 16:19:38 oklopol: your pong rocks 16:19:44 i think the network might require more work though 16:24:04 -!- sebbu has joined. 16:25:49 [16:27] [CTCP] Sending CTCP-PING request to oklopol. 16:25:49 [16:27] [CTCP] Received CTCP-PING reply from oklopol: 123 seconds. 16:26:08 so oklopol actually implemented my idea of a fake timestamp as a ping response? 16:26:31 I've thought of some new esoteric IRC ideas, one of which is even better than /swapnick 16:26:36 I call it 'hunter2 mode' 16:26:50 whenever you try to send your own password, it instead sends a sequence of asterisks 16:26:51 ais523: i can imagine what that does 16:26:53 yep 16:27:07 ais523: /swapnick swaps call occurences of X with Y right? 16:27:08 well, in nicks. 16:27:12 not just ordinary asterisks, though, it uses lots of different asterisks from Unicode to create an asterisk sequence unique to you 16:27:23 ehird: no, it swaps nicks with another user with a client like yours 16:27:24 >oklopol< CTCP VERSION ... no reply :) 16:27:33 ais523: i think oklopol uses no-name-script 16:27:36 which is an mirc extension 16:27:38 which does loads of crap 16:27:43 probably the ping thing is down to that 16:27:50 * [oklopol] (n=nnscript@oklopol.yok.utu.fi): oklopol ominovorol 16:27:52 so yeah, nnscript 16:28:05 anyway, the point of that asterisk thing is that other people can copy/paste your asterisks, and you'll see your own password 16:28:10 ais523: Befunge CTCP: it asks you how you want to reply 16:28:15 :D 16:28:23 but if they copy/paste someone else's asterisks, all you'll see is asterisks 16:28:33 ais523: you could reverse it, maybe 16:28:37 also 16:28:37 http://www.akalin.cx/2008/04/23/bfpp-embed-brainfuck-in-cpp/ 16:28:53 ehird: when I ctcp version oklopol, I get the answer back in bold 16:29:07 and yes, it is NoNameScript 16:29:07 ais523: no name script does stuff like that 16:29:28 it's vaguely annoying but apparently nice to use 16:30:24 ais523: by the way, do you know how to force google into calculator mode? 16:30:30 calc:foo doesn't work 16:30:33 even thugh define:foo does 16:30:37 I think it's = at the start of the line 16:30:54 no, end of the line 16:31:11 ais523: 'a=' still goes a-searching 16:31:18 so does '0b1=' 16:31:27 ehird: it ignores the = on a parse failure 16:31:33 ais523: 0b1 isn't a parse failure 16:31:37 try '0b1 in hex' 16:31:39 but otherwise the = forces it into calculator mode, according to Google's documentation 16:31:57 what i'm saying is that in a calculator if you put a number in you expect that number out 16:32:06 ais523: idea -- 16:32:09 change X into (X)+0= 16:32:54 ais523: by the way, epiphany fails at its google search 16:33:00 ehird: how? 16:33:01 if you have + in a search term it turns it into a space 16:33:08 i assume it just pastes it after google.com/search?q= 16:33:10 oh, bad encoding 16:35:24 ehird: I've tried to implement hunter2 mode using Konversation replaces (not using my real pwd, of course) 16:35:32 what do you see after the colon? : ⁎⁡*⁕⁑⁢⁂⁎ 16:35:37 ⁎⁡*⁕⁑⁢⁂⁎ 16:35:45 grr, I just see asterisks on the reply 16:35:45 it doesn't really look like a bunch of asterisks though 16:35:51 there's an invisible times sign in there as well 16:35:52 ⁎ ⁡* ⁕ ⁑ ⁢⁂ ⁎ 16:35:55 (with added spaces) 16:35:58 and it is a bunch of asterisks 16:36:03 ais523: but ugly looking 16:36:04 just not aligned horizontally 16:36:09 i suggest filtering it to comic-swears 16:36:16 £&*$@!£$(* 16:36:37 grr, it seems the autoreplace doesn't work properly incoming 16:36:48 oh, and invisible times sign is a great idea for a Unicode character 16:36:57 there's invisible function application, too 16:37:21 * ais523 turns off hunter2 mode 16:37:43 ais523: On the subject of comic swears -- 16:38:01 a while ago there was someone who got fed up of tinyurl sites and invented a site that let you gave urls an arbitary name 16:38:03 and called it DecentURL 16:38:14 http://decenturl.com/ 16:38:23 New Scientist uses notlong.com, which I think does the same thing 16:38:38 $SEKRITPERSONIINTERNETKNOW owns http://indecenturl.com/ 16:38:44 and it is in a private beta right now 16:39:01 it is the most technologically advanced site for turning a perfectly innocent URL into something with a long string of profanity 16:39:07 it even lets you configure what character it seperates them by 16:39:11 and what categories the words are chosen from 16:39:30 it is quite the pointless waste of time, but an admirable one 16:40:12 vjn.cc does what decenturl does too 16:40:35 right 16:40:41 i was just stating what indecenturl was a direct parody of 16:40:46 oklopol: they beat tinyurl.com in terms of domain name length 16:40:57 ais523: metamark has a good short domain 16:40:58 who beat? 16:41:01 the shortest registered domain names are apparently 4 chars long 16:41:09 ais523: yes 16:41:10 we have vv.vu 16:41:12 like a.tv 16:41:14 ah 16:41:18 oklopol: strlen("vjn.cc") < strlen("tinyurl.com") 16:41:19 indeed, . 16:41:26 the most practiacl ones to get are a 2-letter tld and a 3 letter domain 16:41:28 ais523: right, we not they, we 16:41:32 srz.ct and stuff like that 16:41:32 *well not 16:41:40 ais523: but i have a good system for keeping url lengths tiny after the slash 16:41:47 Unicode? 16:41:54 ais523: no -- you are meant to be able to remember them 16:41:55 (most Web browsers would /love/ that!) 16:42:19 but basically, by the time i get to e.g. 5 digits, the site has either been up really long, or got digg'd, slashdotted, and reddit'd at the same time for 10 days in a row 16:42:32 example url: http://srz.ct/d7E 16:42:36 simple 16:42:41 srz.ct isn't a good example of course 16:42:43 but you get the ied 16:42:46 *idea 16:42:54 "digg'd, slashdotted, and reddit'd at the same time for 10 days in a row"? 16:42:59 I don't think that's ever happened to anyone 16:43:03 ais523: exactly 16:43:17 ais523: also, have you heard my idea for INTERNET GARBAGE COLLECTION? 16:43:18 There's a.fi, b.fi, c.fi etc for the .fi ccTLD root name servers, but I don't think they'll officially give out one-letter names to anyone. 16:43:25 particularly slashdottings rarely last more than a day or so 16:43:26 that was spawned by my thinking about how to reuse urls with my idea 16:43:33 fizzie: I think i.am exists, but I've never tried to visit it 16:43:46 i.am is a redirection service too 16:43:47 if you haven't heard it, however, let me know 16:43:49 because it is AWESOME 16:43:52 There are a few old two-letter .fi domains like pp.fi and such. 16:44:06 i.am/oklopol 16:44:22 ais523: have you heard the idea? it is truly revolutionary 16:44:30 oklopol! 16:44:38 ehird: I haven't heard it 16:44:44 (pp.fi used to be the domain for EUnet's dialup users; currently it's some sort of web-based-data-storage-for-home-users thing.) 16:44:46 ais523: okay 16:44:58 it's actually WEB GARBAGE COLLECTION 16:44:59 so 16:45:10 you start by going through every page on the internet 16:45:19 if you find a link to one of your URLs 16:45:21 you set the mark bit on it 16:45:24 you do this recursively 16:45:27 now, you go through every url 16:45:31 and remove the ones without the mark bit set 16:45:37 ais523: VARIATION: Cheney web garbage collection 16:45:41 ehird: what about dynamically-generated content? 16:45:42 you make a new heap 16:45:45 and go through every page on the internet 16:45:49 if you find a link to one of your URLs 16:45:53 you copy it over to the new heap 16:45:53 you would, for instance, delete most search results pages on Google 16:45:55 you do this recursively 16:45:58 then you free the old heap 16:46:43 For some reason, although it's not at all similar, that reminds me of the multiple-universes-interpretation quantum-mechanical O(1) sort algorithm. 16:46:54 fizzie: :) 16:47:07 No, O(n) because there was the sortedness testing. 16:47:09 ais523: the same person who owns indecenturl pointed out EMAIL and IM 16:47:10 ah, quantum bogosort 16:47:16 but that's O(n) 16:47:16 so i made it go through EVERYTHING on the internet 16:47:22 ais523: then he mentioned graffiti 16:47:36 so eventually it involved analyzing every atom in the universe. 16:47:46 what, just the one universe? 16:48:06 ais523: Yes, it's distributed: the equivilent services in the other universes handle their own universes 16:48:08 -!- Corun has quit ("This computer has gone to sleep"). 16:50:06 ais523: have you seen tinygame? it's so AMAZINGLY AWESOME AND INTUITIVE that oklopol picked it up in minutes and now knows it better than i do 16:50:06 but seriously, what about dynamic pages? 16:50:11 and... 16:50:12 hmm 16:50:15 you time travel. 16:50:20 ehird: if it's that intuitive, you'd know it as well as oklopol 16:50:28 actually that's a better way to do GC than mine 16:50:39 step 1. time travel into the future when the GC has already been performed 16:50:49 step 2. go back to the present 16:50:52 step 3. delete all URLs not in the future 16:51:18 ehird: but then /any/ set of URLs would be time-loop-consistent 16:51:31 so you have to be very careful to pick the right possible future to time travel to 16:51:40 which requires you to do the garbage collection 16:51:50 ais523: use an oracle 16:52:02 ehird: then you don't need the time machine 16:52:23 ais523: reminds me of http://qntm.org/?f16 16:52:36 also, tinygame IS intuitive, I just HAVEN'T OPENED MY MIND TO ITS PARADIGM YET 16:53:29 ais523: http://rafb.net/p/pj1Jed90.html tinygame in its entirety. SAVE IT because it must be noted: i am going to bloat it up, for SPEED 16:53:43 ehird: whose is it? 16:53:49 ais523: Mine. :P 16:54:03 ais523: Oklopol wrote a TOTALLY AWESOME pong game in it yesterday. 16:54:06 and what's in pygame.locals? 16:54:12 It has COOL FLIP THINGS 16:54:16 and SPEEDUPS 16:54:21 and it rocks more than any pong i've played 16:54:23 ais523: pygame isn't mine 16:54:27 bt 16:54:28 but 16:54:29 I guessed 16:54:30 the reason i import it all 16:54:35 is so that when you do 'from tinygame import *' 16:54:37 but I sort of need to know what it does to understand the code 16:54:39 you get pygame's locals 16:54:43 ais523: that code doesn't use any of them 16:54:51 but when you do 'from tinygame import *' 16:54:52 you get things like 16:54:53 KEYDOWN 16:54:55 for event types 16:55:20 OK, and pygame itself does things like graphics handling 16:55:31 ais523: yeah, but i only use a very low level section of it 16:55:37 a screen which i can push pixels on. 16:55:41 ais523: and i redraw fully 16:55:45 hmm... it looks to me like you're just implementing the standard message-list idea 16:55:46 ais523: this is of course hideously slow and inefficient 16:55:59 which is why i am going to bloat it 16:56:00 I think Windows is the best-known system that works like that, but there are others 16:56:02 for speed 16:56:06 ais523: that's not the interesting part 16:56:14 ais523: its because oklopol said once 16:56:23 that pygame and stuff would be much better if they just had put(x,y,color) 16:56:47 the reason i have a few methods to override is that you want to handle events specially, and you can only do game stuff each tick 16:56:48 oh, you implement a persistent background 16:56:50 and you want to initialize it somehow 16:56:58 that you can put things on and take things off 16:57:14 ais523: can't take them off -- just put the pixel of the background colour 16:57:15 :))) 16:57:21 ais523: http://rafb.net/p/rOeGat40.html oklopol's 150line AMAZING pong game 16:57:25 a/z - player 1 16:57:29 k/m - player 2 16:57:35 exit code is -1 for player 1 won 16:57:38 and 1 for player 2 won 16:57:41 ehird: that URL reminds me of RodgerTheGreat's username 16:57:49 ais523: the ball inherits some of the paddle's speed, kinda. 16:57:56 and the spins are when you hit it at a certain direction. 16:58:03 and the paddles speed up if the ball is going fast. 16:58:06 ais523: and me too 16:58:07 ehird: now write it in just 150x150 pixels in Gammaplex 16:58:22 ais523: look at the Player and Ball classes 16:58:30 i would not want to write them in gammaplex 16:58:42 well, player is alright 16:58:44 but ball.. 16:59:01 ball isn't that bad 16:59:07 I think gammaplex has trig routines in its standard library 16:59:32 ais523: oklopol's pong is HARSH 16:59:37 one pixel off, bad luck, you lose 17:00:06 ehird: sounds like gammaplex :) 17:00:21 ais523: oklopol got the ball stuck in the middle at one point 17:00:24 i have no idea how 17:00:33 but i am glad that my game api leads to such rocking games 17:00:38 ais523: erase_on really makes me laugh :) 17:01:17 ais523: also, it's pretty easy to bash the ball and have it curve right back into your goal 17:01:20 due to the spins 17:01:36 ehird: we're busy blaming you over in #ircnomic 17:01:44 is it your fault that there are no rules and no propositions? 17:01:55 ais523: no 17:01:56 check the logs 17:01:58 it was voted on 17:27:42 -!- jix has quit ("CommandQ"). 17:29:37 -!- gigo has joined. 17:31:37 -!- jix has joined. 17:48:45 ais523: http://www.nonlogic.org/dump/text/1208969249.html 17:48:49 ^ that's mine 17:49:16 what language? BASIC? 17:49:44 Chipmunk BASIC, to be precise 17:49:51 412 bytes 17:50:16 one player, AI opponent included 17:51:28 RodgerTheGreat: oh, pong? 17:51:35 yup 17:51:37 wow 17:51:40 okay 17:51:42 we need to golf pong 17:52:10 ehird: http://pastebin.ca/992032 17:52:22 (this seems like a better channel for the Cyclexa conversation) 17:52:28 but I agree about Pong golf 17:52:31 ais523: what is the convention for perl packages that are just docs? 17:52:37 put them in a pm with just the docs and then 1;? 17:52:40 ehird: no idea 17:52:43 or have it outside the source tree 17:52:45 like cyclexa.pod 17:52:46 I generally put them in the same file as the source code 17:52:55 but I'm me and that's probably completely wrong 17:53:03 ais523: cyclexa in one file will be impossible to navigate 17:53:08 and having it just in the lexer file would be weird 17:53:17 ehird: probably hard to navigate, yes 17:53:26 although I do have hierarchical comment lines 17:53:27 RodgerTheGreat: nice work 17:53:30 i gotta top that 17:53:31 thanks 17:53:35 ais523: also, shouldn't we use CPerl's default indentation rules? 17:53:37 by changing the number of # signs before a comment 17:53:38 which is 2 spaces 17:53:43 not sure why, but it seems more common than any other 17:53:55 I am using 2 space indentation already 17:53:59 I nearly always do 17:54:01 I'm not sure I can crunch it any further in that language, so if you can get smaller you'll have me beat for a while 17:54:04 except sometimes I use 1 for BF 17:54:06 ais523: 17:54:07 # 17:54:07 sub cxa_normalise($) 17:54:07 # 17:54:07 { 17:54:07 # 17:54:09 # Read the arguments 17:54:11 # 17:54:13 local $_ = shift; 17:54:15 err, ignore the extra #s 17:54:17 but that is 4 spaces 17:54:33 ah, I had the wrong file open, ignore me 17:54:37 it's meant to be 2 anyway 17:54:48 what's fn? 17:54:50 RodgerTheGreat: fn 17:54:57 function call 17:55:04 oh okay 17:55:21 perhaps we should golf brainfuck pong 17:55:33 or "extended function"- fn 48 gets the y coordinate of the last pen input 17:55:44 (this interpreter runs on PalmOS) 17:55:47 ais523: ~/src/cyclexa/impl/src/Cyclexa/Lexer.pm 17:55:52 oklopol: BF doesn't have graphics or cbreak capabilities, but I'm sure there's some way to work around them 17:56:03 ehird: I wouldn't expect any less from a proper Perl directory tree 17:56:04 well 17:56:12 we would make a protocol stub for graphics 17:56:14 CLC-INTERCAL's gets like that 17:56:30 like, output is xyc 17:56:31 oklopol: pity Sgeo isn't in the channel, they'd just add it to PSOX 17:56:36 yeah 17:56:37 but 17:56:42 but shouldn't it be Language::Cyclexa? 17:56:46 ais523: no, he'd spend days debating over how to add it elegantly to PSOX 17:56:46 that would need initialization 17:56:51 http://www.pouet.net/prod.php?which=5060 17:56:54 and bbl 17:57:07 and no, i don't think so -- I mean, web frameworks aren't Net::Web::Catalyst 17:57:13 Language:: seems to be smaller languages 17:57:30 we could just make something like each three bytes output mean x, y, color 17:57:36 and input is just keys 17:57:41 or null 17:57:44 ais523: by the way, i'm going to remove the ($$$) things because every time i was in #perl being always ranted about them for days on end 17:57:49 so i guess they don't like them, for some presumably good reason 17:57:55 prototypes? 17:58:00 yeah 17:58:05 they don't like them because they clash with old code 17:58:08 no 17:58:09 someone wanna make a server for that protocol? might be nice for pong golfing in any language 17:58:09 always using them is fine 17:58:12 ais523: nope 17:58:13 never using them is very slightly less fine 17:58:15 they're Considered Harmful in there 17:58:29 they link to a biiig email that takes them apart one-by-opne 17:58:41 ehird: it's because they break the traditional Perl argument syntax 17:58:50 ais523: nope, never heard that mentioned 17:58:53 and screw with the parser without the user's knowledge 17:59:10 now, I'm an esolanger, so screwing with the parser for better syntax is fine by me 17:59:29 and ehird, you talked about how much you like Lisp macros, so Perl's lesser version of syntactic sugar should be fine by you too 17:59:33 where is that email, anyway? 18:00:21 maybe I should ask in #perl 18:00:27 possibly 18:00:41 but they just really didn't seem to like it 18:00:52 ais523: also, i have a feeling that 'use Fatal qw(open close)' can't be good in a library module 18:01:00 ehird: definitely 18:01:02 not sure if i'll have to change the code to handle errors from them in that case though 18:01:06 or if it'll be ok 18:01:10 it's fine in the main program for saving on error handling though 18:01:18 my code isn't really production-ready yet 18:01:27 ais523: yeah 18:01:31 just cleaning it up so i can put it in the module tree 18:01:43 by the way, shouldn't 'local $_' just be '$_'? 18:01:59 ehird: almost certainly not 18:02:07 also, it occurs to me that using $_ as an argument name messes up when callers were using $_ for something else 18:02:14 local $_ saves the value of $_ 18:02:19 and restores it at the end of the procedure 18:02:22 so you don't mess up the caller's $_ 18:02:25 okay 18:02:30 shouldn't it just be a named argument? 18:02:36 i mean, for most of the functions :) 18:03:11 ehird: $_ exists to save on typing in // and similar expressions 18:03:31 as it exists precisely for that purpose, I figured it was worthwhile using it 18:03:39 ais523: yeah 18:03:46 ; #or do{die "Unmatched {{$1{ found in program.";}; 18:03:49 ais523: why's that commented out? 18:04:02 also, hmm. it occurs to me that making long regexps work on multiple lines is non-trivial 18:04:13 I don't know 18:04:28 and ehird, there's a regexp modifier that allows . to match newlines 18:04:42 also, eek at our login sscript 18:04:44 UPPERCASEHTMLTAGS 18:04:45 :-) 18:05:03 ehird: sorry 18:05:06 also, ais523 18:05:06 my $checkpass = $dbh->prepare("SELECT COUNT(*) FROM users WHERE username = ? AND password = SHA1(?)"); 18:05:12 I got into the habit of doing that before lowercase was standardised 18:05:12 shouldn't you just SELECT * 18:05:16 to get the user itself back 18:05:18 ehird: no no no 18:05:23 okay 18:05:25 SELECT * is /very/ evil 18:05:32 that's a new one. 18:05:39 got any sources to back that? 18:05:50 ehird: it breaks your applications when you add or change the order of columns 18:06:05 ais523: that's why you get it back as a hash or an object. 18:06:05 -!- timotiis has joined. 18:06:12 accessing rows by offset is the evil thing. 18:06:15 ais523: not if you fetch the result as a hash 18:06:21 very evil. 18:06:23 ehird: but you can get the COUNT(*) back as a single-element array 18:06:29 ais523: please read what i said 18:06:36 ehird: I did 18:07:00 oh, and I was talking to the #perl people about prototypes 18:07:07 they don't do what most people expect 18:07:12 but do do what I expect 18:07:24 I must be too used to esolangs, because I'm fine with expecting weird things 18:07:36 ais523: but yeah, is there a reason your 'die' is commented out? 18:07:43 I can't think of one offhand 18:07:49 we could try uncommenting it to see what happens 18:07:53 I can't remember why I commented it 18:08:06 wait... 18:08:09 ais523: there has to be a better way to do errors than die'ing 18:08:12 -!- Sgeo has joined. 18:08:19 it may be an issue when you have two {{a{}a}} blocks in a program 18:10:13 but it oughtn't to be one 18:10:27 as long as they're properly matched form left to right 18:10:44 ais523: don't tell me that perl has no error handling mechanisms! ;) 18:10:57 ehird: oh, the die is normally replaced by the standard Carp module 18:11:01 I've never learnt how to use it 18:11:11 but basically it causes the module that called you to die, unless handled 18:11:22 so you do that when it's your caller's fault 18:11:23 ais523: I can see our collaborative perl efforts will be fun 18:11:29 ehird: yep! 18:11:50 'In module Cyclexa::X, we see an object-oriented interface to the parser, utilizing closures and many CPAN libraries' 18:11:55 our programming styles are so different that a) we catch things the other wouldn't, and b) we spend ages with nitpicky stylistic arguments 18:12:01 'In module Cyclexa::Y, we see something from the early 90s.' 18:12:17 ehird: yes, we should have both available 18:12:27 croak - die of errors (from perspective of caller) 18:12:28 but should probably mostly work on X to start with, even though I hate Perl's OO model 18:12:29 that seems like what I want 18:12:34 ehird: that's it 18:12:44 ais523: also, why is there no standard on what qw style to use to import from modules 18:13:12 ehird: my guess is that you're supposed to decide what to import based on the module anyway 18:13:18 ais523: I mean 18:13:22 use sdfsdf qw/foo/; 18:13:23 vs 18:13:25 use sfsdfsd qw(bar); 18:13:27 etc 18:13:34 user's choice of delimters, surely 18:13:41 I normally see qw() 18:13:51 but the hole point of the quote-like operators is you choose a quote that works with your data 18:13:57 s/hole/whole/ 18:13:59 ais523: also, hmm. i don't think i *can* shorten your >80col rxp 18:14:02 without making it multiline 18:14:08 and then i'd force you to document each line of the regexo 18:14:09 ;) 18:14:10 *regexp 18:14:12 which one? 18:14:17 s/(? ehird:it's fine to split /e regexps at the slash 18:14:43 oh 18:14:44 of course 18:14:47 search on one line, replacement on the next 18:15:08 s=(? $1.join('@@@',split(//,$2)).'@'=gse; 18:15:11 things get a lot saner once backslash escaping has been handled 18:15:14 i cannot believe that there is a program which can execute this 18:15:15 :-) 18:15:23 ehird: but you're an esolanger 18:15:23 ais523: oh, meep: 18:15:25 s/(? i can split on the while though 18:15:54 ais523: I am spending an awful long time just adding spaces between binary ops 18:15:54 :P 18:16:12 ah, if you like that style, then that's fine 18:16:14 my $cr="\\\@\\".join "\\\@\\",split(//,$ct); /// i have no idea how precedence applies here 18:16:17 I tend to oscillate myself 18:16:20 is it a.(b,c) 18:16:22 or (a.b),c 18:16:26 or a,c.b 18:16:29 or watermelons 18:16:32 it has to be a.(b,c) 18:16:36 or the types wouldn't match 18:16:45 oh, and comment in Perl is # not /// 18:16:46 ais523: so how does that thing work 18:16:50 shouldn't it be 18:16:59 b;my $cr = a . b; 18:17:00 err 18:17:00 a.c 18:17:05 or does it actually do something 18:17:16 ehird: it does actually do something 18:17:27 ais523: do I really want to know 18:17:42 it puts the string \@\ at the start, end, and between every char of $ct, and stores the result in $cr 18:17:44 also, i may suggest that you use more qw when generating perl code 18:17:58 ehird: qw is used to write array literals 18:18:04 oh. yeah 18:18:04 I mean qq 18:18:14 I could have written "\\\@\\" as '\@\', I suppose 18:18:17 ais523: ohhh wait 18:18:18 that join thing is 18:18:22 a.join(b,c) 18:18:23 isn't it 18:18:30 actually, does \ work inside '? I keep forgetting 18:18:31 ehird: yes 18:18:36 my $cr = "\\\@\\" . join("\\\@\\", split(//, $ct)); # that's better 18:19:03 ehird: yes, if you haven't had much practice reading punctuation-based line noise with parens matched 18:19:10 ais523: local $^W=0; # oh my what 18:19:11 :D 18:19:22 ehird: it means the block contains an expected warning 18:19:32 and tells Perl not to produce a warning message for that block if warnings are on 18:19:34 but... 18:19:35 $^W 18:19:36 o.O 18:19:45 oh 18:19:45 i see 18:19:50 ais523: what is the warning? 18:19:57 ehird: undef used as a key of a hash 18:20:01 is that bad 18:20:08 ehird: not if you do it deliberately 18:20:21 but using undef tends to get you warnings because it means you didn't do error checking properly 18:20:30 it's sort of like getting a null pointer from malloc 18:20:38 ais523: $lgu set to a call to ugn 18:20:40 just wow 18:20:41 yes, you can store that in a data structure, but probably you didn't mean to 18:20:56 ehird: last groupnumber used 18:20:58 ais523: s/\G/'?'.($lgu=ugn($lgu,%groupnumbers),$groupnumbers{$lgu}=1,$lgu)/e 18:20:59 while (scalar(/\@\((?>[+^*]*)(?!\?)/g)); 18:21:00 shouldn't that be 18:21:04 and unique group number 18:21:08 i mean.. 18:21:09 just.. 18:21:14 ais523: can't /e be multiple statements 18:21:31 ehird: no idea, you probably have to use a do{} because it says 'expression' not 'block' 18:21:43 ais523: I'll do that. it's nicer than the current thing at least 18:21:48 and for some reason I prefer (,,,) to do{;;;}, probably because of golfing 18:22:00 after all, it's much the same 18:22:05 also, (,,,) also works in C 18:22:10 so your code is more portable :)( 18:22:13 s/(// 18:22:24 s/\(/\(/ 18:22:34 ais523: oh my lord, cperl-mode failed to indent properly 18:22:36 that has to be a sign 18:22:52 ehird: Emacs is really bad at parsing Perl 18:22:57 I often use kate to edit Perl for that reason 18:23:27 ais523: http://rafb.net/p/03B3sx47.html 18:23:33 it indents the next lines properly if i do that at least 18:23:44 but if you add a newline after } 18:23:46 it indents the / in 18:23:59 ehird: it's just not used to compound statements inside regexps 18:24:24 maybe you should have stuck to the expression after all... 18:24:35 ais523: nah, this way i can actually read it 18:24:36 :-) 18:24:40 it's still obfuscated! 18:24:49 no, that's my non-obfuscated Perl 18:24:53 oh holy. 18:24:54 obfuscated Perl is a lot worse than that 18:25:06 ais523: i'm going to remove your main program thingy, as it's a library 18:25:07 I can also write specially crystal-clear Perl too, but I find it harder to read 18:25:13 ehird: the main program was just for testing 18:25:48 ais523: http://rafb.net/p/AKCgd474.html 18:26:02 there's your "lexer", as marginally more readable by me 18:26:02 :D 18:26:13 oh 18:26:15 better remove the print 18:26:16 hehe 18:26:35 that looks fine 18:26:40 I find it just as readable as the original 18:26:55 ais523: so ... do we parse it now, or do we try and do something less scary 18:26:57 actually 18:26:58 OFC, it was probably meant to be /more/ readable, but if it is for you that's a Pareto improvement 18:27:00 we put it in a repository now 18:27:03 yes 18:27:04 tap tap tap github.com tap tap 18:27:10 git? 18:27:24 ais523: unless you'd like to use somethign else 18:27:27 isn't that the version control system you use when you need 5000 different branches all run by different companies? 18:27:35 Somehow I doubt Cyclexa will get that big 18:27:35 haha 18:27:39 no 18:27:39 no it's not 18:27:47 ais523: git is great for small projects 18:27:54 it's darcs, but made by linus torvalds 18:28:01 so that gives you an approximate idea of what it's like 18:28:05 I would have suggested darcs 18:28:15 because Linus designed git for a reason 18:28:19 ais523: github is too wonderful to pass up - https://github.com/ 18:28:35 * ais523 looks at it 18:29:10 Hm. 18:29:22 I think my -function language will be made with a translator. 18:29:27 Easier to do. 18:29:46 trans FUCKING lator 18:29:47 ais523: welp, i just made the cyclexa repository 18:29:51 oklopol! 18:29:59 * ehird adds the tree 18:30:00 I made one for der Turing machine to C. 18:30:01 ehird: seems reasonable. Would I have my own personal copy on my computer too? 18:30:07 Although actually a Post machine 18:30:09 ais523: yes, it's distributed 18:30:16 But it is pretty much a binary Turing machine 18:30:23 -!- Corun has joined. 18:30:25 it is also very fast (written in C and shell), and takes up less space for repositories than darcs 18:30:45 but then, it's linus. what do you expect :-) 18:31:01 I was worried you were going to say it was written in csh then 18:31:18 ais523: CAVEAT - don't install debian's git package 18:31:23 it's actually the gnu interactive file manager. 18:31:25 it's git-core. 18:31:27 that you want 18:32:06 OK, installing 18:32:24 how many file managers can be in existence, anyway? 18:32:37 ais523: caveat 2: it seems that debian stable still has cogito 18:32:44 which was meant to be a friendly layer upon git 18:32:47 this implies that the git is very old 18:32:54 as git now has most of cogito's features and cogito is obsolete 18:32:58 I have three GUI ones on my Ubunutu+Kubuntu system by default 18:33:04 so i would build it myself -- http://git.or.cz/ 18:33:09 oh, and Ubuntu runs a frozen version of Debian unstable IIRC 18:33:28 $ git --version 18:33:28 git version 1.5.3.6 18:33:30 is that bad? 18:33:37 ais523: 1.5.5.1 is the latest 18:33:47 still, is that bad? 18:33:51 1.5.3 is sept 07 18:33:52 so probably not 18:34:30 OK, so how do I check out my own program? 18:35:04 ais523: you can't, i haven't compiled my own git yet 18:35:06 (new system) 18:35:12 and ergo haven't put it up yet 18:35:15 OK 18:35:41 ais523: i love how git is made in mainly c and shell, but it requires tcl and perl anyway because people wrote tools in those languages that were accepted into the core 18:35:59 they should have compiled them into C 18:36:01 or maybe into sh! 18:36:18 haha 18:36:33 ais523: well perl->anything is impossible 18:36:35 so for the pong multiplay: wouldn't it be awesome if @ network play you'd just connect a centralized server, and the server would choose you a random guy to play with instantly, assuming at least one other played was connected 18:36:35 perl2c is a cheat 18:36:35 :) 18:36:44 and, after the game, another random game right away 18:36:44 oklopol: kinda 18:36:49 yeah i guess s 18:36:54 well 18:37:00 ofc you'd have like statistics 18:37:01 but i'd need a way to find out who i'm playing with. otherwise i'll be sad and never hear of them again! ;)) 18:37:18 who you usually win and who wins you 18:37:19 and such 18:37:27 well yeah, nicks 18:37:30 oklopol: INTERCAL's networking model does that automatically 18:37:41 cool 18:37:54 only by default it scans only you LAN, because most routers won't let you portscan the entire Internet with one command 18:38:38 anyway 18:38:48 the point was: you'd just open the game, and start playing 18:39:03 and statistics would automatically be kept, and you could chat if you wanted 18:39:07 but wouldn't have 18:39:18 ais523: register for git-hub, you need to add your ssh key 18:39:18 i'd love that 18:40:00 oklopol: the stats would require some sort of centralised server 18:40:04 the rest would be fine, though 18:40:13 ais523: he said he wanted a centralized server 18:40:16 also, no they don't 18:40:19 bittorrent-style stats 18:40:26 ehird: I was thinking about that just now... 18:40:49 ais523: got github & ssh key set up? 18:40:52 how does bt do it? 18:40:59 ehird: not yet, I'm doing it now 18:41:19 ais523: when you do, just tell me your username 18:41:43 ehird: you can likely guess what I'll choose 18:41:52 :) 18:42:03 ais523: shall i set it private by the way? 18:42:10 right now, anyone can go and get their dirty paws on the source 18:42:14 and even fork it with a click 18:42:30 ehird: nah, this should be open-source eventually 18:42:38 there isn't a licence on it yet, though, so forking would be illegal 18:42:54 ais523: I would say 'MIT license', but I'm not sure if the Eiffel Forum License Version 2 isn't better 18:42:55 it's short 18:43:19 see: http://inamidst.com/stuff/eiffel/ 18:43:24 ehird: I can't sign up to that site 18:43:30 ais523: which site? github? 18:43:32 if so, why not? 18:43:32 yes 18:43:46 adblocking is against their terms of service 18:43:51 ais523: is it? 18:43:52 are you SURE? 18:43:54 yes 18:43:59 I'm reading them right now 18:44:01 ais523: uh, it doesn't HAVE ads. 18:44:06 http://github.com/site/terms 18:44:15 number 7 18:44:19 ais523: you can't violate it: there's nothing to block ergo you are not blocking ads 18:44:20 :-) 18:44:53 ais523: but OK 18:44:57 we can do gitorious instead 18:45:02 which is just like github, but not as nice 18:45:23 gsdf 18:45:24 let me read their TOS first 18:45:27 ok 18:45:31 i don't think i can delete a repo though 18:45:41 ah no 18:45:43 i can 18:45:57 ais523: however, technically you don't violate the github tos 18:45:58 heh, they don't have one 18:46:49 ais523: http://reddit.com/info/6guod/comments/ 18:46:51 feel free to vote up 18:46:54 Email is too short (minimum is 3 characters) <--- error I got on gitorious when I pressed Enter by mistake rather than tab 18:47:17 ais523: you can't have a valid email <3 chars 18:47:21 a@b is the minimum 18:47:39 ehird: oh, I forgot that you didn't need a TLD for email, technically speaking 18:47:46 I was assuming that the minimum was actually longer than that 18:47:53 and I don't have a reddit account 18:48:04 ais523: gitorious is nice but just not as pretty as github. Ergo: eso-std needs to include a git thingy when it's up ;) 18:48:48 how does bittorrent keep stats? 18:49:00 -!- Corun has quit ("This computer has gone to sleep"). 18:49:06 oklopol: no just distribute the stats via something like BT 18:49:13 ah. 18:49:42 ais523: gitorious wants me to choose a license Right Now 18:49:51 what options? 18:49:52 MIT, Eiffel Forum v2, or Other? 18:50:01 MIT should be fine, I think 18:50:02 and, ais523, you can say Other 18:50:03 so every one 18:50:11 actually 18:50:13 why not pubilc domain, ais523? 18:50:32 interesting question 18:50:35 i asked myself that question once 18:50:48 the only answer i could come up with was "but i can't just let ANYONE do what they want with it!" 18:50:55 and then i realised that's what i hated about the gpl :-) 18:50:57 one problem is that public domain may land you into more trouble with warranties than a permissive license 18:51:14 ais523: we can steal a no-warranty clause from another license 18:51:15 i guess 18:51:42 ehird: then it's just a simple permissive license 18:51:55 and you may as well enforce the no-misrepresentation-of-copyright rule while you're at it 18:52:00 ais523: no 18:52:02 (the CC 'by' clause) 18:52:10 "This software is released into the public domain. 18:52:11 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 18:52:11 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 18:52:11 OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 18:52:11 NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 18:52:11 HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 18:52:13 WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 18:52:15 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 18:52:17 OTHER DEALINGS IN THE SOFTWARE." 18:52:19 ais523: that still releases any copyright 18:52:35 ehird: I think there may be a legal contradiction there 18:52:41 but I don't really understand how these things work 18:52:47 ais523: if there is, then public domain means we're not liable to be sued anyway 18:52:51 that's why sticking to established licenses is better 18:52:58 proper lawyers have checked them 18:52:59 but personally, i'll give warranties for cyclexa! 18:53:12 ais523: okay then 18:53:13 WTFPL? 18:53:17 ehird: you just know that Microsoft is going to use it now and sue you for several billion 18:53:17 it's considered a debian free license 18:53:22 ehird: really? 18:53:23 http://sam.zoy.org/wtfpl/ 18:53:25 yes 18:53:27 did they actually announce that? 18:53:31 ais523: most linux distros come with files under the wtfpl 18:53:54 ais523: the wtfpl has no 'no warranty' clause though 18:53:56 you have to add your own 18:53:59 it says so on the site 18:54:11 "There is no such thing as “putting a work in the public domain”, you America-centered, Commonwealth-biased individual. Public domain varies with the jurisdictions, and it is in some places debatable whether someone who has not been dead for the last seventy years is entitled to put his own work in the public domain." <-- THIS IS PARANOIA AND NOT TRUE 18:54:15 just thought i would piont that out 18:54:29 for permissive licenses I generally use BSD3 18:54:39 what do you mean, paranoia and not true? 18:55:00 eh 18:55:01 oh, and as far as public domain's concerned, in some countries like Germany you can put things into the public domain but the courts will insist on enforcing your copyright anyway 18:55:02 let's just do mit 18:55:02 ;P 18:55:09 MIT it is, then 18:55:15 ais523: solution -- insert comments involving nazis into the code 18:55:19 then germany will ban it anyway 18:55:24 ehird: no 18:55:27 :))) 18:55:57 grr... why does Konqueror not have middle-click to close tab? 18:56:05 it's one of my most-often-used Firefox mouse shortcuts 18:56:38 ais523: epiphany doesn't even have backspace = back 18:56:41 but i am used to it now 18:56:45 epiphany is lightweight, at least 18:56:52 it handles 6 windows of 20 tabs on thsi machine 18:57:00 ehird: neither does Firefox 18:57:10 backspace = scroll back one page 18:57:17 ais523: you can set that 18:57:21 and it's the default on everything but lunix 18:57:39 I'm used to Alt-left being back now 18:57:51 it's consistent between programs on Ubuntu 18:57:52 i like ie, crashes less than firefox :) 18:57:59 they've done a good job keeping all the keyboard shortcuts better 18:58:04 oklopol: that's ridiculous 18:58:13 it is true though. 18:58:24 back in the ages of IE5, I made a web page which had two frames, both of which were the original web page 18:58:24 i mean 18:58:27 in my experience 18:58:34 hehe, cool 18:58:38 ais523: infinite loops hang things! 18:58:40 wow 18:58:42 when I tried to open it, the amount left to load kept halving indefinitely 18:58:50 ais523: try that in firefox. 18:58:51 same thing 18:58:59 then IE said it was running low on memory and asked whether to cancel 18:59:04 more than FF does 18:59:06 whether you said yes or no it kept on going anyway 18:59:17 then it crashed and caused your Start toolbar to disappear 18:59:30 ais523: got your pubkey up on gitorious? 18:59:37 so you couldn't even log out because it was a ridiculously locked-down system 18:59:38 ehird: yes 18:59:49 hmm 18:59:54 'Ceci n'est pas une initial commit.' is even funnier than it was when i typed it 19:00:40 ais523: 'git clone git://gitorious.org/cyclexa/mainline.git' 19:00:46 will get you the directory 'cyclexa', i believe 19:00:56 project page: http://gitorious.org/projects/cyclexa 19:01:01 main repo page: http://gitorious.org/projects/cyclexa/repos/mainline 19:01:05 source tree: http://gitorious.org/projects/cyclexa/repos/mainline/trees/master 19:01:13 ehird: it did, but it's called mainline 19:01:19 ais523: 'mv' 19:01:24 apparently, it renames things. 19:01:26 no, I'm happy with its current name 19:01:27 :D 19:01:44 I used the standard anti-tarbomb tactic of putting the repo in a new directory 19:01:51 ais523: i hope Lexer.pm is alright for you 19:02:14 ehird: you forgot the 1; right at the end of the program 19:02:21 ais523: oops 19:02:21 also 19:02:24 normalize is a vague name 19:02:25 but 19:02:27 Lexer::normalize 19:02:27 is alright 19:02:34 -!- timotiis has quit (Read error: 110 (Connection timed out)). 19:02:38 ais523: does 'use' pollute namespaces by default in perl? 19:02:40 ehird: the point is that it takes a program and lexes it into another Cyclexa program 19:02:52 ais523: it used to be cyx_normalize 19:02:53 ehird: yes if you use export, no if you use export_ok in the module 19:03:10 ais523: i didn't use either. what should i do 19:03:13 you used neither so the module is useless 19:03:15 just leave it i guess 19:03:16 oh 19:03:17 okay then 19:03:29 ais523: which should I do? 19:03:30 and how :) 19:03:31 ehird: I'm not used to the syntax, but it's something like @EXPORT_OK = qw( normalise ) 19:03:33 perl learner here! 19:03:37 let me look it up 19:03:40 should i use @EXPORT or @EXPORT_OK 19:04:10 @EXPORT_OK 19:04:14 in a BEGIN block, apparently 19:04:21 ais523: okay, i've never seen @EXPORT_OK used though 19:04:24 you do it that way to not pollute people's namespaces 19:04:31 never seen it used is all i'm saying 19:05:03 ais523: hmm 19:05:08 you need to 'require Exporter;' 19:05:11 and @ISA exporter 19:05:12 and stuff 19:05:16 ais523: i don't think this is commonly used 19:05:40 * ehird takes a look at one of the only readable perl modules he's seen to see what they do 19:05:44 wait, let me find the docs, I've got too many windows open 19:06:28 ehird: if you don't use Exporter, you have to define import yourself 19:06:35 so most modules inherit from Exporter 19:06:49 ais523: still gonna check the Clean Module though 19:06:49 ;) 19:07:03 and EXPORT_OK is recommended 19:07:09 EXPORT pollutes people's namespace by default 19:07:17 EXPORT_OK pollutes namespace only on request from the caller 19:08:35 package YourModule; 19:08:35 require Exporter; 19:08:35 @ISA = qw(Exporter); 19:08:35 @EXPORT_OK = qw(munge frobnicate); 19:08:45 that's the example straight from the Perl documentation 19:10:14 ais523: Alright then. 19:11:19 ais523: 'git pull' 19:11:52 got it 19:12:09 ais523: so are we compiling or interpreting? 19:12:31 I think first, we're parsing 19:12:54 ais523: i think that's my cue to run 19:12:56 ;) 19:13:01 okay, let me test out normalize a bit 19:13:08 ais523: so how does perl pretend to have a REPL? 19:13:12 something to do with the debugger right? 19:13:17 yes 19:13:17 perl -d 19:13:20 is the debugger 19:13:25 ais523: okay, how do i use it as a repl 19:13:28 and it will just repl anything you input that looks like Perl 19:13:34 aha 19:13:36 'perl -d -e0' 19:13:36 it works INTERCAL-style, I think 19:13:38 and i get a repl 19:13:43 DB<1> print 2+2; 19:13:43 it repls anything that isn't a debugger command 19:13:43 4 19:14:06 $ rlwrap perl -d -e0 19:14:08 that should do the trick 19:14:27 ais523: Well the lexer is broken 19:14:32 I forgot begin {} 19:14:36 -!- timotiis has joined. 19:14:54 Global symbol "@ISA" requires explicit package name at Cyclexa/Lexer.pm line 9. 19:14:54 Global symbol "@EXPORT_OK" requires explicit package name at Cyclexa/Lexer.pm line 10. 19:14:56 ais523: :(( 19:15:10 our @ISA to avoid the strictness check 19:15:23 our is like my, but as a public variable 19:15:23 aha 19:15:25 ais523: yeah 19:15:32 ais523: we don't target perl<5.6 do we 19:15:41 is that like, 1995 19:16:08 ehird: I still have 5.005 on my DOS computer, but modern Perl is fine for this 19:16:17 I couldn't live without recursive regexen for some things 19:16:23 syntax error at Cyclexa/Lexer.pm line 49, near "}" 19:16:33 ais523: your 'or carp(foo)' fails 19:16:35 for the regexp 19:16:38 i hcanged it to carp 19:16:39 but yeah 19:16:40 syntax error 19:16:45 while (/\{\{([0-9a-zA-Z_])\{/) { 19:16:46 s/\{\{([0-9a-zA-Z_])\{(.*)\}\1\}\}/quotemeta($2)/se 19:16:46 or carp("Unmatched {{$1{ found in program."); 19:16:46 } 19:17:02 ais523: oh wait 19:17:04 {{$1{ 19:17:05 that's wrong 19:17:10 doesn't {$foo} work? 19:17:16 ergo, we need to escape 19:17:25 yes, escaping is probably needed 19:17:28 ais523: yep 19:17:33 the {{a{ is a complicated escaping mechanism anyway 19:17:38 ais523: :(( my do { } doesn't work 19:17:43 which one? 19:17:48 both 19:17:52 %groupnumbers{$lgu} = 1; 19:17:53 that line fails 19:18:01 well actually 19:18:02 all of them 19:18:09 * ehird asks in perl 19:18:11 err 19:18:12 #perl 19:19:24 ais523: you were the VERY ESSENCE OF WRONG 19:19:25 as should s//statement ; statement/e I believe 19:19:53 it should be $groupnumbers{$lgu}=1; 19:19:56 that's an obvious error 19:20:03 ais523: oh thanks 19:20:05 and a very easy one to make, too 19:20:10 was that mine? 19:20:14 yes 19:20:24 conclusion: FSCK SIGILS 19:20:25 :D 19:20:32 woot 19:20:33 the lexer wurks 19:20:42 ehird: it's that Perl sigils say the return type, not the data type of the variable 19:20:54 so a hash value is a scalar, so you put $ on the hash's name... 19:21:11 yeah 19:21:12 I think I have some hard-to-lex examples as tests 19:21:15 but they causeBUGS 19:21:15 :D 19:22:01 ais523: hmm 19:22:03 ^*(+?5abcd\cxe++??*?+(??fg|h'ij|kl'm)!-)('abc=def'|ghi=jkl)$+$*12345-???{^*(+?5abcd\cxe++??*?+(??fg|h'ij|kl'm)!-)('abc=def'|ghi=jkl)$+$*12345-???}{{a{}a}}}a}}\\\\\(\\\\\\()\\\\\@\\@\@\x6b@cdef 19:22:04 removing do { and } 19:22:05 works 19:22:06 BUT 19:22:10 cperl fails at it 19:22:13 i can use just { and } 19:22:15 what's cperl? 19:22:17 but then it gets indented weirdly 19:22:19 (just 1 or 2 spacse) 19:22:24 ais523: emacs' cperl-mode 19:22:28 wait -- do you use perl-mode? 19:22:31 yes 19:22:33 maybe that's why you think emasc sucks at perl 19:22:34 haha 19:22:38 perl-mode is obsolete for like 10 years now 19:22:40 that would explain a lot 19:22:41 try 'cperl-mode' 19:22:43 its included in emacs 19:22:49 so why does it have multiple modes for the same thing? 19:22:55 ais523: because perl-mode is old leik dinosaurs 19:23:04 and they went 'shit this is broken' so they wrote cperl-mode 19:23:07 then why didn't they just replace it with the new one? 19:23:08 but some idiots like perl-mode 19:23:10 for some stupid reason 19:23:17 ais523: it gets in the way a bit 19:23:20 it's a 'framework mode' 19:23:20 kinda 19:23:23 but.. 19:23:26 ehird: we need a # -*- cperl -*- at the start of the files 19:23:27 (defalias 'perl-mode 'cperl-mode) 19:23:28 fixes everything 19:23:35 ais523: nahh, nobody sane uses perl-mode any more 19:23:53 ais523: but yeah, {..} shouldn't be a 1-space indent should it? 19:23:54 ehird: Emacs still maps .pl to perl-mode by default... 19:24:11 ais523: not if you do that defalias. 19:24:14 which EVERYONE does 19:24:16 ehird: that's not by default 19:24:17 i've googled here 19:24:20 i've done my research 19:24:26 nobody who will edit perl code will not have that line 19:24:27 :-) 19:25:19 ehird: some of them might just not know of cperl-mode 19:25:38 ais523: then they won't edit with emacs ;) google shows i'm right! 19:25:47 besides 19:25:50 some people like perl-mode. 19:26:06 leaving it at normal will be perl-mode, so people who like cperl-mode's aliases will be alright 19:26:32 they should have made the two versions minor modes within a perl-mode 19:26:50 because otherwise they force you to put UI decisions into the mode line if you put one there 19:27:19 ais523: your hard example: 19:27:21 Use of uninitialized value in list assignment at Cyclexa/Lexer.pm line 136. 19:27:22 at Cyclexa/Lexer.pm line 136 19:28:09 wait a moment, I'm just commenting about the quality of some BF on a forum, I'll be back with this conversation in a moment 19:28:21 ais523: I must see this 19:28:22 :D 19:29:48 ais523: hmm 19:29:54 ais523: http://perldoc.perl.org/Exporter.html#Playing-Safe 19:29:57 Exporter::Easy looks nice 19:30:32 ehird, I'd edit Perl code without that line if I knew Perl.. but then again, I don't really use Emacs 19:31:01 Sgeo: hopefully you wouldn't edit my perl in the first place 19:31:01 :P 19:31:32 ehird: http://forums.thedailywtf.com/forums/p/8523/162030.aspx 19:31:45 ais523: but yeah -- should we use a BEGIN {} like it says, or Exporter::Easy or. . 19:32:25 I'm disappointed that nobody else noticed it was compiled from Brainfuck, after all INTERCAL gets mentioned there every now and then 19:32:47 ais523: they mention it but know nothing about it 19:32:51 it's just geek cred. they've heard of it. 19:33:04 the daily wtf is unfortunately very low on intelligence 19:33:19 ehird: no, the daily wtf has a very large standard deviation of intelligence 19:33:28 ais523: even in the posts 19:33:31 MFD. 19:33:31 some of the people there are excellent, some are completely stupid 19:33:32 QED.. 19:34:14 mandatory fun day is so bad i just can't cope 19:34:20 ehird: they've discontinued it 19:34:28 ais523: yeah -- thank god 19:34:30 and I could ignore it once they hid it behind hyperlinks from the front page 19:34:32 so I did 19:34:37 may it never come back 19:35:09 alright, I have returned 19:35:30 oh no 19:35:36 let me look at that line 136 now 19:35:59 ais523: most bizzare thing i've seen on TDWTF: 19:36:01 http://i27.tinypic.com/2k3r13.png 19:36:07 ais523: also, its the map of groupnumbers 19:36:17 also, answer me about exporter 19:36:18 ;) 19:36:30 ehird: that isn't an error 19:36:31 that's a warning 19:36:47 ais523: no. it aborts the call. 19:36:48 it's the warning I knew about, explained earlier, and put in the $^W to suppress 19:36:54 and $^W is still there 19:37:03 but it aborts 19:37:05 ergo. 19:37:28 OK, change the $_ at the start to (defined($_)?$_:'') 19:38:08 ais523: that expression is now 3 lines 19:38:09 scary 19:38:22 not really 19:38:26 %groupnumbers = 19:38:26 map { (defined($_) ? $_ : '') => 1 } 19:38:26 (m/(? possibly a bit too verbose, ais523 19:38:32 I just scan the program to see which group numbers were explicitly used by the user 19:38:33 but readable, i guess 19:38:40 does it run? 19:38:41 do you need those parens around the regexp 19:38:54 which ones? 19:38:58 ais523: (m//) 19:38:59 err 19:39:00 ais523: (m//g) 19:39:04 yes I do 19:39:07 so that it's in list context 19:39:13 DB<3> print normalize "^*(+?5abcd\cxe++??*?+(??fg|h'ij|kl'm)!-)('abc=def'|ghi=jkl)$+$*12345-???{^*(+?5abcd\cxe++??*?+(??fg|h'ij|kl'm)!-)('abc=def'|ghi=jkl)$+$*12345-???}{{a{}a}}}a}}\\\\\(\\\\\\()\\\\\@\\@\@\x6b@cdef"; 19:39:14 ^*?0@(+?5@a@b@c@d@@e@+@+@??@*?@+@(?3@f@g@|@h@'@i@j@|@k@l@'@m@)@!@-@)@(?1@'@a@b@c@=@d@e@f@'@|@g@h@i@=@j@k@l@)@1@2@3@4@5@-@??@?@\^@\*@\(@\+@\?@5@a@b@c@d@\@e@\+@\+@\?@\?@\*@\?@\+@\(@\?@\?@f@g@\|@h@\'@i@j@\|@k@l@\'@m@\)@\!@\-@\)@\(@\'@a@b@c@\=@d@e@f@\'@\|@g@h@i@\=@j@k@l@\)@1@2@3@4@5@\-@\?@\?@\?@\}@a@\}@\}@\\@(?2@\\\(@)@\\@\@@k@ 19:39:17 ais523: that's with removed parens though 19:39:17 so that $_ becomes equal to the number that was matched 19:39:19 i'll fix that 19:39:36 DB<2> print normalize "^*(+?5abcd\cxe++??*?+(??fg|h'ij|kl'm)!-)('abc=def'|ghi=jkl)$+$*12345-???{^*(+?5abcd\cxe++??*?+(??fg|h'ij|kl'm)!-)('abc=def'|ghi=jkl)$+$*12345-???}{{a{}a}}}a}}\\\\\(\\\\\\()\\\\\@\\@\@\x6b@cdef"; 19:39:37 ^*?0@(+?5@a@b@c@d@@e@+@+@??@*?@+@(?3@f@g@|@h@'@i@j@|@k@l@'@m@)@!@-@)@(?1@'@a@b@c@=@d@e@f@'@|@g@h@i@=@j@k@l@)@1@2@3@4@5@-@??@?@\^@\*@\(@\+@\?@5@a@b@c@d@\@e@\+@\+@\?@\?@\*@\?@\+@\(@\?@\?@f@g@\|@h@\'@i@j@\|@k@l@\'@m@\)@\!@\-@\)@\(@\'@a@b@c@\=@d@e@f@\'@\|@g@h@i@\=@j@k@l@\)@1@2@3@4@5@\-@\?@\?@\?@\}@a@\}@\}@\\@(?2@\\\(@)@\\@\@@k@ 19:39:41 ais523: same with and without the parens 19:39:44 maybe you mean (m//g, ) 19:39:45 bbl 19:39:51 -!- RodgerTheGreat has quit. 19:40:01 same even with (m//g, ) 19:40:11 ais523: isn't list context a misnomer, anyway 19:40:19 ais523: i think just m//g is fine 19:40:26 since it doesn't change anything 19:40:34 ehird: I think Perl's intelligent enough to put it into list context itself even without the parens there 19:40:37 but I prefer things to be explicit 19:40:44 ais523: okay. isn't (x) = x though 19:40:49 ehird: no 19:40:49 (x,) might force it into list context 19:40:54 ais523: okay then 19:40:56 i'll add the parens 19:40:59 (x) can force it into list context in some cases 19:41:07 ais523: ok. so now about exporter 19:41:13 http://search.cpan.org/~ferreira/Exporter-5.62c/lib/Exporter.pm#Playing_Safe 19:41:24 ais523: should we use one of the examples there, or just what i put, or Exporter::Easy, or. 19:41:33 let me look at it first 19:41:57 for some reason Konqueror can't find cpan's DNS, so I have to open it with Firefox 19:42:33 the BEGIN block method is probably best 19:42:42 it makes sense to C++ programmers, anyway 19:42:47 ais523: yeah, the 'use base' and 'use parent' things seem to have Side Effects 19:42:50 ais523: right? 19:42:56 specify what methods a class has at compile time 19:43:00 the other methods specify it at runtime 19:43:21 the question mark was to put it into question context, ais523 ;) 19:43:31 ehird: I know 19:43:37 couldn't resist that joke 19:44:10 I think that the base/parent methods, seeing as they defer the decision of what methods the module has until runtime, are unclear conceptually and I wouldn't want to use them 19:44:21 ais523: and google code search finds no search results for Exporter::Easy 19:44:25 which looks nice otherwise 19:44:32 ergo, ugly BEGIN block it is 19:44:33 -!- gigo has quit ("Leaving."). 19:44:36 -!- RodgerTheGreat has joined. 19:44:45 ais523: maybe we should make it a class and remove possibilities of name pollution and everything ;) 19:44:57 ehird: modules are classes, more or less 19:45:03 you could even replace $_ with an instance var 19:45:08 and have $self->do_rx 19:45:09 :P 19:45:12 ehird: that's what local is for 19:45:14 ais523: of course, it's probably pointless for this 19:45:18 ais523: and the reason i said it 19:45:23 was that deat etc could mutate the class 19:45:24 it's only for localising $punct variables, everything else uses my 19:45:25 silly :D 19:45:37 Lexer->new("Foo")->normalize; # is probably pointless anyway 19:45:47 so Lexer::normalize("Foo") it is, even if that requires HUGE BAGS OF UGLY 19:46:14 the BEGIN isn't ugly 19:46:19 it says 'this should happen at compile time' 19:46:32 ais523: i know 19:46:35 that's hardly an ugly thing to request when defining what functions are in a module 19:46:36 i was just being silly, of course 19:46:42 ^*?0@(+?5@a@b@c@d@@e@+@+@??@*?@+@(?3@f@g@|@h@'@i@j@|@k@l@'@m@)@!@-@)@(?1@'@a@b@c@=@d@e@f@'@|@g@h@i@=@j@k@l@)@1@2@3@4@5@-@??@?@\^@\*@\(@\+@\?@5@a@b@c@d@\@e@\+@\+@\?@\?@\*@\?@\+@\(@\?@\?@f@g@\|@h@\'@i@j@\|@k@l@\'@m@\)@\!@\-@\)@\(@\'@a@b@c@\=@d@e@f@\'@\|@g@h@i@\=@j@k@l@\)@1@2@3@4@5@\-@\?@\?@\?@\}@a@\}@\}@\\@(?2@\\\(@)@\\@\@@k@ 19:46:46 ais523: is that normalization right? 19:46:48 it contains a special char 19:46:53 it could take a while to check 19:47:02 the special char is right, it should be control-X 19:47:27 hmm... there are actually two special chars, let me try to remember what the other one is 19:48:03 they're both control-Xs 19:48:05 ais523: git pull 19:48:13 and yeah 19:48:16 i haev two c-x's 19:48:23 ais523: also, you should totally read my commit messages 19:48:24 they rock 19:48:49 seems about right 19:49:58 wait, the second one shouldn't be a c-x, that's a bug 19:50:03 ais523: oh wonderful 19:50:05 it should have been a literal \cx 19:50:06 well, if you've git pulled 19:50:08 go and fix it 19:50:08 oh 19:50:10 you're right 19:50:10 there must be operator precedence problems 19:50:12 it's \ 19:50:25 ais523: or at least 19:50:27 'print' prints it as 19:50:33 \ 19:51:09 that's a bug 19:51:15 I'll try to track it down... 19:51:20 ais523: as long as you've 'git pull'd 19:51:25 I have 19:51:26 by the way 19:51:34 i am NEVER going to work on this lexer if i can avoid it, ais523 19:51:36 :D 19:51:45 ais523: also, look at your emacs modeline. 'Git:master' indeed! 19:52:03 ehird: I have it open in Kate, so I can't see that 19:52:16 ais523: will i have to fix some more indentation 19:52:17 what fun 19:52:17 :D 19:52:18 :p 19:56:25 ehird: I think the bug's on line 57 19:56:53 ais523: well that's certainly a very simple line. 19:57:38 sorry, line 62 19:58:07 ais523: well, why is it duplicated 19:58:19 i think that's the bug 19:58:21 i see why 19:58:22 in the comments 19:58:24 but i bet that causes the bug 20:00:11 ais523: i don't know how, though 20:00:16 your code is slightly inscrutable 20:00:21 only slightly, though 20:00:29 I think the problem is in the backslash detector 20:00:44 before things are tokenised, you have to check to see if things are preceded by an even or odd number of backslashes 20:08:31 ais523: any ideas on how to fix it? :P 20:08:45 ehird: not yet, I've been in an argument in a different channel 20:09:11 as you know 20:09:13 ais523: sounds like an odd channel 20:09:17 i wonder which one you mean 20:09:20 freenode is generally friendly 20:09:24 do you mean on efnet? 20:10:31 ehird: Question context not accepted in this context. 20:10:41 ais523: hah 20:10:53 ehird: how do you run that parser as a test? 20:10:53 no warnings; 20:10:54 no strict; 20:10:58 ais523: and 20:11:00 perl -d -e0 20:11:05 use Cyclexa::Lexer qw/normalize/; 20:11:08 print normalize "your mom"; 20:11:08 I'm wondering how to test {\ca} 20:11:12 that's a minimal test case 20:11:32 ?0@\@ 20:11:38 ais523: after \ is a special char 20:11:41 U+0001 apparently 20:11:47 ais523: i assume you mean "\c" 20:11:48 not "\\c" 20:11:51 OK, that's the bug 20:11:55 and I do mean \c 20:11:57 DB<2> print normalize "{\ca}"; 20:11:57 ?0@\@ 20:11:57 DB<3> print normalize "{\\ca}"; 20:11:57 ?0@\\@@a@ 20:12:10 those are both broken 20:12:11 ais523: i hope you don't expect people to put lit. \cs in their code 20:12:20 \c quotes a control char 20:12:30 but it should itself be quoted by the braces so it never comes up 20:12:38 ais523: i should put these to a file 20:12:39 so you can type \cg for control-G, if you like 20:12:40 in the file 20:12:42 would i put \c literally 20:12:46 that is backslash character then 'c' 20:12:48 backslash then c 20:12:49 or would i put '\c' 20:12:50 okay 20:12:55 ais523: then i tested your previous one wrong 20:12:55 :D 20:13:04 oh, is that what's happening? 20:13:13 you're putting control characters in the source code? 20:13:17 ais523: yeah. 20:13:23 i'll write a script to test the lexer from a file 20:13:24 no wonder the tests seemed to be failing 20:13:39 ais523: my $text = <>; 20:13:43 that reads in a file or stdin right 20:13:55 (and how to i append to the load path?) 20:13:56 one line from a file or stdin 20:14:03 do undef $/ first to get the whole file 20:14:31 but yeah 20:14:32 or the golfing equivalent $/=$] which gets the whole file unless it contains the Perl version number as text 20:14:33 load path 20:14:42 -L I think 20:14:50 ais523: i mean inside the script 20:14:50 I don't think I've used that option before, though 20:14:52 it's $: right 20:15:00 ehird: I thought it was a longer name than that 20:15:08 ais523: ruby's is single-char 20:15:10 try doing it wrong, the error message tells you what it is 20:15:11 so i assume perl's is too 20:15:11 oh wait 20:15:12 @INC 20:15:13 oh, it's @INC 20:15:17 snap 20:15:27 ais523: push @INC, dirname(__FILE__) . "/src"; 20:15:28 should work 20:15:36 yes 20:15:53 ais523: ah, in a BEGIN {} though 20:16:01 okay 20:16:03 and there's no dirname() 20:16:32 ais523: what should i use instead of dirname() then 20:16:33 hmm... not as standard, it's probably in some module 20:16:34 or is it in a package 20:16:39 as a hack you could use `pwd` 20:16:43 -!- olsner has joined. 20:16:58 ah, apparently File::Spec is better than dirname 20:17:43 ais523: File::Spec->splitpath(__FILE__)[1] 20:17:44 how ... nice 20:17:55 aha 20:17:58 use File::Spec::Functions; 20:17:59 then it's 20:18:02 splitpath(__FILE__)[1] 20:18:22 ais523: i'll just use File::Basename though 20:18:31 ais523: also, should BEGiN { } have a ; at the end? 20:18:34 BEGIN {...}; 20:18:43 I don't think it needs one 20:18:49 ais523: should it have one, is the q 20:19:01 ehird: not if you're a C programmer 20:19:06 and I know you are really 20:19:15 ais523: haha, why do you say that :D 20:19:26 ehird: I was teasing 20:19:46 but your ninjacode stuff gave a big insight into your coding personalit 20:19:49 s/$/y/ 20:19:55 ais523: haha, how so? 20:20:04 also, 'git pull' and impl/lex.pl does the obvious 20:20:15 the way you were looking for efficiency 20:20:18 oh 20:20:21 that was just for fun 20:20:22 :) 20:20:29 i don't care about efficiency oftne 20:20:33 heck sometimes i use ruby. 20:20:54 but ninjacode was to be a really, really weird, esoteric language that unlike most every esolang out there, had both many functions and libraries and was blazing fast 20:20:58 just to be different 20:21:31 unfortunately, it's still buggy 20:21:36 even with definitely literal backslashes 20:22:05 ais523: oh, and here's a quick way to use lex.pl 20:22:13 perl lex.pl? 20:22:32 ais523: err, but then you get an extra newline 20:22:37 so the normalized is different 20:22:54 ehird: never heard of C-d C-d? 20:23:10 once flushes stdin, twice does an EOF 20:23:22 newline also flushes stdin which is why a single C-d is EOF after a newline 20:23:27 ais523: wow, really? 20:23:30 i am a retard! 20:23:35 THANK YOU 20:23:46 ais523: ah but then the output is on the same line 20:24:15 ehird: what do you expect? there wasn't a newline 20:24:20 ais523: :))) 20:24:22 you can add one in your script if you like, for display purposes 20:24:50 ais523: you do it, you haven't committed at all 20:24:51 I'm still trying to find what's wrong 20:24:52 ;) 20:24:59 quick git tutorial: 20:25:01 $ git add fileichange 20:25:06 $ git commit -m 'I suck' 20:25:07 $ git push 20:25:19 you can do 'git comit -am' to just include every changed file 20:25:26 git commit -i lets you choose files etc. interactively 20:25:37 so what's ninjacode? 20:25:38 err 20:25:40 --interactive 20:25:42 oklopol: dead unfortunately 20:25:43 :( 20:25:48 i just recall being on a channel with that name 20:25:56 yeaeh 20:26:33 the language was never created? 20:26:35 nope 20:27:11 fatal: The remote end hung up unexpectedly 20:27:11 error: failed to push to 'git://gitorious.org/cyclexa/mainline.git' 20:27:20 ehird: have you given me commit access? 20:27:46 ais523: hmm 20:27:49 let me examine 20:28:34 ais523: git remote add origin git@gitorious.org:cyclexa/mainline.git 20:28:40 ais523: then, 'git push origin master' 20:28:45 14:08 to 14:31 20:28:46 after that you can just do 'git push' from then on 20:28:55 sorry, wrong channel 20:34:01 ehird: the remote add was already done 20:34:08 and git push origin master gives the same error 20:36:19 I think I preferred darcs, it was simpler 20:36:36 but git it is for this, if you can give me some tips on how to get it working 20:37:00 -!- toybot has joined. 20:37:14 -!- toybot has quit (Remote closed the connection). 20:37:28 ais523: i don't know 20:37:29 paste your session 20:37:37 ehird: that's kind-of difficult 20:37:41 it's full of #ircnomic logs 20:37:45 because they're echoing to the terminal 20:37:54 I'll try to reconstruct it from my bash history 20:38:56 oklopol: so, have you beaten me yet? 20:38:58 -!- toybot has joined. 20:39:16 -!- toybot has quit (Remote closed the connection). 20:39:29 -!- toybot has joined. 20:39:31 test 20:39:33 test 2 20:39:48 -!- toybot has quit (Remote closed the connection). 20:39:58 -!- toybot has joined. 20:39:59 -!- toybot has left (?). 20:40:56 RodgerTheGreat: well i've been idling. 20:41:02 ehird: join #ircnomic-flood and I'll paste the commmands I ran 20:41:13 their output is too buried in logs to chase down, unfortunately 20:48:05 -!- ais523 has quit ("Looking for another connection"). 20:54:58 -!- Judofyr has joined. 20:55:28 -!- ais523 has joined. 20:55:37 * ais523 (n=ais523@gb01-fap02.bham.ac.uk) 20:55:40 odd hostname. 20:55:53 not my choice 20:55:57 my computer thinks its hostname is 'dell' 20:56:02 but ngircd wouldn't accept that 20:56:08 so I tried all sorts of invalid addresses 20:56:13 and in the end settled on irc.example.com 20:56:23 ais523: i don't want to know how your university staff pick random hostnames 20:56:25 it's vaguely disturbing 21:08:05 ehird: when I do git commit, I get errors saying that impl/lex.pl is "Changed but not updated" 21:08:10 am I using the wrong command? 21:08:59 ehird: ping? 21:11:34 figured it 21:11:40 you need to use git commit -a 21:12:28 back 21:12:31 ais523: yes 21:12:32 OR 21:12:34 git add impl/lex.pl 21:12:44 its how it does cherry picking 21:12:51 ais523: or - git commit --interactive 21:13:06 OK 21:13:09 just complicated, then 21:13:18 try pulling to see if my trivial change to lex.pl worked 21:13:36 ais523: not more complicated than darcs 21:13:39 it doesn't have the 'add' thing 21:13:46 but by default 'darcs' asks you what you want to do 21:13:49 like --interactive in git 21:13:54 oh, I see 21:13:55 and you need 'darcs record -a' if you want them all 21:14:06 in SVN you have to add files you want to be controlled, and not files you don't 21:14:09 ais523: so it's just like darcs, but it's unixy in that instead of being interactive by default, it just tells you to do it seperately 21:14:13 so git made the opposite decision 21:14:17 and .. no 21:14:19 where you have to mark files each time... 21:14:24 nah, not really 21:14:26 darcs requirse it too 21:14:29 it just bundles it into one command 21:14:34 'darcs record' 21:14:45 ais523: there's still a .gitignore 21:14:49 for 'git commit -a' 21:14:54 ehird: aarrgghh! 21:15:00 but yeah, git matchse darcs except it prefers multiple program invocations 21:15:02 over one interactive one 21:15:05 you mean I can't litter my directory with useless binaries and backups? 21:15:06 but still has the interactive mode available 21:15:10 ais523: you can! 21:15:14 it has decent ignores by default 21:15:15 and 21:15:19 you have to 'git add' the file 21:15:22 in the fisrt place 21:15:26 otherwise git will ignore it forever 21:15:27 so it is like SVN, then 21:15:31 kind of 21:15:36 I still don't like being told about them, though... 21:15:38 it just has more per-commit cherrypicking 21:17:35 important decision: what should we parse the code into? 21:17:59 (/me jumps channel whenever the topic skews to something that fits in one channel in particular) 21:18:51 ais523: CLASSES 21:19:01 LISTS 21:19:06 MORE NORMALIZED STRINGS 21:19:22 ehird: sorry, you can always tell when I've been writing excessive Thutu 21:19:37 but normalized strings are bad for stuff with matched brackets 21:19:45 ais523: parse it into RPN 21:19:45 duh! 21:19:47 at least if you don't want your code to be a whole computational order slower than it should be 21:20:26 ehird: you got me imagining an RPN Underload now, I don't think it makes sense because Underload is RPN already 21:20:32 that's the sort of matched brackets I meant 21:21:51 ais523: X - stop execution, quote everything until the next X 21:21:59 U - wrap the last thing we didn't execute in brackets 21:22:09 Z - push (X) 21:22:25 it's actually possible to write Underload without nested parens 21:22:35 ais523: i know -- i wrote the compiler remember? 21:22:49 ehird: I wrote the /pseudocode/ for the compiler... 21:22:55 you just translated it into a real language 21:23:03 never mind, let's just get the parser sorted out 21:23:33 ais523: no you didn't 21:23:43 i wrote the scheme compiler after having came up with the flattening idea myself 21:23:49 you may be confused 21:23:50 :) 21:23:55 ehird: I'm talking about something else 21:24:02 your compiler does flattening data-structure wise 21:24:06 yeah 21:24:07 i came up with that 21:24:08 :| 21:24:09 I was talking about the original Underload source code 21:24:12 oh 21:24:15 right 21:24:16 well 21:24:17 ehird: yes, you came up with what you were talking about 21:24:20 that didn't include anything on compilers 21:24:21 :D 21:24:51 I was talking about the rewrite rules for that ()-less Underload you invented 21:24:59 oh 21:25:00 they work by flattening an Underload program 21:25:03 ais523: you never invented them though! 21:25:05 :p 21:25:11 yes I did 21:25:14 i did the compiler all on my own 21:25:15 I pasted the rewrite rules for that 21:25:16 seperate inventions maybe 21:25:21 then you wrote them into a compiler 21:25:21 oh 21:25:22 that thing! 21:25:29 ais523: i was talking about my underload compiler 21:25:35 but that thing is called dei 21:25:49 yes, dei 21:25:58 wow, after 35 comments we're finally talking about the same thing 21:26:10 :D 21:27:04 (once you get your qdb up, put this exchange there) 21:27:06 ais523: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=477454 someone is a fragile flower... 21:27:35 ais523: and i will 21:27:53 when I clicked on that link, KDE popped up a box to tell me it was loading the progress bar for loading that website... 21:27:59 well, not popped up, placed in the taskbar 21:28:02 but still... 21:28:40 OK, it seems Konqueror's only connecting at 15 bytes per second for some reason 21:30:14 ehird: that link: that should have been marked major rather than serious, otherwise it's a legit report 21:30:39 ais523: but a silly one 21:30:44 and censorship 21:31:08 ehird: not really, being seriously insulted in production code that may be deployed in distributions across the world seems a bit much 21:31:33 ais523: :)) 21:31:39 its just a music player. 21:32:08 actually i would replace it with something without the profanity but just as offending -- but in a way that i can claim it's not 21:40:46 -!- Iskr has quit ("Leaving"). 21:58:45 -!- olsner has quit ("Leaving"). 22:33:05 -!- Slereah_ has joined. 22:33:06 -!- Slereah has quit (Read error: 104 (Connection reset by peer)). 23:28:59 -!- 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:36:44 Slereah_: Hi 23:37:49 Hai. 23:39:30 Slereah_: You'd probably find #ircnomic interesting. It's more organized now. 23:41:52 -!- Deform has joined. 23:42:02 Def: Deform: Deformati: stoppit 23:42:15 -!- Def has quit (Read error: 104 (Connection reset by peer)). 23:42:39 Connection issues. 23:42:43 -!- Deform has changed nick to Deformative. 23:43:38 ehird : I'm not sure 23:44:16 Why not? 23:45:33 Slereah_: why not? 23:50:44 I dunno 23:50:49 Not too interested by the game 23:51:25 Slereah_: But there's not 5 active people in there. 23:51:27 So we have no quorum! 23:52:59 quorum? 23:53:11 Slereah_: Join and read the rules! It'll explain'quorum'. 23:53:48 I'm not falling into that trap 23:55:06 Slereah_: actually, it's not 23:55:11 i just can't explain right here 23:55:11 :D 23:55:52 Sneaky, ehird. 23:55:56 Well done. 23:56:27 :| 23:56:32 its not a trap! :P 23:59:17 -!- Slereah_ has changed nick to Ackbar. 23:59:22 I disagree. 23:59:28 "This nickname is owned by someone else" 23:59:33 Fuck you Amiral Ackbar. 23:59:39 -!- Ackbar has changed nick to Slereah.