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