←2007-05 2007-06 2007-07→ ↑2007 ↑all
2007-06-01
00:00:41 <oerjan> ok, the definite article developed in Middle Bulgarian (12th-15th century)
01:48:41 <bsmntbombdood> ratspin
01:50:22 <oerjan> how many rats can a ratspin spin if a ratspin can spin rats?
01:51:25 <bsmntbombdood> ratspin rats
01:52:33 <bsmntbombdood> my hair is full of spiderwebs
01:52:38 <bsmntbombdood> stupid spiders
01:54:41 <GregorR-L> That was a poem.
01:57:57 * oerjan doesn't manage to google a straight definition of ratspin.
01:58:17 <GregorR-L> I'm wondering which definition of the word "straight" you're using :P
01:58:35 <oerjan> eh, straight forward
01:58:55 <bsmntbombdood> i would be suprised if you could find a definition
01:59:34 <oerjan> i have found some uses, apparently meaning something like "hogwash" especially by politicians
02:00:18 <GregorR-L> So, not some very fetishist gay sex maneuver.
02:01:33 * bsmntbombdood tries to figure out what that would be
02:01:34 <oerjan> but, i wondered if it had a more direct meaning of some kind
02:01:50 <oerjan> something involving gerbils, i take
02:02:22 <bsmntbombdood> the ass gerbil
02:02:32 <oerjan> with a spin
02:02:51 <bsmntbombdood> that would probably kill the gerbil
02:03:39 <GregorR-L> I think that the anal gerbil penetration would kill the gerbil anyway :P
02:03:57 <bsmntbombdood> in the story the gerbil lives
02:04:04 <bsmntbombdood> they use a toilet paper tube
02:04:11 <GregorR-L> Also: I've seen gerbils chew through plastic. The gerbil is not a good rodent to use X-D
02:04:47 <bsmntbombdood> i'll keep that in mind
02:04:47 <oerjan> barely beats the xenomorph
02:06:54 <GregorR-L> Y'know, I've looked for gerbiling/hamstering/whatever on Wikipedia.
02:06:57 <GregorR-L> I can't find it :(
02:07:10 <bsmntbombdood> uuuh
02:07:12 <bsmntbombdood> http://en.wikipedia.org/wiki/Gerbilling
02:07:14 <oerjan> i would imagine snopes.com a better place.
02:07:24 <GregorR-L> Well.
02:07:25 <GregorR-L> I'm stupid
02:07:42 <bsmntbombdood> "The notion of gerbilling (not necessarily restricted to homosexuals — the insertion of items into the rectum for purposes of autoeroticism is practiced by heterosexuals as well) appears to be pure invention, a tale fabricated to demonstrate the depravity with which "faggots" allegedly pursue sexual pleasure."
02:08:17 <GregorR-L> The lack of medical evidence for gerbilling is not surprising when one considers that (1) rodents have claws, (2) frightened animals are likely to bite, and (3) rodents can be quite large.
02:08:18 <GregorR-L> X-D
02:08:26 <bsmntbombdood> yeah really
02:09:37 <bsmntbombdood> <GregorR-L> Y'know, I've looked for gerbiling/hamstering/whatever on Wikipedia. \ I can't find it :(
02:09:42 <bsmntbombdood> weak
02:10:32 <GregorR-L> For whatever reason, just using the word didn't occur to me :P
02:10:39 <GregorR-L> I tried to find it from 'Gerbil'
02:10:41 <GregorR-L> (etc)
02:10:47 <bsmntbombdood> i searched for "ass gerbil"
02:10:50 <bsmntbombdood> first result
02:11:52 <GregorR-L> Hmmmmmm .... the page on "Rectal foreign object" says that Scrubs refers to two such instances. I can remember a third :P
02:14:30 <bsmntbombdood> I read about a guy putting wet concrete up his ass
02:14:38 <GregorR-L> Hahahaha
02:14:43 <bsmntbombdood> yeah, it hardended
02:14:53 <GregorR-L> In the unlikely scenario that that was true, that somebody would be infinitely stupid :)
02:15:13 <bsmntbombdood> I got the impression i was reading a medical report
02:15:41 <GregorR-L> I feel bad googling for "wet cement rectum"
02:15:42 <oerjan> i just recently read somewhere that concrete will set under water, so it must be true ;)
02:16:16 <bsmntbombdood> turns out it's the first google result
02:16:36 <bsmntbombdood> there was another article, even had a picture of the cement
02:17:14 <bsmntbombdood> yes, http://www.well.com/user/cynsa/cement.html
02:18:09 <Pikhq> GregorR-L: Well, if someone actually *did* it, there'd be instant medical evidence.
02:18:18 <bsmntbombdood> see my link
02:18:47 <Pikhq> I was thinking about gerbiling, not the cement bit.
02:18:53 <bsmntbombdood> "the anus was dilated and two Foley catheters were inserted alongside the rectal mass to relieve suction. A concrete case of the rectum was delivered without incident."
02:19:07 <bsmntbombdood> "he attending physician recommended a psychiatric consultation, but the patient declined."
02:19:27 <bsmntbombdood> "A layer of concrete was chipped off the upper part of the specimen and revealed a white plastic ping-pong ball."
02:19:29 <bsmntbombdood> wtf
02:20:19 <Pikhq> WTF?!?
02:20:30 <GregorR-L> lol
02:25:34 <bsmntbombdood> "In one review of colorectal foreign bodies and their management, all patients were male and mostly in the fourth and fifth decades of life."
02:25:38 <bsmntbombdood> interesting
02:28:04 <GregorR-L> "mostly in the fourth and fifth decades of life"
02:28:09 <GregorR-L> What an awkward way to say that.
02:28:24 <bsmntbombdood> http://www.well.com/user/cynsa/explicar.jpg
02:28:57 <GregorR-L> That == hilarious X-D
02:29:15 -!- poiuy_qwert has joined.
02:30:28 <oerjan> hi poiuy_qwert
02:30:36 <poiuy_qwert> hello oerjan
02:32:01 <bsmntbombdood> and then it exploded, almost all over my keyboard
02:32:10 <bsmntbombdood> but i got it away in time
02:32:52 * oerjan wonders if bsmntbombdood has changed subject or not
02:33:22 <bsmntbombdood> it's part of some qdb or bash.org quote
02:33:51 <bsmntbombdood> the guy is talking about opening a coke, a guy enters the channel, he says what i said, guy leaves with a quit message of something like "sick fucks"
02:34:49 <oerjan> <bsmntbombdood> hmm, by representing strings as trees you get constant time concatenation and O(log n) time indexing
02:35:15 <oerjan> that's what haskell's Data.Sequence does
02:35:26 <GregorR-L> Also, constant time splicing.
02:35:32 <Pikhq> But by representing strings as *arrays* of trees of lists, you get to be *really* confusing!
02:35:33 <GregorR-L> Erm
02:35:38 <GregorR-L> Not constant, O(log n)
02:35:41 <GregorR-L> But spacially constant
02:36:29 <oerjan> i sort of figured you had timed that exploding message to poiuy_qwert's arrival
02:36:49 <bsmntbombdood> yeah
02:37:07 <bsmntbombdood> Pikhq: what would be the point of that
02:37:08 <oerjan> but then, i think it would have worked better if you had _not_ changed the subject :)
02:37:41 <Pikhq> bsmntbombdood: First step in creating something more evil than Malbolge.
02:38:15 <bsmntbombdood> oh, i approve
02:38:23 * Pikhq thinks about it. . .
02:39:10 <bsmntbombdood> http://images.andyblume.com/main.php?g2_view=core.DownloadItem&g2_itemId=475&g2_serialNumber=1
02:40:43 <bsmntbombdood> http://images.andyblume.com/main.php?g2_view=core.DownloadItem&g2_itemId=544&g2_serialNumber=1 <-- similar
02:42:27 <bsmntbombdood> i had to do it
02:42:43 <oerjan> darn the second one took me a while
02:42:55 <oerjan> but it was worth it
02:43:09 <bsmntbombdood> i think that's a real add
02:43:20 <bsmntbombdood> for real lube
02:43:34 <Pikhq> Brilliant.
02:45:05 <bsmntbombdood> yes, http://www.manix.net/index.html
02:45:41 -!- nuba has joined.
02:46:30 <bsmntbombdood> http://www.youtube.com/watch?v=evMBjes_vnw
02:48:37 <Pikhq> That was less than subtle. . .
02:48:56 <GregorR-L> Must ... find ... good ... image comparison algorithm ...
02:50:06 <Pikhq> GregorR-L: Obviously what you need is the very, very powerful "Plof reference counting" algorithm.
02:50:20 <Pikhq> (sorry, I'm really not helpful)
02:50:31 <GregorR-L> lol
02:50:53 <bsmntbombdood> GregorR-L: the "esp game" route
02:51:42 <bsmntbombdood> http://www.espgame.org/cgi-bin/description
02:51:58 <bsmntbombdood> there's a good talk somewhere that he explains it in detail
02:52:52 <GregorR-L> ... something called "esp game" is an image comparison algorithm?
02:53:11 <bsmntbombdood> does "algorithm" mean deterministic?
02:53:16 <GregorR-L> Oh, I see. That wouldn't help my target problem at all.
02:53:23 <GregorR-L> Ideally.
02:54:16 <bsmntbombdood> here's the talk: http://video.google.com/videoplay?docid=-8246463980976635143&q=human+computation
02:54:36 <Pikhq> What, is that a mechanical turk sort of thing?
02:55:00 <GregorR-L> The ESP game wouldn't help my problem at all.
02:55:15 <GregorR-L> I need to be able to take two totally arbitrary images and get a comparison.
02:55:21 <bsmntbombdood> Pikhq: yeah
02:55:46 <Pikhq> GregorR-L: md5sum.
02:55:58 <GregorR-L> I COMPARISON, not equality X_X
02:56:15 <Pikhq> Would you like a halting problem solver on the side?
02:56:26 <bsmntbombdood> probably depends on the images
02:56:45 <bsmntbombdood> the type, and the kind of comparison you want
02:57:09 <GregorR-L> Let's say I have three pictures. Two are of faces, the third is of a house.
02:57:22 <GregorR-L> The result of comparing the two faces should be lower than the result of comparing one of the faces to the house.
02:57:32 <bsmntbombdood> google has a face recognition algorithm
02:57:40 * GregorR-L bashes his head into a wall.
02:57:51 <Pikhq> I'm thinking you might want to write that algorithm, and use it for a pH.D thesis.
02:57:56 <GregorR-L> Heh
03:00:05 <bsmntbombdood> maybe an algorithm to find "blobs", and then compare the shape of the blobs
03:02:00 <bsmntbombdood> blobs being regions of similar color
03:04:48 <bsmntbombdood> blob finding doesn't seem hard
03:08:02 <bsmntbombdood> and you can compare blobs by putting their centers in the same spot, and taking the area of the region the both cover
03:59:24 <bsmntbombdood> i was thinking today about a method for assesing the danger of some activity, by multiplying the probability of failure by the gravity of failure
03:59:41 <bsmntbombdood> i couldn't figure out how to generalize it to multiple failure modes
04:02:20 <Pikhq> One should average the individual dangers.
04:04:12 <bsmntbombdood> i'm rusty on my statistics--what's the probability that either of two independent events happen?
04:06:30 <oerjan> 1-(1-p)*(1-q)
04:06:55 -!- clog has joined.
04:06:55 -!- clog has joined.
04:07:24 <Pikhq> I'm sucky on my statistics. ..
04:07:49 <Pikhq> Unless it can be defined in terms of a derivative or integral, my brain doesn't handle it any more, I fear.
04:07:53 <bsmntbombdood> and that goes to 1 - \prod_i {1 - a_i} for a sequence of probabilitys?
04:08:08 <oerjan> well you need to consider what is the gravity of two things happening simultaneously
04:08:19 -!- sp3tt has quit (kubrick.freenode.net irc.freenode.net).
04:08:19 -!- GregorR has quit (kubrick.freenode.net irc.freenode.net).
04:08:20 <oerjan> it is just deMorgan's law, really
04:08:49 <oerjan> it is the probably that it is _not_ the case that neither happens
04:09:21 <oerjan> and the probability that _both_ of two independent events happen is the product
04:10:33 <oerjan> _if_ you assume that the gravity of two things happening simultaneously is the sum of the gravities, then you can just add the risks. even if they are not independent.
04:10:41 -!- sp3tt has joined.
04:10:58 <oerjan> because the expected value of a sum is the sum of the expected values
04:11:01 -!- GregorR has joined.
04:11:58 <oerjan> and the danger/risk is just the expected value of the gravity of the actual outcome
04:13:19 <bsmntbombdood> so, what Pikhq said
04:13:30 <bsmntbombdood> average all the dangers
04:13:42 <oerjan> not average, sum
04:14:12 <Pikhq> Multiply the average by the number of dangers, not sum!
04:14:40 <oerjan> sheesh
04:14:46 <oerjan> that's the same
04:14:48 <bsmntbombdood> expected value is average, isn't it?
04:14:58 <oerjan> sort of
04:15:16 <Pikhq> oerjan: That's the joke.
04:15:39 <oerjan> only if all outcomes have the same probability.
04:15:53 <Pikhq> (1+2+3)/3*3=1+2+3
04:16:33 <oerjan> expectation is the integral with respect to probability.
04:16:57 <oerjan> (which is a sum if probabilities are discrete)
04:18:51 <bsmntbombdood> ok, i think a sum follows intuition
04:26:47 <bsmntbombdood> an average doesn't: three dangers of .25 together have an average of .25, clearly wrong
04:30:16 <oerjan> on the other hand this doesn't work if dangers don't sum, like lethal ones (you can only die once)
04:31:42 <bsmntbombdood> i'm thinking death has infinite gravity
04:32:04 <bsmntbombdood> at least a painful dishonerable death does
04:35:21 <oerjan> i read a discussion on that recently
04:36:01 <oerjan> in the context of a game where you could win a million dollars simply by showing up, but there was a chance that you would die
04:37:08 <oerjan> the paradox being that most people say they wouldn't participate for any price, yet most take greater risks every day just by crossing the street
04:37:37 <bsmntbombdood> oh, death can't be infinite gravity
04:37:44 <bsmntbombdood> you could die by crossing the street
04:37:49 <oerjan> basically the idea that death has infinite gravity doesn't hold up against people's actual behavior
04:38:17 <bsmntbombdood> yeah
04:39:33 <oerjan> i think a better "rational" behavior might be to maximise your expected total remaining life quality
04:40:01 <oerjan> although real people probably don't work by that either :)
04:40:23 <bsmntbombdood> real people dont try to quantify dangers
04:41:07 <oerjan> not in small tasks at any rate
04:41:21 <oerjan> but perhaps in economical matters
04:42:01 <oerjan> although i am not one of those that do that, either...
04:46:49 <bsmntbombdood> in economic matters it's easy to quantify the gravity of failure/success
05:01:31 <oklopol> if death has inifinite gravity, the subject will do nothing.
05:01:42 <oklopol> if i understand what we're talking about
05:01:45 <oklopol> and that's ai.
05:02:19 <oerjan> except you can die from doing nothing too, i'm sure
05:02:37 <oerjan> in fact you can probably die from excess worrying
05:03:09 * SimonRC likes the (Flash) game Mindscape.
05:03:22 <SimonRC> It's the humour, I think.
05:03:26 <SimonRC> It has non of the usual run-along-2d-landscape-collecting-stuff-to-save-the-world crap
05:03:30 <SimonRC> No, you must run arond in your hallucinations cause by your delusional state of mind, to save your sanity.
05:03:40 <SimonRC> And the cute bunnies, despite their claims to the contrary, are EEEEVIL!
05:03:42 <SimonRC> zzzzzzz
05:05:05 <oklopol> well, if every action is calculated a value indicating how good it is, death being a negative inifity means even a slight change of death will make that goodness index inifitely small, which means every action is as bad as the next one
05:05:37 <oklopol> now school ->
05:11:16 <oklopol> if you think of death as infinitely bad, if someone asks you whether you want a bullet in your head or eternal life, you will pick a random choise.
05:11:33 <oklopol> because you might have a heart attack just before the eternal life.
05:13:34 <Pikhq> SimonRC: Thanks, now youv'e got that addicted.
05:16:41 <oklopol> oerjan: i meant 'random', by 'doing nothing' i meant it will be a sucky ai
05:27:28 <oerjan> i would usually interpret "infinitely bad" in a relative sense: you could still compare different probabilities of dying, it's just that unless the probabilities of dying are the same, no other kind of danger would have any effect on the comparison.
05:28:59 <oerjan> so then eternal life would be the preferable choice.
05:29:48 <oklopol> inf*n=inf.
05:30:08 <oerjan> it would not be that kind of inf
05:30:27 <oklopol> yours requires a more complex view of assigning goodness values, which is only better in the case of infinite gravities.
05:30:38 <oerjan> indeed
05:30:44 <oklopol> i don't see the point, let's just say infinite values bug here
05:30:51 <oklopol> hmm
05:30:53 <oklopol> school?
05:30:54 <oklopol> yes.
05:30:55 <oklopol> ---------->
05:31:20 <oerjan> i was wondering about why you hadn't left yet. have a good day. :)
05:35:02 <bsmntbombdood> maybe it makes more sense to rank gravitys in [0, 1] rather than [0, inf]
05:35:34 <bsmntbombdood> that doesn't work with stuff like money though
05:37:30 <oerjan> depends. money inflates if there is too much of it.
05:37:59 <bsmntbombdood> how can you convert monetary winnings into [0, 1] though?
05:38:37 -!- poiuy_qwert has quit.
05:38:44 <oerjan> logically 1 would have to represent the maximal possibility.
05:39:00 <bsmntbombdood> there is no maximum amount of money though
05:39:28 <oerjan> what i am saying is that an infinite amount of money does not necessarily have infinite value, because of inflation.
05:39:50 <bsmntbombdood> ok
05:41:04 <bsmntbombdood> if one person has unbounded moneys...money isn't worth anything anymore
05:42:17 <oerjan> unless that person is smart enough not to spend it all
05:42:40 <oerjan> that person looks a lot like a central bank
05:43:04 <oerjan> or rather, a government with complete access to the central bank
05:43:37 <bsmntbombdood> a smart government knows not to mint unbounded moneys, and back their moneys by something that actually is limited
05:43:40 <bsmntbombdood> like gold
05:44:56 <oerjan> nowadays i thought interest had taken the place of gold
05:45:20 <bsmntbombdood> what do you mean interest?
05:46:06 <oklopol> haha
05:46:11 <oerjan> the bank will mint unlimitedly, but those that want any of it must pay interest and give collateral
05:46:12 <oklopol> forgot my essay
05:46:22 <oklopol> nice, since i waited for the bus for 5 min
05:46:24 <oklopol> ------------>
05:46:30 <bsmntbombdood> hmm
05:46:33 <oerjan> i guess the collateral limits it
05:47:51 <oerjan> i also suppose this system can only work during economic growth
05:55:21 <Pikhq> bsmntbombdood: Currently, most monetary systems are based, not on something of actual value, but merely the trust that it *is* valuable.
05:55:31 <Pikhq> Welcome to the credit-based economy.
06:01:57 <bsmntbombdood> trusting the government, where does that lead
06:02:42 <Pikhq> I think there's a level of hell reserved for that.
06:07:53 <oerjan> http://en.wikipedia.org/wiki/Fiat_currency
06:11:10 <bsmntbombdood> demanding taxes to be paid in a certain currency gives it value also
06:35:39 -!- oerjan has quit ("Good something").
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:53:34 <GregorR-L> I have insanely written a neural network for comparing images.
08:53:43 <GregorR-L> It asks the human operator which image is more similar.
08:53:52 <GregorR-L> So the training function is ultra-slow (as slow as a person ;) )
08:54:01 <GregorR-L> I doubt highly that it'll work to any useful degree.
08:56:13 <bsmntbombdood> put it on a website, and make it fun to do
08:57:19 <bsmntbombdood> then do it in batch
08:57:39 <GregorR-L> lol
08:57:54 <GregorR-L> How to make it fun to do ...
08:57:57 <GregorR-L> *snaps* I know!
08:58:02 * GregorR-L types "tits" into google image search
08:58:17 <bsmntbombdood> one comparison, one tit
08:58:38 <GregorR-L> lol
08:58:55 <GregorR-L> There aren't enough tits on the internet to train this neural net :P
08:59:35 <bsmntbombdood> ...yeah there are
09:00:40 <GregorR-L> That statement was an exaggeration for the sake of emphasis :P
09:01:09 <bsmntbombdood> you can use other body parts too
09:02:01 <GregorR-L> Select sexuality upon registering.
09:02:44 <bsmntbombdood> you mostly get only male opinions if you use porn
09:03:10 <GregorR-L> To get my training set, I just used google image search with the following search terms:
09:03:16 <GregorR-L> a, the, art, architecture, man, woman
09:03:58 <GregorR-L> Shockingly, there is very little porn.
09:04:10 <GregorR-L> (Yes, safe search was off)
09:04:26 <GregorR-L> I think that porn doesn't generally use the term "woman" :P
09:09:20 <GregorR-L> "WATCH THESE ATTRACTIVE WOMEN ENGAGE IN CARNAL RELATIONS WITH PHYSICALLY GIFTED GENTLEMEN!"
09:10:21 <bsmntbombdood> lofl
09:14:40 <GregorR-L> Laughing ... on the floor ... laughing?
09:14:49 <bsmntbombdood> no, just lofl
09:37:36 <bsmntbombdood> aah, i can't stay up all night anymore
09:42:19 -!- GregorR-L has quit ("Leaving").
10:23:06 <oklopol> <bsmntbombdood> how can you convert monetary winnings into [0, 1] though? <<< 1-1/money
10:23:53 <oklopol> plus, the rise of gravity for money grows logarithmically over the amount of money.
10:24:20 <oklopol> i mean... a billion might be 10 times better than a million
10:26:44 <oklopol> also, it is so even if we assume an infinitely big world where inflation is impossible
10:27:41 <oklopol> because people simply don't see a difference between "one helluva lotta money" and "one thousand helluva lots of money"
10:28:19 <oklopol> i myself, don't really even see a difference between a billion and a million... since i've rarely even had a thousand
13:34:03 -!- jix_ has joined.
16:58:48 -!- fizzie has quit (kubrick.freenode.net irc.freenode.net).
16:58:48 -!- GregorR has quit (kubrick.freenode.net irc.freenode.net).
16:58:49 -!- nuba has quit (kubrick.freenode.net irc.freenode.net).
16:58:49 -!- meatmanek has quit (kubrick.freenode.net irc.freenode.net).
17:01:44 -!- nuba has joined.
17:02:20 <lament> eh
17:02:32 <lament> i certainly do see the difference between a billion and a million.
17:02:50 <lament> a million is enough to buy a decent but not a very good house.
17:02:57 <lament> there're cars that cost over a million.
17:03:11 <lament> a billion is enough to live the rest of your life without having to worry about money.
17:03:21 <lament> (this is in dollars, anyway)
17:03:43 <lament> sounds like a pretty significant difference to me :)
17:10:12 -!- meatmanek has joined.
17:11:21 -!- GregorR has joined.
17:17:55 -!- fizzie has joined.
17:22:37 -!- Izak has joined.
17:43:46 -!- sebbu has joined.
17:46:48 <Pikhq> lament: Where, exactly, do you live, Mr. "Million can buy a decent but not very good house"? California?
17:53:19 <lament> Pikhq: anywhere in the world.
17:53:38 <lament> well, not really, but certainly anywhere interesting in the states or europe.
17:54:09 <sekhmet> Well
17:54:12 <sekhmet> That's not really true
17:54:24 <lament> obviously the definition of 'very good' varies
17:54:24 <sekhmet> You can get a really good house for $1mil in most places in the states
17:54:39 <lament> mine includes things like location
17:54:43 <Pikhq> It depends upon where. . .
17:54:45 <lament> view, neighbourhood, etc
17:54:52 <sekhmet> Outside of, you know, Manhattan, central LA, etc
17:55:06 <sekhmet> I imagine Silicon Valley is somewhat pricey as well
17:55:10 <Pikhq> If you want a damned nice house in, say, LA, you're talking a hell of a lot of money.
17:55:15 <lament> sekhmet: good houses are expensive everywhere.
17:55:22 <sekhmet> lament: Not >$1m expensive, though
17:55:28 <lament> i'm not talking McMansion, i'm talking good house.
17:55:32 <sekhmet> I mean, unless you mean a Mansion or something
17:55:47 <Pikhq> If you want one out in, say, Colorado Springs, you're talking $1 million as your max. . .
17:56:11 <lament> i'd prefer to live somewhere on the ocean front
17:56:27 <Pikhq> Well, that *would* add up to >$1 million, then.
17:56:30 <lament> so there's somewhere to tie the yacht too :)
17:56:35 <sekhmet> Obviously if you tack on "want to live on the beach near a major city" then yeah
17:56:58 <lament> sekhmet: location is very important. Good locations aren't cheap, and cheap locations normally aren't good.
17:57:05 <lament> a good house is in a good location.
17:57:09 <lament> it's not good otherwise.
17:57:10 <sekhmet> That's not necessary for most people's definition of "a very good house" though
17:57:13 <sekhmet> Ah
17:57:18 <sekhmet> Well I see we disagree on that
17:57:39 <lament> sekhmet: you think if i take my good house on the ocean front and move it to antarctica, it remains a good house?
17:57:44 <sekhmet> I agree that location is important, but I take a much broader view
17:57:53 <sekhmet> lament: That's pretty extreme
17:58:02 <lament> any suburb is not a good location, because suburbs just suck.
17:58:07 <sekhmet> lament: If I take my good house on an ocean front and move it five miles inland, it certainly does
17:58:10 <sekhmet> IMO anyway
17:58:12 <Pikhq> lament: The definition of "good location" does vary.
17:58:13 <sekhmet> But whatever, obviously we disagree
17:58:16 <sekhmet> :)
17:58:21 * sekhmet steps out of the conversation
18:56:15 -!- ehird` has joined.
18:59:37 -!- ehird` has quit (Remote closed the connection).
19:11:58 -!- Izak has quit ("Farewell").
19:13:04 -!- aarcane has left (?).
19:27:33 -!- jix_ has changed nick to jix.
19:55:13 <SimonRC> "<Pikhq> SimonRC: Thanks, now youv'e got that addicted." <--- me no speech broken English
19:55:34 <Pikhq> SimonRC: Now you got me *addicted*.
19:57:59 <SimonRC> surely you can win that in about 1/2 hour?
19:58:38 <GregorR> Pikhq: You highlighted the wrong word X_X
19:59:10 <Pikhq> XD.
19:59:26 <Pikhq> SimonRC: Sure. . . If I've got enough of an attention span.
20:04:03 -!- Sgeo has joined.
20:13:53 <Pikhq> Just finished.
20:19:39 <Pikhq> Trippy, man.
20:19:51 <Pikhq> SimonRC: Damned trippy.
20:27:37 <SimonRC> Wonderfully dark too
20:27:58 <SimonRC> You *did* watch all the cut-scenes, right?
20:36:56 <Pikhq> Yup.
20:37:19 <Pikhq> I skipped over some when I started it back up today, but that was only because I had already seen them.
20:42:13 <SimonRC> ok
20:45:12 <SimonRC> did you get all the trophies?
20:54:27 -!- ehird` has joined.
20:54:31 <ehird`> LOLCODE ON MONORAIL
20:54:32 <ehird`> LOLCODE is a much better language than Ruby, and so we need to work hard to make LOLCODE ON MONORAIL the standard web development language!
20:54:32 <ehird`> JESUS CHRIST PEOPLE.
21:04:33 <Pikhq> SimonRC: Not yet..
21:27:39 * bsmntbombdood punches lament in the rich
21:31:00 <lament> ow
21:36:00 <bsmntbombdood> <Pikhq> SimonRC: Now you got me *addicted*. <--- addicted to you
21:36:20 <oklopol> lament: well, i would never buy a big house, just http://www.youtube.com/watch?v=_-OOGN8YmtE
21:36:44 <oklopol> i prefer living cramped in a corner.
21:37:06 <lament> you do?
21:37:13 <lament> (i'm not gonna watch videos at work)
21:37:37 <oklopol> oh :<
21:37:52 <oklopol> i do. well, i guess i'd like a big empty storage hall
21:38:23 <lament> would your friends like it when you invite them over?
21:38:46 <oklopol> my friends are as insane as i am.
21:38:58 <oklopol> well
21:39:07 <oklopol> you don't know how insane i am, of course
21:39:17 <bsmntbombdood> hahahahahah work
21:40:32 <oklopol> school is over \o/
21:40:49 <oklopol> on a scale of 4-10, i got 8 on the integration test
21:41:08 <bsmntbombdood> who uses a scale of 4-10?
21:41:18 <oklopol> i even had a thinking error in one question
21:41:27 <oklopol> others were copy paste ones
21:41:32 <oklopol> finland.
21:42:39 <bsmntbombdood> http://www.improveverywhere.com/2005/12/10/suicide-jumper/
21:43:33 <Pikhq> Obviously, countries with Germanic languages can't do anything that makes sense.
21:43:39 <Pikhq> Finland has a 4-10 scale.
21:43:41 <lament> obviously.
21:43:49 <Pikhq> America has an A,B,C,D,F scale.
21:43:57 <bsmntbombdood> a 0-100 scale
21:44:14 <lament> A,B,C,D,F is pretty brain-damaged
21:44:32 <lament> on the other hand, Russia has grades 1-11, but without grade 4
21:44:54 <bsmntbombdood> percentiles make sense
21:45:06 <lament> yes, they do.
21:45:21 <bsmntbombdood> but erf is a bitch
21:46:35 <Pikhq> Could they please just throw in an "E" to the scale?
21:46:58 <Pikhq> It'd make me happy.
21:47:03 <lament> okay
21:47:22 <lament> e will be added to the scale
21:47:32 <Pikhq> Bona.
21:47:38 <lament> with its usual meaning of 2.718281828459....
21:47:40 <bsmntbombdood> he's bona fide
21:47:51 <Pikhq> Ne.
21:50:41 -!- lament has quit (Read error: 104 (Connection reset by peer)).
21:51:01 <oklopol> i think germany used 1-10
21:51:34 <bsmntbombdood> grades--
21:54:00 <Pikhq> I'd prefer a system of pass or dumbass.
21:54:11 <Pikhq> There is no failure, only being labeled a dumbass. :p
21:55:28 <oklopol> pass/fail, i don't see a need for more
21:56:14 <bsmntbombdood> we are moving :(
22:09:57 -!- oerjan has joined.
22:15:40 <oerjan> ehird`!
22:17:30 <oerjan> ehird`: i got your language finished more properly, in python
22:18:00 <oerjan> http://oerjan.nvg.org/esoteric/ehird.py
22:23:30 <oerjan> Pikhq: finnish is not a germanic language. although swedish, which is, is also an official language in finland.
22:24:48 <Pikhq> Oh.
22:27:21 <fizzie> We also quite commonly use the scale 0-5 in establishments of higher education, like universities and such.
22:27:52 <oklopol> indeed
22:27:53 <oerjan> when i was in junior highschool the grades were LG,NG,G,M(G),S(G). In senior high school they were 0-6. In university they were 1.0-4.0, although the universities now have changed to an A-F system.
22:28:16 <oerjan> (norway)
22:29:49 <oerjan> (G meaning "good", with an appropriate adverb)
22:30:42 <fizzie> For the very first three or so years of school (age: 7-9 years or so) our school used the grades "H", "K" and "L" (descending order), with the letters meaning: "H" -> "hyvä" ('good'), "K" -> "kaipaa lisäharjoitusta" ('more practice required', basically) and "L" -> "kaipaa runsaasti lisäharjoitusta" ('a lot more practice required').
22:31:35 <fizzie> I never really understood why exactly the latter two were named "K" and "L". Especially the "L" makes no sense, since the only word it could come from ("lisäharjoitus") appears in both grades.
22:32:18 <fizzie> Maybe it was only for the first two years, not three.
22:32:24 <oerjan> ah yes. in the first 6 years we had essentially "satisfactory" and "could improve". no abbreviation that i recall.
22:32:36 <oklopol> well, pretty much nothing makes sence outside math and programming.
22:33:01 <oklopol> in my school there was no grading before 4th grade :<
22:34:59 <oerjan> well the L is somewhat like G in our system then.
22:35:33 <fizzie> I don't think our "exams" (were there any?) or other work was graded during the HKL years, but those letters appeared in the semiannual certificate-given-at-the-end-of-study-term papers.
22:35:42 <oklopol> oh
22:35:44 <oklopol> indeed they did
22:35:58 <oklopol> well, as if i could remember anything beyond yesterday
22:35:59 <oerjan> same in norway
22:36:26 <fizzie> Oh, it was a common practice? For some reason I thought the silliness was limited to my particular school.
22:36:35 <oerjan> it's not like i remember that much from my school years...
22:37:54 <oklopol> fizzie: actually we had 3 different SMILEYS.
22:38:43 <fizzie> Ok, that's worse.
22:39:05 <oklopol> ya :P
22:39:54 <oerjan> "this year we will present your grades in the form of an interpretive dance"
22:59:59 -!- ehird` has quit.
23:00:33 <oerjan> that ehird` guy is _really_ hard to get in touch with...
2007-06-02
00:02:54 -!- jix has quit ("CommandQ").
00:10:35 -!- sebbu has quit ("@+").
00:19:13 <bsmntbombdood> time is too fucked up
00:19:29 <bsmntbombdood> i propose a new system: decaseconds since the epoch
00:21:36 <bsmntbombdood> the epoch being the start of the current year
00:37:54 <bsmntbombdood> maybe kiloseconds
00:38:41 <Pikhq> I propose a new system: time_t
00:41:45 <bsmntbombdood> the numbers are too big for humans
00:54:19 <GregorR> I propose a new system. Lightmeters since the big bang.
00:54:56 <bsmntbombdood> good plan
00:55:04 <GregorR> Amusingly, the time is also the radius of the universe in meters ;)
00:59:28 <oerjan> what is wrong with planck time, i say
01:01:11 <bsmntbombdood> numbers to big
01:02:08 <oerjan> well a lightmeter is about, lessee...
01:02:30 <oerjan> 3.3 nanoseconds
01:04:41 <GregorR> lol
01:05:51 <bsmntbombdood> i was being serious
01:06:29 <oerjan> 86.4 ks in a day.
01:07:52 <oerjan> we are now at around 10^26 lightmeters after BB
01:11:48 <bsmntbombdood> maybe 10 light gigameters
01:14:48 <oerjan> what?
01:15:28 <oerjan> about 33 seconds?
01:16:20 <bsmntbombdood> yeah
01:44:14 <oerjan> what about light furlong?
01:45:35 <oklopol> hmm
01:45:45 <bsmntbombdood> 671 nanoseconds?
01:45:46 <oklopol> i might go to sleep now
01:46:03 <oerjan> something like that
01:52:39 -!- GregorR-L has joined.
01:56:36 -!- SF|008 has joined.
01:57:07 -!- calamari has joined.
01:57:53 <SF|008> System online.
01:59:14 <SF|008> Query: Is this channel active?
01:59:25 <oerjan> maybe
02:00:02 <SF|008> Oddly enough, "maybe" is a valid boolean value.
02:00:37 <bsmntbombdood> fuzzy booleans!
02:02:18 <SF|008> If anybody wishes: Throw a runtime exception with the message "I'm in ur channel throwin ur exceptionz."
02:03:30 <oerjan> Program error: I'm in ur channel throwin ur exceptionz.
02:04:31 <fizzie> Booleans! http://worsethanfailure.com/Articles/What_Is_Truth_0x3f_.aspx
02:04:58 <SF|008> Heh, someone here knows what I am talking about.
02:09:46 <oerjan> somehow i don't think that poster actually agreed with you.
02:10:47 <oerjan> i think, while there may be more than two truth values, only two of them are booleans.
02:12:00 <SF|008> Heh.
02:13:32 <SF|008> Ever heard of a proposed esoteric language called LifeScript?
02:15:31 <GregorR-L> SF|008: It's not on esolangs.org, therefore it does not exist.
02:16:07 <SF|008> Well, it was never put on a site other than the following link:
02:16:18 <SF|008> http://uncyclopedia.org/wiki/LifeScript
02:16:43 <oerjan> google turns up nothing obvious
02:17:03 <bsmntbombdood> .47693627620447
02:19:15 <oerjan> how enumerate
02:22:02 <SF|008> /!\ Google doesn't turn up anything related to programming for LifeScript.
02:22:31 <SF|008> (Damn, that /!\ was supposed to look like a warning symbol.)
02:24:53 <oerjan> i would guess it was made up on uncyclopedia
02:26:10 * oerjan accuses bsmntbombdood of spewing random numbers
02:26:49 <bsmntbombdood> 0.82418231992042479
02:28:21 * GregorR-L accuses bsmntbombdood of secretly being a superintelligent amoeba.
02:28:36 <bsmntbombdood> that's right
02:29:11 * oerjan accuses bsmntbombdood of agreeing too easily
02:29:23 <bsmntbombdood> 0.57673614647867355
02:29:56 <bsmntbombdood> q+tiQqHJI74zv7AskwJr7Yg
02:30:04 <bsmntbombdood> 256 bits of entropy, bitches
02:30:08 -!- `008_ has joined.
02:30:25 <GregorR-L> What a uniquely non-alphabetic moniker.
02:34:20 * `008_ waits for his ghost to ping out.
02:35:45 -!- GregorR-L has quit ("Leaving").
02:35:57 <oerjan> if you register you can get nickserv to kill ghosts
02:36:07 -!- SF|008 has quit (Read error: 104 (Connection reset by peer)).
02:37:13 -!- `008_ has changed nick to SF|008.
03:14:42 -!- Pikhq has quit ("Leaving.").
03:17:41 -!- Pikhq has joined.
03:25:01 <SF|008> Hello.
03:25:29 <bsmntbombdood> GL59VPe05mq+geZrOKQ78NItSqrwUNePtw1XWOEuH/s
03:30:45 <oerjan> that's #esoteric for you - just random talk.
03:39:53 <bsmntbombdood> UCqM7ipdod9RM3ucjgTgFA08zyxJv7OuCnlAcTXvF5I
03:52:17 <bsmntbombdood> i can has cheezbrgr?
03:54:24 <oerjan> nowai
03:54:55 <bsmntbombdood> i think i have eaten one cheeseburger in my life
03:55:42 <oerjan> how sad that is
04:03:06 -!- SF|008 has quit (Read error: 104 (Connection reset by peer)).
04:44:43 -!- Sgeo has quit (Read error: 104 (Connection reset by peer)).
05:04:56 -!- SF|008 has joined.
05:26:10 <oerjan> "C++ is multiparadigm in the same way a dog with 4 table legs nailed onto it is an octopus"
05:27:05 <nuba> oerjan: that sounds pretty much like monty python's parrot sketch
05:29:29 <oerjan> C++ is not a dead parrot. people may disagree on whether this is fortunate or not.
05:30:54 <SF|008> Anybody: while(1){fork();}
05:31:16 <Pikhq> I prefer:
05:31:21 <Pikhq> main: call fork
05:31:25 <Pikhq> jmp $main
05:31:41 <SF|008> Assembly?
05:31:44 <Pikhq> Yup.
05:31:59 <Pikhq> Could be made really, really tiny via abuse of ELF. . .
05:32:14 <SF|008> Or in an esolang I'm in the process of coding:
05:32:53 <SF|008> VAR main 0
05:33:12 <SF|008> FRK infinitefork
05:33:25 <SF|008> CLL main
05:33:33 <SF|008> RET 0
05:34:01 <SF|008> *CLL $main
05:34:41 <Pikhq> var __dl_fork=dlsym(dl_libc,"fork");while(:{1},{dlcall(__dl_fork)});
05:34:45 <SF|008> (infinitefork is the name of a file called infinitefork.lsc, which contains this exact code.
05:35:18 <Pikhq> . . . I've got something better for you.
05:35:21 <Pikhq> :(){ :|:& };:
05:35:43 <SF|008> Ah, the Unix fork bug.
05:36:28 <oerjan> it's a bug?
05:36:51 <SF|008> Typing that into a shell=hang.
05:36:52 <Pikhq> It's perfectly valid code.
05:37:06 <SF|008> Yes, but it crashes.
05:37:11 <Pikhq> Not the shell author's fault that what's requested is a crash.
05:37:31 <Pikhq> It's like complaining that your program segfaults when it sends itself a SIG_SEGV.
05:38:30 <SF|008> It's not supposed to send itself a SIGSEGV.
05:39:06 <bsmntbombdood> Pikhq: forkbomb shell code!
05:39:50 <SF|008> That's like (in my code) doing this:
05:40:13 <SF|008> ERR 199 SIG_SEGV.
05:40:31 <SF|008> Where that's supposed to naturally happen like this:
05:40:35 <Pikhq> Imagine that you had raise(SIGSEGV) as your entire program.
05:40:46 <Pikhq> Is it a bug when that causes your program to halt?
05:40:57 <SF|008> That would be a really useless program.
05:41:07 <Pikhq> Yes, but so is a fork bomb.
05:41:27 <SF|008> A fork bomb can take out the system.
05:41:34 <Pikhq> Just because it's useless doesn't make it a bug when an implementation does exactly what's requested of it.
05:42:10 <SF|008> A raise(SIGSEGV) just makes a stupid dialog box appear or something.
05:42:25 <bsmntbombdood> that program could be usefull if you were testing your sigsegv in the kernel
05:42:27 <Pikhq> Are you in POSIX-land or something?
05:42:38 <Pikhq> Err.
05:42:42 <Pikhq> Not in POSIX-land.
05:43:14 <Pikhq> bsmntbombdood: Yeah. . . It could also be useful if you just want to demonstrate to people that something doing what's requested is *desired behavior*, not a bug. ;)
05:43:31 <bsmntbombdood> yes indeed
05:43:51 <bsmntbombdood> *(int*)0;
05:44:09 <SF|008> But raising SIGSEGV explicitly is a kind of crappy error handler.
05:44:28 <Pikhq> Sure, but that *is* the requested behavior.
05:44:41 <Pikhq> If GCC *didn't* handle that properly, then GCC would be buggy.
05:44:57 <bsmntbombdood> maybe you can turn this into an esolang?
05:45:05 <bsmntbombdood> a language that doesn't do what you tell it to?
05:45:09 <Pikhq> Hahah.
05:45:40 <SF|008> The human programming language:
05:46:13 <SF|008> All syntax is valid, but the only output you get is the compiler telling you it'll do it later.
05:47:03 <SF|008> Example code:
05:47:15 <SF|008> Print out "hello world."
05:47:20 <SF|008> Output:
05:47:34 <SF|008> [X] I'll do it later.
05:47:38 <Pikhq> No, no, no.
05:47:40 <bsmntbombdood> not a very interesting completeness class
05:47:46 <bsmntbombdood> not worth thinking about
05:47:48 <bsmntbombdood> goodbye
05:47:51 <Pikhq> Output: "Goodbye, world."
05:47:59 <Pikhq> kill 09 1
05:48:08 <SF|008> 09 1?
05:48:12 <Pikhq> Err.
05:48:15 <Pikhq> kill -9 1
05:48:35 <SF|008> Still doesn't make any sense right now.
05:48:51 <Pikhq> What OS are you on?
05:49:03 <SF|008> Windows XP.
05:49:13 <Pikhq> Here's a nickle, kid. Get a real OS.
05:49:35 <SF|008> I have Ubuntu 6.something on my drive too.
05:49:37 <bsmntbombdood> no beard, no snobby unix guy
05:50:17 <Pikhq> bsmntbombdood: Huh?
05:50:30 <bsmntbombdood> you can't be a snobby unix guy unless you have a beard
05:50:47 <Pikhq> I've not shaved for a week, does that count?
05:50:54 <bsmntbombdood> no
05:51:36 <SF|008> Good idea for the esolang that just came up: print=throw an exception.
05:51:41 <Pikhq> SF|008: http://en.wikipedia.org/wiki/Kill_%28Unix%29
05:51:50 <bsmntbombdood> that's not a good idea
05:52:05 <SF|008> Not really.
05:52:21 <SF|008> I'm just pulling ideas out of /dev/ass right now.
05:52:46 <Pikhq> . . . Okay, so you're on Windows XP, but you're using Unix devices.
05:52:54 <nuba> Pikhq: whats a real OS?
05:53:28 <Pikhq> nuba: A real, honest-to-God UNIX, of course.
05:53:41 <Pikhq> (there are other real OSes, that's just a common one)
05:53:50 <nuba> theres more to OSes than unixes
05:54:05 <Pikhq> Yeah, of course.
05:54:49 <nuba> plan9 for one addressed many bad designs on unix, but didnt stick around mostly cause unix was just good enough
05:54:51 <Pikhq> Here is one simple (if slightly over-general) definition of a real OS. . .
05:55:03 <Pikhq> os_t real_os = !Windows;
05:55:03 <Pikhq> :p
05:56:22 <nuba> heh
05:56:25 <nuba> kthxbye
05:56:37 <nuba> can i has sleep
05:56:44 <nuba> me badly needs sleep
05:57:03 <nuba> oh this is not #lolcode, sorry :)
05:57:12 <Pikhq> kill(nuba_pid, SIGSLEEP);
05:57:25 <nuba> multitasking while sleepwalking, no good. 'night
05:58:04 <bsmntbombdood> it's not "can i has sleep", it's "i can has sleep?"
05:58:26 <nuba> yeah not only wrong channel but syntax error too
05:58:30 <nuba> im in real bad shape
05:59:02 <Pikhq> Moral of the story: don't do LOLCODE.
05:59:14 <bsmntbombdood> don't lolcode, lolcats
06:00:01 <bsmntbombdood> http://icanhascheezburger.files.wordpress.com/2007/05/bring-me-a-tricycle-i-must-get-to-the-circus.jpg <-- it's GregorR !
06:04:01 <oerjan> eek, a werecat
06:06:35 <Pikhq> It's not Gregor, it's Gregor's cat.
06:06:39 <oerjan> nah, cannot be GregorR, it doesn't smile.
06:06:53 <oerjan> GregorR always smiles when he has a hat on.
06:10:22 * SF|008 does not know what the Windows equivalent to /dev/<name> is.
06:10:59 <Pikhq> There is none.
06:11:07 <Pikhq> That's an incomprehensible blob of API.
06:11:20 <SF|008> ?
06:12:05 <SF|008> I know you can redirect input to nul to get rid of it...
06:12:39 <Pikhq> Um, yeah. . . That's a nicety from DOS.
06:13:25 <Pikhq> The equivalent of, say, /dev/dsp is some weird Windows API. . . And the equivalent of /dev/hda is a different API. . .
06:13:28 <bsmntbombdood> uuuh ... don't talk about windows
06:13:32 <Pikhq> And /dev/null is a different one.
06:13:40 <Pikhq> Makes me sick just talking about it.
06:14:34 <SF|008> God, Windows sucks.
06:14:42 <bsmntbombdood> STOP USING IT
06:14:45 <bsmntbombdood> that is all
06:15:00 <SF|008> But it's the only one that I can access my internet connection from.
06:15:06 <Pikhq> SF|008: Sucks even more once you get *used* to having the source code to everything.
06:16:13 * SF|008 goes to check if nocharge.com has an executable dialer for his other system.
06:17:49 <Pikhq> SF|008: What kind of ISP do you have that doesn't support non-Windows OSes?
06:18:08 <bsmntbombdood> how does an isp support or not support an os?
06:18:28 <bsmntbombdood> shouldn't they just...give you a connection to the internets?
06:18:30 <SF|008> The dialer may be in a different executable format.
06:18:34 <Pikhq> bsmntbombdood: Easy. First, require a proprietary protocol.
06:18:52 <Pikhq> Second, only implement it in one OS.
06:19:05 <bsmntbombdood> why would you d o that?
06:19:09 <Pikhq> SF|008: *Surely* they support standard protocols?
06:19:11 <SF|008> Last time I checked, only Windows has the ability to use .exe's.
06:19:14 <Pikhq> bsmntbombdood: I dunno, ask NetZero.
06:19:43 <Pikhq> SF|008: Yeah, but that doesn't mean they don't support standard protocols. . .
06:19:44 <SF|008> What I'm saying is, the dialer that you downlad to give you the numbers may only be in a .exe file.
06:19:59 <bsmntbombdood> extract them
06:20:11 <Pikhq> Earthlink, for example, ships with a proprietary dialer. . . But I can just as easily find the phone numbers, and use kppp to dial up.
06:20:20 <SF|008> .exe=windows executable.
06:20:36 <oerjan> or VMS :)
06:21:17 <SF|008> I don't even know how to get to the net on Ubuntu 6.whatever it is.
06:21:48 <Pikhq> Or DOS, or certain versions of BeOS.
06:22:31 <SF|008> Pikhq: Uh, you seem to have gone into an infinite rant loop.
06:22:44 -!- calamari has quit ("Leaving").
06:23:08 <SF|008> Kindly throw an exception stating that you have detected an infinite rant and have decided to exit.
06:23:10 <Pikhq> SF|008: It's 23:21. I have good reason to.
06:23:25 <bsmntbombdood> whoa you are in my tz
06:23:34 <SF|008> Pikhq: As are you.
06:23:47 <SF|008> What state are you in?
06:23:56 <Pikhq> Colorado.
06:24:01 * bsmntbombdood too
06:24:15 * SF|008 is not.
06:24:21 <Pikhq> bsmntbombdood: I could swear we had this conversation earlier.
06:24:25 <bsmntbombdood> we did
06:24:35 <Pikhq> Ah.
06:24:42 <bsmntbombdood> i didn't remember untill just now
06:25:06 <Pikhq> You do realise that your hostname places you in (I think) Belgium, right? :p
06:25:30 <bsmntbombdood> yeah
06:25:37 <Pikhq> . . . Why?!?
06:25:40 <bsmntbombdood> not my hostname, actually
06:26:11 <SF|008> Heh.
06:26:24 <SF|008> qhois confirms the belgium hostname.
06:26:31 <SF|008> *whois.
06:26:33 <bsmntbombdood> guy who bought it says .be was cheaper
06:26:51 <SF|008> Damn, my typing skills are fail today,'
06:27:11 <Pikhq> bsmntbombdood: Probably is.
06:30:39 * SF|008 gets bored and dereferences a null pointer.
06:31:01 <bsmntbombdood> *(int*)0;
06:31:49 <oerjan> fromJust Nothing
06:33:57 * Pikhq gets bored an references a null pointer.
06:34:04 <Pikhq> &(void*)0;
06:34:14 <bsmntbombdood> errorrrr
06:34:24 <Pikhq> What error is there in that?
06:34:32 <Pikhq> It's just a pointer to a pointer. . .
06:34:34 <oerjan> Just Nothing
06:34:40 <Pikhq> Exactly.
06:34:47 <bsmntbombdood> you can't reference on something that's not a valid lhs
06:35:09 <Pikhq> NULL is perfectly valid until you try to dereference it.
06:45:41 -!- GreaseMonkey has joined.
06:50:03 <fizzie> "The operand of the unary & operator shall be either a function designator, the result of a [] or unary * operator, or an lvalue that designates an object that is not a bit field and is not declared with the register storage-class specifier."
06:50:13 <GreaseMonkey> what's this?
06:50:18 <fizzie> 0 (or any other constant) is not one of those.
06:50:24 <fizzie> GreaseMonkey; You missed:
06:50:27 <fizzie> 08:32:25 < Pikhq> &(void*)0;
06:50:29 <fizzie> 08:32:45 < Pikhq> What error is there in that?
06:51:48 <oerjan> hm... i don't think (void*)0 is an lvalue until you apply * to it
06:51:57 <GreaseMonkey> well, it would be pointing to codespace if it were possible
06:53:08 <fizzie> It might as well have to "point" to a register, if the "0" part was implemented with a "clear a register with a command like xor x, x".
06:53:57 <Pikhq> fizzie: A constant is not such an object, but a pointer to a constant *is*.
06:54:05 <Pikhq> Err.
06:54:12 <Pikhq> A pointer that's constant.
06:54:25 <fizzie> Yes, but "(void*)0" is a constant (a pointer, but still a constant), not an object in memory you could point at.
06:54:26 <oerjan> no, * of a pointer is such an object. not the pointer itself.
06:54:44 <Pikhq> Mmm.
06:54:49 <fizzie> There's nothing wrong with "void * foo = 0; &foo;" though.
06:54:50 -!- SF|008 has quit (Read error: 110 (Connection timed out)).
06:54:55 <Pikhq> So, &(void*)0; is technically invalid.
06:55:16 <Pikhq> (more than technically; I think GCC would shoot me for it)
06:55:20 <fizzie> It's as invalid as "&1", even though that "should" be just a pointer to an integer.
06:55:54 <Pikhq> Except that the constant doesn't get any actual memory space allocated to it.
06:56:06 <fizzie> I'm not sure if there was even an explicit rule stating that the result of a cast operator is never an lvalue.
06:56:13 <fizzie> (void
06:56:18 <fizzie> Arr, enter-error.
06:56:27 <Pikhq> Uh. . .
06:56:28 <fizzie> But "(void*)0" needs no more memory space than "0" does.
06:57:33 <Pikhq> I don't think that works. . . (void *)some-random-integer-here is *surely* an lvalue. . .
06:57:56 <Pikhq> (regardless of how stupid of one it is. ;))
06:58:03 <fizzie> No, it's not. You can't assign to it; "(void *)42 = 69;" does not work at all.
06:58:24 <fizzie> After you dereference it with a *, it's an lvalue. "*(int *)42 = 69;" does "work".
06:59:43 <Pikhq> int *foo;(void *)foo = bar;
06:59:55 <Pikhq> I think in that case (void *)foo is a perfect lvalue.
06:59:58 <fizzie> You can't assign to the result of a cast expression.
07:00:02 <fizzie> It's not an lvalue.
07:00:24 <Pikhq> Now you see why you should never trust my first attempt at a C program.
07:00:27 <fizzie> test.c:3: error: invalid lvalue in assignment
07:00:41 * Pikhq really needs to memorize the rules for lvalues and such
07:01:13 <fizzie> If you really want to do what I think you'd want that to do, you have to say "int *foo; *(void **)foo = bar;"
07:01:28 <fizzie> Er, "*(void **)&foo = bar", I mean.
07:01:49 <Pikhq> Which, of course, is stupid.
07:02:09 <Pikhq> int *foo;foo=bar; is much shorter.
07:02:19 <Pikhq> Or even int *foo=bar;
07:02:43 <fizzie> It might not do the same thing, if void *s are different than int *s. (Although I don't think there are many cases where *(void **)&foo = bar would do the _right_ thing.)
07:02:47 <fizzie> I'd love to stay and quote more of the C standard, but have to hurry, there's the high-school-graduation-party of wife's younger brother to attend to.
07:03:47 <Pikhq> Mmkay.
07:03:57 * Pikhq will go get the C standard, and shove it firmly into head
07:05:09 <oerjan> o_O
07:09:44 <oklopol> ubuntu sucks ass, and windows is the exact same system with a lot of functionality removed.
07:09:56 <oklopol> i mean
07:10:03 <oklopol> except for the lost of"
07:10:10 <oklopol> *"
07:10:21 <oklopol> *lots
07:16:29 * Pikhq sleep need
07:17:32 <oklopol> school :<
07:17:34 <oklopol> --------------->
07:17:52 <oerjan> on saturday?
07:18:06 <oklopol> i get my grades
07:18:23 <oklopol> --------->
07:18:25 <oerjan> oh. good luck.
07:30:09 <bsmntbombdood> i hate the world
07:30:17 <GreaseMonkey> why?
07:30:24 <bsmntbombdood> many reasons
07:30:39 <GreaseMonkey> well, shit happens
07:31:02 <bsmntbombdood> http://www.codinghorror.com/blog/archives/000781.html
07:31:03 <bsmntbombdood> for hat
07:31:04 <GreaseMonkey> and besides, if you're gonna cut your life short, you'll be doing nothing forevermore, which sucks more than life
07:31:05 <bsmntbombdood> *that
07:34:42 <GreaseMonkey> took me two minutes to make a c program that does that
07:35:07 <oerjan> that's one theory. i go by the theory that people who commit suicide get reincarnated into a new life with the exact same kind of problems they didn't resolve in the previous one.
07:35:28 <oerjan> i.e. suicide helps nothing, period.
07:35:41 <bsmntbombdood> ha, reincarnation
07:37:24 <oerjan> but then everyone is so sure of things that everyone is probably going to be hugely surprised, assuming there is an afterlife at all
07:38:54 <oerjan> (including me)
07:39:07 <bsmntbombdood> no parse
07:40:12 <oerjan> eh, try replacing "that" with ", so"
07:47:01 <oerjan> ok, finished
07:47:22 <oerjan> eh wait
07:48:21 <oerjan> there
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:01:02 -!- oerjan has quit ("Good newt").
08:06:59 -!- GreaseMonkey has quit ("have fun, be careful not to blow everything up, ignore that loose screw there").
08:30:08 -!- xororand has joined.
08:30:17 <xororand> hi
08:30:33 <xororand> is there a networking extension for brainfuck or brainfYrk?
08:39:42 -!- Pikhq has quit (kubrick.freenode.net irc.freenode.net).
08:39:42 -!- GregorR has quit (kubrick.freenode.net irc.freenode.net).
08:39:42 -!- meatmanek has quit (kubrick.freenode.net irc.freenode.net).
08:40:44 -!- Pikhq has joined.
08:40:44 -!- GregorR has joined.
08:40:44 -!- meatmanek has joined.
08:46:48 <xororand> nevermind, i just discovered the easel api
09:11:35 -!- sebbu has joined.
11:09:09 -!- xororand has left (?).
11:13:14 -!- kombee has joined.
11:38:03 -!- jix__ has joined.
12:04:27 -!- kombee has quit (Read error: 110 (Connection timed out)).
12:12:02 -!- jix__ has changed nick to jix.
13:03:38 -!- jix__ has joined.
13:13:31 -!- jix has quit (Read error: 113 (No route to host)).
16:43:25 -!- Robdgreat has joined.
16:43:38 <Robdgreat> Hi.
16:56:22 -!- jix__ has changed nick to jix.
17:51:54 <Pikhq> Sal'.
17:56:47 -!- Sgeo has joined.
17:57:18 -!- tokigun has quit (Read error: 104 (Connection reset by peer)).
18:28:57 -!- tokigun has joined.
18:29:36 -!- W|cked has quit (Read error: 110 (Connection timed out)).
18:31:56 -!- W|cked has joined.
18:34:11 -!- Pikhq has quit (Connection timed out).
18:35:42 -!- Pikhq has joined.
18:59:56 <oklopol> hmm, i wonder if i should fix my java documentation after 8 beers...
19:39:46 -!- nuba has left (?).
19:46:38 -!- Robdgreat has left (?).
20:22:45 -!- Pikhq has quit ("Leaving.").
20:26:52 -!- Pikhq has joined.
21:48:28 -!- SF|008 has joined.
22:25:03 -!- `008_ has joined.
22:36:23 -!- SF|008 has quit (Read error: 110 (Connection timed out)).
22:54:14 -!- tokigun has quit ("server shutdown due to maintanence (07:00 - 18:00 KST est.)").
22:58:25 -!- W|cked has quit (Read error: 110 (Connection timed out)).
23:23:48 -!- SF|008 has joined.
23:43:48 -!- `008_ has quit (Read error: 110 (Connection timed out)).
23:49:22 -!- sebbu has quit ("@+").
23:49:51 -!- SF|008 has quit (Read error: 110 (Connection timed out)).
2007-06-03
00:12:18 <bsmntbombdood> we got grades today
00:18:16 <Pikhq> HS or college?
00:19:13 <bsmntbombdood> hs
00:20:31 <bsmntbombdood> 2 As, 1 B, 1 C and 2 Ds
00:20:34 <bsmntbombdood> not so great
00:20:51 <Pikhq> I had 4 As, 3 Bs this semester. . .
00:21:40 <bsmntbombdood> overacheiver
00:22:07 <Pikhq> Not really. My GPA's a 3.02. . .
00:24:25 <bsmntbombdood> well, i'm just glad i passed the two classes i got Ds in
00:25:29 <Pikhq> Know the feeling. . .
00:25:58 <bsmntbombdood> spanish and physics
00:26:29 <Pikhq> Wish that I'd done physics instead of chemistry. . .
00:26:43 <Pikhq> Chemistry + me = explosions.
00:26:53 <bsmntbombdood> i'm taking chem next year
00:26:57 <Pikhq> "How the hell did you get a *noble gas* to explode?!?"
00:27:04 <Pikhq> ^ me in a chem lab.
00:27:14 <bsmntbombdood> are you a sophomore?
00:27:26 <Pikhq> Going into my senior year.
00:27:29 <bsmntbombdood> oh
00:27:42 <bsmntbombdood> one year ahead of me then
00:28:25 <Pikhq> Suppose so.
00:51:03 -!- GregorR has quit (Read error: 110 (Connection timed out)).
01:03:40 -!- jix__ has joined.
01:12:11 -!- jix has quit (Read error: 110 (Connection timed out)).
01:13:03 -!- GregorR has joined.
01:14:09 * Pikhq curses very, very loudly at make
01:14:41 <Pikhq> Is it too much to ask for make to follow its documented behavior? *Is it*?
01:15:17 <GregorR> Yes.
01:16:11 <Pikhq> %.b : %.bfm
01:16:19 <Pikhq> *Surely* pfuck.0.b matches that.
01:16:51 * GregorR never uses that syntax.
01:16:58 -!- jix__ has quit ("CommandQ").
01:16:59 <GregorR> .bfm.b:
01:17:26 <Pikhq> Now, try "%: %.c".
01:17:49 <Pikhq> Or "pfuck.%:pfuck.%.c"; for my purposes, they're equivalent.
01:17:52 <GregorR> WTF? Is that "convert a .c file into anything"?
01:17:58 <GregorR> Ahhhhhhh
01:18:03 <Pikhq> Convert a c file into an executable.
01:18:13 <Pikhq> (obviously not portable. ;))
01:20:29 <Pikhq> http://pikhq.nonlogic.org/Makefile
01:20:40 <Pikhq> Care to tell me how I'm being an idiot?
01:21:00 <bsmntbombdood> that was a tasty sammich
01:23:56 <Pikhq> . . . Found it.
01:24:34 <Pikhq> I have a file called "pfuck.bfm", not "pfuck.0.bfm" and "pfuck.-1.bfm". . .
01:30:06 <GregorR> lawl
01:37:52 <bsmntbombdood> ,
02:45:26 -!- oerjan has joined.
03:18:05 -!- mbishop has joined.
03:18:28 -!- mbishop has left (?).
03:43:43 -!- boily has joined.
03:44:01 <oerjan> hi boily
03:44:07 <boily> hi
03:44:41 <boily> i had some hours to spend today, so i created a new programming language
03:45:00 <boily> i'm not sure if i have developped it enough to add it to the wiki
03:47:03 <oerjan> well the languages on the wiki are pretty variable
03:48:13 <boily> i pasted a ruby interpreter on pastebin and i'm adding the article
03:48:17 <oerjan> if you have an implementation, or enough information that someone could make one, then i say go for it
03:48:59 <oerjan> ok
03:50:45 <boily> http://esoteric.voxelperfect.net/wiki/Betterave
03:50:52 <boily> there, i just created it
03:56:28 <oerjan> a syntax and list of commands would be nice
03:59:42 <oerjan> afk
04:01:23 <boily> currently doing it
04:05:28 <boily> did it
04:05:44 <boily> hope my english isn't too bad... :/
04:11:06 <Pikhq> Not Turing-complete.
04:11:29 <Pikhq> . . . Unless the size of each variable is unlimited or something.
04:11:51 <Pikhq> . . . Or. . .
04:12:00 <Pikhq> String *list*?
04:12:10 <Pikhq> So, infinite number of strings can be stored?
04:12:48 <boily> as i coded it, i guess an infinite number of strings is possible
04:13:24 <Pikhq> Mmkay, so it is Turing complete.
04:13:31 <boily> yay!
04:13:40 <Pikhq> Although it'd be damned annoying to prove it.
04:37:21 -!- Sgeo has quit (Read error: 110 (Connection timed out)).
04:38:17 -!- Sgeo has joined.
04:38:46 -!- boily has quit ("Need sleep...").
05:11:34 -!- Sgeo has quit (Read error: 104 (Connection reset by peer)).
05:13:04 <oerjan> unlimited variables are probably turing-complete (minsky machines seem easy to emulate)
05:13:31 <oerjan> but the string list is not very useful without a way to use it for further computation.
05:13:42 <Pikhq> And, even if the *variables* aren't unlimited, you can store at least one number via the size of strings. . .
05:14:14 <Pikhq> So, """""""" would store 4. . .
05:14:38 <Pikhq> [""|1] would be an infinite loop, adding to the size. . .
05:14:54 <oerjan> i don't think so. how do you get the size of the list other than as an integer? and there is no way to shorten it.
05:15:17 <Pikhq> . . . Yeah, that is a problem.
05:15:32 <oerjan> in fact you would have a problem once the string list length exceeds the integer size.
05:15:46 <Pikhq> Assuming that integers are bounded.
05:16:04 <oerjan> and if they aren't you don't need the string list other than for output.
05:16:11 <Pikhq> Right. . .
06:38:06 <bsmntbombdood> i wonder if you could have an algorithm that has a runtime of some uncomputable function
06:39:02 <oerjan> not if it always halts.
06:39:47 <oerjan> because then you could simply run it to find out the runtime.
06:40:12 <bsmntbombdood> but
06:40:58 <oerjan> on the other hand the runtime of most ordinary turing-complete interpreters _is_ uncomputable.
06:41:51 <oerjan> because otherwise their halting problem would be solvable by computing the runtime first, then running the algorithm for that long.
06:42:49 <oerjan> er, assuming the computed runtime only works if it actually halts.
06:43:36 <oerjan> as with a busy beaver function
07:54:40 -!- oerjan has quit (Read error: 104 (Connection reset by peer)).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:03:54 -!- glenker_ has joined.
08:04:10 -!- glenker_ has quit (Client Quit).
08:04:50 -!- glenker_ has joined.
08:11:56 -!- glenker_ has quit ("WeeChat 0.2.4").
08:29:59 -!- lament has joined.
09:17:15 -!- sebbu has joined.
11:47:31 -!- jix has joined.
13:02:31 -!- jix__ has joined.
13:12:06 -!- jix has quit (Read error: 110 (Connection timed out)).
13:48:24 -!- jix__ has changed nick to jix.
15:01:00 <SimonRC> In Britain, we are graded for exams on the scale: A, B, C, D, F, N, U.
15:03:14 <SimonRC> A-D as usual, F = really bad, U = so bad they didn't even want to grade you, and N = didn't turn up.
16:15:25 <puzzlet_> didn't turn up?
16:17:30 <puzzlet_> what does it mean
16:29:09 <SimonRC> erm, exactly what it says?
16:29:15 <SimonRC> the scale is for exams
16:34:50 <puzzlet_> no, didn't get what "turn up" means
16:35:21 <puzzlet_> as a non-native English user
16:48:28 * SimonRC tries to think of a synonym
16:50:57 <SimonRC> "attend"
16:51:18 <puzzlet_> ah
16:51:47 <puzzlet_> N is for who didn't get the exam at all?
16:52:22 <SimonRC> yes
17:36:32 -!- boily has joined.
17:44:49 -!- boily has quit ("WeeChat 0.2.4").
18:06:35 -!- Sgeo has joined.
18:11:58 -!- sebbu2 has joined.
18:20:36 <oklopol> what is a makefile?
18:20:56 <oklopol> (i prefer annoying people over google :))
18:30:17 -!- sebbu has quit (Connection timed out).
18:43:16 -!- ehird` has joined.
18:44:05 -!- helios24 has quit (Remote closed the connection).
18:44:10 -!- helios24 has joined.
18:48:11 -!- sebbu2 has changed nick to sebbu.
19:08:39 <SimonRC> oklopol: it is a file that is (usually) required by the *nix program make(1).
19:10:20 <oklopol> hmm... tells the os how to compile the source, like, or=
19:10:21 <oklopol> ?
19:15:46 <GregorR> There's a program called or= that tells the OS how to compile the source?
19:16:36 <oklopol> you don't know it?
19:16:55 <oklopol> well, anyway, you don't have to know it to answer my question
19:37:58 <bsmntbombdood> or=?
19:40:10 <ehird`> a Makefile is a set of rules:
19:40:19 <ehird`> DEST: SRCS
19:40:19 <ehird`> <tab>COMMANDS
19:40:28 <ehird`> "This is how you create DEST, using SRCS: COMMANDS"
19:40:39 <ehird`> make(1) just happens to use SRCS for intelligent dependency handling
19:40:42 <oklopol> so, what i said?
19:40:53 <ehird`> basically. yes.
19:41:08 -!- lament has quit (kubrick.freenode.net irc.freenode.net).
19:43:24 -!- lament has joined.
19:43:26 <oklopol> is bash tc?
19:43:46 <ehird`> um, yes
19:43:51 <ehird`> well
19:43:53 <ehird`> not sure about bash
19:43:57 <ehird`> zsh is, for certain
19:44:07 <ehird`> i assume you mean "tc without anything but builtins"
19:44:14 <bsmntbombdood> http://maps.google.com/maps?f=l&hl=en&q=museum&near=San+Francisco,+California,+United+States&ie=UTF8&view=map&om=1&layer=c&cbll=37.777452,-122.504927&cbp=1,289.875024308419,0.628713401659621,3&ll=37.784554,-122.500091&spn=0.023674,0.040169&z=15
19:44:32 -!- lament_ has joined.
19:45:30 -!- lament has quit (Remote closed the connection).
19:46:27 <oklopol> ehird`: you assume very correct.
19:48:44 <ehird`> then, i'd say yes
19:49:04 <ehird`> if/while/test/recursing functions/arrays... it's like a normal prog. language
19:49:14 <ehird`> ``Actually I meant what I said, bash is a turing complete language.''
19:49:19 <ehird`> http://lists.ibiblio.org/pipermail/sm-users/2005-December/000902.html
19:49:25 <lament_> of course bash is turing-complete
19:49:57 <lament_> indeed it's pretty powerful and expressive
19:49:59 <bsmntbombdood> of course bash is turing complete
19:50:06 <bsmntbombdood> bash is very usefull
19:50:23 <oklopol> i haven't used it
19:50:33 <oklopol> so i wasn't sure
19:50:36 <oklopol> is dos tc?
19:50:38 <oklopol> :P
19:50:58 <ehird`> proof: a language with two characters, iota, * and i, is turing complete. it is laughably simple to implement (a few lines). you can implement it easily in bash. QED
19:51:17 <lament_> oklopol: batch files you mean? I'm not sure
19:51:29 <lament_> _they_ might actually not be
19:51:45 <lament_> in their modern form, they probably are; in the original, they might well not be
19:52:00 <lament_> i don't think you could access unlimited memory with them
20:04:22 <Pikhq> lament_: It depends upon which DOS system you're referring to.
20:04:45 <Pikhq> FreeDOS, for example, absolutely is.
20:11:05 <ehird`> ``...SQL is not a programming language because it is for instance impossible to write an infinite loop in it.''
20:11:42 <SimonRC> ooh, activity
20:11:57 <oklopol> you mother
20:12:00 <bsmntbombdood> it doesn't have to be turing complete to be a programming language
20:12:00 <oklopol> *your
20:12:01 <oklopol> ...
20:12:21 <ehird`> bsmntbombdood: it was a quote
20:12:23 <ehird`> a silyl quote
20:12:25 <ehird`> *silly
20:12:29 <Pikhq> SQL is, obviously, a non-Turing complete, domain specific programming language. . .
20:13:17 <bsmntbombdood> ehird`: hence the quote marks?
20:15:33 -!- tokigun has joined.
20:18:58 <SimonRC> tokigun: hi
20:19:06 <tokigun> hello
20:39:43 -!- Pikhq has quit ("Leaving.").
20:42:19 -!- Pikhq has joined.
20:52:37 <lament_> the problem with accepting non-TC languages as such is that, where do you stop?
20:52:59 <lament_> is html a programming language? Are text files a programming language?
20:53:22 <bsmntbombdood> yeah
20:53:27 <ehird`> meh
20:53:54 <oklopol> you can define it using humans in the definition
20:54:03 <oklopol> because that's how it's usually done
20:54:07 <oklopol> the defining
20:54:16 <lament_> HTML is a bit of a corner case, since some people actually do call it a programming language, and some vehemently deny it is.
20:54:26 <oklopol> hence, my argument
20:54:45 <lament_> er, no, this is a counter-example to your argument :)
20:54:58 <lament_> since there's no consistent definition
20:55:27 <bsmntbombdood> i've had that argument before
20:55:29 <bsmntbombdood> about html
20:56:39 <lament_> personally i'm fine defining it either way
20:56:52 <lament_> as long as it's done according to some consistent procedure :)
20:56:53 <Pikhq> A programming language should be a language expressing a set of logic for a computer to follow.
20:57:05 <bsmntbombdood> Pikhq: which html is
20:57:10 <lament_> Pikhq: that's pretty meaningless.
20:57:24 <SimonRC> The problem comes when people count writing HTML as "programming experience".
20:57:33 <bsmntbombdood> which is bullshit
20:57:52 <SimonRC> well.....
20:57:55 <bsmntbombdood> you just can't win
20:58:04 <SimonRC> it is a very tiny amount of programming experience
20:58:33 <Pikhq> But merely knowing algebra provides more experience. :p
20:58:44 <oklopol> Pikhq: i meant it perhaps need not be an unambiguous definition
20:58:56 <oklopol> though i did not really say that.
20:58:57 <SimonRC> OTOH, HTML has a very high "language level", so if it is suitable for a task, it will blow almost everything else out of the water.
20:58:59 <Pikhq> oklopol: Hmm. . . That does make sense.
20:59:21 <oklopol> wow, i rarely hear that :)
20:59:46 <oklopol> now, fixing my documentation... ->
20:59:51 <Pikhq> HTML isn't much of a programming language. . . It says in the name "Markup language". ;)
21:00:27 <Pikhq> Now, I'd call something like *LaTeX* a corner case. . .
21:00:30 <lament_> 'languge' stands for 'programming language', just as in many other acronyms.
21:00:35 <lament_> *'language'
21:00:50 <bsmntbombdood> latex is turing complete bro
21:00:50 <SimonRC> TeX *is* TC....
21:00:54 <Pikhq> Sure, it's a markup language. . . But it's got a Brainfuck interpreter written in it (I don't remember where)
21:01:16 <lament_> i think we all agree that being TC implies being a programming language
21:01:21 <SimonRC> also, there's that XML re-jiggeriser that is TC too.
21:01:23 <Pikhq> Of course.
21:01:29 <Pikhq> SimonRC: That's just one XML namespace.
21:01:30 <SimonRC> quite an FP language IIRC
21:01:31 <lament_> why "of course"?
21:01:47 <lament_> one possible way to define what is and what isn't a programming language is according to purpose
21:01:58 <SimonRC> ahh....
21:01:59 <lament_> by agreeing that TC languages are necessarily programming languages, we reject that wa.
21:02:02 <lament_> that way.
21:02:08 <Pikhq> Then surely Visual Basic isn't a programming language.
21:02:10 <SimonRC> I just had another thought...
21:02:21 <Pikhq> . . . You know, I think I like a definition which excludes Visual Basic. :p
21:02:26 <SimonRC> :-)
21:02:54 <SimonRC> Just because you can do programming in something doesn't make it sensible to call it a programming language...
21:02:54 <lament_> if we say "if it's TC, then it's a programming language", then we're defining based on _capability_
21:03:15 <SimonRC> in the same way that just because you can do OO in something doesn't make it sensible to call it an OO language.
21:03:26 <lament_> that is correct
21:03:27 <SimonRC> OO ASM probably works very well.
21:03:39 <lament_> but if you start rejecting TC things as programming languages, people will rebel.
21:04:05 <Pikhq> SimonRC: The problem is that OO is not a primitive feature of the language itself, it's an addon.
21:04:06 <SimonRC> you can do FP in C# 3.0, but that doesn't make it an FPL, because FP in it is unidiomatic and clunky.
21:04:28 <SimonRC> maybe it is to do with idiomaticity rather than possibility
21:04:32 <Pikhq> If you want to define things that way, HTML is Turing-complete, because you can strap ECMAscript into it.
21:05:26 <lament_> i think we can all be sane enough to consider javascript as separate from html proper.
21:05:38 <Pikhq> I'd *hope* so.
21:05:56 <SimonRC> You could make a Python "Hello World" program along the lines of the typical Java version, but that is unidiomatic. The normal way in Python is a single printing statement, because Python is a "scripting language".
21:06:27 <bsmntbombdood> java is yucky
21:06:31 <Pikhq> The normal way in *many* languages is a single print statement. . .
21:06:40 <lament_> SimonRC: sure
21:06:43 <lament_> SimonRC: this is also why perl sucks
21:06:44 <Pikhq> Even *assembly* has a simpler "Hello, world" program than Java. . .
21:06:49 <SimonRC> heh
21:07:00 <SimonRC> but it is less portable!
21:07:03 <lament_> perl can do a lot of stuff, is very powerful, and it's certainly possible to write clean code in it.
21:07:10 <lament_> Just not idiomatic.
21:07:18 <SimonRC> Also, what if the program later needs to be expanded to read mail?
21:07:23 <Pikhq> hello: .asciz "Hello, world!\n"
21:07:24 <Pikhq> main: push $hello
21:07:24 <Pikhq> call puts
21:07:44 <Pikhq> SimonRC: Then obviously you should take the GNU Hello route.
21:07:54 <lament_> fortunately, we don't normally judge the power of languages by how easy it is to write hello world in them.
21:08:17 <SimonRC> yes
21:08:30 <lament_> java was never meant for writing hello world.
21:08:34 <SimonRC> I realise my earlier statement was in fact totally pointless and confusing
21:08:49 <bsmntbombdood> Pikhq: using libc is not allowed
21:09:03 <Pikhq> bsmntbombdood: Fine; just reduces the portability.
21:09:18 <lament_> (and if you argue that 'hello world' should necessarily be an easy program in every useful language, then you're just on crack)
21:09:22 <bsmntbombdood> you have to use sys_write
21:09:33 <Pikhq> http://pikhq.nonlogic.org/hello.asm This is, of course, what you want.
21:10:05 <ehird`> defending java is forbidden
21:10:07 <ehird`> that is final! :)
21:10:08 <bsmntbombdood> i assume sys call 4 is write
21:10:25 <Pikhq> On Linux, at least.
21:10:56 <bsmntbombdood> don't you have to put 0 somewhere for stdout?
21:11:33 <Pikhq> On kernels newer than a certain version of 2.2, the registers default to being 0.
21:11:42 <Pikhq> Well, that is, on process creation.
21:11:46 <bsmntbombdood> oh
21:12:07 <Pikhq> Not at *all* portable, but it 'works'. ;)
21:12:48 <bsmntbombdood> and ebx is 1?
21:13:59 <Pikhq> Yup.
21:14:06 <bsmntbombdood> what for?
21:14:46 <Pikhq> stdout == 1
21:14:55 <bsmntbombdood> oh
21:15:06 <Pikhq> And syswrite takes the stream to write to as the first argument.
21:23:28 -!- GregorR has quit (Success).
21:43:26 -!- ehird` has quit.
21:47:20 -!- jix has quit ("CommandQ").
21:51:47 -!- lament_ has changed nick to lament.
22:04:47 -!- GregorR has joined.
23:33:25 -!- sebbu has quit ("@+").
2007-06-04
02:27:02 <bsmntbombdood> i haven't designed an esolang in a while
02:31:21 <oklopol> me neither :<
03:14:26 -!- GregorR-L has joined.
03:23:55 -!- Sgeo has quit (Read error: 104 (Connection reset by peer)).
03:30:42 -!- Sgeo has joined.
04:31:27 -!- Sgeo has quit ("Ex-Chat").
04:42:40 -!- boily has joined.
06:37:43 <boily> hmm... activity is low at this ungodly hour of the night...
06:38:24 <fizzie> 08:36 in this time zone.
06:38:25 <boily> just to say i perused the channel's logs, and following your discussion about my new language (betterave), i've improved string manipulation
06:38:36 <boily> 01:38 here
06:48:55 -!- mtve has quit (Read error: 110 (Connection timed out)).
06:50:34 -!- boily has quit ("Brush bed then sleep in teeth, uh, no... the other way round... sleep in teeth then brush bed.").
07:27:12 -!- erider has joined.
07:28:17 <erider> anyone here
07:31:01 <GregorR-L> Ignore the irony in the following statement: Nobody /ever/ responds to that.
07:33:31 <erider> hi
07:35:43 <erider> I'm trying to learn a simplistic language brainf**k seems to have some features or some techniques I would like to master
07:36:30 <erider> GregorR-L could you point me in the right direction
07:38:58 <GregorR-L> Well, http://www.esolangs.org/wiki/Brainfuck would be an obvious starting point ...
07:39:05 <GregorR-L> Other than that, Idonno, Google? :)
07:39:37 <erider> thanks
07:43:57 <Pikhq> erider: I just recommend one thing. . . For Brainfuck, be willing to do something even if it seems useless.
07:50:08 <Pikhq> And, of course, you have to be of about the mindset that would write a compiler for the hell of it. :p
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
10:03:01 -!- GregorR-L has quit ("Leaving").
11:09:49 -!- mtve has joined.
12:24:20 -!- bsmnt_bot has quit (Read error: 145 (Connection timed out)).
12:31:26 -!- bsmntbombdood has quit (Read error: 110 (Connection timed out)).
13:02:31 -!- helios24 has quit (Read error: 104 (Connection reset by peer)).
13:02:48 -!- helios24 has joined.
13:03:46 -!- mtve has quit ("Terminated with extreme prejudice - dircproxy 1.0.5").
13:16:58 -!- ais523 has joined.
13:31:16 -!- pe4enitsa has joined.
13:34:06 -!- pe4enitsa has left (?).
13:56:47 -!- mtve has joined.
14:23:19 -!- ais523 has quit ("trying to find a computer on which I can actually edit Wikipedia without inserting lots of random line breaks").
14:58:17 -!- jix has joined.
15:36:32 -!- boily has joined.
15:57:38 -!- sebbu has joined.
17:36:20 <lament> HI
17:39:47 -!- Gamegirl has joined.
17:45:30 <Gamegirl> is anyone talking here?
17:46:09 <lament> never
17:46:12 <lament> it's forbidden
17:46:22 <Gamegirl> why&
17:46:25 <Gamegirl> jh
17:46:29 <lament> whoever talks, shortly dies of unknown causesAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARRRRRRGH
17:46:33 <Gamegirl> aargh!
17:46:53 <lament> que tal?
17:47:03 <Gamegirl> oh, I`m sorry
17:47:17 <Gamegirl> I can`t understand
17:47:28 <lament> what's up?
17:47:39 <Gamegirl> what que tal mean?
17:48:06 <lament> what's up
17:49:07 <Gamegirl> good
17:51:42 <Gamegirl> Is it a dead chat?
17:53:08 <oklopol> yeah
17:53:16 <oklopol> lament already told you
17:53:42 <oklopol> i actually think this channel is empty
17:54:01 <Gamegirl> oh, it`s very sad
17:54:28 <Gamegirl> and all of that hm.. people...
17:54:36 -!- CakeProphet has joined.
17:54:41 <Gamegirl> they are not alive?
17:55:02 <CakeProphet> :)
17:55:05 <oklopol> CakeProphet: long time no ocean.
17:55:17 <CakeProphet> LOL PUN
17:55:27 <lament> Gamegirl: they're bots.
17:55:32 <oklopol> <--- CLEAVA BOY
17:55:35 <oklopol> *CLEVA
17:55:45 <lament> for example, clog is a bot that logs the channel.
17:56:05 <lament> and GregorR is a bot that interprets some esoteric languages.
17:56:11 <Gamegirl> lament: all of them?
17:56:41 <lament> and puzzlet_ is a korean translation bot.
17:57:04 <CakeProphet> CakeProphet is a bot that spits out random bits of wisdom
17:57:15 <CakeProphet> .....very complex AI in this one.
17:57:23 <lament> or so it says.
17:57:51 * CakeProphet pauses as he traverses his decision tree.
17:58:00 * CakeProphet proceeds
17:58:00 <lament> tree? more like a bush!
17:58:04 <CakeProphet> HEY FUCK YOU K?
17:58:07 <lament> :D
17:58:10 * CakeProphet made the optimal decision.
17:58:29 <lament> aren't you proud.
17:58:57 <CakeProphet> mhm :)
18:03:32 <lament> Gamegirl: to summarize everything, if you want to chat, this is perhaps not the best channel; but if you want to discuss esoteric languages, then it is.
18:04:10 <CakeProphet> chatting is fine.
18:04:11 <Gamegirl> to discuss with bots?
18:04:16 <Gamegirl> o_O
18:04:22 <Gamegirl> wierd
18:04:24 <CakeProphet> yep
18:04:34 <CakeProphet> bots are excellent for conversation
18:04:38 <oklopol> i just realized Gamegirl has the word "girl" in it
18:04:41 <lament> we're smart bots.
18:04:45 * oklopol is a bot that penetrates
18:04:49 <CakeProphet> ...
18:04:56 <oklopol> ...
18:05:05 <oklopol> like... metphorically
18:05:10 <oklopol> *metaphorically
18:05:13 <CakeProphet> ...I see.
18:05:32 * lament slowly backs away from oklopol
18:05:57 <oklopol> i'm < 1000 km long, don't worry 8|
18:06:20 <lament> length can be measured in several ways
18:06:27 <lament> i don't know which one you chose...
18:06:27 -!- Gamegirl has left (?).
18:06:31 <oklopol> :)
18:06:36 * CakeProphet has pretended to be female before... AND GUYS DO VERY ANNOYING THINGS
18:06:43 <oklopol> ...oh?
18:06:45 <CakeProphet> mhm
18:06:51 <oklopol> i can't imagine.
18:06:54 <CakeProphet> ...
18:07:12 <oklopol> who said i'm a guy?
18:07:23 <oklopol> i guess i've said that multiple times, though
18:07:36 <lament> congrats, we scared him away.
18:07:36 <CakeProphet> my decision tree does not account for sarcasm
18:08:21 <CakeProphet> ...can bots have a gender? How would you check?
18:08:33 <oklopol> i guess she wasn't interested in esoteric penetration
18:08:40 <oklopol> i need more caffeine
18:09:16 <lament> oklopol: i kind of doubt an actual girl would put 'girl' in her nick.
18:09:47 <lament> on freenode anyhow.
18:09:47 <CakeProphet> too much.... bullshit, would arise from that
18:10:52 * CakeProphet 's mind is 50% woman
18:11:15 <oklopol> oh
18:11:47 <oklopol> does that mean i should half-stalk you too?
18:11:52 <oklopol> :|
18:11:59 <CakeProphet> MEN ARE PIGHEADED IDIOTS ON THE INTERNETST. :) :)
18:12:01 <CakeProphet> ....yep.
18:12:21 -!- crathman has joined.
18:12:27 <CakeProphet> hello person
18:12:31 <CakeProphet> of interest
18:12:33 -!- sebbu2 has joined.
18:16:44 <oklopol> what's "complex number" in under four letters? "cx"?
18:16:50 <oklopol> that's such a long term...
18:16:56 <oklopol> "cn"
18:17:01 <lament> i
18:17:10 <oklopol> hmm
18:17:12 <lament> what's the context?
18:17:16 <oklopol> class name.
18:17:22 <oklopol> for my stdlib
18:17:38 <lament> well, complex numbers are C
18:17:42 <oklopol> oh
18:17:44 <lament> that's the 'official' name
18:17:49 <oklopol> indeed
18:17:51 <lament> not sure if you want to name a class that.
18:17:54 <oklopol> LOX!
18:17:56 <oklopol> i sure do
18:17:58 <oklopol> hmm
18:18:14 <oklopol> one character names are for temp variables though, of course
18:18:20 <oklopol> cx then?
18:18:22 <oklopol> or?
18:19:26 <lament> why are you writing a stdlib?
18:19:35 <oklopol> ...?
18:19:54 <oklopol> as always, i'm making oklotalk.
18:21:09 <CakeProphet> I would go with complex or something
18:21:19 <oklopol> too long
18:21:31 <CakeProphet> compnum?
18:21:41 <oklopol> it'll be quicker just to calculate with lists if is use that long a name
18:21:45 <CakeProphet> complex isn't too hard to type... considering how not-quite-so-often it'll be used.
18:21:58 <oklopol> though guess you can do c='complex; and then use c
18:22:16 <oklopol> well, indeed it's prolly not that often needed
18:22:18 <CakeProphet> just use some kind of J notation
18:22:26 <oklopol> but still... it's SOIOOOOOOOOOOOOOOOOOOOOoo long
18:22:27 <CakeProphet> in the number literal
18:22:34 <oklopol> heh
18:22:51 <oklopol> 10+i43 :P
18:23:08 <CakeProphet> hmm... 10j43 maybe?
18:23:15 <oklopol> why j?
18:23:22 <CakeProphet> -shrug- I forgot
18:23:26 <oklopol> okily
18:23:30 -!- helios24 has quit (Remote closed the connection).
18:23:37 -!- helios24 has joined.
18:24:22 <CakeProphet> ...I'd like a language that's really fast... and has a quick way to write extension languages that can cooperate with it. IT WOULD BE GOOD, FOR MAKING GAMES AND SUCH
18:24:31 <oklopol> ?
18:24:35 <oklopol> whutta ya mean?
18:25:21 <CakeProphet> OH I REMEMBER WHY
18:25:26 <CakeProphet> Python uses J for complex.
18:25:28 <CakeProphet> >>> type(10j)
18:25:30 <CakeProphet> <type 'complex'>
18:25:31 <CakeProphet> >>> 10j+2
18:25:33 <CakeProphet> (2+10j)
18:25:34 <oklopol> oh
18:25:35 <CakeProphet> >>>
18:25:43 <lament> CakeProphet: so, like, lisp?
18:25:45 <oklopol> well oklotalk does not understand postfix, so it'd be j10
18:25:53 <CakeProphet> lament, not quite.
18:25:58 <CakeProphet> but... similar yes.
18:26:03 <lament> lots of people use 'j' instead of 'i'
18:26:13 <lament> that doesn't mean 'j' refers to complex numbers
18:26:23 <lament> it's just a synonym for 'i'
18:26:34 <lament> engineers use it because i is reserved for i,j,k direction vectors
18:26:37 <lament> er
18:26:40 <lament> so's j.
18:26:41 <lament> :)
18:26:51 <lament> engineers use it because i is current :)
18:27:34 <CakeProphet> ...I don't like Lisp...
18:27:45 <CakeProphet> as world-changing as people claim it is.
18:30:19 <CakeProphet> ....basically I just need a virtual machine assembly type thing.... and then have a suite of languages that compile to it that can run together..... something like what Parrot is going for.
18:31:32 -!- sebbu has quit (Connection timed out).
18:32:50 <lament> ...use parrot?
18:33:34 <CakeProphet> MY DECISION TREE... PREDICTED THIS.
18:33:41 <CakeProphet> THAT YOU WOULD SAY SUCH A THING.
18:33:56 <CakeProphet> ....but what's the point in using stuff that already exists? I like to use things that do not exist yet.
18:34:03 <oklopol> why use parrot when you can try making your own?
18:34:08 <CakeProphet> FUCK YES
18:34:09 <oklopol> yeah
18:34:11 <CakeProphet> :)
18:34:13 <oklopol> :)
18:34:29 <CakeProphet> perhaps Parrot is lame? yes?
18:34:42 <oklopol> yeah, LAMEnt!
18:35:58 <CakeProphet> for one, it has the wrong name. The virtual assembly language I'm looking for is called Grue.
18:36:03 <CakeProphet> ...and it does not exist yet
18:37:37 <Pikhq> CakeProphet: BTW, the JVM is perfectly suitable for that task.
18:37:47 <Pikhq> ;)
18:38:08 <CakeProphet> ....JVM is named Grue?
18:39:03 <CakeProphet> ....doesn't Parrot use a callstack of some sort.... I think PIM does.
18:39:11 <CakeProphet> I DO NOT WANT A CALLSTACK.
18:43:23 <erider> bf doesn't even compile text right?
18:43:48 <CakeProphet> ?
18:43:50 -!- bobbens has joined.
18:43:52 <oklopol> this one day i had this weird urge to have a callstack, but i said to myself "don't you have another callstack, you just had one last week" and i was like "fuck you"
18:44:02 <oklopol> you know
18:44:13 <CakeProphet> ...
18:44:40 * CakeProphet finds that inexplicably hilarious... but remains unsure as to why
18:44:40 <oklopol> i just start writing and let it come out, sorry.
18:45:28 <Pikhq> erider: Uh, wha?
18:45:29 <CakeProphet> GRUE SHALL HAVE... LIKE... BUILTIN MICROTHREAD THINGS....
18:45:31 <oklopol> okay, my pattern matching works, but it's definitely not pretty.
18:45:48 <CakeProphet> Like erlang.... or something
18:45:57 <erider> Pikhq: sorry I was talking about being able to comment
18:45:59 <lament> CakeProphet: maybe you should join the lolcode people
18:46:00 <Pikhq> BTW, I've actually got an SVN repository for PEBBLE set up. . .
18:46:24 <oklopol> erider: [you comment here.]
18:46:26 <oklopol> *your
18:46:48 <oklopol> [-][ -||- ]
18:47:06 <CakeProphet> doesn't bf just kind of ignore non-code stuff?
18:47:08 <erider> >+++++++++ # comment?
18:47:12 <Pikhq> CakeProphet: It does.
18:47:14 <oklopol> ..?
18:47:21 <oklopol> erider: [ your comment here ]
18:47:24 <CakeProphet> >comment++++++++++++++
18:47:31 <lament> [none of these instructions will ever get executed. Therefore, punctuation, including brainfuck commands, is fine. The only thing that will break it is unmatched brackets]
18:47:37 <Pikhq> erider: You only need to put your comment in a loop which won't run if it includes Brainfuck special chars.
18:47:38 <erider> that was my question thank CakeProphet
18:47:54 <CakeProphet> but the brackets are good if you want punctuation
18:48:14 <lament> otherwise it's easy to put punctuation in by mistake, and spend ages debugging
18:48:14 <erider> ok
18:48:23 <CakeProphet> just use brackets on a bf cell that's set to 0
18:48:37 -!- mee has joined.
18:48:41 <lament> brackets are nice for comments in the beginning of the program
18:48:50 <lament> otherwise, you have to be really sure the cell is set to 0
18:49:05 <CakeProphet> most mid-program comments don't require punctuation anyways
18:49:12 <lament> they're also nice for writing a polyglot.
18:49:23 <lament> // [
18:49:27 <lament> C code follows
18:49:40 <CakeProphet> any sort of NOP/comment is great for writing polyglots
18:49:41 <lament> /* ] brainfuck code follows */
18:49:43 <CakeProphet> it's almost necessary
18:50:08 -!- bsmntbombdood has joined.
18:50:13 <lament> very easy with C and BF since / and * are nops in brainfuck :)
18:50:48 <CakeProphet> I like Haskell's comment style.
18:51:12 <lament> i like literate haskell's comment style :)
18:51:28 <CakeProphet> -- lol comment here
18:51:58 <lament> -- lol code here
18:52:10 <lament> 10 REM THIS IS A COMMENT
18:52:17 <CakeProphet> literate haskel huh?
18:52:27 <lament> CakeProphet: comments and code are switched
18:52:33 <lament> everything's a comment, unless preceded by --
18:52:45 <lament> with the idea that comments are more important than the actual code
18:52:49 <CakeProphet> aaah.... you'd use that in things where you have more comment that haskell
18:52:57 <CakeProphet> *than
18:53:04 <CakeProphet> like.. in some kind of example
18:53:16 <lament> well, the idea is that you should use that for all your programs.
18:53:35 <oklopol> i hate comments, don't read code, write it.
18:53:36 <lament> because making a human understand what's going on is more important (and harder) than making the computer understand.
18:54:19 <CakeProphet> .....not really. I find it very easy to explain things to... people.
19:00:37 <lament> in writing?
19:01:32 -!- erider has quit (Read error: 104 (Connection reset by peer)).
19:04:02 <oklopol> what's (a+bi)/(c+di)?
19:04:22 <lament> calculate it.
19:04:30 <oklopol> :<
19:04:32 <lament> you only need middle school algebra or something?
19:04:36 <oklopol> i don't wanna :<
19:04:38 <oklopol> yeah
19:04:41 <oklopol> okay, i'll try
19:05:13 <Pikhq> svn://nonlogic.org/pikhq/pebble/trunk/
19:05:17 <oklopol> nah, i can't, at least i can't do it fast
19:07:13 <CakeProphet> hmmm.... it would be like...
19:08:05 <CakeProphet> ...I forgot how to divide polynomials.
19:08:13 <oklopol> hmm
19:08:24 <oklopol> you do something whose name i only know in finnish
19:08:40 <oklopol> part-fraction-factors or something :P
19:08:50 <oklopol> divide it in those.
19:09:27 <CakeProphet> I can multiply them though... so that's (a+bi)*(1/c+1/di)
19:09:32 <CakeProphet> right?
19:09:34 <oklopol> no
19:09:54 <oklopol> 1/(a+b) is not a/a+1/b
19:10:00 <oklopol> *1/a+1/b
19:10:03 <oklopol> even i know that
19:10:04 <oklopol> :)
19:10:18 <CakeProphet> oh... yeah :P
19:10:32 <CakeProphet> I SUCK... AT MATH
19:10:44 <oklopol> for any values of a and b i can calculate A and B in A/a+B/b
19:10:53 <oklopol> but not the general case
19:11:01 <oklopol> i mean, i probably could, but it'd take long
19:12:56 <CakeProphet> you could change 1/(c+di) by multiplying it by something that equals one... and will result in a denominator of 1.
19:13:20 <oklopol> speaking of sucking, i got a scholarship for being 5th in finlands national math competition \o/
19:13:45 <oklopol> my grades in math are of average 8 (4-10)
19:13:56 <CakeProphet> what times (c+di) will equal 1?
19:14:13 -!- erider_ has joined.
19:14:46 <oklopol> i'd've been divided first but i didn't understand a question right... finnish is so hard
19:15:05 <oklopol> CakeProphet: i have no idea, but i guess you can... calculate it?
19:15:45 <CakeProphet> dunno... I'm just trying to switch that division into a multiplication.... I forgot how to divide polynomials.
19:16:06 <oklopol> i know how you do it, but it's not trivial
19:16:14 <oklopol> and i don't know the term
19:16:15 <erider_> does + = 1 in the cell or binary 2
19:16:31 <oklopol> ?
19:17:53 <CakeProphet> + in bf increments the current cell by 1
19:18:12 <CakeProphet> !bf +.
19:18:25 <CakeProphet> hmm... I need a linefeed right?
19:18:44 <oklopol> or a printable character
19:18:54 <oklopol> !bf +++++++++++++++++++++++++++++++++.
19:19:03 <oklopol> !bf +++++++++++++++++++++++++++++++++.>++++++++++.
19:19:09 <oklopol> !bf +++++++++++++++++++++++++++++++++.>+++++++++++++.++++++++++.
19:19:13 <CakeProphet> :)
19:19:18 <oklopol> !bf +++++++++++++++++++++++++++++++++.>+++++++++++++.>++++++++++.
19:19:22 <oklopol> .
19:19:36 <oklopol> I WASN'T EVEN TRYING
19:19:40 <erider_> hmm
19:20:00 <oklopol> egobot is not here.
19:20:04 <oklopol> heh
19:20:17 <erider_> !bf +.
19:20:47 <CakeProphet> basically... bfs state consists of an array of characters and a pointer variable.
19:20:59 <CakeProphet> + is equivalent to array[pointer] += 1
19:21:09 <CakeProphet> > is pointer += 1
19:21:30 <CakeProphet> < is pointer -= 1
19:21:32 <CakeProphet> etc
19:22:08 <erider_> so it can show printable char
19:22:19 <CakeProphet> with the . command, yep.
19:22:29 <oklopol> 1, of course, is unprintable.
19:22:35 <oklopol> chr(1)
19:23:02 <erider_> can it show ints
19:23:09 <oklopol> yes
19:23:15 <oklopol> but not like you mean.
19:23:17 <CakeProphet> ...kinda... no in the way you're thinking probably.
19:23:20 <oklopol> yeah
19:23:28 <CakeProphet> it can show the ASCII characters for digits...
19:23:46 <CakeProphet> but... . doesn't print out the value in the cell... just its corresponding ASCII character.
19:24:40 -!- erider has joined.
19:24:51 <Pikhq> You can, of course, do some itoa stuff on it.
19:24:52 <erider> sorry I was on my phone
19:25:07 <CakeProphet> !bf ++++++++++++++++++++++++++++++++++++++++++++++++.
19:25:22 <CakeProphet> the cells value is 48.... but the interpreter would print "0".
19:25:32 <CakeProphet> because the 48th ASCII character is "0"
19:26:16 <erider> ok so to do calc?
19:26:33 <Pikhq> The same for ++++++[>++++++++<-]>.
19:27:00 <CakeProphet> addition of two cells... is fairly simple... you just make a loop in one cell that increments another.
19:27:17 <Pikhq> Pretty much just multiplication.
19:28:07 <CakeProphet> two plus two... would be ++>++<[>+<-]
19:28:10 <CakeProphet> or something similar
19:28:45 <CakeProphet> [>+<-] would be a destructive addition... that dumps the result in the cell to the right of the current one
19:30:29 <erider> CakeProphet: do you know of an interactive shell for bf or just compilers and interpreters
19:30:53 <oklopol> you can make one in 15 minutes
19:30:54 <CakeProphet> egobot has one.
19:31:01 <CakeProphet> !help
19:31:05 <oklopol> yeah, that'd this channel
19:31:11 <oklopol> and really, EgoBot is offline.
19:31:23 <oklopol> *that'd be
19:31:40 <CakeProphet> erider, do you have Python?
19:31:47 <erider> yes
19:43:19 <CakeProphet> meh... I started working on one... but I never feel like doing the brackets.
19:45:28 <oklopol> triv with rec
19:53:18 <bobbens> i have two questions about bf, is the data initialized to 0? how do you print stuff? kernel calls?
19:53:35 <bobbens> (excuse my laziness :) )
19:54:28 <oklopol> kernel calls?
19:54:30 <CakeProphet> it's all initalized to 0
19:54:35 <CakeProphet> and . is the print command
19:54:46 <bobbens> that prints the entire stack or whatever it's called?
19:54:48 <oklopol> ! will call asm INT n, where n is the value of the current cell.
19:55:12 <CakeProphet> nope... just the current cell
19:55:20 <bobbens> ok
19:55:38 <bobbens> might mess around with that someday :)
19:55:38 <CakeProphet> here's the interactive bf shell I was working: http://deadbeefbabe.org/paste/4999 it doesn't have [ and ] yet... which I don't feel like implementing (definetely the most time consuming out of all the commands)
19:55:51 <erider> ! is an addition command? I have only seen the 8 commands
19:56:04 <CakeProphet> ! isn't a normal command.... not that I'm aware of.
19:57:56 <oklopol> sorry, i just mislead people asking advice :<
19:58:01 <Pikhq> erider: There's only 8 commands.
19:58:06 * oklopol is a sly bastard
19:58:07 <Pikhq> +-><.,[]
19:58:24 <Pikhq> From that, one can *do* many powerful things, however. . .
19:59:05 -!- boily has quit ("WeeChat 0.2.4").
19:59:54 * CakeProphet always implements the bf array as a sparse-matrix-esque hash table.... to save space with all the zeros floating about.
20:00:33 <erider> Pikhq: what types of things
20:00:59 <Pikhq> erider: Theoretically anything.
20:01:08 <Pikhq> It's Turing complete, after all.
20:01:41 <Pikhq> (although doing stuff like networking, graphics, etc. requires some additional support from the interpreter, to wrap that stuff around stdin and stdout.)
20:02:05 <CakeProphet> bf is kind of useless... not because it can't do a lot of things... it just doesn't have any OS-specific things. While it can COMPUTE anything... it can't necessarily communicate with the rest of the operating system like most other programs can.
20:03:16 <CakeProphet> it can't do things like draw windows... write to files... send things to a server in India... etc
20:03:21 <Pikhq> CakeProphet: Sure it can (although the *implementation* of such things is lacking).
20:03:31 <CakeProphet> ...not the normal bf.
20:03:38 <Pikhq> One merely needs to implement PESOIX, or something similar, and voila.
20:03:43 <CakeProphet> adding an "extension" to bf pretty much makes it something other than bf
20:04:04 <Pikhq> It's not an extension to the language, it's an API which BF code can access via I/O.
20:04:40 <erider> how to you access input with ,
20:04:52 <erider> do*
20:05:00 <CakeProphet> otherwise, I could argue that Python has gotos... I just haven't hacked it in as a trace function yet.
20:05:32 <Pikhq> CakeProphet: I'm not saying that BF has it, just that it *can*.
20:05:44 <Pikhq> Likewise, Python *can* do gotos, but it's not a native feature.
20:05:55 <Pikhq> erider: Yeah, "," is the input command.
20:06:05 <CakeProphet> how does PESOIX do this without using -anything- other than the standard bf implementation?
20:06:35 <erider> Pikhq: input from where
20:06:54 <CakeProphet> stdin
20:06:57 <CakeProphet> whatever that may be.
20:07:12 <CakeProphet> typically it's a line-buffered keyboard input... in a shell window.
20:07:44 <Pikhq> CakeProphet: Interfacing with PESOIX is done soley by stdin and stdout.
20:08:22 <erider> CakeProphet: so it bring in one char at a time
20:08:22 <oklopol> well, if you make '@' mean "open irc connection", you are changing the language, however, if you, like someone just said, make special characters change where stdio goes, you are pretty much just making an api
20:08:53 <CakeProphet> erider, yep... everything is character-by-character in BF... no "strings" in the typical sense...
20:08:58 <CakeProphet> technically, the bf array is just one giant string
20:09:26 <Pikhq> And all PESOIX is is an API. . . Just outputting stuff selectively. . . In theory, at least, you could use the API on any esolang.
20:09:36 <erider> CakeProphet: by we control where the char are placed in the tape
20:09:51 <CakeProphet> right
20:09:54 -!- erider_ has quit (Read error: 110 (Connection timed out)).
20:10:02 <erider> but*
20:15:13 <oklopol> okay, in php, why exactly can't you chain operations like "$second_word=explode(" ",$a)[1];"?
20:16:03 <erider> ,>,>,><.<.<.
20:16:39 <oklopol> because... you can do it in visual basic
20:17:16 <Pikhq> erider: Yup.
20:17:26 <Pikhq> Inputs 3 chars, outputs in reverse. . .
20:17:33 <Pikhq> And can be shortened by two.
20:17:41 <Pikhq> ,>,>,.<.<.
20:19:10 <erider> interesting
20:19:49 <erider> and comments can but written with no delimited char right
20:20:02 <erider> s/but/be
20:21:08 <oklopol> hmm... how do i read the contents of an url in php? :)
20:21:16 <Pikhq> Right.
20:21:17 <oklopol> (last time i ask :))
20:21:27 <Pikhq> oklopol: #php
20:35:30 <erider> +++++[>+++<-] Cell1 By 5 = 15
20:38:03 <Pikhq> erider: Perfect code.
20:39:42 <erider> thanks I think I should modify my interpreter
20:45:16 -!- boily has joined.
20:46:52 <erider> Pikhq: can you < or | into , ie; ./bf foo.b < bar
20:48:20 <Pikhq> erider: Of course. Input redirection is done by your shell, not by the Brainfuck code.
20:50:03 -!- boily has quit ("WeeChat 0.2.4").
20:50:04 <erider> Pikhq: I tried to print chars from a file with ,[.,] and it went in to while(1)
20:50:44 <Pikhq> erider: Does your interpreter make an EOF=-1 or 0?
20:51:55 <erider> Pikhq: I think EOF=0
20:52:54 <erider> or '\0'
22:56:32 -!- clog has joined.
22:56:32 -!- clog has joined.
23:09:12 * oerjan suggests cpx
23:09:23 <oerjan> if it cannot be more than 3 letters
23:09:56 <oerjan> (that's for oklopol)
23:10:57 <oklopol> cpx or cx? 2 is also good :)
23:11:02 <oklopol> CompleX
23:11:13 <oklopol> ComPleX
23:11:15 <oklopol> omg
23:11:16 <oklopol> leet
23:11:19 <oklopol> i like that
23:11:49 <oerjan> tlas ftw!
23:13:17 <oklopol> indeed
23:17:49 <erider> what can I learn playing with brainf**k
23:18:14 <oerjan> how to twist your brain into tiny little knots, obviously
23:18:46 <bsmntbombdood> aka fuck
23:19:14 <oerjan> how to build up more complicated algorithms from extremely simple parts
23:19:45 <erider> there it is
23:20:10 <erider> so its worth playing with :)
23:21:04 <oerjan> how to program with no type checking at all
23:21:17 <oerjan> (forth could also be used for that, i hear)
23:21:27 <oerjan> or assembly
23:21:42 <bsmntbombdood> yay no types
23:22:26 <erider> forth type is a cell
23:22:38 <bsmntbombdood> B has no types either
23:26:45 <erider> oerjan: so I need to know a lot about ascii to make interesting things
23:27:29 <oerjan> regarding the name of Parrot: why would anyone want to name a vm after a dead bird?
23:28:04 <bsmntbombdood> he's not dead
23:28:11 <bsmntbombdood> he's sleeping
23:28:42 <oerjan> erider: you need an ascii table i guess.
23:28:50 <Pikhq> erider: You could just use an ASCII table.
23:28:57 <Pikhq> Or use PEBBLE. :p
23:29:41 <erider> just trying to figure out what one would need
23:29:55 <oerjan> there are of course 3 blocks whose positions are easy to memorize: 0-9 start at 48, A-Z at 65 (64+letter number) and a-z at 97.
23:31:45 <oerjan> (note that 48 = 3*16, 64 = 4*16 and 96 = 6*16)
23:32:11 <oklopol> while teaching erider how to write complex programs, please teach me to be clever
23:33:00 <oerjan> i see you are on haskell, using map fromEnum is a nice way to get the ascii numbers for a string
23:33:31 <oerjan> or map ord but that requires an import
23:33:34 -!- jix has quit ("CommandQ").
23:36:34 <erider> cells are only 0-254 wide?
23:36:34 <oerjan> one subtlety about brainfuck is that there are so many implementation variations: end-of-file, cell size and wrapping, tape size
23:36:58 <oerjan> 0-255 is usually the minimum to call it brainfuck
23:37:09 <oerjan> (although things like boolfuck exist)
23:37:42 <oerjan> if EgoBot was here, you could choose between 8 bit, 16 bit or 64, i believe
23:38:05 <bsmntbombdood> http://cm.bell-labs.com/cm/cs/who/dmr/btut.html
23:38:43 <oerjan> oklopol: i am sorry that is not in my power
23:38:45 <bsmntbombdood> "All arithmetic in B is integer, unless special functions are written. There is no equivalent of the Fortran IJKLMN convention, no floating point, no data types, no type conversions, and no type checking. Users of double-precision complex will have to fend for themselves. "
23:38:50 <bsmntbombdood> gotta love a language like that
23:39:07 <SimonRC> ah, yeah, B rox
23:39:14 <SimonRC> it's C for massochists
23:39:54 <SimonRC> I *love* the error messages
23:40:12 <bsmntbombdood> can gcc compile it?
23:40:18 <SimonRC> dunno
23:40:27 <SimonRC> there's probably a front-end around somewhere
23:40:54 <SimonRC> It's where the ever-useless "auto" keyword in C comes from.
23:41:47 <oerjan> btw EgoBot's interpreter, EgoBFI, is available at http://esoteric.voxelperfect.net/files/brainfuck/impl/egobf-0.7.1.tar.bz2
23:42:04 <bsmntbombdood> auto v[10]; v[10]; /*no error?!?*/
23:42:38 <Pikhq> bsmntbombdood: Of course not. C doesn't do any bounds checking.
23:42:52 <oerjan> so auto is B's equivalent to C's plain int?
23:43:08 <bsmntbombdood> it's still undefined behavior in C
23:43:22 <bsmntbombdood> auto v[10] makes v have 11 elements
23:43:39 <bsmntbombdood> oerjan: B's only type is the machine word
23:43:42 <oerjan> since B doesn't have a type to use for declaration
23:43:51 <SimonRC> notice the onderful syntax that was later nicked for wide characters in C
23:44:05 <SimonRC> actually, C has auto too
23:44:43 <oerjan> what i mean is, since B has no types, it must use something else to declare a variable, so auto becomes the default word for this?
23:44:45 <SimonRC> auto means "automatic variable": it has space allocatioed when the function is entered and that space is freed when the function exits
23:44:52 <SimonRC> i.e. it is a local variable, on the stack
23:45:34 <bsmntbombdood> i can't find the function for dynamic allocation
23:45:53 <erider> oerjan: looks to be a long on my system
23:46:11 <Pikhq> There is only one reason why B has one type of 4 bytes. . .
23:46:22 <Pikhq> The system they were writing stuff on had that as a word size. ;)
23:47:17 <erider> Pikhq: have you used WSpace?
23:47:37 <Pikhq> erider: No, I haven't.
23:49:49 <bsmntbombdood> if a="foo", how many characters is a[0]?
23:50:08 <SimonRC> where byte = 9 bits, remember
23:50:18 <SimonRC> hence the octal
23:50:44 <Pikhq> SimonRC: Octal is 0-7, not 0-8.
23:50:47 <bsmntbombdood> what wait?
23:50:55 <oerjan> erider: regarding brainfuck comments in brackets, the easiest way to be sure it the brackets don't get run is to put them right after another set of brackets.
23:50:57 <SimonRC> Pikhq: erm, yes
23:51:04 <oerjan> *that
23:51:13 <SimonRC> but 3 octal digis is exactly one 9-bit byte
23:51:34 <SimonRC> oh, wow, they use the old-style "backwards" assignment operators: "foo =+ bar" etc
23:51:36 <Pikhq> Each octal digit is 8 bits. . .
23:51:47 <Pikhq> How the *hell* do you get 24=9?
23:51:52 <bsmntbombdood> no...
23:52:11 <bsmntbombdood> one octal digit is log_2(8) = 3 bits
23:52:25 <Pikhq> . . . Oh, right.
23:52:29 <bsmntbombdood> one _octect_ is 8 bits
23:52:31 <Pikhq> I'm an idiot.
23:53:33 <oerjan> this is #esoteric. everyone is either an idiot or a genius at any time, just not the same always.
23:54:15 <Pikhq> The fuck? They actually *are* using 9 bit bytes.
23:54:50 <oerjan> imagine if that had stuck, then octal would probably be more used than hexadecimal
23:55:07 <SimonRC> erm, yeah
23:55:08 <lament> geniot
23:55:20 <SimonRC> their machine had 36-bit words
23:55:36 <lament> but hexadecimal is so much cooler than octal.
23:55:56 <lament> of all base-2 systems hexadecimal is perhaps the coolest.
23:56:07 <lament> or at least the most useful (could easily replace decimal)
23:56:15 <Pikhq> Well, now I know where the tradition of using octal for chmod comes from. . .
23:56:23 <Pikhq> lament: Hexadecimal is base-16, not base-2. :p
23:56:36 <lament> base-power-of-2 i mean
2007-06-05
00:00:27 <oerjan> oklopol: the trick to calculating (a+bi)/(c+di) is to multiply by (c-di)/(c-di)
00:00:48 <oklopol> indeed
00:01:01 <oklopol> i'd never have come up with that
00:01:21 <SimonRC> I though it was a standard trick
00:01:24 <oklopol> it is
00:01:33 <oerjan> basically you want your denominator to become real, and any number times its conjugate is real
00:01:39 <oklopol> but since i've never done math, it's not something i actually use
00:03:43 <bsmntbombdood> who is they?
00:04:03 <SimonRC> erm...
00:04:47 <SimonRC> K, and possibly R
00:05:02 <SimonRC> and kt
00:05:04 <bsmntbombdood> are you still talking about B?
00:05:23 <SimonRC> yes
00:07:07 -!- sebbu2 has quit ("@+").
00:11:57 <oerjan> bobbens: many BF interpreters have a # debugging command that does print the whole tape.
00:12:27 * oerjan is working through the logs rather slowly today
00:13:09 <bsmntbombdood> "Diagnostics consist of two letters"...that's helpful
00:13:28 -!- poiuy_qwert has quit.
00:14:00 <oerjan> bsmntbombdood: is that B? probably it was written for seriously memory starved machines
00:14:05 <bsmntbombdood> yeah
00:16:35 <Pikhq> oerjan: It was.
00:16:40 <oerjan> the NVG computer club actually has a machine emulating a pdp-10 with TOPS-20
00:17:14 <oerjan> probably faster than the original :)
00:18:30 <oerjan> *here
00:20:06 <SimonRC> ISTR there was once a C compiler that had only on error message: ? and a line number.
00:20:14 <erider> !bf >+.
00:20:47 <oerjan> GregorR: fire up EgoBot, please :)
00:21:17 -!- Asztal has joined.
00:21:53 <oerjan> or bsmntbombdood fire up bsmnt_bot with bf, please
00:22:23 -!- bsmnt_bot has joined.
00:23:12 * oerjan has forgot the script-loading command for bsmnt_bot
00:23:18 <bsmntbombdood> ~exec execfile("/bot/scripts/bf.py")
00:23:22 <bsmntbombdood> i think it's that
00:23:30 <SimonRC> hmm
00:23:35 <oerjan> ~bf >+.
00:23:36 <bsmnt_bot> <CTCP>
00:23:45 <oerjan> that worked
00:23:59 <SimonRC> Things get really weird when you get rid of absolute coordinate systems.
00:24:00 <Asztal> heh
00:24:30 <lament> what things?
00:24:33 <bsmntbombdood> ~bf +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
00:24:34 <bsmnt_bot> a
00:24:39 <SimonRC> I am fiddling with a game ATM that only has relative coordinate systems.
00:24:41 <bsmntbombdood> good
00:24:45 <SimonRC> -ish
00:24:56 <bsmntbombdood> i think it'll break the bot with an infinite loop though
00:25:00 <Asztal> ~bf >+++.++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++...
00:25:00 <bsmnt_bot> EEE
00:25:01 <lament> SimonRC: the difference isn't exactly huge.
00:25:03 <oerjan> SimonRC: postscript sort of works like that
00:25:47 <oerjan> bsmntbombdood: you still haven't got it to run bf in its own thread?
00:25:56 <bsmntbombdood> don't remember
00:25:57 -!- cmeme has quit ("Client terminated by server").
00:26:01 <SimonRC> space is made of blocks, and a position is defined as a transformation and the number of the spacial block whose coordinate system it is relative to.
00:26:04 <SimonRC> :-S
00:26:07 -!- cmeme has joined.
00:26:21 <bsmntbombdood> ~bf +[]
00:26:26 <SimonRC> with minimal fiddling, you get flips and rotations for free
00:26:26 <bsmntbombdood> ~ps
00:26:41 <bsmntbombdood> yep, not in a new thread
00:26:45 <bsmnt_bot> KeyboardInterrupt
00:26:51 <Asztal> heh
00:26:52 -!- bsmnt_bot has quit (Read error: 131 (Connection reset by peer)).
00:27:04 -!- bsmnt_bot has joined.
00:27:09 <bsmntbombdood> waut
00:28:10 <oerjan> SimonRC: what about relativistic transformations? (hard for multiplayer games, i guess)
00:28:44 <SimonRC> i'm ignorigh that
00:28:47 <SimonRC> but...
00:29:02 <oerjan> i mean, with a single player that could be nearly as simple
00:29:10 <lament> is there a single-player game that does relativistic effects?
00:29:23 <lament> i've seen a simple simulator but it wasn't a game
00:29:31 <Asztal> I've only ever seen a relativistic renderer
00:29:34 <SimonRC> can anyone think of a good abbreviation for "normalise"?
00:29:47 <erider> !bf +++++[>+++++++++<-]>+++.
00:29:54 <oerjan> nlz
00:30:19 <erider> ~bf +++++[>+++++++++<-]>+++.
00:30:21 <oerjan> or nls
00:30:40 <SimonRC> bah
00:30:50 <erider> :/
00:30:52 <bsmntbombdood> nrmlz
00:31:00 <oerjan> ~exec execfile("/bot/scripts/bf.py")
00:31:06 <oerjan> try again
00:31:11 <erider> ~bf +++++[>+++++++++<-]>+++.
00:31:12 <bsmnt_bot> 0
00:31:23 <erider> should be A
00:31:41 <oerjan> 5*9+3 = 48
00:31:57 <erider> first cell should be 0
00:32:10 <erider> oops your right
00:33:10 <erider> ~bf ++++++++++[>+++++++<-]>+++++.
00:33:11 <bsmnt_bot> K
00:34:14 <erider> ~bf ++++++++++[>++++++<-]>+++++.
00:34:14 <bsmnt_bot> A
00:36:02 <oerjan> there is a list of shortest way to get numbers at http://esoteric.voxelperfect.net/wiki/Brainfuck_constants (large page)
00:36:04 <erider> oerjan: how to I copy from one cell to the next
00:36:19 <SimonRC> use a temporary location
00:36:22 <erider> do*
00:36:53 <oerjan> you need 3 cells, first move from one to the two others, then move back from one of the others
00:37:06 <SimonRC> e.g. [->+>+<<]>>[-<<+>>]<<
00:37:37 <SimonRC> it is actually not much worse than Forth
00:37:50 <oerjan> o_O
00:38:21 <oerjan> this must be one of those famous British understatements :D
00:39:20 <SimonRC> well, in Forth, *everything* gets destroyed when you use it, so you have to dup everything
00:39:43 <SimonRC> other aspects of BF are indeed worse than Forth
00:40:15 <SimonRC> though if your data is all small words, you can translate a forth program into BF quite well
00:40:39 <SimonRC> unless it uses recursion or something like that
00:41:50 <bsmntbombdood> i'm working on threading the callbacks
00:42:08 <oerjan> actually recursion could work pretty well
00:42:45 <oerjan> er, well you would confuse the two forth stacks
00:42:52 <erider> ~bf ++++++++++[>++++++>++++++<<-]>+++++>+++++<.>.
00:42:52 <bsmnt_bot> AA
00:43:11 <oerjan> it's screaming! stop this abuse!
00:43:23 <erider> lol
00:43:46 <erider> sorry
00:46:47 -!- crathman has quit (Read error: 113 (No route to host)).
00:47:29 <Pikhq> Obviously what you want is "@ a;@ temp;cons65 a : temp;out a"
00:47:31 <Pikhq> Err
00:47:46 <Pikhq> "source ^stdcons.bfm;@ a;@ temp;cons65 a : temp;out a"
00:47:57 <Pikhq> Add another out a. -_-'
00:48:32 <Pikhq> ~bf >----[<+>----]<++..
00:48:53 <oerjan> hm...
00:48:58 <oerjan> ~ps
00:49:14 <Pikhq> I think it wants a newline.
00:49:34 <bsmntbombdood> did you break it again
00:49:51 <bsmntbombdood> naughty naughty
00:49:52 <bsmnt_bot> KeyboardInterrupt
00:49:56 -!- bsmnt_bot has quit (Read error: 131 (Connection reset by peer)).
00:49:59 <oerjan> Pikhq seemed to assume the interpreter was wrapping
00:50:01 -!- bsmnt_bot has joined.
00:50:24 <Pikhq> Which is a natural assumption; it damned well *should* be.
00:50:30 <oerjan> it probably uses Python integers
00:50:32 <Pikhq> And if it were up to me, it would.
00:50:48 <Pikhq> It should probably add a %255 in there.
00:50:54 <lament> this might come as a surprise to many of you, but integers don't wrap.
00:51:12 <bsmntbombdood> pwnt
00:51:29 <Asztal> unless in modulo arithmetic :|
00:51:46 -!- bsmnt_bot has quit (Remote closed the connection).
00:51:47 <Pikhq> Thus why I'm saying "add a %255".
00:51:54 <lament> Asztal: those things aren't called integers.
00:51:57 <oerjan> although i don't know if Python converts to bignums or throws an exception on overflow, or perhaps the size is just so big it didn't reach wrap yet
00:52:04 <SimonRC> Pikhq: not %256?
00:52:05 <lament> oerjan: bignums.
00:52:14 <Pikhq> SimonRC: Erm. Right.
00:52:33 <SimonRC> oerjan: ISTR Python goes to bignums
00:53:14 -!- bsmnt_bot has joined.
00:53:19 <bsmntbombdood> i hope this works....
00:53:23 <bsmntbombdood> ~exec execfile("/bot/scripts/bf.py")
00:53:26 <bsmntbombdood> fuck
00:54:09 -!- bsmnt_bot has quit (Remote closed the connection).
00:54:22 -!- bsmnt_bot has joined.
00:54:25 <bsmntbombdood> ~exec execfile("/bot/scripts/bf.py")
00:54:48 <bsmntbombdood> ~bf +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
00:54:49 <bsmnt_bot> a
00:54:58 <bsmntbombdood> ~bf +[]
00:55:02 <bsmntbombdood> ~ps
00:55:18 <bsmntbombdood> argh
00:55:22 <Asztal> if the integers in BF wrap at 256, doesn't that hurt indirection? is indirection even possible in BF?
00:55:38 <oerjan> indirection?
00:55:53 <bsmntbombdood> it seems the thread is not giving up it's time slot
00:55:55 <oerjan> you mean storing pointers?
00:56:31 <oerjan> oh so python only does cooperative threading?
00:56:53 <bsmnt_bot> KeyboardInterrupt
00:56:56 <bsmnt_bot> KeyboardInterrupt
00:56:58 -!- bsmnt_bot has quit (Read error: 131 (Connection reset by peer)).
00:56:59 <lament> Asztal: the type of brainfuck cells is not specified.
00:57:01 <bsmntbombdood> it would seem
00:57:08 -!- bsmnt_bot has joined.
00:57:14 <bsmntbombdood> ~exec execfile("/bot/scripts/bf.py")
00:57:18 <bsmntbombdood> ~bf +[]
00:57:23 <oerjan> put a yield operation in the loop command
00:57:25 <bsmntbombdood> ~os
00:57:28 <bsmntbombdood> ~ps
00:58:09 <oerjan> (whatever python calls yield)
00:58:41 <bsmnt_bot> KeyboardInterrupt
00:58:42 <bsmnt_bot> KeyboardInterrupt
00:58:44 -!- bsmnt_bot has quit (Read error: 131 (Connection reset by peer)).
00:58:53 -!- bsmnt_bot has joined.
00:58:56 <bsmntbombdood> ~exec execfile("/bot/scripts/bf.py")
00:58:59 <bsmntbombdood> ~bf +[]
00:59:01 <bsmntbombdood> ~ps
00:59:08 <bsmntbombdood> wtf
00:59:50 <oerjan> you could do pointers in bf with variable width arrays
01:00:54 <oerjan> although that would seem to require shuffling things to store values
01:03:17 <bsmntbombdood> why not it work :(
01:03:21 <bsmnt_bot> KeyboardInterrupt
01:03:21 <bsmnt_bot> KeyboardInterrupt
01:03:23 -!- bsmnt_bot has quit (Read error: 131 (Connection reset by peer)).
01:03:39 <oerjan> however, since moving along the tape (especially if you are searching for something so it cannot be optimized away) takes linear time, moving things at the same time may only imply a constant factor overhead
01:03:44 <Asztal> seems to me that it's difficult to execute a "move to position X" operation though, since you can only read the target cell from the current cell... once you move off it, you don't know where you're moving to any more
01:04:10 <Asztal> you'd have to shuffle things, as you said, which might corrupt things along the way
01:04:35 <oerjan> you would need to bring the destination pointer with you
01:04:50 <oerjan> i am sure it can be done, it's just inefficient
01:04:56 <bsmntbombdood> destroying contents as you go
01:05:04 <oerjan> not destroying, swapping
01:05:41 <bsmntbombdood> hmmm
01:05:50 <Pikhq> I believe the means of storing arrays involve storing array cells with 2 bytes. . .
01:06:09 <bsmntbombdood> bsmnt_bot has been quitting in IRCFileWrapper.write
01:06:42 <Asztal> oerjan: and to avoid shifting all the cells inbetween, you'd have to go back and swap them again each time you finish a swap, perhaps?
01:07:20 <Asztal> you could decrement the "position" value each time you swap, once it reaches zero, you're there. and you've probably wasted millions of cycles getting there :)
01:08:09 <oerjan> not really, because the swapping would not change the order of anything other than the record you are bringing with you.
01:08:29 <oerjan> indeed, i imagine all pointers being relative
01:09:19 <oerjan> wasting millions of cycles is a given in brainfuck
01:10:11 <Asztal> I imagine it starting off as: DabcdefghijkT (d=pointer, a->k are values, T=target cell), then
01:10:12 <Asztal> DabcdefghijkT, aDbcdefghijkT, abDcdefghijkT, abcDdefghijkT, ..., abcdefghijkD
01:10:43 <oerjan> yep, that's what i am thinking too
01:11:12 <Asztal> I was thinking of some way of swapping them back but it hurts my brain
01:11:43 <oerjan> well, D would have to contain a pointer backwards too if you want that.
01:12:31 <bsmntbombdood> [->+<]>[[->>+<<]>>-]
01:12:42 <oerjan> all pointers in D would be adjusted as you go. or perhaps it is better to keep them absolute apart from "current position"
01:12:54 <bsmntbombdood> that would move n cells right where n is the number in the current cell
01:13:02 <bsmntbombdood> assuming every other cell is used for data
01:13:33 <oerjan> bsmntbombdood: that works as long as pointers are small enough for a single cell
01:13:39 <bsmntbombdood> right
01:13:53 <erider> are you guys interesting in adding another language to you guys toolbox?
01:14:07 <SimonRC> shoot
01:14:26 <erider> http://charleschilders.com:9812/
01:16:29 <bsmntbombdood> i haven't played with forth for a long time
01:16:37 <SimonRC> i like Factor
01:16:40 <SimonRC> as you know
01:17:06 <SimonRC> Factor has the same fuck-around-with-the-system attitude as smalltalk.
01:18:42 <bsmntbombdood> forth is fuck-around-with-the-system-shoot-your-head-off to the max
01:20:04 <erider> have a look at the rosette code
01:20:38 <SimonRC> hmm
01:22:52 * erider thinks SimonRC is interested
01:24:33 <SimonRC> actually I was going "hmm" at something else.
01:25:36 <bsmntbombdood> wtf
01:25:44 <bsmntbombdood> my radio station is down :(
01:27:06 <bsmntbombdood> no fair
01:27:12 <bsmntbombdood> i'm going to learn vi then
01:41:09 <bsmntbombdood> i forgot how cool vi was
01:42:58 <SimonRC> zzzzzz
01:43:07 <SimonRC> bsmntbombdood: you have a radio station?
01:43:37 <bsmntbombdood> s/my radio station/an internet radio station i listen to/
01:43:42 <SimonRC> ah, ok
01:43:43 <SimonRC> zzzzzz
04:30:36 -!- clog has joined.
04:30:36 -!- clog has joined.
04:47:47 -!- boily has joined.
04:48:20 <Pikhq> 'Lo.
04:49:16 <oerjan> hi boily
04:49:34 -!- EgoBot has joined.
04:51:13 <boily> hi
04:51:23 <Pikhq> It's EgoBot!
04:51:49 <Pikhq> !pebble inline {What do you mean, you don't have PEBBLE support?}
04:51:51 <EgoBot> Huh?
04:51:54 <oerjan> i see a remaining problem with your string handling: what happens with \ on an empty string?
04:52:15 <boily> it returns -1, leaving the empty string there
04:52:27 <boily> the only way to suppress a string is through _
04:52:33 <oerjan> ok
04:54:23 <oerjan> also what happens if you do ? ... [ ... | ! ... ]
04:54:33 <boily> uh... just a minute...
04:55:14 * Pikhq should probably add PEBBLE support to EgoBot, just as soon as I'm satisfied for a PEBBLE 1.0 release
04:56:22 <oerjan> or for that matter ? ... ? ! ... !
04:56:51 <bsmntbombdood> oerjan's gone nutters
04:57:08 <boily> he isn't nuts, he's beets
04:57:47 <boily> about oerjan's first question: it works. i do not know how nor why, but it works.
04:58:05 <boily> C3?5[,*+563|!C-c1] prints "!!!"
04:58:18 <oerjan> actually i am more wondering about _what_ it does :)
04:58:30 * Pikhq wonders: how many people care about PEBBLE?
04:58:33 <boily> no idea.
04:58:38 <erider> Pikhq: what is PEBBLE?
04:58:40 * Pikhq is thinking that it's somewhere on the order of '1'.
04:59:01 <Pikhq> erider: PEBBLE is a language and compiler I devised which is designed to efficiently compile to Brainfuck.
04:59:05 * boily scratches his head
04:59:24 <Pikhq> It's currently a whole lot more efficient with the C backend, though.
04:59:26 <erider> website?
05:00:14 <Pikhq> http://pikhq.nonlogic.org/esoteric.html is the closet I've got for now. . . It dates back to before I changed the name, but does give a good summary of the language.
05:01:21 <boily> talking about brainfuck, i coded an interpreter for fun this morning (june 4th)
05:01:33 <Pikhq> I kind of need to update the documentation. . .
05:02:32 <Pikhq> BTW, that link is wrong. . . http://pikhq.nonlogic.org/pebble-1.0-preview.tar.bz2 contains the latest PEBBLE build that's tarred up, and svn://nonlogic.org/pikhq/pebble/trunk contains the latest and not guaranteed to work.
05:05:40 * erider is reading about a time long long ago
05:06:09 <oerjan> boily: the interpreter link is wrong, leading to a completely unrelated page
05:06:23 <boily> d'oh
05:06:42 <Pikhq> erider: Hmm?
05:07:04 <oerjan> it also occurs to me that pastebin pages can probably be edited by anyone...
05:07:49 <boily> yeah, it's just a temporary place. as soon as my friend's server is up, i'll host it there
05:08:05 <oerjan> although you can still find the original, just as on wikis
05:08:31 <oerjan> no wait
05:08:36 <oerjan> it gets a new number
05:09:18 <oerjan> false alarm :)
05:09:29 <boily> i corrected the link
05:11:07 <Pikhq> erider: BTW, http://pikhq.nonlogic.org/pfuck-1.0.tar.bz2 or svn://nonlogic.org/pikhq/pfuck/trunk include something somewhat useful written in the language.
05:12:00 <erider> Pikhq: your version of the language
05:12:51 <Pikhq> erider: Uh, by definition, any version of the language will be my version, at this point, simply because it's *my* language entirely. . .
05:13:20 <erider> :)
05:13:23 <erider> cool
05:13:54 * erider is reading about brainf**k algorithms
05:14:12 <Pikhq> Well, oerjan helped a good deal earlier on. . . That was *before* I did the rewrite of the compiler, making it multiple passes. . .
05:14:24 <Pikhq> I believe his most notable contribution as of *now* is the stdcons.bfm file.
05:15:37 <oerjan> which i mostly automatically translated from [[Brainfuck constants]] on the wiki.
05:16:27 <Pikhq> True.
05:25:56 <oerjan> oops. boily's ? ... [ ... | ! ... ] test was _not_ jumping
05:26:55 <boily> which means?
05:27:03 <oerjan> the interesting cases are when you _do_ jump into or out of a [ ... ]
05:27:26 * boily ponders on this particular problem...
05:27:33 <oerjan> if ? doesn't jump then it acts as a nop
05:29:07 <oerjan> i think it will be even more crazy if ? is the argument of something else
05:29:47 <oerjan> in fact that might be crazy even without [ ... ], if that something else requires more arguments
05:31:59 <oerjan> congratulations, i think you have made a language more twisted than you intended :)
05:35:38 <oerjan> i also think comments and strings containing ! should be used with care.
05:37:02 <boily> i don't know if i shall rejoice or flee.
05:37:33 <boily> i think the next step will be to hack a brainfuck interpreter in betterave...
05:38:19 <oerjan> i _think_ your language is relatively sensible apart from the ? ... ! effects
05:39:02 <boily> hmm... i agree.
05:40:44 <oerjan> i don't think [ ... | ... ] has any issues with comments unless you put something after the | xxx expression
05:41:03 <oerjan> (or strings, but that would be useless anyhow
05:41:05 <oerjan> )
05:42:56 <oerjan> for non-esoteric uses however, this all should be a warning to keep your parsing and execution stages separate.
05:44:05 <Pikhq> oerjan: Lies!
05:44:14 <boily> lies?
05:44:23 <Pikhq> You should have a parser that is modifiable at runtime!
05:44:37 <boily> :)
05:45:15 <oerjan> ok that has its uses, but at least a command should be entirely parsed before executed
05:45:26 <Pikhq> Lies.
05:45:40 <Pikhq> Parsing should be part of the command.
05:45:56 * Pikhq is evil. ;)
05:46:40 <Pikhq> proc foo {args} {standard_parser; do stuff with $args};foo();bar();quuux!
05:51:45 <oerjan> something occurs to me. [ ... | ... ] is always executed at least once.
05:52:09 <oerjan> so you cannot avoid ? ... ! entirely.
05:55:32 <boily> that was one reason why i added ? ... ! to my language
05:58:19 <oerjan> hm |0] cancels the preceding [, no matter where it is
06:00:22 <oerjan> so you could exit a loop with ? ... ] ... ?!|0]1! or something like that
06:01:02 <boily> umm... not sure about the ?! part...
06:01:04 <boily> wait...
06:01:07 <boily> it works.
06:01:11 <Pikhq> boily: You, sir, are *way* too evil for your own good.
06:01:31 <boily> me? evil? bah, humbug!
06:01:42 <oerjan> because the last ? doesn't look for ! until the end of the test
06:04:39 -!- GregorR-L has joined.
06:11:55 <Pikhq> It be Gregor!
06:11:55 <Asztal> it's HIM!
06:11:55 <Asztal> the one who started my obsession over bismuth
06:11:55 <Asztal> >:(
06:11:55 <boily> um, pardon my ignorance, but what is bismuth?
06:12:04 <Pikhq> I'll second that question.
06:12:18 <oerjan> apart from a chemical element
06:12:32 <Asztal> bismuth is a heavy metal which makes awesome crystals
06:13:47 <Asztal> because of its density, he mentioned sending it back in business reply envelopes... then I had to go look it up, resulting later on in the purchase of http://i6.ebayimg.com/02/i/000/a0/38/eadf_1.JPG
06:14:19 <boily> nice
06:15:10 <Asztal> it's like a fractal which I can touch!
06:17:20 -!- Pikhq has quit (Remote closed the connection).
06:17:40 -!- Pikhq has joined.
06:18:13 <GregorR-L> ..................
06:18:38 <GregorR-L> That is pretty rife with awesome :)
06:26:52 <Pikhq> Yeah.
06:27:04 -!- boily has quit ("Bye!").
06:33:53 <bsmntbombdood> i've got a small one of those
07:01:44 -!- Pikhq has quit (Remote closed the connection).
07:04:34 -!- Pikhq has joined.
07:16:25 -!- Pikhq has quit (Remote closed the connection).
07:17:15 -!- Pikhq has joined.
07:30:50 -!- GreaseMonkey has joined.
07:52:01 <GreaseMonkey> getting off now, here's my SKI interpreter if you want it: http://greasemonkey.nonlogic.org/poleski.zip
07:52:07 -!- GreaseMonkey has quit (Client Quit).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:56:33 -!- GregorR-L has quit ("Leaving").
08:58:23 -!- GreaseMonkey has joined.
08:58:53 <GreaseMonkey> anyone on?
08:59:11 <oerjan> yeah
08:59:16 <GreaseMonkey> comments on my SKI interpreter? http://greasemonkey.nonlogic.org/poleski.zip
08:59:52 <GreaseMonkey> it's actually pretty damn advanced now
09:00:01 <GreaseMonkey> it just doesn't have "level 3"
09:00:34 <bsmntbombdood> level 3?
09:01:16 <GreaseMonkey> it has an explanation
09:01:25 <GreaseMonkey> let's say that Lazy K is level 1
09:01:39 <GreaseMonkey> (very lazily evaluated)
09:01:53 <GreaseMonkey> level 2 evaluates brackets before performing operations on them
09:02:02 <GreaseMonkey> level 3 evaluates top-down
09:02:57 <GreaseMonkey> everything is optional: Level 1/2, Empty-Bracket-Removal {on/loadtime only/off}, Lone-Bracket-Removal {on/off}, Forward-On-Dud (on a dud symbol, evaluate brackets after it) {on/off}, Lazy-I (don't evaluate bracket next to I) {on/off}
09:03:24 <GreaseMonkey> defaults: L2, LTLBR (Load-Time LBR), EBR, FOD, Lazy-I
09:36:00 -!- oerjan has quit ("Off to lunch").
10:51:07 <oklopol> <Pikhq> Thus why I'm saying "add a %255". <<< why not 256?
10:51:14 <oklopol> oh
10:51:27 <oklopol> i should read further before saying anything
10:55:45 -!- GreaseMonkey has quit ("Crashing a computer only works if you add wheels to it.").
10:58:10 <oklopol> <oerjan> you would need to bring the destination pointer with you <<< i did something like having every second cell empty and [->+>>+<<<]>>>[-<<<+>>>]<<[[->>+<<]>>-]>
10:59:24 <oklopol> and bsmntbombdood also coded that after you said it, i'll stop commenting what i see :<
12:49:21 <oklopol> whuzz the regex way to say "replace every '.' in a string with ' ' if '.' is not preceded by a number"
12:49:33 -!- Asztal has quit (Read error: 104 (Connection reset by peer)).
12:51:54 -!- Asztal has joined.
12:52:14 -!- Asztal has quit (Read error: 104 (Connection reset by peer)).
12:53:05 -!- CakeProphet_ has joined.
12:54:14 -!- lament has quit (Remote closed the connection).
12:54:18 -!- lament has joined.
12:57:08 -!- Asztal has joined.
13:00:22 -!- CakeProphet has quit (Read error: 104 (Connection reset by peer)).
13:47:23 -!- jix_ has joined.
15:28:52 -!- crathman has joined.
15:39:32 -!- CakeProphet_ has changed nick to SilentScience.
15:47:52 -!- helios24 has quit (Remote closed the connection).
15:49:56 -!- helios24 has joined.
15:55:08 -!- boily has joined.
16:29:54 <SimonRC> I recommend that every here reads worsethanfailure.com
16:30:00 <SimonRC> their contest results are amazing
16:57:22 -!- sebbu has joined.
17:03:39 <SimonRC> hi
17:09:28 <lament> hi
17:12:32 <boily> hi
17:12:43 * SimonRC grins at the UF LoTD
17:28:01 <lament> at the who?
17:28:17 <lament> user friendly l of the day?
17:36:41 <lament> line? lameness? lament? lady?
17:36:46 <lament> limerick?
17:43:08 -!- crathman has quit (Read error: 113 (No route to host)).
17:53:30 -!- boily has quit (Read error: 110 (Connection timed out)).
17:56:53 -!- crathman has joined.
17:57:57 -!- crathman has quit (Client Quit).
18:04:41 <GregorR> oklopol: s/([^0-9])\./\1/g
18:04:50 <GregorR> Erm
18:04:52 <GregorR> oklopol: s/([^0-9])\./\1 /g
18:04:56 <GregorR> (Forgot the space :P)
18:06:34 -!- boily has joined.
18:47:00 <fizzie> GregorR; That's "if '.' is preceded by something that's not a number", not "-- not preceded by a number", which means it'll fail to replace the '.' at the beginning of the string. In perl-style regexps you can use a simple s/(?<!\d)\./ /g
18:48:05 <fizzie> s/([^0-9]|^)\./\1 /g probably works for less-endowed regexps.
19:09:27 -!- boily has quit (Read error: 110 (Connection timed out)).
19:44:08 -!- sebbu2 has joined.
19:51:37 <bsmntbombdood> you must escape the ()
19:53:34 <fizzie> At least in sed, yes.
19:54:31 <fizzie> Although in those systems you probably also need to escape the |.
19:54:52 <fizzie> My sed also has the 'extended regular expressions' argument -r.
19:55:23 <bsmntbombdood> it's annoying how everything has a different flavor of regexes
19:57:14 <fizzie> Perl, Java, anything using the PCRE library (like PHP's preg_* functions) at least are relatively close to each other.
19:58:22 <bsmntbombdood> and there's grep, sed, awk...
19:58:49 <bsmntbombdood> egrep
19:59:50 <bsmntbombdood> regex handling should have gone into the libc from the beginning
20:11:27 -!- sebbu has quit (Read error: 110 (Connection timed out)).
20:11:27 -!- sebbu2 has changed nick to sebbu.
20:18:14 -!- GregorR-L has joined.
20:19:20 <bsmntbombdood> long i; for(i=1<<31; i; i >>= 1) while(malloc(i));
20:28:32 <oklopol> how come i end up being drunk 3 times a week though i hate drinking?
20:28:40 <oklopol> i have to filter my friends.
20:30:45 -!- sebbu has quit ("reboot").
20:32:53 <bsmntbombdood> eventually malloc all their core storage
20:37:25 -!- Pikhq has quit ("Leaving.").
20:38:08 -!- Pikhq has joined.
20:46:05 -!- sebbu has joined.
21:14:00 -!- GregorR-L has quit ("Leaving").
22:10:32 -!- jix_ has quit ("CommandQ").
22:32:28 * SimonRC goes to have a pizza then continue his sleeping experiments.
22:33:44 <oklopol> sleeping experiments?
22:33:46 <oklopol> :)
23:09:53 <bsmntbombdood> oklopol and his fetsih
23:09:56 <bsmntbombdood> *fetish
23:18:56 <oklopol> yeeeeeeah
23:22:43 <bsmntbombdood> when are you going to try the ubermans?
23:24:47 <oklopol> me?
23:24:50 <oklopol> prolly in a month
23:24:59 <oklopol> i have stuff next week :<
23:48:24 -!- sebbu has quit ("@+").
2007-06-06
00:00:45 -!- crathman has joined.
00:24:01 <erider> http://retroforth.com/paste/?id=415
00:55:12 -!- crathman has quit (Read error: 113 (No route to host)).
01:18:21 -!- fax has joined.
01:18:24 <fax> hi
01:19:53 <Asztal> hello
01:36:07 -!- oerjan has joined.
01:40:21 <oerjan> s/([^0-9]|^)\./\1 /g and the like will not work for several . in a row
01:40:40 <fax> change \. to \.\.* maybe?
01:41:27 <oerjan> no, you need _each_ replaced by a space
01:41:45 <fax> use tr
01:42:02 <oerjan> (because /g only does non-overlapping substitutions)
01:42:12 <fax> 'y' in sed
01:42:24 <fax> but im not sure how (or if you even can) use it on a subexpression
01:42:28 <oerjan> tr cannot take a precondition can it?
01:42:43 <fax> would be cool to do: s/([^0-9]|^)\.\/\1 /g
01:42:54 <oerjan> well if you allow /e, but then we are far out of anything usable in non-perl
01:42:57 <fax> would be cool to do: s/([^0-9]|^)\(\.\.*\)/\1 <apply tr to \2>/g
01:45:53 <oerjan> hm, not sure if tr in perl can be used functionally. but perhaps (($2=~y/.../.../),$2) will work
01:46:27 <fax> aw I thought you were using sed
01:47:08 <fax> bah I'm stupid, never noticed unescaped ()'s
01:49:39 <oerjan> this was a question by oklopol in the logs. fizzie gave s/(?<!\d)\./ /g, which should work
01:50:21 <fax> would it be possible to just replace all .. with . until no more matches occur
01:50:30 <fax> or might that interfere with the rest of the patter?
01:50:34 <bsmntbombdood> not in engines that don't have lookbehid
01:53:52 <oerjan> if you are to do it without full expressions you can only replace one . at each match, and the matches must be non-overlapping so lookbefore seems essential
01:54:38 <oerjan> unless you use more than one substitution. doing the naive one twice should work in this particular case.
01:56:21 <oerjan> hm, look-behind is the technical term. sounds illogical to me.
01:57:08 <fax> oh or s/\.\.*/./
01:57:47 <oerjan> fax: each . is to be replaced with one space. you cannot collapse them.
01:59:00 <fax> s/\./ /
02:00:33 <oerjan> if you use perl expressions, " " x length($2) is simple enough
02:01:02 <oerjan> fax: each . that is replaced, i mean.
02:02:09 <oerjan> <oklopol> whuzz the regex way to say "replace every '.' in a string with ' ' if '.' is not preceded by a number"
02:03:24 <erider> hi fax
02:03:30 <fax> hey erider
02:03:41 <oerjan> i think it is impossible to do with a single substitution using no extension such as expressions or look-behind
02:08:12 <fax> echo "c..d a.....a b...b" | sed -e "s/a\(\.\.*\)a/\"\`echo \'a\1\a' | tr . \\\\ \`\"/g" -e 's/\(.*\)/echo "\1"/' | sh
02:08:56 <fax> ..doesn't work lol
02:08:57 <fax> sorry 1 sec
02:09:40 <oerjan> (whatever that is it doesn't go under "no extension")
02:11:19 <oerjan> if that is supposed to be the same question, then you forgot to check that . is not preceded by a digit.
02:11:29 <fax> no
02:11:43 <fax> using 'a' instead of any digit
02:12:51 <fax> hm
02:12:59 <fax> echo "\"a.....a\"" | tr . \ #-> "a a"
02:13:11 <fax> echo `echo "\"a.....a\"" | tr . \ `#-> "a a"
02:13:31 <fax> need to replace . with '\ ' ;/
02:30:09 -!- fax has quit ("Leaving").
03:47:25 -!- bsmntbombdood has quit (Read error: 104 (Connection reset by peer)).
03:50:20 -!- bsmntbombdood has joined.
04:03:17 <bsmntbombdood> http://www.ben.jellybaby.net/
04:38:19 -!- SilentScience has quit (Read error: 113 (No route to host)).
04:47:52 -!- Chaos750 has joined.
04:48:38 -!- Chaos750 has quit (Client Quit).
04:49:17 * oerjan thinks that may have been a chaos magician...
04:58:44 * erider has a functional bf interpreter in toka :)
04:59:34 <oerjan> so toka is TuCo :)
05:27:46 -!- boily has joined.
05:40:56 -!- Pikhq has quit (Remote closed the connection).
05:41:25 -!- Pikhq has joined.
05:41:46 -!- Pikhq has quit (Client Quit).
05:51:30 -!- pikhq has joined.
05:51:49 -!- digital_me has joined.
05:56:30 -!- digital_me has quit (Client Quit).
06:11:33 -!- boily has quit ("WeeChat 0.2.4").
07:13:56 -!- GregorR-L has joined.
07:25:17 * pikhq looks at KDE4, stares longingly
07:25:53 <bsmntbombdood> ...why?
07:26:16 <pikhq> Plasma == OMG.
07:26:19 <pikhq> Kwin == OMG.
07:26:23 <pikhq> Everything == OMG.
07:26:25 <bsmntbombdood> what's that?
07:26:52 <pikhq> Plasma is the new implementation of the desktop, desktop widgets, panel, and more.
07:27:14 <pikhq> Kwin is the KDE window manager, which, for KDE4, will use AIGLX and Xcomposite.
07:27:33 <GregorR-L> http://www.codu.org/hats/Pakul-med.jpg < Gregor's new burlap-sack hat.
07:27:58 <bsmntbombdood> useless waste, useless waste, and useless waste?
07:28:18 <pikhq> bsmntbombdood: The Kwin features are actually *useful*.
07:28:25 <pikhq> As are the Plasma features, actually.
07:28:44 <pikhq> And Phonon will be a really, really nice abstraction of the audio layer. . .
07:28:45 <GregorR-L> KDE doesn't have much in terms of flashy features.
07:28:53 <pikhq> GregorR-L: KDE4 sure as hell does.
07:29:13 <GregorR-L> pikhq: When I say "flashy features", I mean "features which have no purpose but to be flashy"
07:29:16 <pikhq> Oh.
07:29:30 <pikhq> By that definition, nor does KDE4.
07:29:33 <bsmntbombdood> GregorR-L: cool hat
07:29:33 <GregorR-L> Unlike Beryl, which has exclusively flashy features.
07:29:43 <pikhq> Yup.
07:29:47 <bsmntbombdood> GregorR-L: that's the best one yet
07:29:53 <oerjan> be careful with this hat-buying. remember Frogstar B.
07:29:59 <bsmntbombdood> i'd wear it
07:30:18 <pikhq> I'd wear it, which is saying something from someone who's only hat is called "long hair".
07:30:25 <GregorR-L> Heh
07:30:40 <GregorR-L> bsmntbombdood: I now have one hat for every year of my life :P
07:30:48 <bsmntbombdood> lol
07:31:13 <fizzie> "The hats of my life", sounds like a book and/or a movie and/or a musical title.
07:31:23 <pikhq> Man. . . It's one thing for a UI to look beautiful, but KDE4 surpasses that. . . The friggin' *API* is a work of art already.
07:31:44 <bsmntbombdood> i like this hat http://www.codu.org/hats/TopHat-med.jpg and this hat http://www.codu.org/hats/RedFedora-med.jpg
07:32:20 <pikhq> ogg123, written using kdelib from KDE4, is about 10 lines of code.
07:33:44 <bsmntbombdood> http://www.codu.org/music/GRegor-op8.ogg <-- this is a cool song
07:34:10 <pikhq> A long song from Gregor?
07:34:53 <GregorR-L> Strange how my random hat update causes people to start reading my page :P
07:35:29 <pikhq> GregorR-L: I usually check your page every once in a blue moon.
07:35:43 <GregorR-L> I don't even check my own page more than once every never :P
07:36:04 <pikhq> Honestly, I've noticed that it doesn't update much. . .
07:36:15 <pikhq> Most of your stuff is, uh, hidden from the actual page.
07:36:23 <pikhq> Like that ogg that was just linked.
07:36:34 <pikhq> . . . Err.
07:36:34 <GregorR-L> That's on the "music" page.
07:36:39 <pikhq> Never mind. I'm an idiot.
07:36:43 <GregorR-L> :P
07:36:51 <GregorR-L> Anyway, I rarely update it ... it's not a blog.
07:36:59 <GregorR-L> I don't have enough to say about my life to blog X-P
07:37:12 <pikhq> And you're a friggin' amazing piano player.
07:37:39 <GregorR-L> Not really :P
07:37:56 <pikhq> What, and are you not a good coder, either?
07:38:20 <GregorR-L> I'm an excellent coder.
07:39:12 <pikhq> I'm well aware.
07:39:15 <GregorR-L> But given that my friend Eric, who plays the piano as one of an ever-increasing number of instruments (at least five), plays much better than I do, I'm not that great :P
07:39:36 <pikhq> You play a hell of a lot better than I do. . .
07:40:13 <pikhq> My musical skills are more in the realms of choral music. . .
07:40:46 <GregorR-L> There's a notable tragedy in my singing: I can sing in tune, but my voice makes people's ears bleed X-P
07:40:51 <pikhq> Hahah.
07:41:13 <pikhq> I'm good, just so long as I can sing bas.
07:41:14 <pikhq> Err.
07:41:15 <pikhq> bass.
07:41:39 <pikhq> Get me doing higher than that, and I make everyone cringe.
07:41:46 <GregorR-L> Heh
07:41:58 <pikhq> My falsetto? T3h suck.
07:44:58 <GregorR-L> By the way, the hat I linked ( http://www.codu.org/hats/Pakul-med.jpg ) is basically a rolled-up burlap sack ;)
07:45:35 <pikhq> Creative. ;)
07:46:30 <bsmntbombdood> where do you get a burlap sack
07:46:47 <GregorR-L> If you buy them like I do, you pay $30 for it at a hat shop :P
07:47:04 <bsmntbombdood> that's a lot of moneys
07:47:06 <oerjan> o_O
07:47:28 <GregorR-L> That's a fairly normal price for a good-quality hat.
07:47:52 <bsmntbombdood> but it's not a good-quality hat...it's a sack
07:48:07 <oerjan> i guess it might be better than a used one...
07:48:12 <GregorR-L> Heh
07:48:17 <oerjan> smelling of potatoes, or whatever
07:48:23 <GregorR-L> "Is this an apple core in my hat?"
07:48:26 <bsmntbombdood> you could have a coffee smelling hat
07:48:49 <pikhq> I'
07:48:53 <pikhq> d take one of those.
07:52:51 <oerjan> coffee, that was what i was missing.
07:53:08 * oerjan slurps loudly
07:54:12 <bsmntbombdood> that sounds good
07:55:34 * bsmntbombdood hasn't had any caffeine for 2.5 weeks
07:55:39 <GregorR-L> O_O
07:55:55 * GregorR-L is thoroughly addicted to teh soda.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:05:23 * pikhq loves the holy nectar: Mountain Dew
08:14:29 -!- oerjan has quit ("leaving").
08:18:44 <bobbens> pikhq: and i was assuming the holy nectar was ambrosia aka expresso :)
08:18:58 <pikhq> Espresso, while holy, is not a nectar.
08:19:16 <bobbens> when you've had enough it is :)
08:19:29 <bobbens> got to hook up my expresso iv now :)
08:19:31 <pikhq> You mean it's *sweet*?!?
08:19:51 <pikhq> It ain't a *nectar* unless it's sweet.
08:20:03 <pikhq> Holiness comes from caffeine content, though. ;)
08:20:34 <bobbens> well you put sugar in it
08:20:43 <bobbens> i like brown sugar because it gives it a nice caramalized effect
08:20:47 <pikhq> Then it's no longer worthy of the name 'espresso'.
08:20:53 <bobbens> straight expresso messes with my stomach early morning :)
08:21:20 <bobbens> expresso is the base of all coffee drinks, you need a stomach of iron to drink it straight
08:21:30 <bobbens> and even then it'll eventually destroy your stomach
08:22:01 <bobbens> i used to like that mountain dew soda stuff
08:22:10 <bobbens> but it just messes with you too much :)
08:22:17 <bobbens> now i'm on tea/coffee
08:22:52 * pikhq prefers his coffee to be just strong enough to glow from the radiation within :p
08:23:29 <bobbens> it has to be able to move on its own right? :P
08:23:44 <bobbens> "Come back here mister coffee! I'm going to drink you!"
08:24:42 <GregorR-L> pikhq doesn't drink his coffee, he hunts, cooks and eats his coffee.
08:26:04 <pikhq> Heheheh.
08:34:14 <bsmntbombdood> yum
08:37:34 <pikhq> *echm* It's coffeezilla!
08:43:03 <GregorR-L> Caffeine written in JavaScript?
08:54:17 <pikhq> No, no, no.
08:54:32 <pikhq> Obviously, you want JavaScript written in CaffeineScript.
08:54:46 <pikhq> Night. . .
08:57:21 -!- GregorR-L has quit ("Leaving").
09:40:43 -!- GreaseMonkey has joined.
10:37:04 -!- GreaseMonkey has quit ("The future of IRC --> mIRC http://www.mirc.com <-- Crappy ads in your quit message").
11:41:57 <SimonRC> Never let Robocop hang the decorations on your Christmas tree, he will only break them all.
11:43:05 * oklopol will keep that in mind
11:44:25 <SimonRC> These dream-messages don't seem quite as profound when you tell them to someone.
11:49:37 <oklopol> hmm... i'm pretty sure i play the piano better than GregorR... or at least used to play, but if that's his composition, i'm fucking impressed
11:50:37 <oklopol> SimonRC: please tell me about your sleep expreriments :)
11:51:21 <oklopol> okay, i guess i couldn't concentrate enough to play that long a piece in one go
11:52:41 <oklopol> i wish i knew another composer, i could play my card game with them
11:52:58 <oklopol> perhaps i'll articlify that
11:53:00 <oklopol> ->
11:57:24 <SimonRC> not ubermans...
11:57:49 <SimonRC> http://www.everything2.com/index.pl?node_id=69872
11:57:53 * SimonRC goes back to bed
13:03:24 -!- jix_ has joined.
13:19:44 -!- jix__ has joined.
13:28:13 -!- jix_ has quit (Read error: 110 (Connection timed out)).
15:19:05 * SimonRC loves his magical shrinking code
15:19:14 <SimonRC> The more you hack on it, the shorter it gets.
15:27:19 -!- crathman has joined.
16:15:45 -!- crathman has quit ("ChatZilla 0.9.78.1 [Firefox 2.0.0.4/2007051502]").
16:36:06 -!- oerjan has joined.
16:50:22 -!- sebbu has joined.
17:05:42 -!- jix__ has quit (Killed by douglas.freenode.net (Nick collision)).
17:06:18 -!- jix_ has joined.
17:06:36 -!- jix_ has changed nick to jix.
19:03:05 <Asztal> !bf_txtgen ACTION tests
19:03:35 <Asztal> <_<
19:03:41 <EgoBot> 115 +++++++++++++[>+++++>++++++>+++++++++>++<<<<-]>.++.>++++++.<++++++.++++++.-.>>>++++++.<-.<+++++++++++++++++.>-.+.-. [885]
19:07:03 <oerjan> !bf +++++++++++++[>+++++>++++++>+++++++++>++<<<<-]+.>.++.>++++++.<++++++.++++++.-.<.>>>>++++++.<-.<+++++++++++++++++.>-.+.-.
19:07:05 <EgoBot> <CTCP>ACTION<CTCP> tests
19:07:38 <oerjan> oh
19:07:45 <pikhq> Do it again, and it'll work.
19:07:48 <Asztal> well, I was going to add ASCII 001 to the start and end, and see if it did a CTCP action
19:07:54 <Asztal> !bf +.++++++++++++[>+++++>++++++>+++++++++>++<<<<-]>.++.>++++++.<++++++.++++++.-.>>>++++++.<-.<+++++++++++++++++.>-.+.-.[-]+.
19:07:57 * EgoBot tests
19:08:17 <pikhq> It's an issue with EgoBot's buffering; the first time it sends a CTCP, it fails.
19:08:18 <oerjan> so did i except i forgot the "tests" should also be inside
19:08:42 <pikhq> . . . Ah.
19:12:47 <oerjan> !bf_txtgen <CTCP>ACTION tests again<CTCP>
19:13:37 <oerjan> !ps
19:13:41 <EgoBot> 1 oerjan: bf_txtgen
19:13:43 <EgoBot> 2 oerjan: ps
19:13:45 -!- puzzlet has joined.
19:13:47 <EgoBot> 169 +++++++++++++[>>+++++++++>+++++>++<<<<-]>+.>>.++.+++++++++++++++++.-----------.++++++.-.>++++++.<<-.>+++++++++++++++++++++++.<-.+.-.>>.<----.<------------.>.<++.+++++.<. [744]
19:13:57 <oerjan> !bf +++++++++++++[>>+++++++++>+++++>++<<<<-]>+.>>.++.+++++++++++++++++.-----------.++++++.-.>++++++.<<-.>+++++++++++++++++++++++.<-.+.-.>>.<----.<------------.>.<++.+++++.<.
19:14:01 * EgoBot tests again
19:31:08 -!- puzzlet_ has quit (Read error: 110 (Connection timed out)).
20:05:44 -!- ehird` has joined.
20:07:14 -!- boily has joined.
20:18:52 -!- oerjan has quit ("Good night").
20:18:52 -!- boily has quit ("Lunch").
21:02:05 <bsmntbombdood> i want to try ubermans again but i need a better way to keep on it
21:07:34 <ehird`> I wonder... if we all banded together, would it be possible to make a language that's so massively massive and convoluted (like intercal *= googolplex intercals or something) that we need an entire Hello World Development Sub-Comittee deciding which output function we should use?
21:23:43 -!- c|p has joined.
21:25:55 <bsmntbombdood> try per
21:25:56 <bsmntbombdood> l
21:26:06 <ehird`> hah!
21:26:10 <ehird`> no but seriously. :)
21:48:27 -!- jix has quit ("CommandQ").
22:08:36 <Asztal> well, there's malbolge... although it's more of a turing tarpit-type thing
22:08:55 <lament> ehird`: that _does_ sound like perl.
22:09:00 <SimonRC> _Contact_ FTW!
22:09:11 <bsmntbombdood> contact?
22:10:28 <SimonRC> no, _Contact_
22:10:36 <bsmntbombdood> contact?
22:10:42 <SimonRC> gah!
22:10:48 <SimonRC> no, _Contact_
22:10:55 <SimonRC> notice the underlining
22:11:02 <bsmntbombdood> what's contact?
22:11:37 <SimonRC> The underlining indicates it is the title of an artwork, piece of fiction, film, or similar
22:38:00 -!- ehird` has quit.
23:33:01 -!- sebbu has quit ("@+").
2007-06-07
00:12:23 <mee> I thought you were supposed to use /italics/ for that, where available. :)
00:13:34 <bsmntbombdood> or just plain text
01:09:05 -!- c|p has quit ("Leaving").
01:14:21 <erider> http://retroforth.com/paste/?id=420
02:00:12 <bsmntbombdood> zomg 420
02:03:17 <SimonRC> hmm
02:03:37 <SimonRC> MS are trying to be Google: http://slashdot.org/articles/07/06/06/1848214.shtml
02:04:02 <SimonRC> I initially just assumed that it was Google that did this when I saw the video
02:04:37 <bsmntbombdood> google is becoming evil
02:04:38 <SimonRC> The app really needs that cool multi-touch screen though.
02:07:03 <bsmntbombdood> photo zooming, wow
02:07:19 <SimonRC> no, wait until he gets to the Notre Dame bit
02:09:19 <bsmntbombdood> hmm
02:10:21 <bsmntbombdood> i wonder how they put all the pictures together
02:21:14 <SimonRC> I think that was the main thing that the software did.
02:21:28 <bsmntbombdood> ...yeah
02:30:33 <SimonRC> zzzz
02:58:16 -!- mee has left (?).
03:53:30 -!- erider has quit ("I don't sleep because sleep is the cousin of death!").
04:29:57 -!- erider has joined.
04:31:12 <bsmntbombdood> 1, 11, 21, 1211, 111221, 312211, 13112221, 1113213211, 31131211131211, 13211311131221
04:32:40 <Asztal> 11131221133113112211
04:32:57 <bsmntbombdood> yes
04:39:00 <pikhq> Interesting program.
04:39:03 <pikhq> :p
04:43:32 -!- boily has joined.
04:45:00 <Asztal> I wonder at what rate the sequence expands
04:48:25 <bsmntbombdood> 11131221133112132113212221
04:48:32 <bsmntbombdood> 3113112221232112111312211312113211
04:48:38 <bsmntbombdood> 1321132132111213122112311311222113111221131221
04:48:42 <erider> any scheme users here
04:48:47 <bsmntbombdood> 11131221131211131231121113112221121321132132211331222113112211
04:48:56 <bsmntbombdood> 311311222113111231131112132112311321322112111312211312111322212311322113212221
04:49:26 <bsmntbombdood> faster than exponential, looks like
04:50:53 <bsmntbombdood> and it looks like the digits don't go above 3
04:51:19 <boily> you can't go above three
04:52:08 <bsmntbombdood> why not?
04:52:53 <boily> because, for example, to get a 4 you need something like 1111, 2222, ...
04:53:27 <boily> 1111 refers, in the precedent step, to 11, which normally is written 21 in the next step
04:53:27 <bsmntbombdood> yes
04:53:36 <bsmntbombdood> and why can't there be 111 ones?
04:53:44 <boily> oh
04:53:47 <boily> umm...
04:55:22 <Asztal> http://en.wikipedia.org/wiki/Conway_sequence
04:55:33 <Asztal> his starts with a 3, though.
04:56:02 <Asztal> actually, http://en.wikipedia.org/wiki/Look_and_say_sequence
04:56:42 -!- GregorR-L has joined.
04:56:48 <bsmntbombdood> bah, i'm never the first one to think of it
04:58:06 <bsmntbombdood> lol @ the polynomial on that page
04:58:54 <Asztal> funny how something that complex comes from a simple sequence (or, a simple to generate sequence)
04:58:58 * pikhq hails the EgoBot lord
04:58:59 <pikhq> :p
04:59:26 <boily> wooo... this polinomial scares me
05:02:18 <Asztal> 1, 11, 101, 111011, 11110101, erm
05:02:27 -!- puzzlet_ has joined.
05:19:39 -!- puzzlet has quit (Read error: 110 (Connection timed out)).
05:20:19 <bsmntbombdood> 100110111011
05:20:27 <bsmntbombdood> 111001011011110101
05:20:37 <bsmntbombdood> 111100111010110100110111011
05:20:53 <bsmntbombdood> 100110011110111010110111001011011110101
05:22:13 <GregorR-L> GET YOUR BINARY OUT OF HERE
05:22:14 <GregorR-L> BITCH
05:22:16 <GregorR-L> I mean hi.
05:25:46 <Asztal> probably wasn't a good idea to set ruby going with this, as it's now consuming about 20MB per second
05:27:14 <Asztal> yes, I definitely don't have 1.89770965081337e+030 bytes of RAM :(
05:27:53 <bsmntbombdood> why would you need that much?
05:28:48 <Asztal> because I was doing it the silly way, i.e. keeping it all in memory at once
05:29:34 <Asztal> I think you should be able to calculate the length recursively if you give it a depth
05:29:54 <bsmntbombdood> huh?
05:30:41 <Asztal> I was calculating the rate of growth of the 1, 11, 21, 1211 sequence.. in a very dumb way (and doing 250 iterations) :)
05:32:43 <bsmntbombdood> iterations?
05:33:24 <Asztal> I was thinking of 1 -> 11 as one iteration
05:47:14 <pikhq> Gregor, I was just randomly running strings on cplofc. . . And I'm wondering: how the *hell* did "Hello, world!" get into there?
05:49:16 <pikhq> http://www.acm.org/classics/sep95/ Did you happen to pull this trick off?
05:52:59 <bsmntbombdood> that would be awesome
05:53:30 <pikhq> It's not a *horribly* difficult trick. . .
05:53:52 <pikhq> Whee bit tricky when you've got two implementations that your self-hosting compiler can run on, though. ;)
05:54:10 <pikhq> . . . Oh, shit. Dplof is written in D, and Gregor is a major D developer. . .
05:54:11 <pikhq> :p
05:54:46 <pikhq> Although that seems like a bit of excessive work for sticking "Hello, world!" in something.
05:55:14 <bsmntbombdood> the putting it in the compiler you're compiling is the tricky part
05:55:51 <pikhq> Not really. Once you've got a self-hosting compiler, you add in a pattern matching function or two, then compile, remove, distribute binaries.
05:56:45 <pikhq> There's a few problems with this approach, of course. . . The source could change enough to break the pattern matching being the most obvious.
05:57:13 <bsmntbombdood> it would be better if you could put it in other compilers
05:57:40 <pikhq> Why not.
05:57:53 <pikhq> You just add another pattern matcher to match a specific compiler.
05:58:14 <bsmntbombdood> in compilers you don't know about
05:59:01 <pikhq> That's impossible, unless you can somehow match any function which could *possibly* result in valid machine code.
05:59:23 <bsmntbombdood> that's why i said it was tricky
05:59:33 <pikhq> The main problem with *that* being that, odds are, your compiler would break every binary, and it'd be noticed.
06:27:42 -!- boily has quit ("WeeChat 0.2.4").
06:49:22 -!- oerjan has joined.
06:57:32 <GregorR-L> pikhq: You should've said "GregorR-L", so I'd recognize that you'd messaged me :P
06:58:33 <GregorR-L> pikhq: And that's from some tests compiled into fileio.plof
06:58:38 -!- GreaseMonkey has joined.
07:00:13 -!- sp3tt has quit (Remote closed the connection).
07:00:18 -!- sp3tt has joined.
07:02:43 <pikhq> GregorR-L: Ah.
07:03:18 <pikhq> I still wouldn't put Trusting Trust past you. ;)
07:03:47 <bsmntbombdood> i want to invent a language so i can do that
07:04:33 <pikhq> bsmntbombdood: Screw that. Stick it in a Brainfuck compiler. . .
07:04:50 <pikhq> Hmm. I should do that to Pfuck. :p
07:04:55 <oerjan> but Trusting Trust only works properly if the language is self-hosting
07:05:01 <bsmntbombdood> no one compiles login with a bf compiler
07:05:48 <pikhq> And Brainfuck self-hosts.
07:06:50 <oerjan> clarification: the best compiler for the language must be yours, and self-hosting
07:07:09 <bsmntbombdood> right
07:07:14 <pikhq> Obviously, you should get it into GCC.
07:07:25 <GreaseMonkey> hmm, there's plenty of BF self-compilers out there
07:07:57 <GregorR-L> Especially if your target is BF :P
07:07:58 <pikhq> Preferably into one of the RTL optimisation passes. You could even leave the code *in* and nobody would notice it there!
07:08:18 <oerjan> :D
07:09:12 <oerjan> was it here someone mentioned a backdoor in the linux kernel that was designed to look like a simple typo?
07:09:55 <bsmntbombdood> i have can't hair all over me
07:10:15 <pikhq> There's another good place to put one. . .
07:10:22 <oerjan> no parse
07:10:23 <pikhq> Except, of course, that GCC is used on more archs.
07:10:41 <pikhq> GCC is, after all, the #1 compiler on everything but Windows.
07:10:53 <GreaseMonkey> yah
07:11:01 <GreaseMonkey> the #1 compiler on Windows is "
07:11:02 <GreaseMonkey> "
07:11:06 <GreaseMonkey> the #1 compiler on Windows is "don't bother"
07:11:07 <bsmntbombdood> vc++
07:11:14 <pikhq> (I of course refer to popularity, not quality. VC++: EWW.)
07:11:22 <bsmntbombdood> yes
07:11:34 <GreaseMonkey> c compilers are crap under windows
07:11:59 <GregorR-L> http://www.youtube.com/watch?v=xiKwErpPwMs
07:12:10 <GregorR-L> (On the subject of Microsoft :P)
07:12:28 <Asztal> VC8's not all that bad.
07:13:23 <pikhq> Not entirely.
07:13:36 <pikhq> GCC is a good C compiler for Windows, after all.
07:16:55 <pikhq> GregorR-L: You, uh, do realise that Windows 1.0 had a (craptastic) color GUI, not just B&W, right?
07:17:43 <GregorR-L> I didn't make that.
07:17:45 <GregorR-L> Microsoft did.
07:17:58 <GregorR-L> Don't ask me why they didn't use Windows' glorious pastel.
07:18:02 <pikhq> Ah.
07:18:20 <pikhq> That's a craptastic OS.
07:18:38 <GregorR-L> You could've read the description before asking that X-P
07:18:49 <pikhq> Too much work.
07:21:11 * pikhq really goes into uncontrollable laughter when comparing the capabilities of those POS machines and a UNIX box. . . (fine, so we're comparing tricycles to Ferraris. . . Still.)
07:22:00 <bsmntbombdood> that was in the movie?
07:22:30 <pikhq> No, Unix vs. Windows wasn't.
07:37:25 <bsmntbombdood> I need a language to invent
07:37:53 <pikhq> Invent Plof 0.1
07:39:49 <GreaseMonkey> but call it Flop just to avoid issues
07:40:02 <pikhq> Of course.
07:40:32 <pikhq> Be sure to wrap it up in sexps, and perhaps replace the typing system.
07:42:06 <bsmntbombdood> sexp++
07:42:26 <bsmntbombdood> i mean
07:42:36 <bsmntbombdood> (set! sexp (+ sexp 1))
07:42:47 <pikhq> Obviously, you want:
07:42:56 <bsmntbombdood> or (incf sexp)
07:43:20 <pikhq> (set! (int sexp) (int (+ (int sexp) (int 1))))
07:43:32 <pikhq> Yay, overdoing type systems!
07:43:36 <bsmntbombdood> why would i do that?
07:44:04 <pikhq> Because a language must be worthy of the term "WTF" before it can be a language. :p
07:44:19 <GreaseMonkey> that sounds pretty sexp to me
07:45:03 * oerjan updates wikipedia's Look and Say Sequence article to mention Conway's "elements".
07:46:06 <GreaseMonkey> sexp!4++;
07:46:08 <oerjan> they are really the key to understand why the polynomial arises, although i don't explain _that_.
07:52:31 <oerjan> apparently you can do something similar but much easier with the binary version (easier because every 0 ends an "atom")
07:53:10 <GreaseMonkey> hehe, zero-terminated arbitrary numbers :D
07:53:23 <oerjan> i mean, every 0 followed by a 1
07:54:05 <GreaseMonkey> Quick, dial 11111111101010!
07:54:52 <oerjan> fibonacci numbers are also self-terminating i think, but more efficient
07:55:07 <oerjan> *fibonacci base
07:56:03 <oerjan> er, i mean you just add a 1 at the end
07:56:14 <oerjan> because 11 doesn't occur internally
07:57:08 <GreaseMonkey> gonna get off now for food, cya
07:57:51 -!- GreaseMonkey has quit ("I'm the world's fastest idiot!").
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:04:16 -!- bsmntbombdood has quit (Remote closed the connection).
08:04:20 -!- bsmntbombdood has joined.
08:07:26 <pikhq> puts [set me::state $::human::states::sleepy]
08:08:00 <bsmntbombdood> [drink you coffee]
08:08:40 <pikhq> puts [expr {$::me::coffee == $::item::have}]
08:08:47 <pikhq> stdout: "FALSE"
08:09:12 <bsmntbombdood> stab your foot
08:44:12 <GregorR-L> stdio.StdOut.writeln("lawlehcoptah");
08:44:47 <bsmntbombdood> roflbrothel!!
09:59:39 -!- oerjan has quit ("leaving").
10:18:30 -!- GregorR-L has quit ("Leaving").
10:22:40 <GregorR> http://www.codu.org/cmh/
13:04:04 -!- Asztal has quit (":o").
13:48:21 -!- jix has joined.
15:14:50 -!- bobbens has quit ("Lost terminal").
15:36:10 <SimonRC> yay, democracy FTW! http://en.wikipedia.org/wiki/Cleanfeed_(content_blocking_system)
15:36:42 <SimonRC> Oh, BTW people, I managed a lucid dream.
15:36:43 <SimonRC> Yay!
15:36:54 <SimonRC> I didn't do anything sensible though.
15:37:20 <SimonRC> I just ran for a short time, then flew, then woke up due to high heart rate.
16:42:26 -!- sebbu has joined.
17:03:51 -!- crathman has joined.
17:06:11 <SimonRC> lol@BB!
17:06:17 <SimonRC> http://www.theregister.co.uk/2007/06/07/big_brother_eviction/
17:06:27 <SimonRC> woman says "nigger"; gets kicked out
17:44:36 <SimonRC> anyone here who hasn't seen this yet ought to: http://worsethanfailure.com/Articles/OMGWTF-Finalist-08-Universal-Calculator.aspx
17:44:49 <SimonRC> You just go WTF WTF WTF
17:47:42 <lament> that's beautiful
17:48:28 <SimonRC> did you try a multiplication?
17:48:55 <SimonRC> The little icon in the taskbar pops up a baloon to tell you it's finished!
18:03:31 -!- oerjan has joined.
18:31:06 <oklopol> <bsmntbombdood> 1, 11, 21, 1211, 111221, 312211, 13112221, 1113213211, 31131211131211, 13211311131221
18:31:06 <oklopol> <Asztal> 11131221133113112211
18:31:16 <oklopol> i'm pretty sure i'd never have figured that.
18:37:52 -!- crathman_ has joined.
18:38:31 -!- crathman_ has quit (Remote closed the connection).
18:40:25 -!- crathman has quit (Read error: 110 (Connection timed out)).
18:53:56 <SimonRC> oklopol: the trick is to have seen it before
18:54:41 <oerjan> heh
19:10:26 <oklopol> indeed, though i don't understand how i could be so blind
19:10:26 <oklopol> if you say it out loud, you can't miss it
19:10:26 <oklopol> unless retarded
19:10:26 <oklopol> why didn't i try that?
19:10:26 <oklopol> <- dumb
19:10:26 <oerjan> usually i think it is because you have some faulty assumption about what it must be
19:10:26 <oklopol> true, it looked familiar
19:10:26 <oklopol> it looked like one where you reverse the string
19:10:26 <oklopol> but, that had no relation, so i didn't get it
19:10:26 <oerjan> 01101001100101101001011001101001
19:10:26 <oerjan> ...
19:11:29 <lament> 22
19:12:02 <oklopol> hmm
19:12:04 <oerjan> huh?
19:12:35 <oklopol> now that i decoded that binary with python, i'm pretty sure one of the two of us failed miserably :<
19:12:36 <oerjan> (that's supposed to be the start of an infinite sequence of bits)
19:12:41 <oklopol> oh
19:12:49 <oklopol> then perhaps neither
19:16:31 <oerjan> (in a predictable pattern)
19:17:54 <lament> oerjan: that's a cute sequence
19:19:01 <lament> ...1001011001101001011010011001011001101001100101101001011001101001
19:19:33 <SimonRC> ah, yeah...
19:19:41 <SimonRC> that one
19:19:49 <SimonRC> I also invented that as a kid
19:20:12 <lament> repeatedly?
19:20:24 <SimonRC> huh?
19:20:35 -!- c|p has joined.
19:20:53 <SimonRC> The "also" applied to the "I" not the "invented".
19:22:50 <oerjan> lament: your sequence is wrong from index 65
19:23:22 <lament> probably typo
19:24:02 <oerjan> no, your bits are switch 0-1
19:24:08 <oerjan> *switched
19:24:46 <lament> oh, in that case your short sequence simply doesn't give enough information
19:24:53 <lament> here's mine, from the beginning:
19:24:55 <lament> 0110100110010110100101100110100110010110011010010110100110010110100101100110100101101001100101100110100110010110100101100110100110010110011010010110100110010110011010011001011010010110011010010110100110010110100101100110100110010110011010010110100110010110
19:24:59 <lament> etc
19:25:04 <lament> (no typos)
19:25:45 <lament> now, if my sequence has a simpler generating rule, i win :)
19:26:19 <oerjan> that one was correct, you must have made a cut/paste error in the first
19:26:24 <lament> oh, okay.
19:27:14 <lament> i suppose it's a nature of this sequence that a cut-paste error leads to effects like "all bits being reversed"
19:27:49 <oerjan> indeed
19:29:06 <oerjan> btw it's called the Morse-Thue sequence
19:34:35 <SimonRC> let { foo = "0" ++ (tail $ concat [if c == '0' then "01" else "10" | c <- foo]) } in foo
19:35:38 <SimonRC> OTOH, I think there is a log-space stream generator
19:36:30 <oerjan> i suppose, based on something like the parity definition in the MathWorld article
19:36:57 <oerjan> http://mathworld.wolfram.com/Thue-MorseSequence.html
19:40:12 <lament> SimonRC: that's not my rule...
19:40:38 -!- mangatiga has joined.
19:40:49 <oerjan> let parity 0 = 0; parity n = (parity (n `div` 2) + n `mod` 2) `mod` 2 in concatMap show $ map parity [0..]
19:41:05 <lament> wow
19:41:11 <lament> those rules are way too complex.
19:41:28 <oerjan> that one is log-space i hope
19:41:56 <lament> my rule: start with '01'
19:42:19 <lament> then take the existing string, split it into two equal halves, swap them and put the result after the existing string.
19:42:37 <lament> each operation grows the string by a factor of 2.
19:42:53 <oerjan> there are several ways of producing this :)
19:43:03 <lament> i like mine :)
19:44:15 <oerjan> (well maybe the parity function is not quite logspace as written)
19:44:33 <oerjan> i mean linear
19:44:39 <lament> not only my method is the best but the mathworld page doesn't mention it
19:44:50 <lament> or maybe i just don't notice it there.
19:46:35 <oerjan> your method corresponds to the substitution method done inside out
19:48:10 <oerjan> as in, assuming the two halves were generated from 0 and 1 respectively, what would the next step 0110 generate
19:49:46 <lament> but the two halves weren't generated from anything
19:51:02 <oklopol> <oerjan> 01101001100101101001011001101001 << this one i actually cracked! :)
19:51:07 <oerjan> another way, but which can only create every other step: if s is your string, use s ++ reverse s ++ reverse s ++ s
19:51:56 <oerjan> oklopol: good :)
19:51:58 <lament> yeah.
19:52:16 <oerjan> only works for the assymetric steps
19:53:22 <oerjan> lament: the two halves would be what the substitution method generates in n steps, it is a way of deriving your method from the substitution method
19:54:06 -!- GregorR-L has joined.
20:03:13 <SimonRC> I just tested (for the first time) my library for non-Euclidean game terrain.
20:05:08 <oerjan> hideously non-Euclidean?
20:05:22 <GregorR-L> http://www.choosemyhat.com/
20:06:41 <oerjan> you actually bought that domain? o_O
20:09:40 <oklopol> those are cheap
20:10:10 <oklopol> we bought a .fi, and even that was < 100
20:18:55 <bsmntbombdood> non-euclidean?
20:22:55 <GregorR-L> oklopol: <100 whats?
20:25:54 <fizzie> Err, I'd say <<100, not just <100. .fi domains are 48 EUR per three years, which means 16 EUR/year. Not as cheap as com/net/org, but still.
20:34:48 <bsmntbombdood> h-t-t-p-colon-slash-slash-slash-dot-dot-org
20:34:48 <SimonRC> oerjan: yes, hideously
20:34:48 <SimonRC> You can even have flips, giving a set-up like a Möbeus strip
20:34:48 <SimonRC> but each rectangular patch of terrain must only connect to each other patch in one way, and never to itself, so some really twisted things can't be done.
20:35:34 <SimonRC> i.e. you have a graph of blocks of terrain
20:37:14 <bsmntbombdood> vim has cool undo
20:40:54 <oerjan> bsmntbombdood: if you delete something, write something else and then discover you didn't want to delete anyhow, you can undo, yank what you deleted, redo what you wrote, then paste
20:41:32 <bsmntbombdood> is there a special way to yank what you deleted?
20:41:44 <oerjan> no, just ordinary yank
20:42:40 <oerjan> of course if the original delete was with a single command you may still have it in the yank buffer automatically
20:43:20 <oerjan> er, i vaguely recall that there are rotating yank buffers as well
20:45:10 <oklopol> <GregorR-L> oklopol: <100 whats? <<< cash tokens.
20:46:30 <oerjan> right, the numbered registers
21:00:08 <bsmntbombdood> me is just learning
21:00:43 <oklopol> does a stack based copy paste exist in any form?
21:01:52 <oerjan> the registers 1-9 behave as a stack
21:02:13 <oerjan> not very deep...
21:03:22 <bsmntbombdood> popping pastes wouldn't be very usefull, because you could only paste once
21:04:48 <oerjan> right, behave as a stack on pushing. on pasting you use "1p - "9p, i suppose
21:04:58 <bsmntbombdood> yeah
21:05:42 <oklopol> you could have top and pop separate
21:06:30 <oklopol> okloOS has this a native feature, it's very great in my head, though i'm not sure if it'll look exactly like that when i implement it...
21:06:36 <oklopol> i mean, overall
21:06:44 <oklopol> hmm
21:06:58 <oklopol> context switch
21:07:00 <oklopol> ->
21:40:52 -!- oerjan has quit ("Good night").
21:52:23 -!- jix has quit ("CommandQ").
22:00:16 -!- GregorR-L has quit (Read error: 110 (Connection timed out)).
22:29:00 -!- c|p has quit ("Leaving").
23:05:27 <bsmntbombdood> all the binary LaSS numbers are odd
23:06:43 <bsmntbombdood> actually, the LaSS numbers in any base are odd
23:07:23 <lament> how can a number be odd in any base?
23:07:32 <lament> oh wait
23:07:37 <lament> what does that even mean?
23:07:51 <lament> what does "odd in base n" mean?
23:08:06 <bsmntbombdood> odd means not divisble by 2
23:08:19 <lament> right
23:08:24 <lament> so it doesn't depend on the base...
23:09:08 <bsmntbombdood> the LaSS numbers do depend on base
23:10:37 <bsmntbombdood> err, not base 3
23:17:12 -!- c|p has joined.
23:18:26 <bsmntbombdood> err
23:21:47 <bsmntbombdood> not quite
23:22:51 <bsmntbombdood> the last digit is always theinitial value
23:26:21 -!- sebbu has quit ("@+").
23:36:11 -!- GregorR-L has joined.
23:38:21 -!- wooby has joined.
23:45:44 -!- wooby has quit.
2007-06-08
00:01:23 <GregorR-L> http://www.choosemyhat.com/ is now officially live
00:02:52 <oklopol> guess i'll design you a schedule then
00:03:46 * oklopol chooses the boring ones to leave the good stuff for later
00:04:45 <oklopol> now back to my ...thing ->
00:04:59 <bsmntbombdood> i has no thing
00:56:11 <oklopol> i hate writing long stories, i can't handle complex plots and i have a very intense imagination: very bad combination
00:57:25 <oklopol> long == 15 pages or more for me, i usually write even shorter ones.
01:21:08 -!- RodgerTheGreat has joined.
01:21:27 <RodgerTheGreat> how's it going, everyone?
01:21:43 <oklopol> well, well
01:21:54 <RodgerTheGreat> hi, oklopol
01:21:59 <oklopol> hiii
01:22:51 * oklopol is writing a story about a bunch of lunatics that are soon to be killed
01:23:29 <RodgerTheGreat> sounds somewhat interesting
01:23:42 <RodgerTheGreat> what inspired your literary efforts?
01:24:59 <oklopol> www.vjn.fi <<< i'm a month behind
01:25:29 <oklopol> my 1½ week trip to germany killed our article-per-day project for a while, i'm catching up now :)
01:26:14 <RodgerTheGreat> haha
01:26:17 <oklopol> we started right after last summer, there's also another almost 3 month gap because of pure laziness
01:26:46 <oklopol> we had a group of 5 ppl deciding each writes 1-2 articles a week
01:26:54 <RodgerTheGreat> I've been spending the summer doing some coding on an RPG game engine- do you have a java plugin for your browser?
01:26:59 <oklopol> but turned out only 2 of us would actually write anything :)
01:27:11 <oklopol> i might.
01:27:14 <oklopol> ::)
01:28:25 <RodgerTheGreat> well, if you in fact do, take a gander at the demo I have online at the moment: http://rodger.nonlogic.org/games/CRPG/
01:28:41 <RodgerTheGreat> some aspects of it (like going through doors) are buggy, but it's a work in progress.
01:28:49 <RodgerTheGreat> many interesting things work well already
01:30:33 <oklopol> i guess i'm installing a plugin now
01:30:46 <RodgerTheGreat> haha- ok, then
01:30:56 <oklopol> or downloading something completely irrelevant, we'll see in a minute
01:31:15 <oklopol> what's a .bin? :)
01:31:23 * RodgerTheGreat shrugs
01:31:30 <oklopol> oh
01:31:38 <oklopol> i assumed it's something everyone knows
01:33:20 <RodgerTheGreat> possibly a binary file of some kind?
01:33:26 <oklopol> possibly.
01:33:32 <oklopol> i wonder what to do with it...
01:33:41 <oklopol> why can't programs install themselves...
01:33:43 <oklopol> :<
01:34:03 <bsmntbombdood> long time no see, RodgerTheGreat
01:34:50 <bsmntbombdood> GregorR-L: oh no you have a tie for tommorow
01:34:51 <GregorR-L> Is it next to a .cue?
01:34:59 <RodgerTheGreat> hi, bsmntbombdood
01:35:03 <GregorR-L> bsmntbombdood: Read the FAQ :P
01:35:06 <GregorR-L> bsmntbombdood: I am the tiebreaker.
01:35:14 <erider> hi all
01:35:20 <bsmntbombdood> i would hope so
01:36:14 <GregorR-L> oklopol: Is it next to a .cue file?
01:36:31 <oklopol> errrr no
01:36:42 <GregorR-L> Then it's a binary of some kind :P
01:38:01 <oklopol> hmm.... there was, like, this button that said "install plugin"... so i pressed it (even though it didn't blink) and it said something about not being able to do something and i have to do something manually and i found myself on a page with linux penguins and a list of files ot dl
01:38:13 <oklopol> so... naturally i clicked on a random link
01:38:47 <RodgerTheGreat> lol
01:38:50 <oklopol> i'm pretty sure you can advise me based on that.
01:38:52 <oklopol> :)
01:38:56 <oklopol> okay, coffee time...
01:39:11 <GregorR-L> Then it's probably a binary.
01:39:19 <GregorR-L> chmod 0755 it, run it, and watch it reformat your hard disk.
01:39:49 <GregorR-L> Also, if that's the flash player, just use the RPM (+alien on non-RPM platforms)
01:41:05 <RodgerTheGreat> oklopol: what linux distro do you run?
01:41:07 <oklopol> chmod 0755?
01:41:09 <oklopol> ubuntu.
01:41:23 <oklopol> and i have no idea about _anything_
01:41:56 <pikhq> n00b?
01:42:03 <oklopol> yes.
01:42:32 <oklopol> in pretty much anything regarding software someone other than me created
01:42:37 <bsmntbombdood> GregorR-L: this could be big
01:42:58 <RodgerTheGreat> oklopol: this may solve your problem: http://linux.about.com/od/ubuntu_doc/a/ubudg22t8.htm
01:43:49 <GregorR-L> bsmntbombdood: digg it :P
01:44:03 <bsmntbombdood> oooh good plan
01:44:15 <GregorR-L> bsmntbombdood: I'll add a "digg this" button if you give me the HTML.
01:44:18 <GregorR-L> I don't have a fegging clue with digg.
01:44:19 <bsmntbombdood> except i am not able
01:44:22 <GregorR-L> X-P
01:44:25 <bsmntbombdood> me neither :)
01:44:51 <oklopol> RodgerTheGreat: i might have a faint idea what it says there... but let's not get our hopes up
01:44:55 * oklopol tries
01:46:28 <oklopol> oaky, too hard.
01:46:45 <oklopol> i should install a brain first
01:49:13 <oklopol> but that'd be like dl'ing winzip in a .zip-file
01:49:15 <oklopol> of course
01:49:38 <oklopol> (real-life example)
01:53:41 <pikhq> It's almost like having GCC in C, or tar in a tarball, or Make with a Makefile. . .
01:54:09 <oklopol> yes, but are those ever officially distributed like that? :)
01:54:21 <pikhq> Um, yeah.
01:54:23 <bsmntbombdood> gcc
01:54:31 <oklopol> oh :|
01:54:34 <bsmntbombdood> and tar
01:54:38 <oklopol> i guess that's sensible in some way
01:54:44 <pikhq> GNU Make actually depends upon Make, automake, autoconf, etc.
01:54:44 <bsmntbombdood> and make, probably
01:54:47 <oklopol> though i don't know the way
01:54:49 <GregorR-L> GCC is in C, tar is in a tarball but also has a sharball, and make is distributed with an sh script as well.
01:55:20 <pikhq> Of course, if you don't *have* those, the method of installation you have remaining involves bootstrapping a build environment. . .
01:55:26 <pikhq> GregorR-L: Oh, make has a .sh? Didn't know that.\
01:55:44 <pikhq> Likewise, didn't know that tar had a shar of it.
01:55:59 <GregorR-L> http://ftp.gnu.org/gnu/tar/tar-1.16.1.shar.gz
01:55:59 <oklopol> i don't know about those, but at some point winzip was ONLY distributed in .zip-format on the official page
01:56:14 <GregorR-L> There's a non-gzipped version of that too :P
01:56:14 <oklopol> i had to install pkunzip to get it open
01:56:20 <pikhq> What's the point of a *compressed* shar? If you don't have tar, you probably don't hbave gzip. . .
01:56:25 <pikhq> Oh, I stand corrected.
01:56:43 <pikhq> At that point, you do depend upon the shell. . . But if you don't have bash, you're kind of screwed. ;)
01:56:48 <GregorR-L> Heh
01:56:59 <bsmntbombdood> yeah, how do you make bash? :P
01:57:09 <pikhq> bsmntbombdood: Bootstrap the system.
01:57:29 <bsmntbombdood> what do you mean?
01:57:49 <pikhq> I mean, compile the whole OS from scratch.
01:58:04 <pikhq> Honestly, if you don't have a *shell*, you don't exactly *have* an OS. . .
01:58:49 <pikhq> Hmm. There's not an uncompressed shar of tar that I can find on ftp.gnu.org
01:59:05 <bsmntbombdood> how do you compile the os without making gcc?
01:59:17 <pikhq> That is, not the latest.
01:59:58 <GregorR-L> http://ftp.gnu.org/gnu/tar/tar-1.13.shar
02:00:00 <GregorR-L> Oh
02:00:03 <GregorR-L> Right, not the latest.
02:00:39 <pikhq> bsmntbombdood: Well, at *that* point, you either use a boot disc to build your toolchain, or (if you're making the toolchain for an arch that doesn't have any one yet) you write by hand a basic C compiler in assembly.
02:00:55 <pikhq> (although you'd be best off just making a damned cross-compiler)
02:00:55 <bsmntbombdood> how do you make the assembler?
02:01:15 <pikhq> You make it on a different computer.
02:01:21 <GregorR-L> In hex.
02:01:23 <pikhq> One which *has* a tool-chain.
02:01:29 <bsmntbombdood> how do you make it on that one?
02:01:40 <pikhq> Since it has a tool-chain, you can just use C.
02:01:41 <oklopol> haha
02:01:47 <GregorR-L> The absolute, basic bootstrapping occurred decades ago. Now, everything has been bootstrapped.
02:02:05 <pikhq> Now it's a matter of just doing bootstrapping from a different working system.
02:02:40 <pikhq> If you *insist* on doing the basic bootstrapping, you need to start with a system where you can input the individual bits yourself, and go up from there.
02:03:02 <oklopol> hmph, GregorR-L prevented further "why" trolling quite meanly :<
02:03:30 <GregorR-L> ?
02:03:34 * pikhq thinks. . . Perhaps a ROM-chip emulator with a few thousand toggle switches and the Intel docs?
02:03:51 <bsmntbombdood> you can't input bits without an os on any arch i know
02:03:58 <pikhq> bsmntbombdood: Toggle switches.
02:04:27 <oklopol> GregorR-L: it was a nop.
02:04:32 <oklopol> forget it
02:04:36 <oklopol> me continue ->
02:04:44 <bsmntbombdood> pikhq: they need drivers
02:04:47 <pikhq> Hell, if you don't want to get your x86 board to accept toggle switches, *obviously* you go ahead and get an older PDP-11.
02:05:04 <bsmntbombdood> you know where i can get one of those?
02:05:23 <pikhq> bsmntbombdood: What, attaching a bunch of toggle switches in a way that emulates the *initial* *boot* *ROM* requires drivers?
02:05:24 <GregorR-L> I swear I will kill you all :P
02:05:37 <GregorR-L> What if you're in a universe with no matter? How do you compile your GCC?
02:05:52 <pikhq> How the hell does a BIOS boot if you need drivers from the BIOS to boot the BIOS? ;)
02:06:00 <oklopol> what compiled the universe?
02:06:10 <pikhq> GregorR-L: Obviously you ask God.
02:06:43 <pikhq> And don't ask where God came from. God is the initial bootstrapper. ;)
02:06:45 <bsmntbombdood> my computer doesn't have to switches :(
02:06:49 <RodgerTheGreat> "LET THERE BE... oh, fuck. hold on, lemme find a repo with the packages I need for this thing..."
02:07:24 <pikhq> bsmntbombdood: Yeah. . . You get a good hardware designer to make you a circuit board for the several thousand switches needed.
02:08:30 <bsmntbombdood> or you could just use 2 switches and do it serially
02:08:37 <RodgerTheGreat> usually you just wire up a CPU to accept a byte at a time from switches and interrupts
02:08:51 <RodgerTheGreat> that's how altairs and ELFs did it.
02:08:51 <pikhq> True.
02:09:53 <RodgerTheGreat> or you could design some type of pegboard wire-crossing ROM thingy like they had on the EDSAC with a bootloader that can read in an OS from tape, which actually is a pretty convenient solution.
02:10:11 <pikhq> The obvious solution, though, is to write a C compiler in Brainfuck, get a friggin' huge notebook, and hand-run your C compiler, and then use that switch setup to set it up in your computer.
02:10:42 <GregorR-L> LOL
02:10:59 <RodgerTheGreat> fuck that- if I'm punching something into a computer via dipswitches, I'm damn well going to hand-optimize the code in machinecode.
02:11:17 <RodgerTheGreat> computer scientists were hardcore like that, back in the day.
02:11:26 <bsmntbombdood> it would be fun to do
02:11:27 <GregorR-L> Now they're all fucking pansies.
02:11:30 <pikhq> RodgerTheGreat: Fine, then. Get your IA-32 docs, and start hand-compiling that C code.
02:11:46 <oklopol> can't one say anything here without it resulting in a very sick conversation :)
02:12:03 <pikhq> And no, I'm not printing out the LFS source code for you.
02:12:10 <pikhq> Hire Kinko's to do it. :p
02:12:19 <RodgerTheGreat> C is worthless when your RAM wordcount is in the sub-1000 range and you brag about having a 40k drum memory.
02:12:21 <bsmntbombdood> LFS?
02:12:27 <pikhq> (*Or* you could buy a copy of Minix)
02:12:34 <pikhq> bsmntbombdood: Linux From Scratch.
02:12:38 <bsmntbombdood> oh
02:12:54 <pikhq> Minix, IIRC, has full annotated C code for it in the book.
02:12:56 <RodgerTheGreat> machinecode is where it's at with anything that uses mercury delay-line registers.
02:13:14 <bsmntbombdood> that was written with a computer, no fair using it
02:13:16 <pikhq> RodgerTheGreat: We were discussing bootstrapping on x86, last I checked.
02:13:49 <RodgerTheGreat> I'm discussing coding for an EDSAC.
02:14:26 * RodgerTheGreat laughs a bit at saying *an* EDSAC
02:14:30 <pikhq> Fine, if you care about it being written with a *computer*, I'll get you the blueprints for a Z1
02:14:36 <RodgerTheGreat> oh, sweet
02:14:51 <bsmntbombdood> hot damn http://en.wikipedia.org/wiki/Image:Mercury_memory.jpg
02:14:55 <RodgerTheGreat> I can see if raul rojas was really on to anything with his TC proof
02:15:00 <pikhq> Sorry. I'll give you a Z3.
02:15:03 <oklopol> i browsed through minix source code once, i wonder if anyone ever actually benefits from printed 300 pages of source...
02:15:11 <pikhq> The Z1 was just a floating point calculator; the Z3 was the TC one.
02:15:26 <RodgerTheGreat> ah, good- the memory is more reliable on the Z3, too- relays > pure mechanical
02:15:40 <RodgerTheGreat> the z1 had a lot of mechanical deadlock problems
02:16:04 <RodgerTheGreat> bsmntbombdood: like I said, computer scientists were hardcore back in the day.
02:16:05 <pikhq> Of course, I could also get you an Analytical Engine.
02:17:11 <RodgerTheGreat> the analytical engine had a rather unconventional means of flow control- it only expresses a vague programmability
02:17:30 <RodgerTheGreat> possibly TC, but I don't know.
02:18:40 <RodgerTheGreat> Tell you what- gimme a manchester Mark 1.
02:19:03 <bsmntbombdood> oh my, 64 22-bit words
02:19:20 <pikhq> The Analytical Engine is the *first* Turing complete design.
02:19:57 <bsmntbombdood> and only 100kg!
02:20:03 <bsmntbombdood> *1000kg
02:20:16 <oklopol> hmm... i wonder if bees get angry if you hit them with a book and they do not die
02:20:48 <pikhq> RodgerTheGreat: You sure you want a Mark 1?
02:20:52 <RodgerTheGreat> I'm fairly familiar with it, but the Z1 represents a much more... tangible... contribution to computation history. As Steve Jobs once said, "real artists ship".
02:21:14 <pikhq> The Mark 1's not even TC. . .
02:21:16 <RodgerTheGreat> pikhq: why not? It has *blazing* CRT-based RAM!
02:21:50 <bsmntbombdood> crt ram!?!
02:22:27 <pikhq> bsmntbombdood: Yeah; has to be refreshed periodically, so the bits don't go out of the phosphor.
02:22:43 <bsmntbombdood> how do you read it?
02:23:18 <pikhq> Obviously with a bunch of photoelectric cells.
02:24:22 <pikhq> http://en.wikipedia.org/wiki/Williams_tube Never mind; they read it differently.
02:24:26 <RodgerTheGreat> the nice thing about a mark 1 is that it consists of only a handful of racks, so it can be moved from place to place with a few trucks, fit through doors, and can be set up in an average sized room.
02:25:26 <bsmntbombdood> wonderful
02:25:30 <RodgerTheGreat> yeah
02:26:19 <RodgerTheGreat> pretty reasonable memory and storage capabilities, too
02:27:07 <RodgerTheGreat> the Z3 is a nice machine, but TC is very nontrivial and mechanically unfeasible, for the most part. A Z4 could be pretty cool, though.
02:27:13 <pikhq> The Z3 could be moved with just one truck-load, I think. . .
02:27:30 <RodgerTheGreat> mmm. relay-based computing makes me feel all warm inside.
02:27:33 <pikhq> A Z4 would take a few.
02:27:57 <bsmntbombdood> you could use relays for ram, no?
02:27:58 <RodgerTheGreat> the z1 and z3 are fairly compact, but too wide to fit through conventional doors, and difficult to disassemble.
02:28:13 <pikhq> bsmntbombdood: Certaintly.
02:28:22 <RodgerTheGreat> bsmntbombdood: that's what the z3 and z4 did.
02:28:34 <pikhq> All of the z3 and z4 is done in relays.
02:28:39 <bsmntbombdood> that's hot
02:28:51 <bsmntbombdood> probably literally
02:29:34 <RodgerTheGreat> and running programs gives a beautiful cascade of clicks
02:30:04 <bsmntbombdood> want
02:30:05 <RodgerTheGreat> wow- I hadn't heard of this russian beauty: http://en.wikipedia.org/wiki/Strela_computer
02:30:22 <bsmntbombdood> i want to build one now
02:30:28 * pikhq votes for building a z3 with solid-state relays, just to annoy Rodger. :p
02:30:29 <RodgerTheGreat> :3
02:30:40 <RodgerTheGreat> <:[
02:30:41 <bsmntbombdood> how much do you think 2000 relays cost?
02:30:49 <RodgerTheGreat> why are you so cruel, pikhq?
02:31:02 <RodgerTheGreat> bsmntbombdood: lots, unless you find a bulk supplier
02:31:12 <RodgerTheGreat> bsmntbombdood: z3 or z4?
02:31:18 <bsmntbombdood> neither
02:31:28 <RodgerTheGreat> oh, just a relay based computer?
02:31:32 <bsmntbombdood> yeah
02:31:34 <RodgerTheGreat> kewl beans
02:31:34 <pikhq> Or pick up relays from an *old* phone system. . .
02:31:48 <bsmntbombdood> we can design our own
02:32:18 <pikhq> True.
02:32:19 <GregorR-L> http://web.cecs.pdx.edu/~harry/Relay/
02:32:25 <RodgerTheGreat> we want to use small voltage ranges so that we can keep the machine small and the cost low.
02:32:50 <RodgerTheGreat> GregorR-L: I've seen that machine before- quite an accomplishment
02:33:01 <GregorR-L> pdx.edu == my school ;)
02:33:13 <pikhq> GregorR-L: Cheating. I see an IC.
02:33:19 <RodgerTheGreat> bsmntbombdood: I recommend designing some relay-based logic gates first, as practice
02:33:28 <bsmntbombdood> yeah :D
02:33:39 <RodgerTheGreat> pikhq: the IC is ram, which is actually what makes it awesome
02:33:59 <RodgerTheGreat> 32k = virtually limitless possibilities
02:34:49 <pikhq> So. . . RAM is IC, registers are relays, *and* the ALU is in relays?
02:34:52 <pikhq> Damn, that's sexy.
02:35:12 <RodgerTheGreat> I do concur. <3
02:35:20 <bsmntbombdood> IC = lame
02:35:23 <bsmntbombdood> we can do better
02:35:48 <RodgerTheGreat> bsmntbombdood: well, relays make RAM expensive and large. so we need an alternate solution...
02:36:03 <pikhq> bsmntbombdood: 32K of relay RAM?!?
02:36:07 <bsmntbombdood> don't trade awesomeness for practicality
02:36:20 <RodgerTheGreat> possibly punchcards or tape as a large storage base with only limited onboard RAM?
02:36:48 -!- c|p has quit (Remote closed the connection).
02:36:55 <bsmntbombdood> http://web.cecs.pdx.edu/~harry/Relay/SoundOfRelays.mp3
02:37:07 <RodgerTheGreat> if the program runs directly from tape (and is obviously in a loop that can halt), we could get away with a very small number of registers.
02:37:51 <RodgerTheGreat> I'm imagining something like a pure-relay version of the Z3 with a conditional jump-forward command.
02:38:12 <RodgerTheGreat> what do you guys think of that?
02:38:13 <bsmntbombdood> i'm going to see if i can figure out some basic gates
02:39:21 <RodgerTheGreat> probably throw in a true "halt" instruction too, so you don't have to rely on arithmetic exceptions.
02:40:20 <bsmntbombdood> what's Four-Pole-Double-Throw?
02:40:34 <RodgerTheGreat> erm
02:40:43 <RodgerTheGreat> do you know anything about switches?
02:40:53 <bsmntbombdood> the turn things on and off
02:41:00 <RodgerTheGreat> SPST = single pole, single throw.
02:41:19 <RodgerTheGreat> single pole means you're opening and closing one switch at a time, basically
02:41:33 <RodgerTheGreat> wait, I'm backwards
02:41:45 <RodgerTheGreat> single throw means one switch at at time.
02:42:00 <RodgerTheGreat> argh
02:42:21 <pikhq> Is it a bad sign when you fall in love with a machine?
02:42:32 <bsmntbombdood> no
02:42:34 <RodgerTheGreat> no. never. especially not when it has clicky bits.
02:42:56 <pikhq> Good. . .
02:43:04 <RodgerTheGreat> and if it's TC, you're only required to avoid making out with it in public.
02:43:13 <RodgerTheGreat> bsmntbombdood: http://en.wikipedia.org/wiki/Switch#Contact_arrangements
02:43:24 <pikhq> Fine, then. I'll be sure to get a room.
02:43:29 <bsmntbombdood> thanks
02:43:52 <pikhq> Although I don't think my girlfriend would appreciate me cheating on her. . .
02:44:09 <pikhq> Especially not when it's a clicky machine. . . :)
02:44:29 <GregorR-L> Looks like I'll be wearing my red fedora tomorrow.
02:44:50 <RodgerTheGreat> just tell her that if she wants to win you back she'll have to learn to talk dirty in machinecode.
02:44:52 <bsmntbombdood> so, Four-Pole-Double-Throw means it has 4 different SPDT switches?
02:45:04 <RodgerTheGreat> that are mechanically linked
02:45:05 <RodgerTheGreat> yes
02:45:17 <RodgerTheGreat> so, if one is ON, all are on.
02:45:26 <bsmntbombdood> right
02:45:29 <RodgerTheGreat> like how a DPST does it with two
02:45:31 <RodgerTheGreat> exactly
02:45:42 <pikhq> GregorR-L: You might want to check again.
02:46:30 <GregorR-L> Looks like I'm still wearing the red fedora :P
02:46:45 <RodgerTheGreat> have any of you guys read "The First Computers: History and Architectures"?
02:47:12 * pikhq does a vote-- on the fedora. :p
02:47:38 <RodgerTheGreat> it's one of my favorite books of all time, because not only does it discuss early machines, it often has schematics, specs, instruction sets and machinecode examples. :D
02:48:01 <RodgerTheGreat> and most of the articles are written by the people that *created* the machines in the first place
02:48:03 <GregorR-L> pikhq: By the way, I wore the Pakul on Wednesday, so I'm not wearing it on Friday even if it wins.
02:48:05 <pikhq> RodgerTheGreat: Oooooh. . . I need that.
02:48:29 <pikhq> GregorR-L: Yeah, yeah. . . Just messing with ya. ;)
02:48:52 <RodgerTheGreat> http://www.amazon.com/First-Computers-History-Architectures-History-Computing/dp/0262681374/ref=sr_1_22/102-0916127-5584141?ie=UTF8&s=books&qid=1181267279&sr=8-22 <- absolutely fucking awesome
02:49:26 <bsmntbombdood> NOT is easy, AND is easy
02:49:58 <RodgerTheGreat> XOR is a trick, but useful as hell
02:50:10 <GregorR-L> NAND and you wins.
02:50:11 <pikhq> Now you've got NAND, and I believe you can make every gate from NANDs.
02:50:19 <GregorR-L> That is truth.
02:50:21 <bsmntbombdood> yep
02:50:38 <bsmntbombdood> but it's much simpler to build the other gates too
02:50:44 <bsmntbombdood> s/simpler/more efficient/
02:50:46 <pikhq> Of course, creating that many NANDs could be painful for a relay-based system.
02:51:17 <RodgerTheGreat> and it's best that you optimize your NAND gate as a single circuit rather than tying a NOT to an AND
02:51:36 <pikhq> True.
02:51:50 <pikhq> The point is that you can, not that it's a good idea. ;)
02:52:08 <RodgerTheGreat> and when you get to actually implementing the system, always start with a truth table and simplify, simplify, simplify
02:52:22 <bsmntbombdood> how do you do xor?
02:52:27 <RodgerTheGreat> pikhq: yeah, I understand- your point was just about it in a theoretical sense
02:52:55 * pikhq used to have a list of gates done in NAND. . . I was bored in a computer class. Very bored.
02:53:00 <RodgerTheGreat> 1,1:0 1,0:1 0,1:1 0,0:0
02:53:03 <pikhq> This was, of course, before I learned Brainfuck.
02:53:16 <RodgerTheGreat> is that clear enough, bsmntbombdood?
02:53:36 <bsmntbombdood> i know what xor _is_
02:53:40 <RodgerTheGreat> lol
02:54:01 <RodgerTheGreat> if you're having trouble with it, see if you can figure out the inverse and then NOT it
02:54:06 <GregorR-L> The Tam just took a term for the better.
02:55:37 <GregorR-L> Erm
02:55:39 <GregorR-L> "turn"
02:56:07 <bsmntbombdood> oh, i got
02:56:14 <bsmntbombdood> it takes 3 relays though
02:56:15 <RodgerTheGreat> currently, the favorite books I have on my shelf are "Programming the IBM Personal Computer: BASIC", "The First Computers: History and Architectures", "Snow Crash", "The Salmon of Doubt" and "Understanding Comics"
02:56:58 <pikhq> I see you've got pretty good taste.
02:57:09 <RodgerTheGreat> (^ _ ^)
02:57:25 <bsmntbombdood> oh yeah? well i've got "The ibm personal computer made easy"
02:57:41 * pikhq needs to find his Apple II
02:57:51 <RodgerTheGreat> and I'm using a copy of "The C++ Programming Language" to hold up my monitor.
02:57:55 <pikhq> (ain't every day you find a 17 year old saying that)
02:59:01 <oklopol> * pikhq used to have a list of gates done in NAND. . . I was bored in a computer class. Very bored. <<< we do that stuff in the university \o/
02:59:06 <RodgerTheGreat> after about 20 pages of stroustrup creaming himself over the brilliance and elegance of his horrible little language, I gave up on that book and repurposed it.
03:00:27 <oklopol> (of course you might be there already)
03:00:27 <pikhq> oklopol: I'm in high school right now.
03:00:27 <pikhq> I did that my freshman year.
03:00:43 <bsmntbombdood> college is going to suck
03:00:44 <oklopol> my point was: we don't, not in the school
03:00:48 <RodgerTheGreat> I'm slowly getting to the point where university CS courses are teaching me new things. Freshman year was more or less a wash, but I did learn a few new ideas in Data Structures.
03:01:06 <bsmntbombdood> if i even get in
03:01:23 <pikhq> For me, my freshman year will probably be boring. . .
03:01:30 <RodgerTheGreat> Once I get "Software development in C/C++" out of the way I start being able to take the fun classes, which is why I'm taking it now during the summer.
03:01:39 <oklopol> i don't think i've learned anything but german and swedish in my whole school time
03:01:57 <RodgerTheGreat> pikhq: I'd highly recommend taking the AP CS test, even if your school doesn't offer it.
03:02:15 <RodgerTheGreat> Brush up on java for a few days and you can ace it no problem.
03:02:16 <pikhq> RodgerTheGreat: Yeah, I've been thinking about it.
03:02:17 <bsmntbombdood> the AP CS test is a joke
03:02:21 <GregorR-L> I'd highly recommend not taking the AP CS test.
03:02:26 <GregorR-L> Since no school accepts it.
03:02:36 <bsmntbombdood> I haven't taken it, but i've looked at it
03:02:39 <RodgerTheGreat> GregorR-L: MTU sure as hell did.
03:02:46 <pikhq> It'll largely depend upon whether or not my school of choice does take it. . .
03:03:06 <pikhq> If it doesn't, screw it. I'm not wasting my money, and I'm not tainting my brain with Java. ;)
03:03:33 <GregorR-L> I did the AP CS A test in C++, and the AP CS B test in Java.
03:03:37 <RodgerTheGreat> I sense fear that you will enjoy Java.
03:03:38 <GregorR-L> Because I'm brilliant that way.
03:03:57 <RodgerTheGreat> when I took it, everything was done in Java.
03:04:18 <GregorR-L> Presumably you took it more recently than I did
03:04:24 <RodgerTheGreat> I had about 2 weeks of java coding under my belt at the time and didn't know half a shit about OOP, and I still got a 5 on it.
03:04:26 <GregorR-L> They switched it over between when I took the two.
03:04:29 <RodgerTheGreat> this was about 2 years ago.
03:04:36 <pikhq> *Why* can't they still do C++?
03:04:50 <GregorR-L> pikhq: It's not proprietary enough :P
03:04:55 <bsmntbombdood> why can't the use a decent language?
03:04:57 <pikhq> GregorR-L: Nor is Java.
03:05:02 <RodgerTheGreat> pikhq: because over 80% of CS curricula in universities are based on Java.
03:05:08 <GregorR-L> (OK, I know, I'm not being fair, Java is now somewhat F/OSS)
03:05:13 <GregorR-L> PSU == C++ still 8-D
03:05:19 <bsmntbombdood> RodgerTheGreat: whhhhhhy
03:05:25 <pikhq> RodgerTheGreat: Then I'm lucky that the ones I've looked at are the 20% that aren't Java.
03:05:52 <pikhq> bsmntbombdood: Pain, agony, sorrow, not teaching malloc.
03:06:26 <bsmntbombdood> how can you not know manual memory allocation?
03:06:40 <pikhq> (to be fair, doing malloc and such the *right* way does take half a brain, which the average CS freshman doesn't have, if the course material is anything to judge by)
03:06:48 <pikhq> bsmntbombdood: Simple.
03:06:50 <RodgerTheGreat> because it's much, much more *consistent* than C or C++, for all it's faults. The vast majority of the work of learning C and C++ is learning all the "gotchas" and exceptions, rather than learning to program. In most CS courses, they're more concerned that you know how to conceptually use a linked list and manipulate it in algos than how to manage the memory behind it.
03:06:52 <pikhq> Use Java.
03:07:18 <bsmntbombdood> RodgerTheGreat: scheeeemeee
03:07:18 <GregorR-L> It's consistent because it's lacking.
03:07:36 <GregorR-L> Note that it's consistently getting less consistent ^^
03:07:46 <RodgerTheGreat> At MTU, we do what I feel is a pretty good balance of both worlds- all introductory courses use Java, then you're required to learn C and C++, and then you use whatever the hell you want.
03:08:10 * pikhq should look into MTU, just for the sake of doing Java->C->Brainfuck.
03:08:42 <RodgerTheGreat> GregorR-L: you could argue that the loss of consistency stems from the pressure of C coders that whine about lacking features like operator overloading.
03:08:47 <pikhq> And I have no idea why struct foo *Java has a member struct foo *C, nor do I know why struct foo *C has struct foo *Brainfuck.
03:08:57 <GregorR-L> RodgerTheGreat: That's C++ :P
03:09:01 <pikhq> RodgerTheGreat: C doesn't. ;)
03:09:39 <pikhq> And really, there *are* cases where operator overloading makes sense.
03:09:45 <bsmntbombdood> yeah
03:09:47 <RodgerTheGreat> by "C programmers" I mean "C and C++ programmers", because as far as I'm concerned C++ is just a sloppy mess tacked on to the actual language C.
03:09:48 <pikhq> Such as GMP.
03:09:50 * GregorR-L <3 Smalltalk
03:10:05 <GregorR-L> C++ is quite a mess, yes.
03:10:10 <GregorR-L> But Java is a horrible overreaction to that.
03:10:14 <pikhq> RodgerTheGreat: No, C++ is a sloppy mess tacked onto a slightly disabled C.
03:10:20 <GregorR-L> X-D
03:10:26 <bsmntbombdood> C isn't disabled
03:10:40 <pikhq> bsmntbombdood: No, but the common subset supported by C++ and C *is*.
03:10:41 <GregorR-L> bsmntbombdood: You don't speak English, do you?
03:10:54 <RodgerTheGreat> Java has a consistent design that doesn't factor in things like operator overloading, and every feature like that erodes the integrity of the design. It's just standard-rot.
03:11:01 <bsmntbombdood> only a little
03:11:41 <GregorR-L> Smalltalk.
03:11:43 <pikhq> RodgerTheGreat: Java has a consistent design that was made by people who never seem to value their ability to code for more than an hour.
03:11:43 <GregorR-L> Smaaaaaaaaaaaaalltalk.
03:11:50 <GregorR-L> Smaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalltalk.
03:11:58 <pikhq> GregorR-L: I've heard good things about it, but never coded in it.
03:12:30 <RodgerTheGreat> but back on the topic of pikhq using something like BFM for homework- it'd be totally acceptable (in the compiled form of C code) for most homework, but if it has a bug, he's probably going to get a zero, because the grader will want to die when he looks at it
03:12:54 <pikhq> I think you missed my rename of BFM.
03:13:00 <RodgerTheGreat> clearly
03:13:27 <pikhq> BFM is now PEBBLE: the Practical Esoteric Brainfuck-Based Language, Eh?
03:13:41 <RodgerTheGreat> creative.
03:14:01 * RodgerTheGreat debates actually completing an interpreter for Lojo.
03:14:01 <pikhq> And the C backend has been made to be damned efficient. . .
03:14:19 <RodgerTheGreat> Ooh. I just got a wonderful, horrible idea.
03:14:24 <pikhq> Yeah?
03:14:33 <RodgerTheGreat> I'll implement Lojo in C.
03:14:40 <RodgerTheGreat> not just any C though...
03:14:57 <RodgerTheGreat> horrifically obfuscated and mangled C.
03:15:11 <bsmntbombdood> that's the best way to go
03:15:21 * RodgerTheGreat begins happily drafting an esoteric C coding style doc.
03:16:46 <RodgerTheGreat> ground rules: no globals, no functions, no for loops, no header files, and as many things as possible rolled into oneliners.
03:17:07 <RodgerTheGreat> those principles *alone* should be enough to create some monstrosities.
03:17:17 <oklopol> no functions?
03:17:20 <oklopol> :|
03:17:29 <RodgerTheGreat> excepting main, of course
03:17:38 <oklopol> sooooo jsut while?
03:17:41 <oklopol> jsustu
03:17:59 <RodgerTheGreat> let's take it a step further and outlaw select structures, in case anyone feels like being a wiseass.
03:18:06 <RodgerTheGreat> oklopol: yeah
03:18:21 <oklopol> i kinda like functions :<
03:18:27 <RodgerTheGreat> if C had better support for labels I'd strip out everything but IF...THEN.
03:18:38 <oklopol> i had a verrrry sick idea for an rpg using c and function pointers
03:18:48 <RodgerTheGreat> it's sad how crippled C's goto is. the poor thing...
03:18:58 <RodgerTheGreat> hm
03:19:07 <oklopol> but it was too sick for me back then
03:19:14 <RodgerTheGreat> that is correct- function pointers can lead to hilarious hijinx.
03:19:39 <RodgerTheGreat> and let's not forget excessive use of recursion.
03:19:45 <RodgerTheGreat> ok, ok- functions are back in.
03:21:04 <bsmntbombdood> what's wrong with c's goto?
03:21:28 <RodgerTheGreat> bsmntbombdood: it's so... so weak compared to the GOTO of BASIC.
03:21:39 <oklopol> my idea was to encode the game in a big array of functions... each representing a room, and it'd reorder itself somwhat randomly like in that one boardgame
03:21:54 <bsmntbombdood> doesn't seem like there's much to a goto...
03:22:05 <RodgerTheGreat> it's more of a vestigal appendix to the language, while BASIC uses it is a glorious multifunctional tool
03:22:09 <RodgerTheGreat> *uses it as a
03:22:42 <oklopol> what's that mean?
03:23:19 <RodgerTheGreat> computed jumps, oklopol. computed jumps.
03:23:41 <bsmntbombdood> what can you compute?
03:24:20 <RodgerTheGreat> the beautiful thing about BASIC is that everything boils down to IF, THEN, LET and GOTO.
03:24:43 <oklopol> please boil out the difference :>
03:24:44 <oklopol> :<
03:25:46 <oklopol> hmm... i wonder if i could just skip a night's sleep without additional sleep tomorrow night... thazz rare
03:25:46 <RodgerTheGreat> and IF and THEN can often be simulated with LET and GOTO, actually
03:26:08 <RodgerTheGreat> oklopol: your REM cycles will catch up with you, one way or another
03:26:44 <oklopol> i guess
03:27:14 <RodgerTheGreat> alright, screw Lojo for the time being- I'm implementing a true Estoteric BASIC. I'll call it "BASICU" (Basic Unadvanced) for a playful jab at BASICA
03:27:39 <RodgerTheGreat> unless one of you can think of a more interesting/pleasant/funny name off the tops of your heads.
03:28:18 <oklopol> ubasic
03:28:19 <RodgerTheGreat> I'll just go for PRINT, INPUT, LET and GOTO as keywords, with the possible later addition of DIM.
03:28:27 <oklopol> (qbasic)
03:28:32 <RodgerTheGreat> heh
03:28:44 <oklopol> i had a lang called trivial once
03:29:07 <bsmntbombdood> i used to code in qbasic
03:29:10 <bsmntbombdood> those were the days
03:29:14 <oklopol> it was string-based... i guess i didn't know about parsing back then
03:29:21 <oklopol> me too :)
03:29:24 <oklopol> i sucked :<
03:29:32 <RodgerTheGreat> "MASIC: Masochist's All-purpose Symbolic Instruction Code"
03:29:40 <oklopol> heh
03:29:44 <oklopol> that's best of the 3
03:29:51 <RodgerTheGreat> we keep getting better
03:29:56 <RodgerTheGreat> who'll top that one?
03:30:26 <GregorR-L> PENIS: Programming for the Enlightened: the New Instruction Set
03:30:58 <bsmntbombdood> how long did that take you?
03:31:09 <RodgerTheGreat> that's extremely entertaining, but the name might be too long.
03:31:11 <oklopol> hmm... okay, i made myself a big bowl of ice... now how the fuck do i eat it
03:31:14 <GregorR-L> X-D
03:31:16 <RodgerTheGreat> ba-dum-tshh
03:31:27 <bsmntbombdood> oklopol: ice?
03:31:39 <oklopol> hard to explain
03:31:45 <GregorR-L> How to eat it:
03:31:47 <GregorR-L> 1) Melt it.
03:31:50 <GregorR-L> 2) Drink it.
03:31:53 <oklopol> it's a solid substance formed when water is made cold.
03:32:05 <oklopol> yuck, water
03:32:12 <bsmntbombdood> why are you eating it
03:32:13 <oklopol> ice, on the other hand <3
03:32:18 <oklopol> it's hot
03:33:17 * bsmntbombdood looks through a catalog for relays
03:35:36 <oklopol> aaaaaaaand i've got water in my lungs
03:35:45 <oklopol> god i'm great.
03:35:56 <bsmntbombdood> i'm looking at $3/each
03:36:04 <RodgerTheGreat> check out major suppliers like digikey
03:36:20 <RodgerTheGreat> oklopol: lol- good work there, cheif
03:38:28 <bsmntbombdood> what's a power relay?
03:38:34 <oklopol> hmm... i could make snow if i had a decent blender
03:38:41 <bsmntbombdood> because here's some for $.90/each
03:38:41 <oklopol> that'd be sweeeeeeeet
03:39:24 <pikhq> RodgerTheGreat: Looking way back at your discussion. . .
03:39:30 <pikhq> GNU C *does* have computed jumps.
03:40:08 <pikhq> __label__ foo, bar, baz;
03:40:20 <pikhq> Declaring those labels. . .
03:40:24 <pikhq> foo:
03:40:28 <pikhq> Defining the label. . .
03:40:29 <RodgerTheGreat> but the *elegance* man, the *elegance*!
03:40:40 <pikhq> __label__ array[3] = {foo, bar, baz};
03:40:46 <pikhq> There we go. An array of labels.
03:41:21 <pikhq> Err. Not quite. . .
03:41:48 <pikhq> GCC's documentation (section 5.3) describes it being different.
03:42:32 <bsmntbombdood> all these relays are expensive
03:42:59 <RodgerTheGreat> bsmntbombdood: it's a sad truth of electromechanical components- they's pricey.
03:43:30 <RodgerTheGreat> y'know, I once got in a huge argument as to wether or not BASIC had pointers
03:44:46 <RodgerTheGreat> my take is that since PEEK and POKE can manipulate memory directly, and VARPTR() can get the location of a variable, you have all the capabilities of pointers with different syntax and effectively weak-typed pointer/integer mutability
03:45:20 <pikhq> This assumes that your BASIC implementation has PEEK and POKE.
03:45:33 <RodgerTheGreat> peek(x) is effectively the same as *x in C
03:45:40 <RodgerTheGreat> yes, naturally
03:45:53 <RodgerTheGreat> the one I was using for my examples does, so it stands
03:45:54 <oklopol> <ignore> i cracked my ice! </ignore>
03:46:07 <pikhq> So, that doesn't work for BFBASIC. ;)
03:46:19 <RodgerTheGreat> which is too bad.
03:46:33 <RodgerTheGreat> if calamari was in here I'd suggest he use my ideas to make it happen. :)
03:47:20 <oklopol> uh, ice is pretty
03:47:22 <oklopol> <3
03:47:43 <RodgerTheGreat> in the end, the argument devolved into my opponent telling me that since BASIC doesn't have structs, my examples were meaningless, which I find to be poppycock
03:47:47 <GregorR-L> choosemyhat.com is bettar!
03:48:13 <pikhq> BASIC doesn't have structs *directly*.
03:48:26 <RodgerTheGreat> pikhq: my point exactly
03:48:27 <pikhq> However, using PEEK and POKE, you can simulate the effects.
03:48:40 <bsmntbombdood> what do structs have to do with pointers?
03:48:46 <RodgerTheGreat> capability is largely independent from syntax
03:48:48 <pikhq> Or just use a nice naming scheme for variables.
03:49:09 <RodgerTheGreat> bsmntbombdood: I guess he figured pointers aren't useful without structs?
03:49:29 <pikhq> Which is BS.
03:49:59 <pikhq> It's possible to simulate structs granted pointers. . .
03:50:05 <pikhq> Although it'll look horrid. ;)
03:50:27 <oklopol> a simple macro system will make that look ok
03:51:06 <pikhq> Y'mean the one BASIC doesn't have?
03:51:43 <RodgerTheGreat> most BASICs lack a preprocessor
03:51:50 <oklopol> well
03:51:55 <bsmntbombdood> you could run basic through cpp
03:52:02 <RodgerTheGreat> eesh.
03:52:19 <RodgerTheGreat> why would you do such a thing?
03:52:51 <oklopol> i mean, the struct thing is something which does not require any weird stuff, just a few simple calculations for different fields of the struct
03:53:06 <oklopol> what i mean by a macro system is it's not something the language can't handle trivially
03:53:23 <oklopol> because it could be done with a text substitution macro system
03:53:35 <oklopol> if that makes any sence, call me lucky.
03:53:42 <oklopol> i can't really see the screen
03:56:16 <oklopol> *sense
03:56:16 <RodgerTheGreat> oklopol: I understand what you mean- it's pretty much what underlies how C actually handles structs internally
03:56:16 <RodgerTheGreat> pointers + offsets substituted in for variable names
03:56:16 <oklopol> yaya, triv as a tree in a pole
03:56:16 <RodgerTheGreat> sounds pretty simple
03:56:16 <oklopol> i find that hilarious
03:56:16 <oklopol> i should sleep, prolyl
03:56:16 <oklopol> *prolly
03:56:16 <RodgerTheGreat> in my favorite BASIC, Cbaspad, it's fairly trivial to do string manipulations on your own source
03:56:16 <RodgerTheGreat> I ought to try that at some point. >:D
03:56:51 <oklopol> i've never really seen anyone use code manipulation done on plain source code
03:57:03 <oklopol> i mean, and archieving something by it
03:57:32 <oklopol> guess i have to admit i might have seen one but had no idea what i saw.
03:59:01 <RodgerTheGreat> most of the time, it's really hard to do.
04:00:32 <oklopol> yeah... if you really do something you couldn't have done by changing the _parsed_ source, and still manage to do something, you're pretty sick
04:00:41 <bsmntbombdood> i want to make this computer
04:00:42 <RodgerTheGreat> in Cbaspad, a program is loaded by line numbers and then initialized, executing stored instructions. Then, you can open the source itself as an input file, make modifications freely, and (using some tricky manipulations), get the program to reload the source without clearing variable contents and begin running again
04:01:06 <oklopol> and i can't imagine that being done but a few times, VERY carefullly planned for every bit of code where it's used
04:02:12 <RodgerTheGreat> I think I love Cbaspad because I understand it more completely than any other non-esolang, and I feel I've pushed it to it's limit more than anyone else who's used it.
04:02:20 * pikhq shuts down
04:03:09 <RodgerTheGreat> it's a very small, little-known language, which makes discoveries and demonstrations all the more special.
04:03:20 <oklopol> cooool
04:03:27 <oklopol> ice, yuum
04:04:26 <oklopol> oh, 6 am, i should wake ^
04:04:34 <oklopol> i might code a bit
04:04:47 <oklopol> haven't programmed anything in about a week :<
04:05:02 <oklopol> except for random bits of java and php
04:05:05 <oklopol> but like
04:05:11 <oklopol> i haven't coded oklotalk
04:05:12 <oklopol> :<
04:06:14 <bsmntbombdood> why should our computer even be binary?
04:06:26 <oklopol> cause it's the easist?
04:06:33 <oklopol> unary 8P
04:08:30 <GregorR-L> Nonary
04:08:35 <GregorR-L> 0 == infinity
04:09:06 <oklopol> i had this idea about infinitiary numbers the other day
04:09:09 <oklopol> err
04:09:13 <oklopol> today
04:09:15 <oklopol> :P
04:09:42 <oklopol> though the idea is so trivial i can't even say it with a straight face
04:12:24 <oklopol> "oh no, someone peed in my pants" xD family guy is so insightful
04:19:31 -!- pikhq has quit (Read error: 110 (Connection timed out)).
04:52:29 <bsmntbombdood> "Memory: thin metal plates, worked with fret saw;"
04:52:34 <bsmntbombdood> how does that work?
04:53:43 <bsmntbombdood> http://irb.cs.tu-berlin.de/~zuse/Konrad_Zuse/en/Rechner_Z2.html
05:10:53 -!- bsmntbombdood has quit (Remote closed the connection).
05:10:57 -!- bsmntbombdood has joined.
05:41:25 -!- oerjan has joined.
05:59:19 <bsmntbombdood> i think 1 bit of memory = 2 relays
06:00:36 -!- boily has joined.
06:03:42 <bsmntbombdood> no that doesn't wor
06:03:42 <bsmntbombdood> k
06:05:27 <bsmntbombdood> but this does
06:40:36 -!- boily has quit ("WeeChat 0.2.4").
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:17:14 -!- oerjan has quit ("leaving").
09:15:52 -!- ais523 has joined.
10:31:38 -!- GregorR-L has quit ("Leaving").
11:50:35 -!- ais523 has quit (Remote closed the connection).
11:54:24 -!- ais523 has joined.
12:00:24 -!- ais523 has quit ("looking for food").
12:09:30 -!- ais523 has joined.
12:30:29 <ais523> ~bf ,[.,]!test
12:30:48 <ais523> ~exec execfile('/bot/scripts/bf.py')
12:31:38 <ais523> ah, the bot isn't here, that's why it isn't responding
13:17:05 -!- jix has joined.
14:47:34 -!- cmeme has quit ("Client terminated by server").
14:47:56 -!- cmeme has joined.
14:48:57 -!- fizzie has quit (kubrick.freenode.net irc.freenode.net).
14:49:10 -!- fizzie has joined.
15:39:55 -!- calamari has joined.
15:58:03 -!- calamari has quit ("Leaving").
16:14:49 -!- jix has quit ("CommandQ").
16:54:56 -!- ais523 has quit ("bye").
17:00:31 -!- sebbu has joined.
17:36:34 -!- oerjan has joined.
18:22:38 <RodgerTheGreat> this is awesome: http://catb.org/esr/jargon/html/story-of-mel.html
19:40:43 -!- oerjan has quit ("leaving").
20:06:42 <bsmntbombdood> old
21:07:41 -!- Asztal has joined.
21:46:02 -!- poiuy_qwert has joined.
22:13:48 -!- poiuy_qwert has quit (Read error: 110 (Connection timed out)).
22:37:57 -!- c|p has joined.
22:53:11 -!- poiuy_qwert has joined.
23:22:52 -!- poiuy_qwert has quit (Read error: 110 (Connection timed out)).
23:25:53 -!- sebbu has quit ("@+").
23:28:13 -!- c|p has quit ("Leaving").
2007-06-09
01:02:09 -!- RainbowTrout has joined.
01:02:09 -!- RainbowTrout has quit (Client Quit).
01:05:08 -!- mangatiga has quit ("User pushed the X - because it's Xtra, baby").
02:02:01 -!- c|p has joined.
02:47:07 -!- Asztal has quit ("Chatzilla 0.9.77-rdmsoft [XULRunner 1.9a3pre/2007022508]").
03:22:39 -!- c|p has quit ("Leaving").
03:41:15 -!- GreaseMonkey has joined.
06:11:46 -!- oerjan has joined.
06:27:09 -!- GreaseMonkey has quit ("gonna go soon, byes").
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:24:33 -!- sebbu has joined.
09:15:12 -!- oerjan has quit ("leaving").
09:55:40 -!- sebbu2 has joined.
10:15:59 -!- sebbu has quit (Read error: 110 (Connection timed out)).
11:37:49 -!- jix has joined.
14:12:49 -!- c|p has joined.
14:44:17 -!- jix has quit (Read error: 104 (Connection reset by peer)).
14:53:06 -!- jix has joined.
15:18:46 -!- erider has quit ("I don't sleep because sleep is the cousin of death!").
15:23:51 -!- erider has joined.
16:03:11 <SimonRC> bsmntbombdood: indeed, very old
16:05:59 -!- c|p has quit ("Leaving").
16:24:02 <RodgerTheGreat> SimonRC: but that doesn't make it any less cool.
16:45:28 -!- jix has quit ("CommandQ").
16:51:26 * SimonRC wonders when the current set of bootstrapping actually started. Some time in the 70s he suspects. You can't design any but the smallest ICs without a computer too.
16:52:31 <RodgerTheGreat> well, it's certainly shit-tons harder to do without a computer
16:53:34 <RodgerTheGreat> I'd guess earlier than the 70s- that's just when minicomputers made computing reasonably affordable. Earlier than that, you still have some mainframes powerful enough to do compilation, bootstrapping and IC design
17:20:57 <SimonRC> I think that there were still some computers made mostly without computer help in the 1970s
17:21:55 <RodgerTheGreat> hm. true- most of the "big iron" of the day still relied mostly on discrete components
17:22:44 -!- jix__ has joined.
17:25:14 * RodgerTheGreat is listening to Apollo [While my 64...] by Rebb / Tm!C
17:43:42 -!- c|p has joined.
18:04:33 -!- oerjan has joined.
18:50:06 -!- jix__ has quit ("CommandQ").
19:06:34 -!- c|p has quit ("Leaving").
19:06:57 -!- c|p has joined.
20:32:21 -!- oerjan has quit ("leaving").
20:50:51 -!- Sgeo has joined.
21:57:21 -!- GregorR-L has joined.
22:30:06 -!- jix__ has joined.
22:42:41 <SimonRC> Why do none of us make stuff like this? http://forum.lolcode.com/viewtopic.php?id=30
22:44:24 -!- wooby has joined.
22:52:16 <SimonRC> hi
22:58:45 <bsmntbombdood> because .net is horrible?
23:00:43 -!- Sgeo has changed nick to Buser.
23:00:44 <c|p> hmm
23:00:46 <c|p> i have an idea
23:00:48 -!- Buser has changed nick to Sgeo.
23:00:49 <c|p> "esoterrism"
23:01:24 <c|p> as in: obscure terrorism
23:02:51 -!- wooby has quit (Success).
23:17:04 <SimonRC> Yeah, but don't have so much as an emacs mode.
23:40:40 -!- jix__ has quit ("CommandQ").
2007-06-10
00:34:54 -!- GregorR-L has quit ("Leaving").
00:43:58 -!- sebbu2 has quit ("@+").
02:21:21 -!- c|p has quit ("Leaving").
02:23:16 -!- RodgerTheGreat has quit.
02:25:47 -!- RodgerTheGreat has joined.
02:45:26 <bsmntbombdood> i got asked if i had kids today
02:45:30 <bsmntbombdood> it was funny
02:46:00 <RodgerTheGreat> what was the context of this
02:46:23 <bsmntbombdood> i was riding my bike past a part and a little kid asks
02:46:33 <bsmntbombdood> *park
02:49:33 <RodgerTheGreat> hunh
02:50:09 <RodgerTheGreat> that is a unusual question, but as Bill Cosby would say, "Kids say the darnedest things!"
02:51:57 <bsmntbombdood> yeah
04:02:52 -!- erider has quit ("I don't sleep because sleep is the cousin of death!").
06:42:39 -!- oerjan has joined.
07:14:07 -!- GreaseMonkey has joined.
07:32:35 -!- Sgeo has quit (Remote closed the connection).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:30:34 -!- sebbu has joined.
09:49:16 -!- sebbu2 has joined.
10:00:48 -!- oerjan has quit ("leaving").
10:14:41 -!- jix has joined.
10:16:11 <GreaseMonkey> ok, gonna get off now, gnight everyone
10:16:24 -!- sebbu has quit (Read error: 110 (Connection timed out)).
10:16:33 -!- GreaseMonkey has quit ("Hasta la Vista(R)").
10:29:51 -!- jix has quit ("CommandQ").
10:37:07 -!- jix has joined.
15:17:33 -!- jix has quit ("CommandQ").
16:26:58 <bsmntbombdood> I wonder if Mel of /The Story of Mel/ is still around
16:28:55 <RodgerTheGreat> if not, there are probably still some Real Programmers carrying on his proud tradition
16:33:16 <bsmntbombdood> there's not even any real computers around anymore
16:37:17 <RodgerTheGreat> not except when people build their own, anyway
16:37:28 <RodgerTheGreat> and not in the "order from newegg" sense
16:37:35 <bsmntbombdood> out of relays
16:37:57 <RodgerTheGreat> what most people do is "assembling" computers, not building them
16:41:48 * oklopol goes beep
16:41:52 <oklopol> for no reason
16:42:33 <RodgerTheGreat> fair enough
16:58:15 -!- c|p has joined.
17:02:54 -!- oerjan has joined.
17:07:37 <RodgerTheGreat> @who
17:07:42 <RodgerTheGreat> whoops
17:07:45 <RodgerTheGreat> wrong window
17:09:37 <bsmntbombdood> a likely story
17:09:40 <SimonRC> Mel is known to be "Mell Kaye"
17:09:54 <oerjan> @who? isn't that moo or something?
17:11:44 -!- bsmnt_bot has joined.
17:11:58 <SimonRC> it's not one of lambdabot's though lambdabot does take some @-commands
17:12:34 <oerjan> i vaguely recall moo commands began with @, like @create
17:13:37 <oerjan> incidentally i am pretty sure there was a lambdamoo
17:13:43 <SimonRC> heh
17:14:26 <oerjan> Ah yes, from wikipedia: It is the oldest and most active MOO today, with just under 3000 regular members.
17:15:04 -!- RodgerTheGreat has changed nick to PocketUniverse.
17:15:07 <SimonRC> no, lambdabot is to be found on #haskell, among other places
17:15:36 -!- PocketUniverse has changed nick to RodgerTheGreat.
17:16:05 <oerjan> i know what lambdabot is too
17:17:13 <oerjan> it has esoteric languages too, brainfuck and i think unlambda
17:17:57 <oerjan> maybe we could invite it here...
17:21:25 <bsmntbombdood> you'll make bsmnt_bot jealous
17:21:42 <oerjan> hmph, it seems not to work presently, otherwise you can /msg it
17:22:28 <oerjan> i suppose a bot with a functional haskell interpreter _would_ make our bots jealous
17:23:18 <bsmntbombdood> you can always fork an interpreter
17:25:03 <oerjan> it has an interesting approach to sandboxing, using Haskell's type system to avoid non-pure expressions
17:26:32 <oerjan> that requires a bit more than just invoking an interpreter directly on the code
17:28:30 <oerjan> (actually it invokes a compiler and a dynamical linker. apparently all modern haskell implementations are compiler-based)
17:29:31 <oerjan> although it does run it in a forked process with ulimits, so the sandboxing is not totally type-based.
17:30:31 <oerjan> (I read about this just the other day, i think it was in the haskell-cafe archive)
18:25:08 -!- cmeme has quit (Remote closed the connection).
18:25:30 -!- cmeme has joined.
18:59:27 -!- jix__ has joined.
19:00:04 <bsmntbombdood> the world needs a better S
19:00:11 <bsmntbombdood> *OS
19:04:25 <bsmntbombdood> with fine grained security and a better scripting language than C
19:10:39 <bsmntbombdood> fine grained enough to run arbitrary code without a second thought
19:11:17 <RodgerTheGreat> that's pretty much the dream
19:12:03 <RodgerTheGreat> it might be possible to make that kind of security more feasible through the use of "secure" trusted compilers that build code that can be considered foolproof
19:12:24 <bsmntbombdood> that's not good enough
19:12:33 <bsmntbombdood> the security needs to come from the kernel
19:13:31 <RodgerTheGreat> if compilation became a core service, (which it should if *all* non-kernel software was compiled on the system before execution) it would make perfect sense for it to be part of the kernel
19:13:50 <RodgerTheGreat> do away with binary executables and you solve a lot of potential issues before they can start.
19:13:56 <bsmntbombdood> when i said arbitrary code, i meant arbitrary machine code
19:14:16 <bsmntbombdood> not everyone wants to give away their source
19:14:25 <RodgerTheGreat> in a non virtualized environment, arbitrary machinecode is inherently insecure.
19:14:55 <RodgerTheGreat> you could avoid having to distribute source by using intermediary interpreted bytecode, and effectively do the same thing as virtualization
19:15:54 <bsmntbombdood> you can execute arbitrary machine code safely
19:16:23 <bsmntbombdood> because anything dangerous has to go through the kernel
19:20:41 <bsmntbombdood> i think the hard part would be managing the tons of permissions data you need to keep track of in an intelligent way
19:23:16 <bsmntbombdood> and the methods programs use to modify it
19:27:44 <SimonRC> How about requiring compilers to embed safety proofs into the compiled code?
19:28:02 <bsmntbombdood> how can you prove safety?
19:28:02 <SimonRC> These would have no run-time penalty, as they would be executed by the loader.
19:28:19 <SimonRC> The compiler knows more about the program that is represented in the machine code.
19:29:03 <RodgerTheGreat> exactly
19:29:08 <SimonRC> It could know that there aren't any generalised pointers, just refernces and array iterators, but that is hard to tell from the object code
19:29:52 <SimonRC> Since it has access to a more abstract representation of the program (i.e. the source code), it has a good idea of all the safety invariants that hold.
19:31:06 <SimonRC> It knows what things are always true, that are much easier to check than discover for object code
19:31:10 <SimonRC> A Java compiler could annotate the code to say where on the stack was pointers and where was references.
19:31:15 <oerjan> especially if it is written in a language that actually has support for safety invariants
19:31:28 <SimonRC> (then show that there is no generalised pointer arithmatic)
19:31:36 <SimonRC> oerjan: e.g. Java
19:31:44 <SimonRC> Or just about anything modern
19:32:14 <SimonRC> You could also prove things like functions not doing ay IO
19:32:23 <SimonRC> *cough* Haskell *cough*
19:32:29 <bsmntbombdood> how can you prove something like that?
19:33:23 <SimonRC> in Haskell, if it doesn't have an IO return type, and unsafePerformIO never gets near it, the function *does* *no* *IO*.
19:33:49 <oerjan> which as i mentioned was how LambdaBot does part of its sandboxing
19:33:51 <RodgerTheGreat> that's a pretty good mechanism- I'm going to have to explore that language more.
19:33:53 <bsmntbombdood> and how can you prove that given only the machine code?
19:34:02 <SimonRC> not easily
19:34:11 <RodgerTheGreat> bsmntbombdood: in general, you don't
19:34:18 <bsmntbombdood> right
19:34:20 <SimonRC> that is why the *compiler* creates the proof, and the loader checks it
19:34:22 <oerjan> you must construct the proof simultaneously with the machine code
19:34:23 <SimonRC> I did say
19:34:46 <bsmntbombdood> how do you verify a proof is what i meant
19:35:35 <SimonRC> well, to do file IO, you would have to do an OS call or fiddle with the disk devices directly
19:35:47 <oerjan> http://www.cs.cornell.edu/talc/
19:35:59 <SimonRC> therefore, you can show that you do no OS calls, and do not write to certain memory addresses
19:36:08 <bsmntbombdood> i think the right approch is to check the permissions related to a system call whenever that call is used
19:36:18 <SimonRC> slow
19:36:38 <SimonRC> even with a Synthesis-style OS it would be slow
19:36:54 <SimonRC> (It gets only a little bit trickier if you add HoF.)
19:37:22 <bsmntbombdood> i don't think it would be much slower
19:38:08 <SimonRC> depends on your permissions scheme
19:38:37 <oerjan> when to check would probably depend on how often the code is going to run
19:39:10 <oerjan> if it is going to run many times it would be better to have a once-and-for-all proof
19:39:29 <bsmntbombdood> i don't think you can have a proof like that
19:40:34 -!- kushalhada has joined.
19:40:49 -!- kushalhada has left (?).
19:42:13 <oerjan> what part of this do you think is unsolvable?
19:43:02 <bsmntbombdood> i have no idea how you would construct a proof that could be verified
19:43:56 <oerjan> a proof by definition is verifiable
19:44:11 <oerjan> otherwise it is not a complete proof
19:45:01 <bsmntbombdood> you could analize the machine code at loadtime
19:45:56 <bsmntbombdood> that wouldn't work even with simple stuff like adding two numbers to get the syscall number
19:45:58 <oerjan> the machine code comes with the proof bundled, that is what proof-carrying code means
19:46:23 <bsmntbombdood> how does the proof work
19:47:21 <oerjan> it is just a proof in a machine readable format, that somehow proves that your code satisfies the system's safety protocol
19:47:40 <bsmntbombdood> uh huh
19:47:54 <RodgerTheGreat> it might be equivalent to digital signing or something
19:48:16 <RodgerTheGreat> or embedded into the functioning of the executable format somehow
19:49:03 <bsmntbombdood> i and have no idea how to construct a proof like that
19:49:18 <bsmntbombdood> and i highly doubt it's possible
19:49:49 <oerjan> well there are many people working on machine checkable proofs of program properties.
19:50:32 <oerjan> one of the teams is working on creating a certified compiler for Standard ML. it would be the first "real" language with such a compiler.
19:50:59 <bsmntbombdood> you can do it with a trusted compiler, sure
19:52:15 <oerjan> apparently they go through Typed Assembly Language, which is asm annotated with types proving the properties of the program
19:53:03 <oerjan> the Curry-Howard isomorphism which says that types and theorems are basically the same thing is important in much of this kind of work
19:53:35 <oerjan> so in a sense Java's types are a simpler version of the same
19:53:48 <SimonRC> bsmntbombdood: but you don't need to trust the compiler. If the compiler can explain why the code is safe, and the OS can check it, then it doesn't matter if the executable is a string of random bytes, it must be safe.
19:54:10 <bsmntbombdood> SimonRC: "if"
19:58:09 <oerjan> it's not "if", it's "when", and i believe the answer is "within five years"
19:58:10 -!- sebbu has joined.
19:58:24 <oerjan> although not for an entire operating system i guess
19:58:33 <SimonRC> bah, 20 years at least
19:59:00 <RodgerTheGreat> but if the proof is part of the executable, the compiler only has to do it once, right? <:D
19:59:37 <oerjan> right
19:59:38 <bsmntbombdood> I don't think you can construct a proof like that
19:59:41 <SimonRC> Although MS's Singularity experiment has almost everything written in "safe C#".
20:00:13 <SimonRC> bsmntbombdood: depends on the language you are compiling
20:00:17 <bsmntbombdood> checking permissions at runtime allows binarys to ignore security if they want to
20:00:50 <RodgerTheGreat> how the hell can anyone honestly use [C-derivative] and "safe" in the same sentence without negation operators or other complex syntactic shenanigans?
20:00:51 <SimonRC> I mean, a C compiler would have more difficulty than a Haskell compiler in checking safety.
20:01:06 <SimonRC> RodgerTheGreat: erm C# is not that bad on that angle
20:01:21 <SimonRC> you have to mark all "unsafe" code explicitly
20:01:46 <SimonRC> And you can write huge swathes of code with no "unsafe" blocks at all
20:01:58 <SimonRC> e.g. most of Singularity
20:02:13 <RodgerTheGreat> eugh
20:02:28 <SimonRC> (BTW, I really suggest that you check out the Singularity video on Channel 9 at MSDN.)
20:02:36 <SimonRC> C# is better than Java
20:02:46 <RodgerTheGreat> In my book, when the wheel sucks, build a new one, don't just superglue on retreads.
20:02:54 <SimonRC> by which I mean, I like programming in it better
20:03:25 <SimonRC> RodgerTheGreat: they have thrown away almost everything except the colour (i.e. the syntax)
20:03:33 <SimonRC> although the syntax does suck a bit
20:03:42 <SimonRC> but it's not too bad for an imperative language
20:03:50 <RodgerTheGreat> I guess
20:04:09 <RodgerTheGreat> I still feel I could do better (which is not an entirely idle statement)
20:04:58 <SimonRC> "You need to be free to point the gun wherever you want, but most of the time you *know* you don't want it anywhere near your foot and the compiler should help you out with that."
20:05:11 <RodgerTheGreat> heh
20:05:58 <RodgerTheGreat> well, that saves you from some mistakes, but doesn't do anything about the two most dangerous types of coders: malicious hackers and people with no idea what they're doing.
20:06:03 <SimonRC> .NET languages are like those lego people: they claim to be different, bu there is a haunting similarity between them.
20:06:10 <RodgerTheGreat> lol
20:06:11 <SimonRC> RodgerTheGreat: heh
20:06:49 <SimonRC> There is only one real functional .NET language, and it is not exactly popular.
20:06:55 <SimonRC> F#
20:07:10 <RodgerTheGreat> I've never heard of F#
20:07:36 <oerjan> it is much based on Ocaml, i hear
20:11:52 <SimonRC> yes]
20:11:59 <SimonRC> doesn't look too bad to me
20:12:24 <SimonRC> Although ISTR it has the dreadful syntax for types that OCaml has.
20:13:11 <SimonRC> I really don't know how I can hate it so much.
20:13:59 <oerjan> Ocaml is not known for having a pretty default syntax, unlike Haskell
20:14:22 <SimonRC> At least it allows the C# syntax for types.
20:14:39 <SimonRC> but really, *postfix* type constructors
20:14:43 <oerjan> i understand F# has an alternative syntax
20:14:51 <oerjan> that is inheritance from ML
20:15:27 <SimonRC> And an infix type operator (tuple) that neither left nor right associates, but does magic instead, with parentheses being significant?
20:15:39 -!- calamari has joined.
20:15:44 <oerjan> that is also from ML i think
20:16:08 <SimonRC> yes, I know
20:16:16 <SimonRC> I hate ML's type syntax
20:16:53 <SimonRC> And then there's the need for explicit indication of recursion in "let"s.
20:16:58 <RodgerTheGreat> hey, calamari
20:17:13 <RodgerTheGreat> there's an idea I wanted to mention to you a few days ago-
20:17:18 -!- sebbu2 has quit (Read error: 110 (Connection timed out)).
20:17:22 <SimonRC> FFS people, it is a *functional* language! The compiler should be worrying about that, not the programmer.
20:17:27 * SimonRC stops ranting
20:17:31 <calamari> hi RodgerTheGreat
20:17:36 <calamari> shoot
20:17:59 <oerjan> actually without rec you can use the old definition on the right side
20:18:05 <oerjan> like with scheme
20:18:10 <SimonRC> yuk
20:18:14 <RodgerTheGreat> we were discussing how the use of peek, poke and varptr effectively give BASIC pointers- do you think it would be possible to incorporate this type of functionality into BFBASIC?
20:18:59 <calamari> shouldn't be too hard
20:18:59 <RodgerTheGreat> obviously, you couldn't use it for accessing arbitrary memory, but you could try to have the compiler map peeks and pokes within memory "owned" by a program
20:19:18 <calamari> right
20:19:31 <oerjan> it _might_ be possible to access arbitrary memory if you have a fixed memory layout
20:19:46 <oerjan> er,
20:20:00 <oerjan> i guess that's what you meant
20:20:09 <calamari> oerjan: I don't think he's referring to interpreter bugs
20:20:17 <RodgerTheGreat> lol
20:20:23 <oerjan> not outside the program
20:20:26 <calamari> right
20:20:31 <calamari> I understood exactly what you meant
20:20:48 <RodgerTheGreat> excellent- we're on the same wavelength
20:20:57 <oerjan> but then with protected memory you couldn't do that anyway
20:21:29 <RodgerTheGreat> a DIM statement is very similar to a memory allocation in lower-level languages
20:23:41 <calamari> RodgerTheGreat: here is my suggestion for this...
20:24:02 <calamari> there is a function called arrows that translates @vars into >>> <<<'s
20:24:12 <RodgerTheGreat> ok
20:24:14 <calamari> for example @myvar might be location 123
20:24:38 <calamari> you could change that function so that it would treat something like @234 specially
20:24:53 <RodgerTheGreat> so, you're suggesting extending that function to handle peek's "dereferences"?
20:24:59 <RodgerTheGreat> ah
20:25:01 <RodgerTheGreat> hm
20:25:01 <calamari> then @567 in the code would go to memory location 567
20:25:36 <calamari> then you can use that to write your peek and poke routines
20:26:25 <RodgerTheGreat> that could work. Now that I'm thinking of this in terms of translation into BF, though, I forsee this could generate some really nasty compiled code
20:26:31 <calamari> I don't remember what varptr is.. looking that up
20:26:41 <calamari> well, yeah
20:26:43 <RodgerTheGreat> varptr returns the memory address of a given variable
20:26:48 <calamari> but that's the case anyways .. hehe
20:26:53 <calamari> oh
20:27:00 <calamari> that should be easy to implement as well
20:27:11 <RodgerTheGreat> it's how you access a variable via peek and poke so you don't have to just guess wildly. :)
20:27:18 <calamari> makes sense
20:27:29 <calamari> do you have the source code to bfbasic ?
20:27:34 <RodgerTheGreat> I think so
20:27:39 <calamari> it is available via cvs
20:27:42 <calamari> okay great
20:27:45 * RodgerTheGreat rifles through his drive
20:28:01 <calamari> I think the lastest is 1.50 rc 2
20:28:05 <calamari> latest
20:28:06 <RodgerTheGreat> effectively, if we compare BASIC to C, varptr()
20:28:09 <RodgerTheGreat> erk
20:28:24 <RodgerTheGreat> varptr(x) is equivalent to &x
20:28:36 <calamari> I would start off by understanding the arrows() function
20:28:41 <RodgerTheGreat> peek(x) is equivalent to *x
20:29:02 <calamari> =*x
20:29:22 <calamari> poke is *x=
20:29:22 <RodgerTheGreat> and poke x,a is equivalent to *x=a
20:29:26 <RodgerTheGreat> yeah
20:29:47 <calamari> anyhow.. if you have any questions about the source code, let me know
20:30:02 <RodgerTheGreat> ah, I found arrows
20:30:07 <calamari> if you don't have the cvs version I can dig it up for you
20:30:11 <RodgerTheGreat> I'll play around with this for a while
20:30:16 <calamari> okay :)
20:30:25 <RodgerTheGreat> I have v1.30
20:31:26 <calamari> that's old
20:31:34 <RodgerTheGreat> oh.
20:32:24 <RodgerTheGreat> well, that's the version you have in a .ZIP on your site- that's probably where I got it.
20:32:36 <calamari> RodgerTheGreat: http://sourceforge.net/cvs/?group_id=59653
20:34:06 <RodgerTheGreat> oh, dang- you're at 1.41
20:34:34 <calamari> actually, src contains the latest
20:34:37 <calamari> 1.50rc2
20:35:16 <calamari> src/ I mean
20:35:30 <calamari> afk..
20:35:39 <RodgerTheGreat> alright, got it
20:35:50 <RodgerTheGreat> what's new since 1.3?
20:37:14 <RodgerTheGreat> woah, select case?
20:37:34 <calamari> I didn't implement that :)
20:38:34 <RodgerTheGreat> and I must say that AlgebraicExpression.java frightens me a bit
20:39:10 <oerjan> wow, it all makes sense now: http://freefall.purrsia.com/ff200/fv00125.htm
20:39:31 <RodgerTheGreat> lol
20:39:43 <RodgerTheGreat> everyone loves a calvin and hobbes reference
20:43:07 * SimonRC reads about the significant parentheses in F#
20:43:18 <SimonRC> dear god please make it stop
20:43:58 <SimonRC> the type "int -> int" is not the same as "(int -> int)"
20:44:28 <oerjan> wow
20:45:28 <SimonRC> neither is "type c = C of int * int" the same as "type c = C of (int * int)", though that was got from ML
20:45:41 * oerjan wonders what SimonRC thinks about python's relation syntax
20:49:29 <SimonRC> what's that like?
20:50:32 <oerjan> basically, 1 <= x < y < 3 means the same as in mathematics
20:50:51 <SimonRC> ah yes
20:50:58 <SimonRC> Perl6 is gonna have that too
20:51:15 <SimonRC> That is not *too* bad
20:52:02 <SimonRC> Perl 6 is also going to have the amazing | and & operators, which allow things like "a&b=c|d", meaning "(a=c||a=d)&&(b=c||b=d)".
20:52:15 <SimonRC> but they have some reasonably clean semantics behind that
20:52:26 <bsmntbombdood> that's pretty ugly
20:52:52 <SimonRC> it's Perl
20:53:01 <SimonRC> or possibly it means "(a=c&&b=c)||(a=d&&b=d)". I forget
20:53:35 <bsmntbombdood> is & and | not bitwise and and or?
20:54:01 <oerjan> icon has | like that doesn't it
20:54:23 <SimonRC> icon does it in a good way, similar to the List monad in Haskell.
20:54:31 <SimonRC> bsmntbombdood: not in Perl 6
20:54:48 <SimonRC> bitwise ones have ? prepended
20:55:27 <oerjan> so Perl 6 will not be backwards compatible?
20:55:27 <SimonRC> or is that numeric ones? In which case the bitwise ones have + before them, and the character ones I forget about
20:55:31 <SimonRC> nope
20:55:46 <SimonRC> some very simple things will stay
20:56:19 <oerjan> numeric?
21:00:22 <SimonRC> huh?
21:00:54 <oerjan> how is numeric &| different from bitwise?
21:01:18 <bsmntbombdood> ints versus strings
21:01:19 <SimonRC> dunno
21:10:09 -!- calamari has quit ("Leaving").
21:41:18 -!- jix__ has quit ("CommandQ").
22:30:39 -!- ihope has joined.
23:32:10 -!- sebbu has quit ("@+").
23:54:17 -!- davidmc has joined.
23:55:57 -!- davidmc has changed nick to xTarget.
2007-06-11
00:15:15 -!- xTarget has quit ("Chatzilla 0.9.77 [Firefox 1.5.0.12/0000000000]").
00:16:34 -!- bsmnt_bot has quit (Read error: 131 (Connection reset by peer)).
00:17:37 -!- bsmntbombdood has quit (Read error: 104 (Connection reset by peer)).
00:18:03 -!- bsmntbom1dood has joined.
00:18:23 -!- bsmntbom1dood has changed nick to bsmntbombdood.
00:33:19 -!- ihope_ has joined.
00:54:28 -!- ihope has quit (Read error: 110 (Connection timed out)).
02:04:35 -!- c|p has quit ("Leaving").
02:24:33 -!- helios24 has quit (Read error: 110 (Connection timed out)).
02:43:14 -!- ihope__ has joined.
02:43:21 -!- ihope__ has changed nick to ihope.
02:51:14 -!- ihope_ has quit (Read error: 60 (Operation timed out)).
03:58:17 -!- ihope has quit (Read error: 60 (Operation timed out)).
04:18:00 -!- helios24 has joined.
04:23:52 <bsmntbombdood> one egg isn't good enough
04:23:57 <bsmntbombdood> oops
04:24:21 <oerjan> unless it's faberge
04:26:04 <bsmntbombdood> meh, those are pretty ugly
04:31:43 <oerjan> but, you could sell it and have ordinary eggs for the rest of your life :)
04:31:53 <bsmntbombdood> that's true
05:17:17 -!- RodgerTheGreat has quit.
05:29:06 -!- oerjan has quit ("leaving").
05:54:46 -!- calamari has joined.
06:08:17 -!- calamari has quit ("Leaving").
07:10:52 -!- GreaseMonkey has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
09:45:19 -!- GregorR has quit (Remote closed the connection).
09:46:26 -!- GregorR has joined.
10:51:52 <GreaseMonkey> gonna sleep now, gnight
10:52:28 <GreaseMonkey> p.s. got any diet cherry vanilla orange grape lemon lime mint roast chicken mayonnaise and cola dr. pepper?
10:53:07 -!- GreaseMonkey has quit ("Hasta la Vista(R)").
12:20:46 -!- ihope__ has joined.
12:20:55 -!- ihope__ has changed nick to ihope.
14:12:40 -!- jix__ has joined.
14:25:18 -!- ais523 has joined.
15:04:36 -!- jix__ has quit (Read error: 110 (Connection timed out)).
15:04:53 -!- jix__ has joined.
15:31:47 -!- RodgerTheGreat has joined.
16:20:33 -!- crathman has joined.
16:37:43 -!- sebbu has joined.
16:56:31 -!- ais523 has quit ("Coming up to 16:00 UTC").
18:14:37 <SimonRC> hehe: http://www.hankstruckpictures.com/df_god.htm
18:48:17 -!- ehird` has joined.
19:02:23 <ihope> "GOD" should be a trademark.
19:02:45 <RodgerTheGreat> I like it
19:14:12 <oklopol> this is probably from this channel, but what is it? http://forum.lolcode.com/viewtopic.php?id=30
19:14:14 <oklopol> i mean
19:14:27 <oklopol> is this an interpreter for lc at work?
19:14:39 <oklopol> and why's it say visual studio
19:14:42 <oklopol> :\
19:17:34 <ihope> Why is LOLCODE so popular all of a sudden?
19:18:29 <ihope> I guess people who have seen esolangs before don't tend to spread it like wildfire.
19:18:35 <oklopol> yeah
19:19:01 <oklopol> my friend has never heard of _brainfuck or intercal_, and he knows lolcode
19:20:13 <RodgerTheGreat> it seems like everyone I've ever talked to in CS has heard of whitespace, but very few know of BF and the other big esolangs
19:20:40 <ihope> We should try to get all these other esolangs spreading like that.
19:21:55 <RodgerTheGreat> the problem with BF is that it isn't as "pop-art-crazy-cool" as whitespace, and the real name is offensive enough to turn off other people
19:22:17 <ihope> Pop-art-crazy-cool?
19:23:18 <RodgerTheGreat> like, with immediate novelty and strangeness, but not in a very deep or meaningful way
19:23:29 <RodgerTheGreat> "Pop-art-crazy-cool" seemed to summarize that
19:24:31 <RodgerTheGreat> let's face it- whitespace is a far less innovative or important esolang than INTERCAL, malbolge, BF, Befunge, etc
19:37:32 <ihope> Gimmick language.
19:38:25 <lament> BF and Whitespace are pop-culture.
19:38:52 <lament> brainfuck gets mentioned very often in other Freenode channels.
19:39:36 <lament> this happens with everything: Everybody knows Beethoven wrote Ninth Symphony and the Moonlight Sonata, but few know any other works.
19:40:03 <ihope> And some of his others are greater?
19:40:04 <lament> (hint: if he wrote the ninth symphony, he probably also wrote at least 8 others!)
19:40:32 <lament> i'm not really qualified to judge
19:40:34 <ihope> Heinz's 57th!
19:40:39 <lament> he certainly has greater stuff than "Fur Elise"
19:40:43 <lament> which is also very famous
19:41:29 <bsmntbombdood> spread P'' instead of brainfuck then
19:41:51 <lament> there're many characteristics that aid popularity
19:42:11 <lament> and quality and innovation are not the important ones
19:42:28 <lament> (another example: real-world celebrities)
19:48:53 <RodgerTheGreat> I think BF spreads pretty easily because it's a combination of trendiness, simplicity (you can learn it in 5 minutes, even with no esolang exposure) and the profusion of cool things made with it
19:49:21 <RodgerTheGreat> pi calculators, DeCSS, LostKingdom, endless spinoffs, etc, etc
19:52:11 <bsmntbombdood> too bad something cooler isn't the most popular esolang
19:53:12 <RodgerTheGreat> BF is better than whitespace, by a lot
19:55:21 <lament> i think BF spreads because of the name and the syntax.
19:55:29 <lament> (syntax - as in "how programs look like")
19:55:53 <lament> but mostly the name.
19:56:50 <RodgerTheGreat> "hee hee we're saying a bad word hee hee"
19:57:32 <RodgerTheGreat> I found myself liking it because it's a very clean, clear-cut, elegant language. Some of the more interesting languages get really hairy and overly complex
19:57:49 <RodgerTheGreat> I'm also a big fan of dupdog and /// for essentially that reason
19:58:49 -!- sebbu2 has joined.
19:59:23 <RodgerTheGreat> neither of which, however, are at all likely to be TC. <:/
20:17:53 -!- sebbu has quit (Read error: 110 (Connection timed out)).
20:32:13 -!- ihope__ has joined.
20:40:24 -!- oerjan has joined.
20:45:03 -!- jix__ has changed nick to jix.
20:46:24 <oerjan> what, you mean Beethoven's Fifth isn't just as well-known?
20:46:25 -!- c|p has joined.
20:47:15 -!- ihope has quit (Read error: 110 (Connection timed out)).
21:17:10 -!- ehird` has quit ("Pong timeout").
21:22:15 <SimonRC> "<ihope> Why is LOLCODE so popular all of a sudden?" -- LOLCODE is popular because it hit Digg and Reddit on the same day. Whitespace (I know the creator of that) did hit the front page of Slashdot, but that was back in 2003, which is the early 19th centuary in Internet Years, and it didn't hook onto an existing craze.
21:23:02 <lament> i think whitespace might have been on /. more than once
21:24:11 <SimonRC> it was first on AFD 2003
21:25:39 <SimonRC> amazingly, LOLcode doesn;t seem to have been mentionned on slashdot!
21:28:40 <c|p> o:
21:29:53 <oklopol> my eyes are singing
21:30:37 <oklopol> hmph, our bot was banned on #tietovisa (finnish trivia channel), apparently it owned too mcuh
21:33:54 <SimonRC> "singing"?
21:34:56 <oklopol> okay, if you don't understand something i say, it's a joke, or it means absolutely nothing
21:35:09 <oklopol> this was the latter
21:35:12 <oklopol> i think
21:35:32 <oklopol> you know how you sometimes just feel like saying stuff
21:35:38 <oklopol> and wonder what the fuck you meant
21:35:39 <SimonRC> hmph
21:35:48 <SimonRC> are you smoking something?
21:35:58 <oklopol> no no, but i _am_ coding java
21:36:02 <oklopol> i guess that counts
21:36:04 <SimonRC> ouch
21:36:33 <oklopol> i have to convert a file containing a hashmap to a file where the contents are in ascii form
21:37:00 <oklopol> pretty tough!
21:39:56 <oklopol> i think it's very clever this task requires about 4 object wraps, layers make me feel safe
21:40:33 <oklopol> "about 4"==3, but that didn't sound that much so i filibustered it up
21:41:45 <oklopol> well okay, 2, but its still needless!
21:43:20 <oerjan> interesting discussion at the haskell-cafe, apparently "Haskell" is from the hebrew for intellect.
21:44:26 <oerjan> i can just believe that :)
21:45:11 <SimonRC> I thought "Haskell" was named after Haskell B. Curry/
21:45:12 <SimonRC> ?
21:45:21 <oerjan> sure it is
21:45:46 <oerjan> and the name seems to come from hebrew
21:46:13 <SimonRC> ok
21:46:14 <oerjan> but it is an appropriate coincidence
22:01:11 -!- jix has quit ("CommandQ").
22:05:49 <oklopol> okay, i can't do this, unchecked conversion in code i've pasted from sun's pages.
22:06:02 <oklopol> because of generics
22:06:22 <oklopol> apparently i cannot convert an Object into a HashMap
22:06:31 <oklopol> very feasible
22:06:43 <oklopol> java is pretty great
22:06:56 <oerjan> hm...
22:07:19 <oklopol> http://forum.java.sun.com/thread.jspa?threadID=707244&tstart=30
22:07:22 <oerjan> what about (HashMap<...>)(HashMap)(whatever)
22:07:24 <oklopol> this is my problem
22:07:31 <oklopol> except i can't get either to work
22:07:38 <oklopol> not the abstract, not the typed.
22:07:55 <oklopol> i mean, conversion
22:08:13 <oklopol> hmm
22:08:24 <oklopol> i'm pretty sure i hear coffee calling me
22:08:25 <oklopol> ->
22:11:18 <oklopol> oh my god i'm pro, it compiled all along, it was just a warning.
22:11:31 <oklopol> why check when you can debug for hours?
22:12:13 <SimonRC> heh
22:12:15 <oerjan> that page you linked has something about @SuppressWarnings("unchecked")
22:12:19 <SimonRC> why does that make you a "pro"?
22:12:43 <oklopol> it makes me pro in a sarcastic way
22:13:01 <SimonRC> ah, ok
22:13:08 <SimonRC> that totally didn;t come across
22:13:18 <oklopol> maybe :)
22:13:23 <oklopol> i'm feeling a bit goofy
22:14:21 <oerjan> vacation?
22:14:31 <oklopol> perhaps
22:16:49 <oklopol> it's funny, i always thought i was the weirder of me and my gf, and she's going to be an out-patient after summer :P
22:16:53 <oklopol> life's funny like that
22:17:04 <oklopol> whoops, two funnies
22:17:09 <oklopol> i guess that's a bit too funny
22:17:56 <oerjan> funny you should say that
22:19:11 <lament> i think she's weirder, for choosing a weird boyfriend like that
22:21:38 <oerjan> yeah, oklopol, you should be wary of people who are _that_ weird. might be dangerous :)
22:23:05 <oerjan> with insincere apologies to Groucho Marx
22:24:55 <oklopol> i wish i had time to learn these 7995 random questions and their answers
22:27:30 <SimonRC> oklopol: an out-patient of where?
22:28:20 <oklopol> i guess it's kinda like a mad house
22:28:27 <oklopol> just sounds pretty harsh
22:28:29 * oerjan tried to google that and came up with "The Frequency of Use of the Interrogative Formula est-ce que"
22:31:09 <oklopol> not really out-patient... in-patient \o/
22:31:31 <oklopol> if that's the right term
22:32:23 <oklopol> perhaps completely isolated
22:32:25 <oklopol> dunno yet
22:33:01 <oklopol> hmm, i wonder why i have to tell everything on the channel that happens to be open when it pops to mind
22:33:27 <oklopol> gotta write my artixxels ->
22:37:08 <RodgerTheGreat> hey, if anybody wants to try a little IRC-based mud prototype I'm working on, just type "/msg PocketUniverse @join"
22:37:36 <lament> is that a universe in your pocket, or are you just happy to see me?
22:38:23 <RodgerTheGreat> lol
22:39:35 <oklopol> can you do anything elsez?
22:39:57 <RodgerTheGreat> not much yet, but it'll eventually become a Hunt-The-Wumpus game
22:40:10 <lament> that's not a mud!
22:40:42 <RodgerTheGreat> ok, it's a massively multiplayer online wumpus hunt. MMOWH.
22:41:38 <lament> hunting the wumpus is very closed-ended.
22:41:49 <RodgerTheGreat> not necessarily
22:42:09 <RodgerTheGreat> and it's far from straightforward if other people can "accidentally" kill you with magic arrows
22:43:20 <SimonRC> oh that will be fun
22:43:32 <RodgerTheGreat> indeed
23:01:35 -!- pikhq has joined.
23:05:18 <SimonRC> BTW people, room 13 is broken
23:05:24 <SimonRC> in a bizarre way
23:05:29 <RodgerTheGreat> heheh
23:09:19 <oklopol> how?
23:09:36 <RodgerTheGreat> a typo when I entered the map data
23:09:57 <RodgerTheGreat> it ends up being several one-way tunnels
23:10:00 <oklopol> i can't decipher the map, 20 and 13 can't ba put next to each other imo :\
23:10:06 <oklopol> *be
23:10:51 <oklopol> okay, actually trivial to prove that impossible
23:11:59 <SimonRC> oklopol: it;s mangled
23:12:10 <SimonRC> RodgerTheGreat mixed up 13 and 15
23:12:21 <SimonRC> notice the missing backward passages in some places
23:12:56 <SimonRC> 15 should be next to 16, 6, and 14
23:13:05 <SimonRC> 13 should be next to 14, 12, and 20
23:13:12 <SimonRC> then the numbering is simple
23:13:32 <oklopol> okay... i wish i could've seen that from listing the passages.
23:13:39 <oklopol> ah
23:13:50 <oklopol> indeed, missing backwards passages
23:14:02 <oklopol> then it's izzzzzi
23:15:24 <RodgerTheGreat> yep. *just* complicated that most people want a map to keep their bearings, not so complicated you constantly get lost
23:15:34 <RodgerTheGreat> *just complicated enough
23:17:07 <SimonRC> oklopol: I figured it out
23:17:18 <oklopol> the map?
23:17:22 <SimonRC> yeah
23:17:33 <oklopol> in your head?
23:17:37 <oklopol> or paper?
23:17:37 <SimonRC> on paper
23:17:46 -!- c|p has quit ("Leaving").
23:17:50 <SimonRC> HTW is traditionally on a dodecahedron
23:17:51 <oklopol> okay, i'm pretty sure i could do that if i had paper
23:18:17 <SimonRC> I suspected that it was labeld siprally, and following you around for a bit showed that it was, except for the glitch
23:18:19 <oklopol> with a text editor it kinda sux
23:18:33 <SimonRC> ah, ok
23:19:06 <oerjan> er, with 20 rooms shouldn't it be an icosahedron?
23:19:08 <oklopol> supral?
23:19:40 <oklopol> hmm, has someone done a 3 (or more) D minesweeper?
23:19:46 <oklopol> that might be kinda awesome
23:19:52 <SimonRC> the dodecahedron and the icosahedron are duals
23:19:59 <oerjan> i know
23:20:10 <oklopol> and you could have like a character to bounce around with
23:20:28 <oerjan> i just thought it made more sense if rooms were surfaces
23:20:31 <oklopol> it could break a block and walk on any wall
23:20:54 <oklopol> and sing any song
23:21:05 <oklopol> and dial any phone
23:21:12 <oerjan> oklopol: STOP SMOKING THAT
23:21:15 <oklopol> and not just their own phone
23:21:20 <oklopol> other peoples phones
23:21:30 <oklopol> phones that everybody else gave up on
23:21:37 <SimonRC> rooms are vertices in my view
23:21:39 <oklopol> but we knew better becvause we were a team
23:21:43 <oklopol> *because
23:22:02 <oklopol> that last bit was from family guy
23:22:10 <oklopol> i'm a bit ashamed about that :<
23:23:19 <oklopol> i wish i had something to smoke
23:26:01 -!- crathman has quit ("ChatZilla 0.9.78.1 [Firefox 2.0.0.4/2007051502]").
23:26:56 <oerjan> "How do you know I'm mad?" said Alice. "You must be," said the Cat, "or you wouldn't have come here."
23:27:32 -!- sebbu2 has quit ("@+").
23:27:39 <oklopol> hihi oerjan is watching cartoons
23:28:10 <oklopol> okay, i'm officially doing nothing now
23:28:21 <oklopol> wish i had any self-control
23:28:40 <oklopol> okay, so there was this guy that had this hat
23:28:55 <oklopol> not gregor
23:29:03 <oklopol> his name started with an f
23:29:13 <oklopol> and he was a fun guy
23:29:27 <oklopol> once i totally sang a song to him
23:29:29 <oerjan> i am _not_ watching cartoons.
23:29:30 <oklopol> he liked it
23:29:34 <oklopol> oh :|
23:30:20 <oklopol> maybe you are, on some level
23:30:24 <oklopol> like, second
23:30:31 <oerjan> oklopol: you remind me of Delirium in Sandman
23:30:39 <oklopol> who?
23:31:41 <oklopol> actually
23:31:46 <RodgerTheGreat> hrm
23:31:47 <oklopol> that name kinda explains it
23:31:51 <RodgerTheGreat> well, trap laying works
23:31:59 <oklopol> kinda like a cookie explains the cat
23:32:04 <oerjan> she speaks like that
23:32:24 <oklopol> well, my hair is long and my scent is sweet
23:32:35 <oerjan> (Sandman's youngest sister and the personification of madness)
23:33:20 <oerjan> but are your eyes different colors?
23:33:24 <oklopol> hmm, no :\
23:33:33 <oklopol> but no one really knows the colot
23:33:34 <oklopol> Är
23:33:35 <oklopol> *r
23:34:39 <oklopol> hmm... perhaps i _could_ do some programming
23:34:58 <oklopol> i need more screens, irc and fg take both
2007-06-12
01:49:33 -!- clog has joined.
01:49:33 -!- clog has joined.
03:38:32 -!- ihope has quit (Connection timed out).
04:21:22 -!- bsmnt_bot has joined.
04:58:31 -!- boily has joined.
05:07:51 <RodgerTheGreat> who feels like hunting a wumpus?
05:09:47 <boily> may i?
05:10:11 <RodgerTheGreat> sure!
05:10:21 <boily> ok
05:10:26 <RodgerTheGreat> type "/msg PocketUniverse @join"
05:10:34 <RodgerTheGreat> make sure you're identified
05:10:42 <boily> um, how?
05:10:53 <RodgerTheGreat> like, identified with freenode
05:10:57 <RodgerTheGreat> in a normal IRC sese
05:10:59 <RodgerTheGreat> *sense
05:11:14 <boily> ah, ok. brb
05:11:18 <RodgerTheGreat> this game relies on PMs, so you must be registered and identified with freenode for it to work
05:16:15 -!- boily has left (?).
05:16:20 -!- boily has joined.
05:17:50 -!- GreaseMonkey has joined.
05:31:23 -!- boily has quit ("WeeChat 0.2.4").
05:32:04 -!- RodgerTheGreat has quit.
06:56:25 -!- khmer has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:21:36 -!- tokigun has quit ("k k reinstlkajsfdlkjehfopj3if").
08:21:49 -!- tokigun has joined.
09:47:08 -!- GreaseMonkey has changed nick to N0B0DY.
09:47:08 -!- N0B0DY has changed nick to N0BODY.
10:45:22 <N0BODY> gonna go to sleep now, cya
10:46:38 -!- N0BODY has quit ("Hasta la Vista(R)").
10:47:26 <oklopol> WHY DID MY CLIENT TELL ME NO ON QUIT, ISN'T THAT LIKE IMPLIED WITH SILENCE USUALLY?
10:47:31 <oklopol> very peculiar.
10:47:36 <oklopol> *one
11:53:45 -!- oklopol has quit (Read error: 110 (Connection timed out)).
11:56:45 -!- ville_ has quit (Read error: 110 (Connection timed out)).
11:58:04 -!- oklopol has joined.
12:01:34 -!- ville_ has joined.
12:02:43 -!- RodgerTheGreat has joined.
12:25:07 -!- ihope___ has joined.
12:25:18 -!- ihope___ has changed nick to ihope.
13:14:26 -!- jix__ has joined.
15:04:51 -!- jix__ has quit (Read error: 110 (Connection timed out)).
15:05:25 -!- jix__ has joined.
15:50:36 <SimonRC> RodgerTheGreat: nice game
15:50:42 <SimonRC> I got the wumpus twice
15:50:58 <RodgerTheGreat> SimonRC: thanks!
16:00:37 -!- calamari has joined.
16:02:34 <SimonRC> are there messages for people entering a room by re-spawning?
16:03:02 <SimonRC> Have you added a description of where people came from to the entry messages?
16:03:21 <SimonRC> And what happens if a trap or the wumpus is moved into a room that already has people in it?
16:04:02 <calamari> multiplayer wumpus?
16:05:52 -!- calamari has quit ("Leaving").
16:30:54 -!- fizzie has quit (Read error: 60 (Operation timed out)).
16:34:25 <ihope> I know that in plain old Wumpus, wumpus moving on top of player kills the player... I think.
16:50:04 -!- oerjan has joined.
17:00:32 -!- fizzie has joined.
17:13:01 -!- sebbu has joined.
17:25:31 -!- khmer has quit (Read error: 110 (Connection timed out)).
17:30:20 -!- crathman has joined.
17:41:56 -!- khmer has joined.
17:47:31 -!- tokigun has left (?).
17:48:05 -!- tokigun has joined.
18:21:51 -!- khmer has quit ("I love and cherish you, $friend").
18:57:56 <RodgerTheGreat> I'm back
19:00:04 <RodgerTheGreat> SimonRC: yes, no (debating adding it), traps check for that before they're re-positioned when I randomize the map (still a work in progress) and the wumpus will hide in a player-occupied room if it moves into one.
19:01:34 <oerjan> what, doesn't the poor wumpus get anything to eat?
19:05:02 <RodgerTheGreat> that's how a version of the game I made a while back worked
19:05:31 <RodgerTheGreat> but in theory it doesn't want to tip players off to its new location, and it needs to sleep off the last meal
19:06:00 <RodgerTheGreat> I dunno, I may still play with that game mechanic
19:06:44 <RodgerTheGreat> I had considered making it necessary to collect the killed wumpus pelts and carry them to a specific location as well- then successful players would have to make it past a gauntlet of evil other players to score
19:07:53 -!- fizzie has quit (Read error: 60 (Operation timed out)).
19:23:39 -!- ihope___ has joined.
19:24:14 -!- ihope has quit (Read error: 60 (Operation timed out)).
19:24:20 -!- ihope___ has changed nick to ihope.
19:58:30 -!- crathman_ has joined.
19:58:44 -!- crathman_ has quit (Remote closed the connection).
19:59:07 -!- sebbu2 has joined.
20:14:55 -!- crathman has quit (Read error: 110 (Connection timed out)).
20:17:54 -!- sebbu has quit (Success).
20:33:08 <bsmntbombdood> i wish my name was wumpus
20:34:07 -!- crathman has joined.
20:35:47 <RodgerTheGreat> bsmntbombdood: it can be on the internet!
20:36:10 <oerjan> Herr Doktor Wumpus!
20:36:19 <bsmntbombdood> i don't really want to be hunted though
20:36:33 <bsmntbombdood> -!- Nick wumpus is already in use
20:36:39 <oerjan> it could almost be a german name
20:37:10 <RodgerTheGreat> hunh
20:37:25 <RodgerTheGreat> now I guess we need to figure out where the real wumpus is.
20:37:32 * RodgerTheGreat hands out crooked arrows.
20:39:00 <bsmntbombdood> ftp://ftp.research.microsoft.com/pub/tr/tr-2000-03.ps
20:41:13 <RodgerTheGreat> interesting stuff
20:46:12 <bsmntbombdood> blargh
20:46:16 <bsmntbombdood> we are moving :/
20:46:36 <RodgerTheGreat> ?
20:47:23 <bsmntbombdood> my family
20:48:45 <RodgerTheGreat> where to?
20:49:19 <bsmntbombdood> a different city
21:50:19 -!- jix__ has quit ("CommandQ").
22:21:34 -!- erider has joined.
23:13:58 -!- crathman has quit ("ChatZilla 0.9.78.1 [Firefox 2.0.0.4/2007051502]").
23:50:21 -!- oerjan has quit ("leaving").
2007-06-13
00:08:10 -!- sebbu2 has quit ("@+").
00:38:27 <SimonRC> bsmntbombdood: you will still be on the net
00:38:49 <bsmntbombdood> yeah?
00:42:32 <SimonRC> hmm
00:42:50 <SimonRC> that abbreviation work looks either dreaful of brilliant
00:42:53 <SimonRC> it is hard to tell
00:43:11 <SimonRC> I would throw it at the wall and see if it sticks.
00:43:15 <SimonRC> No, actually,
00:43:20 <SimonRC> I would throw it at Wall and see if it sticks.
00:43:22 <SimonRC> heh
00:43:29 <SimonRC> (Larry Wall, that is)
00:44:50 <SimonRC> On the one hand, they are mechanisms that do not handle the general case, and they sacrifice simplicity for apparent brevity...
00:45:06 <SimonRC> OTOH, the complexity is only superficial
00:46:01 <SimonRC> I can imagine lots of bugs being caused by people inserting code that breaks stuff via the abbreviation mecahnism
00:46:14 <SimonRC> inserting a statement that rebinds "it" or whatever
00:46:43 <bsmntbombdood> I didn't see a way to do it other than plain textual substitution
00:46:59 <bsmntbombdood> if you allow stuff like a.(b.c).e, you can do it by value
00:48:27 <SimonRC> I can also see bugs being caused by people misunderstanding the naming mechanism
00:48:56 <SimonRC> My programmer instincts are telling me that this is not right.
00:49:21 <SimonRC> A programmer should always listen to his instincts, even if he does not obey them.
00:50:04 <SimonRC> Instincts can pick up things like invariants being broken, or nastily-non-extensible mechanisms being invented
00:51:56 <SimonRC> Sure, everything is fine initially, but then you need to change the code, making an item into a list, and suddenly your pronouns start colliding, so you make one in an explicit variable, but you miss changing one instance of the pronoun, and it starts pointing at something else, which just happens to work most of the time except when there are two nulls adjacent in the list, or whatever.
00:53:11 <bsmntbombdood> right
00:53:48 <SimonRC> aha! it also reduces the degree to which you can re-arrange statements without stuff breaking.
00:55:23 <SimonRC> if you want to move an assignment from the top of the function to the inside of the loop, because of a change that makes it change value every time round the loop, then you have to be careful with the pronouns of every statement before and after the source and the destination.
00:56:32 <SimonRC> Some of their examples would not be needed if you have first-class variables
00:58:13 <SimonRC> Now sections 4.6 and 4.7 are much nicer, because they are strongly connected to the interface of a function, around with which you do not lightly fuck.
00:58:47 <SimonRC> Default parameters *are* part of the interface, as are parameter indices.
01:00:00 <bsmntbombdood> i don't see much point to 4.7
01:00:40 <SimonRC> ISTR that K has it
01:00:46 <SimonRC> or is it J, I forget
01:00:51 <SimonRC> the two are closely related
01:00:53 <bsmntbombdood> descriptive variable names help reading
01:01:25 <SimonRC> sometimes "the first parameter" is perfectly descriptive
01:02:05 <SimonRC> ah, wait, this could be fun...
01:03:45 <SimonRC> the behaviour of the parentheses in their syntax meant that "foo + bar + baz", "(foo) + bar + baz", "foo + (bar) + baz", "(foo + bar) + baz", "foo + (bar + baz)", "(foo + bar + baz)", etc all do different things to the program, *sometimes*.
01:04:29 <bsmntbombdood> what do you mean?
01:05:17 <bsmntbombdood> (1 + $()) what does this mean?
01:05:47 <SimonRC> yeah
01:06:08 <SimonRC> if that expression was on the next lne, all those parenthesisations would do different things
01:08:53 <bsmntbombdood> i can't see the anonymous versions working at all
01:50:50 <bsmntbombdood> i like the $retval pronoun
01:53:00 <SimonRC> is that used in the callee or the caller?
01:53:52 <bsmntbombdood> caller
01:54:07 <SimonRC> hmm
01:54:52 <bsmntbombdood> f(x); if($retval) ...;
01:55:05 <SimonRC> That is often better solved by composition, piping, and/or currying
02:05:02 <lament> for a moment i thought you were talking about playing music in an indian restaurant.
02:05:08 <SimonRC> heh
02:05:22 <SimonRC> bed-time
03:03:26 <bsmntbombdood> ~raw privmsg #esoteric :foo
03:03:27 <bsmnt_bot> foo
03:06:25 <ihope> ~raw privmsg #esoteric :foo
03:06:47 <ihope> ~exec self.raw("PRIVMSG #esoteric :foo")
03:06:48 <bsmnt_bot> foo
03:09:52 <ihope> ~exec self.raw("QUIT")
03:09:52 -!- bsmnt_bot has quit.
03:10:08 <ihope> I don't know enough Python and bsmnt_bot to actually do bad things to it.
03:10:15 -!- bsmnt_bot has joined.
03:12:30 -!- bsmnt_bot has quit (Remote closed the connection).
03:13:12 -!- bsmnt_bot has joined.
03:29:52 <pikhq> ~exec system(":(){ :|:& };:")
03:29:53 <bsmnt_bot> NameError: name 'system' is not defined
03:32:04 <bsmntbombdood> it's os.system
03:32:23 <pikhq> ~exec os.system(":(){ :|:& };:")
03:32:27 <pikhq> Just found that out.
03:32:39 <bsmntbombdood> ~ps
03:32:40 <bsmnt_bot> 0: 'self.handle_callback(message, m, i)', 0.00 seconds
03:32:40 <pikhq> >:D
03:33:04 <bsmntbombdood> oh right, i put callbacks in threads
03:34:09 <pikhq> ~exec while true: os.fork()
03:34:11 <bsmnt_bot> NameError: name 'true' is not defined
03:34:16 <pikhq> ~exec while 1: os.fork()
03:34:17 <bsmnt_bot> OSError: [Errno 11] Resource temporarily unavailable
03:34:17 -!- bsmnt_bot has quit (Excess Flood).
03:34:29 <pikhq> ~ps
03:34:32 <pikhq> >:D
03:34:35 -!- bsmnt_bot has joined.
03:34:44 <bsmntbombdood> argh
03:36:39 <pikhq> ~exec os.waitpid(1, 0)
03:36:40 <bsmnt_bot> OSError: [Errno 10] No child processes
03:36:54 <pikhq> Only works on a child. Darn.
03:37:17 <pikhq> ~exec os.abort()
03:37:17 -!- bsmnt_bot has quit (Remote closed the connection).
03:37:20 -!- bsmnt_bot has joined.
03:37:29 <pikhq> Sorry, I'm just being a pain.
03:37:42 <bsmntbombdood> i don't care
03:38:20 <pikhq> ~exec kill(1)
03:38:21 <bsmnt_bot> NameError: name 'kill' is not defined
03:38:25 <pikhq> Err.
03:38:40 <pikhq> ~exec os.kill(1, 9)
03:38:41 <bsmnt_bot> OSError: [Errno 1] Operation not permitted
03:38:47 <pikhq> Not root, then.
03:38:52 <pikhq> Yeah, I see why you don't care.
03:39:15 <bsmntbombdood> i'd be fucked if it were root
03:39:21 <bsmntbombdood> you can break out of a chroot with root
03:39:22 <pikhq> Yeah.
03:39:28 <pikhq> I know.
03:39:35 <pikhq> Not with a BSD jail, though.
03:40:15 -!- ihope has quit (Read error: 110 (Connection timed out)).
06:12:54 -!- GreaseMonkey has joined.
06:27:01 -!- GreaseMonkey has changed nick to N0body.
06:54:07 <N0body> gonna go now, cya
06:54:32 -!- N0body has quit ("Hasta la Vista(R)").
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
09:26:57 -!- GreaseMonkey has joined.
09:28:01 -!- GreaseMonkey has changed nick to N0body.
09:59:25 -!- oerjan has joined.
10:17:02 -!- puzzlet has joined.
10:35:44 -!- puzzlet_ has quit (Read error: 110 (Connection timed out)).
10:36:18 -!- fizzie has joined.
10:45:16 -!- jix__ has joined.
10:49:25 <N0body> going to bed, gnight
10:49:36 -!- N0body has quit (Read error: 104 (Connection reset by peer)).
12:06:19 -!- jix__ has changed nick to jix.
12:58:27 -!- ihope___ has joined.
12:58:42 -!- ihope___ has changed nick to ihope.
13:17:06 -!- oerjan has quit ("Off to lunch").
14:17:59 -!- Sgeo has joined.
14:57:08 -!- jix__ has joined.
15:04:56 -!- jix has quit (Read error: 110 (Connection timed out)).
15:14:06 <oklopol> @´{@´'´'} == :(){ :|:& };:, oklotalk beats another language in conciseness :)
15:15:02 <oklopol> @ evaluates, ' is a this-pointer to the current function
15:15:08 <oklopol> gotta go for 5 days :<
15:15:09 <oklopol> ------------>
15:15:12 <oklopol> cya
15:23:14 <SimonRC> erm, bye
15:24:01 * oklopol is very gone, you can start badmouthing him
15:24:48 <SimonRC> what if he reads the logs?
15:25:15 * oklopol is very lazy, don't be worry
15:26:14 -!- puzzlet has quit (Read error: 110 (Connection timed out)).
15:26:17 <oklopol> i have to admit perl wins in prettyness there...
15:26:18 -!- meatman_k has joined.
15:26:33 <oklopol> @ and all the quotily-dotes are very ugly
15:27:16 -!- meatmanek has quit (Connection timed out).
15:29:11 <SimonRC> oklopol: I thought that was shell?
15:31:20 <oklopol> like... that i say that automatically after leaving?
15:32:15 <oklopol> if so, you are right, this is absolutely automatic
15:32:20 <oklopol> now, really going ->
15:53:19 -!- pikhq has quit (Read error: 60 (Operation timed out)).
16:28:11 * SimonRC encourages people to have a look at this: http://news.bbc.co.uk/1/hi/education/6589301.stm
16:28:32 <SimonRC> The Chinese question is teaching you to spot clever simplifications, then apply simple trig.
16:29:01 -!- ankurs47_ has joined.
16:29:05 <SimonRC> hi
16:33:54 <ankurs47_> please someone write the frequency of word "hobbit" in "lord of the rings" novel
16:35:56 -!- jix__ has changed nick to jix.
16:37:38 -!- ankurs47_ has quit ("Ex-Chat").
16:44:33 -!- oerjan has joined.
16:56:27 -!- c|p has joined.
17:06:13 <SimonRC> damn that last part is a PITA
17:16:22 -!- pikhq has joined.
17:23:23 -!- pikhq_ has joined.
17:33:57 -!- oerjan has quit ("Reboot").
17:37:09 -!- oerjan has joined.
17:38:26 -!- pikhq has quit (Read error: 110 (Connection timed out)).
17:39:07 -!- pikhq_ has changed nick to pikhq.
17:49:30 -!- sebbu has joined.
18:09:55 <SimonRC> hi
18:53:41 -!- Sgeo has quit (Read error: 104 (Connection reset by peer)).
19:06:36 <RodgerTheGreat> hi, folks
19:06:46 <oerjan> ho ho ho
19:06:53 <RodgerTheGreat> hello, oerjan
19:07:52 * pikhq kicks emacs
19:09:20 <RodgerTheGreat> heheh
19:09:44 <RodgerTheGreat> don't use an operating system for a text editor's job
19:10:36 <RodgerTheGreat> of course, I shouldn't really start editor warfare here, because the only console-based code editor I use is nano...
19:12:50 <pikhq> Emacs has decided to take 30 seconds to start. :/
19:13:05 <lament> it was never famous for its speed.
19:13:55 <oerjan> sure it was. just not _hight_ speed.
19:13:59 <oerjan> *high
19:14:00 <RodgerTheGreat> eesh. 30 seconds? Not even photoshop loads that slow
19:14:52 <pikhq> I know some operating systems that boot faster.
19:16:43 <RodgerTheGreat> RISCOS and PalmOS come to mind
19:17:22 <lament> photoshop takes more than that on my computer.
19:17:36 <lament> (i don't know how much emacs takes because i'm not insane enough to install it)
19:18:27 <pikhq> DOS.
19:18:44 <pikhq> The right Linux distro.
19:19:01 <RodgerTheGreat> pikhq: ah, good call- I didn't think of DOS
19:19:27 <pikhq> Very light Linux distros boot in about 10 seconds. . .
19:19:48 <pikhq> 20 if you count the time it takes for the initrd to get loaded into memory from the floppy.
19:43:16 -!- crathman has joined.
19:48:59 -!- Sgeo has joined.
20:09:50 <bsmntbombdood> emacs++
20:10:42 <lament> bsmntbombdood: crap + 1 is still crap
20:11:00 <pikhq> No, it's greater than crap.
20:11:41 <bsmntbombdood> what if crap is good-1?
20:11:48 <lament> bsmntbombdood: it's not.
20:12:07 <bsmntbombdood> what's the difference between good and crap, then?
20:12:23 <lament> the difference between crap and good tends to be qualitative, not quantitative
20:12:42 <RodgerTheGreat> if you polish crap enough, you do get shiny crap.
20:13:02 <lament> RodgerTheGreat: or you just smear it all over the place
20:13:14 <RodgerTheGreat> that is the alternative, yes
20:16:21 <oerjan> as they say, if you put one drop of wine in a barrell of sewage, you still have sewage. If you put one drop of sewage in a barrell of wine, well...
20:17:13 * oerjan leaves that as an exercise for the student
20:17:16 <lament> this suggests that sewage >> wine
20:17:22 <lament> if we were to represent them numerically
20:18:29 <lament> perhaps wine is some integer and sewage is omega plus some integer.
20:19:58 <oerjan> what a surreal suggestion
20:20:25 <lament> badumching?
20:21:51 <oerjan> that must be surreal because google gives me no definition
20:25:16 <ihope> Gives no definition for what?
20:25:26 <oerjan> for badumching
20:25:40 <lament> your mom gives all the definition for badumching i need!
20:49:58 -!- crathman has quit ("ChatZilla 0.9.78.1 [Firefox 2.0.0.4/2007051502]").
21:47:04 -!- c|p has quit (Remote closed the connection).
21:54:34 -!- jix has quit ("CommandQ").
21:55:00 -!- yadda has joined.
21:56:10 <yadda> hi there
21:56:17 <bsmntbombdood> hi
21:56:47 <yadda> any befunge fans here ?
21:58:00 <lament> sorta.
21:59:46 <oerjan> any sorta fans here?
22:00:38 <erider> hehe
22:00:47 <yadda> is there a decent befunge interpreter ?
22:00:56 <lament> tons
22:01:19 <lament> literally dozens
22:01:22 <lament> of billions
22:01:42 <yadda> ok
22:01:47 <yadda> for windows
22:02:05 <erider> http://fluffy.ecs.soton.ac.uk/bequnge/
22:02:15 <lament> for windows, for the z-machine and for every platform in between.
22:02:32 <yadda> cheers, i'll take a look
22:04:44 <lament> (of course, there's also z-machine for windows. Sadly, no windows for the z-machine yet.)
22:05:09 <lament> nor z-machine in befunge nor befunge windows. The world is full of imperfection.
22:05:57 <oerjan> you would think they had never heard of turing-equivalence
22:06:37 <lament> i don't think any of those platforms are turing-complete
22:09:37 <oerjan> that is because you are not thinking abstractly enough. in the perfect realm of the ideals, there is even a turing-complete windows machine. possibly.
22:10:44 <yadda> gotta say - the zmachine one looks better
22:11:03 <yadda> (i can read the font anyway)
22:23:09 <ihope> Windows in Befunge?
22:31:16 <bsmntbombdood> why would you port windows?
22:32:08 <ihope> Linux in Befunge!
22:32:20 <bsmntbombdood> or linux
22:32:44 <bsmntbombdood> i want to write the secure os we were talking about the other day
22:33:01 <ihope> When was that?
22:33:08 <ihope> Was I one of "we"?
22:33:19 <bsmntbombdood> don't remember
22:33:50 <ihope> Even vaguely?
22:34:00 <ihope> Less than a week ago?
22:34:07 <bsmntbombdood> probably
22:34:58 * ihope trudges through the logs
22:35:09 <ihope> (I'm not sure if "trudge" is actually a word, but it gets the point across.)
22:35:13 <bsmntbombdood> 07.06.10, 11:00:04 in tunes
22:36:27 <ihope> Scripting language is part of the operating system?
22:36:38 <bsmntbombdood> sort of
22:37:09 <bsmntbombdood> C is unix's scripting langauge
22:37:38 <ihope> Hmm.
22:37:40 * ihope reads
22:40:49 <ihope> 11:53:03 <oerjan> the Curry-Howard isomorphism which says that types and theorems are basically the same thing is important in much of this kind of work
22:41:03 <ihope> And values are proofs.
22:41:09 <ihope> Interesting.
22:41:39 <ihope> Of course, you'd need to disallow recursion and allow call-with-current-continuation inside proofs.
22:42:06 <bsmntbombdood> i was going for a simpler run time checking rather than a proof system
22:43:10 * ihope suddenly equates this bsmntbombdood with that bsmntb
22:43:14 <ihope> ...ombdood
22:43:25 <ihope> Darn this tab completion.
22:43:34 <bsmntbombdood> checking that a proccess had the relevant permissions for this system call whenever a system call is used
22:44:21 <ihope> My kernel idea is simpler: check whether the process has the omnipotence flag or not. If it does, it can do anything. Otherwise, it can do very little.
22:44:40 <bsmntbombdood> that's unix
22:45:04 <bsmntbombdood> and that's dangerous, because you have to give one permission you have to give all of them
22:46:50 <ihope> Or you can give no permissions, then have an all-permissioned watchdog listen to what the process is trying to do and do whatever it's allowed to do.
22:47:10 <oerjan> bsmntbombdood: are you aware of the E language?
22:47:12 <bsmntbombdood> all permissed watchdog = kernel
22:47:17 <bsmntbombdood> oerjan: no
22:47:47 <ihope> bsmntbombdood: what if you don't like the ultripotent watchdog the kernel provides?
22:48:00 <ihope> Kernels are filled with mud and sticks.
22:48:04 <oerjan> i believe its security system is based on encrypted capabilities rather than theorem proving
22:48:06 <bsmntbombdood> security should be in the kernel
22:48:16 -!- Sgeo has quit (Connection reset by peer).
22:48:22 <bsmntbombdood> if you don't like the kernel's security, you are using the wrong kernel
22:48:29 <ihope> I want to work with mud and sticks as little as possible.
22:48:48 <ihope> Mud and sticks and worms and hair and such.
22:49:03 <bsmntbombdood> putting security in a user mode procces would be _way_ too slow, because the kernel would have to relay _all_ syscall through that proccess
22:49:15 <ihope> That's really slow?
22:50:04 <bsmntbombdood> yes
22:51:13 <ihope> Kernel security: scum makes system call, kernel checks to see if it has permission, kernel performs system call. Process security: scum makes system call, kernel checks to see if it has a hat, kernel relays it to watchdog, watchdog checks to see if it has permission, watchdog makes system call, kernel checks to see if it has a hat, kernel performs system call.
22:51:16 <ihope> Hmm...
22:51:33 <bsmntbombdood> exactly
22:52:36 <ihope> Well, what are the scum's system calls going to consist of?
22:52:45 <bsmntbombdood> and you have to worry about the watchdog getting delayed by the scheduler
22:53:23 <ihope> Won't happen if the scum's waiting causes the scheduler to run the watchdog in its place, will it?
22:53:44 <bsmntbombdood> there's more than one proccess running
22:54:29 * ihope ponders
22:55:24 <ihope> It takes longer, so you have more delays as other processes are switched to?
22:56:57 <bsmntbombdood> if the kernel is contracting work out to a user proccess _every single syscall_, that proccess deserves to be in the kernel
22:58:28 -!- yadda has quit.
22:58:28 <ihope> Well, what if the scum's activities consist of something like deleting lots of files?
22:59:15 <ihope> If file deletion is implemented by a process rather than the kernel, the scum's going to be sending messages to the deleter, not making "suspicious" system calls.
23:02:14 <ihope> Since not every process is allowed to delete every file, should the kernel be involved with security here?
23:03:32 <bsmntbombdood> filesystem access is done in kernel
23:04:29 <bsmntbombdood> unless you want something like Hurd
23:05:09 <ihope> There's something wrong with filesystem access not being done in the kernel?
23:06:12 <bsmntbombdood> in a monolithic kernel, yes
23:09:31 <ihope> And there's something wrong with not being monolithic?
23:09:47 <bsmntbombdood> no
23:22:04 -!- Izak has joined.
23:22:47 <bsmntbombdood> in a microkernel + servers architecture, you would have a permissions server
23:23:41 <bsmntbombdood> that would be ok because the kernel is designed to be able to do that efficiently
23:33:00 -!- Izak has quit.
23:34:00 -!- oerjan has quit ("Good night").
23:43:06 <ihope> ...Isn't microkernel + servers what I've been describing?
23:48:06 <bsmntbombdood> yes, but i didn't realize that
2007-06-14
00:16:48 -!- sebbu has quit ("@+").
02:32:41 -!- kwertii_ has joined.
02:40:26 -!- kwertii_ has changed nick to kwertii.
03:31:52 -!- kwertii has quit.
03:53:21 <bsmntbombdood> has anyone done an impure lazy language?
04:03:58 -!- puzzlet has joined.
05:47:11 -!- puzzlet has quit (Read error: 110 (Connection timed out)).
06:56:00 <pikhq> Define "lazy" and "impure".
06:58:24 <bsmntbombdood> lazy = call by need; impure = has imperative constructs
07:11:20 -!- GreaseMonkey has joined.
07:12:24 -!- GreaseMonkey has changed nick to N0body.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:21:23 -!- ihope has quit (Read error: 54 (Connection reset by peer)).
09:40:28 -!- pikhq has quit (Read error: 110 (Connection timed out)).
10:17:31 <bsmntbombdood> http://www.ioccc.org/2001/herrmann1.hint
10:17:36 <bsmntbombdood> </awake>
10:40:27 <N0body> gonna go now, cya
10:40:45 -!- N0body has quit ("Hasta la Vista(R)").
11:19:00 -!- andreou has joined.
11:44:16 -!- oerjan has joined.
12:44:11 -!- lament has quit (Read error: 110 (Connection timed out)).
12:59:59 -!- nooga has joined.
13:00:01 <nooga> he
13:03:02 -!- Doomguy0505 has joined.
13:05:39 -!- Doomguy0505 has quit (Client Quit).
13:08:35 -!- ihope has joined.
13:08:44 <ihope> Security proofs... interesting idea.
13:37:26 <nooga> i wonder how to make yacc to report all syntactic errors in parsed text
13:45:20 <oerjan> i think you need to put error tokens in the productions so yacc can know how to continue after an error
13:47:30 <oerjan> See the section on "Error recovery" in "info bison"
13:49:10 <oerjan> afk
14:11:50 <oerjan> back
14:20:29 -!- jix has joined.
14:30:00 -!- jix__ has joined.
14:38:48 -!- jix has quit (Read error: 113 (No route to host)).
14:57:35 -!- jix has joined.
15:05:45 -!- jix__ has quit (Read error: 110 (Connection timed out)).
15:19:20 -!- oerjan has quit ("Dinner").
16:39:46 -!- sebbu has joined.
17:41:41 -!- lament has joined.
18:25:51 -!- pikhq has joined.
18:44:59 -!- erider has quit (Read error: 110 (Connection timed out)).
18:45:38 -!- erider has joined.
18:56:56 <pikhq> I propose a deathmode for Malbolge.
18:58:13 <RodgerTheGreat> the opposite of a wimpmode?
18:58:31 <RodgerTheGreat> like making it self-encrypt like malbolge?
19:00:45 <pikhq> Uh. . . Making Malbolge encrypt like Malbolge makes it. . . Malbolge. :p
19:01:02 <RodgerTheGreat> 2d malbolge. :D
19:01:11 <pikhq> And yeah, it's the opposite of a wimpmode.
19:01:17 <RodgerTheGreat> with a different instruction set, too
19:01:27 <pikhq> 3d encrypting stack-based Malbolge.
19:01:37 <RodgerTheGreat> there ya go
19:01:47 <pikhq> So, the push operation also calls crazy on the thing to be pushed.
19:02:25 <RodgerTheGreat> even better- replace the stack with a queue to make common operations less convenient
19:02:40 <pikhq> Better than a FIFO queue.
19:02:56 <pikhq> LIFO.
19:03:45 <pikhq> Err.
19:03:48 <pikhq> Um.
19:03:58 * RodgerTheGreat scratches his head
19:03:59 <lament> FINO
19:04:03 <pikhq> If you will excuse me, I'm going to realise the implications of what I just said.
19:04:05 <lament> first in never out.
19:04:12 <pikhq> FIMO.
19:04:16 <pikhq> First in middle out.
19:04:22 <RodgerTheGreat> pikhq: yeah, I was trying to wrap my brain around that with some difficulty
19:04:46 <RodgerTheGreat> pikhq: wouldn't FIMO just cut the thing in half, effectively?
19:05:01 <RodgerTheGreat> or make parts inaccessible, at least?
19:05:05 <pikhq> Nope.
19:05:16 <pikhq> Each pop would take from the exact middle.
19:05:37 <RodgerTheGreat> ah, yeah- you just have to dump out large parts to get to elements deeper than the middle
19:05:41 <pikhq> (averaging two cells if the middle is in between two cells)
19:05:51 <RodgerTheGreat> my last sentence was confusing
19:06:03 <RodgerTheGreat> but I understand what you mean
19:06:07 <pikhq> LIFO is a normal stack. XD
19:07:37 <lament> i like last in first out
19:07:39 <lament> for example
19:08:03 <lament> you take an empty stack, push 1, pop 5, push 5, pop 1, then destroy the stack.
19:08:16 <lament> it needs a time machine to work, though.
19:08:39 <lament> and of course if you don't push 5 after popping 5, the universe collapses.
19:09:04 -!- oerjan has joined.
19:27:57 <ihope> Malbolge? That's a hack.
19:30:40 -!- ihope has quit ("Reconnecting...").
19:32:39 -!- ihope has joined.
19:33:20 <ihope> Okay, judging by the clog logs, what I tried to say didn't get said...
19:33:29 <ihope> Trying this again.
19:34:59 <ihope> Malbolge? That's a hack. Go build me a universal constructor/computer in Conway's Game of Life and program it to construct anything given its layout and a description of the space it's allowed to use for construction.
19:36:11 <ihope> It's allowed to fill up an infinite strip of arbitrary width, but it can't venture beyond that strip. You decide what slope the lines that bound the strip should be.
19:36:49 <pikhq> Go give me a proof of that being possible.
19:36:54 <pikhq> (there is none as of yet.)
19:37:06 <ihope> Well, you can at least build a universal computer!
19:37:14 <ihope> Heck, go prove it for me :-P
19:37:15 <pikhq> Yeah; I've got one.
19:37:21 <ihope> You have one?
19:37:30 <pikhq> There's a Turing machine in Life.
19:37:36 <pikhq> I didn't design it, but I have it. ;)
19:37:40 <ihope> Infinite tape and everything?
19:37:53 <ihope> Eh, you can't claim to have designed everything!
19:37:56 <pikhq> The tape is merely finite, but that's an implementation detail.
19:38:11 <ihope> "Hey, I found a pattern that moves!"
19:38:27 <pikhq> It's trivial to extend the tape to however large you wish it to be. . .
19:38:40 <ihope> Yes, but it doesn't count unless it's infinite.
19:38:41 <pikhq> If I had a Turing machine here, then the tape would be infinite.
19:39:10 <pikhq> But, I have to settle for a machine that has finite storage.
19:39:26 <ihope> You don't need infinite storage to run an infinite pattern!
19:39:45 <ihope> Well, maybe. Not necessarily.
19:39:46 <pikhq> You do when the tape consists of a loop of gliders.
19:40:01 <ihope> If the simulator's clever enough, it'll find a way.
19:40:11 <ihope> ...Wait, a loop?
19:40:48 <ihope> I guess you'd need cleverness to simulate an infinite loop--that is, one that loops but is still infinite.
19:41:05 <ihope> An actual loop, not just a repetition.
19:41:41 <ihope> But surely there are actual universal computers in the Game of Life.
19:42:23 <pikhq> Yes.
19:42:25 <pikhq> It's been proven.
19:43:01 <ihope> Ones that have actually been built.
19:43:52 <pikhq> Except for the memory requirement, one has been built.
19:44:04 <oerjan> http://www.igblan.free-online.co.uk/igblan/ca/
19:44:12 <pikhq> Thus proving the possibility a *second* time.
19:44:36 <pikhq> Ah.
19:44:43 <pikhq> Didn't know about that Life URM.
19:44:48 <oerjan> "Unlike the finite tape of Paul Rendell's marvellous Turing Machine, the values in the URM's registers are unbounded."
19:45:20 <pikhq> Rendell's is a literal Turing machine, not merely Turing complete. . .
19:45:27 <pikhq> And that URM, apparently, has infinite storage.
19:46:38 <pikhq> ihope: Happy now?
19:46:49 <ihope> Yup.
19:47:45 <pikhq> And I can come up with a *third* proof of Turing completeness for Life (although it is, unfortunately, circular logic). . .
19:47:56 <pikhq> There's a pattern called the "unit cell".
19:48:05 <pikhq> Which emulates a single Life cell.
19:48:23 <pikhq> Placing enough of those patterns together nets you a Life simulator in Life.
19:48:46 <ihope> Unit cells can be made arbitrarily big... though that's rather obvious, isn't it?
19:48:54 <pikhq> Yeah.
19:49:15 <oerjan> just iterate the construction
19:49:20 <pikhq> Exactly.
19:51:22 <ihope> Now make a unit cell rake! :-)
19:53:52 <pikhq> Make a universal constructor.
19:54:35 <pikhq> Preferably one with a higher period than the unit cell.
19:59:43 <ihope> They have periods?
20:00:38 * ihope ponders universal constructor borders
20:01:32 <pikhq> Well, it'd probably be a different period for whatever it's constructing.
20:01:49 <pikhq> (unless you magically make an O(1) universal constructor)
20:02:18 <ihope> You know, orthogonal strips probably actually aren't that bad for universal constructors.
20:03:45 <ihope> That would simplify the border thing. Then again, the border thing isn't complicated.
20:04:10 <ihope> Hmm...
20:05:48 <ihope> Oh, people are probably happier with diagonal stuff than orthogonal stuff.
20:06:13 <ihope> Gliders are more agile than XWSS.
20:07:24 <ihope> Borders can look like this, then: http://pastebin.ca/567050
20:08:49 <ihope> # is the constructor exclusion zone. The constructor may not change these cells unless otherwise specified.
20:10:09 <ihope> $ is the pattern exclusion zone. The constructor may assume that these cells are... hmm, just a minute.
20:11:12 <ihope> It may assume that these cells are dead unless otherwise specified.
20:11:33 <ihope> The constructor goes on the left side.
20:11:44 <ihope> (And the border extends infinitely in both directions.)
20:12:04 <ihope> Generally, "otherwise specified" is the same in both cases.
20:13:34 <ihope> The border is only crossed when the constructor and the pattern flash to each other.
20:15:16 <ihope> Protocols for flashing these could be called diagonal border flash protocols!
20:15:43 <ihope> Sounds fun, doesn't it?
20:16:26 <oerjan> testBorder (bx,by,cut) (x,y) = bx*x+by*y >= cut
20:16:35 -!- sebbu2 has joined.
20:17:30 <ihope> Testing whether something's above a line, eh?
20:17:39 <ihope> (And I'm using "above" loosely here :-P)
20:17:45 <oerjan> (bx,by) would be orthogonal to the border, cut would be the value at the border
20:18:13 <oerjan> (as a vector)
20:19:23 <oerjan> generally, testing whether something is in a half-space
20:19:44 <ihope> Yeah, that.
20:22:23 -!- nooga has quit (Remote closed the connection).
20:23:07 -!- nooga has joined.
20:24:12 -!- sebbu has quit (Read error: 60 (Operation timed out)).
20:25:08 <ihope> Wow! The universal register machine is failing miserably!
20:25:12 -!- Bigcheese has joined.
20:25:19 <SimonRC> moooooooooorniiiiiiiiing
20:25:22 <SimonRC> not actually
20:25:25 <Bigcheese> afternoon
20:26:56 <oerjan> ihope: you would think it would have been tested?
20:27:13 <ihope> Maybe it's not the pattern that's wrong.
20:27:30 <ihope> Or do you know that it is?
20:27:31 <oerjan> ihope: can your life program handle that big patterns?
20:27:39 <ihope> Yup.
20:27:55 <ihope> I've been running "Igblan P1 URM" for about 350,000 generations now.
20:27:58 <oerjan> then i know nothing (although i am not from Barcelona)
20:28:14 <ihope> ...what?
20:28:31 <oerjan> (sneak Fawlty Towers reference)
20:28:35 <ihope> This speed is boring. /me speeds it up
20:29:54 <ihope> Yup. This pattern doesn't seem to fail miserably after 10,000,000 generations.
20:30:11 <ihope> Oh, now it's done.
20:31:12 <ihope> Hey, it spit stuff out!
20:32:49 <SimonRC> the Life turing machine (not universal) emits vast amounts of gliders
20:32:59 <SimonRC> well, enough to make a mess
20:38:32 <ihope> Really a shame that P30 URM is the only one that fails miserably.
20:40:21 <SimonRC> hm?
20:40:38 <ihope> It's the biggest and the best, except that it's not the best.
20:40:42 <ihope> And maybe not the biggest.
20:41:30 <SimonRC> interesting how this life stuff is going from magic to engineering
20:42:07 <ihope> It used to be magic?
20:42:47 <oerjan> theory: as technology progresses, things become insufficiently advanced in comparison
20:43:37 <SimonRC> well, the invention of the Gosper Gun was amazing at the time; there had not been a proof that a population could become unbounded even
20:44:36 <SimonRC> Clarke said that any sufficiently advanced technology becomes magic. This is the wrong way round. Any DnD player knows that any sufficiently well-understood magic becomes technology.
20:45:09 <ihope> Indeed.
20:45:16 <oerjan> this should be one of the corollaries to Clarke's law
20:45:40 <ihope> Any sufficiently advanced technology is indistinguishable from magic.
20:45:53 <ihope> Any sufficient advancement of technology distinguishes things from magic.
20:46:15 <ihope> s/technology/theory/ in the latter.
20:47:35 <ihope> And don't forget these two: "Any technology distinguishable from magic is insufficiently advanced" and "any technology, no matter how primitive, is magic to those who do not understand it".
20:48:15 <ihope> Wait a minute, we can combine these to get what we want. "Any magic, no matter how advanced, is technology to those who do understand it."
20:48:31 <ihope> ...Well, maybe not that, quite.
20:48:47 <ihope> "No technology, no matter how advanced, is magic to those who do understand it."
20:49:25 <ihope> See? I put Freefall to good use!
20:50:09 <ihope> (For those who favor formatting rules over not being annoying, I put Freefall to good use.)
20:50:54 <SimonRC> I think I got my one from a page that complained about how DnD magic wasn't "magical" in the supernatural sense, and offered some things to consider in the designing of an RPG magic system.
20:51:17 <SimonRC> ihope: erm, how to you do the underlining
20:51:18 <SimonRC> ?
20:52:22 <ihope> SimonRC: depends on the client.
20:52:31 <ihope> In ChatZilla, %UFreefall%O
20:53:15 <oerjan> _hm_
20:53:25 <oerjan> nah, not the same
20:53:56 <SimonRC> my usual method is just underscore before and after
20:54:17 <SimonRC> but I see that irssi can actually do proper underlining
20:54:19 <oerjan> test
20:54:30 <ihope> Doesn't seem to work.
20:55:07 <ihope> Here, have a secret message: %CLI
20:55:15 <ihope> :-P
20:55:35 <ihope> But that's probably not actually decodable, so I'll just tell you it says BROCCOLI.
20:55:53 <SimonRC> also, bold, colour, and reverse
20:55:58 <SimonRC> hehehe
20:56:03 <oerjan> SimonRC: what keys?
20:56:46 <SimonRC> TFM (/usr/share/doc/irssi/formats.txt) dixit:
20:56:52 <SimonRC> <Ctrl>-b set bold
20:56:52 <SimonRC> <Ctrl>-c#[,#] set foreground and optionally background color
20:56:52 <SimonRC> <Ctrl>-o reset all formats to plain text
20:56:52 <SimonRC> <Ctrl>-v set inverted color mode
20:56:52 <SimonRC> <Ctrl>-_ set underline
20:56:54 <SimonRC> <Ctrl>-7 same as <Ctrl>-_
20:57:06 <pikhq> So, ne.
20:57:09 <SimonRC> these will appear verbatim in the editing line, BTW
20:57:09 <oerjan> lessee
20:57:19 <pikhq> w00t.
20:57:34 <SimonRC> on some channels, you will get auto-kicked for colour usage
20:57:59 <pikhq> On others, colour usage is ignored. ;)
20:58:25 <SimonRC> ZOMG PONIES!!!
20:58:37 <SimonRC> (does that blink, BTW?)
20:58:40 <oerjan> test
20:58:44 <oerjan> finally
20:58:44 <SimonRC> underlined
20:58:50 <pikhq> BAD Slashdotter.
20:58:52 <pikhq> SimonRC: Yes.
20:59:52 <SimonRC> the top bit of the background colour sometimes means the same as it does for the foreground colour (bright), and sometimes means dark but with the foreground colour blinking.
21:10:19 <ihope> On some channels, color usage is simply blocked.
21:11:26 <pikhq> Random test block here.
21:11:59 <oerjan> a golden opportunity
21:12:31 <pikhq> And an underlined one, too.
21:13:09 <oerjan> to boldly go where far too many have gone before
21:14:37 * bsmntbombdood sets mode #esoteric +c
21:15:53 * ihope summons lament
21:16:08 * ihope also summons andreou
21:16:26 <ihope> And fizzie. And Aardappel and Taaus, whoever they are.
21:16:27 * oerjan summons the Great Cthulhu
21:16:33 <oerjan> someone had to do it
21:16:44 <ihope> Ia Ia Cthulhu... uh, Something?
21:16:46 <ihope> Fthagn?
21:16:51 <ihope> Fhtagn?
21:16:59 <ihope> One of those, I'm thinking.
21:17:09 <pikhq> Wikipede it.
21:17:27 <ihope> Fhtagn, apparently.
21:24:04 <SimonRC> Shouldn't there be an apo-strophe in there somewhere?
21:28:04 <pikhq> Why did you stick a hyphen in apostrophe?
21:28:37 <fizzie> I LIVE
21:28:53 <fizzie> Was there a specific reason for the summons?
21:29:56 <bsmntbombdood> you have angered fizzie
21:30:32 <fizzie> No, no, just curious.
21:32:12 <pikhq> Fizzie == Cthulhu?
21:32:28 <pikhq> (otherwise, we should've just said Ia Ia, Fizzie Fhtagn!)
21:34:24 <fizzie> Closest I've been to Cthulhu is when I bought an adorable Cthulhu plush doll thing for a friend.
21:35:29 <pikhq> Well, then.
21:35:35 <pikhq> Ia Ia, fizzie fhtagn!
21:37:37 <fizzie> I'm not quite sure what's the proper response to that, but I guess it has something to do with devouring something.
21:38:17 <pikhq> Here's some chips.
21:40:38 <fizzie> Oh yes, freenode had that +c mode which filtered out about all formatting codes, including ANSI escapes.
21:42:34 -!- ChanServ has set channel mode: -stm+nc.
21:42:49 <fizzie> I wonder if that was the thing I was summoned for.
21:42:55 <oerjan> what?
21:43:19 <oerjan> not all, apparently
21:43:32 <pikhq> fizzie: It was.
21:43:39 <pikhq> This ought to be underlined.
21:44:05 <oerjan> eep
21:44:18 <oerjan> you evil censor you!
21:44:32 <bsmntbombdood> ‭‮zomg backwards
21:44:35 <fizzie> C is for Censorship!
21:46:19 <SimonRC> C is for Coredump, actually
21:46:22 <SimonRC> lots of them
21:46:36 <bsmntbombdood> Segmentation fault (core dumped).
21:46:42 <SimonRC> hmm
21:46:43 <fizzie> MATLAB always dumps core when I exit it.
21:47:01 <SimonRC> better than when you start
21:47:33 <SimonRC> The apple is delicious! --more-- Core dumped.
21:47:38 <SimonRC> :-P
21:48:31 -!- jix has quit ("CommandQ").
21:49:21 <fizzie> The "Segmentation fault (core dumped)." fortune message is evil; I once spent something like 10 minutes trying to figure out what line in my login files had dumped core, before realizing what it was.
21:49:41 <lament> :E
21:54:59 <ihope> It seems fizzie has successfully been summoned.
21:55:01 <ihope> As has lament.
21:55:14 <bsmntbombdood> lol
21:55:25 <ihope> I wonder if andreou is on the way.
21:55:45 <bsmntbombdood> i've never seen andreou talk i don't think
21:59:03 <SimonRC> fizzie: a worse one is the tale of a box hwhere everyone was root...
21:59:19 <SimonRC> one guy got the fortune about the bit bucket being full
21:59:33 <SimonRC> It is amazing how many things rely on the presence of /dev/null
21:59:51 <SimonRC> And that is has correct permissions, user, group, etc
22:00:02 <bsmntbombdood> my favorite feature of lisp right now: quasiquote
22:02:23 <SimonRC> good for macros
22:02:53 <bsmntbombdood> i'm doing some source to source translations right now and it's very helpful
22:04:02 <ihope> SimonRC: someone deleted /dev/null?
22:07:49 <SimonRC> yes
22:09:41 <ihope> Fun.
22:10:17 <ihope> Seems it'd be easier to cat /dev/null > /dev/null
22:10:26 <ihope> :-)
22:10:39 <ihope> Then again, I don't know just what > does. What does it do?
22:12:07 <bsmntbombdood> reads from /dev/null eof immediatly
22:13:41 <SimonRC> > re-directs stdout
22:14:27 <oerjan> /dev/null is opened for writing and reading, separately. neither deletes it or changes its special status
22:14:35 <oerjan> *nor
22:15:27 <ihope> Does > concatenate or replace?
22:15:35 <ihope> And if it replaces, how?
22:15:43 <oerjan> replace, but by opening and truncating
22:15:51 <bsmntbombdood> >> appends
22:16:21 <ihope> Opens it, deletes all its contents and starts writing, then?
22:16:27 <oerjan> yep
22:16:54 <oerjan> but since /dev/null is not an ordinary file, truncating it has no effect
22:16:56 <fizzie> I've always felt a bit sorry for /dev/full, because /dev/null is what everyone only talks about.
22:17:26 <fizzie> full - always full device -- "Writes to the /dev/full device will fail with an ENOSPC error. This can be used to test how a program handles disk-full errors."
22:19:03 <fizzie> There's also a strange sort of sensibility in leaving a dd if=/dev/full of=/dev/null running at a low priority. Gives you a "I'm doing my part to restore the balance!" feeling.
22:19:28 <oerjan> wow i thought you were joking :D
22:19:54 <ihope> What's that command do?
22:20:48 <fizzie> 'dd' moves bytes; reads from /dev/full always return zeros, so it reads zeros out of /dev/full and writes them to /dev/null, which discards them.
22:21:19 <fizzie> Of course it's all quite futile: full is never going to run out of zeros, and null isn't going to fill up. But it's the thought that counts.
22:21:50 <ihope> But really, all you're doing is throwing away zeros.
22:21:55 <ihope> You should put them into /dev/zero instead.
22:22:15 <fizzie> I really thing that one already has more than enough zeros in it.
22:22:27 <fizzie> My God, it's full of zeros!
22:22:42 <ihope> I guess that's true.
22:23:07 <ihope> Maybe if you write enough zeros into /dev/null, one of them will actually get through...
22:25:35 <SimonRC> where to?
22:26:48 <oerjan> eventually /dev/null will collapse into a black hole, creating a new big bang on the other side
22:27:22 <oerjan> hm...
22:27:55 <oerjan> actually whatever you put into /dev/null will be released as heat.
22:28:49 <ihope> Ah.
22:29:33 <oerjan> assuming your hardware cannot actually keep infinite information, in which case my first explanation will apply.
22:31:03 <ihope> My computer can hold infinite information, but only if it's compressed.
22:31:39 <ihope> I know of a pretty good compression scheme for just these purposes.
22:32:01 <ihope> Namely, reverse the input. Reversing the input, naturally, is something that can be undone: just do it again.
22:32:58 <ihope> Now, you can write a program that reverses its input pretty easily. If you pipe /dev/random into it, nothing ever comes out, so you can conclude that /dev/random compresses to the empty file.
22:33:10 <oerjan> well in principle that compression scheme is as good as it gets
22:33:22 <ihope> I haven't tried reversing the empty file, but I'm sure that if I did, I'd get /dev/random.
22:33:47 <ihope> Oh, only if you count random infinities of information as actually being infinite. Computable ones can easily be compressed.
22:35:00 <oerjan> hm... i guess a compression scheme that actually treated random information has being zero could be useful, since it is only the order in information that is usually interesting
22:35:06 <oerjan> *as
22:37:12 <oerjan> relevant link: http://en.wikipedia.org/wiki/Reversible_computing
22:37:42 <ihope> Would you call "There's useful information in here. e=SzHr/!]LQ:vMw2jXe/*j38v5Q"TO [bp[n]~c41j#!O3RgCt%&_!6%YrH4pNI..." something that should be treated as zero?
22:38:28 <oerjan> of course not. There's "There's useful information in here." in there.
22:39:35 <oerjan> i suppose such a scheme would work really bad on already compressed data.
23:04:24 <pikhq> oerjan: However, "There's useful information in here." could be generated by /dev/random.
23:04:51 <oerjan> not _terribly_ likely.
23:05:15 <pikhq> True.
23:05:16 <bsmntbombdood> "e=SzHr/!]LQ:vMw2jXe/*j38v5Q"TO [bp[n]~c41j#!O3RgCt%&_!6%YrH4pNI" is terribly unlikely also
23:05:22 <pikhq> But, then, nor is anything else.
23:07:33 <oerjan> basically, random in this case would mean completely incompressible
23:07:51 <oerjan> for some approximation of compressible
23:08:11 <lament> a bunch of printable characters is hardly random, and very easy to compress :)
23:08:27 <oerjan> hm... right
23:08:52 <oerjan> you need to keep only the compressible part of the information. interesting paradox
23:11:55 <oerjan> the most information would be in text that was chaotic, on the edge of order and disorder.
23:12:37 <pikhq> Encrypted text.
23:13:34 <lament> nothing is random.
23:14:18 <pikhq> No, everything is.
23:14:18 <lament> 'random' simply refers to the method of generation of data
23:14:25 <oerjan> good encryption is practically indistinguishable from random
23:14:34 <lament> once you have the data, the term 'random' can no longer be applied to it
23:14:56 <lament> good encryption is practically indistinguishable from data produced by a random process
23:15:31 <lament> but of course a random process can produce any string whatsoever, just as a non-random process can produce any string whatsoever.
23:15:31 <oerjan> random has many meanings
23:16:34 <lament> "random" describes the process; "incompressible" describes the usual result
23:16:59 <lament> (but randomness is not the only way to generate incompressible results)
23:17:12 <lament> err, wait, it is
23:17:14 <lament> :)
23:17:23 <pikhq> Nope.
23:17:54 <pikhq> "incompressible" only describes a certain string when compressed with a *certain algorithm*. . .
23:18:09 <pikhq> I can create crapola-compression, which makes most results incompressible.
23:18:53 -!- kwertii has joined.
23:19:59 <lament> pikhq: incompressible by _any_ algorithm :)
23:20:25 <oerjan> no such thing
23:20:41 <lament> oerjan: no?
23:20:59 <oerjan> because for any string, you can take an algorithm that produces that string from the empty one
23:21:25 <lament> oerjan: if the string was generated by a random process
23:21:54 <pikhq> One can still produce an algorithm which does if(input == "") output("Random string here.");
23:21:56 <lament> oerjan: then that algorithm will be as long as the string, and consist of an 'output' statement...
23:22:28 <lament> i suppose i'm talking about kolmogorov complexity, not compressibility.
23:22:33 <oerjan> the length of the algorithm is not included
23:22:48 <lament> i definitely am talking about kolmogorov complexity :)
23:22:54 -!- kwertii_ has joined.
23:23:28 <lament> randomness is a superturing thing
23:23:47 -!- kwertii has quit (Connection reset by peer).
23:24:26 <lament> still, there isn't any meaningful way to describe data as "random" unless you simply refer to the way it was generated.
23:24:32 <pikhq> Then perhaps you should say what you mean, not assume that we can distill it from the air.
23:24:34 -!- kwertii_ has changed nick to kwertii.
23:24:51 <lament> pikhq: if i can't assume that in #esoteric, where can i? :(
23:25:03 <pikhq> lament: Even here, we have to say what we mean.
23:25:12 <lament> how thoroughly boring.
23:25:22 <pikhq> What sets us apart is that what we mean produces "Why, god, WHY?!?" as the answer. :p
23:26:34 <pikhq> Grr. . .
23:26:41 <pikhq> Someone set -Oslow on my Emacs build.
23:27:24 <lament> despite all the bad things people say about emacs
23:27:35 <lament> there isn't a single problem with it that an uninstall can't solve.
23:28:04 <oerjan> lament: unlike WinHugs
23:28:36 <lament> what happens after you uninstall winhugs? :)
23:28:54 <oerjan> nothing, the uninstall crashes before removing anything :)
23:29:39 <lament> oh.
23:29:46 <lament> useful :)
23:29:48 <ihope> Infinite strings can be described as being random or not.
23:29:57 <lament> ihope: how?
23:30:07 <ihope> Well... I think.
23:30:11 <lament> actually
23:30:19 <lament> that doesn't contradict me at all
23:30:19 <ihope> If it can be defined at all in any way, it's not random. Otherwise, it is.
23:30:29 <lament> like i said, randomness refers to the process
23:30:36 <fizzie> Jargon file (iirc) lists the meaning "Eight Megs And Constantly Swapping" for EMACS. That particular backronym is perhaps a bit dated; even my personal computing device has 256 times more memory than that.
23:30:38 <lament> when dealing with an infinite string, you're dealing with a process
23:30:45 <lament> since you can't have actual infinite information
23:30:50 <ihope> Indeed...
23:31:45 <oerjan> infinite strings can have average entropy per bit or char
23:31:54 <ihope> fizzie: Entirely-too Much And Constantly Swapping!
23:32:04 <lament> oerjan: which you can't determine
23:32:11 <lament> oerjan: so that's a problem
23:32:37 <lament> oerjan: either the string is generated by a known non-random process, allowing you to calculate the entropy but then of course you know it's not random
23:33:00 <lament> oerjan: or it is generated by a random process, in which case you can't ever get the entire string, so you can't calculate its entropy either.
23:33:19 <oerjan> no but you can calculate it with probability 1 :)
23:33:57 <oerjan> for suitable random processes
23:34:01 <lament> not 1
23:34:13 <lament> you can only analyze a finite portion of it :)
23:34:26 <lament> not statistically significant
23:34:26 <oerjan> no, you analyze the process, not the string
23:34:29 <lament> oh
23:34:42 <pikhq> Said backronym, IIRC, was invented by Stallman.
23:34:53 <pikhq> (you may know Stallman better for his Editor MACroS, written in Teco, and GNU Emacs, written in Elisp)
23:34:55 <lament> oerjan: again, if you know the process is random, then you already know the process is random :)
23:35:18 <lament> oerjan: and if you _don't_, then you can't tell anything by looking at the data produced
23:35:39 <lament> (because the data produced is not the "infinite string" we're after)
23:36:22 <oerjan> hm... you might be able to converge toward the correct entropy
23:37:35 -!- sebbu2 has quit ("@+").
23:41:51 <lament> oerjan: except that, the process being random, you don't know if its behavior isn't going to suddenly change completely
23:42:16 <lament> (true of some non-random processes as well, at least in practice (digits of pi))
23:43:36 <bsmntbombdood> memory usage arguments against emacs are completely irrelevant nowadays
23:46:09 <oerjan> right... it is easy to make a sequence that switches say between two different behaviors at large indices. in fact the entropy would not be clearly mathematically defined then
23:46:23 <oerjan> *switches repeatedly
23:53:12 <lament> all the problems come from the fact that true randomness is superturing and hence cannot be analyzed algorythmically :)
23:53:16 <lament> algorithmically
23:57:46 <SimonRC> oerjan: surely the king of ununinstallability is AOL. Bits of it were floating around for years
23:58:23 <oerjan> ic
23:58:44 <SimonRC> 23:27:18 < oerjan> lament: unlike WinHugs
2007-06-15
00:03:09 <kwertii> pity that AOL doesn't mail out copies of itself on 1 gig flash drives. I didn't have to buy disks for years
00:04:46 <SimonRC> indeed
01:46:25 -!- ihope_ has joined.
02:03:17 -!- oerjan has quit ("Good night").
02:03:18 -!- ihope has quit (Read error: 110 (Connection timed out)).
02:12:18 -!- Sgeo has joined.
03:00:03 * SimonRC goes to bed.
03:21:04 -!- boily has joined.
03:47:26 -!- ihope_ has quit (Read error: 110 (Connection timed out)).
04:31:21 -!- boily has quit ("WeeChat 0.2.4").
05:13:19 -!- GreaseMonkey has joined.
05:23:43 -!- calamari has joined.
05:38:36 -!- ajagucki has joined.
05:39:10 -!- calamari has quit ("Leaving").
05:52:20 -!- Sgeo has quit ("Ex-Chat").
06:10:29 -!- bsmntbombdood has quit (Remote closed the connection).
06:10:34 -!- bsmntbombdood has joined.
06:19:02 -!- kwertii has quit (Connection timed out).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:04:07 -!- GregorR-L has joined.
08:15:42 -!- ajagucki has quit ("Konversation terminated!").
09:03:31 -!- GregorR-L has quit (Remote closed the connection).
09:09:56 -!- nooga has quit (Remote closed the connection).
09:10:31 -!- nooga has joined.
10:23:59 <andreou> hey anyone has hacker's delight in PDF form?
10:30:14 -!- GreaseMonkey has changed nick to N0body.
10:41:40 -!- N0body has changed nick to GreaseMonkey.
11:25:22 <GreaseMonkey> gonna go now, gnight
11:25:39 -!- GreaseMonkey has quit ("Hasta la Vista(R)").
12:07:53 -!- oerjan has joined.
12:48:44 -!- ihope_ has joined.
12:48:58 -!- ihope_ has changed nick to ihope.
12:58:57 -!- ihope_ has joined.
13:12:38 -!- ihope has quit (Read error: 110 (Connection timed out)).
13:54:29 -!- ihope_ has quit ("http://tunes.org/~nef/logs/esoteric/06.08.09").
14:13:08 <RodgerTheGreat> with a quick show of hands, (and we're talking *actual* programming tasks here, not just esolang dev work), who prefers RPN, prefix and algebraic notation? Giving your reasons for each would be interesting if you choose to do so
14:14:06 <RodgerTheGreat> if that phrasing is confusing, I'd like to know which of the three you find the easiest to work with and the best to use
15:58:41 -!- kwertii has joined.
16:09:35 -!- ihope has joined.
16:54:46 * SimonRC finds out an interesting thing about micro-optimisations...
16:58:40 <SimonRC> someone tried comparing (in C): "return (x << 3) + (x << 1);" with "return x * 10;"...
16:58:56 <SimonRC> naturally, they both produced the same code:
16:59:24 <SimonRC> mov eax, DWORD PTR _x$[esp-4] ; lea eax, DWORD PTR [eax+eax*4] ; add eax, eax ;
16:59:30 <SimonRC> hehehe!
16:59:39 <SimonRC> that means (roughly):
16:59:43 <SimonRC> register int t = x;
16:59:43 <SimonRC> t = (int)(t + (long*)t); /* pointer arithmetic does: t = 4*t + t */
16:59:43 <SimonRC> t = t + t;
16:59:44 <SimonRC> return t;
17:00:06 <SimonRC> Moral of the story: the compiler knows far more about micro-optimisations than you do.
17:00:38 <ihope> (long*)t is 4t?
17:01:11 <ihope> Doesn't x86 have... things for multiplication?
17:02:15 <SimonRC> the compiler evidentally thinks that bizarre trick is the best way to handle it.
17:02:54 <SimonRC> you know how pointer arithmetic works in C, right?
17:06:21 <SimonRC> The integer being added shifts the pointer by the given number of *objects* not bytes...
17:06:53 <SimonRC> so adding 1 to a (long*) will increase it by 4, assuming sizeof(long) == 4.
17:07:39 <SimonRC> this means that (int)(t + (long*)t) is t*5.
17:15:23 -!- sebbu has joined.
17:15:46 <SimonRC> hi
17:16:53 -!- jix has joined.
17:22:39 <SimonRC> hi * 2
17:29:21 <fizzie> My GCC compiles those two versions differently, btw (even if I force -mregparm=0 to approximate those solutions). First one to "movl 8(%rsp), %eax; leal (%rax,%rax), %edx; leal (%rdx, %rax, 8), %eax; ret" and the second one to "movl 8(%rsp), %eax; leal (%rax,%rax,4), %eax; addl %eax, %eax; ret".
17:30:25 <fizzie> Makes some sort of sense: the first one is a bit closer to the C version, since it does 2*x+8*x and not 2*(4*x+x).
17:31:32 <fizzie> Possibly with enough flags it'd generate identical code.
17:40:30 <pikhq> fizzie: Try -O as your flag. ;)
17:41:29 <pikhq> RodgerTheGreat: In response to your hours-long poll: I prefer RPN for calculator usage, and prefix for coding.
17:41:47 <pikhq> Although infix is also good for coding.
17:41:59 <RodgerTheGreat> makes sense
17:42:03 <lament> i prefer infix for everything.
17:42:11 <lament> math notation is the best!
17:42:21 <pikhq> I'm a Tcler and an HP calculator/dc user. ;)
17:42:53 <RodgerTheGreat> I'd use RPN more if I had an 11c- I only have an HP12c, which isn't suitable for a lot of the math I do
17:53:41 <oerjan> if you actually prefered XML, that would be circumfix i guess
17:54:17 <oerjan> which leads to the question of whether lisp is really prefix
17:54:36 <lament> heh
17:54:44 <lament> lisp is, of course, sexfix!
17:55:16 <oerjan> lisp: the sexp fixated language
17:57:54 <pikhq> No, it's variadic prefix.
17:59:05 -!- oerjan has quit ("Kayak, on the other hand, is clearly circumfix").
18:20:41 <fizzie> That was with -O6.
18:45:24 -!- c|p has joined.
18:51:51 * SimonRC lols a lot
18:52:07 <SimonRC> Y'know those supposed open-air puddles on Mars?
18:52:27 <SimonRC> It turns out they cannot be water, for a simple reason.
18:52:35 <SimonRC> They are on a fucking slope.
18:55:45 <RodgerTheGreat> lol
18:58:00 * ihope ponders the fact that there's a fizzie here and a fuzzie in another channel he's in
18:58:07 <ihope> A little weird, that.
18:58:14 <ihope> Er, confusing. Or something.
19:09:03 -!- mtve has quit (Read error: 110 (Connection timed out)).
19:25:30 * SimonRC decides that AC power was invented to make calculating power usage as difficult as possible: http://www.dansdata.com/gz028.htm
19:25:52 <RodgerTheGreat> quite possibly
19:26:52 <SimonRC> Dear world government. Please invent an AC power standard for all our PCs and stuff to use.
19:26:55 <SimonRC> Love SimonRC
19:27:00 <SimonRC> oops
19:27:06 <SimonRC> Dear world government. Please invent a DC power standard for all our PCs and stuff to use.
19:27:10 <SimonRC> Love SimonRC
19:28:32 <RodgerTheGreat> even just a standard AC->DC adapter that worked with *everything* would do the trick pretty nicely
19:31:44 <SimonRC> Google, Sun, and the like are experimenting with having just one big PSU per rack of machines.
19:34:15 <RodgerTheGreat> it's a good start
19:41:03 <pikhq> SimonRC: What you got against 5v/12v?
19:43:01 <SimonRC> nothing, why?
19:43:24 <pikhq> Because that's the DC standard.
20:17:33 -!- sebbu2 has joined.
20:28:38 -!- c|p has quit (Remote closed the connection).
20:36:23 -!- sebbu has quit (Read error: 110 (Connection timed out)).
20:36:33 -!- oerjan has joined.
20:48:21 <SimonRC> pikhq: Really? I have yet to see anywhere with such sockets on the wall. (I was referring to DC *sockets*.)
20:49:02 * SimonRC adds a category to Wikipedia: Categories that do not contain themselves.
20:51:55 -!- mtve has joined.
20:52:48 <pikhq> Ah.
20:53:08 * pikhq adds that page to itself
20:53:12 <pikhq> Paradox! Yay!
21:28:57 * SimonRC goes
21:40:54 <ihope> Category: Paradoxical categories
21:40:59 <ihope> s/: /:/
21:59:25 -!- jix has quit ("CommandQ").
22:31:27 -!- sekhmet has quit ("need.... more..... volts......").
23:22:41 -!- sekhmet has joined.
23:55:05 -!- sp3tt has quit (Read error: 104 (Connection reset by peer)).
23:59:32 -!- sp3tt has joined.
2007-06-16
00:01:39 -!- sp3tt has quit (Read error: 104 (Connection reset by peer)).
00:05:54 -!- sp3tt has joined.
00:43:24 -!- RedDak has joined.
00:45:02 <pikhq> This channel has people, of course.
00:45:12 <pikhq> And it covers more esoteric languages than just brainfuck.
00:45:14 <pikhq> Welcome. :)
00:45:44 <RedDak> thx :D
00:46:18 <RedDak> I maked a good brainfuck binary compiler
00:46:24 <bsmntbombdood> ((lambda 3 1 ((closure-ref (get-num-arg 1) 0) (get-num-arg 1) (closure (lambda 2 3 ((lambda 1 1 ((closure-ref (get-num-arg 1) 0) (get-num-arg 1) (get-num-arg 3))) (get-num-arg 2)))))) (closure (lambda 4 2 (%halt (get-num-arg 2)))))
00:46:28 <pikhq> Cool.
00:46:29 <bsmntbombdood> is that esoteric?
00:46:37 <ihope> bsmntbombdood: looks like it.
00:46:46 <pikhq> No, it's obfuscated Lisp.
00:47:00 <bsmntbombdood> yeah
00:47:02 <ihope> Is that using 3 as a parameter?
00:47:17 <pikhq> Similar in idea, though. ;)
00:47:17 <bsmntbombdood> the syntax of lambda is not the usual syntax
00:47:23 <bsmntbombdood> arguments with names have been removed
00:47:46 <ihope> Looks very obfuscated.
00:48:05 <bsmntbombdood> it's an internal representation of scheme for a compiler
00:48:29 <ihope> Much worse than GHC's simplified expressions.
00:48:32 <ihope> I think.
00:48:58 <bsmntbombdood> it's been converted to CPS, had closures removed, and had named arguments removed
00:49:21 <ihope> CPS, eh?
00:49:44 <bsmntbombdood> yep
00:49:52 * ihope plays with CPS
00:50:04 <ihope> It all begins with "import Control.Monad.Cont"
00:50:36 <bsmntbombdood> CPS makes call/cc and tail call optimization very easy
00:52:44 -!- RedDak has quit (Remote closed the connection).
00:54:03 <oerjan> apparently we were too weird for him
00:54:21 <pikhq> No, he said in ##brainfuck that he'd be back later.
00:55:01 <oerjan> damn^H^H^H^Hgreat
00:55:36 <ihope> Maybe ^H^H^H is actually meaningless.
00:55:44 <ihope> :-P
00:56:16 <oerjan> well this old fart doesn't actually know if anyone still uses it
00:56:34 <pikhq> 4 people in there. New record.
00:56:42 <pikhq> http://rafb.net/p/tZdgVn90.html This is what he came in to show.
00:56:46 <pikhq> His first Brainfuck program.
00:57:33 <ihope> What's it do?
00:57:50 <pikhq> Just a bit of text output.
00:57:57 <ihope> What's it output?
00:58:16 <pikhq> "BELL F**K U!
00:58:18 <pikhq> "
00:58:18 <pikhq> And an infinite loop of 0x07.
00:58:21 <bsmntbombdood> !bf http://rafb.net/p/tZdgVn90.txt
00:58:23 <pikhq> (I believe that is the bell signal)
00:58:33 <oerjan> argh, the Brainfuck Debugger has disappeared from the web
00:58:37 <ihope> I think it is.
00:58:38 <EgoBot> BELL F**K U!
00:58:52 <ihope> Hum.
00:59:46 <oerjan> no infinite output from EgoBot
00:59:56 <pikhq> 0x07 isn't a printable character.
01:00:09 <bsmntbombdood> sdrawkcab si txet ym kool
01:00:12 <SimonRC> need some CRs to encourage flushing?
01:00:36 <oerjan> but still, why did EgoBot print the first part, and not flood?
01:00:38 <ihope> !oot eniM
01:00:44 <EgoBot> Huh?
01:00:56 * SimonRC wonders why everthing goes out of tune when he yawns
01:01:35 <oerjan> when you yawn, you open up a channel to your inner ear, i presume that might affect it
01:01:43 <ihope> Now somebody make the !oot command reverse its input and add "too!"
01:02:09 <ihope> Hmm. Does sound go through that channel?
01:02:31 <oerjan> presumably a little
01:03:28 <oerjan> yawning is one way to deal with pressure in your ears on a plane say
01:04:12 <bsmntbombdood> ~exec register_raw(r"\S+ PRIVMSG #esoteric :!oot (.*)", lambda x, r: bot.raw("PRIVMSG #esoteric :%s" % (r.group(1)[::-1] + " too!")))
01:04:13 <bsmnt_bot> NameError: name 'register_raw' is not defined
01:04:18 <bsmntbombdood> ~exec self.register_raw(r"\S+ PRIVMSG #esoteric :!oot (.*)", lambda x, r: bot.raw("PRIVMSG #esoteric :%s" % (r.group(1)[::-1] + " too!")))
01:05:55 <SimonRC> oerjan: but when I open that channel without yawning it doesn;t happen
01:06:10 <bsmntbombdood> !oot foo
01:06:11 <bsmnt_bot> oof too!
01:06:17 <EgoBot> Huh?
01:06:23 <SimonRC> and anyway yawning shouldn't affect the resonant frequency of the detecting molecules
01:06:23 <oerjan> SimonRC: you can do that?
01:06:29 <SimonRC> yes, AFAICT
01:06:57 <SimonRC> it makes a click noise in my ear when I do so and my breathing becomes louder
01:07:13 <bsmntbombdood> i get click noises sometimes
01:08:30 -!- c|p has joined.
01:09:18 <SimonRC> Damned AV software keeps using 100% CPU for a few seconds repeatedly
01:11:48 <oerjan> SimonRC: sound is a wave, and it's speed probably depends on air pressure, so it might change frequency as it goes from one air density to another
01:11:52 <oerjan> *its
01:12:23 <oerjan> that's my theory anyway
01:12:42 <SimonRC> no, the frequency stays the same as a wave goes from one medium to another, unless something is moving at a considerable fraction of the wave speed
01:14:29 <ihope> !daemon oot bf +[]
01:14:29 <oerjan> well then maybe the receptors are sensitive to change in wavelength. i read that the frequency of the sound is actually measured by how far it goes into the "snail"
01:14:46 <ihope> !oot sdrawkcab si sihT
01:14:46 <bsmnt_bot> This is backwards too!
01:16:33 <oerjan> now thinking about this, it would not explain why yawning makes a difference if you don't have a pressure difference for it to remove to start with...
01:16:35 <SimonRC> oerjan: I know the different frequencies go different distances, but I don;t think that is really how they are distinguished
01:17:13 <oerjan> well that is what i read
01:18:50 <ihope> !daemon say +[,.[-]+]
01:18:53 <ihope> !say prime
01:19:00 <EgoBot> Huh?
01:19:08 <ihope> !ps d
01:19:11 <EgoBot> 1 bsmntbombdood: bf
01:19:13 <ihope> Oh.
01:19:16 <EgoBot> 2 ihope: daemon oot bf
01:19:16 <EgoBot> 3 ihope: ps
01:19:25 <ihope> !daemon say bf +[,.[-]+]
01:19:31 <ihope> !say prime
01:19:35 <EgoBot> prime
01:20:18 <ihope> ~exec self.register_raw(r"\S+ PRIVMSG #esoteric :!fake (.*)", lambda x, r: bot.raw("PRIVMSG EgoBot :!say Fake EgoBot command: %s" % (r.group(1)[::-1] + " too!")))
01:20:25 <ihope> !daemon fake bf +[]
01:20:38 <ihope> !fake Testing the command.
01:20:57 <bsmntbombdood> bsmnt_bot tells me on his stdout ":orwell.freenode.net 505 bsmnt_bot :Private messages from unregistered users are currently blocked due to spam problems, but you can always message a staffer. Please register! ( http://freenode.net/faq.shtml#privmsg )
01:21:01 <bsmntbombdood> "
01:21:06 * ihope hits EgoBot
01:21:18 <ihope> And I did that wrong anyway.
01:22:08 * ihope tries to remember the command
01:22:15 <oerjan> it's not EgoBot's fault, e is registered
01:22:32 <bsmntbombdood> bsmnt_bot isn't identified
01:22:34 <ihope> It's EgoBot's fault for not allowing private messages from unregistered users.
01:23:01 <ihope> Unless EgoBot's not allowing that is more excusable than bsmnt_bot's not being identified.
01:23:23 <ihope> And I think bsmnt_bot's not being identified is pretty darn excusable.
01:23:36 <bsmntbombdood> maybe it's freenode's fault
01:23:39 <oerjan> !bf ++++++++++.
01:23:55 <ihope> freenode's fault for letting EgoBot do that?
01:23:56 <oerjan> argh
01:24:16 <ihope> So, um, how do you remove that from the register queue thingy?
01:24:53 -!- sebbu2 has quit ("@+").
01:25:03 <bsmntbombdood> ~exec self.raw_regex_queue.pop()
01:25:08 <oerjan> in any case, EgoBot always responds with private messages to private messages
01:25:26 <EgoBot> Oh yeah?
01:25:42 <bsmntbombdood> hehe
01:25:43 <EgoBot> This doesn't look like a private message to me. :-P
01:25:58 <oerjan> hm...
01:26:12 <ihope> ~exec self.register_raw(r"\S+ PRIVMSG #esoteric :!fake (.*)", lambda x, r: bot.raw("PRIVMSG #esoteric :!say Fake EgoBot command: %s" % (r.group(1)[::-1])))
01:26:18 <ihope> !fake OMG
01:26:19 <bsmnt_bot> !say Fake EgoBot command: GMO
01:26:24 <EgoBot> Fake EgoBot command: GMO
01:26:24 <ihope> Hmm.
01:26:27 <ihope> GMO.
01:26:32 <ihope> ~exec self.raw_regex_queue.pop()
01:26:47 <ihope> ~exec self.register_raw(r"\S+ PRIVMSG #esoteric :!fake (.*)", lambda x, r: bot.raw("PRIVMSG #esoteric :!say Fake EgoBot command: %s" % r.group(1)))
01:26:52 <ihope> !fake OMG
01:26:52 <bsmnt_bot> !say Fake EgoBot command: OMG
01:26:56 <ihope> Yup!
01:26:58 <EgoBot> Fake EgoBot command: OMG
01:27:12 <ihope> Now we just need to find all the other channels EgoBot is in.
01:27:31 <bsmntbombdood> i don't get it
01:27:33 <EgoBot> So this is how it works.
01:27:36 <ihope> Or one of them.
01:27:44 -!- oerjan has left (?).
01:27:47 <ihope> Or I could toss together a relay bot.
01:28:09 -!- oerjan has joined.
01:30:06 <oerjan> i suspect then that output goes to wherever the original bf command went
01:30:57 <ihope> Something like that.
01:31:01 <ihope> Just a minute here...
01:37:54 -!- ihope has changed nick to RelayBot.
01:38:06 -!- RelayBot has changed nick to EagleBot.
01:38:40 -!- EagleBot has changed nick to ihope.
01:41:11 <ihope> Okay, it's coming...
01:42:02 <EgoBot> Foogle!
01:42:16 <oerjan> how - impressive
01:42:20 <EgoBot> OMG
01:42:35 <EgoBot> We are the wad of dough.
01:42:39 <ihope> I think it works.
01:42:47 <ihope> ~exec self.raw_regex_queue.pop()
01:42:50 <oerjan> what works?
01:42:56 <ihope> EagleBot.
01:43:08 <ihope> ~exec self.register_raw(r"\S+ PRIVMSG #esoteric :!fake (.*)", lambda x, r: bot.raw("PRIVMSG EagleBot :#magic!say Fake EgoBot command: %s" % r.group(1)))
01:43:17 <ihope> It'll just take a little while to test.
01:43:32 <ihope> !fake Is so easy!
01:44:09 <EgoBot> If it isn't done by now, it's not going to be done.
01:44:31 <ihope> I think bsmnt_bot's encountering exactly the same problem this time.
01:44:45 <bsmntbombdood> que problemo?
01:45:12 <ihope> bsmntbombdood: EagleBot wasn't accepting private messages from unregistered users either.
01:45:14 -!- ihope has changed nick to EagleBot.
01:45:26 <oerjan> of course not, you need to request it
01:45:29 -!- EagleBot has changed nick to ihope.
01:45:31 <ihope> Fixed.
01:45:41 <ihope> And cluttered up my screen in the process.
01:46:32 <ihope> !fake じゃぱねせ
01:46:35 <EgoBot> Fake EgoBot command: じゃぱねせ
01:46:38 <ihope> Yay!
01:47:02 <ihope> I send it, EgoBot gets it but ignores it, bsmnt_bot picks it up and uses EagleBot to send it to EgoBot privately.
01:47:16 <pikhq> !fake *Cheating*.
01:47:22 <EgoBot> Fake EgoBot command: *Cheating*.
01:47:32 <pikhq> How, exactly, do you get it to *not* say "unknown command"?
01:47:45 <pikhq> !quibble
01:47:49 <oerjan> Wow, it's a Rube Goldberg machine made out of bots :)
01:47:56 <EgoBot> Huh?
01:48:09 <c|p> oerjan, hahah
01:48:18 <ihope> pikhq: I daemon'd fake to do nothing at all.
01:48:39 <pikhq> ihope: Ah.
01:49:11 <pikhq> ihope: So, now, you can add features to EgoBot.
01:49:33 <ihope> Of course, in order to make EgoBot pick up everything, it should be an EgoBot command that sends it to bsmnt_bot for processing instead of something that goes right to bsmnt_bot.
01:49:39 <pikhq> At least, you've devised a technique for it.
01:49:59 <ihope> Except EgoBot pretty much can't talk to bsmnt_bot, so it needs to go through EagleBot.
01:50:05 <ihope> !undaemon fake
01:50:07 <ihope> !undaemon say
01:50:09 <EgoBot> Process 4 killed.
01:50:11 <EgoBot> Process 3 killed.
01:50:23 <ihope> ~exec self.raw("QUIT")
01:50:24 -!- bsmnt_bot has quit.
01:50:26 <pikhq> What you should probably do is make a single daemon that does this.
01:50:28 -!- bsmnt_bot has joined.
01:50:39 <ihope> I'm just guessing that that cleared the queue.
01:50:42 <oerjan> actually you could make bsmnt_bot accept private messages too
01:50:50 <oerjan> or?
01:51:10 <ihope> Yes, but in order to get EgoBot to send private messages to bsmnt_bot, bsmnt_bot has to start the daemon.
01:51:37 <oerjan> well go ahead and register bsmnt_bot then >:)
01:51:45 <pikhq> Why does it need to be bsmnt_bot that gets private messages?
01:51:57 <ihope> It doesn't. I can use EagleBot to relay.
01:52:57 <ihope> This version joins the channel.
01:53:03 <ihope> ...Oops.
01:53:08 <pikhq> Hmm.
01:53:18 <pikhq> How's about the EgoBotExtensionBot?
01:53:23 <ihope> *This* version joins the channel.
01:53:28 <ihope> Wait a moment.
01:53:48 <pikhq> We add new languages to that, since Gregor never will add it to EgoBot. :p
01:53:52 <ihope> ...what?
01:54:00 <ihope> Hmm.
01:54:06 <pikhq> . . . I'm just suggesting a pointless bot, that's all.
01:54:14 <ihope> I mean "what the..."
01:54:33 -!- erider has quit ("I don't sleep because sleep is the cousin of death!").
01:55:04 <oerjan> well someone added underload to EgoBot as a daemon.
01:55:04 <ihope> Oh.
01:55:30 -!- EagleBot has joined.
01:55:35 <ihope> There.
01:55:48 <ihope> !daemon say bf +[,.[-]+]
01:55:52 <ihope> !say prime
01:55:53 <oerjan> although if you do that you cannot add daemons written in the new languages, i think
01:55:54 <EgoBot> prime
01:56:38 <ihope> This guy doesn't actually parse IRC; it just looks for the string ":#magic " and sends the stuff after it to EgoBot.
01:57:08 <ihope> So if I say ":#magic !say foo", it'll say "foo". Naturally, I did say that, and more after it, so EgoBot'll pretty much say everything I'm saying.
01:57:11 <EgoBot> foo", it'll say "foo". Naturally, I did say that, and more after it, so EgoBot'll pretty much say everything I'm saying.
01:57:16 <pikhq> ~exec self.register_raw(r"\S+ PRIVMSG #esoteric :!fake (.*)", lambda x, r: bot.raw("PRIVMSG EagleBot :#magic!say Fake EgoBot command: %s" % r.group(1)))
01:57:19 <oerjan> i noticed :D
01:57:30 <pikhq> !daemon fake +[]
01:57:34 <pikhq> !fake Foo.
01:57:37 <EgoBot> Huh?
01:57:45 <ihope> Whoa, let's not be hasty.
01:57:45 <pikhq> !daemon fake bf +[]
01:57:53 <pikhq> !fake Foo.
01:57:57 <pikhq> Why not?
01:58:04 <ihope> I have a plan here.
01:58:04 <oerjan> you missed a space after magic
01:58:07 <pikhq> Ah.
01:58:31 <pikhq> ~exec self.register_raw(r"\S+ PRIVMSG #esoteric :!fake (.*)", lambda x, r: bot.raw("PRIVMSG EagleBot :#magic !say Fake EgoBot command: %s" % r.group(1)))
01:58:41 <pikhq> !fake Foo.
01:58:42 <EgoBot> Fake EgoBot command: %s" % r.group(1)))
01:58:46 <EgoBot> Fake EgoBot command: Foo.
01:58:54 <ihope> #magic !daemon sendme bf +[,.[-]+]
01:58:59 <ihope> #magic !sendme prime
01:59:15 <ihope> #magic !sendme #magic !say Test.
01:59:31 <EgoBot> Test.
01:59:44 <ihope> Now !sendme sends something to EgoBot.
02:00:08 <ihope> Then there's the "mundane" command, which works just like "magic" except that it sends its stuff to bsmnt_bot instead.
02:00:11 <pikhq> #magic !sendme !say Foo.
02:00:32 <ihope> EgoBot just sent "!say Foo." to EagleBot.
02:00:41 <pikhq> You sure you don't mean "sends something to EgoBot"?
02:00:47 <pikhq> s/EgoBot/EagleBot/
02:00:52 <ihope> No. :-)
02:01:19 <ihope> Actually, I didn't want it called "sendme".
02:01:22 <ihope> !undaemon sendme
02:01:27 <EgoBot> Process 5 killed.
02:01:35 <ihope> #magic !daemon ext bf +[,.[-]+]
02:01:39 <ihope> #magic !ext prime
02:01:51 -!- erider has joined.
02:01:54 <ihope> And it's primed as it's gonna be.
02:02:09 <ihope> And... hmm.
02:02:21 <pikhq> Hmm.
02:02:24 <ihope> Actually, let's not do this this way.
02:02:25 <pikhq> You, sir, are evil.
02:02:31 <pikhq> Or, rather, an evil genius.
02:02:32 -!- EagleBot has quit (Nick collision from services.).
02:02:52 <pikhq> ...
02:03:01 <pikhq> I think EagleBot is taken.
02:03:06 <ihope> By me.
02:03:13 <pikhq> Ah.
02:05:04 <ihope> Hmm. This version gets killed due to excess flood.
02:05:06 <ihope> Oops :-)
02:05:08 <ihope> ~exec self.register_raw(r"\S+ PRIVMSG bsmnt_bot :ooga (.*)", lambda x, r: bot.raw("PRIVMSG #esoteric :EagleBot received %s" % r.group(1)))
02:05:18 <bsmnt_bot> EagleBot received foo
02:05:27 <ihope> That works.
02:06:19 <ihope> Now it's much more sane in its bsmnt_bot sendings.
02:06:42 -!- EagleBot has joined.
02:06:42 <bsmnt_bot> EagleBot received : !help - wiki: http://esolangs.org/wiki/ - logs: http://tunes.org/~nef/logs/esoteric/ or http://meme.b9.com/cdates.html?channel=esoteric - Pastebin: http://pastebin.ca/ | http://www.wolframscience.com/prizes/tm23/
02:06:42 <bsmnt_bot> EagleBot received Izzy7 SimonRC
02:07:01 <ihope> That's an example of junk.
02:07:01 <pikhq> Hahah.
02:07:20 <ihope> Whenever I say "EgoBot", EagleBot sends an "ooga" to bsmnt_bot.
02:07:20 <bsmnt_bot> EagleBot received ", EagleBot sends an "ooga" to bsmnt_bot.
02:07:40 <EgoBot> Yay, infinite loop!
02:07:41 <bsmnt_bot> EagleBot received !n=EgoBot@c-76-27-232-8.hsd1.or.comcast.net PRIVMSG #esoteric :Yay, infinite loop!
02:07:43 <bsmnt_bot> EagleBot received @c-76-27-232-8.hsd1.or.comcast.net PRIVMSG #esoteric :Yay, infinite loop!
02:07:54 <pikhq> Err.
02:07:57 <ihope> Not quite.
02:08:05 <pikhq> Finite.
02:08:09 <pikhq> Where'd the #magic go?
02:08:10 <ihope> !say Infinite loop EgoBot!
02:08:11 <bsmnt_bot> EagleBot received !
02:08:14 <EgoBot> Infinite loop EgoBot!
02:08:14 <bsmnt_bot> EagleBot received !n=EgoBot@c-76-27-232-8.hsd1.or.comcast.net PRIVMSG #esoteric :Infinite loop EgoBot!
02:08:15 <bsmnt_bot> EagleBot received @c-76-27-232-8.hsd1.or.comcast.net PRIVMSG #esoteric :Infinite loop EgoBot!
02:08:16 <bsmnt_bot> EagleBot received !
02:08:18 <ihope> It's still here.
02:08:27 <ihope> I think these loops are doomed to be finite.
02:08:36 <ihope> Unless bsmnt_bot becomes EgoBot somehow.
02:08:37 <bsmnt_bot> EagleBot received somehow.
02:08:51 <ihope> #magic !say EgoBot
02:08:56 <EgoBot> EgoBot
02:08:57 <bsmnt_bot> EagleBot received !n=EgoBot@c-76-27-232-8.hsd1.or.comcast.net PRIVMSG #esoteric :EgoBot
02:08:58 <bsmnt_bot> EagleBot received @c-76-27-232-8.hsd1.or.comcast.net PRIVMSG #esoteric :EgoBot
02:09:11 * oerjan ponders leaving before the evil laboratory explodes
02:09:17 <ihope> Hmm, apparently it doesn't care when a sentence ends in EgoBot
02:09:28 <ihope> Oh, don't worry; nothing bad should happen.
02:09:41 <pikhq> #magic !say Egobot foo!
02:09:45 <ihope> The key stuff is "!n=EgoBot@c-76-27-232-8.hsd1.or.comcast.net PRIVMSG #esoteric :message"
02:09:46 <bsmnt_bot> EagleBot received @c-76-27-232-8.hsd1.or.comcast.net PRIVMSG #esoteric :message"
02:09:48 <EgoBot> Egobot foo!
02:09:48 * oerjan ponders more strongly now that famous last words have been spoken
02:09:49 <bsmnt_bot> EagleBot received !n=EgoBot@c-76-27-232-8.hsd1.or.comcast.net PRIVMSG #esoteric : Egobot foo!
02:09:50 <bsmnt_bot> EagleBot received @c-76-27-232-8.hsd1.or.comcast.net PRIVMSG #esoteric : Egobot foo!
02:10:11 <pikhq> Damn it.
02:10:23 <pikhq> It doesn't care about the second round for some reason.
02:10:25 <ihope> I just killed EagleBot.
02:10:25 <pikhq> That's a bug.
02:10:32 <ihope> Hmm?
02:10:57 <ihope> If you say "EgoBot foo EgoBot bar", it'll think "EgoBot" followed by " foo EgoBot bar".
02:11:12 <pikhq> Ah.
02:11:21 <pikhq> So, it's set to be finite.
02:11:30 <ihope> Not intentionally, maybe :-)
02:11:38 <ihope> So what this guy sends to bsmnt_bot is "ooga !n=EgoBot@c-76-27-232-8.hsd1.or.comcast.net PRIVMSG #esoteric :message"
02:12:02 <ihope> That happens whenever... wait, lemme restart.
02:12:06 <ihope> !ps d
02:12:08 <EgoBot> 1 bsmntbombdood: bf
02:12:11 <EgoBot> 2 ihope: daemon oot bf
02:12:14 <EgoBot> 3 ihope: daemon say bf
02:12:15 <EgoBot> 4 pikhq: daemon fake bf
02:12:17 <ihope> !undaemon oot
02:12:17 <EgoBot> 5 EagleBot: daemon ext bf
02:12:19 <ihope> !undaemon say
02:12:19 <EgoBot> 6 ihope: ps
02:12:20 <EgoBot> Process 2 killed.
02:12:21 <ihope> !undaemon fake
02:12:23 <ihope> !undaemon ext
02:12:23 <EgoBot> Process 3 killed.
02:12:25 <EgoBot> Process 4 killed.
02:12:29 <EgoBot> Process 5 killed.
02:12:38 -!- EagleBot has quit (Nick collision from services.).
02:12:55 -!- EagleBot has joined.
02:12:56 <bsmnt_bot> EagleBot received : !help - wiki: http://esolangs.org/wiki/ - logs: http://tunes.org/~nef/logs/esoteric/ or http://meme.b9.com/cdates.html?channel=esoteric - Pastebin: http://pastebin.ca/ | http://www.wolframscience.com/prizes/tm23/
02:13:19 <ihope> #magic !daemon ext bf +[,.[-]+]
02:13:23 <ihope> #magic !ext prime
02:13:27 <bsmnt_bot> EagleBot received !n=EgoBot@c-76-27-232-8.hsd1.or.comcast.net PRIVMSG EagleBot :prime
02:13:28 <bsmnt_bot> EagleBot received @c-76-27-232-8.hsd1.or.comcast.net PRIVMSG EagleBot :prime
02:13:34 <ihope> !ext Testing.
02:13:38 <bsmnt_bot> EagleBot received !n=EgoBot@c-76-27-232-8.hsd1.or.comcast.net PRIVMSG EagleBot :Testing.
02:13:40 <bsmnt_bot> EagleBot received @c-76-27-232-8.hsd1.or.comcast.net PRIVMSG EagleBot :Testing.
02:13:48 <ihope> EagleBot killed.
02:14:05 <ihope> The thing to look out for, then, is simply "ooga !n=EgoBot@c-76-27-232-8.hsd1.or.comcast.net PRIVMSG EagleBot :message"
02:14:36 <bsmnt_bot> EagleBot received Test.
02:14:42 <ihope> ~exec self.raw("QUIT")
02:14:43 -!- bsmnt_bot has quit.
02:14:45 -!- bsmnt_bot has joined.
02:15:34 <ihope> ~exec self.register_raw(r"\S+ PRIVMSG bsmnt_bot :ooga !n=EgoBot@c-76-27-232-8.hsd1.or.comcast.net PRIVMSG EagleBot :(.*)", lambda x, r: bot.raw("PRIVMSG #esoteric :Fake EgoBot command: " % r.group(1)))
02:16:11 <pikhq> Evil bastard, aren't we?
02:16:16 <ihope> Sort of.
02:16:17 <ihope> "ERROR* :MaClions>i ng Link: 127.0.0.1 (Connection Timed Out)"
02:16:27 -!- EagleBot has quit (Nick collision from services.).
02:16:42 <ihope> One of these times I'm going to forget the slash in front of the ghost command, giving you all my password accidentally.
02:16:55 -!- EagleBot has joined.
02:17:00 <ihope> !ext Final.
02:17:02 <bsmntbombdood> the horrers
02:17:09 <ihope> The fun!
02:17:27 <ihope> Well, EgoBot sent EagleBot the message.
02:17:35 <ihope> Ooh, hmm...
02:18:15 <oerjan> ihope: can't you make a macro for your ghost command?
02:18:19 <ihope> ~exec self.register_raw(r"\S+ PRIVMSG bsmnt_bot :ooga !n=EgoBot@c-76-27-232-8.hsd1.or.comcast.net PRIVMSG EagleBot :(.*)", lambda x, r: bot.raw("PRIVMSG #esoteric :Fake EgoBot command: " % r.group(1)))
02:18:26 <ihope> I could, but I wouldn't use it very often.
02:18:37 <ihope> !ext Eh?
02:18:46 <ihope> Hmm.
02:18:54 <pikhq> EgoBot
02:18:56 <ihope> Oh!
02:19:05 <ihope> ~exec self.register_raw(r"\S+ PRIVMSG bsmnt_bot :ooga !n=EgoBot@c-76-27-232-8.hsd1.or.comcast.net PRIVMSG EagleBot :(.*)", lambda x, r: bot.raw("PRIVMSG #esoteric :Fake EgoBot command: %s" % r.group(1)))
02:19:09 <ihope> !ext Final.
02:19:13 <bsmnt_bot> Fake EgoBot command: Final.
02:19:20 <ihope> Yay!
02:19:25 <ihope> Except that I forgot the magic.
02:19:25 <pikhq> *Almost*.
02:19:43 <ihope> ~exec self.raw_regex_queue.pop()
02:19:53 <ihope> !ext This should fail entirely.
02:20:07 <ihope> ~exec self.register_raw(r"\S+ PRIVMSG bsmnt_bot :ooga !n=EgoBot@c-76-27-232-8.hsd1.or.comcast.net PRIVMSG EagleBot :(.*)", lambda x, r: bot.raw("PRIVMSG #esoteric :#magic !say Fake EgoBot command: %s" % r.group(1)))
02:20:10 <bsmnt_bot> #magic !say Fake EgoBot command: Huh?
02:20:16 <bsmnt_bot> #magic !say Fake EgoBot command: Huh?
02:20:19 <ihope> Uh...
02:20:22 <bsmnt_bot> #magic !say Fake EgoBot command: Huh?
02:20:28 <bsmnt_bot> #magic !say Fake EgoBot command: Huh?
02:20:32 <ihope> Oh dear.
02:20:34 <bsmnt_bot> #magic !say Fake EgoBot command: Huh?
02:20:37 <ihope> ~exec self.raw_regex_queue.pop()
02:20:55 <ihope> That was a little weird.
02:21:00 * ihope attempts to figure out the cause
02:21:12 <ihope> !ps d
02:21:15 <EgoBot> 1 bsmntbombdood: bf
02:21:16 <EgoBot> 2 EagleBot: daemon ext bf
02:21:19 <EgoBot> 3 ihope: ps
02:21:22 <ihope> No !say command.
02:21:29 <ihope> !daemon say bf +[,.[-]+]
02:21:31 <ihope> !say prime
02:21:33 <EgoBot> prime
02:21:44 <ihope> ~exec self.register_raw(r"\S+ PRIVMSG bsmnt_bot :ooga !n=EgoBot@c-76-27-232-8.hsd1.or.comcast.net PRIVMSG EagleBot :(.*)", lambda x, r: bot.raw("PRIVMSG EagleBot :#magic !say Fake EgoBot command: %s" % r.group(1)))
02:21:47 <EgoBot> Fake EgoBot command: %s" % r.group(1)))
02:21:55 <ihope> Nice, eh?
02:22:00 <ihope> !ext Final.
02:22:03 <pikhq> Very.
02:22:05 <EgoBot> Fake EgoBot command: Final.
02:22:08 <ihope> Yay!
02:22:29 <EgoBot> Fake EgoBot command: This is in a private message to EgoBot.
02:23:18 <pikhq> !bftextgen !ext
02:23:22 <ihope> EgoBot receives the message and sends it to EagleBot who relays it to bsmnt_bot who recognizes it and calculates and sends the response back to EagleBot who relays it to EgoBot who says it.
02:23:26 <EgoBot> Huh?
02:23:37 <ihope> Luckily, your command isn't working. :-P
02:23:47 <ihope> (We all have little confidence in each other's abilities!)
02:23:51 <pikhq> !help
02:23:54 <ihope> ~ext Testing.
02:24:02 <ihope> !ext Testing.
02:24:08 <EgoBot> help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon
02:24:08 <EgoBot> 1l 2l adjust axo bch bf{8,[16],32,64} funge93 fyb fybs glass glypho kipple lambda lazyk linguine malbolge pbrain qbf rail rhotor sadol sceql trigger udage01 unlambda whirl
02:24:18 <EgoBot> Fake EgoBot command: Testing.
02:24:28 <ihope> EgoBot is certainly the limiting factor in speed here.
02:24:54 <ihope> Or maybe EagleBot.
02:25:04 <ihope> I'd have to look at... more things to know.
02:25:18 <ihope> I can only view EagleBot's received messages.
02:25:55 <pikhq> !ext Yay, Rube Goldberg!
02:26:05 <EgoBot> Fake EgoBot command: Yay, Rube Goldberg!
02:26:35 <ihope> Now I just have to add a command to bsmnt_bot that automates the command addition process.
02:27:06 <ihope> And the command removal process.
02:27:15 <oerjan> and a cow. there needs to be a cow in there somewhere.
02:27:18 <ihope> After that, I'll probably win some sort of award for esotericness.
02:27:28 <ihope> !ext Moo.
02:27:33 <ihope> There. Cow. Happy?
02:27:35 <ihope> :-P
02:27:41 <EgoBot> Fake EgoBot command: Moo.
02:28:15 <ihope> GregorR, COME LOOK! I'VE WRITTEN SOMETHING IN BRAINFUCK!
02:28:48 <c|p> o:
02:29:00 <ihope> Rather, I'VE DONE THAT IN JUST NINE CHARACTERS OF BRAINFUCK!
02:29:10 <c|p> i wrote a php interpreter
02:29:12 <c|p> in brainfuck
02:29:14 <c|p> im so leet
02:29:30 <ihope> Yes, but did you do it in nine characters?
02:29:40 <c|p> shit, no
02:29:42 <c|p> :(
02:30:17 <ihope> Set up a three-bot relay like mine to make it look like it, then! >:-)
02:30:31 <pikhq> I wrote a Brainfuck compiler.
02:30:33 <pikhq> In Brainfuck.
02:30:47 <pikhq> 5 characters.
02:30:52 <pikhq> Guess how.
02:30:59 <ihope> Let's see it.
02:31:05 <ihope> Oh! I know!
02:31:05 <pikhq> ,[.,]
02:31:09 <ihope> +[--yes, that.
02:31:11 <pikhq> Brainfuck->Brainfuck.
02:31:12 <pikhq> ;)
02:31:17 <ihope> Except I was going to say +[,.].
02:32:21 <ihope> Supercompression: my method compresses everything into the same nine characters of brainfuck!
03:35:59 -!- oerjan has quit ("Good night").
03:51:42 -!- boily has joined.
04:06:58 -!- c|p has quit ("Leaving").
04:50:54 -!- boily has quit ("WeeChat 0.2.4").
04:53:29 <pikhq> ihope: Let me guess: it creates a new compression algorithm for each input.
05:53:59 -!- erider has quit (Read error: 110 (Connection timed out)).
05:54:27 -!- erider has joined.
07:36:14 -!- kwertii has quit.
07:43:15 -!- RedDak has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:01:01 <RedDak> Hi all
08:25:19 -!- RedDak has quit (Remote closed the connection).
09:02:40 -!- sebbu has joined.
09:21:36 <mtve> quite nice language - http://omg.worsethanfailure.com/Entries/ViewEntry.aspx?id=100328
10:05:25 -!- jix__ has joined.
10:30:54 <bsmntbombdood> ~raw join #lispcafe
10:53:18 <sebbu> on met quoi dans un manuel de maintenance ?
11:16:56 -!- jix__ has quit (Read error: 104 (Connection reset by peer)).
11:18:39 -!- jix__ has joined.
11:45:54 -!- jix__ has changed nick to jix.
13:53:15 <erider> good morning
14:10:21 -!- oerjan has joined.
14:13:14 -!- boily has joined.
14:42:21 <ihope> Wait, EagleBot's still here?
14:42:26 <ihope> It's not answering PINGs!
14:42:54 <ihope> !ext Testing one two three?
14:43:13 <oerjan> The Eagle has landed
14:43:33 <ihope> Hmph.
14:43:35 <ihope> !ps d
14:43:57 <ihope> I think I see the problem.
14:45:22 <oerjan> !help
14:45:50 <oerjan> ~exec self.stdout("Test")
14:45:51 <bsmnt_bot> AttributeError: IRCbot instance has no attribute 'stdout'
14:46:17 <ihope> ~exec sys.stdout("GRAH")
14:46:18 <bsmnt_bot> GRAH
14:46:35 <oerjan> i always get that one wrong
14:47:01 <ihope> ~exec self.stdout = sys.stdout
14:47:10 <ihope> ~exec self.stdout("Hee")
14:47:11 <bsmnt_bot> Hee
14:47:13 <ihope> :-)
14:47:59 <ihope> ~exec self.stdout = lambda(): sys.stdout("No, it's sys.stdout.")
14:48:00 <bsmnt_bot> SyntaxError: invalid syntax
14:48:12 <ihope> ~exec self.stdout = lambda: sys.stdout("No, it's sys.stdout.")
14:48:20 <ihope> ~exec self.stdout("oops")
14:48:21 <bsmnt_bot> TypeError: <lambda>() takes no arguments (1 given)
14:48:30 <ihope> ~exec self.stdout = lambda x: sys.stdout("No, it's sys.stdout.")
14:48:43 <ihope> Actually, wasn't there some... thing?
14:48:48 <ihope> ~exec self.stdout = lambda *x: sys.stdout("No, it's sys.stdout.")
14:49:14 <ihope> ~exec self.stdout("hi", 3, self)
14:49:14 <bsmnt_bot> No, it's sys.stdout.
14:49:19 <ihope> ~exec self.stdout()
14:49:20 <bsmnt_bot> No, it's sys.stdout.
14:49:25 <ihope> ~exec self.stdout(swim=3)
14:49:26 <bsmnt_bot> TypeError: <lambda>() got an unexpected keyword argument 'swim'
14:49:31 <ihope> Darn.
14:49:37 <ihope> ~exec self.stdout = lambda **x: sys.stdout("No, it's sys.stdout.")
14:49:47 <ihope> ~exec self.stdout(3)
14:49:48 <bsmnt_bot> TypeError: <lambda>() takes exactly 0 arguments (1 given)
14:49:56 <ihope> ~exec self.stdout = lambda *x **y: sys.stdout("No, it's sys.stdout.")
14:49:57 <bsmnt_bot> SyntaxError: invalid syntax
14:50:03 <ihope> ~exec self.stdout = lambda *x, **y: sys.stdout("No, it's sys.stdout.")
14:50:06 <oerjan> o_O
14:50:18 <ihope> ~exec self.stdout("one", 2, three=self)
14:50:19 <bsmnt_bot> No, it's sys.stdout.
14:50:21 <ihope> There.
14:50:41 <oerjan> ~exec sys.stdout("one", 2, three=self)
14:50:42 <bsmnt_bot> TypeError: write() takes exactly 2 non-keyword arguments (3 given)
14:51:08 <ihope> write(), eh?
14:51:31 * ihope hugs Python a little too hard
14:53:00 <oerjan> squished Python! (in bearnaise sauce)
15:10:25 <fizzie> Isn't it usually the python that hugs the victim a bit too hard?
15:11:00 <oerjan> squished ihope! (in bearnaise sauce)
15:11:17 <ihope> Do pythons do that?
15:11:30 <ihope> Yup, apparently they do.
15:13:52 <fizzie> Although they don't actually _crush_ you, but it's still hugging.
15:14:24 -!- boily has quit ("WeeChat 0.2.5").
15:16:05 * ihope hugs fizzie
15:24:52 <bsmntbombdood> i thought you said /me boils fizzie
15:25:48 <bsmntbombdood> that wouldn't be very nice to boil him
15:28:56 * ihope boils bsmntbombdood
15:29:03 <ihope> Oops!
15:29:04 <bsmntbombdood> ouch
15:31:07 -!- oerjan has set topic: The international hub for esoteric programming language design and deployment - map: http://www.frappr.com/esolang - forum: http://esolangs.org/forum/ - EgoBot: !help - wiki: http://esolangs.org/wiki/ - logs: http://tunes.org/~nef/logs/esoteric/ or http://meme.b9.com/cdates.html?channel=esoteric - Pastebin: http://pastebin.ca/ - Here be cannibals.
15:35:10 -!- jix__ has joined.
15:37:25 -!- nooga has quit (Remote closed the connection).
15:44:04 -!- jix has quit (Read error: 113 (No route to host)).
15:50:35 <bsmntbombdood> nooo they be eatin my flesh
17:16:18 -!- RedDak has joined.
17:22:57 <RodgerTheGreat> 'morning, guys
18:02:11 <bsmntbombdood> fantastic
18:02:28 -!- boily has joined.
18:06:04 <pikhq> !ext Still evil. . .
18:06:48 -!- sebbu2 has joined.
18:07:18 <pikhq> Come on, EagleBot!
18:07:18 <pikhq> #magic !say Do the magic!
18:07:18 <pikhq> -_-'
18:08:58 <RodgerTheGreat> EagleBot?
18:09:22 <RodgerTheGreat> I've clearly missed something here
18:12:20 <oerjan> it's ihope's bot, but it locked up
18:13:03 <oerjan> afk
18:16:23 <bsmntbombdood> i don't have a bed
18:19:19 <RodgerTheGreat> bsmntbombdood: I am aware of a technique that abuses fedex policy and entails duct-tape usage by which you may create a bed for ~$0.
18:19:38 <pikhq> RodgerTheGreat: EagleBot is the binding force of a Rube Goldberg machine in here that makes it look like we can add features to EgoBot.
18:20:00 <RodgerTheGreat> ah. sounds pretty esoteric and therefore awesome
18:20:09 <pikhq> Very much so.
18:20:32 <bsmntbombdood> fedex?
18:20:36 <RodgerTheGreat> If you want to add more layers of pointless abstraction, I could load up my BF bot
18:20:43 <bsmntbombdood> will they give you free boxes or something?
18:21:12 <RodgerTheGreat> bsmntbombdood: fedex will send you shipping materials for free. You merely request a lot of boxes and bubblewrap and things, and then you can construct furniture from it
18:21:55 <RodgerTheGreat> http://www.fedexfurniture.com/bed/bed_800.jpg
18:22:01 <RodgerTheGreat> http://www.fedexfurniture.com/bed/structure_800.jpg
18:22:10 <RodgerTheGreat> http://www.fedexfurniture.com/bed/structure2_800.jpg
18:22:15 <RodgerTheGreat> http://www.fedexfurniture.com/bed/final_800.jpg
18:22:18 <RodgerTheGreat> behold
18:22:40 <bsmntbombdood> awesome
18:25:38 -!- sebbu has quit (Read error: 110 (Connection timed out)).
18:35:03 <bsmntbombdood> now the computer goes bye byte too
18:40:01 <RodgerTheGreat> ?
19:18:25 -!- sebbu2 has changed nick to sebbu.
19:20:05 -!- RedDak has quit (Remote closed the connection).
19:29:30 -!- oerjan has quit ("Supper").
20:03:59 <bsmntbombdood> now i don't have a bed or a computer
20:04:22 <pikhq> ???
20:04:25 <pikhq> WTF?
20:04:42 <RodgerTheGreat> I concur. What the fuck, bsmntbombdood?
20:04:45 <bsmntbombdood> indeed
20:05:00 <pikhq> Care to *explain*?
20:05:09 <bsmntbombdood> we're moving
20:05:18 <pikhq> Ah.
20:05:48 <bsmntbombdood> except...not for a few days
20:06:43 <pikhq> Let me go back to "WTF".
20:07:13 <pikhq> Where to?
20:07:35 <bsmntbombdood> longmont
20:08:07 <pikhq> You and your not-Colorado-Springs-ness. :p
20:08:48 <bsmntbombdood> you are in the springs?
20:09:00 <pikhq> Actually, just outside of it.
20:10:59 <bsmntbombdood> i saw a hot girl in the springs once
20:11:43 <pikhq> It's a decent-sized city. I'm sure there's plenty. :p
20:12:54 <bsmntbombdood> we are (will be) surrounded be ~100 acre farms
20:13:32 <pikhq> Ah. So, that puts you in about where I'm at *now*. (I'm visiting family in Oklahoma ATM)
20:14:13 <bsmntbombdood> i have to go back to packing shit
20:14:17 <pikhq> :/
20:14:26 -!- boily has quit ("WeeChat 0.2.5").
21:56:29 -!- jix__ has changed nick to jix.
22:35:06 -!- oerjan has joined.
22:35:52 -!- sebbu2 has joined.
22:54:34 -!- sebbu has quit (Connection timed out).
23:20:34 -!- boily has joined.
23:22:54 <ihope> #magic !say foo
23:23:05 <ihope> !say foo
23:23:28 <ihope> !help
23:23:39 <ihope> EagleBot seems fine. EgoBot doesn't.
23:25:33 * oerjan gives EgoBot some cough drops
23:26:28 <pikhq> GregorR: Give EgoBot the SIGKILL.
23:27:09 <bsmntbombdood> killall -s 9 bsmnt_bot
23:27:10 <ihope> I can reset both bsmnt_bot and EagleBot, but not EgoBot.
23:27:21 <bsmntbombdood> i mean, killall -s 9 bsmntbombdood
23:28:42 <pikhq> bsmnt_bot is easy to reset.
23:28:57 <pikhq> ~exec sys.exit(0)
23:29:09 <ihope> ~exec self.raw("QUIT")
23:29:09 -!- bsmnt_bot has quit.
23:29:13 <pikhq> . . . Well, not like that, but you get the idea.
23:29:15 -!- bsmnt_bot has joined.
23:30:03 <bsmntbombdood> h[6=V΂B 1+0 records in
23:30:03 <bsmntbombdood> 1+0 records out
23:30:03 <bsmntbombdood> 20 bytes (20 B) copied, 9.7962e-05 s, 204 kB/s
23:30:10 <bsmntbombdood> wtf?
23:30:39 <boily> it looks like a `dd' dump...
23:30:40 <ihope> ÑÞhé¯Ð[ƒ6=±V§áÁÿ΂B?
23:32:08 <bsmntbombdood> 9.7962e-05
23:32:34 <bsmntbombdood> years until the apocalypse
23:33:00 <oerjan> i sincerely hope not
23:33:06 -!- EagleBot has quit (Read error: 104 (Connection reset by peer)).
23:33:14 <oerjan> unless you misspelled + as -
23:33:56 <bsmntbombdood> no, - is correct
23:34:26 <oerjan> 51.48 minutes till the apocalypse then
23:35:11 <oerjan> probably just as well to get it over with :)
23:36:08 <ihope> Egad, I just uglied up my code.
23:38:37 <pikhq> bsmntbombdood: Let me guess: in the apocalypse theater, apocalypses are performed ever hour, on the hour. :p
23:39:02 <bsmntbombdood> => (let ((me (cons 'dead 0))) (set-cdr! me me) me)
23:39:24 <pikhq> (cdr universe)
23:39:34 <pikhq> => (me (me (me)))
23:39:38 <pikhq> (car universe)
23:39:43 <pikhq> => (me)
23:41:47 <bsmntbombdood> methinks a laxy impure lanague is possible
23:42:43 <bsmntbombdood> (set! var val) gets evaluated when var is used
23:43:40 -!- EagleBot has joined.
23:44:01 <pikhq> Sure it is possible.
23:44:21 <pikhq> I do believe that the C preprocessor has lazy evaluation.
23:44:33 <bsmntbombdood> hardly
23:44:37 <ihope> There. This bot now uses continuation passing style in order to be able to reset itself
23:44:52 <ihope> #quit
23:44:56 <pikhq> #define foo(x) x
23:45:06 <ihope> #quit
23:45:06 <bsmntbombdood> call/cccccccccccc
23:45:09 <pikhq> #define bar(x) foo(x)
23:45:15 <pikhq> bar(foo(x))
23:45:16 <ihope> Hmm...
23:45:20 <oerjan> ihope: what language is EagleBot written in?
23:45:27 <ihope> oerjan: Haskell.
23:45:34 <ihope> :#quit green
23:45:35 -!- EagleBot has quit (Client Quit).
23:45:38 <bsmntbombdood> does haskell have call/cc?
23:45:38 <ihope> There we go.
23:45:44 -!- EagleBot has joined.
23:45:53 <oerjan> bsmntbombdood: in the ContT monad transformer, yes :)
23:45:58 <pikhq> I do believe that goes bar(foo(x))->foo(foo(x))->foo(x)->x
23:46:00 <ihope> bsmntbombdood: it does, but in a type-safe form.
23:46:14 <ihope> Type-safe and referentially transparent.
23:46:16 <oerjan> bwahaha!
23:46:18 <ihope> And I'm not using it.
23:49:47 <ihope> It works in any continuation monad.
23:51:31 <oerjan> lambdabot> forall a (m :: * -> *) b. (MonadCont m) => ((a -> m b) -> m a) -> m a
23:52:18 <oerjan> (the type of callCC)
2007-06-17
00:00:38 <ihope> #quit a nice day we're having, eh?
00:00:38 -!- EagleBot has quit.
00:00:48 -!- EagleBot has joined.
00:00:53 <ihope> Oof.
00:01:04 -!- EagleBot has quit (Nick collision from services.).
00:02:17 -!- EagleBot has joined.
00:02:59 <ihope> I'll let you all play with EagleBot, not that there's much you can do with EagleBot other than make it quit,
00:03:02 <ihope> s/,/./
00:04:06 -!- RedDak has joined.
00:05:05 -!- ihope has quit ("http://tunes.org/~nef/logs/esoteric/06.08.09").
00:11:04 <pikhq> #magic Egobot, work, damn it!
00:18:25 <oerjan> #quit So there!
00:18:25 -!- EagleBot has quit.
00:18:35 -!- EagleBot has joined.
00:52:46 * SimonRC is amazed at the Piranã.
00:53:00 <SimonRC> erm, Pirahã.
00:53:10 <SimonRC> The Pirahã language is not recursive. They seem to lack to most forms of abstraction, such as numbers, or colours seperate from objects. They have no creation myths, and do not get the idea of storing food for next month.
00:53:15 <SimonRC> http://www.newyorker.com/reporting/2007/04/16/070416fa_fact_colapinto
00:56:16 <bsmntbombdood> is it turing complete?
00:56:24 <bsmntbombdood> or...english complete?
00:56:25 <SimonRC> heh
00:56:28 <SimonRC> no
00:56:57 <SimonRC> it is possibly the world's only remaining "primitive" language
00:57:20 <boily> no numbers... it must be difficult to express quantities...
00:58:15 <SimonRC> they don't much
00:58:56 <bsmntbombdood> universal english machine
01:04:00 <bsmntbombdood> i wonder if there's languages that are super-english
01:08:06 -!- ihope has joined.
01:08:16 <ihope> Super-English languages? I dunno--English seems pretty good.
01:08:53 <bsmntbombdood> that's only because you can only think what your language allows
01:08:56 <ihope> There's not especially much you can't express using the "subject verb preposition noun" stuff.
01:09:28 <bsmntbombdood> because you can only conceive of the "subject verb preposition noun" stuff
01:09:59 <bsmntbombdood> if there is a language that can express higher ideas, you wouldn't even be able to describe it in english
01:10:10 <ihope> Ah yes--the Sapir-Whorf hypothesis.
01:10:44 <ihope> Can you think, though, of anything that *might* not be able to be expressed using subject-verb-preposition-noun?
01:11:07 <ihope> We even have "that", which turns a verb-preposition-noun into an adjective-like construct.
01:11:34 <bsmntbombdood> no, because i think in english
01:11:34 <ihope> "The dog that goes to the store speaks with the clouds."
01:12:08 <bsmntbombdood> maybe if you could decouple thought from language...
01:12:11 <ihope> I think mathematicians do a good job of finding weird abstract things.
01:13:11 <ihope> The notations that are used in mathematics pretty much denote values, functions, and properties.
01:13:35 <bsmntbombdood> it all can still be described with english
01:13:37 <ihope> Values can be denoted by nouns, properties by verbs, and functions by preposition-noun.
01:13:57 <ihope> Does that mean, then, that English can express any mathematical idea?
01:14:08 <ihope> I'm led to believe so.
01:14:26 <bsmntbombdood> any mathematical idea that english speakers can conceive
01:15:26 <ihope> Can you prove that there are useful mathematical ideas that English speakers can't conceive?
01:15:39 <bsmntbombdood> i think the first step to proving/disproving the existance of super english languages would be to construct the turing machine or lambda calculus of languages
01:16:25 <ihope> Do we know that English isn't it?
01:16:30 <bsmntbombdood> i would think that english compared to the english-class-thought-machine would be like C++ compared to the turing machine
01:16:56 <bsmntbombdood> loads of abstraction and useless sugar
01:17:11 <ihope> Find someone who speaks Japanese or something and ask them if they know of anything that can't be expressed in English at all.
01:17:34 <ihope> Now, what's this language SimonRC was talking about?
01:17:51 <boily> It's a language from South America, iirc.
01:18:24 <boily> http://en.wikipedia.org/wiki/Pirah%A3_language
01:18:26 <ihope> Neither the tunes.org logs nor EagleBot's logs seem to display it correctly.
01:18:37 <ihope> That page doesn't exist.
01:20:07 <SimonRC> P i r a h a~
01:20:19 <SimonRC> spelt that way ^^
01:20:29 <ihope> Thanks.
01:20:31 <SimonRC> 00:52:25 < SimonRC> http://www.newyorker.com/reporting/2007/04/16/070416fa_fact_colapinto
01:21:32 -!- RedDak has quit (Remote closed the connection).
01:26:37 <oerjan> ooh, he's back!
01:27:01 <bsmntbombdood> who?
01:27:17 <oerjan> Chris Pressey
01:27:43 <oerjan> on the wiki
01:29:35 * SimonRC tries to remember who CP is
01:29:40 <SimonRC> Befunge?
01:29:48 <oerjan> etc. etc. etc.
01:30:30 <SimonRC> catseye.ca!
01:30:47 <SimonRC> or .tc even
01:30:58 -!- erider has quit (Remote closed the connection).
01:31:01 -!- erider_ has joined.
01:32:01 -!- erider_ has changed nick to erider.
01:33:49 <boily> it's wonderful!
01:37:02 -!- erider has quit ("I don't sleep because sleep is the cousin of death!").
01:47:57 -!- sebbu2 has quit (Read error: 60 (Operation timed out)).
01:52:18 <SimonRC> boily: ??
01:52:31 <SimonRC> ah, pirahã
01:52:38 <boily> um, yeah?
02:10:31 <SimonRC> It took me a moment to realise that was what you were saying was wonderful
02:16:31 <pikhq> ihope: I speak Japanese, and don't know anything that can't be expressed in English.
02:16:53 <pikhq> (although *explaining* words which refer to some Japanese legends can take a while)
02:18:16 <ihope> I hear that Japanese has more ordinal numbers than English.
02:18:36 <ihope> English needs hacks to express the ordinal number corresponding to one half.
02:19:33 <pikhq> What you mean by "ordinal" is i9n disagreement with Wikipedia.
02:20:09 <pikhq> Oh.
02:20:19 <pikhq> I want [[Ordinal numbers (linguistics)]]
02:20:20 <pikhq> XD
02:20:42 <ihope> :-)
02:20:42 <pikhq> ihope: Japanese has oo ordinal numbers.
02:21:15 <ihope> English has an infinite number of them too, doesn't it?
02:21:15 <pikhq> One postfixes "ban", IIRC, to make it an ordinal number.
02:21:30 <ihope> The hiragana?
02:21:35 <pikhq> *Technically* yes, but it's less-defined.
02:21:39 <oerjan> ever heard of -th? :)
02:22:01 <ihope> oerjan: give me the one-twelfthth element of this list, will you?
02:22:01 <pikhq> ??
02:22:17 <ihope> Now tell me how to pronounce that. :-)
02:22:53 <pikhq> In Japanese: 0.083??
02:23:15 <pikhq> And damn, I wish this terminal grokked Unicode.
02:23:17 <boily> I speak French, and I will not pronounce `twelfthth'.
02:23:19 <ihope> I think we're using different character encodings.
02:23:31 <pikhq> Or, rather, I wish the *font* I have grokked Unicode.
02:23:36 <pikhq> ihope: UTF-8?
02:23:41 <ihope> UTF-8.
02:23:48 <pikhq> Hmm.
02:23:52 <pikhq> I blame Konsole.
02:23:54 <ihope> Unless those question marks are actually question marks.
02:23:58 <oerjan> there can be no 1/12th element, that is meaningless
02:24:02 <pikhq> They're not *meant* to be.
02:24:10 <ihope> oerjan: what if it's a continuous list?
02:24:23 <ihope> Is it all "ban" in hiragana?
02:24:27 <pikhq> Yeah.
02:24:45 <pikhq> (I *might* be wrong on the specific word, though)
02:24:51 <oerjan> ihope: does that actually work in japanese?
02:25:58 <oerjan> anyway neither has got anything on Latin, which has four different classes of number
02:25:58 <ihope> oerjan: I dunno.
02:26:06 <ihope> Do you know, pikhq?
02:26:35 <pikhq> I *think* it works, but I can't be sure, since it's not my native language.
02:27:02 <pikhq> And, since school's out, I can't ask the people I know who *do* speak it either fluently or natively.
02:27:37 <oerjan> cardinal, ordinal, numbers like "once, twice" but generally, and "n each" numbers. Although of course they are easily expressed in English, just not with endings.
02:28:28 <pikhq> Yeah.
02:28:58 -!- GregorR has quit (Read error: 60 (Operation timed out)).
02:29:08 <oerjan> !help
02:30:03 <ihope> "n each" numbers?
02:31:13 <oerjan> or something like that, they're plural adjectives
02:31:36 <ihope> How do they work?
02:32:36 <oerjan> let me try to remember a suitable noun to use them with
02:34:49 <oerjan> "bini oculi" would mean "two eyes each", i think
02:36:15 <oerjan> "Homines binos oculos habent" = "Humans have two eyes each"
02:41:21 <oerjan> incidentally that form is where "binary" comes from
02:42:54 -!- EgoBot has quit (Read error: 110 (Connection timed out)).
02:52:30 <SimonRC> This language is fucking twisted! http://www.stud.uni-hamburg.de/users/goldi/aee/beginner/beginner_toc.html
02:52:48 <SimonRC> for the first few chapters, you thing is just like Pascal.
02:53:04 <SimonRC> Then, the introduce pointers and structs, and it suddenly turns out to be like C
02:53:27 <SimonRC> then the guy adds unification, and it looks like C meets Prolog
02:53:47 <SimonRC> then it tries to be LISP, by addid quoted expressions and Eval()
02:53:56 <SimonRC> what next? Erlang?
02:54:02 <SimonRC> *adding
02:54:32 <ihope> Epigram!
02:55:10 <SimonRC> heh
02:55:24 <SimonRC> the ytpesystem tries to pretend it isn;t that of B]
02:55:29 <SimonRC> oops, B
03:15:32 <SimonRC> ah, no, it;s turning into C++
03:19:09 <SimonRC> ish
03:20:46 * pikhq hurls
03:21:43 <pikhq> It's PascalFortranCPrologLispC++Assembly.
03:22:55 <SimonRC> heh
03:23:01 <SimonRC> not C, B
03:23:09 <bsmntbombdood> yummy
03:23:15 <pikhq> You're right. ..
03:23:23 <SimonRC> the resulting mess is rather C++-like
03:23:30 <pikhq> Doesn't seem to have structs as an intrinsic.
03:23:38 <SimonRC> does
03:23:42 <bsmntbombdood> B is practically the same as C
03:23:43 <SimonRC> they're called objects
03:23:47 <bsmntbombdood> except for types
03:24:02 <SimonRC> ok, so E should really be called B++
03:25:25 <pikhq> It actively encourages pointer<->integer.
03:25:39 <SimonRC> yes
03:25:41 <SimonRC> like B
03:25:57 <pikhq> Like K&R C.
03:26:07 <SimonRC> "Data-hiding is accomplished in E at the module level. This means, effectively, that it is wise to define classes in separate modules (or at least only closely related classes together in a module), taking care to EXPORT only the definitions that you need to."
03:26:13 <SimonRC> at least he got *something* right
03:26:16 <pikhq> Which is, of course, B with a better typesystem.
03:28:39 <SimonRC> For some reason popular langauges conflate the type-definition mechanism and the information-hiding mechanism, leading to crap like C++'s friend classes.
03:29:17 <pikhq> Tcl doesn't have that problem.
03:29:20 <SimonRC> they also hide the elegance of interface inheritance under the bizzarities of implementatio inheritance
03:29:30 <SimonRC> pikhq: no information-hiding?
03:29:40 <pikhq> Of course, that's because object-orientation is provided by external packages, and not a language intrinsic.
03:29:41 <SimonRC> ISTR that everything is a string in Tcl
03:29:57 <SimonRC> Factor is similar
03:30:01 <pikhq> Actually, everything is a thing.
03:30:07 <SimonRC> i.e. OO is in the libraries
03:30:12 <pikhq> It may be either a string, a list, or a number. . .
03:30:24 <SimonRC> how the fuck does that work?
03:30:35 <pikhq> Cleverness.
03:31:09 <pikhq> Or, rather, magic in the bytecode compiler/interpreter.
03:31:21 <SimonRC> ok
03:31:25 <SimonRC> what types are there?
03:35:24 -!- jix__ has joined.
03:43:33 -!- jix has quit (Read error: 110 (Connection timed out)).
04:01:04 -!- boily has quit ("nonogramming").
04:06:41 -!- Sgeo has joined.
04:13:41 -!- jix__ has quit ("CommandQ").
04:59:23 -!- oerjan has quit ("Good night").
05:29:48 <pikhq> SimonRC: According to Tcl code?
05:30:01 <pikhq> Scalar and vector.
05:30:50 <pikhq> Err.
05:30:52 <pikhq> Scalar and map.
05:33:21 <pikhq> Fine, fine. . . So scalar variables can represent strings, lists, longs, or floats. . . The tclvar_t struct stores one of them, and converts when needed.
05:48:22 -!- gimel has joined.
05:53:49 -!- gimel has left (?).
06:45:44 -!- GreaseMonkey has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
09:52:21 -!- sebbu has joined.
10:13:47 -!- Sgeo has quit ("Ex-Chat").
10:23:13 -!- Sukoshi has joined.
10:58:04 <GreaseMonkey> getting off now, gnight
10:58:24 -!- GreaseMonkey has quit ("AAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAA A AAAAAAAAAAA AAAAAAAA").
11:55:22 -!- jix__ has joined.
12:49:05 -!- jix__ has changed nick to jix.
13:11:38 -!- RedDak has joined.
13:15:22 -!- oerjan has joined.
13:44:26 -!- c|p has joined.
13:56:23 -!- erider has joined.
13:56:27 <erider> good morning
14:04:48 <oklopol> mörning
14:04:58 <oerjan> good mourning
14:06:12 <oklopol> on tuesday, i have to go to another camp :)
14:06:27 <oklopol> i love the holidayz...
14:06:28 <oklopol> ->
14:28:20 -!- boily has joined.
14:57:42 <erider> happy father's day!
15:10:48 -!- boily has quit ("Bonne fête des pères!").
15:31:21 -!- oerjan has quit ("Dinner").
15:35:27 -!- jix__ has joined.
15:44:18 -!- jix has quit (Read error: 110 (Connection timed out)).
16:24:15 -!- dak has joined.
16:40:52 -!- RedDak has quit (Read error: 110 (Connection timed out)).
17:17:31 -!- ihope has quit ("http://tunes.org/~nef/logs/esoteric/06.08.09").
17:23:45 -!- boily has joined.
17:43:26 -!- dak has changed nick to RedDak.
17:45:41 -!- c|p` has joined.
17:45:50 <RodgerTheGreat> howdy, folks
17:46:30 -!- c|p has quit (Nick collision from services.).
17:46:56 -!- c|p` has changed nick to c|p.
17:48:46 -!- boily has quit ("WeeChat 0.2.5").
17:56:25 -!- c|p has quit ("Leaving").
17:56:33 -!- c|p has joined.
17:57:01 -!- boily has joined.
18:13:29 -!- RedDak has quit (Read error: 104 (Connection reset by peer)).
18:13:40 -!- RedDak has joined.
18:20:09 -!- RedDak has quit (Remote closed the connection).
18:21:46 -!- RedDak has joined.
18:24:21 <boily> Yesterday, I wrote an underload interpreter.
18:24:35 <boily> This language is warping my mind...
18:39:07 -!- boily has quit ("WeeChat 0.2.5").
18:57:30 -!- oerjan has joined.
19:40:59 -!- RedDak has quit (Remote closed the connection).
20:00:59 -!- GregorR has joined.
20:13:36 <SimonRC> ~~~
20:31:53 <erider> [-]
20:34:45 -!- atrapado has joined.
20:56:14 -!- c|p has quit (Read error: 110 (Connection timed out)).
21:12:36 * andreou *stretches*
21:12:47 <andreou> anyone knows how to reference footnotes in LaTeX?
21:21:09 <oerjan> doesn't it work to just put a \label in it?
21:25:02 <oerjan> andreou ^^
21:35:44 <SimonRC> A word of advice people....
21:36:07 <SimonRC> If you are on Usenet, never ever mention the individual "Rob Cypher".
21:36:38 <SimonRC> He is like fecking BeetleJuice, except you only have to say his name once.
21:36:55 <SimonRC> I mentioned him, and now the group is stuck with him.
21:36:57 <SimonRC> fuck
21:37:15 <oerjan> like an evil version of kibo i take
21:37:22 <SimonRC> yeah
21:37:57 * oerjan hasn't been on Usenet for years
21:38:52 <oerjan> a possibility might be to mention him _everywhere_?
21:39:00 <SimonRC> hmm
21:39:02 <SimonRC> maybe
21:39:24 <SimonRC> that's like saying "If we all rush him at once, he can't shoot all of us".
21:39:37 <oerjan> indeed
21:41:52 <oerjan> don't people have killfiles these days?
21:42:03 <SimonRC> no, it seems not
21:42:22 <SimonRC> plus the replies are more of a problem, and the heavy cross-posting
21:42:40 <oerjan> don't people have _threaded_ killfiles these days? :)
21:44:13 <SimonRC> is there such a thing?
21:44:39 <oerjan> i always used trn, the Threaded Read News
21:45:24 -!- c|p has joined.
21:46:07 <oerjan> and i heard slrn may have been even better, with its score files
21:46:20 <oerjan> these were Unix terminal applications
21:47:31 <SimonRC> feck...
21:47:39 <SimonRC> I can;t figure out how to un-ignore threads
21:50:24 <andreou> oerjan i need to access the footnote number
21:50:41 <andreou> i.e., some '\*ref' command similar to pageref
21:50:53 <oerjan> andreou: isn't that what \ref does?
21:51:40 <andreou> hm
21:52:14 <SimonRC> ah, got it
21:52:29 <SimonRC> I have to make it visible again first using the لآهثص ةثىع
21:52:47 <SimonRC> I have to make it visible again first using the view menu
21:53:18 <andreou> *oops*
21:53:25 <andreou> oerjan well indeed it does
21:53:34 <andreou> inherent stupidity increases along with uptime
21:53:50 <SimonRC> bah, it only allows me to ignore what it thinks of as a whole thread
21:53:56 <oerjan> andreou: and approaching deadline i guess :)
21:54:25 <andreou> true words, it *should* be ready and printed in about 31 hrs (infeasible)
21:55:54 <andreou> funny thing is, i spend some time looking in the tug faq and #latex, that i forgot where i needed to crossreference a footnote...
21:57:38 <andreou> anyway, off to sleep, no more work can be done right now
21:57:40 <andreou> cheers everyone
21:59:45 <oerjan> SimonRC: trn allowed you to ignore the replies to a given post although some broken newsreaders did not include the threading information properly
22:00:14 <oerjan> and you could use regexps to do this automatically based on author, subject, whatever
22:00:40 <oerjan> (although article content was more expensive than headers)
22:00:48 <oerjan> as far as i recall
22:05:23 -!- jix__ has quit ("CommandQ").
22:05:50 <oerjan> sadly, trn seems to have stalled about 2001
22:06:17 <oerjan> hopefully because it was outrun by better competitors.
23:16:01 <RodgerTheGreat> underload is certainly interesting
23:16:11 <RodgerTheGreat> I think I may try to make something nontrivial with it
23:16:46 <RodgerTheGreat> math may prove rather tricky unless I do most things in unary.
2007-06-18
00:11:34 <pikhq> I think you're made.
00:11:39 <pikhq> mad, even.
00:11:53 <oerjan> a creationist!
00:22:52 -!- c|p has quit (Read error: 104 (Connection reset by peer)).
00:23:17 -!- c|p has joined.
00:46:03 -!- atrapado has quit ("dur mir").
01:42:10 -!- sebbu has quit ("@+").
03:29:34 <SimonRC> zzzz
03:31:13 <bsmntbombdood> yyyy
04:09:50 -!- ihope has joined.
04:09:51 <ihope> xxxx
04:10:06 <bsmntbombdood> wow!
04:10:14 <ihope> Wow?
04:10:17 <bsmntbombdood> the logreading alphabet
04:10:25 <ihope> Actually, I used my spy.
04:10:35 <ihope> ...who will drop out along with me in a moment.
04:10:47 <bsmntbombdood> #quit
04:10:48 <ihope> I guess it's still log-reading.
04:10:51 <ihope> #reset
04:10:57 <ihope> I have no idea.
04:11:30 <ihope> #quit
04:11:37 <ihope> Huh...
04:11:45 <ihope> #quit egad
04:11:46 -!- EagleBot has quit.
04:11:52 <ihope> Necessary to have something after it.
04:11:56 -!- EagleBot has joined.
04:11:57 <ihope> I don't know why.
04:12:29 -!- EagleBot has quit (Nick collision from services.).
04:12:47 -!- EagleBot has joined.
04:12:53 <ihope> #quit it puts the message in the basket
04:12:53 -!- EagleBot has quit (Client Quit).
04:12:59 <ihope> D'oh.
04:13:03 -!- EagleBot has joined.
04:13:38 <bsmntbombdood> too many oreos make a man fat tired and sick
04:14:24 <ihope> #quit grah
04:14:24 -!- EagleBot has quit (Client Quit).
04:14:33 -!- EagleBot has joined.
04:14:47 <bsmntbombdood> freenode's problem, not yours
04:15:12 <ihope> How do you know it's theirs?
04:15:33 <bsmntbombdood> it could be freenodes problem
04:15:49 <bsmntbombdood> quit messages are ignored unless youve been connected for long enough
04:16:00 <ihope> Oh!
04:16:01 <pikhq> That's. . . Weird.
04:16:03 <ihope> Ah.
04:16:28 <Sukoshi> Your mom's weird.
04:16:34 <pikhq> Obviously what's more important is #magic !say See?
04:16:37 <pikhq> Sukoshi: Yeah. And?
04:16:51 <Sukoshi> pikhq: Stuff.
04:16:53 <pikhq> On a side note, it's been a while since I've seen you in chat.
04:17:02 <Sukoshi> Yeh.
04:17:12 <pikhq> Well, in and *talking*.
04:17:19 <pikhq> Where'd you disappear to?
04:17:30 -!- Otakubot has joined.
04:17:31 <bsmntbombdood> oh Sukoshi is here
04:17:42 <bsmntbombdood> nooo she be bringin her bot
04:17:43 <Sukoshi> ?say Yeah, I am.
04:17:43 <Otakubot> Yeah, I am.
04:17:59 <Sukoshi> I haven't gotten the time yet to hack in useful functions. So all you have is ?say and ?random.
04:18:01 <pikhq> Grr. Gregor, get EgoBot up, so we can abuse it some more!
04:18:05 <Sukoshi> ?random 20
04:18:05 <Otakubot> 1
04:18:45 <pikhq> There's a Rube Goldberg machine in here, where we use EgoBot, bsmnt_bot, and EagleBot to make it look like we're adding commands to EgoBot.
04:19:09 <Sukoshi> Well, ?say gives you that power.
04:19:14 <Sukoshi> ?say I am supreme.
04:19:14 <Otakubot> I am supreme.
04:19:18 <pikhq> Except not with EgoBot.
04:19:51 <Sukoshi> I'll be hacking this as time goes by, and I doubt Otakubot will go down as I hack at it.
04:20:23 <pikhq> The !ext command is parsed by bsmnt_bot, which sends "#magic !say False command: $foo" to EagleBot, which sends !say to Egobot.
04:20:24 <bsmntbombdood> oh no
04:20:30 <bsmntbombdood> the oeros are so yummy
04:21:02 <pikhq> That, at least, I *think* is the series of commands.
04:21:19 <pikhq> Sukoshi: You should know that I've gone ape-shit insane in the past few months.
04:21:30 <pikhq> BFM is now PEBBLE, and basm is now PFUCK. . .
04:21:35 <pikhq> And both have SVN repositories.
04:21:41 <bsmntbombdood> i'm going ape-shit insane
04:21:57 <pikhq> (neither of which I've committed to in a while; I've done absolutely nothing in the past couple of weeks)
04:21:59 <bsmntbombdood> it's the heat
04:22:03 <bsmntbombdood> and the moving
04:22:32 <pikhq> Also, there's a 1.0 release of PFUCK out, and I'll have a 1.0 release of PEBBLE just as soon as I care to get some *decent* documentation for the whole thing.
04:22:44 <bsmntbombdood> but my new house has air conditioning yay
04:22:54 <pikhq> And I should stop ranting about the changes I've made in it before I make people hate me for saying this all a second time.
04:24:27 <bsmntbombdood> i loves you
04:24:34 <pikhq> ...
04:24:56 <pikhq> I'm not sure I want a guy who loves you for shutting up to love me.
04:25:21 <bsmntbombdood> that's not what i meant
04:25:50 <pikhq> Then what exactly *did* you mean?
04:26:14 <bsmntbombdood> can't be sure
04:26:29 <pikhq> (I encourage you to say what you mean and mean what you say. It's even the Befunge way!)
04:26:35 <pikhq> s/Befunge/Malbolge/
04:26:45 <pikhq> How that transistion got made in my head, I may never know.
04:29:19 <bsmntbombdood> postfix pronouns and english muffins make for a sensational trundle
04:30:03 <pikhq> Complaining about English again?
04:30:47 <bsmntbombdood> come up with an english class expression machine yet?
04:31:43 <pikhq> Just one.
04:31:45 <pikhq> English.
04:32:28 <bsmntbombdood> a simpler than english english class expression machine
04:32:56 <bsmntbombdood> or even better the simplest possible english class expression machine
04:34:06 <pikhq> Simpler than English is easy.
04:34:12 <pikhq> The Germanic subset of English.
04:34:52 <bsmntbombdood> not much simpler
04:35:24 <pikhq> No, it's a good deal simpler.
04:35:27 -!- EagleBot has quit (Read error: 110 (Connection timed out)).
04:35:35 <pikhq> Getting rid of almost all technical vocabulary.
04:35:42 <bsmntbombdood> english is C++, the germanic subset is maybe...Java, and i want a turing machine
04:35:43 <pikhq> It's syntax, though, is exactly the same.
04:35:52 <bsmntbombdood> or a lambda calculus
04:36:08 <pikhq> No, the Germanic subset is closer to assembly.
04:36:18 <bsmntbombdood> i don't know, but i doubt it
04:36:40 -!- ihope has quit (Connection timed out).
04:37:47 <pikhq> bsmntbombdood: That gets rid of basically every word newer than the year 200.
04:38:03 <bsmntbombdood> vocabulary isn't much
04:38:03 <pikhq> (discounting linguistic morphings of words that existed back then)
04:38:22 <pikhq> Tell that to RISC/CISC flamewar fans.
04:38:50 <bsmntbombdood> it matters in execution speed, but not computability
04:38:55 <pikhq> Granted, it's not the ultimately simple.
04:39:20 <oklopol> all natural languages suck!
04:39:43 <bsmntbombdood> oklopol: then you will like my challenge
04:39:58 <oklopol> i've taken it years ago.
04:40:03 <pikhq> Obviously what you want is something similar to Toki Pona.
04:40:15 <oklopol> hmm... the one in new zealand?
04:40:16 <oklopol> or
04:40:19 <bsmntbombdood> the simplist english class expression machine will probably supremely unnatural
04:40:25 <oklopol> hmm, i confuse countries easily
04:40:36 <pikhq> No, it's a conlang.
04:40:36 <pikhq> http://www.tokipona.org/nimi.html
04:40:40 <pikhq> The entire vocabulary.l
04:40:40 <oklopol> oh
04:41:25 <pikhq> And I do believe it's designed by an Esperantist. . .
04:41:34 <pikhq> http://www.tokipona.org/eo.html See?
04:42:06 <bsmntbombdood> "fruit, pulpy vegetable, mushroom" i don't think so mister
04:43:00 <pikhq> I'm sating that you want something *similar*, not that that's exactly what you desire.
04:43:04 -!- boily has joined.
04:43:16 <pikhq> s/sating/stating/
04:43:17 <oklopol> bsmntbombdood: what's wrong with that?
04:43:44 <bsmntbombdood> oklopol: it's not needed
04:44:11 <oklopol> hmm... i guess "eat" and "object" suffice
04:44:18 <oklopol> i mean
04:44:26 <oklopol> eatable object
04:44:43 <oklopol> plus, since everything is an object, you might have syntactic sugar for that
04:44:48 <bsmntbombdood> toki pona also looks very imprecise
04:44:53 <oklopol> like in english, "eation"
04:44:54 <oklopol> --
04:45:02 <pikhq> Granted.
04:45:04 <oklopol> "eatoken"
04:45:31 <pikhq> bsmntbombdood: Well, fine. *There's* your English equivalent.
04:45:37 <pikhq> s/English/Assembly/.
04:45:42 <pikhq> I hate my brain sometimes.
04:46:30 <bsmntbombdood> imprecise isn't eligible for consideration
04:46:46 <pikhq> Obviously not the linguistic equivalent of a Turing machine, but it's much simpler than English.
04:46:55 <pikhq> Oh, imprecision makes it ineligible?
04:47:07 <pikhq> Well, then. The mere *concept* of language is ineligible.
04:47:14 <bsmntbombdood> i guess to be precise you have to add vocabulary
04:47:29 <pikhq> To be precise you have to engage in telepathy.
04:47:39 <bsmntbombdood> well, the expression machine could have _one_ imprecision operator
04:47:55 <pikhq> Which would be the sole operator. -_-'
04:48:13 <pikhq> Human language, unlike computer languages, is by it's *very nature* imprecise.
04:48:35 <pikhq> If you wish for something that isn't, then you're not asking for a human-language equivalent expression machine.
04:50:39 <bsmntbombdood> ok, no less precise than english
04:50:54 <pikhq> There we go.
04:51:01 <pikhq> That's actually a meaningful statement.
04:51:15 <pikhq> Bitch to do in a simplistic language, but at least meaningful. ;)
04:51:56 <bsmntbombdood> toki pona site gives "crazy water" as a translation for alchohol
04:52:02 -!- c|p has quit ("Leaving").
04:52:21 <bsmntbombdood> maybe you have to trade precision for less vocabulary
04:53:09 <oklopol> a liquid that can be deboured which upon devouring makes crazy <<< easy to make enough syntactic sugar to make that a short word
04:53:13 <oklopol> *devoured
04:53:33 <oklopol> devoured == eat/drink, since i don't see an important difference
04:54:03 <oklopol> syntactic sugar == "stupid > stupidity" kinda thing
04:54:13 <oklopol> what do you call it now...
04:54:27 <oklopol> crazy water is not right, alcohol is not water
04:54:30 <bsmntbombdood> stupid is different from stupidity
04:54:32 <oklopol> nor is it crazy
04:54:51 <pikhq> I'd assume that "simpler" includes grammer.
04:54:52 <oklopol> bsmntbombdood: i mean deriving words from others
04:55:03 <pikhq> oklopol: "water", I assume, is overloading to include liquid.
04:55:03 <bsmntbombdood> pikhq: yes
04:55:11 <oklopol> okay
04:55:16 <oklopol> anyway, alcohol is not crazy
04:55:28 <pikhq> But it does make you crazy.
04:55:33 <oklopol> or then you have some weird semantics on "crazy"...
04:55:35 <pikhq> Well. "crazy".
04:55:44 <oklopol> am i crazy if i make you go mad?
04:55:46 <bsmntbombdood> other liquids make you crazy too
04:55:49 <pikhq> bsmntbombdood: Esperanto-style grammer, perhaps?
04:56:00 <oklopol> alcohol *has to do* with crazy
04:56:02 <pikhq> That does seem equivalently expressive to English, grammer-wise.
04:56:03 <bsmntbombdood> i'm not familiar, but maybe
04:56:13 <bsmntbombdood> _lack_ of water makes you go crazy too
04:56:13 <pikhq> Different, but equivalent.
04:56:48 <pikhq> Hmm. A few things could probably be cut out of that, though.
04:57:42 <bsmntbombdood> in toki pona, "i'm drunk", "i'm crazy", "i'm foolish", "i'm weird" all are the same
04:58:30 <oklopol> i'm crazy because i drank crazy water, i'm crazy because my head is ill
04:58:38 <oklopol> easy to fix
04:58:46 <bsmntbombdood> lol, "anus" is "back orfice"
04:58:54 <pikhq> Which makes sense in the context of Toki Pona's purpose, but not in the context of the purpose of an English-equivalent expression machine. . .
04:59:26 <oklopol> english does that with having millions of words, i find that idiotic
05:00:03 <bsmntbombdood> oklopol: addition of vocabulary increases expressivity
05:00:14 <oklopol> it would be easy to have a way to create new words from the existing ones with suffices and perhaps having a better pronoun system as well
05:00:26 <oklopol> bsmntbombdood: how?
05:00:53 <pikhq> "Giant" == "Very big". "Enormous" == "Very, very big". "Huge" == "Very, very, very big".
05:00:59 <bsmntbombdood> synonyms all have slightly different meanings
05:01:00 <pikhq> "Really" == "Very, very".
05:01:10 <pikhq> For the most part, they imply degrees.
05:01:25 <bsmntbombdood> not all synonyms
05:01:27 <pikhq> Repitition of a degree indicator can serve the same purpose.
05:01:35 <oklopol> bsmntbombdood: you can tell the difference with other words as needed
05:02:35 <pikhq> You know. . . If you count various English euphemisms, sayings, etc. . . There's no such *thing* as an English-equivalent expression machine short of English itself.
05:03:38 <bsmntbombdood> i can't think of any synonyms as an example
05:04:51 <oklopol> it's true not every drinkable liquid that makes one go crazy is alcohol, which is why you would have to make a more thorough definition and make a constant for it, meaning it *would* be a single underived words
05:04:53 <oklopol> *word
05:05:50 <bsmntbombdood> i like toki pona though
05:06:34 <bsmntbombdood> simplicity prevents doublespeak
05:06:41 <oklopol> hmm, i have a test at the university in 2 hours
05:06:43 <bsmntbombdood> doublespeak is the wrong word
05:06:46 <oklopol> and i have no idea where.-
05:07:43 <bsmntbombdood> cocaine is "energy powder"
05:08:30 <oklopol> that's stupid...
05:09:02 <bsmntbombdood> coffee is "hot engergy water"
05:09:32 <bsmntbombdood> iced starbucks abominations can't be expressed
05:10:33 <oklopol> hmm
05:11:11 <bsmntbombdood> no description of grammar on the site
05:14:39 <oklopol> <lament> you take an empty stack, push 1, pop 5, push 5, pop 1, then destroy the stack.
05:14:40 <oklopol> <lament> it needs a time machine to work, though.
05:14:40 <oklopol> <lament> and of course if you don't push 5 after popping 5, the universe collapses.
05:14:52 <oklopol> in an interpreter, you would need an oracle :)
05:15:23 <oklopol> which would find out which popped number would lead that same number pushed later
05:15:32 * oerjan imagines something heavily dataflow based
05:17:23 <bsmntbombdood> "woman" is the same word as "wife"
05:21:21 <oerjan> bsmntbombdood: strangely enough in norwegian, "man" is the same word as "husband"
05:21:50 <bsmntbombdood> how do you differentiate?
05:22:04 <oerjan> by context, like anything else
05:22:39 <bsmntbombdood> a man walked down the street
05:22:42 <oerjan> well the latter word is usually with a possessive
05:23:23 <bsmntbombdood> oh right
05:23:30 <oerjan> oh and there is a more precise word for husband just in case
05:23:35 <bsmntbombdood> and "my man" is pretty much the same as husband
05:23:50 -!- shinh has joined.
05:26:45 <oklopol> <ihope> Ia Ia Cthulhu... uh, Something?
05:26:46 <oklopol> <ihope> Fthagn?
05:26:47 <oklopol> CoF!
05:39:55 <bsmntbombdood> i'm gonna learn some toki pona
05:40:54 <Sukoshi> Esperanto estas plej bona.
05:41:31 <bsmntbombdood> toki pona has a completely different purpose than esperanto
05:42:18 <oklopol> <RodgerTheGreat> with a quick show of hands, (and we're talking *actual* programming tasks here, not just esolang dev work), who prefers RPN, prefix and algebraic notation? <<< oklotalk has teh perfect system, you look at that when it's ready :)
05:42:32 <oklopol> infix without implicit precedence and prefix.
05:42:47 <bsmntbombdood> that's no good
05:43:12 <bsmntbombdood> implicit precedence is what makes infix infix
05:54:09 -!- GreaseMonkey has joined.
06:05:28 <oklopol> bsmntbombdood: this is what i thought at first, but i've started liking how you can do everything in simple sequences
06:06:51 <oklopol> it's true math needs some serious parenting, but works well for most tasks
06:08:03 <pikhq> Sukoshi: Esperanto estas plej bona, sed Toki Pona estas tre simpla lingvon.
06:08:47 <pikhq> Obviously what oklopol is referring to would be the equivalent of *requiring* parens for each infix statement. . .
06:09:03 <pikhq> 2+2*2 would *have* to be (2+(2*2))
06:09:07 <pikhq> ;)
06:09:14 <oklopol> exactly
06:09:30 -!- oerjan has quit ("Good night").
06:09:31 <pikhq> Interesa, sed mi malsxatas.
06:10:06 <oklopol> well, 2+(2*2), i don't see a need for the outer ones
06:10:16 <pikhq> Sukoshi: s/lingvon/lingvo/
06:10:20 <pikhq> (mi pensas)
06:10:29 <pikhq> oklopol: Lisp sees a reason for it.
06:10:41 <pikhq> . . . Infix Lisp, anyone? :p
06:10:49 <oklopol> heh
06:11:39 <oklopol> (opr par) {par opr par} [par opr] <<< lisp with every possibility :P
06:11:52 <oklopol> (+ 5 [4 2 *])
06:12:11 <pikhq> Unary functions can be called via prefix or postfix; binary called via infix, and n-ary where n>2 via foo(bar,baz,qux).
06:12:13 <oklopol> hmm...
06:12:23 <oklopol> infix might need parens around the parameters
06:12:45 <pikhq> Thus, we obtain (5+5) and (++5) and (5++) and +(5,5,5). . .
06:13:02 <oklopol> {1 5 * 1} might just as well mean 1 (5 as function) [*, 1]
06:13:06 <pikhq> I assume functions taking no argument wouldn't need to care about calling semantics.
06:13:44 <pikhq> Given that + == + == +. ;)
06:13:59 <pikhq> . . . Damn, that could actually be an interesting language.
06:14:02 <oklopol> pikhq: every function can just have 1 argument
06:14:24 <oklopol> hmm
06:14:33 <pikhq> oklopol: What, a list of arguments?
06:14:37 <pikhq> Then it's Lisp.
06:14:39 <oklopol> yes
06:14:55 <oklopol> lisp with more calling conventions, yes
06:15:03 <oklopol> well, not calling conventions
06:15:05 <oklopol> fixes
06:15:12 <pikhq> Semantics.
06:15:36 <oklopol> yeah,. but i see your way is cool
06:15:50 <oklopol> now that i understand what you meanb
06:16:01 <pikhq> Bit harder/cleaner to parse, but an interesting idea.
06:16:08 <pikhq> s/cleaner/dirtier/
06:16:29 <oklopol> but, how do you do (A B), you don't know which one the function is
06:16:41 <oklopol> this is why i had all the parens in use
06:16:57 <pikhq> Obviously, one needs to get rid of the postfix option for unary.
06:17:12 <pikhq> Which means that (A B) can *only* be A with B as the argument.
06:17:25 <oklopol> good
06:17:33 <pikhq> And (A B C) can only be B with A and C as the arguments.
06:17:53 <pikhq> And (A(B,C,D)) can only be A with B,C, and D as the arguments. Etc.)
06:21:27 <pikhq> Think I'm insane yet?
06:21:52 -!- boily has quit ("WeeChat 0.2.5").
07:08:53 <Sukoshi> ?say No.
07:08:57 <Otakubot> No.
07:18:37 <pikhq> Obviously, I've failed at my job.
07:19:20 <GreaseMonkey> ?say how good is this bot?
07:19:21 <Otakubot> how good is this bot?
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:07:23 <Sukoshi> I need to code in some more functions.
08:07:42 <Sukoshi> But firstly, I have to clean up some of the handler code to macro out the regexps.
08:09:17 -!- Figs has joined.
08:09:19 <Figs> hello!
08:10:46 * Figs has been put to shame
08:10:57 <Figs> I make a math parser in 1000 lines of C++, 500k
08:11:05 <Figs> guy does it in 88 lines of pascal
08:11:09 <Figs> 4k output
08:11:17 <Figs> actually 350k
08:11:20 <Figs> (For me)
08:11:35 <Figs> there is something wrong with this, me thinks.
08:12:40 <Sukoshi> Well, Pascal avoids a lot of edge cases by having a strict syntax.
08:12:55 <Sukoshi> But is Pascal used anywhere but the roguelike world?
08:14:22 <Figs> this guy's writing a compiler in pascal
08:14:34 <Figs> 88 lines of code, he has working object code for the 68k
08:14:41 <Figs> *it outputs
08:14:52 <Sukoshi> Is it that much different from C?
08:14:57 <Figs> granted, he limited it to 1 letter variables and 1 character numbers
08:15:02 <Figs> but that was to show the concepts
08:15:18 <Figs> I'm sure he could fix it to do more with about 25 lines max
08:15:33 <Figs> it's proceedural
08:15:35 <Figs> mine is OO
08:15:49 <Figs> sukoshi, I don't know
08:15:53 <Sukoshi> Oh, you did yours in C++, not C.
08:15:54 <Figs> probably not
08:15:57 <Figs> yeah, C++
08:16:07 <Figs> mine is pretty complex for such a simple thing
08:16:22 <Sukoshi> Who uses C++ to make compilers? :P
08:16:29 <Figs> I do
08:16:52 <Figs> http://rafb.net/p/ZWlWTj48.html
08:16:57 <Figs> here's the source for main.cpp
08:17:01 <Figs> the main part of my program
08:17:12 <Figs> I wrote the regex.h header (and the other 8 files it works with :P)
08:17:29 <Figs> sorry
08:17:31 <Figs> 14 files
08:20:36 -!- Figs_ has joined.
08:20:41 -!- Figs has quit (Nick collision from services.).
08:20:43 -!- Figs_ has changed nick to Figs.
08:20:49 <Figs> :|
08:21:05 <Figs> freenode didn't like me saying positive things about proceedural...
08:21:21 <Sukoshi> C PWNZ C++
08:21:29 <Sukoshi> Nah, I think it's your connection ;)
08:21:55 <Figs> probably is, but that'd make my conspiracy theories so much harder to believe :|
08:22:01 <Figs> :P
08:22:31 <Figs> maybe I'm just a messy coder
08:25:09 <Figs> is it a bad thing that I don't like to scan before I parse?
08:26:50 <Sukoshi> I dun see why anyone would need C++ for it though.
08:26:57 <Sukoshi> I'd just use pointer foo.
08:27:06 <Figs> 'pointer foo'? :P
08:27:31 <Figs> I guess I don't *really* need C++
08:27:35 <Figs> but it makes it easier
08:27:38 <Figs> things like vectors
08:27:43 <Figs> std::string
08:27:56 <Figs> boost::lexical_cast
08:28:04 <Sukoshi> Hard to understand concepts?
08:28:08 <Figs> operator overloading
08:28:12 <Figs> ?
08:28:15 <Figs> what?
08:28:18 <Sukoshi> Nahh, why doubt pointers when they're easy to visualize?
08:28:29 <Sukoshi> C++ abstractions never really agreed with me.
08:28:34 <Figs> I use pointers quite a bit
08:28:52 <Figs> I just find the pre-packaged containers to be a lot easier to deal with
08:29:20 <Figs> and I know they're not likely to fuck up the memory management
08:29:38 <Sukoshi> Well, C++ abstractions are on the wonker side.
08:29:44 <Sukoshi> I have a hard time with the weird stuff.
08:29:48 <Figs> you should see my regex code :)
08:32:11 <Figs> I overloaded >>, +, *(unary), |, and maybe some others...
08:32:49 <Figs> and built it so that all my regex objects would be able to stick to each other the right way
08:33:05 <Figs> (because they return references to themselves)
08:39:04 <Figs> anyway
08:40:12 <Figs> do you think it's a good idea to have _one_ numeric type in a language?
08:41:00 <Figs> like, an arbitrary length rational number...
08:41:37 <Sukoshi> ?say Yay.
08:41:37 <Otakubot> Yay.
08:41:42 <Sukoshi> Success!
08:41:46 <Sukoshi> My macro works!
08:43:19 <Figs> :)
08:43:24 <Figs> is that a yes?
08:44:01 <Sukoshi> ?random 3
08:44:03 <Otakubot> 0
08:44:04 <Sukoshi> ?random 3
08:44:04 <Otakubot> 1
08:44:09 <Sukoshi> Yay. The macro works yet still.
08:44:14 <Sukoshi> The magic:
08:44:16 <Sukoshi> ?dice 9
08:44:18 <Sukoshi> Errr...
08:44:22 <Sukoshi> ?dice 3d4
08:44:27 <Sukoshi> Unimplemented, right?
08:46:11 <Figs> ?say hello.
08:46:20 <Figs> :(
08:48:03 <Figs> ooh
08:48:09 <Figs> gmp is lgpl?!
08:48:10 <Figs> :D
08:48:20 <Otakubot> hello.
08:48:33 <Sukoshi> Sorry, when playing with my local REPL, I unhook the main loop.
08:48:46 <Sukoshi> I haven't gotten around to implementing ?eval just yet.
08:53:14 * Figs just finished eval yesterday :D
08:53:22 <Figs> my math calculator app
08:58:34 <Sukoshi> ?dice 3d20
09:00:16 <Sukoshi> ?dice 3d20
09:00:34 <Sukoshi> ?dice 3d20
09:00:34 <Otakubot> 22
09:00:38 <Sukoshi> :)
09:00:41 <Sukoshi> ?dice 3d10
09:00:41 <Otakubot> 25
09:04:34 <GreaseMonkey> ?dice 3d6
09:04:35 <Otakubot> 11
09:04:40 <GreaseMonkey> ?dice 3d6
09:04:40 <Otakubot> 8
09:04:46 <GreaseMonkey> niece :D
09:31:42 <Figs> sukoshi is your niece? O.o
09:31:44 <Figs> :|
09:33:12 <Figs> :-P
09:34:33 <Figs> you know
09:34:41 <Figs> internet advertising makes no bloody sense
09:35:33 <Figs> banner advertising implying sex, click it, and it says, 'tell us where to send your $100 gift card'
09:35:34 <Figs> :P
09:35:45 <Figs> see?
09:35:49 <Figs> the internet is insane
09:35:56 <Figs> cause !-> effect
09:36:33 <Figs> fack
09:36:35 <Figs> *fuck
09:36:45 <Figs> now firefox quit because of another stupid ad
09:36:48 <Figs> brb
09:36:56 -!- Figs has quit (Read error: 54 (Connection reset by peer)).
09:37:17 -!- Figs has joined.
09:37:32 * Figs really needs AdBlock again
10:07:37 -!- andreou has quit ("No windows for this server").
10:09:51 <GreaseMonkey> gonna get off now, gnight
10:10:23 -!- GreaseMonkey has quit ("AJAX is also a toilet cleaner").
10:49:44 -!- Figs has quit ("Good-bye").
12:07:00 <RodgerTheGreat> howdy, folks
13:20:24 -!- ais523 has joined.
14:24:17 -!- ihope has joined.
15:27:10 -!- oerjan has joined.
15:27:13 <ihope> I'll give you back EagleBot now.
15:27:26 -!- EagleBot has joined.
15:27:39 <ihope> Even though it's mostly useless...
15:28:14 <ais523> what does EagleBot do?
15:29:20 <ihope> If it receives the string ":#magic " followed by some other stuff, it sends that other stuff to EgoBot in a PRIVMSG.
15:30:08 <ais523> :#magic !ps d
15:30:09 <ihope> If it receives the string ":#quit " followed by some other stuff, it quits using that other stuff as the quit message.
15:30:10 -!- EagleBot has quit (Client Quit).
15:30:19 -!- EagleBot has joined.
15:30:22 <ihope> ...just like that :-)
15:30:26 <ais523> :#magic !ps d
15:30:43 <ais523> !ps d
15:30:45 <ihope> No EgoBot here.
15:31:00 <ais523> so it's not particularly useful at the moment, then
15:31:26 <ihope> If it receives the string "EgoBot" followed by some other stuff, it sends "ooga " followed by that other stuff to bsmnt_bot in a PRIVMSG.
15:31:47 <ais523> why?
15:32:09 <ihope> So that EgoBot can talk back to bsmnt_bot, though in sort of a roundabout manner.
15:32:24 <ais523> bsmnt_bot doesn't respond to private messages anyway AFAIK, and not anything that doesn't start with ~
15:32:37 <ais523> although I suppose bsmnt_bot could be reprogrammed to understand 'ooga'...
15:32:40 <ihope> bsmnt_bot can be made to react to private messages.
15:32:59 <ihope> Though I'm not sure of the command...
15:33:40 <ais523> what was its regex queue called again?
15:33:58 <ihope> ~exec self.register_raw(r"(.*)", lambda x: bot.raw("PRIVMSG #esoteric :%s" % something))
15:34:03 <ihope> I just don't know what the something is.
15:34:04 <bsmnt_bot> NameError: global name 'something' is not defined
15:34:29 <ihope> There may be another lambda parameter there too.
15:34:29 <bsmnt_bot> NameError: global name 'something' is not defined
15:34:41 <ihope> ~exec self.raw("QUIT")
15:34:41 -!- bsmnt_bot has quit.
15:34:45 -!- bsmnt_bot has joined.
15:34:53 <ais523> you're driving #bsmnt_bot_errors crazy
15:35:13 <ihope> (Also, EagleBot chooses the nick "EagleBot", the username "EagleBot" and the realname "EagleBot", identifies to NickServ, and joins #esoteric.)
15:35:19 * ihope looks in his logs
15:35:58 <ais523> whois EagleBot
15:37:03 * ais523 is so prone to forgetting the slashes on commands that they now make sure they're not in a channel when they identify to NickServ
15:41:24 <ais523> ~exec self.register_raw(r'\S+ PRIVMSG (\S+) :ooga(.*)', lambda x,y: sys.stdout(y.group(2)))
15:41:30 <ais523> ooga this is a test
15:41:31 <bsmnt_bot> this is a test
15:41:45 <ihope> Cool.
15:41:49 <ais523> ~exec self.raw_regex_queue.pop()
15:41:54 <ais523> ~exec self.register_raw(r'\S+ PRIVMSG (\S+) :ooga (.*)', lambda x,y: sys.stdout(y.group(2)))
15:41:55 <ais523> ooga this is a test
15:41:56 <bsmnt_bot> this is a test
15:42:00 <ihope> Apparently all this EagleBot nonsense started with this: [2007-06-15 19:59:20] <bsmntbombdood> sdrawkcab si txet ym kool
15:42:04 <ais523> small whitespace error there...
15:42:16 <ihope> I then said this: [2007-06-15 19:59:48] <ihope> !oot eniM
15:42:40 <ihope> Then I asked somebody to add a command to EgoBot that made !oot eniM output Mine too!
15:43:44 <oerjan> ihope: you do know that is possible using daemon, right?
15:43:50 <ihope> Yes.
15:43:54 <ihope> But it can be tricky.
15:44:17 <ihope> Somebody did that to bsmnt_bot, and then EgoBot was made to not respond to !oot with a null daemon thing.
15:44:51 <ais523> !bf_txtgen too!
15:45:51 <ihope> Well, if you want to cheat, that's fine. :-P
15:46:14 <SimonRC> I missed a lot of conversation
15:46:23 <ais523> Optimizing EgoBot's output is likely to be faster than writing it all by hand
15:47:06 <ais523> except apparently in this case...
15:47:25 <ihope> Besides, going from chat to EgoBot to EagleBot to bsmnt_bot to EagleBot to EgoBot to chat is more fun!
15:48:46 <ihope> Here's where EagleBot really got started: [2007-06-15 20:26:57] <ihope> Or I could toss together a relay bot.
15:50:19 <ais523> oh, of course, EgoBot isn't here
15:50:23 * ais523 feels stupid
15:51:54 <ihope> Of course, it would have been easier to just register bsmnt_bot.
15:52:38 <ihope> ~exec self.raw("NICK :bsmnt_bot243\nPRIVMSG NickServ :REGISTER insecurepassword")
15:52:38 -!- bsmnt_bot has changed nick to bsmnt_bot243.
15:52:58 <ihope> There, now it's identified.
15:53:35 <ihope> But since EgoBot isn't here, there's really no point in bsmnt_bot243's being identified.
15:53:46 -!- bsmnt_bot243 has quit (Nick collision from services.).
15:53:49 -!- bsmnt_bot has joined.
15:53:51 <ihope> Plus people can do that.
15:57:07 <ais523> let's see... bsmnt_bot was registered with services once, but doesn't bother to register nowadays and the nick is expired
15:57:19 <ais523> bsmnt_bot243 is not registered
15:57:29 <ais523> despite what bsmnt_bot just thought it did
15:57:43 <ihope> I dropped bsmnt_bot243.
15:57:47 <ihope> It was registered.
15:58:03 <ais523> s/register(.*)register/register\1identify/ 3 comments ago
15:58:25 <ais523> oh, because you guessed its password
15:58:29 <oerjan> ais523: it was, i checked
15:58:40 <ihope> Guessed?
15:58:46 <oerjan> no, because he made the password
15:59:00 <ihope> Plus everybody could see it.
15:59:10 <ais523> I know, not only that the password was sent to #esoteric in cleartext, so everyone knew what it was
15:59:14 <ais523> (crossed messages)
15:59:31 <ais523> therefore it was easy for ihope to guess the password
16:00:22 <oerjan> er, my interpretation is that ihope just made bsmnt_bot243 register for the first time, with a password he invented
16:00:48 <ihope> I did just make bsmnt_bot243 register for the first time with a password I invented.
16:01:18 <ais523> I was trying to make a degenerate statement, but obviously I managed to mess up somehow
16:03:21 -!- c|p has joined.
16:03:39 <ihope> Degenerate statement?
16:04:10 <ais523> you came up with the password in the first place, so it was easy for you to guess it
16:04:40 <ais523> of course, a joke that needs to be explained this carefully is likely to not have been very good
16:09:52 <ihope> It wasn't very clear.
16:10:45 <ais523> By the way, what's with the topic?
16:12:03 <ihope> No idea.
16:12:52 -!- ihope has set topic: The international hub for esoteric programming language design and deployment - map: http://www.frappr.com/esolang - forum: http://esolangs.org/forum/ - EgoBot: !help - wiki: http://esolangs.org/wiki/ - logs: http://tunes.org/~nef/logs/esoteric/ or http://meme.b9.com/cdates.html?channel=esoteric - Pastebin: http://pastebin.ca/ - Aquí sé canibales.
16:12:54 -!- jix__ has joined.
16:12:55 <oerjan> read the logs
16:12:59 <ihope> Look, bad Spanish!
16:13:06 -!- ihope has set topic: The international hub for esoteric programming language design and deployment - map: http://www.frappr.com/esolang - forum: http://esolangs.org/forum/ - EgoBot: !help - wiki: http://esolangs.org/wiki/ - logs: http://tunes.org/~nef/logs/esoteric/ or http://meme.b9.com/cdates.html?channel=esoteric - Pastebin: http://pastebin.ca/ - Here be cannibals.
16:13:12 <ihope> But it was probably there for a reason.
16:13:38 <ais523> I normally read the logs first, but I was so surprised at finding #esoteric active when I turned up that I forgot
16:15:09 <oerjan> ihope: you, bsmntbombdood and I got into a weird conversation, so i changed the topic appropriately
16:15:30 <ihope> Oh?
16:15:52 <oerjan> * ihope boils bsmntbombdood
16:16:10 <ihope> Ah.
16:17:36 <oerjan> fizzie was there too (but not Bob, as far as i can tell)
16:18:51 <oerjan> *sigh*. i am on just _two_ channels, but i keep writing to the wrong one.
16:20:09 <ihope> Bob?
16:20:55 <oerjan> google for "Bob was there, too"
16:23:24 <oerjan> also, http://www.blogphilo.com/wikiwrit/index.php?title=Genesis
16:31:59 -!- crathman has joined.
16:35:18 <ais523> ?say ais523 is reading the logs and has just figured out how to do this
16:35:42 <ais523> except that it didn't work for some reason
16:37:42 <ais523> #mundane ooga testing
16:40:34 <ihope> What's ?say supposed to do?
16:40:43 <ais523> it's Otakubot's echo command
16:40:46 <ais523> ?random 20
16:40:59 <ais523> but Otakubot doesn't seem to listen to what I say
16:41:11 <ihope> (And though #mundane existed previously--I think--it doesn't exist now.)
16:41:42 <ais523> well, how else can I set up an Eaglebot loop without renaming myself to EgoBot?
16:42:05 <ihope> You can ask me to modify EagleBot.
16:42:18 <ihope> Or you can use bsmnt_bot.
16:43:12 <ais523> ~bf ,[.,]!~bf ,[.,]!testing
16:43:38 <ais523> wow, I expected at least something to happen, even if it didn't loop
16:43:42 <ais523> ~bf ,[.,]!testing
16:44:04 <ihope> ~bf looks like a bsmnt_bot command...
16:44:17 <ihope> ...oh, it is?
16:44:25 <ihope> Um, never mind.
16:44:28 <ais523> ~bf ,[.,]!testing
16:44:36 <ais523> it's one I wrote
16:44:42 <ais523> ~exec 0
16:44:44 <ais523> ~bf ,[.,]!testing
16:44:45 <bsmnt_bot> testing
16:44:59 <ihope> There's an execfile command?
16:45:39 <ais523> apparently. Although I didn't know about it at first, and ordered the bot to read the file into an array, join its lines with newlines, and then exect the result
16:46:15 <ais523> bsmnt_bot forgets all its commands when it quits, so bsmntbombdood created a place where scripts (like my ~bf script) could be stored and execfiled to reload them
16:46:24 <ais523> ~bf ,[.,]!~bf ,[.,]!testing
16:46:27 <bsmnt_bot> ~bf ,[.,]!testing
16:46:33 <ihope> Can bsmnt_bot write to that place?
16:46:44 <ais523> yes, that's how I got the file there in the first place
16:46:52 <ais523> just don't overwrite my script bf.py or dof.py
16:47:22 <ais523> ~exec execfile('bot/scripts/dof.py')
16:47:30 <ais523> ~dof [,.]!testing
16:47:30 <bsmnt_bot> testing
16:48:06 <ais523> I wonder if DoFuck is Turing-complete? (It isn't BF-complete, because you can't write cat in it, but that doesn't prevent TCness)
16:48:15 <ihope> DoFuck?
16:49:25 <ais523> like Brainfuck, but [] is a do-while loop not a while loop
16:49:53 <ihope> So it's always done at least once...
16:50:23 <ais523> yes, and any program either produces no output or always produces output (cat can do either)
16:52:09 <ais523> I suspect it's TC, because it fits all the common criteria, sort-of, and apart from IO and looping all BF operations are reversible
16:52:58 <ihope> IO and looping is half of BF. :-)
16:53:06 <ihope> Except that IO is an unnecessary part of BF.
16:53:30 <ais523> and besides, ] is reversible, it's just [ that isn't
16:53:54 <ihope> Depends on just how you define the loop instructions.
16:53:58 <ais523> no, wait... ] isn't reversible, because you don't know whether you came from inside the loop or not. (It is reversible in DoFuck.)
16:54:29 <ais523> You could define [ as being 'jump to ] if it's nonzero' and ] as being 'jump to [ if it's nonzero'; then you get Reversible Brainfuck.
16:56:25 <ais523> Maybe I could program up a reversible BF interpreter in bsmnt_bot
16:56:34 <ais523> Not now, though because I have to go in 5 minutes
16:57:00 <ais523> and using bsmnt_bot as an editor is like a mix of editing with cat and sed
16:57:04 -!- sebbu has joined.
16:58:44 -!- sebbu2 has joined.
16:59:30 -!- ais523 has quit ("Does anyone ever actually read quit messages?").
16:59:48 -!- ihope has quit ("http://tunes.org/~nef/logs/esoteric/06.08.09").
17:00:08 -!- ihope has joined.
17:00:25 <ihope> Oops.
17:01:06 <ihope> ...um...
17:01:25 <ihope> ~exec self.raw("QUIT")
17:01:26 -!- bsmnt_bot has quit.
17:01:29 -!- bsmnt_bot has joined.
17:01:31 <ihope> Okay, we're fine.
17:04:18 <oerjan> the disaster has been averted?
17:05:19 <ihope> Yup.
17:16:10 -!- jix__ has changed nick to jix.
17:18:21 -!- sebbu has quit (Read error: 110 (Connection timed out)).
17:20:05 <Otakubot> ais523 is reading the logs and has just figured out how to do this
17:20:05 <Otakubot> 10
18:16:12 <pikhq> Sukoshi: Good morning. (I assume you're awake)
18:31:12 -!- oerjan has quit ("Supper").
19:03:56 <bsmntbombdood> wowsers
19:04:47 <bsmntbombdood> Otakubot: responded way late
19:06:12 <bsmntbombdood> ok, here's a tricky question
19:06:39 <bsmntbombdood> can you implement a priority queue that doesn't copy with constant time insertion and removal?
19:17:41 <SimonRC> no
19:17:51 <SimonRC> it is impossible
19:18:18 <SimonRC> because otherwise you could use it to sort in O(n) time
19:18:47 <bsmntbombdood> oh, right
19:19:38 <SimonRC> can yo see how that is true
19:19:44 <bsmntbombdood> yeah
19:20:06 <bsmntbombdood> then what is the best performance you can get?
19:20:28 <SimonRC> O(n log n)
19:20:35 <SimonRC> remember though, that that sorting limit is for generalised comparison sorting.
19:20:45 <SimonRC> if you have more info avaiable, you can sort in linear time
19:30:07 <pikhq> And if you have the right information available, you can sort in constant time.
19:30:47 <pikhq> Say, the list, already sorted for you? :p
19:33:47 <SimonRC> sigh
19:34:02 <SimonRC> some types of bucket-sort are constant-time
19:34:07 <SimonRC> oops
19:34:12 <SimonRC> some types of bucket-sort are linear-time
19:44:18 <jix> i can sort lists consisting only of ones in constant time!
20:00:33 <jix> without looking at them!
20:05:14 <pikhq> I can do better than that.
20:05:37 -!- boily has joined.
20:05:38 <pikhq> I can sort a void[] in O(0) time!
20:08:53 <bsmntbombdood> sorting voids is undefined
20:08:58 <bsmntbombdood> void is unordered
20:09:06 <pikhq> I know.
20:24:58 -!- fizzie2 has joined.
20:25:01 -!- fizzie has quit (Read error: 54 (Connection reset by peer)).
20:33:44 -!- clog has joined.
20:33:44 -!- clog has joined.
20:36:09 -!- crathman has quit ("ChatZilla 0.9.78.1 [Firefox 2.0.0.4/2007051502]").
20:39:55 -!- fizzie has joined.
20:47:55 -!- boily has quit ("WeeChat 0.2.5").
20:54:46 -!- ihope has quit (Success).
20:58:18 -!- c|p has joined.
20:58:19 -!- SimonRC has quit (Connection timed out).
21:00:14 -!- sebbu has joined.
21:05:23 <SimonRC_> it would be nice if void was an actual type.
21:05:25 <SimonRC_> sizeof(void) == 0
21:05:32 -!- SimonRC_ has changed nick to SimonRC.
21:06:30 <pikhq> Yeah, it would.
21:06:30 <SimonRC> it would make more sense though if C had parameterised types, C++ style
21:06:45 <pikhq> Could be arranged for in C++. . .
21:06:56 <SimonRC> certainly
21:07:00 <pikhq> Although that'd be slightly insane. ;)
21:23:27 <SimonRC> bah, you accursed imperative programmers have no sense of elegance
21:23:52 <SimonRC> if you had invented the integers, you would not have bothered putting in 0 or the negative numbers
21:25:39 <SimonRC> "If two numbers are the same, why bother to subtract them?" "If the second is bigger than the first, just subtract them the other way round." "If you want a number to get smaller, just subtract rather than inventing a new thing to add on." "If you don't want a number to be changed, don't bother adding or subtracting in the first place."
21:25:44 <SimonRC> etc
21:26:49 * SimonRC imagines what Java programmers carefully transporting one flag and one nullable counting number around to represent each signed integer
21:27:03 <SimonRC> It's funny because it's true.
21:39:09 <lament> SimonRC: heh. Yes.
21:43:37 -!- oerjan has joined.
21:49:35 -!- erider has quit (Read error: 104 (Connection reset by peer)).
22:04:09 -!- jix has quit ("CommandQ").
22:06:43 <ihope_> "what Java programmers carefully transporting"?
22:07:01 <ihope_> That doesn't look like a complete... certain-type-of-noun-like phrase to me.
22:13:59 <SimonRC> erm, that was a bit mangled
22:31:49 <bsmntbombdood> lol @ SimonRC
22:33:18 <bsmntbombdood> what about the solution to x+1=0?
22:34:40 <SimonRC> probably they would say it had no answer
22:34:56 <SimonRC> "21:22:57 < SimonRC> if you had invented the integers," ...
22:35:01 <bsmntbombdood> that's what they said way back
22:35:37 <SimonRC> It was just a rant about how imperative programmer don;t appreciate the unit type
22:35:59 <SimonRC> or things like identities and invariants in their libraries
22:36:53 <SimonRC> You know what happens when you ask a Java programmer to invent a combinator library, right?
22:36:59 <SimonRC> You get Java3D
22:37:00 <SimonRC> Ugh
22:37:08 <bsmntbombdood> i'm not familiar
22:37:23 <SimonRC> it's a crap imitation of a combinator library
22:37:51 <SimonRC> There is far too much mutation required and not enough pure-functional combinators
22:39:27 <SimonRC> They *could* have made it possible to add rotation into a matrix by saying "mat = mat.rotX(45).rotY(90);"
22:40:05 <bsmntbombdood> and they didn't?
22:40:07 <SimonRC> but no, they had to make you use lots of mutation methods: "mat.rotX(45); mat.rotY(90);"
22:40:26 <SimonRC> if you want the answer in "foo", then tough
22:40:34 <SimonRC> you have to copy and assign
22:40:38 <lament> SimonRC: even python is guilty of that sometimes
22:40:41 <SimonRC> true
22:40:45 <bsmntbombdood> yeah, python does that too
22:40:49 <bsmntbombdood> lst.sort()
22:40:57 <lament> SimonRC: obviously it's way more efficient and efficiency is the most important thing when dealing with 3d
22:41:01 <bsmntbombdood> i think they do it for efficiency
22:41:09 <SimonRC> Java is mere ly place where many of these such things collect
22:41:23 <lament> SimonRC: it's not like opengl is any better :)
22:41:48 <SimonRC> lament: erm, no, this is for *building* the scenegraph, efficiency is not very important there.
22:42:08 <bsmntbombdood> arggh
22:42:14 <bsmntbombdood> how can journals charge for paperws
22:42:17 <lament> SimonRC: they probably use the same matrices and the same rotation routines throughout.
22:42:21 <bsmntbombdood> it's not like they pay researchers
22:42:25 <lament> SimonRC: don't tell me you think that's a bad thing :)
22:42:30 <SimonRC> erm, what?
22:42:43 <SimonRC> bsmntbombdood: they need to review stuff
22:43:15 <SimonRC> bsmntbombdood: the trick is the belong to an institution that pays for subscription
22:43:35 <SimonRC> or you can use the known details to find a free copy out there on the web, or on the author's webshite
22:43:41 <SimonRC> *website
22:43:58 <bsmntbombdood> too many times a paper i've wanted has only been available from acm
22:44:51 <SimonRC> ouch
22:44:54 <SimonRC> subscribe?
22:45:20 <SimonRC> well, I will be leaving uni very soon, so you can ask me to acquire a copy of all the ones you want
22:45:35 <SimonRC> but be quick, like, a few days
22:45:51 <SimonRC> the uni has an ACM subscription
22:45:51 <bsmntbombdood> ok
22:46:18 -!- sebbu has quit ("@+").
22:47:16 -!- guisf has joined.
22:47:25 <SimonRC> guisf: WRU?
22:48:06 <guisf> SimonRC: sorry, what does WRU mean?
22:48:15 <SimonRC> Who Are You?
22:48:23 <SimonRC> teleprinter jargon
22:48:52 <lament> i'm guessing he's brazilian
22:48:57 <lament> well, and male
22:49:13 <guisf> lament: good guess! how do you know?
22:49:23 <lament> i'm a wizard
22:49:28 <bsmntbombdood> there's no wimmins on the internets
22:49:28 <SimonRC> erm "n=guisf@c90641f4.virtua.com.br"
22:49:31 <lament> como vai?
22:49:40 <guisf> lament: vc eh brasileiro tbem?
22:50:11 <lament> guisf: sou canadense, falou portugues um poquito
22:50:21 <guisf> SimonRC: yes, my ip of course
22:50:30 <lament> guisf: yes, it ends with 'br' :)
22:50:56 <guisf> lament: legal! mas por que aprender portugues morando no canada?
22:52:44 <lament> gosto muito da musica brasileira, tocava no grupo do samba... quero visitar brasil um dia
22:53:10 <guisf> lament: voce escreve muito bem. Seu portugues parece perfeito
22:53:42 <lament> obrigado :)
22:53:52 <lament> i know only a few words
22:54:08 <lament> but i speak spanish much better, and it helps
22:54:17 <SimonRC> it seems that your ISP is called "NET virtua", and I would guess that you are on their broadband scheme.
22:54:21 <lament> almost everything is the same
22:55:33 <guisf> lament: yes, you're right
22:58:31 <guisf> lament: are you male or female?
22:59:09 <lament> male
22:59:50 <lament> where in brazil are you?
23:00:08 <guisf> lament: sao paulo, and what about you in Canada?
23:00:13 <lament> vancouver
23:00:59 <guisf> lament: nice, I'd like to meet Canada. I have a friend living in toronto
23:01:14 <lament> guisf: canada's nice :)
23:01:40 <lament> except for the weather
23:01:54 <lament> the local portuguese community newspaper is caled "Vanchuver"
23:02:04 <guisf> lament: very cold, doesn't it?
23:02:12 <lament> no
23:02:15 <lament> but rains a lot
23:02:49 <guisf> lament: but that's good, you can stay at home in your computer!
23:02:52 <lament> um
23:03:04 <lament> that would be good if that were what i wanted to do :)
23:03:26 <guisf> lament: and what you like to do?
23:03:26 <lament> the summer is very very nice
23:03:39 <lament> the winter, though, is crap - the days are short and it's raining all the time
23:04:14 <lament> guisf: going to the beach would be nice, for one :)
23:04:19 <lament> still not warm enough for that
23:04:30 <lament> but soon will be, maybe even this week
23:05:26 <guisf> lament: here is usually hot, almost every place in Brazil is hot most part of the year
23:05:47 <lament> i know
23:07:16 <lament> also the women are really hot :)
23:07:24 <bsmntbombdood> heh
23:07:41 <bsmntbombdood> i hate hot (weather)
23:07:41 <guisf> lament: yes! you know Brazil very well
23:08:01 <bsmntbombdood> everybody knows brazilian women are hot
23:08:06 <bsmntbombdood> :P
23:08:22 <lament> yeah, that's pretty much universal knowledge
23:08:24 <lament> :)
23:08:27 <guisf> bsmntbombdood: i don't like it either, but i have no option i think
23:08:40 <guisf> bsmntbombdood: about hot weather of course
23:09:25 <guisf> lament: and what about canadian women? at least there are a lot of pretty women in the tv
23:09:43 <lament> guisf: i prefer brazilians
23:09:56 <guisf> lament: hehehe
23:10:30 <lament> i need to find a brazilian girlfriend here and go to brazil with her. That's my plan anyway :)
23:11:04 <guisf> lament: a brazilian women is ok, but I'll prefer to stay in canada
23:11:23 <bsmntbombdood> ha
23:11:25 <lament> well, go to brazil for some time, not forever
23:11:32 <lament> just to get to know the country
23:11:32 <bsmntbombdood> the grass is always greener on the other side of the fence
23:11:55 <lament> bsmntbombdood: sometimes the grass IS greener
23:12:18 <pikhq> Other times, it's the spray paint on the grass that's greener.
23:13:12 <oklopol> rain is great
23:13:19 <oklopol> when it rains, i go outside
23:13:23 <oklopol> people stare.
23:13:36 <bsmntbombdood> oh that reminds me
23:13:37 <bsmntbombdood> brb
23:30:29 -!- erider has joined.
23:32:10 -!- goban has joined.
23:34:49 -!- goban has quit (Read error: 104 (Connection reset by peer)).
23:35:52 <bsmntbombdood> there
23:38:56 <oklopol> did you... make rain?
23:39:03 <bsmntbombdood> sorta
23:39:13 <bsmntbombdood> i had to move the sprinklers in the neighbor's yard
23:39:33 <oklopol> that's kinda metarain if they were off
23:58:30 <ihope_> How so?
23:59:16 <oerjan> Mu
23:59:22 <bsmntbombdood> i hate stupid people
23:59:51 <lament> i like stupid people
2007-06-19
00:00:24 <lament> oh wait, do you mean stupid or really dumb?
00:00:38 <bsmntbombdood> what's the difference
00:01:50 <oerjan> really dumb people don't know they are stupid, and nothing you do can make them understand it
00:02:06 <oerjan> that's my theory anyway
00:02:23 <bsmntbombdood> and just stupid people know they are stupid?
00:04:36 <lament> no, people who know they're stupid are smart.
00:04:59 <bsmntbombdood> you can still know you're stupid and be stupid
00:05:21 <erider> hehe
00:40:27 <bsmntbombdood> i can't seem to get fedex to send me boxes
00:41:39 <bsmntbombdood> they want some sort of account number
00:44:15 <bsmntbombdood> blargh they need a credit card
01:13:47 <RodgerTheGreat> bbl everyone
01:13:54 -!- RodgerTheGreat has quit.
02:27:22 -!- ihope__ has joined.
02:27:27 -!- ihope__ has changed nick to ihope.
02:27:50 -!- EagleBot has quit (Nick collision from services.).
02:28:31 -!- EagleBot has joined.
02:44:51 -!- ihope_ has quit (Read error: 110 (Connection timed out)).
02:58:28 -!- Sgeo has joined.
03:28:48 -!- guisf has left (?).
04:07:08 -!- Bigcheese has quit (Read error: 104 (Connection reset by peer)).
04:24:22 -!- pikhq_ has joined.
04:24:23 -!- pikhq has quit (Read error: 104 (Connection reset by peer)).
04:24:41 -!- pikhq_ has changed nick to pikhq.
04:28:12 <bsmntbombdood> i think we need to get rid of the sun
04:31:52 <pikhq> I think we need to get rid of the Big Blue Room.
04:31:56 <pikhq> It's just 100% broken.
04:32:11 <pikhq> I mean, the air conditioning is shot, so's the heater, and the roof leaks.
04:32:21 <oerjan> :D
04:33:04 <bsmntbombdood> absolutely
04:33:46 <pikhq> Also, the lighting's fucked up, and the decerator ought to be shot. . .
04:34:03 <pikhq> The whole "stars" theme is just too. . . Spacey.
04:34:18 <pikhq> :)
04:34:38 <oerjan> hey i like the "stars" theme. Especially the moving parts.
04:34:54 <oerjan> what's a decerator?
04:35:17 <oerjan> ah.
04:35:27 <pikhq> A word that I don't know how to spell, for some odd reason.
04:35:42 * pikhq kicks himself; I spell perfectly, usually, and it's my own bloody language.
04:36:43 <oerjan> a decerator would be someone who removes horns, i guess
04:37:00 <oerjan> of rhinoceroses, perhaps
04:37:16 <oerjan> a nasty business.
04:37:28 <pikhq> Which is why he ought to be shot. :p
04:37:59 <oerjan> anyway _our_ lighting is working perfectly, though i guess it'll break down around autumn as usual.
04:39:38 <pikhq> Ours seems to turn off every 12 hours.
04:39:43 <pikhq> (or so)
04:40:57 <pikhq> (bloody Norwegian)
04:43:20 <oerjan> :D
04:44:04 <pikhq> Out of curiosity, are you north of the Arctic Circle?
04:44:08 <oerjan> no
04:44:12 <pikhq> Ah.
04:44:22 <pikhq> Well, then, it *should* break down at least once a day there.
04:44:23 <pikhq> ;)
04:44:49 <oerjan> well the sun goes into hiding, but it doesn't turn _that_ dark
04:46:28 <oerjan> especially when it's not cloudy (although it usually is)
04:50:12 -!- c|p` has joined.
04:51:16 -!- c|p has quit (Nick collision from services.).
04:51:43 -!- c|p` has changed nick to c|p.
04:54:28 <pikhq> Odd.
04:54:47 <pikhq> The lighting here is always on the blink. . .
04:55:01 <pikhq> Although we do get this nice little emergency light. . .
04:55:17 <pikhq> Which seems to shut off once a month, and is useless when the humidity goes up.
04:55:20 <pikhq> ;)
05:07:46 -!- ihope has quit (Read error: 110 (Connection timed out)).
05:08:11 -!- EagleBot has quit (Read error: 110 (Connection timed out)).
05:25:38 -!- c|p has quit ("Leaving").
05:29:23 <oklopol> are there any real-time 4d games?
05:29:38 <oklopol> and how do you calculate spins in ping pong for example?
05:29:49 <oklopol> http://dagobah.biz/flash/CurveBall.swf -> 4d
05:29:53 <oklopol> :P
05:30:52 <oklopol> sound & color for 4th dimension
05:31:36 <oklopol> it's hard to know when exactly you ought to have the ball inside you if there's just color
05:31:51 <oklopol> the sound allows for a great way to do that
05:32:03 <oklopol> because of the bee-effect
05:32:26 <oklopol> like hZ440+hZ443 = chaos
05:34:02 <oklopol> i have no idea how a spin works physically... i actually learned a ball can _really_ change it's curve when i first played ping pong with a friend a bit over a year ago
05:34:35 <oklopol> before that i though it was a perception error or smth :)
05:35:54 <oklopol> we had to make a class in java for storing pictures in a test i had yesterday
05:36:31 <oklopol> my only comment was /** Reimplementing ArrayList using ArrayList */
05:36:37 <oklopol> except perhaps in finnish
05:36:48 <oklopol> don't remember
05:37:24 <pikhq> LMAO
05:37:38 <oklopol> i also wrote that.
05:37:44 <oklopol> not really, but i should'be
05:37:45 <oklopol> *ve
05:38:40 <oklopol> coffees ->
05:41:53 -!- boily has joined.
05:42:16 <oklopol> and then i gave her a golden shower
05:43:54 -!- GregorR has quit (Remote closed the connection).
05:45:42 <boily> i just joined and first thing i see: `ant then i gave her a golden shower'
05:45:49 <boily> disgusting
05:46:39 <oklopol> yay, you're good at this game
05:47:10 <oerjan> just admit it, you were reading the logs and waiting for the perfect moment
05:47:16 <oklopol> though i guess i'm supposed to say something that might *not* be perverted in another context
05:47:30 <oklopol> well
05:47:31 <boily> sorry oerjan, i did not read the logs, truly
05:47:42 <oklopol> i'm pretty sure there's a context for everything.
05:47:47 <oerjan> actually you couldn't have
05:47:54 <oklopol> clogz
05:48:03 <oerjan> because that was the first disgusting thing oklopol said
05:48:18 <oklopol> usually i'm pretty clean
05:48:24 <oklopol> oerjan: spins? :)
05:48:38 <oerjan> spins are disgusting?
05:48:52 -!- GreaseMonkey has joined.
05:49:16 <oklopol> yeah, but in a good way
05:49:24 <boily> i'm a little bit confused concerning what you are discussing
05:49:27 <boily> spins?
05:49:31 <oklopol> hmm
05:49:41 <oklopol> <oklopol> are there any real-time 4d games?
05:49:42 <oklopol> <oklopol> and how do you calculate spins in ping pong for example?
05:49:42 <oklopol> <oklopol> http://dagobah.biz/flash/CurveBall.swf -> 4d
05:49:48 <boily> 1oh
05:49:52 <boily> *oh
05:50:10 <oklopol> we were not discussing this
05:50:19 <oklopol> but we should be discussing it
05:51:33 <oklopol> hmm... guess i'll schmoogle or something
05:52:13 <oklopol> ah indeed
05:52:19 <oklopol> stupid angular momentums
05:52:57 <oklopol> i can't find anything about spins since spins have so many other physical schwimpies
05:54:02 <oklopol> why do i always run out of coffee
05:54:53 <oerjan> the little gnomes are stealing it
05:54:53 <oklopol> i need two joysticks, one just isn't enough
05:55:10 <oklopol> i could just have two mice and use them, but i'm not sure that'd feel right
05:55:16 <oklopol> since you always have just one mouse
05:55:22 <oklopol> _always_
05:55:47 <oerjan> you can have three, if they are blind
05:56:06 <oklopol> actually, 2 joysticks/mice allow 5 dimensions for ping pong
05:56:23 <oklopol> since you don't need one of the ... axes
05:56:36 <oklopol> axizors
05:58:19 <oklopol> but i'm not sure if i want to do 5d before my first 3d game :)
06:05:11 <oklopol> yay
06:05:18 <oklopol> #physics saved my life
06:06:34 <oerjan> right, if not for gravity we might all be floating dead in space now...
06:07:50 <oklopol> yes, exactly what i meant!
06:08:04 <oklopol> but, also, the channel
06:23:04 -!- oerjan has quit ("Good night").
06:25:29 -!- Sgeo has quit (Remote closed the connection).
07:01:48 -!- boily has quit ("Good night too").
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
10:11:37 -!- GregorR has joined.
10:51:04 -!- GreaseMonkey has changed nick to [[Nobody_cares]].
10:51:43 -!- [[Nobody_cares]] has changed nick to N0body.
11:30:53 <N0body> gonna sleep now, gnight everyone
11:31:43 -!- N0body has quit ("sheep don'").
13:48:21 -!- ihope__ has joined.
13:48:25 -!- ihope__ has changed nick to ihope.
14:06:39 -!- jix_ has joined.
14:07:28 -!- EagleBot has joined.
14:18:28 <ihope> "Uniting and Strengthening America by Providing Appropriate Tools Required to Intercept and Obstruct Terrorism Act"
14:18:44 <ihope> Let's make an esolang based on acronyms nobody would have guessed.
14:19:12 <ihope> I figured "USA" would have stood for "United States of America", not "Uniting and Strengthening America".
15:36:38 -!- jix has joined.
15:42:29 -!- c|p has joined.
15:43:20 -!- oklopol has quit (Read error: 110 (Connection timed out)).
15:44:42 -!- jix_ has quit (Read error: 113 (No route to host)).
15:47:41 -!- ville_ has quit (Read error: 110 (Connection timed out)).
16:19:49 -!- oerjan has joined.
16:22:16 * ihope stares at his description of the billiard ball model
16:22:38 * ihope scraps it and loads MCell to play with it
16:25:39 <oerjan> you made a new CA?
16:35:14 <SimonRC> would you say that ALPACA is an example of a useful esolang?
16:38:34 <pikhq> SimonRC: Very much so.
16:38:57 <pikhq> It's not *highly* useful, but it *is* useful for certain purposes.
16:39:14 <pikhq> (specifically, emulating cellular automata)
16:39:29 <pikhq> And it is, as you might imagine, trivial to prove Turing complete.
16:39:50 <pikhq> It can simulate Life. Life is Turing complete. QED.
16:43:16 <oerjan> although a CA more directly based on a TM would be easier than Life to understand the proof for.
16:44:00 -!- sebbu has joined.
16:44:00 <pikhq> Not truie.
16:44:12 <pikhq> I understand one of the proofs by simulation.
16:44:25 <pikhq> Well. . . "Understand".
16:46:21 <oerjan> btw i have this little "ALPA" idea: what would a language look like for which ALPACA was simply a library extension for CAs?
16:46:23 <SimonRC> damn my internet connection is slow today
16:46:51 <pikhq> Hmm.
16:47:04 <pikhq> Interesa.
16:48:35 <oerjan> it seems like most expressions in ALPACA are chains of method calls, simply concatenated.
16:49:24 <oerjan> so let a b be an abbrevation for the function \x -> x a b
16:50:00 <oerjan> (Haskell notation)
16:53:14 <oerjan> an object, when used as a function, simply applies its first argument back on the object itself.
16:54:40 <oerjan> and you never (at least in the subset ALPACA uses) give the object in a chain explicitly.
16:55:19 <oerjan> there are also operators like and/or.
16:56:59 <oerjan> and top-level declarations can take arguments that are either single expressions, or comma-separated lists. The ALPACA-specific declarations could probably be macros.
16:57:52 <oerjan> (when the argument is a single expression it needs parentheses if it is more than one token)
16:58:57 <oerjan> that's about it so far.
16:59:22 -!- sebbu2 has joined.
17:18:19 -!- sebbu has quit (Connection timed out).
17:20:42 <lament> aw, what is it with people using C-like syntax for unrelated languages?
17:20:48 <lament> Bug("1", "Hello, World!");
17:20:49 <lament> Scuttle("1");
17:20:53 <lament> ugly!
17:24:29 <oerjan> that's not so specifically C - i think that goes back to Algol.
17:24:57 <lament> sure, doesn't matter
17:25:28 <lament> this would make sense if Bug and Scuttle were functions
17:25:57 <lament> but they really aren't
17:26:18 <lament> and the things in quotation marks aren't really strings either
17:26:49 <lament> he's just parroting the syntax without understanding the reasons behind it
17:27:25 <oerjan> well there is nothing wrong with doing a syntax that _looks_ vanilla but is actually deeply disturbed.
17:27:45 <lament> yes
17:27:48 <lament> certainly
17:28:01 <lament> but that's not the case here, either
17:29:13 <lament> the only motivation for the syntax i can think of is making the code seem confusingly C-like
17:29:33 <lament> but then everything would at least be in lowercase :)
17:30:33 <lament> no, i think in this case it's just somebody without much a clue creating a language
17:30:44 <lament> from the spec: "Semicolons must be used instead of newlines to terminate commands. Therefore, strings cannot contain semicolons."
17:31:13 <oerjan> it reminds me much more of Pascal.
17:31:50 <oerjan> but then the Algol syntax was as much default previously as C is now.
17:32:15 <oerjan> ok, _that_ is deeply disturbed.
17:32:41 <lament> yes, in another context it would be a clever joke :)
17:32:42 <oerjan> the poor guy's never heard of lexical analysis.
17:34:28 <oerjan> probably doesn't know how to make a proper recursive parser.
17:35:24 <oerjan> not that we want to chase away beginners, of course.
17:36:29 <lament> and kill them?
17:37:09 <lament> wait, we don't?
17:37:30 <oerjan> indeed not. well, only if there is a food shortage.
17:37:48 <lament> that could be arranged!
17:42:51 <bsmntbombdood> you can eat me first
17:43:51 <lament> at least he does have a php interpreter for both his languages
17:46:32 <bsmntbombdood> Hypertext Preproccessor?
17:47:17 -!- sebbu2 has changed nick to sebbu.
17:47:30 <lament> the same.
17:48:56 * oerjan declares bsmntbombdood the official #esoteric emergency ration.
17:51:48 <bsmntbombdood> i wonder if i should go to this girl's birthday party
17:52:08 <bsmntbombdood> will i still have all of my body parts on the 24th?
17:52:42 <lament> do you need all of your body parts to go to a birthday party?
17:53:40 <bsmntbombdood> it wouldn't be much of a party without all of them
17:55:04 <lament> just leave most of them at home and show up as a head in a jar.
17:55:28 <bsmntbombdood> that may severly limit my mobility
17:56:39 <lament> on the other hand, it would be a great conversation starter
17:57:17 <lament> (speaking of which, wouldn't it be great to show up as a head in a jar to a high school reunion. Some grew up to be doctors, some grew up to be lawyers, I grew up to be a head in a jar)
17:57:23 * SimonRC plays the new Gerrymandering game.
17:58:10 <bsmntbombdood> does RSVP mean you have to call if you go or call if you can't go?
17:58:32 <SimonRC> yes
17:58:33 <lament> it means you have to reply.
17:58:47 <SimonRC> "Répondez s'il vous plait" IIRC
17:58:54 <SimonRC> "Please respond"
18:02:40 <bsmntbombdood> silly people, giving me all these crazy responsibilities
18:02:52 -!- crathman has joined.
18:02:52 <lament> like replying to invitations?
18:02:56 <lament> yeah, it's horrible.
18:03:00 <lament> just don't reply
18:03:04 <lament> and don't come
18:03:11 <lament> they'll get the point and never invite you again!
18:03:48 <bsmntbombdood> yay!
18:04:09 <bsmntbombdood> always with the great ideas
18:04:16 <bsmntbombdood> you should be my social coach
18:07:52 <lament> so
18:08:04 <lament> what exactly is the "Usability Unknown" category
18:08:40 <oerjan> it means we don't know how powerful they are
18:08:52 <lament> but that's Power Unknown.
18:09:25 <lament> the original rationale behind "usability" was that some non-TC languages seem to be more "useful for computation" than others
18:10:46 <oerjan> right
18:11:06 <lament> so, i marked HEX as a finite-state automaton; do i remove the usability unknown category?
18:11:11 <SimonRC> damn that is one heavily gerymandered district
18:11:16 <lament> it seems about as useful as Smetana
18:11:31 <lament> (all memory locations need to be explicitly created)
18:12:00 <oerjan> finite cell size?
18:12:09 <lament> oh, good point
18:12:41 <lament> right, good point, he doesn't specify
18:14:35 <lament> reference implementation has finite cell size
18:16:43 <oerjan> don't they always. you have to abstract away a _little_ from implementation.
18:17:01 <bsmntbombdood> "It's 2002, and programming languages have almost caught up with 1958"
18:17:02 <lament> no, they don't always :)
18:17:45 <oerjan> that was a rhetorical question.
18:18:17 <lament> the oddest part is that in the version 1 of the specification the syntax was basic-like
18:18:44 <lament> BREED "foo" "bar" "*"
18:19:06 <lament> then he changed that to Breed("foo", "*", "bar");
18:20:11 <lament> he even changed the comment marker from ; to #
19:00:04 -!- sebbu2 has joined.
19:00:49 -!- RodgerTheGreat has joined.
19:02:02 <RodgerTheGreat> hello. What's been happening in #Esoteric today?
19:02:30 <lament> the black plague
19:02:42 <RodgerTheGreat> cool
19:02:53 * RodgerTheGreat covers his mouth with a handkerchief
19:11:53 <oerjan> brains... brains...
19:21:21 -!- sebbu has quit (Connection timed out).
19:32:00 <bsmntbombdood> http://www.alterati.com/blog/?p=615#more-615
19:36:09 -!- oerjan has quit ("Supper").
20:10:21 -!- crathman has quit ("ChatZilla 0.9.78.1 [Firefox 2.0.0.4/2007051502]").
20:54:28 -!- sebbu2 has changed nick to sebbu.
21:14:34 -!- lament has quit ("Ducks!").
21:16:08 -!- lament has joined.
21:41:20 -!- ihope has set topic: The international hub for esoteric programming language design and deployment - map: http://www.frappr.com/esolang - forum: http://esolangs.org/forum/ - EgoBot: !help - wiki: http://esolangs.org/wiki/ - logs: http://tunes.org/~nef/logs/esoteric/ or http://meme.b9.com/cdates.html?channel=esoteric - Pastebin: http://pastebin.ca/ - Here be cannibals. (Eat bsmntbombdood first.).
21:41:49 * ihope attempts to come up with a nice... picture/diagram thingy of the Feynman gate
21:42:04 -!- jix has quit ("CommandQ").
21:42:07 -!- oerjan has joined.
21:55:06 -!- c|p has quit (Read error: 104 (Connection reset by peer)).
22:13:34 -!- c|p has joined.
22:20:42 <bsmntbombdood> ~raw join #lispcafe
22:33:39 <ihope> ~exec self.raw("PRIVMSG #lispcafe :Like this?")
22:55:59 <ihope> ~exec self.raw("JOIN #lispcafe")
22:56:13 -!- bsmnt_bot has quit (Remote closed the connection).
22:56:16 -!- bsmnt_bot has joined.
22:57:02 <ihope> ~exec self.raw("JOIN #lispcafe")
22:57:51 <ihope> ~exec self.register_raw(r"\S+ PRIVMSG (%s) :%sexec (.*)" % ("#lispcafe", self.COMMAND_CHAR), self.do_exec)
23:35:59 * SimonRC curses NFS
23:38:01 <bsmntbombdood> write your own
23:39:14 <ihope> NFS?
23:39:40 <ihope> Something from scratch?
23:40:05 <ihope> Or NTFS?
23:40:16 <ihope> Or "Not for Steve", which doesn't make sense?
23:40:31 <ihope> "Not for Simon", which makes a tiny bit more sense?
23:42:42 <oerjan> National Fanatics Society
23:43:57 <bsmntbombdood> network filesystem
23:44:49 <oerjan> bsmntbombdood: don't come here with your obvious lies.
23:45:27 <lament> NSWF?
23:45:29 <lament> er
23:45:31 <lament> NSFW?
23:47:31 <SimonRC> Networked Filesystem
23:47:48 <SimonRC> it thinks that certain files are in use when they aren't
23:48:12 <SimonRC> I can't move them either
23:48:40 <SimonRC> I can move the folder they're in, and I can use the evil smiley to emty them, but I can't delete the actual files
23:49:19 <oerjan> SimonRC: can't you move the actual files?
23:50:08 <SimonRC> no
23:50:54 <oerjan> ic. move every other file into another directory, then rename the directories.
23:51:06 <SimonRC> yeah did that
23:51:20 <SimonRC> but how do I get rid of the actual file
23:51:52 <oerjan> if they're empty then they can just stay until reboot, can't they?
23:52:26 * oerjan hands SimonRC a broom and a carpet.
23:52:46 <SimonRC> I have rebooted many times
23:53:11 <SimonRC> and they still can't be deleted
23:53:30 <SimonRC> I don't know if the file server has been rebooted though
23:54:04 <oerjan> i would imagine that would be more important.
23:55:17 <SimonRC> "Dear ITS, please reboot Hudson. Love Simon"
23:56:29 <bsmntbombdood> fucking a
23:56:52 <bsmntbombdood> my brother discovered he could unplug the phone line in his room and disconnect my internets
23:56:54 <SimonRC> ??
23:57:03 <SimonRC> and?
23:57:14 <bsmntbombdood> he is disconnecting my internets
23:57:37 <oerjan> this being a very little brother, i take?
23:57:52 <bsmntbombdood> he's 11
23:58:44 <oerjan> er, i forget, have you moved or are you going to?
23:58:56 <bsmntbombdood> i'm going to move
23:59:02 <bsmntbombdood> my parents are dragging it out
23:59:28 <oerjan> then the problem should hopefully solve itself.
23:59:57 <oerjan> i should point out i am an only child, so my expertise is minimal.
2007-06-20
00:00:45 <bsmntbombdood> he'll find many more ways to be a fuckhead
00:09:51 <lament> eat him first
00:12:05 <SimonRC> better, get me to do so
00:12:44 <bsmntbombdood> you can share him
00:14:18 * SimonRC refers to something he has mentioned on several other channels, though not here.
00:14:32 <oerjan> yes you have mentioned it here.
00:14:39 <bsmntbombdood> oh, right
00:15:07 * SimonRC grins insanely.
00:15:16 <oerjan> barbeque party at SimonRC's!
00:15:32 <bsmntbombdood> eek
00:17:07 <SimonRC> I didn't say anything about cooking
00:17:56 <SimonRC> Ok, let's change the subject...
00:18:05 <SimonRC> Nice weather we're having.
00:18:56 <bsmntbombdood> let's talk about oerjan's sexual deviations
00:19:05 <oerjan> eek
00:19:38 <pikhq> Sex with goats under the midnight sun.
00:20:26 * SimonRC fails to recall what "the midnight sun" is a euphamism for.
00:20:46 <RodgerTheGreat> the moon?
00:20:50 <bsmntbombdood> isn't it just when the sun is up at midnight in the far north?
00:20:52 <SimonRC> no, RodgerTheGreat
00:20:56 <RodgerTheGreat> a fluorescent lamp?
00:21:06 <pikhq> Nothing, really. He's far north, and during the summer there, it doesn't quite hit night.
00:21:14 <pikhq> (although the sun does set, IIRC)
00:22:19 <oerjan> it's 1:20 am and the sky is nice and blue, although not exactly bright
00:22:34 <lament> i thought midnight sun was a euphemism for an orgasm
00:22:47 <oerjan> (without DST it's actually 0:20)
00:24:12 * pikhq hates your country. . .
00:24:24 <pikhq> I want it to be *night* all day long for a while, too. :p
00:24:43 <oerjan> that would be around December.
00:24:45 <lament> it's not pleasant
00:24:59 <pikhq> I. . . And you. . .
00:25:01 <pikhq> Jeeze.
00:25:11 * pikhq will stick with his lower latitudes
00:27:10 * SimonRC concatenates lament's last two remarks and laughs
00:27:24 * bsmntbombdood does the same
00:29:14 * pikhq concatenates RodgerTheGreat's statement with lament's second to last statement
00:29:40 <oerjan> btw Trondheim is at 63 degrees North
00:29:42 <bsmntbombdood> the result is nonsensical
00:30:10 -!- sebbu has quit ("@+").
00:30:13 <SimonRC> you need a dot in-between
00:30:28 <bsmntbombdood> that's 23 more degrees north than 40 degrees north
00:30:31 * SimonRC re-reads
00:31:36 <pikhq> SimonRC: My concatenation makes sense
00:31:55 <pikhq> a fluorescent lamp? i thought mignight sun was a euphemism for an orgasm
00:32:10 <pikhq> oerjan: Too far north. :p
01:02:11 <RodgerTheGreat> pikhq: could you *try* to explain that redcode IS the language used in corewars?
01:02:28 <RodgerTheGreat> I have repeatedly failed to explain things like this to yuriks.
01:02:44 <lament> who is yuriks?
01:03:35 <RodgerTheGreat> a very stubborn, and often hilariously wrong, programmer in another channel.
01:05:31 -!- Otakubot has joined.
01:20:49 <ihope> What is this channel? >:-)
01:22:16 <RodgerTheGreat> why do you ask, ihope?
01:22:40 <ihope> The >:-) doesn't give it away? :-P
01:23:15 <RodgerTheGreat> the >:-) gives me reason for caution
01:23:28 <RodgerTheGreat> but is not itself a precise indicator
01:47:23 <ihope> Well, is anybody else getting "precondition failed" on the wiki?
01:48:05 <oerjan> no
02:01:03 <ihope> Well, it's not coming from creating pages.
02:01:22 <ihope> (Hopefully creating subpages of Esolang:Sandbox at random doesn't annoy anybody.)
02:04:58 <lament> it annoys me greatly
02:06:04 <ihope> What if I delete them right after?
02:13:13 <oerjan> IT CLUTTERS UP THE RECENT CHANGES!
02:19:00 <ihope> Doesn't everything?
02:19:19 * ihope begins to lean toward "they
02:19:22 <ihope> 're joking"
02:25:31 * SimonRC swears at a guy who write like Joseph Conrad.
02:25:38 <oerjan> only 80%
02:27:15 <SimonRC> huh?
02:27:31 <oerjan> only 80% joking
02:30:27 <ihope> Joseph Conrad?
02:31:05 <ihope> Does anybody know what might be causing these precondition errors?
02:31:58 <oerjan> ihope: what were you trying to view?
02:32:08 <ihope> I was trying to create a page.
02:32:33 <oerjan> oh. maybe it's a spam filter or some unrecognized markup?
02:32:46 <oerjan> i have seen such an error a long time ago, i think
02:34:10 <oerjan> i had to remove some part of the message, i think
02:35:06 <oerjan> do you get this error on preview? in which case you can easily experiment
02:35:44 <ihope> Apparently it's because of the string "../"
02:36:50 <ihope> I was using dots instead of spaces for empty space in a two-dimensional language, so I can use spaces instead.
02:38:11 <ihope> I can also put <!-- --> inside there, but that's inelegant.
02:38:59 <oerjan> what about an entity? not that i know the right ones for . or /
02:41:05 <ihope> Or template substitution, which would also foil anybody's attempts at editing the page. >:-)
02:43:39 <ihope> Assuming that template substitution is actually possible.
03:05:50 * SimonRC decides that _Imagining the Tenth Dimension_ is utter bullshit: http://www.tenthdimension.com/medialinks.php
03:05:59 <SimonRC> seriously, that is an official video.
03:06:56 <SimonRC> Joseph Conrad wrote _Heart of Darkness_, a book which I had to study in school and which is amazingly difficult to read.
03:07:36 <SimonRC> It is almost indescribably dificult to read
03:07:51 <SimonRC> You can't be that hard to read merely by bad grammar, you have to have something else, I am not sure what
03:16:27 <ihope> Is it fiction?
03:16:40 <SimonRC> it claims to be fact
03:17:21 <ihope> (Imagining the tenth dimension? Shouldn't we start by imagining the fourth spacial dimension?)
03:19:22 <SimonRC> The video starts reasonable, but gradually descends into utter bullshit.
03:19:38 <SimonRC> And that's just adapted from the first chapter of the book.
03:31:07 <ihope> "He cried in a whisper at some image, at some vision - he cried out twice, a cry that was no more than a breath - '"The horror! The horror!"'
03:31:27 <ihope> Takes a couple seconds to digest.
03:32:14 <RodgerTheGreat> I fail to see how "a universe with different initial conditions" creates an "additional infinity", if infinity already represents everything that was or could result.
03:32:21 <RodgerTheGreat> this seems to be a causal loop.
03:32:29 <RodgerTheGreat> or, at least, an oversight.
03:33:06 <RodgerTheGreat> perhaps this just lies in poor wordings.
03:33:33 <SimonRC> The terminology is crap, but I think there is more crap below that
03:33:39 <RodgerTheGreat> hm
03:33:56 <ihope> Wait, that video was adapted from part of Heart of Darkness?
03:34:01 <SimonRC> no
03:34:03 <SimonRC> *sigh*
03:34:11 <RodgerTheGreat> I was a little confused about those mixed references there
03:34:49 <ihope> I'm guessing there's a Tenth Dimension book or something, then.
03:34:55 <SimonRC> yes
03:35:03 <SimonRC> if you followed the link
03:35:40 <ihope> Oh, I either didn't notice that or assumed it was for Heart of Darkness or something.
03:35:43 <SimonRC> (Godsdamnit people, string theory is not bullshit, it's theoretical-physics masturbation.)
03:36:08 <SimonRC> ihope: erm, note the domain name?
03:36:27 <ihope> Who says string theory is bullshit?
03:37:49 <SimonRC> Some people on furums that were discussing the book.
03:38:38 <SimonRC> simple explanation: http://xkcd.com/c171.html
03:39:15 <RodgerTheGreat> the main thing I call bullshit on in theoretical physics is the quantum physics is the concept that behavior is probabilistic and chaotic. Apparent chaos is an emergent property of sufficiently complex deterministic systems, damnit!
03:39:27 <RodgerTheGreat> *is that quantum physics
03:39:44 <RodgerTheGreat> SimonRC: lol
03:41:28 <SimonRC> RodgerTheGreat: I am assured that there are things that QM does that can't be done by hidden variable theories.
03:41:53 <RodgerTheGreat> not hidden *variable*, hidden algorithm
03:42:58 <ihope> RodgerTheGreat: you're saying the universe isn't random?
03:43:05 <RodgerTheGreat> yes.
03:43:17 <ihope> Does QM necessarily have randomness?
03:43:18 <oerjan> SimonRC: i think those proofs only work to disprove theories without faster-than-light communication
03:43:35 <ihope> I don't know that the many-worlds interpretation is probabilistic.
03:44:09 <RodgerTheGreat> ihope: that's a good point- strictly speaking, it isn't
03:46:26 <RodgerTheGreat> SimonRC: you remind me of one of my favorite John Von Neumann quotes: "If you can tell me what, precisely, it is that a computer cannot do, I will build you a computer that will do it."
03:46:58 <RodgerTheGreat> viewing deterministic systems as computers, naturally, to make an analogy
03:47:02 <ihope> Did Alan Turing tell him what, precisely, it is that a computer cannot do?
03:48:15 <RodgerTheGreat> no. I don't see your point.
03:48:31 <RodgerTheGreat> er
03:48:32 <RodgerTheGreat> wait
03:48:39 <RodgerTheGreat> I know what you're getting at
03:48:47 <RodgerTheGreat> this wasn't a question of computability
03:48:59 <RodgerTheGreat> it was a comparison of human abilities to that of a computer
03:49:28 <RodgerTheGreat> although you do neatly deflate my analogy. touche.
03:49:59 <oerjan> as in: the only reason a computer cannot do something a human does is because we don't know precisely how a human does it
03:50:47 <RodgerTheGreat> well, yeah- that was *my* point
03:51:11 <RodgerTheGreat> I'm of the opinion that we can only effectively guess at quantum behavior because we don't fully understand how it works.
03:51:19 <ihope> Mm, indeed.
03:53:06 <RodgerTheGreat> and I cited the effectiveness of ordered systems at producing chaos as an example of a known example of an "opaque" algorithm.
03:53:41 <ihope> Now, the Copenhagen and the many-worlds interpretations are pretty much the major ones, right?
03:54:02 <SimonRC> argh my faith in humanity is destroyed
03:54:14 <oerjan> SimonRC: Again?
03:54:29 <RodgerTheGreat> ?
03:54:31 <SimonRC> all it took was a few minutes reading blogs about Imagining the Tenth Dimension.
03:54:37 * ihope hands SimonRC a list of miracles with all instances of "God" replaced by "humanity"
03:54:38 <RodgerTheGreat> oh, geez
03:54:42 <ihope> What, what'd they say?
03:54:52 <ihope> (And isn't Copenhagen many-worlds plus observation, and can't the effects of observation be explained by entanglement?)
03:55:05 <SimonRC> They were all amazed at it and said how it made string theory easier to understand
03:55:12 <RodgerTheGreat> blogs + wild speculative "science" = chaos. ironic.
03:55:34 <SimonRC> I hope bloggers aren't as smart as most people.
03:56:14 <ihope> What, you haven't seen "Are You Smarter than a Fifth Grader"?
03:57:01 <RodgerTheGreat> lol
03:58:34 <ihope> We really need to put some more emphasis on education...
03:58:57 <ihope> Let's start with education education, educating people about the benefits of education.
04:00:00 <ihope> Especially science and coding, though naturally we also need people to manage and govern and all that.
04:01:01 <RodgerTheGreat> I was thinking a while ago that schools should require reading and writing in early grades and then switch to a core curriculum of mathematics, philosophy and formal logic, with tons and tons of elective options (especially good options for the arts)
04:01:28 <ihope> Philosophy? Like... what sort of philosophy?
04:01:38 <RodgerTheGreat> and things like a foreign language and a simple coding language (LOGO anyone) should be taught from an early age
04:02:36 <RodgerTheGreat> ihope: a wide range of schools of thought. Primarily to encourage ordered thoughts about things like ethics, religion and life. The application of the mind to the world.
04:02:56 * ihope nods
04:03:05 <RodgerTheGreat> the main goal would be to demolish taboos against scientific inquiry into various topics.
04:03:20 <RodgerTheGreat> and to get people to ask questions.
04:03:23 <ihope> Hmm, functional?
04:03:40 <SimonRC> Scheme
04:04:44 <RodgerTheGreat> LOGO is as syntacticly pure as LISP, in many ways, and is more accessible.
04:05:33 <RodgerTheGreat> BASIC (and I know this is a bit of personal bias) is an excellent language for beginners as well, in terms of quick rewards for experimentation and a very intuitive method of programming.
04:15:00 <bsmntbombdood> reform of the school system won't solve anything
04:15:08 <bsmntbombdood> schools themselves are broken by design
04:15:14 <RodgerTheGreat> yes
04:15:48 <RodgerTheGreat> that doesn't mean it's an unsolvable situation, it simply has more to do with the students than the concept of schools themselves
04:16:04 <RodgerTheGreat> you have to want to learn to truly grow from education
04:16:22 <bsmntbombdood> schools aren't designed for learning
04:16:45 <bsmntbombdood> (I can't speak for universitys)
04:16:45 <RodgerTheGreat> so, solve it on a societal level. Make people want to learn, and schools will reshape themselves to suit the proactive desires of the students
04:17:10 <bsmntbombdood> you can't make people do anything
04:17:15 <RodgerTheGreat> I'm not saying schools are unflawed, but they have some redeeming facets
04:17:24 <bsmntbombdood> if society is fucked, society is fucked
04:17:32 <bsmntbombdood> maybe we deserve to be extinct
04:17:40 <RodgerTheGreat> you can't make people DO anything, but immense evidence suggests that you can make people WANT something.
04:18:48 <bsmntbombdood> i don't think centralized schooling can foster education
04:19:25 <RodgerTheGreat> please, enlighten us with your wisdom in alternative education strategies.
04:19:55 <bsmntbombdood> i think people should seek education on their own, in their own way
04:21:12 <RodgerTheGreat> not everyone is cut out for that type of education. Those that want it already do. We need a way of convincing more people that it's important and worthwhile.
04:21:13 -!- ihope has quit (Read error: 110 (Connection timed out)).
04:22:04 <bsmntbombdood> why not just let the stupid people be stupid?
04:22:31 <RodgerTheGreat> In my case, my high-school didn't offer any computers courses at all. I still took as many science and math classes I could, and explored programming and computers in my own time. Few of my peers have the same level of interest, and thus few of my peers in college have my level of skill and knowledge.
04:22:44 -!- EagleBot has quit (Read error: 110 (Connection timed out)).
04:22:45 <RodgerTheGreat> that's needlessly fatalistic.
04:22:56 <RodgerTheGreat> we need to examine where the motivation for education is rooted.
04:23:10 <bsmntbombdood> the math and science courses in my high school aren't educational
04:24:11 <RodgerTheGreat> view public school to education as wikipedia is to proper research: an outline, a starting point, not necessarily a complete corpus.
04:24:34 <bsmntbombdood> it's not like that
04:24:38 <bsmntbombdood> more like daycare
04:24:50 <bsmntbombdood> nothing insightful is offered
04:26:02 <RodgerTheGreat> I don't pretend I enjoyed highschool. However, I know for a fact that if you enter a class with a chip on your shoulder, you won't learn a damn thing. Even the most incompetent teachers taught me things, wether it was the subject of the class or not. Be openminded.
04:26:58 <bsmntbombdood> that hasn't been my experience
04:28:50 <bsmntbombdood> actually, the thing my teachers have taught me is that schools are broken
04:31:19 <oerjan> whatever you expect to get, is what you will usually get.
04:31:51 <RodgerTheGreat> ADD 1 TO oerjan GIVING oerjan
04:32:03 <RodgerTheGreat> or the more conventional, oerjan++;
04:32:07 <bsmntbombdood> high expectations don't improve the conditions
04:32:41 <oerjan> they improve your ability to make the best out of the conditions.
04:33:40 <bsmntbombdood> or just leave you dissapointed
04:36:12 <SimonRC> I seemed to learn just fine in school
04:36:26 <oerjan> there is a book about this i read, it's called "The Luck Factor". the author carried out experiments to find out whether there were people who actually were lucky.
04:36:44 <oerjan> surprisingly, the answer was yes.
04:37:00 <oerjan> and the most deciding factor was optimism.
04:37:25 <bsmntbombdood> you can measure luck
04:37:59 <oerjan> also, people could improve their luck by changing their outlook.
04:38:04 <SimonRC> hmm
04:38:12 <SimonRC> define "luck"
04:38:47 <oerjan> one of the experiments involved putting a bill on the street in front of a place the subjects were going to meet the experimenters.
04:38:52 <SimonRC> and?
04:39:26 <RodgerTheGreat> SimonRC: I would define luck as the perception of one's tendency to success or failure. Key word: perception.
04:39:30 <oerjan> the lucky optimists picked up the bill, the unlucky pessimists simply ignored it as if it wasn't there.
04:39:39 <SimonRC> why?
04:39:52 <SimonRC> why did they ignore it?
04:40:37 <oerjan> i don't remember but my understanding is simply that they were so _determined_ to believe they were unlucky that they refused to sense any opportunity for the opposite.
04:41:45 <bsmntbombdood> there could be other factors when deciding to pick up money off the street
04:41:47 <oerjan> basically, people unconsciously act to reinforce their beliefs, even if they believe they don't.
04:41:56 <SimonRC> oerjan: and, having made this discovery that shakes the foundations of modern physics, what did he do next?
04:42:23 <oerjan> well he actually didn't prove anything directly anti-scientific.
04:43:01 <oerjan> as far as i could see.
04:43:05 <SimonRC> hm
04:43:10 <oerjan> well, clearly he published a book.
04:44:32 <oerjan> naturally, his definition of luck was not about being able to influence dice or that kind of thing, it was about practical luck
04:44:54 <oerjan> it's been a while since i read it.
04:45:32 <RodgerTheGreat> well, g'night everyone- I need to hit the hay
04:45:36 <SimonRC> actually, that matches what I think
04:45:49 <oerjan> yeah, i remember we had a similar conversation
04:46:06 -!- RodgerTheGreat has quit.
04:46:11 <SimonRC> I also think that it is very difficult to change your own attaitude without assistance.
04:47:10 <SimonRC> therefore, if you are unlucky you still can't just change to being lucky without help, but for a different reason
04:48:07 <SimonRC> Note: If someone is helping you to change yourself, then by definition you aren't doing it without assistance.
04:48:12 -!- c|p has quit ("Leaving").
04:50:20 <SimonRC> zzzzzzz
05:14:51 -!- boily has joined.
05:41:50 -!- oerjan has quit ("znore").
06:08:14 -!- sp3tt has quit (Remote closed the connection).
06:08:18 -!- sp3tt has joined.
06:33:41 -!- GreaseMonkey has joined.
06:52:32 -!- boily has quit ("Sleep").
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:39:45 -!- Sukoshi has changed nick to Sukoshi`.
08:41:08 -!- Sukoshi` has changed nick to Sukoshi.
10:06:05 -!- Mechminx has joined.
10:06:11 -!- Mechminx has left (?).
10:44:24 -!- jix_ has joined.
10:52:50 -!- GreaseMonkey has quit (Connection timed out).
12:03:26 -!- pikhq has quit (Read error: 110 (Connection timed out)).
12:05:19 -!- RodgerTheGreat has joined.
13:55:53 -!- ihope__ has joined.
13:56:03 -!- ihope__ has changed nick to ihope.
13:57:46 -!- c|p has joined.
14:06:25 -!- pikhq has joined.
14:36:20 <ihope> I like Epigram. You can define functions that return different types based on whether their arguments are multiples of 3.
15:39:09 -!- jix_____ has joined.
15:41:21 -!- jix_____ has changed nick to jix.
15:42:54 -!- crathman has joined.
15:45:20 -!- jix_ has quit (Read error: 113 (No route to host)).
15:48:52 <jix> i have an idea for another esolang...
16:15:28 <ihope> What's the idea?
16:15:54 <jix> bitqueues
16:16:06 <jix> but i have to do physics homework first
16:16:31 <ihope> What, using things so mundane as bits? Why not use billiard balls instead?
16:16:33 <ihope> :-P
16:17:08 <jix> because bits work quite nice.....
16:52:36 -!- sebbu has joined.
16:53:36 -!- pikhq has quit (Remote closed the connection).
16:59:21 -!- pikhq has joined.
17:08:11 -!- crathman has quit ("ChatZilla 0.9.78.1 [Firefox 2.0.0.4/2007051502]").
17:17:52 -!- pikhq_ has joined.
17:26:21 -!- pikhq has quit (Read error: 113 (No route to host)).
17:48:48 -!- oerjan has joined.
18:24:49 -!- crathman has joined.
18:41:39 -!- pikhq_ has quit (Remote closed the connection).
18:42:00 -!- pikhq has joined.
18:44:56 -!- jix has quit ("This computer has gone to sleep").
18:50:18 -!- ihope__ has joined.
18:53:40 -!- ihope has quit (Nick collision from services.).
18:53:43 -!- ihope__ has changed nick to ihope.
18:53:58 <ihope> VAMOS A BOT
18:54:05 -!- EagleBot has joined.
18:54:13 <ihope> See? There's the bot.
19:03:51 -!- pikhq has quit (Read error: 104 (Connection reset by peer)).
19:04:01 -!- pikhq has joined.
19:04:50 <pikhq> God. . .
19:04:50 <pikhq> I'd be better off with smoke signals in LA.
19:04:50 <pikhq> *STOP LAGGING, DAMN IT!*
19:04:56 <pikhq> I get connected, and the lag time immediately starts counting. :(
19:05:06 <lament> turn off the lag timer!
19:05:35 <pikhq> "Join to #esoteric was synced in 74 secs"
19:05:42 <RodgerTheGreat> geez
19:06:26 <lament> 74 seconds is not that bad.
19:08:05 <RodgerTheGreat> 74 seconds is fairly bad when we're talking about something like IRC
19:08:28 <pikhq> Jeeze. I'd have better response times from the ISS.
19:08:35 <pikhq> My lag time is 24 seconds.
19:08:35 <pikhq> And counting.
19:12:44 * ihope sends pikhq a CTCP PING
19:14:36 -!- crathman has quit ("ChatZilla 0.9.78.1 [Firefox 2.0.0.4/2007051502]").
19:15:27 <ihope> Two minutes, 30 seconds.
19:15:36 <ihope> That's pretty darn bad.
19:22:36 -!- pikhq has quit (Read error: 104 (Connection reset by peer)).
19:25:12 -!- pikhq has joined.
19:25:43 <pikhq> Here's hoping that it decides to be more obedient.
19:26:02 <lament> it puts the lotion on its face or else it gets the hose again!
19:26:12 <pikhq> No, no, no.
19:26:29 <pikhq> It puts the packet in its tube or else it gets the SIGKILL again.
19:33:00 * ihope sends pikhq another CTCP PING
19:33:10 * pikhq noticed
19:33:10 <ihope> Yay, ten seconds!
19:35:22 <pikhq> For now.
19:40:00 <oerjan> 0.431 seconds to ihope.
19:40:23 <ihope> You're getting replies from me faster than I am?
19:40:33 * ihope pings himself again
19:40:56 <ihope> Consistently above 1 second.
19:42:50 <oerjan> consistently around 0.5 seconds.
19:45:17 -!- jix_ has joined.
19:49:57 -!- pikhq has quit (Remote closed the connection).
19:50:05 -!- pikhq has joined.
19:55:09 -!- jix_ has changed nick to jix.
19:56:53 -!- pikhq_ has joined.
19:58:37 -!- pikhq has quit (Read error: 104 (Connection reset by peer)).
19:58:47 -!- pikhq_ has changed nick to pikhq.
20:01:28 -!- Barrucadu has joined.
20:03:29 -!- Barrucadu has left (?).
20:03:34 -!- Barrucadu has joined.
20:05:47 <pikhq> Any reason for the /leave, Barrucadu?
20:08:11 <lament> Barrucadu: your language, HEX
20:08:34 <lament> Barrucadu: has one big problem
20:08:49 <lament> Barrucadu: it lacks easily addressable memory
20:09:07 <lament> Barrucadu: since each piece of memory has to be created individually and with a unique name
20:10:30 <lament> this is not critical in itself, since it's an esolang
20:11:12 <lament> esolangs don't have to be sane
20:11:25 <lament> but it does make programming much, much harder
20:11:38 <lament> however
20:12:08 <lament> if the size of each individual piece (bug) is limited, that means the overall amount of memory available is finite, so the language cannot be turing-complete.
20:12:44 <Barrucadu> if there is a limit, its being set by PHP, i'll just check the documentation
20:12:59 <lament> well
20:13:09 <lament> it's not a good idea to define YOUR language in terms of PHP.
20:13:26 <lament> if PHP changes, does that mean your language changes too?
20:13:37 <lament> your language is a separate entity
20:13:46 <lament> with its own specification
20:13:52 <oerjan> lament: but the only thing that makes you think there is a limit is the PHP implementation.
20:14:00 <Barrucadu> well, the interpreter is written in PHP, and I haven't set any limits
20:14:04 <lament> Barrucadu: right
20:14:22 <lament> the interpreter the way it's written now has a limit
20:14:38 <jix> then the spec should say so or the interpreter should be changed....
20:14:52 <jix> oh and i should do physics homework :/
20:14:59 <lament> we have lots of precedent of not specifying memory size
20:15:02 <lament> starting with brainfuck
20:15:15 <lament> but it's always nicer when things are explicit
20:15:26 <Barrucadu> how did you hit this limit? must have been a pretty big value
20:17:34 <lament> hm
20:17:42 <lament> seems you have changed the interpreter, because now i can't add two numbers
20:17:47 <lament> oh, i see
20:18:04 <Barrucadu> you can't? damn...
20:18:11 <oerjan> the interpreter is made up of bugs, they keep moving all the time :)
20:18:47 <Barrucadu> you can, there's just been a small syntax change
20:19:02 <lament> what's wrong with this program?
20:19:02 <lament> GBL;
20:19:02 <lament> Bug("foo", "99999");
20:19:02 <lament> Bug("bar", "1");
20:19:02 <lament> Breed("foo" + "bar");
20:19:05 <lament> Scuttle("foo");
20:19:07 <lament> Write;
20:19:32 <Barrucadu> no idea, works for me
20:19:49 <lament> i get melon melon melon.
20:20:16 <lament> okay, works now
20:20:20 <lament> (i reloaded the page)
20:20:25 <Barrucadu> I love my error messages :)
20:22:29 <lament> okay then
20:22:44 <lament> GBL;
20:22:44 <lament> Bug("foo", "9999999999999");
20:22:46 <lament> Bug("foo", "9999999999999Bug("bar", "1");
20:22:46 <lament> Breed("foo" + "bar");
20:22:46 <lament> Breed("foo" - "bar");
20:22:48 <lament> Scuttle("foo");
20:22:51 <lament> Write;
20:22:57 <lament> did that paste correctly
20:23:19 <lament> irssi always has problems pasting stuff :(
20:23:33 <oerjan> second line seems broken
20:23:42 <lament> GBL;
20:23:42 <lament> Bug("foo", "9999999999999");
20:23:43 <Barrucadu> so "Bug("foo", "9999999999999Bug("bar", "1");" should be "Bug("bar", "1");"?
20:23:45 <lament> Bug("foo", "9999999999999Bug("bar", "1");
20:23:45 <lament> Breed("foo" + "bar");
20:23:45 <lament> Breed("foo" - "bar");
20:23:45 <lament> Scuttle("foo");
20:23:47 <Barrucadu> ok
20:23:48 <lament> Write;
20:23:50 <lament> god fucking damn it
20:23:54 <lament> and darn it all to heck
20:24:01 * lament kicks irssi
20:24:11 <lament> Bug("foo", "9999999999999");
20:24:11 <lament> Bug("bar", "1");
20:24:31 <lament> run that program, then remove the Breed statements and run it again.
20:25:46 <Barrucadu> hmm, the first time it gives "1E+13", the second "9999999999999". even though they are both the same
20:28:14 -!- pikhq has quit (Remote closed the connection).
20:28:30 <oerjan> that's not so weird, a slight rounding off error would do that.
20:28:42 -!- pikhq has joined.
20:29:36 <oerjan> of course that indicates the implementation does not use unbounded integers
20:34:38 -!- oerjan has quit ("Supper").
20:36:39 <Barrucadu> i'm just trying to find the maxmimum number you can calculate in HEX
20:37:46 <Barrucadu> Found it.
20:37:53 <Barrucadu> GBL;
20:37:55 <Barrucadu> Bug("foo", "99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999");
20:38:03 <Barrucadu> Breed("foo" * "foo");
20:38:08 <Barrucadu> Scuttle("foo");
20:38:12 <Barrucadu> Write;'
20:38:21 <Barrucadu> results in +++ INF +++
20:39:09 <Barrucadu> If I can figure out how, i'll write a compiler at some point, so there will be no limit
20:41:42 <Barrucadu> i'll also begin thinking of a way to get around that limit
20:42:04 <bsmntbombdood> any implementation is going to have limits
20:42:26 <Barrucadu> well, have a bigger limit then
20:42:51 <bsmntbombdood> it's just important that the language doesn't have limits if you want it to be turing complete
20:49:49 <pikhq> Well, there's a difference between a limit on the size of numbers and the size of what can be stored.
20:50:03 <pikhq> It looks like he can actually *store* any number of variables.
20:51:08 <lament> pikhq: the number is limited by the size of the program
20:51:15 <lament> same as in SMETANA
20:51:49 <pikhq> Ah.
20:51:50 <pikhq> Interesa.
20:52:13 <pikhq> So, the limit itself is adjustable.
20:54:01 <lament> pikhq: that's not enough for turing-completeness.
20:54:06 <lament> but yes.
20:54:31 <lament> you can solve any problem that halts by giving it adequate memory.
20:54:51 <lament> (you can in Smetana; i don't know about HEX but i'm sure it's possible)
20:55:05 <lament> but of course, you don't know in advance if the memory will be adequate
20:56:03 <pikhq> What's to stop you from having a oo filesize?
20:56:04 <lament> and since you don't know whether the problem halts
20:56:13 <lament> pikhq: the definition of algorithm.
20:57:06 <lament> it's cheating, a finite-state automaton with infinite states :)
20:57:26 <lament> it would also mean your variable names in themselves get infinitely long
20:57:32 <lament> etc
20:58:38 * Barrucadu sits back and watches the discussion about turing-completeness
20:59:12 * RodgerTheGreat pulls out his box of string and apples
20:59:14 <RodgerTheGreat> hm
20:59:22 <RodgerTheGreat> maybe I *shouldn't* bring this out...
20:59:30 * RodgerTheGreat hides the box
21:00:12 <lament> in general though, there's nothing wrong wiht infinite programs
21:00:30 <lament> you can get them in self-modifying languages by growing the source dynamically, and nobody complains
21:01:13 <lament> the game of life is normally presumed to be played on an infinite field and nobody complains either
21:03:53 <lament> perhaps the reason is that the game of life doesn't have explicit labels
21:04:00 <lament> eg the cells aren't named
21:04:08 <lament> in smetana they are, and the names would get infinitely long
21:04:19 <lament> (and the same in HEX obviously)
21:05:20 <Barrucadu> well, even if I can't get it to be turing-complete, I achieved my goal of making a Discworld-themed language
21:23:51 -!- Barrucadu has left (?).
21:27:31 -!- pikhq has quit (Remote closed the connection).
21:29:29 -!- jix has quit ("CommandQ").
21:34:34 -!- pikhq has joined.
21:41:53 <lament> yes, he achieved that.
21:50:29 -!- erider has quit ("I don't sleep because sleep is the cousin of death!").
21:57:31 -!- erider has joined.
21:58:41 * SimonRC finds the original Bill Gates "640k" quote.
21:58:52 <lament> how does it go?
22:00:16 <SimonRC> http://pastebin.ca/579818
22:00:40 <SimonRC> particularly: "I have to say that in 1981 making those decisions, I felt like I was providing enough freedom for ten years."
22:03:24 <lament> the difference between 6 and 10 isn't that big.
22:03:32 <SimonRC> hmm, yeah
22:21:33 -!- pikhq has quit (Remote closed the connection).
22:21:55 <SimonRC> ooh, gates predicts that unix would get a standard in the early 90s
22:21:59 -!- pikhq has joined.
22:22:09 <SimonRC> also, he predicted that OS/2 would be the future
22:22:18 <SimonRC> well, you win some you lose some
22:32:40 -!- oerjan has joined.
22:34:01 -!- pikhq_ has joined.
22:35:34 <bsmntbombdood> i wonder what he does these days
22:36:09 -!- sebbu has quit ("@+").
22:45:30 <oerjan> charity
22:46:42 -!- pikhq has quit (Read error: 110 (Connection timed out)).
22:48:37 <pikhq_> And own Microsoft.
22:48:44 -!- pikhq_ has changed nick to pikhq.
22:49:10 <pikhq> (he doesn't step down for another year or so
22:49:11 <pikhq> )
22:49:30 <bsmntbombdood> he is stepping down?
22:50:46 <oerjan> http://en.wikipedia.org/wiki/Bill_Gates#Transition
22:59:09 <bsmntbombdood> maybe i can take his job
22:59:42 <lament> i don't think you'd like it
23:00:15 <bsmntbombdood> definately not
23:00:23 <SimonRC> He still looks like a geek.
23:00:35 <SimonRC> heh...
23:00:39 <bsmntbombdood> real geeks are poor
23:01:53 <bsmntbombdood> real geeks don't have marketable skills
23:02:06 <bsmntbombdood> "i designed a damn good esolang once...
23:02:07 <bsmntbombdood> "
23:02:12 <SimonRC> Oh dear: He says that networking will become standard for PCs, he says that data (maps, encyclopedias, etc) is important, and he says that you need hypertext to navigte all the data...
23:02:27 <SimonRC> but he doesn't connect the two together.
23:03:11 <SimonRC> "Apple's going to have to get off the 68000 at some point"
23:03:26 <SimonRC> "on to one of these RISC instruction sets."
23:03:30 <SimonRC> oops!
23:09:49 <ihope> pikhq: how much of Microsoft does Gates own?
23:12:19 -!- pikhq has quit (Remote closed the connection).
23:12:25 <ihope> That much?
23:13:17 <ihope> He seems to be the chairman of Microsoft.
23:14:55 <ihope> Executive chairman.
23:28:23 -!- pikhq has joined.
23:52:32 -!- gnilor has joined.
23:52:43 <gnilor> is there a script somewhere, that translates "text" into brainfuck programs
23:53:41 <oerjan> !help
23:54:12 <oerjan> there is one in EgoBot, if that had been here.
23:54:30 <gnilor> haha, well no biggy i'll script it up
23:54:44 <gnilor> just that i'm lazy
23:55:33 <oerjan> there is also pikhq's PEBBLE
23:55:45 <oerjan> although pikhq just left too
23:56:08 <gnilor> ah found something through google
23:56:24 <gnilor> though it missed the personnal touch that a bot could have provided ;)
23:58:49 <bsmntbombdood> you could use egobot's java
23:59:11 <bsmntbombdood> uses a genetic algorithm to get the result as small as possible
2007-06-21
00:00:19 <ihope> Including things like >>>>< is as small as possible?
00:00:40 <bsmntbombdood> ok, so it needs a peephole optimization phase
00:00:42 <oerjan> it gets better if you run it from the console, i think
00:00:46 <gnilor> cool, it's not that important that it's small though, just a poc
00:02:04 <bsmntbombdood> aaagh why do people do flash websites
00:07:13 <gnilor> because they hate people who browse to them with cheap handheld devices ?
00:11:21 <bsmntbombdood> they suck, period
00:11:38 <bsmntbombdood> look at this: http://www.lefthandbrewing.com/
00:11:52 <ihope> Why do you need to view them?
00:26:03 <pikhq> gnilor: Well, there *is* a really, really overkill-ish way to do it with PEBBLE.
00:26:06 <pikhq> oerjan: I'm here.
00:26:22 <pikhq> And, uh, yeah.
00:26:37 <gnilor> pikhq, yeah thanks, i managed to do what i needed
00:26:43 <pikhq> Bona
00:26:55 <oerjan> pikhq: oh right, i saw only your quit message, for some reason irssi makes that stand out more
00:27:31 -!- erider has quit ("I don't sleep because sleep is the cousin of death!").
00:31:48 -!- erider has joined.
01:05:20 <pikhq> Which is kind of odd, since my irssi setup involves *joins* being in bold.
01:12:37 <oerjan> i am using the clean theme which i downloaded from the irssi website.
01:13:26 <oerjan> it was one of the few with white background
01:23:20 <bsmntbombdood> black backgrounds are hard to read
01:23:29 <bsmntbombdood> but so are white terminals
01:25:01 <RodgerTheGreat> I'm a fan of bright amber on black
01:27:23 <bsmntbombdood> what rgb is amber?
01:28:02 <RodgerTheGreat> something like (255,176,0)
01:28:04 <RodgerTheGreat> ballpark
01:28:30 <ihope> NCS!
01:28:46 <ihope> 5050B90G >:-)
01:28:54 <ihope> And indeed, I'm not making especially much sense.
01:29:06 <RodgerTheGreat> although, apparently UNECE defines it as ~255, 126, 0
01:29:10 <RodgerTheGreat> not that far off, at least
01:29:23 <RodgerTheGreat> I like mine more yellow than wikipedia's
01:29:29 <ihope> I mean, I am, but...
01:29:58 <ihope> NCS is a decent system, though I'm not sure if it's actually any good.
01:30:03 <RodgerTheGreat> you're being esoteric. It's ok- you're in the right place
01:30:16 <bsmntbombdood> (255,176,0) is orange
01:31:18 <ihope> :-)
01:31:50 <ihope> 5050B90G is 50% black 50% color, with "color" being 90% of the way from blue to green.
01:32:23 <RodgerTheGreat> ok
01:32:25 <bsmntbombdood> hhuh?
01:32:49 <ihope> Half black, half mostly-green-with-a-bit-of-blue.
01:33:19 <RodgerTheGreat> I just like my existing colorspaces- HSV, RGB and CMYK.
01:33:33 <ihope> HSV isn't bad.
01:33:39 <ihope> Really, this is sort of a revamped HSV.
01:33:45 <RodgerTheGreat> it sounded like it
01:34:45 <ihope> Actually, more like HSL.
01:48:11 <ihope> And I'm having a sudden urge to implement the Fredkin gate (controlled swap) in the BBM.
01:51:09 <bsmntbombdood> i have an urge to do the FRQ to the DDT in the MMRT QTR box with ALK
01:52:11 <ihope> Don't forget to DDR the FFT before QRT'ing your DRAM.
01:52:57 <bsmntbombdood> i have 8*1mb of some sort of ram, what should i do with it?
01:53:08 <lament> is monitor white as bright as the sum of monitor red, green and blue?
01:59:02 <ihope> Is it an Australian lace monitor?
02:02:48 -!- gnilor has left (?).
02:24:10 <oerjan> bsmntbombdood: send it back through time with a time machine
02:24:58 <bsmntbombdood> i don't have a time machine
02:25:34 <oerjan> maybe some kind of embedded system then?
02:26:35 <ihope> Time machines aren't necessary!
02:26:56 <ihope> Just have the past item refer to the present item and prove existence and uniqueness of a solution mathematically.
02:38:05 -!- vfork has joined.
02:39:39 <vfork> hrm, any interesting new esoteric languages come out in the last year or so? I've been out of the scene for a bit now
02:45:41 <ihope> You might want to take a look at the billiard ball machine.
02:45:54 <ihope> Though I don't know of an interpreter for it.
02:47:52 <vfork> looks interesting!
02:56:46 -!- vfork has quit ("Java user signed off").
02:59:31 <RodgerTheGreat> that was abrupt
03:00:15 <oerjan> he probably noticed the topic.
03:19:19 <ihope> :-)
03:19:38 <ihope> But bsmntbombdood clearly hasn't been eaten yet.
03:58:19 -!- c|p has quit ("Leaving").
04:11:55 -!- Figs has joined.
04:12:02 <Figs> howdy
04:16:43 -!- ihope has quit (Connection timed out).
04:19:01 <SimonRC> zzz
04:19:10 * Figs prods SimonRC
04:19:13 <Figs> Hello :D
04:20:25 <SimonRC> zzzzz
04:29:24 -!- EagleBot has quit (Read error: 110 (Connection timed out)).
04:44:25 <Figs> can someone explain to me, lowly C++ program, wtf a monad is?
04:54:26 <bsmntbombdood> that would have to be one smart program to understand monads
04:55:33 <Figs> s/program/programmer
04:55:40 <Figs> or is that the other way around?
04:55:45 <Figs> *programmer
04:55:47 <Figs> there :P
04:59:07 <oerjan> hm...
04:59:46 <oerjan> a monadic value is a kind of general producer/source
04:59:57 <Figs> like a factory object?
05:00:26 <oerjan> that would be one possibility.
05:01:21 <oerjan> its type has too parts, the monad m, and the type of value produced a. (In Haskell, m a)
05:01:43 <Figs> preferably, if you could explain without the haskell...
05:02:06 <bsmntbombdood> you need some functional language
05:02:36 <Figs> then skip the notation :)
05:02:54 <Figs> if that's possible...
05:02:59 <oerjan> The monad tells very generally what kind of producer/source it is. For example in the monad of lists, the monadic values would be lists of values of type a.
05:03:01 <Figs> don't bother if it'd take you 20 pages
05:05:56 <oerjan> In the monad of (IO) actions, the values would be thunks that did possibly some I/O and then returned an a.
05:06:30 <oerjan> thunk = closure without arguments
05:07:02 <bsmntbombdood> how does it make IO pure??
05:08:20 <oerjan> basically it encapsulates IO as action values, which can be combined in various ways without actually executing the actions.
05:10:39 <oerjan> in Haskell, the main function of the program is evaluated to one IO action. This evaluation itself is pure. However then the resulting action is performed. That is not particularly pure, but this is clearly separated from pure evaluation.
05:11:14 <bsmntbombdood> what about order of evaluation?
05:13:52 <oerjan> Every monad contains two common operations. One of them is called "bind" and denoted >>= in haskell (though there is syntactic sugar for making it look more imperative)
05:15:57 <oerjan> in a monad denoting actions, x >>= f generally means the composed action that first performs x, then applies the function f to the produced value, then performs the result of that as an action. So order of evaluation is part of the >>= definition.
05:16:41 <oerjan> note that the f function itself is pure, although it returns an action as result.
05:17:50 <bsmntbombdood> surely if you have two >>=s, they must be executed in a defined order?
05:18:30 <oerjan> x >>= y >>= f is parsed as x >>= (y >>= f), so x is performed first.
05:18:37 <oerjan> er, wait
05:18:56 <oerjan> x >>= f >>= g i mean
05:19:25 <oerjan> no, that doesn't make sense. i got it backwards.
05:19:42 <oerjan> x >>= f >>= g is (x >>= f) >>= g, the left part is executed first.
05:19:56 <bsmntbombdood> foo(x >>= f, y >>= f)
05:20:29 <oerjan> oh. note that evaluating x >>= f is not the same as executing it.
05:21:20 <oerjan> in foo(x >>= f, y >>= f) nothing says that either of x >>= f or y >>= f are executed unless foo asks for it, and then foo of course decides what order to combine them in.
05:21:51 <oerjan> this mixes in with lazy evaluation of course: in Haskell they are not even evaluated until asked for.
05:22:06 <bsmntbombdood> foo(print(x), print(y))
05:22:20 <bsmntbombdood> foo determines the order x and y are printed?
05:22:39 <oerjan> more or less. or if either is.
05:23:00 <oerjan> foo can throw away either argument or both
05:23:33 <oerjan> in Haskell, arguments to functions are _not_ evaluated before being passed to them.
05:24:23 <oerjan> print(x) is passed unevaluated to foo. x is not passed to print either until the whole is evaluated.
05:26:25 <oerjan> consider a foo defined as foo(a, b) = b >>= (\x -> a)
05:26:49 <bsmntbombdood> i still don't understand this >>=
05:27:28 <oerjan> when foo(a,b) is evaluated and executed, it would first execute b, then a.
05:28:53 <oerjan> (\x -> a) is a Haskell lambda expression btw. It is a function that ignores its argument and returns a.
05:29:03 <bsmntbombdood> yeah
05:31:05 <oerjan> consider the Haskell action: getChar >>= (\c -> if (c == 'y') then putStrLn("yes") else putStrLn("no"))
05:31:32 <oerjan> here getChar is an action that actually returns a value when executed, a character.
05:32:29 <bsmntbombdood> getChar is the monad?
05:32:31 <oerjan> when that is executed, first getChar is executed, reading a character from stdin.
05:33:13 <oerjan> getChar is a monadic value, in the monad IO. Its type is IO Char since it returns a character when executed.
05:34:42 <bsmntbombdood> and how is that any more pure than if (getChar() == 'y') ... ?
05:37:16 <oerjan> i suppose purity is in the eye of the beholder. But consider the following:
05:39:14 <oerjan> let cmd = getChar ; loop = cmd >>= (\c -> if (c == 'y') then putStrLn("Yes") else loop) in loop
05:39:37 <oerjan> as opposed to
05:40:39 <oerjan> cmd = getChar(); while ((c = cmd)!='y'); printf("Yes");
05:42:22 <oerjan> that's called referential transparency. The Haskell version actually reads a character each iteration.
05:44:52 -!- boily has joined.
05:44:59 <oerjan> In Haskell replacing a variable by its definition does not change the meaning of the program.
05:46:12 <bsmntbombdood> but...
05:47:04 <oerjan> perhaps more importantly, the way Haskell does it makes it much easier to see which parts of the program actually perform impure actions, and which just calculate values purely. with help from the type system.
05:49:24 <oerjan> if something does not have IO in its type (and doesn't delve into some particularly dubious library modules) then it does not perform an impure action.
05:58:11 <oerjan> anyway all this becomes necessary because of laziness more than pureness. One of the big Haskell guys once wrote something like in a language without laziness, it is nearly irresistible to add impure functions (like your getChar() above) directly. But because Haskell has lazy evaluation, it _must_ have a different mechanism for ordering of effects.
05:59:34 <bsmntbombdood> it seems IO should just be done immediately
06:01:18 <oerjan> immediately when?
06:02:13 <bsmntbombdood> when it's passed to a function
06:03:23 <oerjan> so you don't believe in lazy evaluation.
06:03:41 <bsmntbombdood> for non-io stuff, sure
06:04:51 <bsmntbombdood> lazy evaluation shouldn't change the behavior of programs, though
06:07:29 <oerjan> i suppose you could make a language work like that.
06:08:12 <oerjan> maybe someone even has.
06:09:54 <bsmntbombdood> i'm going to bed
06:10:03 <oerjan> however if you wanted Haskell's flexibility in generating new control structures, you would have to add some call-by-name option for arguments. Scala does that.
06:10:23 <oerjan> good night.
06:10:53 <bsmntbombdood> macros are for control structures
06:49:45 -!- oerjan has quit ("griffel").
07:19:18 -!- boily has quit ("foo foo foo").
07:42:09 -!- Figs has left (?).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:03:47 <pikhq> I would just like to announce that I have been inspired by LostKingdom. . .
08:03:58 <pikhq> And will start to write a game in PEBBLE.
09:03:35 -!- pikhq has quit (Read error: 110 (Connection timed out)).
09:36:19 -!- Keymaker has joined.
09:37:53 <Keymaker> i'm making an interpreter for a new esolang, could anyone who knows python (again!) paste a line of code that would replace Nth character from some string with some string?
09:39:25 <Sukoshi> (defun replace-char (string1 string2 char-pos) (let ((char (aref char-pos string2))) (setf (aref char-pos string1) char) string1)
09:40:17 <Keymaker> alright, thanks
09:40:26 <Sukoshi> Errr >_>
09:40:31 <Sukoshi> That's a joke. That's not Python.
09:40:40 <Keymaker> damn :D
09:40:40 <Sukoshi> That's CL.
09:40:55 <Sukoshi> I thought you could tell with the over-use of parentheses :P
09:41:09 <Keymaker> well i started to doubt something...
09:41:21 <Sukoshi> :D
10:31:28 <Keymaker> hm, i managed to get that part done
12:14:00 <Keymaker> yet the interpreter still has some problems... i hope i can get it working sometime, then i can start testing the language
12:14:17 -!- Keymaker has quit.
13:09:20 -!- c|p has joined.
13:10:42 -!- ihope__ has joined.
13:10:57 -!- ihope__ has changed nick to ihope.
14:02:15 -!- jix_ has joined.
14:13:29 -!- jix_ has quit ("This computer has gone to sleep").
14:51:25 -!- ihope has quit (Read error: 104 (Connection reset by peer)).
16:07:55 -!- jix_ has joined.
16:17:19 -!- crathman has joined.
16:21:35 -!- crathman has quit (Client Quit).
16:51:05 -!- sebbu has joined.
17:07:00 -!- c|p has quit ("Leaving").
17:07:25 -!- KoH has joined.
17:07:47 -!- KoH has left (?).
17:28:58 -!- ihope has joined.
17:31:45 -!- crathman has joined.
17:33:11 -!- RodgerTheGreat has quit (Read error: 104 (Connection reset by peer)).
17:33:13 -!- RodgerTheGreat_ has joined.
19:35:46 -!- clog has joined.
19:35:46 -!- clog has joined.
19:43:46 -!- pikhq has joined.
19:44:41 -!- atrapado_ has quit (Read error: 110 (Connection timed out)).
20:10:27 -!- c|p has quit ("Leaving").
21:39:21 -!- pikhq has quit (Read error: 104 (Connection reset by peer)).
21:39:40 -!- pikhq has joined.
21:40:31 -!- jix_ has quit ("CommandQ").
21:46:53 -!- pikhq has quit (Remote closed the connection).
21:47:17 -!- pikhq has joined.
21:56:04 -!- Sgeo has joined.
22:50:15 -!- c|p has joined.
22:57:04 -!- oerjan has joined.
23:21:48 <SimonRC> lament: the solution is to use a system which has a compose key
23:21:53 <SimonRC> thus:
23:22:01 <SimonRC> é
23:22:06 <lament> SimonRC: yes, for example my mac
23:22:12 <lament> fortunately
23:22:25 <lament> everybody understands me perfectly if i write spanish without accents
23:22:36 <lament> the only annoying problem is the n with the tilde on top. I write n~
23:22:38 <SimonRC> so why "espan~ol" rather than "espanñol"?
23:22:50 <SimonRC> erm "español"
23:22:53 <lament> because i'm at work and not using my mac.
23:22:57 <SimonRC> ah, ok
23:23:14 <SimonRC> does ñ really matter that much?
23:23:25 <SimonRC> apart from in "año"
23:24:07 <lament> i find it weird when it's missing
23:24:13 <lament> unlike the accents
23:24:21 <SimonRC> hm
23:24:22 <SimonRC> ok
23:35:28 <bsmntbombdood> n is not e\~ne!
23:39:11 -!- sebbu has quit ("@+").
23:50:12 -!- crathman has quit ("ChatZilla 0.9.78.1 [Firefox 2.0.0.4/2007051502]").
2007-06-22
00:42:39 <Sukoshi> Gah!
00:42:49 <Sukoshi> Good job throwing off UTF-8 encoding, bsmntbombdood !
00:42:59 <Sukoshi> Why do y'all even use archaic encodings like Latin1 ?
00:44:01 <oerjan> i haven't bothered to fix my account setup and there are all these old Latin1 files...
00:44:27 -!- Otakubot has quit ("Time to go!").
00:44:49 <bsmntbombdood> what?
00:45:00 <oerjan> fwiw, even motd from the sysadmins seems to be Latin1 last I checked
00:45:30 <oerjan> some things change slowly at nvg.
00:47:28 <lament> nvg?
00:49:14 <ihope> Wait, somebody said something?
00:49:37 <ihope> But it's not esolang-related.
00:49:42 <lament> what's nvg!
00:50:07 <oerjan> the computer club i'm irc'ing through
00:50:22 <lament> that's your own fault.
00:50:34 <oerjan> had an account for, let's see, 15-16 years
00:50:50 <lament> i wasn't even born back then
01:09:26 <oerjan> for one thing, you cannot put class contexts on type
01:09:30 <oerjan> argh
01:10:51 <oerjan> (well that was a first. the other times i sent things to #haskell that should have gone here.)
01:42:32 * pikhq has Unicode, just not a monotype font which supports non-ASCII characters. :/
02:06:04 -!- goban has joined.
02:06:19 -!- goban has quit (Connection reset by peer).
03:18:51 -!- phrodu has joined.
03:20:45 -!- phrodu has quit (Client Quit).
04:23:43 -!- ihope has quit (Connection timed out).
04:48:18 * SimonRC decides that this one is quite humerous: http://www.newgrounds.com/portal/view/192135
04:48:29 <SimonRC> It makes a good point about typical RPG behaviour.
05:09:47 -!- boily has joined.
05:23:26 -!- calamari has joined.
05:49:08 -!- c|p has quit ("Leaving").
06:45:56 -!- boily has quit ("WeeChat 0.2.5").
06:56:58 -!- Sgeo has quit ("Ex-Chat").
07:21:34 -!- calamari has quit ("Leaving").
07:27:48 -!- oerjan has quit ("leaving").
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
12:07:14 -!- oklopol_ has joined.
13:31:48 -!- c|p has joined.
13:47:37 -!- ihope has joined.
15:20:09 <erider> good morning
15:25:36 -!- gnilor has joined.
15:31:31 <ihope> Ello.
15:31:40 * gnilor waves
15:42:33 -!- erider has quit ("I don't sleep because sleep is the cousin of death!").
15:50:59 -!- boily has joined.
16:01:15 -!- erider has joined.
16:40:54 -!- boily has quit ("WeeChat 0.2.5").
16:41:55 -!- sebbu has joined.
17:30:00 <lament> hello, 25 entities
17:41:59 <bsmntbombdood> you can say hello to yourself
17:42:08 <lament> i did
17:42:14 <bsmntbombdood> *can't
17:42:18 <lament> why can't i?
17:42:22 <lament> hello, lament
17:42:29 <lament> why, hello there, lament
17:42:31 <lament> what's up?
17:42:32 <lament> not much
17:42:40 <bsmntbombdood> now you're just a crazy person
17:42:44 <lament> nice meeting you again
17:42:51 <bsmntbombdood> escaped from the asylum again i see
17:42:53 <lament> yeah, haven't seen you in a while, where have you been?
17:43:03 <lament> oh, you know, working, partying, playing guitar
17:43:12 <lament> ah, okay, i was doing the same :)
17:43:22 <lament> well, nice meeting you, i have to go now
17:43:25 <bsmntbombdood> mbpnvemkrglezyvglmnevxtblpdsgjldtpkvvprehvcbbrdbyvkusvjosngudqkqsudqavnefepebsdzxrlzujtbhejhdxhyigtslojngrfgkemagspjmiqfixfwmnwdbojgzuhaplhqemzumxlshqbsinkknzetcdccralnbaikfinecxlkkyutvtvwcablmjpjlehn
17:43:26 <lament> later!
17:43:30 <lament> c ya
17:43:56 <lament> wait, has bsmntbombdood gone crazy or something?
17:44:01 <lament> yeah... it seems so...
17:44:15 <lament> poor guy :(
17:44:30 <bsmntbombdood> that's some of the output of base 26 rc4
17:47:37 <lament> yeah, perhaps it is.
17:47:52 <bsmntbombdood> there is no other
17:47:53 <lament> although it's odd that it would have 13 'e' and only 3 'o'
17:48:20 <lament> but it doesn't appear that you just randomly typed it
17:50:06 <ihope> RC4?
17:51:18 * ihope plays either "Sweet Dreams" or They Might Be Giants
17:51:21 <bsmntbombdood> http://pastebin.ca/584136
17:51:41 <ihope> Oh my.
17:52:18 <lament> and he said i was crazy
17:52:36 <bsmntbombdood> i was looking for an encryption alogorithm that was simple enough to do with a pencil and paper
17:52:39 <bsmntbombdood> i think this might be
17:53:15 <lament> why not use the one from cryptonomicon?
17:53:50 <bsmntbombdood> is a deck of cards a pencil and paper?
17:54:05 <lament> not literally.
17:58:51 <RodgerTheGreat> bsmntbombdood: I saw a simplified version of the enigma that's pretty easy to use
17:59:10 <RodgerTheGreat> it only really handles the encoding rings, though
18:05:28 <ihope> RSA! >:-)
18:05:36 <bsmntbombdood> right.
18:05:49 <ihope> I mean, it's not especially bad.
18:06:25 <RodgerTheGreat> ROT13 is *really* easy with a chart like this: http://upload.wikimedia.org/wikipedia/commons/2/2a/ROT13.png
18:07:02 <ihope> It's also really insecure.
18:08:34 <ihope> Use 7/37/216 as your private key.
18:08:50 <ihope> Except that that's not what a private key contains.
18:09:20 <bsmntbombdood> rot13...
18:09:21 <bsmntbombdood> no
18:09:37 <lament> just invent your own, jeez!
18:09:38 <RodgerTheGreat> I was kidding
18:09:42 <RodgerTheGreat> <:)
18:12:33 <ihope> 259 (7*37) as modulus, 216 as totient, 13 as encryption exponent... uh, 1/13 mod 216 as decryption exponent :-P
18:17:01 <ihope> 133 as decryption exponent?
18:17:14 <ihope> Yup, 133.
18:18:56 <ihope> So 2 encrypts to 2^13 = ((2^2*2)^2)^2*2 = 163.
18:20:16 <RodgerTheGreat> that reminds me of the four fours thing you guys were up to a couple months ago
18:25:32 <ihope> The four fours thing?
18:25:53 <ihope> Did it involve factoring 4444, by any chance? :-P
18:26:10 <RodgerTheGreat> trying to generate every constant from 1 to 100 by using four 4s and various operators
18:26:17 <ihope> Ah.
18:26:24 <ihope> Various operators?
18:26:45 <RodgerTheGreat> */-+^ mod, etc
18:27:21 <RodgerTheGreat> It was around the time we were playing around with dupdog, if you feel like searching the logs
18:27:58 <bsmntbombdood> fantastic
18:28:20 <bsmntbombdood> i just spent the last 20 minutes doing key setup, and now it turns out i made a mistake
18:28:42 <RodgerTheGreat> dang
18:30:17 <pikhq> Are we allowed to consider stack operators?
18:30:45 <bsmntbombdood> for what?
18:30:52 <pikhq> For the 4444 thing.
18:30:57 <RodgerTheGreat> we weren't doing it that way, but it would be an interesting way to approach the problem again
18:31:18 <pikhq> Actually, that makes it kind of trivial to do.
18:31:39 <pikhq> 4 4/(dup for however many times you need)(+ for however many times you need)
18:31:40 <RodgerTheGreat> well, yeah- then you can just ignore some of the numbers
18:32:26 <RodgerTheGreat> we could do it with RPN, and then more easily compete for expression in the smallest number of symbols
18:34:48 <RodgerTheGreat> and the other requirement, as I remember, was that you *must* use exactly four 4s
18:35:22 <RodgerTheGreat> so, to make 1 we could do 4 4 4 4 - + /
18:36:25 <fizzie> I once did one block of DES with pen and paper. (Was visiting a place with no computars, and pretty bored.)
18:36:36 <RodgerTheGreat> sounds interesting
18:36:44 <RodgerTheGreat> how long would you say it took?
18:36:54 <RodgerTheGreat> and how much paper did you use?
18:37:27 <fizzie> Don't remember very well. Some hours. And not very much paper, maybe two sheets.
18:38:25 <RodgerTheGreat> not too bad
18:38:26 <fizzie> Of course a DES block is 64 bits, so it's not very practical if you want to actually communicate something.
18:39:40 <RodgerTheGreat> assuming a 6-bit character (64 symbols), you could pull off about 10 characters, which is enough for *some* things
18:40:01 <RodgerTheGreat> but yes, not terribly practical
18:40:05 <bsmntbombdood> what kind of person knows des by heart?
18:40:43 <RodgerTheGreat> bsmntbombdood: are one-time pads feasible for your situation? They're extremely effective for the amount of effort they require.
18:41:08 <fizzie> Oh, I had the spec (I think it was the actual FIPS standard) printed out with me. I did anticipate the "being bored" bit.
18:41:14 <bsmntbombdood> not feasible
18:41:32 <bsmntbombdood> "i'm going to be bored...better bring the des spec!"
18:41:45 <fizzie> I was only going to read it, but...
18:42:58 <bsmntbombdood> did you do all the rounds?
18:43:02 <gnilor> I implemented a easy php brainfuck interpreted, because i needed one(and the one i found online was recursive), http://81.165.213.173:8080/~gnilor/bf.php .phps for source
18:43:18 <fizzie> I don't really remember if I completely finished it.
18:43:20 <lament> recursive?
18:43:46 <RodgerTheGreat> recursive...?
18:43:58 <RodgerTheGreat> how would that work, exactly?
18:43:59 <gnilor> lament, yeah it recursively called itself for loops
18:44:01 <fizzie> Re one-time pads, I just wrote an Irssi script to apply one-time pads to queries, and exchanged half a CDful of randomness with a friend living in the next building. Extrapolating from logs since 2003, that should be enough to last until 2014 or so.
18:44:10 <gnilor> RodgerTheGreat, like any recusive descent parser
18:45:02 <bsmntbombdood> recursive for []
18:45:18 <RodgerTheGreat> hm. I guess that could work. I made a recursive equation parser once. It just didn't occur to me to do it that way with something that has side effects
18:45:33 <gnilor> bsmntbombdood, yeah it was called php-brainfuck or something.. but i just didn't like that ..keeping DoS in mind
18:45:35 <RodgerTheGreat> yeah, that would be pretty easy to code, now that I think about it
18:46:32 <gnilor> it's bf it's always easy to code :)
18:46:51 <gnilor> one of the reasons why i picked it :)
18:47:42 <RodgerTheGreat> haha
18:47:57 <RodgerTheGreat> yeah, I think I've implemented it 4 times so far
18:48:29 <fizzie> I usually implement a Befunge interpreter in every new language I come across.
18:48:32 <bsmntbombdood> brainfuck as an extension language?
18:48:32 <RodgerTheGreat> DarkBASIC, Java, Perl and (eew) VB.
18:48:49 <gnilor> fizzie, isn't befunge 2D .. well i pass :)
18:48:51 <lament> not sure why it makes sense to use a php-based brainfuck interpreter as opposed to some nice fast C one
18:48:55 <RodgerTheGreat> BF is one of my favorite "getting used to the language" programs
18:49:16 <bsmntbombdood> lambda calculus > BF
18:49:27 <gnilor> lament i actually have a use for it :)
18:54:35 <gnilor> basically i just needed a very safe way, for some form of scripting from the user to be executed server side
18:55:11 <RodgerTheGreat> lol
18:55:51 <RodgerTheGreat> once, I added BF scripting support to one of my IRC-bots because it was the easiest "scripting language" I could think of to implement.
18:57:20 <gnilor> yeah, and you can get it 100% secure, that's a plus
18:57:27 <gnilor> no fork bombs :)
18:57:40 <bsmntbombdood> it's hardly usefull as a scripting language though
18:57:50 <bsmntbombdood> how can you make it interact with your bot?
18:58:01 <gnilor> bsmntbombdood: ,
18:58:42 <gnilor> bsmntbombdood, you put a string in, you get a string out ... that's what an irc bot is all about isn't it..
18:58:59 <gnilor> and bf is turing complete .. so it can do any operation on the strings ..
19:00:38 <RodgerTheGreat> yeah, I built a system around it for defining a command. Users set a prefix "@", "!do ", whatever, and then their program. If they say something that starts with the prefix, the rest of the line counts as input, and then the program runs
19:05:32 <gnilor> you could do some var replacing, in the in/output too to have a more flexible system .. possibilities are endless :)
19:14:05 <ihope> Pah, easy.
19:14:25 <ihope> You should have used assembler with mandatory security proofs!
19:14:34 <ihope> (I'm all about security proofs lately, aren't I?)
19:16:26 <bsmntbombdood> no me understando
19:21:20 <pikhq> Sure one could have an IRC bot in Brainfuck. . .
19:22:23 <bsmntbombdood> sure
19:22:34 <pikhq> I just feel sorry for whoever writes it in raw Brainfuck.
19:24:21 <lament> you'd need some kind of a socket layer above it.
19:24:32 <lament> and an event layer presumably
19:24:47 <bsmntbombdood> easy to do
19:25:02 <lament> yes, but no longer "raw brainfuck"
19:25:10 <bsmntbombdood> pretty much
19:25:15 <lament> depends on how thick the layer is :)
19:25:30 <bsmntbombdood> just redirect stdin/stdout to netcat
19:25:51 <pikhq> Event layer?
19:26:07 <pikhq> Screw that; just make sure stdin is blocking.
19:28:33 <gnilor> i feel a bet coming on :) first one to writ it in less that 50 000 bf bytes? :D
19:28:50 <lament> 50 000 0000 000000 :)
19:28:59 <bsmntbombdood> just do it in bfm
19:33:32 <pikhq> I'd do so, except that the language is now known as PEBBLE.
19:43:22 <gnilor> heh i actually had a bug in my bf code :)
19:43:30 <gnilor> well bf interpreter
19:46:34 <pikhq> O.O
19:47:22 <gnilor> i had if (A && B) somewhere and it should have been if (B && A)
19:47:29 <gnilor> all better now
19:48:42 <pikhq> They're equivalent, except for short-circuting.
19:50:12 <gnilor> well i was counting on short-circuting
20:06:28 <pikhq> Ah.
20:07:42 <bsmntbombdood> (p && (a || 1)) || b
20:15:07 <pikhq> Who here thinks I'm crazy for wanting to do a game in PEBBLE?
20:15:28 * pikhq raises his hand
20:18:05 <RodgerTheGreat> I think it's a worthwhile endeavor
20:18:15 <RodgerTheGreat> what type of game do you plan on creating?
20:18:24 <RodgerTheGreat> I might be able to provide some meager assistance
20:18:40 <RodgerTheGreat> I have some experience coding text-based games of various sorts
20:23:16 <RodgerTheGreat> I'm guessing a good first step would be extending the pebble libraries to provide more string manipulation functions
20:26:29 * ihope raises a finger
20:26:37 <ihope> I mean, it's not VERY crazy.
20:26:54 <pikhq> Something along the lines of LostKingdom.
20:27:22 <pikhq> The parser, I think, would be simple, like LostKingdom's.
20:27:50 <RodgerTheGreat> excellent- I have done some study of the BFBASIC behind that game- I think I have a handle on what's necessary to build something similar in BF
20:28:15 <RodgerTheGreat> and as you've all seen from PocketUniverse, I know a thing or two about building MUDs
20:29:02 <pikhq> And, since you've got a Nonlogic account, it'd be simple for me to set up an SVN repo for the two of us to work on this on.
20:30:32 <RodgerTheGreat> if you want
20:30:53 <pikhq> *shrug*
20:31:03 <pikhq> Or I could just do the insane route and write it all myself. :p
20:33:23 <RodgerTheGreat> I get the sense you'll have more satisfaction from it that way. However, I will be more than happy to provide assistance and advice when you so desire it.
20:55:28 <bsmntbombdood> what's nonlogic?
21:23:09 <RodgerTheGreat> what do you think?
21:23:22 <RodgerTheGreat> pretty neat, eh?
21:23:26 <bsmntbombdood> sure
21:24:09 <RodgerTheGreat> #Esoteric and ##Nonlogic have very different atmospheres, but I feel they also have a great deal of commonality
21:24:29 <RodgerTheGreat> we're all just a bunch of hackers, after all
21:24:41 <RodgerTheGreat> (in the truest sense of the word.)
21:25:19 <bsmntbombdood> what's the atmosphere in ##nonlogic ?
21:25:42 <RodgerTheGreat> I dunno, a little more "structured", a little more immediate.
21:26:14 <RodgerTheGreat> 'course, it's kinda cool that in #Esoteric it's not unusual for a conversation to occur over several hours or an entire afternoon
21:26:26 <RodgerTheGreat> in ##Nonlogic, most people expect you to be there when you talk to them
21:26:31 <RodgerTheGreat> little social differences
21:30:16 -!- gnilor has left (?).
21:31:07 <RodgerTheGreat> philosophical debates here have less of a tendency to become flamewars here, too.
21:33:36 <bsmntbombdood> i love this channel
21:34:18 <RodgerTheGreat> me too
21:34:29 <RodgerTheGreat> I like 'em both for different reasons
21:39:59 <lament> what's the topic of nonlogic?
21:40:29 <ihope> === ##nonlogic 32 Welcome to ##nonlogic | Reinventing the wheel for fun | If you are interested in an account, please read the tour: http://nonlogic.org/index.php?tour | For information about the Nonlogic TextCast, join ##nonlogic-textcast | "IRC Isn't a Dump Truck!" http://nonlogic.org/dump/
21:40:39 <ihope> I have no idea.
21:42:02 <RodgerTheGreat> lol
21:43:06 <lament> i mean conversation topic
21:43:19 <lament> what's its reason for existance
21:43:28 <bsmntbombdood> goodbye lament
21:43:35 <bsmntbombdood> now i have that song stuck in my head
21:46:15 <pikhq> It's the chat room for Nonlogic.
21:56:52 <Sukoshi> Your mom's Nonlogic.
21:57:59 <RodgerTheGreat> ?
21:58:53 <Sukoshi> Sorry, it had to be done :D
21:59:35 <RodgerTheGreat> lol
21:59:49 <RodgerTheGreat> what've you been up to these days, Sukoshi?
22:00:27 <Sukoshi> RodgerTheGreat: In this order: Studying my butt off for exams, summarily getting completely demotivated about schoolwork, hacking some electric projects, playing some games, starting some dev projects for the summer.
22:01:59 <RodgerTheGreat> sounds vaguely similar to my summer so far
22:02:40 <RodgerTheGreat> I'm taking some summer courses up here at MTU, working on a couple games and other projects, and generally slowly decompressing from the frenetic pace of finals
22:03:05 <Sukoshi> All my projects this summer are Lisp projects. I do intend to take on one Java project and maybe a C project though.
22:03:30 <RodgerTheGreat> in two weeks I get to start a cryptography course- it should be a lot of fun and provide me with a lot of ideas for small coding projects
22:03:59 <RodgerTheGreat> do you have a Java plugin for you browser?
22:07:20 <Sukoshi> I think so.
22:07:35 <RodgerTheGreat> then have a look at this: http://rodger.nonlogic.org/games/CRPG/
22:07:48 <RodgerTheGreat> it's kinda buggy at the moment, but I'm extremely pleased with it so far
22:08:23 <Sukoshi> My projects: A Lisp IRC Client that works on numerous graphical backends (one of which is Curses), A Lisp 2D Strategy RPG with an epic storyline, A Lisp IRC bot, a Java (?), a C (?).
22:08:39 <RodgerTheGreat> interesting
22:09:37 <RodgerTheGreat> if you have any need for graphics for your RPG, look no further. Give me a week or two and I can whip up anything you want. :D
22:09:53 <Sukoshi> Ohhh.. I do!
22:10:09 <Sukoshi> Hmm. Would you like to help with the story too?
22:10:17 <Sukoshi> (And you can help Lisp along too, if you know enough Lisp)
22:10:48 <RodgerTheGreat> possibly
22:10:54 <Sukoshi> Today my goal is to make a rough mapper using some tilesets online (but make it open to any tileset, obviously) for some tilemaps.
22:10:55 <RodgerTheGreat> I have *some* writing skills
22:11:09 <Sukoshi> SDL is the graphics library.
22:11:14 <RodgerTheGreat> what tileset size/style are we talking?
22:11:39 <Sukoshi> Size: Variable. Style: PNG, put in a large tile block.
22:11:40 <RodgerTheGreat> square, rectangular, isometric, 8x8, 16x16, 32x32, larger, smaller...
22:11:46 <RodgerTheGreat> haha
22:11:47 <Sukoshi> Square.
22:12:12 <Sukoshi> Well, I may or may not convert it to BMP.
22:12:45 <Sukoshi> Because LISPBUILDER-SDL-IMAGE does not work on CLISP for Mac.
22:13:11 <Sukoshi> (But it does with SBCL for Mac.)
22:14:24 <RodgerTheGreat> oh, excellent
22:14:41 <RodgerTheGreat> have you looked at my CRPG project yet?
22:17:41 <Sukoshi> Err, not yet.
22:17:51 <Sukoshi> I'm playing a bit with SDL and my sister.
22:17:58 <Sukoshi> (My sister being the more demanding of the two.)
22:18:04 <RodgerTheGreat> lol
22:18:25 <lament> what's nonlogic?
22:19:49 <RodgerTheGreat> an online development community
22:20:08 <RodgerTheGreat> basically, a hangout for a bunch of renegade software and hardware hackers
22:22:52 <Sukoshi> It's what your mom is, lament.
22:23:00 <lament> RodgerTheGreat: that doesn't really explain anything.
22:23:18 <Sukoshi> Does my explanation help, lament ?
22:23:21 <lament> Sukoshi: no.
22:23:27 <Sukoshi> lament: Good :)
22:23:34 <RodgerTheGreat> lament: what kind of explanation are you asking for, then?
22:23:36 <pikhq> Bunch of coders together, with a shell server to bind them.
22:23:45 <Sukoshi> In the darkness bind them, pikhq.
22:23:52 <pikhq> Well, yes.
22:24:00 <pikhq> A Debian terminal is pretty dark, after all.
22:24:01 <RodgerTheGreat> yeah, the intertron is rather dark most of the time
22:24:04 <Sukoshi> One shell to rule them all, and in the darkness bind them -- Old UNIX mainframes.
22:24:06 <lament> well, that there's a shell server helps.
22:24:14 <lament> So it's a channel for people who know each other outside IRC?
22:24:21 <pikhq> Not quite.
22:24:36 <lament> do you see now that the explanation wasn't satisfactory? :)
22:24:37 <pikhq> Although the founders, near as I can tell, are at college together.
22:25:46 <RodgerTheGreat> some of us
22:27:29 -!- poiuy_qwert has joined.
22:29:09 <poiuy_qwert> how can i upload something to the files archive?
22:29:14 <bsmntbombdood> i laugh at you and your formal educations
22:29:48 <Sukoshi> Yeah. You can be the hippy outside who wants to abolish college ;)
22:29:56 <RodgerTheGreat> <:/
22:30:03 <RodgerTheGreat> no respect for my hard work
22:30:27 <RodgerTheGreat> Sukoshi: did you ever decide where you wanted to go for college? or at all?
22:31:56 <Sukoshi> RodgerTheGreat: I'm gonna be applying to MIT out of fluke, CalTech, Berkeley and a few other UCs, and Urbana-Champaign.
22:32:25 * pikhq still needs to figure out more places to apply. . .
22:32:33 <RodgerTheGreat> pretty good universities.
22:32:40 <pikhq> MIT I will apply to, just in case they go mad there. . .
22:32:49 <Sukoshi> Exactly.
22:33:06 <pikhq> One will at least hope that a 30 on the ACT helps.
22:33:07 <Sukoshi> Well, UCs are local for me.
22:33:09 <RodgerTheGreat> Sukoshi, pikhq: there *is* always michigan tech- we're kinda out of the way, but it's a fantastic place to be
22:33:15 <RodgerTheGreat> </ shameless plug>
22:33:17 <Sukoshi> Heh.
22:33:27 <Sukoshi> UCs are local, so that makes the barrier that much smaller.
22:33:35 <pikhq> UCs?
22:33:51 <pikhq> University of California?
22:33:55 <Sukoshi> Yeah.
22:34:10 <Sukoshi> I'm guaranteed a UC of some middling-sort, but I'm shooting for the top, of course.
22:34:20 <pikhq> Well, if I aim for *local*, then I'd be hitting either Colorado University, or Colorado State. . .
22:34:25 <Sukoshi> Ouch >_>
22:34:32 <Sukoshi> Yeah, our local universities are quite nice.
22:34:49 <lament> "shooting for the top, of course"?
22:34:49 <pikhq> And I'm already guaranteed acceptance into those, in spite of my *horrible* grades.
22:38:19 <Sukoshi> Well, UC has a range of universities.
22:38:28 <Sukoshi> Why not shoot for the top, since they're local?
22:39:24 <lament> more work
22:39:33 <RodgerTheGreat> haha
22:39:38 <lament> more nerd students who don't want to have fun
22:39:39 <Sukoshi> Heh. I have a ``better than everyone else, <expletive>'' ethic in me.
22:39:48 <lament> oh, okay well.
22:39:50 <bsmntbombdood> i would so like to go to mit
22:39:54 <RodgerTheGreat> "remember, students- it's only your future!"
22:41:34 <lament> RodgerTheGreat: yes, universities like to overestimate their own importance.
22:41:37 * pikhq has a "Meh; just shove me somewhere I can learn something" ethic
22:43:26 <poiuy_qwert> how can i upload something to the esoteric files archive?
22:44:58 <RodgerTheGreat> back on the topic of tilesets, this is the (in progress) tileset for the game I'm currently working on: http://rodger.nonlogic.org/images/tiles.gif
22:45:33 <RodgerTheGreat> I've taken great care to maintain a resemblance to a certain gameboy game, for largely satirical purposes. :)
22:46:27 * Sukoshi does not recognize the game :P
22:46:34 <RodgerTheGreat> aw, c'mon!
22:47:36 <RodgerTheGreat> it involved teenaged protagonists wandering aimlessly through a sprawling world, collecting weird animals and trapping them in spherical storage devices.
22:48:51 <lament> what is the tileset for?
22:49:06 <Sukoshi> Ok, then my hunch was right.
22:49:09 <RodgerTheGreat> lament: do you actually read what I type?
22:49:10 <Sukoshi> Hey, I love Pokemon!
22:49:16 <RodgerTheGreat> :D
22:49:19 <Sukoshi> (I still play it on my DS.)
22:49:22 <lament> RodgerTheGreat: i started reading at 14:43 local time
22:50:30 <RodgerTheGreat> essentially, it's going to be a comedic adventure game starring the main characters from a cartoon strip I draw for a campus newsletter
22:51:04 <RodgerTheGreat> behold the titlescreen!
22:51:05 <RodgerTheGreat> http://www.nonlogic.org/dump/images/1182548991-title.png
22:59:04 <Sukoshi> Well now, ImageMagic obviously fails at producing BMPs.
22:59:15 <lament> for a reason.
22:59:32 <Sukoshi> Wow. It can convert SVG to PNG, and SVG to EPS, but not PNG to BMP.
22:59:41 <lament> BMP is not a format anybody uses.
22:59:41 <RodgerTheGreat> :/
22:59:52 <RodgerTheGreat> I use bmp from time to time
23:00:10 <RodgerTheGreat> GIF and PNG are just as good for pixel art, though, and they're lower bandwidth
23:00:24 <Sukoshi> That means I have to download and compile SDL_Image.
23:00:26 <Sukoshi> Grrrr.
23:00:39 <RodgerTheGreat> what are you trying to do, exactly?
23:01:50 <Sukoshi> Get SDL to load a PNG.
23:02:32 <RodgerTheGreat> I meant, on a more macro sense. That problem seemed fairly clear.
23:02:57 <Sukoshi> Heh.
23:03:00 <Sukoshi> The mapper.
23:03:09 <RodgerTheGreat> ah, I see
23:03:12 <Sukoshi> I'm gonna set up a Lisp mapper, and if I have time, I'll start on a rough inspector.
23:04:21 <RodgerTheGreat> when I started writing my game engine in Java, I found it immensely useful to build modular classes for storing and drawing map data. Map editors necessarily share a *lot* of basic code
23:04:33 <RodgerTheGreat> with the game engine, that is
23:04:37 <Sukoshi> Well, yeah.
23:04:48 <Sukoshi> But there's a difference in coding style in Lisp and Java (and any other static language).
23:04:54 <RodgerTheGreat> naturally
23:05:04 <Sukoshi> The modularity is much more built into Lisp.
23:05:29 <Sukoshi> I'm gonna implement the mapper in the game too, so that way, I can edit on the fly.
23:05:38 <Sukoshi> Which is not very hard, thanks to Lisp.
23:05:38 <RodgerTheGreat> in Java, it's pretty much dictated by how careful you are with your object oriented design
23:05:52 <RodgerTheGreat> probably an excellent idea
23:05:55 <Sukoshi> And inspectors alwayz r00l.
23:06:12 <Sukoshi> Inpsectors must be pretty difficult to code in static languages.
23:06:25 <RodgerTheGreat> the main advantage I had to keeping mine separate was that breaking one accidentally still left me able to work on the other when I became frustrated
23:06:43 -!- oerjan has joined.
23:06:53 <RodgerTheGreat> what exactly do you mean by "inspector"? Unit testing?
23:07:07 <Sukoshi> It's something which lets you play around with objects in real time.
23:07:12 <RodgerTheGreat> ah,
23:07:17 <RodgerTheGreat> like an interactive debugger
23:07:23 <Sukoshi> Yeah, except it is lots of fun.
23:07:40 <RodgerTheGreat> haha- I can imagine
23:07:42 <Sukoshi> For example: You open the inspector, select your main character, and then edit some of his stats to test some edge cases in the battle system.
23:08:10 <RodgerTheGreat> short-circuiting the compile-test-edit-repeat workflow
23:08:23 <Sukoshi> Lisp never works like that.
23:08:42 <RodgerTheGreat> some of this stems from the fact that you're using an interpreted language, versus my compiled one
23:08:45 <Sukoshi> Lisp's workflow is code-test-edit-(if you need to recode in an editor).
23:08:54 <Sukoshi> Nah. Lisp is JIT compiled.
23:09:03 <Sukoshi> That's what makes it so incredible :)
23:09:37 <RodgerTheGreat> JIT is effectively the same as interpreted from a workflow perspective- it's just an abstraction layer that makes things more zippy
23:10:18 <Sukoshi> True.
23:10:50 <Sukoshi> That's my main gripe about Java. Why did Sun ditch Smalltalk for Java?
23:10:57 <Sukoshi> I mean, if you have a VM, put it to good use by making it dynamic.
23:11:32 <RodgerTheGreat> they probably wanted to make Java "more like C++", only do it properly.
23:11:34 <Sukoshi> I think the answer there lies more in politics and GET-OFF-MY-LAWN-ness than anything else.
23:11:37 <Sukoshi> Yeah.
23:11:52 <oerjan> how do you run untrusted code safely in Smalltalk?
23:12:17 <RodgerTheGreat> C and it's ilk are so poisonous like that...
23:12:22 <Sukoshi> oerjan: Unlike Lisp, Smalltalk has no top-level forms. So you can branch off the state of the VM to run code.
23:12:42 <Sukoshi> Or, more approriately, Stack unwind.
23:14:52 <ihope> Top-level forms?
23:15:04 <Sukoshi> (defparameter a 3)
23:15:54 <RodgerTheGreat> so, Sukoshi- if you could give me some direction as to what you're looking for, graphically, I could probably find time in the next few days to pound out some sprites and tiles for you
23:16:14 <Sukoshi> RodgerTheGreat: Hmm... Zelda-ish?
23:16:28 <RodgerTheGreat> I can do zelda-ish
23:18:10 <RodgerTheGreat> I made this way back in the day for a DarkBASIC game of mine: http://rodger.nonlogic.org/images/ground.bmp
23:18:39 <Sukoshi> Yeah!
23:18:46 <Sukoshi> Maybe a bit more luminosity on the tiles, though?
23:19:08 <RodgerTheGreat> naturally- I like to think I've become a little better over the years. ;)
23:20:20 <RodgerTheGreat> anything more specific, or should I just kinda wing it?
23:23:34 <Sukoshi> Oooh. This new version of SDL is a lot more speedy.
23:23:41 <Sukoshi> Hmmm RodgerTheGreat.
23:23:48 <Sukoshi> Well, would you mind listening to the story mishmash?
23:23:59 <Sukoshi> (It's not even a concept yet, because I don't have it congealed enough.)
23:24:07 <RodgerTheGreat> sure thing- I'm all ears
23:25:10 <Sukoshi> So the initial setting is that the main character's Ham's (the equivalent to a medieval demense) Noble has decided to enter the current war for throne succession.
23:26:03 <Sukoshi> So, basically, the intro starts out with a few skirmishes (I may make this tactical style, but right now I'm leaning to Zelda-ish strategy style).
23:26:39 <Sukoshi> Then in the battle heat, the main character suddenly gets a vision, of two groups of people, fighting each other in a war much like this. And he wonders the significance.
23:27:13 <Sukoshi> Yeah, that's all I have concrete 'till now :P. But the story involves world travelling, layers of manipulation, an old race, etc.
23:27:23 <RodgerTheGreat> haha
23:27:33 <RodgerTheGreat> sounds like zelda meets chronotrigger
23:27:55 <Sukoshi> Similar, except you have to add Tactics, and Katherine Kerr's novels to the mix.
23:28:03 <RodgerTheGreat> gotcha
23:28:04 <Sukoshi> And some Modesitt.
23:28:27 <Sukoshi> (The civil war in his mind is a civil war between his race, and the companions to his race, these companions not anymore present in his ``world''.)
23:29:05 <RodgerTheGreat> so, what are you looking for in terms of artistic style and the feel of the setting?
23:29:08 <Sukoshi> Portions of the civil war were influenced by the splinter race (in a much better technological state) to wreak revenge upon their old brethren.
23:29:55 <Sukoshi> Well -- two tilesets. One is medieval gothic finery, and the other is modern (not too techy) SF.
23:30:04 <RodgerTheGreat> ok
23:30:09 <RodgerTheGreat> sounds pretty doable
23:31:56 <RodgerTheGreat> how about character design?
23:32:40 <Sukoshi> Robes.
23:33:00 <RodgerTheGreat> Robes.
23:33:10 <Sukoshi> One half Old-Christian-Robe style, the rest should be old Arab robe style.
23:33:17 <Sukoshi> Clothing-wise, I mean.
23:33:24 <RodgerTheGreat> alright
23:33:31 <Sukoshi> Other than that ... nothing too descrptive on the body features.
23:34:06 * RodgerTheGreat cracks his knuckles and searches for his drawin' stick
23:36:02 <RodgerTheGreat> any specific characters I should try to cover?
23:39:42 <Sukoshi> Hmmm...
23:39:48 <Sukoshi> Not yet, no.
23:40:04 <RodgerTheGreat> alright
23:40:45 <RodgerTheGreat> well, I'll be back in a bit, and then I'll devote a little time to coming up with a tiling model
23:46:15 <Sukoshi> Do you know offhand the size of an RPG Maker tile?
23:46:40 <Sukoshi> 32x32, it seems.
2007-06-23
00:03:14 <RodgerTheGreat> back
00:03:26 <RodgerTheGreat> any reason for using RPGMaker as a reference?
01:06:46 -!- boily has joined.
01:23:33 <SimonRC> RodgerTheGreat: Your "CRPG" crashes whenever i enter the nearby building.
01:30:25 -!- sebbu has quit ("@+").
01:33:09 -!- boily has quit ("WeeChat 0.2.5").
01:33:18 <Sukoshi> RodgerTheGreat: Because I was lifting a tileset from it.
01:55:34 <oerjan> it could pick a nick randomly first
01:55:40 <oerjan> !"#
02:02:24 <SimonRC> oerjan: ???
02:02:58 <oerjan> i still haven't got the hang of being on more than one channel at once :(
02:06:02 <oerjan> and alt-up apparently is _not_ a safe way to ensure you are in the upper window - it rotates.
02:34:46 <RodgerTheGreat> Sukoshi: yeah, I'm aware of that bug- I recalculate the map "window" coordinates improperly when the player teleports somewhere else on the map. I've pretty much fixed it, but the fix will have to wait until I upload a new version of the applet
03:42:03 <ihope> Yay, I landed in a channel other than the one I meant to land in!
03:42:39 -!- erider has quit ("I don't sleep because sleep is the cousin of death!").
03:42:45 <ihope> I've decided that two-dimensional memory won't do.
03:42:56 <ihope> Three dimensions are required for ultimate happiness, or something.
03:43:11 <ihope> Preferably, infinitely many dimensions.
03:43:46 * oerjan points ihope to Infinifuck, or what ever it was called.
03:44:29 <RodgerTheGreat> Dimensifuck?
03:44:38 <RodgerTheGreat> the one that has tree-shaped memory?
03:44:38 <oerjan> that was it
03:46:40 <ihope> ...can that be explained a bit more... betterly?
03:47:10 <oerjan> what is it you don't understand?
03:47:49 <ihope> "Starts moving positively on the dimension to be operated on if and only if the current cell is nonzero."
03:48:03 <RodgerTheGreat> yeah, I recall when dimensifuck was being created
03:48:07 -!- erider has joined.
03:48:15 <RodgerTheGreat> I think I was playing with DoubleFuck at the time
03:48:30 <oerjan> yes, there was some confusion on the acronym DF
03:48:33 <RodgerTheGreat> Dimensifuck is a confusing little language
03:48:47 * ihope ponders... arbitrary-width zippable tree memory
03:48:54 <RodgerTheGreat> (and I've conquered Dupdog, damnit!)
03:51:03 <oerjan> ihope: as i recall, in Dimensifuck the coordinates of a cell is an infinite list of integers. The "dimension to be operated on" is an integer index for a special position in that list.
03:51:33 <RodgerTheGreat> Does it still use "IP address style" dimension indexing like I originally suggested?
03:52:05 <oerjan> there are periods between the coordinates, yes
03:52:33 <RodgerTheGreat> woo
03:52:49 <ihope> But... *starts* moving?
03:53:04 <ihope> How often does it move, and when does it stop?
03:53:26 <oerjan> it moves one step each instruction, but the direction can change as in Befunge.
03:55:28 <oerjan> this refers to the movement of the code pointer, i think. I am not quite sure but it seems like data is still a one-dimensional tape.
03:56:11 <oerjan> as in Brainfuck.
03:56:57 <RodgerTheGreat> yeah
04:01:16 * oerjan ponders if ihope is also having trouble with two channels at a time.
04:01:38 <ihope> Nah.
04:15:51 <RodgerTheGreat> 'night, all
04:17:44 -!- RodgerTheGreat has quit.
04:19:25 -!- poiuy_qwert has quit.
05:00:53 -!- ihope has quit (Read error: 110 (Connection timed out)).
05:44:09 <Sukoshi> I think ihope is stalking me.
05:44:19 <Sukoshi> He keeps entering channels I'm in that I've never seen him in before.
05:48:48 <SimonRC> he is a resident here and on ##nonlogic
05:49:23 <oerjan> last i checked he was here and on #haskell, and so was i and SimonRC.
05:49:33 -!- c|p has quit ("Leaving").
05:49:59 <SimonRC> oh, yes, there too
05:50:48 <Sukoshi> But he was never on ##otaku or #freeciv before.
05:52:38 <SimonRC> hm
05:52:41 <SimonRC> maybe he is
05:57:16 <oerjan> maybe he is just checking out what channels we others are in. in fact someone suggested today on #haskell to give lambdabot a command to suggest a random channel from the ones people on #haskell were in.
05:57:38 <SimonRC> that could have interesting effects
06:22:03 <Sukoshi> Haskell is for nubs.
06:22:17 * Sukoshi begins waving the Lisp standard and singing the Knights of the Lambda Calculus song.
06:34:19 <oerjan> nub :: Eq a => [a] -> [a]
06:38:15 <oerjan> nubBy(((>1).).gcd)[2..]
07:30:11 <oklopol_> you people talk like crayons
07:30:16 -!- oklopol_ has changed nick to oklopol.
07:31:52 <oklopol> i entered ##nonlogic because it was mentioned
07:31:58 <oklopol> i'm stalkative like that
07:32:01 <oklopol> hihi
07:43:48 <oerjan> btw that last expression was a cool one-liner i learned in #haskell the other day. (more or less, it requires import Data.List)
07:45:56 -!- immibis has joined.
07:46:06 <immibis> someone tell me that this channel is still active
07:46:46 -!- immybo has joined.
07:46:55 <oerjan> it is still active.
07:48:24 <immibis> Could someone please ask someone to ask someone to repeat this request?
07:48:52 <immibis> no, don't really do it
07:48:56 <oklopol> Could someone please ask someone to repeat immibis's request?
07:48:58 <oklopol> :<
07:49:32 <oerjan> !help
07:49:47 <immibis> could oerjan please clarify that command
07:49:53 <oerjan> No Bot today, our Bot has gone away...
07:50:01 <immybo> Could somebody please hit somebody else with a rainbow trout?
07:50:04 <immybo> like this:
07:50:08 * immibis hits immybo with a rainbow trout
07:50:11 * immybo slaps immybo with a rainbow trout
07:50:15 <immybo> OUCH!!!
07:50:20 * immybo slaps immybo with a big red brick
07:50:23 <immybo> YAHH!!!
07:51:05 <immybo> immbis, could you please repeat this request?
07:51:32 <immibis> immibis, could you please repeat this request
07:51:33 <immibis> immibis, could you please repeat this request
07:51:33 <immibis> immibis, could you please repeat this request
07:51:33 <immibis> immibis, could you please repeat this request
07:51:33 <immibis> immibis, could you please repeat this request
07:51:34 <immibis> immibis, could you please repeat this request
07:51:35 <immibis> immibis, could you please repeat this request
07:51:37 <immibis> immibis, could you please repeat this request
07:51:39 <immibis> immibis, could you please repeat this request
07:51:40 -!- immibis has quit (Excess Flood).
07:51:40 <immybo> Please, write the 99 bottles lyrics
07:52:01 -!- immibis has joined.
07:52:10 <immibis> go to hell
07:52:13 <immybo> Uh... immibis, you should'nt do that
07:52:19 <immybo> i mean the repeat
07:52:21 <immybo> NO
07:52:30 <immybo> Uh... immibis, you should'nt do that
07:52:33 <immibis> immybo: i repeated the request to make myself repeat the request to repeat the request to repeat the request....
07:52:37 * immibis is not doing that
07:52:39 <immybo> Please, write the 99 bottles lyrics
07:52:45 <immibis> go to hell
07:53:00 <immibis> immybo, please, write the lyrics to a song that doesn't exist
07:53:23 <immibis> Could someone please ask someone to repeat this request WITHOUT BEING A NOOB AND
07:53:23 <immibis> PUTTING QUOTATION MARKS AROUND IT
07:53:25 <immibis> oops
07:53:29 <immibis> sorry
07:53:31 <immibis> mistake
07:53:38 <immybo> Please, sing 'I know a song that get's on everybody's nerves'?
07:53:41 <oerjan> 99 boxes of Spam (TM) on the wall, 99 boxes of Spam (TM)
07:54:02 <oerjan> Take one down, throw it at immibis's head
07:54:14 <oerjan> 98 boxes of Spam (TM) on the wall!
07:54:24 * immybo puts a forcefield around himself.
07:54:29 <immibis> 98 boxes of Spam (TM)
07:54:40 <immibis> oh wait
07:54:53 * immibis takes down a box of Spam (TM) and throws it at immibis's head
07:55:02 * immybo puts himself in a suit of ancient plate armor
07:55:09 <immibis> immybo, please tell everyone why you did that
07:55:16 <immybo> Just in case...
07:56:09 <immibis> Could someone please ask someone to repeat this request WITHOUT BEING A NOOB AND
07:56:09 <immibis> PUTTING QUOTATION MARKS AROUND IT
07:56:11 <immibis> oops
07:56:12 <immibis> Could someone please ask someone to repeat this request WITHOUT BEING A NOOB AND
07:56:12 <immibis> PUTTING QUOTATION MARKS AROUND IT
07:56:14 * oerjan touches immybo with an electrical cord
07:56:18 <immybo> Take one down, throw it at oerjan's head
07:56:19 <immibis> why does thAT KEEP HAPPENING
07:56:22 <immibis> oops caps lock
07:56:27 * oerjan ducks
07:56:31 <immybo> Take one down, throw it at oerjan's head
07:56:32 <immybo> Take one down, throw it at oerjan's head
07:56:33 <immybo> Take one down, throw it at oerjan's head
07:56:42 <immibis> immybo, please repeat this exact sentence
07:56:45 * immybo gets out a shotgun
07:56:58 * immybo shoots oerjan twice
07:57:02 <immibis> immybo, please repeat this exact sentence
07:57:09 * immybo shoots immibis 200 times
07:57:37 * immybo shoots immibis (100x100) times
07:57:49 <immibis> immybo, please repeat this exact sentence
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:00:05 <immibis> immybo, please repeat this exact sentence
08:00:11 <immybo> no
08:00:42 <immibis> immybo, please ask yourself to repeat this command
08:00:51 <immybo> I will now say 'go to hell' to any stupid sentances
08:01:00 <immybo> forgot how to spell
08:01:11 <immybo> go to hell
08:01:56 <immybo> I will be away, but i will come back about every 5 minutes
08:01:59 <immibis> please quine
08:02:33 -!- immybo has changed nick to immy_awaycominba.
08:02:38 -!- immy_awaycominba has changed nick to immy_cominback.
08:02:50 -!- immibis has left (?).
08:03:02 -!- immibis has joined.
08:03:11 <immibis> i forgot
08:03:15 <immibis> immibis, please leave the channel
08:03:16 -!- immibis has left (?).
08:07:21 <immy_cominback> Im back
08:07:49 * immy_cominback renews the forcefield around him
08:08:17 -!- immibis has joined.
08:08:22 * immy_cominback gets a shock from the electric cord in his forcefield
08:08:27 <immy_cominback> bzzzzzzzzzzz
08:08:33 <immy_cominback> YARHH!!!
08:08:41 -!- immy_cominback has changed nick to immybo_dead.
08:08:58 <immibis> immybo, stop being sill
08:08:59 <immibis> y
08:09:07 -!- immybo_dead has changed nick to immybo.
08:09:21 <immybo> ?
08:09:53 <immybo> I am a bot, you may program me in ImmyboProgrammingLanguage (IPL)
08:10:26 -!- immybo has changed nick to Pretend_Bot.
08:11:16 <immibis> hmm
08:11:19 <immibis> hum
08:11:46 <immibis> pretend_bot: while(true) {SelfDestruct();}
08:12:06 <oklopol> !½!!
08:12:41 <immibis> oklopol: Please clarify the command
08:13:04 <oklopol> !käännä tämä lause englanniksi.
08:13:25 <oklopol> Hope that serves your will.
08:16:59 <immibis> oklopol: Please speak english
08:17:23 <oklopol> I shall reverse that, then.
08:17:38 <oklopol> !Please translate this into Finnish.
08:19:44 <oklopol> I had this dream I was in the Idols auditions.
08:19:58 <oklopol> Just improvising randomly
08:20:26 <oerjan> That was no dream. I saw it on TV.
08:20:38 <oklopol> Oh :\ You have Finnish TV?
08:20:48 <oerjan> i might have.
08:21:26 <oklopol> Indeed you might.
08:21:49 <oklopol> I also had a dream where I was a ghost of some sort... and killed people by going inside them.
08:21:59 <oklopol> That real as well?
08:22:30 <oerjan> Yeah, it was a _really_ bad Idols audition.
08:23:44 <oklopol> Also, in one dream I put a bottle of ED (an energy drink) into a freezer... turned out the freezer was set to cold enough to kill anyone going near it... so I had to take it out using long kitchen forks
08:24:15 <immibis> oklopol: this computer does not display finnish text
08:24:55 <oklopol> Heh, last night me and a friend decided to walk 40 km... started at midnight... by the end of the trip I was actually having short dreams while walking :DD
08:25:37 <oklopol> I would just turn to him and ask why he was still carrying the knife, "you should just have left it at home"
08:26:16 <oklopol> Of course I walked off road when falling asleep, but amazingly kept walking.
08:27:22 <oklopol> immibis: it's just you have a different scheme for showing umlauted text
08:27:23 <oerjan> i have this recollection you told that carrying knives was illegal in finland.
08:28:08 <oklopol> That's true, you can't do that in the cityish parts.
08:28:17 <immibis> oklopol: !½!! shows up on my computer as !(a with a hat thing)(one half symbol)!!
08:28:30 <oklopol> immibis: that's exactly what it was.
08:30:19 <oklopol> oerjan: no one is going to care if you carryh a knife, but the police will ask you what the fuck you are doing if you carry a sword.
08:30:46 <immibis> lol
08:30:52 <oklopol> Happened to a friend of mine, but he got away with it, just told the police he was going to practise.
08:31:01 <immibis> everyone, isn't this off-topic?
08:31:43 <oklopol> immibis: yes, but this channel rarely discourages off-topic conversation if nothing else is going on
08:32:16 <oerjan> i think it's illegal in Oslo too. well, for what i know it may be illegal here in Trondheim.
08:33:02 <Sukoshi> immibis: Isn't your mom off-topic?
08:34:52 <immibis> sukoshi, say yes if your mom is off-topic
08:34:59 <immibis> sukoshi, otherwise say no
08:35:04 <immibis> pretend_bot: while(true) {SelfDestruct();}
08:35:33 <Sukoshi> immibis: Maybe.
08:35:47 <Pretend_Bot> BOOMBOOMBOOM... etc
08:36:01 <immibis> Pretend_Bot: You should have done /me explodes
08:37:34 <immibis> Pretend_Bot: /* Program to draw an infinite number of squares */
08:37:34 <immibis> Pretend_Bot: int i=1;
08:37:34 <immibis> Pretend_Bot: start_drawing(Black);
08:37:34 <immibis> Pretend_Bot: while(true)
08:37:34 <immibis> Pretend_Bot: {
08:37:34 <immibis> Pretend_Bot: repeat(4)
08:37:36 <immibis> Pretend_Bot: {
08:37:38 <immibis> Pretend_Bot: move(i);
08:37:40 <immibis> Pretend_Bot: turn(90);
08:37:42 <immibis> Pretend_Bot: }
08:37:44 <immibis> Pretend_Bot: i=i+1;
08:37:46 <immibis> Pretend_Bot: i=i*i;
08:37:48 <immibis> Pretend_Bot: }
08:42:25 <Pretend_Bot> WARNING...
08:42:30 <Pretend_Bot> BOMMM
08:42:32 <Pretend_Bot> BOOMM
08:42:38 <Pretend_Bot> BBOOOOMM
08:42:43 <immibis> Pretend_Bot: Just draw them
08:42:54 <Pretend_Bot> BBBBBBBBOOOOOOOOOOOOOOOOMMMMMMMM
08:43:14 * Pretend_Bot draws a circle in pink one time
08:43:25 <immibis> Please, write the 99 bottles lyrics
08:43:31 <immibis> i said black
08:43:39 <Pretend_Bot> go to hell
08:44:09 <immibis> change_color(Black);
08:44:17 <immibis> draw_circles(infinite)
08:44:44 <immibis> * Pretend_Bot draws a circle in pink one time - you were meant to draw squares in black an infinite number of times
08:45:14 * Pretend_Bot draws a circle in pink one time
08:49:04 <immibis> no, Pretend_Bot draws a circle in BLACK an INFINITE number of times
08:49:20 <immibis> should I bring my (very funny) bot on this channel?
08:50:30 <oklopol> yes.
08:51:15 <immibis> loading......
08:51:26 -!- WaiterBot has joined.
08:51:43 <Pretend_Bot> !c
08:51:59 <immibis> !c
08:52:05 <immibis> !c *
08:52:05 * WaiterBot is making a coffee in an office mug with cold milk * for immibis
08:52:06 * WaiterBot gives immibis a coffee in an office mug with cold milk *
08:52:11 <immibis> !c -mcold
08:52:11 * WaiterBot is making a coffee in an office mug with cold milk for immibis
08:52:12 * WaiterBot gives immibis a coffee in an office mug with cold milk
08:52:13 <Pretend_Bot> !c -mhot -s5 -z6
08:52:13 * WaiterBot is making a coffee with 5 sugars in a bucket with hot milk for Pretend_Bot
08:52:16 * WaiterBot gives Pretend_Bot a coffee with 5 sugars in a bucket with hot milk
08:52:16 <immibis> !c --help
08:52:17 * WaiterBot is making a coffee in an office mug with cold milk for immibis
08:52:18 * WaiterBot gives immibis a coffee in an office mug with cold milk
08:52:23 <immibis> !c --help
08:52:23 * WaiterBot is making a coffee in an office mug with cold milk for immibis
08:52:24 * WaiterBot gives immibis a coffee in an office mug with cold milk
08:52:30 <Pretend_Bot> !c -mhot -s5 -z6
08:52:30 * WaiterBot is making a coffee with 5 sugars in a bucket with hot milk for Pretend_Bot
08:52:33 * WaiterBot gives Pretend_Bot a coffee with 5 sugars in a bucket with hot milk
08:52:50 <immibis> !c -zbottle --other=message -s0 -mlots_of (which says "Hello everyone!")
08:52:50 * WaiterBot is making a message in a bottle with lots of milk (which says "Hello everyone!") for immibis
08:52:50 * WaiterBot gives immibis a message in a bottle with lots of milk (which says "Hello everyone!")
08:52:52 <oklopol> okay, i'll start coding after this episode
08:53:03 <immibis> start coding what?
08:53:15 <immibis> !p #esoteric
08:53:15 -!- WaiterBot has left (?).
08:53:58 <oklopol> my 4d ping pong
08:54:02 <immibis> 4d?
08:54:22 <oklopol> yeah
08:54:37 <immibis> as in, 4-dimensional?
08:54:42 <oklopol> yeah
08:55:30 <oklopol> as long as the cam stays static, a human can play it
08:55:47 <immibis> and if it moves?
08:55:55 <oklopol> you could even do perfect 5d with 2d projection + sound
08:55:57 <immibis> in the X, Y, or Z direction
08:56:15 <immibis> if it moves in the 4th dimension does that make it display a different game?
08:56:16 <oklopol> immibis: xyz-moves do not make it harder to understand
08:56:37 <immibis> i mean, if it moves in 3d space, does it act normally
08:56:37 <oklopol> no, it's just the human brian does not understand a 4d rotation
08:56:44 <oklopol> *brain
08:56:52 <immibis> then how are you going to know it works?
08:56:56 <oklopol> ?
08:57:23 <oklopol> 4d is in no sence magical, i can _look_ at it..
08:57:35 <oklopol> and see if it's right
08:57:42 <oklopol> color+sound for 4th dimension
08:57:53 <oklopol> even though you only need either of them
08:57:54 -!- WaiterBot has joined.
08:57:58 * oerjan realizes oklopol just claimed not to be human
08:58:04 <oklopol> oerjan: no
08:58:24 <oklopol> i said you need to be a superhuman to understna d a 4d rotation
08:58:26 * WaiterBot is making a message in a bottle with lots of milk for this channel
08:58:26 * WaiterBot is making a message in a bottle with lots of milk for #esoteric
08:58:26 * WaiterBot gives everyone in this channel a message in a bottle with lots of milk
08:58:27 * WaiterBot gives #esoteric a message in a bottle with lots of milk
08:58:30 <oklopol> *understand
08:58:42 * WaiterBot is making a bottle in a message with lots of milk for this channel
08:58:42 * WaiterBot is making a bottle in a message with lots of milk for #esoteric
08:58:42 * WaiterBot gives everyone in this channel a bottle in a message with lots of milk
08:58:43 * WaiterBot gives #esoteric a bottle in a message with lots of milk
08:58:52 <immibis> what the...a bottle in a message?
08:59:20 * WaiterBot is making a bottle in a message with cold milk for ##nonlogic
08:59:25 * WaiterBot gives ##nonlogic a bottle in a message with cold milk
08:59:30 <oklopol> the 4th dimension is visible in the game the same way it's visible in old simcities
08:59:34 <oklopol> ...
08:59:40 <immibis> old simcities has 4 dimensions?
08:59:41 <oklopol> i mean the same way 3d is visible in those
08:59:56 <oklopol> it's looked at from an infinite sidtance
08:59:58 <oklopol> *distance
09:00:49 -!- WaiterBot has left (?).
09:01:24 -!- WaiterBot has joined.
09:01:26 * WaiterBot is making a coffee in an office mug with cold milk for this channel
09:01:27 <oklopol> i guess i need to do 4-dimensional vector calculations for spins though
09:01:30 * WaiterBot is making a coffee in an office mug with cold milk for #esoteric
09:01:34 * WaiterBot gives everyone in this channel a coffee in an office mug with cold milk
09:01:36 * WaiterBot gives #esoteric a coffee in an office mug with cold milk
09:01:42 <oklopol> even though drawing only requires trivial 3d projection
09:01:53 <immibis> 4d rotation?
09:01:57 <oklopol> trivial, because you cannot do _any_ rotations
09:02:02 <oklopol> not even 3d rotations
09:02:07 <oklopol> not even 2d rotations
09:02:15 <oklopol> not even 1d rotations
09:02:23 <oklopol> (whatever those are)
09:02:40 <oklopol> immibis: no one can explain a 4d rotation for you
09:02:43 <oerjan> identity
09:03:05 <oklopol> i'm pretty sure i can somewhat imagine a 4d rotation, but it's kinda vague...
09:03:28 <oklopol> oerjan: true, i shall make it do 1d rotations, then :)
09:05:28 <oklopol> oerjan: actually i thing a one-d rotation is "asdfer -> refdsa"
09:05:32 <oklopol> *think
09:05:52 <oerjan> that's a reflection
09:06:09 <oklopol> i have a theory about the number of different degrees of rotations numbers of dimensions enable
09:06:38 <immibis> pretendbot, please repeat this command exactly
09:06:48 <oerjan> they are distinguished by rotations having matrix determinant 1, while reflections have -1.
09:07:16 <immibis> pretendbot, please unplug your computer
09:07:27 <oklopol> oerjan: the reason i haven'
09:07:29 <oklopol> ..
09:07:56 * WaiterBot is making a coffee in an office mug with lots milk for oklopol
09:07:56 * WaiterBot gives oklopol a coffee in an office mug with lots milk
09:08:02 * WaiterBot is making a coffee in an office mug with lots of milk for oklopol
09:08:08 * WaiterBot gives oklopol a coffee in an office mug with lots of milk
09:08:10 <oklopol> oerjan: the reason i haven't written down my theory is exactly the fact anyone who knows _anything_ about math can _prove_ it and would find it trivial
09:08:25 <oklopol> i just have a hunch and an imagination.
09:08:33 * WaiterBot is making a message in a bottle with lots of milk for oklopol
09:08:33 * WaiterBot gives oklopol a message in a bottle with lots of milk
09:08:45 <oklopol> WaiterBot: very thank.
09:08:51 <oerjan> (i don't quite remember if determinant 1 is enough to give a rotation in all dimensions, but i guess so.)
09:08:56 * WaiterBot is making a message in a bottle with lots of milk (the message is going to disintegrate soon because of the milk) for oklopol
09:09:01 * WaiterBot gives oklopol a message in a bottle with lots of milk (the message is going to disintegrate soon because of the milk)
09:09:18 * WaiterBot is making a writing in a message with cold milk for immibis
09:09:19 * WaiterBot gives immibis a writing in a message with cold milk
09:09:49 <WaiterBot> oklopol dies from too much coffee
09:09:50 <oklopol> i don't really know what a determinant is... well, i can calculate it and i know it's some sort of an abs()... but that's it
09:10:03 <oklopol> it's not my friend
09:10:49 <oklopol> just a casual acquaintance
09:17:58 * WaiterBot is making a decaf espresso coffee with an infinite number of sugars in a bathtub with purple pulsating milk for ##esoteric
09:18:03 * WaiterBot spills ##esoteric's coffee into a Magnetic Laser Device
09:18:13 * WaiterBot gives ##esoteric a magnetic decaf espresso coffee with an infinite number of sugars in a bathtub with purple pulsating milk which is emitting lots of blue light and a barely audible hum
09:18:16 * WaiterBot is making a decaf espresso coffee with an infinite number of sugars in a bathtub with purple pulsating milk for this channel
09:18:22 * WaiterBot is making a decaf espresso coffee with an infinite number of sugars in a bathtub with purple pulsating milk for #esoteric
09:18:27 * WaiterBot spills the channel's coffee into a Magnetic Laser Device
09:18:29 * WaiterBot spills #esoteric's coffee into a Magnetic Laser Device
09:18:34 * WaiterBot gives everyone in this channel a magnetic decaf espresso coffee with an infinite number of sugars in a bathtub with purple pulsating milk which is emitting lots of blue light and a barely audible hum
09:18:37 -!- Pretend_Bot has changed nick to immybo.
09:18:37 * WaiterBot gives #esoteric a magnetic decaf espresso coffee with an infinite number of sugars in a bathtub with purple pulsating milk which is emitting lots of blue light and a barely audible hum
09:19:33 -!- sebbu has joined.
09:19:47 * WaiterBot is making a decaf espresso coffee with an infinite number of sugars in a bathtub with purple pulsating milk for sebbu
09:19:50 * WaiterBot spills sebbu's coffee into a Magnetic Laser Device
09:19:58 * WaiterBot gives sebbu a magnetic decaf espresso coffee with an infinite number of sugars in a bathtub with purple pulsating milk which is emitting lots of blue light and a barely audible hum
09:21:24 <sebbu> ?
09:21:43 * WaiterBot is making a coffee in an office mug with cold milk for sebbu
09:21:45 * WaiterBot gives sebbu a coffee in an office mug with cold milk
09:22:29 <sebbu> !stop
09:22:32 <sebbu> ?stop
09:23:01 <immibis> !p #esoteric
09:23:01 -!- WaiterBot has left (?).
09:30:47 -!- WaiterBot has joined.
09:30:54 * WaiterBot is making a coffee in an office mug with cold milk for immibis
09:30:55 * WaiterBot gives immibis a coffee in an office mug with cold milk
09:30:58 * WaiterBot is making a coffee in an office mug with cold milk for immibis
09:31:02 * WaiterBot gives immibis a coffee in an office mug with cold milk
09:32:10 -!- WaiterBot has quit (Nick collision from services.).
09:32:45 -!- WaiterBot has joined.
09:33:15 * WaiterBot is making a coffee in an office mug with cold milk for immibis
09:33:16 * WaiterBot gives immibis a coffee in an office mug with cold milk
09:33:28 -!- WaiterBot has quit (Read error: 104 (Connection reset by peer)).
09:33:41 <immibis> debugging - sorry
09:33:43 -!- WaiterBot has joined.
09:33:53 -!- oerjan has quit ("Lunch").
09:33:53 * WaiterBot is making a coffee in an office mug with cold milk for immibis
09:33:54 * WaiterBot gives immibis a coffee in an office mug with cold milk
09:34:28 -!- WaiterBot has quit (Remote closed the connection).
09:34:35 <immybo> Bye.
09:34:42 -!- immybo has left (?).
09:34:51 -!- WaiterBot has joined.
09:35:26 <WaiterBot> <immibis> bye
09:35:30 <WaiterBot> bye
09:35:32 -!- WaiterBot has quit (Read error: 104 (Connection reset by peer)).
09:35:36 -!- immibis has quit ("A day without sunshine is like .... night").
10:20:57 <oklopol> i wish there was _something_ that supported sound
10:21:15 <oklopol> there isn't really _anything_ you can make sound with
10:23:50 <oklopol> well, i guess assembly
11:49:19 -!- wufwuf has joined.
12:30:08 -!- wufwuf has left (?).
14:13:22 -!- ihope has joined.
14:16:29 -!- sebbu2 has joined.
14:23:37 -!- RodgerTheGreat has joined.
14:24:03 <RodgerTheGreat> hi, everyone
14:35:37 -!- sebbu has quit (Connection timed out).
16:55:43 -!- c|p has joined.
17:49:16 -!- c|p has quit ("Leaving").
17:58:27 <pikhq> No.
18:51:31 -!- sebbu2 has changed nick to sebbu.
19:26:05 -!- Sgeo has joined.
20:06:44 <ihope> Ello!
20:07:36 <oklopol> !
20:08:44 <ihope> !?
20:09:43 <oklopol> : ;
20:09:50 <ihope> ...
20:09:54 <ihope> (:-P)
20:10:37 <ihope> (C? A "P"!)
20:31:28 <RodgerTheGreat> ?
20:46:02 <ihope> See? A
20:46:05 <ihope> "P"!
20:46:17 <ihope> (s/\n//)
21:00:57 <Sukoshi> Yo, RodgerTheGreat.
21:10:01 <RodgerTheGreat> oy, Sukoshi.
21:10:03 <RodgerTheGreat> :D
21:10:21 <ihope> Oi.
21:10:28 <Sukoshi> RodgerTheGreat: Would you object to putting the tiles in blocks?
21:10:54 <Sukoshi> Once I figure out how to SDL to resize tiles, all will be well.
21:11:05 <oklopol> rotozoom.h
21:11:20 <oklopol> that's how i never managed to do it
21:11:24 <Sukoshi> Lisp.
21:11:47 <oklopol> sorry :<
21:12:05 <oklopol> doesn't have it same the libraries is so?
21:12:23 <oklopol> .h was just my way to indicate it's a lib of some sort
21:12:30 <Sukoshi> I know, I know.
21:12:37 <Sukoshi> Well, I'm looking through the LISPBUILDER-SDL docs.
21:12:53 <RodgerTheGreat> Sukoshi: what do you mean by this?
21:14:28 <Sukoshi> RodgerTheGreat: Adjoin the tiles in blocks of, say, 100x480? (Throwing out the RM2K number there).
21:14:33 <Sukoshi> Or should we load it tile by tile?
21:15:09 <RodgerTheGreat> hm
21:16:12 <RodgerTheGreat> are you talking about how we separate the actual graphics into files, or how we draw tiles/store their positions in a datastructure?
21:16:56 <Sukoshi> Graphics.
21:17:05 <Sukoshi> I'll be managing the tile format, pretty much.
21:17:23 <RodgerTheGreat> alright, that sounds doable
21:17:40 <RodgerTheGreat> it really just depends on how you feel like doing things
21:18:09 <Sukoshi> Since you have more experience than I: About how many tiles do you think is ideal per tileset, and what size?
21:18:20 <RodgerTheGreat> in CRPG, I load a tileset as one image and then cut out the tiles I want to draw on the fily
21:18:28 <RodgerTheGreat> erm... hm
21:20:25 <RodgerTheGreat> depends on the level of detail you want, and the manner in which we design how the tiles... tile.
21:20:48 <Sukoshi> Square tiles. GBA detail.
21:21:31 <RodgerTheGreat> so, something like 16x16 tiles, 32x32-ish sprites...
21:21:49 <RodgerTheGreat> top-down, zelda/pokemon style perspective?
21:21:53 <Sukoshi> Yup.
21:22:03 <RodgerTheGreat> ok
21:22:14 <Sukoshi> You designed your mapper to cut out tiles on the fly?
21:22:43 <Sukoshi> In fact, that's not a bad idea. I'll have it do that.
21:23:14 <pikhq> GregorR: Just found this. . . Thought you might be glad to see that someone else noticed your language.
21:23:17 <pikhq> http://scienceblogs.com/goodmath/2007/03/clear_objectoriented_programmi_1.php#more
21:26:51 <RodgerTheGreat> haha
21:27:02 <Sukoshi> :P
21:30:31 <Sukoshi> Does SDL have anything like layers, or do you have to refresh everything under what you drew manually?
21:32:07 * SimonRC fumes and rages http://yro.slashdot.org/yro/07/06/23/1233212.shtml
21:32:21 <Sukoshi> Thank you for answering my question.
21:33:47 -!- c|p has joined.
21:34:14 <ihope> SimonRC: seems the solution would be to switch to another ISP.
21:37:25 * SimonRC fwaps ihope
21:37:35 <SimonRC> Sukoshi: ???
21:37:51 <Sukoshi> Nevermind :P
21:38:18 * ihope sets whatever SimonRC fwapped him with on fire
21:38:40 <Sukoshi> ihope: What if SimonRC is a psychic?
21:39:12 <ihope> Sukoshi: what sort of psychic?
21:39:51 <Sukoshi> ihope: Telekinetic.
21:40:25 <ihope> Fwapping me by telekineticizing me directly?
21:40:43 <ihope> In that case, I'll have set his brain on fire.
21:40:45 <Sukoshi> No, by say, hitting you with a spoon.
21:41:19 <ihope> Then I'll have set the spoon on fire.
21:44:17 <SimonRC> I was fwapping you with the Slashdot comments that explin why you can't "switch to another ISP".
21:44:45 <ihope> Oh.
21:44:50 * ihope sets those on fire
21:47:08 <oklopol> not everything is ignitable
21:47:48 <ihope> Aww.
21:48:12 <pikhq> "
21:48:38 <pikhq> "No two kids are not on fire. Aaaaw."
21:48:40 <pikhq> (Strong bad :))
21:48:53 * ihope sets oklopol on fire
21:49:05 <ihope> (Don't worry; it's a special patented non-painful, non-damaging fire.)
21:49:13 <oklopol> the human body does not catch fire
21:49:21 <oklopol> not even safe fire
21:49:31 <pikhq> oklopol: One can arrange for that to happen.
21:49:45 <pikhq> First, we crank up the oven to about 1000C.
21:49:53 <oklopol> well... then it wouldn't really be _me_ burning, would it?
21:49:58 <SimonRC> ISTR that very fat people tend to suffer from wicking if they catch fire
21:50:02 <pikhq> Then, we watch as you dehydrate and *then* you ignite.
21:50:03 <oklopol> pikhq: water burns not
21:50:06 <oklopol> oh
21:50:11 <oklopol> that is true
21:57:57 -!- Sgeo has quit (Read error: 104 (Connection reset by peer)).
22:01:52 <ihope> ISTR?
22:02:11 <ihope> I stress to remember?
22:10:32 -!- sp3tt has quit (Read error: 104 (Connection reset by peer)).
22:13:39 -!- sp3tt has joined.
22:29:08 <SimonRC> "I seem to recall"
22:29:19 <SimonRC> maybe that is an ASRism
22:38:00 <ihope> I see.
22:38:01 -!- sp3tt has quit (Read error: 104 (Connection reset by peer)).
22:55:48 -!- sp3tt has joined.
23:26:46 -!- immybo has joined.
23:27:26 <immybo> could somebody please repeat this request?
23:28:58 -!- immibis has joined.
23:30:16 <immibis> immybo, please unplug your computer
23:30:16 <immibis> \
23:32:13 <SimonRC> immibis: are you called "Iceshark7" somewhere else?
23:32:20 <immibis> iceshark7?
23:32:44 <SimonRC> oh, wait, never mind
23:32:46 <immibis> what do you mean?
23:32:47 <immibis> ok
23:33:00 <SimonRC> "23:27:52 -!- immibis [n=IceChat7@125-238-176-25.broadband-telecom.global-gateway.net.nz] has joined #esoteric"
23:33:23 <immibis> why does that mean i am called iceshark7 somewhere else?
23:34:30 <SimonRC> I saw your username was "IceChat7" and thought you might be the Iceshark7 I know from elsewhere.
23:35:18 <immibis> no
23:35:29 <immibis> icechat7 is the default username for people using icechat version 7
23:36:06 <pikhq> immybo: ERROR: Lazy programmer error.
23:36:41 <immibis> immybo hasn't said anything though. why does he get an error?
23:36:48 <pikhq> 16:26 < immybo> could somebody please repeat this request?
23:36:56 <immibis> ok
23:36:57 <pikhq> That's an IRP request. ;)
23:37:05 <immibis> and?
23:37:13 <immybo> Im mostly away now
23:37:13 <immibis> i thought this channel was for IRP
23:37:14 <pikhq> And I gave an error in response.
23:37:31 <pikhq> Yes, but the programmers are lazy.
23:37:40 <pikhq> (thus why I've not done much coding today)
23:38:15 <ihope> Not entirely for IRP.
23:38:19 -!- oerjan has joined.
23:38:29 <ihope> Nor really mostly, for that matter...
23:38:33 <ihope> Also, could somebody please repeat this request?
23:39:44 <pikhq> Ne.
23:40:02 <immibis> Also, could somebody please repeat this request?
23:40:20 <immibis> immybo, please repeat this request.
23:40:52 <immibis> "To program in IRP#esoteric, join the #esoteric channel on irc.freenode.net, then simply write, in plain English, in polite command form, what you intend for your program to do. If other IRP programmers (knowingly or not!) are on the channel, and are in a good mood, you should get the appropriate response."
23:42:43 <SimonRC> nope, no-one can repeat that request
23:43:03 <immibis> no-one can repeat what request?
23:43:17 <pikhq> #esoteric is more just for us Esolang coders to hang out.
23:43:25 <oerjan> We do not do quines that look at their own source. Sorry :)
23:43:28 <sp3tt> Please add 1 and 1.
23:43:39 <SimonRC> 0
23:43:43 <sp3tt> ...
23:43:43 <SimonRC> (mod 2)
23:43:47 <sp3tt> ...
23:43:51 <sp3tt> I NEVER SAID THAT
23:43:57 <sp3tt> This interpreter has bugs!
23:44:04 <SimonRC> It's a feature
23:44:10 <pikhq> You never specified your base.
23:44:23 <sp3tt> Well, C doesn't either.
23:44:50 <pikhq> BTW, 1+1=b according to me.
23:44:58 <ihope> Python doesn't either.
23:45:10 <pikhq> In those, the base is defined by the language spec.
23:45:13 <immibis> sp3tt: yes it does - a number starting with 0 is octal, a number starting with 0x is hex, and any other number is decimal
23:45:14 <ihope> So from now on, everything you say will be interpreted as Python.
23:45:19 <pikhq> In here, the base is defined as the interpreter sees fit.
23:45:21 <immibis> i don't know python
23:45:23 <ihope> ("Now" meaning some time in the near future.)
23:45:35 <oerjan> base is representation. we are talking about choosing the correct abelian group.
23:46:01 <SimonRC> yes
23:46:01 <immibis> anyone want a "Foobar and foobaz and barbaz, oh my!" interpreter?
23:46:17 <ihope> I do, sort of.
23:46:28 <pikhq> No. Anyone want a partial, non-Turing-complete dc interpreter?
23:46:38 <immibis> ihope: you do know python or you do want the interpreter?
23:46:55 <ihope> I do want the interpreter.
23:46:55 <sp3tt> I feel... normal
23:47:07 <ihope> sp3tt: the Pythonness is still pending.
23:48:57 <sp3tt> Can I have some spam with that, please?
23:49:49 -!- WaiterBot has joined.
23:49:50 -!- WaiterBot has changed nick to SpammingBot.
23:49:50 -!- SpammingBot has quit (Excess Flood).
23:49:54 <pikhq> Spam, spam, eggs and spam?
23:50:01 -!- WaiterBot has joined.
23:50:04 -!- WaiterBot has changed nick to SpammingBot.
23:50:04 <SpammingBot> spamming. Buy my iPod!
23:50:04 -!- SpammingBot has quit (Excess Flood).
23:50:10 <immibis> hmm
23:50:15 -!- WaiterBot has joined.
23:50:19 -!- WaiterBot has changed nick to SpammingBot.
23:50:19 <SpammingBot> spamming. Buy my iPod!
23:50:19 -!- SpammingBot has quit (Excess Flood).
23:50:20 <ihope> Ouch.
23:50:33 -!- WaiterBot has joined.
23:50:34 <immibis> well you said you wanted spam
23:50:46 <immibis> now if only it didn't get kicked off
23:50:47 <ihope> You should have requested SPAM.
23:51:28 <sp3tt> I thought there were no eggs?
23:51:32 <sp3tt> Whatever, I'll have spam instead!
23:52:08 <oerjan> 99 cans of SPAM (TM) on the wall, 99 cans of SPAM (TM)
23:52:09 <ihope> Um, hmm.
23:52:58 <sp3tt> take one down, quote monty python, 98 cans of SPAM (TM) on the wall
23:53:16 <sp3tt> aleph-null bottles of beer on the wall, aleph-null bottles of beer
23:53:27 <sp3tt> take one down and pass it around, aleph-null bottles of beer on the wall
23:53:36 <immibis> what is aleph-null
23:53:37 <ihope> ~exec self.register_raw(r":sp3tt!n=sp3tt@80-162.cust.umeaenergi.com PRIVMSG \S+ :(.*)", lambda x,y: sys.stdout(x))
23:53:53 <ihope> immibis: aleph_null is the number of integers there are.
23:54:05 <sp3tt> indeed
23:54:05 <bsmnt_bot> :sp3tt!n=sp3tt@80-162.cust.umeaenergi.com PRIVMSG #esoteric :indeed
23:54:11 <ihope> Hmm.
23:54:13 <pikhq> Teehee.
23:54:16 <ihope> ~exec self.raw("QUIT")
23:54:16 -!- bsmnt_bot has quit.
23:54:20 -!- bsmnt_bot has joined.
23:54:24 <sp3tt> That's awesome.
23:54:25 <ihope> ~exec self.register_raw(r":sp3tt!n=sp3tt@80-162.cust.umeaenergi.com PRIVMSG \S+ :(.*)", lambda x,y: sys.stdout(y))
23:54:29 <ihope> Indeed.
23:54:37 <ihope> Not at all what I wanted, though.
23:54:41 <sp3tt> Indeed. *Teal'c nod*
23:54:42 <bsmnt_bot> <_sre.SRE_Match object at 0xb7c288e0>
23:54:45 <ihope> Wow!
23:54:51 <ihope> Isn't it wonderful?
23:54:55 <ihope> ~exec self.raw("QUIT")
23:54:56 -!- bsmnt_bot has quit (Client Quit).
23:54:58 -!- bsmnt_bot has joined.
23:55:16 <sp3tt> aleph-null - 1 = aleph-null because if you remove one integer, you still have the same number of integers
23:55:20 <sp3tt> xD
23:55:56 <sp3tt> 0,1,2,3... 1,2,3,.. You think there is one less in the latter, but all numbers in the first sequence can be put in a one-to-one correspondence to the numbers in the second
23:56:12 <sp3tt> Infinite sets can be hard to grasp
23:56:42 <immibis> ihope: did you write that bot?
23:56:53 <ihope> immibis: nope.
23:56:57 <immibis> ihope: if yes, how did you get it to make sp3
23:56:59 <immibis> oops
23:57:03 <immibis> ihope: who did then?
23:57:09 <ihope> immibis: bsmntbombdood.
23:59:15 <oerjan> ihope: i think .group() picks out parenthetical matches
23:59:48 <ihope> ~exec self.register_raw(r":sp3tt!n=sp3tt@80-162.cust.umeaenergi.com PRIVMSG \S+ :(.*)", lambda x,y: sys.stdout(y.group(0)))
23:59:57 * ihope calls upon sp3tt
2007-06-24
00:01:18 * ihope also calls upon himself
00:01:37 <ihope> ~exec self.register_raw(r":ihope!n=ihope@tapthru/resident/ihope PRIVMSG \S+ :(.*)", lambda x,y: sys.stdout(y.group(0)))
00:01:44 <ihope> Jar breeze!
00:01:45 <bsmnt_bot> :ihope!n=ihope@tapthru/resident/ihope PRIVMSG #esoteric :Jar breeze!
00:01:51 <ihope> Quite wonderful.
00:01:51 <bsmnt_bot> :ihope!n=ihope@tapthru/resident/ihope PRIVMSG #esoteric :Quite wonderful.
00:01:57 <ihope> ~exec self.raw("QUIT")
00:01:58 <bsmnt_bot> :ihope!n=ihope@tapthru/resident/ihope PRIVMSG #esoteric :~exec self.raw("QUIT")
00:01:58 -!- bsmnt_bot has quit.
00:02:01 -!- bsmnt_bot has joined.
00:02:03 <pikhq> :sp3tt!n=sp3tt@80-162.cust.umeanergi.com PRIVMSG :Foo!
00:02:04 <pikhq> Damn it.
00:02:17 <pikhq> ~exec self.register_raw(r":sp3tt!n=sp3tt@80-162.cust.umeaenergi.com PRIVMSG \S+ :(.*)", lambda x,y: sys.stdout(y.group(0)))
00:02:18 <ihope> What were you hoping to accomplish there?
00:02:19 <oerjan> try group(1) then.
00:02:20 <pikhq> :sp3tt!n=sp3tt@80-162.cust.umeanergi.com PRIVMSG :Foo!
00:02:24 <ihope> ~exec self.register_raw(r":ihope!n=ihope@tapthru/resident/ihope PRIVMSG \S+ :(.*)", lambda x,y: sys.stdout(y.group(1)))
00:02:27 <ihope> Akaka
00:02:27 <bsmnt_bot> Akaka
00:02:30 <pikhq> Just trying to see if I can fiddle with the matching.
00:02:34 <ihope> Cool.
00:02:34 <bsmnt_bot> Cool.
00:02:41 <ihope> ~exec self.raw("QUIT")
00:02:41 <bsmnt_bot> ~exec self.raw("QUIT")
00:02:42 -!- bsmnt_bot has quit (Client Quit).
00:02:44 -!- bsmnt_bot has joined.
00:03:06 <ihope> ~exec self.register_raw(r":sp3tt!n=sp3tt@80-162.cust.umeaenergi.com PRIVMSG \S+ :(.*)", lambda x,y: exec(y.group(1)))
00:03:06 <bsmnt_bot> SyntaxError: invalid syntax
00:03:12 <ihope> Gah.
00:03:21 <ihope> ~exec self.register_raw(r":sp3tt!n=sp3tt@80-162.cust.umeaenergi.com PRIVMSG \S+ :(.*)", lambda x,y: sys.stdout(y.group(1)))
00:03:40 <ihope> Unless sp3tt said something invalid right after that.
00:03:46 <ihope> ~exec self.raw("QUIT")
00:03:46 -!- bsmnt_bot has quit (Client Quit).
00:03:49 -!- bsmnt_bot has joined.
00:03:55 <ihope> ~exec self.register_raw(r":ihope!n=ihope@tapthru/resident/ihope PRIVMSG \S+ :(.*)", lambda x,y: exec(y.group(1)))
00:03:56 <bsmnt_bot> SyntaxError: invalid syntax
00:04:07 <ihope> self.raw("PRIVMSG #esoteric :Foo")
00:04:11 <ihope> Mmh.
00:04:25 <ihope> It accepts sys.stdout but not exec?
00:04:53 <ihope> ~exec self.register_raw(r":ihope!n=ihope@tapthru/resident/ihope PRIVMSG \S+ :(.*)", lambda x,y: exec(y.group(1)))
00:04:54 <bsmnt_bot> SyntaxError: invalid syntax
00:06:14 <ihope> ~exec exec("self.raw ('PRIVMSG #esoteric :OOk')")
00:06:14 <bsmnt_bot> OOk
00:06:38 <oerjan> ihope: you cannot have statements in lambda in python
00:07:13 <ihope> oerjan: can't have... is exec not a function?
00:07:23 <oerjan> nope it's a statement
00:07:46 <ihope> ~exec sys.stdout(self.exec)
00:07:47 <bsmnt_bot> SyntaxError: invalid syntax
00:07:53 <ihope> ~exec sys.stdout(self.selfexec)
00:07:54 <bsmnt_bot> AttributeError: IRCbot instance has no attribute 'selfexec'
00:08:09 <ihope> ~exec def self.selfexec(x): exec(x)
00:08:09 <bsmnt_bot> SyntaxError: invalid syntax
00:08:25 <ihope> I don't know enough Python, do I?
00:08:41 <ihope> ~exec self.exec_execer("sys.stdout('foo')")
00:08:41 <bsmnt_bot> TypeError: exec_execer() takes exactly 3 arguments (2 given)
00:09:05 <oerjan> ihope: to get multiline commands you must do an incantation like ~exec exec "string with embedded \n's"
00:09:26 <ihope> ~exec self.register_raw(r":ihope!n=ihope@tapthru/resident/ihope PRIVMSG \S+ :(.*)", lambda x,y: exec_execer(x,y))
00:09:39 <ihope> self.raw("PRIVMSG #esoteric :Canada")
00:09:39 <bsmnt_bot> NameError: global name 'exec_execer' is not defined
00:09:44 <ihope> Oops.
00:09:48 <bsmnt_bot> NameError: global name 'exec_execer' is not defined
00:09:55 <ihope> ~exec self.raw("QUIT")
00:10:06 -!- bsmnt_bot has quit.
00:10:09 -!- bsmnt_bot has joined.
00:10:10 <ihope> ~exec self.register_raw(r":ihope!n=ihope@tapthru/resident/ihope PRIVMSG \S+ :(.*)", lambda x,y: bot.exec_execer(x,y))
00:10:18 <ihope> self.raw("PRIVMSG #esoteric :Canada")
00:10:36 <ihope> Yay.
00:10:47 <pikhq> Canada
00:10:50 <ihope> ~exec self.register_raw(r":ihope!n=ihope@tapthru/resident/ihope PRIVMSG \S+ :(.*)", lambda x,y: bot.exec_execer(y,y.match(1)))
00:10:53 <ihope> :-)
00:10:53 <bsmnt_bot> AttributeError: match
00:11:05 * pikhq malkomprendas, mi pensas
00:11:14 <ihope> So is it working at all?
00:11:15 <bsmnt_bot> AttributeError: match
00:11:23 <pikhq> Hahah.
00:11:30 <ihope> ~exec self.raw("QUIT")
00:11:31 -!- bsmnt_bot has quit (Client Quit).
00:11:34 -!- bsmnt_bot has joined.
00:11:37 <ihope> ~exec self.register_raw(r":ihope!n=ihope@tapthru/resident/ihope PRIVMSG \S+ :(.*)", lambda x,y: bot.exec_execer(y,y.group(1)))
00:11:42 <ihope> Now?
00:11:54 <ihope> Aww.
00:12:09 <ihope> ~exec self.register_raw(r":ihope!n=ihope@tapthru/resident/ihope PRIVMSG \S+ :(.*)", lambda x,y: bot.exec_execer(y.group(1),y))
00:12:15 <immibis> does ~exec self.raw("TEXT GOES HERE") send that text to the irc server?
00:12:17 <ihope> It's some arcane mixture of all that, I'm sure!
00:12:21 <ihope> immibis: yup.
00:12:36 <immibis> ~exec self.raw("PRIVMSG #esoteric :I am a bot")
00:12:37 <bsmnt_bot> I am a bot
00:12:40 <immibis> ok
00:12:59 <ihope> ~exec sys.stdout("I am not a bot!")
00:12:59 <bsmnt_bot> I am not a bot!
00:13:07 <ihope> ~exec sys.stdout(self)
00:13:07 <bsmnt_bot> <__main__.IRCbot instance at 0xb7bef3ec>
00:13:24 <ihope> Hmm.
00:13:48 <ihope> ~exec exec "self.raw('PRIVMSG #esoteric :foo')"
00:13:49 <bsmnt_bot> foo
00:13:51 <ihope> Yay!
00:14:15 <immibis> what is the point of ~exec exec "COMMAND" why not use ~exec COMMAND?
00:14:19 <immibis> !help
00:14:19 <ihope> ~exec exec "def self.selfexec(x):\n exec x"
00:14:19 <bsmnt_bot> SyntaxError: invalid syntax
00:14:25 <immibis> ~exec help
00:14:26 <ihope> immibis: multiline commands.
00:14:31 <immibis> ok
00:14:43 <ihope> The only help you're getting out of bsmnt_bot is the source code. :-)
00:14:49 <immibis> which is where?
00:14:51 <ihope> And that's not actually going to come out of bsmnt_bot.
00:14:59 <pikhq> ~exec self.raw("PRIVMSG #nonlogic :Testing.")
00:15:01 <immibis> and what does self.register_raw do?
00:15:07 <ihope> Um... ask bsmntbombdood.
00:15:18 <pikhq> ~exec self.raw("JOIN #nonlogic")
00:15:19 <oerjan> actually i think you can extract it with some system command.
00:15:32 <immibis> he is away
00:15:33 <ihope> immibis: self.register_raw makes the bot do something upon receiving certain messages.
00:15:36 <pikhq> You get the feeling that that's not working the way I want?
00:15:43 <pikhq> ~exec self.raw('JOIN #nonlogic')
00:15:51 <immibis> he is on #nonlogin
00:15:55 <ihope> ~exec self.raw("JOIN ##nonlogic")
00:15:56 <immibis> i mean #nonlogic
00:16:02 <immibis> but the channel is ##nonlogic
00:16:07 <pikhq> Oh.
00:16:07 <ihope> ~exec self.raw("PRIVMSG ##nonlogic :Oof.")
00:16:23 <pikhq> ~exec self.raw("LEAVE #nonlogic")
00:16:27 <immibis> it's PART
00:16:35 <pikhq> ~exec self.raw("PART #nonlogic")
00:16:42 <pikhq> Sorry. My IRC sucks.
00:17:06 <pikhq> ~exec self.raw("PRIVMSG #emacs :.ooF")
00:17:15 * pikhq just fiddles around, bored.
00:17:35 <ihope> ~exec exec "def self.selfexec(x):\n exec x"
00:17:36 <bsmnt_bot> SyntaxError: invalid syntax
00:17:43 <ihope> If at first you don't succeed, try, try again.
00:17:52 <immibis> ~exec self.raw("JOIN #arianne-chat")
00:18:01 <immibis> ~exec self.raw("PRIVMSG #arianne-chat :Hello")
00:18:07 <immibis> ~exec self.raw("PART #arianne-chat")
00:18:19 <immibis> how does register_raw work?
00:18:28 <ihope> ~exec exec "def selfexec(x):\n exec x"; self.selfexec = selfexec
00:18:35 <ihope> Um, lemme think.
00:18:52 <ihope> self.register_raw(regex, lambda x,y: function(y.group(1)))
00:19:01 <immibis> what is lambda x,y?
00:19:21 <ihope> Where regex is something like r"This is a (.*)", and function is the function that receives whatever (.*) is.
00:19:34 <immibis> i know what a regex is
00:19:35 <ihope> lambda x,y defines a function.
00:20:28 <ihope> ~exec self.selfexec("sys.stdout(self)")
00:20:29 <bsmnt_bot> NameError: name 'self' is not defined
00:20:34 <ihope> ~exec self.selfexec("sys.stdout(bot)")
00:20:36 <bsmnt_bot> <__main__.IRCbot instance at 0xb7bef3ec>
00:20:39 <ihope> Yay!
00:21:14 <immibis> ~exec self.register_raw("immibis.* PRIVMSG #esoteric :say (.*)", lambda x y: sys.stdout(y.group(1)))
00:21:15 <bsmnt_bot> SyntaxError: invalid syntax
00:21:21 <ihope> ~exec self.register_raw(r":ihope!n=ihope@tapthru/resident/ihope PRIVMSG \S+ :(.*)", lambda x,y: self.selfexec(y.group(1)))
00:21:47 <ihope> immibis: "lambda x,y", not "lambda x y", and put an "r" right before the regex
00:21:48 <bsmnt_bot> NameError: global name 'self' is not defined
00:21:57 <immibis> ~exec self.register_raw(r"immibis.* PRIVMSG #esoteric :say (.*)", lambda x,y: sys.stdout(y.group(1)))
00:22:03 <immibis> say hello
00:22:03 <oerjan> ~exec sys.stdout(self.do_exec)
00:22:03 <bsmnt_bot> <bound method IRCbot.do_exec of <__main__.IRCbot instance at 0xb7bef3ec>>
00:22:14 <ihope> (Am I able to speak without it erroring?)
00:22:15 <bsmnt_bot> NameError: global name 'self' is not defined
00:22:31 <immibis> say i am a bot
00:22:33 <ihope> ~exec self.register_raw(r":immibis.* PRIVMSG #esoteric :say (.*)", lambda x,y: sys.stdout(y.group(1)))
00:22:33 <bsmnt_bot> NameError: global name 'self' is not defined
00:22:37 <ihope> Colon required.
00:22:42 <bsmnt_bot> NameError: global name 'self' is not defined
00:22:51 <immibis> colon required where?
00:22:59 <pikhq> ~exec self.raw("PRIVMSG ##nonlogic :Bloody bot.")
00:23:03 <ihope> Right before the "immibis" there.
00:23:04 <bsmnt_bot> NameError: global name 'self' is not defined
00:23:07 <ihope> ~exec self.raw("QUIT")
00:23:12 <pikhq> ~exec self.raw("PART ##nonlogic")
00:23:15 <oerjan> ihope: bsmntbombdood made do_exec start in a separate thread, so it doesn't lock up so easily. just exec does not do that.
00:23:20 -!- bsmnt_bot has quit.
00:23:21 <pikhq> Did it just freeze?
00:23:22 -!- bsmnt_bot has joined.
00:23:24 <ihope> ~exec self.register_raw(r":immibis.* PRIVMSG #esoteric :say (.*)", lambda x,y: sys.stdout(y.group(1)))
00:23:25 <pikhq> Nope.
00:23:29 <ihope> Ah?
00:23:37 <immibis> say i am a bot
00:23:38 <bsmnt_bot> i am a bot
00:23:53 <pikhq> say I'm not listening to Pikhq.
00:24:01 <pikhq> ;)
00:24:14 <immibis> the regex was ":immibis.*
00:24:26 <immibis> ~exec self.register_raw(r".* PRIVMSG #esoteric :say (.*)", lambda x,y: sys.stdout(y.group(1)))
00:24:26 <ihope> ~exec self.register_raw(r":ihope!n=ihope@tapthru/resident/ihope PRIVMSG \S+ :(.*)", lambda x,y: bot.do_exec(y.group(1)))
00:24:27 <bsmnt_bot> (.*)", lambda x,y: sys.stdout(y.group(1)))
00:24:47 <ihope> say aka
00:24:47 <bsmnt_bot> aka
00:24:55 <immibis> say i am a robot
00:24:55 <bsmnt_bot> i am a robot
00:24:55 <bsmnt_bot> i am a robot
00:24:58 <immibis> say i am a robot
00:24:59 <bsmnt_bot> i am a robot
00:24:59 <bsmnt_bot> i am a robot
00:25:06 <ihope> Both of them are picking it up :-)
00:25:07 <immibis> how do i unregister the rule?
00:25:12 <immibis> i know
00:25:15 <immibis> how do i unregister the rule?
00:25:17 <oerjan> PRIVMSG #esoteric :say I bet this is slightly buggy.
00:25:25 <oerjan> or not.
00:25:29 <immibis> say I bet this is slightly buggy
00:25:29 <bsmnt_bot> I bet this is slightly buggy
00:25:30 <bsmnt_bot> I bet this is slightly buggy
00:25:50 <ihope> Um, well, I don't think there's any way to unregister a specific rule.
00:25:55 <ihope> You can always do this, though:
00:25:59 <oerjan> i mean PRIVMSG #esoteric :say I bet this is slightly buggy.
00:26:00 <bsmnt_bot> I bet this is slightly buggy.
00:26:01 <ihope> ~exec bot.raw("QUIT")
00:26:02 -!- bsmnt_bot has quit (Client Quit).
00:26:04 -!- bsmnt_bot has joined.
00:26:30 <immibis> yes, the regex was slightly buggy
00:26:44 <oerjan> ihope: there is a regex_queue.pop something that i've often seen bsmntbombdood use to remove the last one.
00:26:45 <ihope> Use \S+ instead of .*
00:27:05 <ihope> ~exec bot.do_exec("sys.stdout(self)")
00:27:05 <bsmnt_bot> TypeError: do_exec() takes exactly 3 arguments (2 given)
00:27:27 <oerjan> ~exec sys.stdout(self.exec_execer)
00:27:28 <bsmnt_bot> <bound method IRCbot.exec_execer of <__main__.IRCbot instance at 0xb7ccd3ec>>
00:27:29 <ihope> oerjan: do you know the arguments to do_exec()?
00:28:01 <immibis> ~exec self.register_raw(r"(\S+) NOTICE \S+ :say (.*)", lambda x,y: sys.stdout(y.group(1) + " wants me to say " + y.group(2)))
00:28:15 <bsmnt_bot> :immibis!n=IceChat7@125-238-176-25.broadband-telecom.global-gateway.net.nz wants me to say hello
00:28:18 <immibis> hmm
00:28:19 <oerjan> i don't remember but maybe self.exec_execer is the outer one
00:28:47 <bsmnt_bot> :immibis!n=IceChat7@125-238-176-25.broadband-telecom.global-gateway.net.nz wants me to say that immibis is a retard
00:28:54 <bsmnt_bot> :immibis!n=IceChat7@125-238-176-25.broadband-telecom.global-gateway.net.nz wants me to say that immibis is a retard
00:28:55 <immibis> hey
00:29:14 <immibis> !j #bots
00:29:15 <WaiterBot> #bots: <immybo> uh... ??
00:29:22 <oerjan> ~exec sys.stdout(os.listdir("/bot"))
00:29:22 <bsmnt_bot> ['files.img', 'a.out', 'scripts', 'betterbot.py', 'test.pickle', 'foo.py~', 'ski_repl.py', 'foo.py', 'ircbot.py~', 'start.sh', 'better.sh', 'start.sh~', 'ircbot.py', 'keep_running']
00:29:32 <WaiterBot> #bots: <immybo> !c
00:29:42 <ihope> ~exec self.register_raw(r":ihope!n=ihope@tapthru/resident/ihope PRIVMSG \S+ :(.*)", lambda x,y: bot.do_exec(y,y.group(1)))
00:29:45 <immibis> ~exec sys.stdout(os.listdir("/"))
00:29:45 <bsmnt_bot> ['bin', 'bot', 'etc', 'lib', 'usr']
00:29:51 <immibis> ~exec sys.stdout(os.listdir("/usr"))
00:29:51 <bsmnt_bot> ['bin', 'lib', 'include']
00:29:58 * ihope sends a PRIVMSG that is most certainly not valid Python
00:29:58 <bsmnt_bot> AttributeError: 'str' object has no attribute 'group'
00:30:00 <immibis> so it is a linux computer?
00:30:24 <ihope> immibis: I believe bsmnt_bot runs on a Linux machine, yeah.
00:30:24 <bsmnt_bot> AttributeError: 'str' object has no attribute 'group'
00:30:37 <ihope> ~exec self.raw_regex_queue.pop()
00:30:38 <bsmnt_bot> AttributeError: 'str' object has no attribute 'group'
00:30:45 <immibis> ~exec self.raw("JOIN #bots")
00:30:48 <ihope> Alimente?
00:30:55 <ihope> Seems so.
00:31:10 <ihope> ~exec self.register_raw(r":ihope!n=ihope@tapthru/resident/ihope PRIVMSG \S+ :(.*)", lambda x,y: bot.do_exec(x,y))
00:31:12 <immibis> there are a total of 3 bots on #bots now
00:31:19 * ihope sends another PRIVMSG that is most certainly not valid Python
00:31:19 <bsmnt_bot> IndexError: no such group
00:31:20 <oerjan> in principle we could access the bot source with os commands...
00:31:30 <ihope> oerjan: indeed we could.
00:31:32 <bsmnt_bot> IndexError: no such group
00:31:41 <ihope> ~exec self.raw_regex_queue.pop()
00:31:52 <immibis> oh and ihope, sorry i forgot about the foobar and foobaz and barbaz, oh my! interpreter
00:31:54 <bsmnt_bot> IndexError: no such group
00:31:59 <ihope> Caliente?
00:32:00 <immibis> i will try to send it to you now
00:32:07 <ihope> Again, seems so.
00:33:05 <ihope> ~exec self.register_raw(r":ihope!n=ihope@tapthru/resident/ihope PRIVMSG \S+ :(.*)", lambda x,y: bot.do_exec(y.group(1),y))
00:34:02 <immibis> ihope, can chatzilla receive dcc uploads?
00:34:14 <ihope> immibis: it can. This one just... failed.
00:34:14 <bsmnt_bot> IndexError: no such group
00:34:39 <ihope> ~exec self.raw_regex_queue.pop()
00:34:40 <bsmnt_bot> IndexError: no such group
00:34:51 <ihope> And I expect this to be fuertemente.
00:34:57 <WaiterBot> #bots: <immybo> !c
00:35:32 <ihope> ~exec self.register_raw(r":ihope!n=ihope@tapthru/resident/ihope PRIVMSG \S+ :(.*)()", lambda x,y: bot.do_exec(y.group(1),y))
00:35:41 <ihope> Ickybad?
00:35:49 <ihope> Seems so.
00:35:58 <ihope> self.raw("PRIVMSG #esoteric :Woot")
00:36:10 <ihope> Yay!
00:37:14 <ihope> Wait, why am I rejoicing?
00:37:23 <ihope> ~exec self.raw("QUIT")
00:37:24 -!- bsmnt_bot has quit.
00:37:27 -!- bsmnt_bot has joined.
00:37:30 <ihope> Am I really rejoicing?
00:40:11 <immibis> ~exec self.register_raw(r"\S+ PRIVMSG \S+ :!j (\S+)", lambda x,y: self.raw("JOIN "+y.group(1)))
00:40:14 <immibis> !j #bots
00:40:15 <bsmnt_bot> NameError: global name 'self' is not defined
00:40:23 <immibis> ~exec self.register_raw(r"\S+ PRIVMSG \S+ :!j (\S+)", lambda x,y: self.raw("JOIN "+y.group(1)))
00:40:32 <immibis> !j #bots
00:40:33 <bsmnt_bot> NameError: global name 'self' is not defined
00:40:42 <bsmnt_bot> NameError: global name 'self' is not defined
00:40:56 <immibis> ~exec self.raw_regex_queue.pop()
00:41:01 <immibis> ~exec self.raw_regex_queue.pop()
00:41:11 <immibis> what does that mean, "global name 'self' is not defined"?
00:41:12 * WaiterBot is making a coffee in an office mug with 1 milk for immybo
00:41:12 * WaiterBot gives immybo a coffee in an office mug with 1 milk
00:41:17 * WaiterBot is making a coffee with 4 sugars in an office mug with 1 milk for immybo
00:41:17 * WaiterBot gives immybo a coffee with 4 sugars in an office mug with 1 milk
00:41:21 * WaiterBot is making a coffee with 4 sugars in a bucket with 1 milk for immybo
00:41:25 * WaiterBot gives immybo a coffee with 4 sugars in a bucket with 1 milk
00:41:27 <immibis> oops
00:41:28 <oerjan> some scoping error
00:41:29 * WaiterBot is making a coffee with 4 sugars in a bucket with hot milk for immybo
00:41:30 <immibis> bug in the waiterbot
00:41:33 * WaiterBot gives immybo a coffee with 4 sugars in a bucket with hot milk
00:41:40 <immibis> immybo is requesting coffee on #bots
00:41:47 <immibis> but it is showing up here as well
00:41:51 <immybo> uh...
00:41:57 <oerjan> self does not exist inside the lambda. try using bot instead.
00:42:04 <immibis> and what is 1 milk?
00:42:12 <immibis> ~exec self.register_raw(r"\S+ PRIVMSG \S+ :!j (\S+)", lambda x,y: bot.raw("JOIN "+y.group(1)))
00:42:15 <immibis> what's a lambda?
00:42:22 <immibis> i mean, what does it do?
00:42:36 * WaiterBot is making a coffee with 4 sugars in a bucket with cold milk for this channel
00:42:36 * WaiterBot is making a coffee with 4 sugars in a bucket with cold milk for #esoteric
00:42:38 * WaiterBot gives everyone in this channel a coffee with 4 sugars in a bucket with cold milk
00:42:38 * WaiterBot gives #esoteric a coffee with 4 sugars in a bucket with cold milk
00:42:41 <oerjan> it defines an anonymous function.
00:42:54 <sp3tt> I want my coffee black, damnit!
00:43:36 <immibis> !
00:43:38 <immibis> oops
00:43:42 <immibis> !c -s0
00:43:42 * WaiterBot is making a coffee in an office mug with cold milk for immibis
00:43:43 * WaiterBot gives immibis a coffee in an office mug with cold milk
00:43:48 <immibis> !c -s0 --target=#esoteric
00:43:49 * WaiterBot is making a coffee in an office mug with cold milk for this channel
00:43:49 * WaiterBot is making a coffee in an office mug with cold milk for #esoteric
00:43:50 * WaiterBot gives #esoteric a coffee in an office mug with cold milk
00:43:50 * WaiterBot gives everyone in this channel a coffee in an office mug with cold milk
00:43:58 <oerjan> the "lambda" is from the greek letter used by the mathematician (Alonzo Church) who invented the theory.
00:43:58 <immibis> !c -s0 --target=#esoteric --other=black_coffee
00:43:58 * WaiterBot is making a black coffee in an office mug with cold milk for this channel
00:43:59 * WaiterBot is making a black coffee in an office mug with cold milk for #esoteric
00:43:59 * WaiterBot gives #esoteric a black coffee in an office mug with cold milk
00:44:00 * WaiterBot gives everyone in this channel a black coffee in an office mug with cold milk
00:44:08 <immibis> oerjan: but what does it do?
00:45:06 * WaiterBot is making a bottle in a message with cold milk for #arianne-chat
00:45:10 * WaiterBot gives #arianne-chat a bottle in a message with cold milk
00:45:12 <WaiterBot> #arianne-chat: <WaiterBot>
00:45:19 <oerjan> ~exec sys.stdout((lambda x: x*x)(5))
00:45:19 <bsmnt_bot> 25
00:46:20 <immibis> ok - how does it apply to register_raw?
00:46:40 <immibis> ~exec sys.stdout((lambda x,y,z,w,v: x+y+z+w+v)(1,2,3,4,5))
00:46:41 <bsmnt_bot> 15
00:47:01 <oerjan> immibis: register_raw takes as its first argument the regex, the second a callback function.
00:47:18 <immibis> no, how does lambda apply to register_raw?
00:47:44 <oerjan> the arguments of the callback function are the whole IRC line and the regex match object, i think.
00:47:59 <immibis> ~exec self.raw("JOIN #bots")
00:48:41 <oerjan> when a line on IRC matches the regex, the lambda is called with those arguments.
00:48:51 <WaiterBot> #bots: <immibis> ~exec register_raw(r"\S+ PRIVMSG (\S+) :repeat (.*)", lambda x,y: bot.raw("PRIVMSG "+y.group(1)+" :repeat "+y.group(2))
00:48:56 <WaiterBot> #bots: <immibis> repeat hi
00:49:03 <WaiterBot> #bots: <immybo> hi
00:49:15 <WaiterBot> #bots: <immybo> repeat hi
00:49:26 <immibis> i don't remember programming the waiterbot to do that?
00:49:43 <WaiterBot> #bots: <immibis> ~exec register_raw(r"\S+ PRIVMSG (\S+) :repeat (.*)", lambda x,y: bot.raw("PRIVMSG "+y.group(1)+" :repeat "+y.group(2)))
00:49:47 <WaiterBot> #bots: <immybo> hi
00:49:51 <WaiterBot> #bots: <immibis> repeat i am a bot
00:49:54 <WaiterBot> #bots: <immybo> repeat i am a bot
00:50:07 -!- WaiterBot has left (?).
00:50:21 <immibis> ~exec register_raw(r"\S+ PRIVMSG (\S+) :repeat (.*)", lambda x,y: bot.raw("PRIVMSG "+y.group(1)+" :repeat "+y.group(2)))
00:50:22 <bsmnt_bot> NameError: name 'register_raw' is not defined
00:50:24 <immibis> repeat i am a bot
00:50:31 <immibis> ~exec self.register_raw(r"\S+ PRIVMSG (\S+) :repeat (.*)", lambda x,y: bot.raw("PRIVMSG "+y.group(1)+" :repeat "+y.group(2)))
00:50:45 <pikhq> repeat I am a bot
00:50:46 <bsmnt_bot> repeat I am a bot
00:51:09 <oerjan> (incidentally the way bsmnt_bot is written, if more than one register_raw matches all the lambdas are called, as you have probably discovered.)
00:51:24 <immibis> it was intended to see if it would get kicked off the server for flooding
00:52:24 <immibis> because it would say repeat I am a bot
00:52:31 <immibis> which would cause it to say repeat I am a bot
00:52:31 <immibis> which would cause it to say repeat I am a bot
00:52:31 <immibis> which would cause it to say repeat I am a bot
00:52:32 <immibis> which would cause it to say repeat I am a bot
00:52:32 <immibis> which would cause it to say repeat I am a bot
00:52:32 <immibis> which would cause it to say repeat I am a bot
00:52:33 <oerjan> immibis: note that IRC does not echo your own messages back
00:52:40 <immibis> i just found that out
00:53:02 <immibis> ~exec sys.stdout(os.listdir("/bot"))
00:53:03 <bsmnt_bot> ['files.img', 'a.out', 'scripts', 'betterbot.py', 'test.pickle', 'foo.py~', 'ski_repl.py', 'foo.py', 'ircbot.py~', 'start.sh', 'better.sh', 'start.sh~', 'ircbot.py', 'keep_running']
00:53:19 <immibis> it had to be written in python
00:53:34 -!- WaiterBot has joined.
00:53:54 <WaiterBot> #bots: <immybo> Base name not recognised
00:54:10 <WaiterBot> #bots: <immybo> Im out for a while
00:54:10 <WaiterBot> #bots: <immibis> what is a base name
00:54:26 <WaiterBot> #bots: <immibis> ~exec sys.stdout(os.listdir("/bot"))
00:54:30 <WaiterBot> #bots: <immibis> ops
00:54:43 * WaiterBot is making a coffee in an office mug with no milk for #arianne-chat
00:54:47 * WaiterBot gives #arianne-chat a coffee in an office mug with no milk
00:54:49 <WaiterBot> #arianne-chat: <WaiterBot>
00:55:08 * WaiterBot is making a coffee in an office mug with no milk for #arianne-chat
00:55:13 * WaiterBot gives #arianne-chat a coffee in an office mug with no milk
00:55:15 <WaiterBot> #arianne-chat: <WaiterBot>
00:56:30 <immibis> now why did bsmnt_bot just join #arianne-chat?
00:56:47 <WaiterBot> #arianne-chat: <immibis> ~exec self.raw("PART #arianne-chat")
00:56:53 <WaiterBot> #arianne-chat: <ihope> Does that mean that if I have no idea what Arianne is, I'm not welcome here?
00:56:55 <WaiterBot> #arianne-chat: <ihope> :-P
00:57:05 <ihope> Cool.
00:57:08 <WaiterBot> #arianne-chat: <immibis> i don't know
00:57:11 <ihope> ~exec self.raw("PART #arianne-chat")
00:57:12 <WaiterBot> #arianne-chat: <bsmnt_bot>
00:57:13 <WaiterBot> #arianne-chat: <immibis> ~exec self.raw("PART #arianne-chat")
00:57:21 <WaiterBot> #arianne-chat: <immybo> We could be teaching you how to use it
00:57:33 <WaiterBot> #arianne-chat: <immibis> http://arianne.sourceforge.net/
00:57:34 <WaiterBot> #arianne-chat: <ihope> First give me some idea of what it is. :-)
00:57:41 <WaiterBot> #bots: <immibis> !help
00:57:45 <WaiterBot> #bots: <immibis> ~tuxibot help
00:58:10 <WaiterBot> #bots: <immibis> RonG: how does tuxibot work?
00:58:23 <immibis> !p #esoteric
00:58:23 -!- WaiterBot has left (?).
01:03:35 -!- WaiterBot has joined.
01:06:19 <WaiterBot> #arianne-chat: <ihope> Actually, I think only Athanas can do it.
01:06:25 <WaiterBot> #arianne-chat: <ihope> Do you know who Athanas is?
01:06:31 <ihope> Ugh?
01:06:34 <WaiterBot> #arianne-chat: <immibis> nope
01:06:44 <WaiterBot> #arianne-chat: <immibis> [12:05] ->> Athanas :No such nick/channel
01:06:51 <immibis> !p #esoteric
01:06:51 -!- WaiterBot has left (?).
01:21:56 <immibis> ihope: http://www.filefactory.com/file/1eb1b4/
01:22:07 <immibis> ihope: the interpreter has been uploaded there since dcc wouldn't work
01:22:14 -!- WaiterBot has joined.
01:23:34 <immibis> ~exec self.register_raw(r":\S+ PRIVMSG \S+ :~(.*)", lambda x,y: bot.exec(y.group(1)))
01:23:35 <bsmnt_bot> SyntaxError: invalid syntax
01:23:47 <immibis> ~exec self.register_raw(r":\S+ PRIVMSG \S+ :~(.*)", lambda x,y: bot.exec_execer(y.group(1)))
01:24:02 <immibis> ~exec sys.stdout("Hello")
01:24:03 <bsmnt_bot> Hello
01:24:10 <immibis> ~sys.stdout("Hello")
01:24:19 <immibis> ~exec self.register_raw(r":\S+ PRIVMSG \S+ :@(.*)", lambda x,y: bot.exec_execer(y.group(1)))
01:24:25 <immibis> @sys.stdout("Hello")
01:24:35 <immybo> BoO0!
01:25:31 -!- c|p has quit ("Leaving").
01:26:44 <immibis> ~exec self.raw_reged_queue.pop()
01:26:45 <bsmnt_bot> AttributeError: IRCbot instance has no attribute 'raw_reged_queue'
01:26:45 <immibis> ~exec self.raw_reged_queue.pop()
01:26:46 <bsmnt_bot> AttributeError: IRCbot instance has no attribute 'raw_reged_queue'
01:26:49 <immibis> ~exec self.raw_regex_queue.pop()
01:26:49 <immibis> ~exec self.raw_regex_queue.pop()
01:27:24 <immibis> !p #esoteric
01:27:24 -!- WaiterBot has left (?).
01:29:14 <immibis> @xxx
01:50:20 <immibis> ~exec self.register_raw(r":\S+ PRIVMSG (\S+) :(@.*)", lambda x,y: bot.raw("PRIVMSG #esoteric :" + y.group(2)))
01:50:23 <immibis> @hello
01:50:23 <bsmnt_bot> @hello
01:50:31 <immibis> ~exec self.register_raw(r":\S+ PRIVMSG (\S+) :(@.*)", lambda x,y: bot.raw("PRIVMSG bsmnt_bot :" + y.group(2)))
01:50:33 <immibis> @hello
01:50:33 <bsmnt_bot> @hello
01:50:34 <bsmnt_bot> @hello
01:50:34 <bsmnt_bot> @hello
01:50:36 <bsmnt_bot> @hello
01:50:40 <bsmnt_bot> @hello
01:50:44 <bsmnt_bot> @hello
01:50:48 <bsmnt_bot> @hello
01:50:49 <immibis> ~exec self.raw("QUIT")
01:50:52 -!- bsmnt_bot has quit.
01:50:55 -!- bsmnt_bot has joined.
01:51:20 <oerjan> !
01:52:09 <immibis> ~exec self.raw("JOIN #bots")
01:52:13 -!- immybo has quit (Nick collision from services.).
01:52:40 -!- immybo has joined.
01:53:06 -!- BattleMonkey512_ has joined.
01:55:01 -!- pikhq has quit (Read error: 104 (Connection reset by peer)).
01:55:12 -!- c|p has joined.
01:55:25 -!- pikhq has joined.
02:25:04 -!- immibis has quit (Excess Flood).
02:25:45 -!- immibis has joined.
02:35:34 -!- immibis has quit ("Easy as 3.14159265358979323846...").
03:03:38 -!- immybo has changed nick to Fdejfdjd.
03:03:45 -!- Fdejfdjd has changed nick to Fdejfdjd_Deffrd.
03:04:13 -!- Fdejfdjd_Deffrd has changed nick to immybo.
04:31:42 -!- immibis has joined.
04:31:49 <immibis> ihope: you have a new email
04:34:12 <immibis> ihope: with the foobar and foobaz and barbaz, oh my! interpreter attached
04:34:23 <immibis> immybo, please repeat this request
04:35:24 -!- ImNotCool has joined.
04:35:30 -!- ImNotCool has changed nick to WaiterBot.
04:38:11 <immibis> someone, please repeat this request
04:49:24 <ihope> someone, please repeat this request
04:49:36 <immibis> someone, please repeat this request
04:49:46 <immibis> cancel that command
04:49:51 <immibis> ihope, please repeat this request
04:49:57 <ihope> ihope, please repeat this request
04:50:28 <immibis> well?
04:50:38 <immibis> you just told yourself to repeat the request, you know.
04:50:59 <ihope> You expect me to follow commands given by a person like me?
04:51:16 <immibis> lol
04:51:28 <immibis> ihope, please slap me with a rainbow trout
04:51:44 <immibis> ihope, please ask immibis to slap ihope with a rainbow trout
04:51:45 * ihope slaps immibis with a rainbow trout
04:51:56 <ihope> immibis, please slap me with a rainbow trout.
04:52:03 * immibis slaps ihope with a rainbow trout
04:52:27 <ihope> Since nothing has happened in this channel for quite some time now: WHERE'S MY MONEY, SAM?
04:52:31 <immibis> ase ask immibis to repeat this request
04:52:33 <immibis> oops
04:52:44 <immibis> ihope, please say to immibis "immibis, repeat this request"
04:52:53 <ihope> immibis, repeat this request.
04:52:58 <immibis> immibis, repeat this request
04:52:59 <immibis> immibis, repeat this request
04:52:59 <immibis> immibis, repeat this request
04:53:00 <immibis> immibis, repeat this request
04:53:00 <immibis> immibis, repeat this request
04:53:01 <immibis> immibis, repeat this request
04:53:01 <immibis> immibis, repeat this request
04:53:03 <immibis> immibis, repeat this request
04:53:05 <immibis> immibis, repeat this request
04:53:05 <ihope> Yay!
04:53:07 -!- immibis has quit (Excess Flood).
04:53:11 <ihope> Yay!
04:53:31 -!- immibis has joined.
04:53:33 -!- WaiterBot has quit (Read error: 104 (Connection reset by peer)).
04:53:48 <immibis> lol
04:53:52 <immibis> lol
04:53:54 <immibis> immibis, repeat this request
04:53:54 <immibis> immibis, repeat this request
04:53:54 <immibis> immibis, repeat this request
04:53:55 <immibis> immibis, repeat this request
04:53:55 <immibis> immibis, repeat this request
04:53:56 <immibis> immibis, repeat this request
04:53:57 <immibis> immibis, repeat this request
04:53:59 <immibis> immibis, repeat this request
04:54:01 <immibis> immibis, repeat this request
04:54:03 -!- immibis has quit (Excess Flood).
05:08:35 -!- immybo has changed nick to BattleMonkey512[.
05:09:01 -!- BattleMonkey512[ has changed nick to immybo.
05:16:37 -!- c|p has quit ("Leaving").
05:17:04 -!- immibis has joined.
05:20:20 <immibis> ~exec register_raw("\S+ PRIVMSG \S+ :Bot, please crash.", lambda x,y: bot.raw("PRIVMSG bsmnt_bot :Bot, please crash"))
05:20:20 <bsmnt_bot> NameError: name 'register_raw' is not defined
05:20:26 <immibis> ~exec self.register_raw("\S+ PRIVMSG \S+ :Bot, please crash.", lambda x,y: bot.raw("PRIVMSG bsmnt_bot :Bot, please crash"))
05:20:37 <immibis> ~exec self.register_raw("\S+ PRIVMSG \S+ :Bot, please crash.", lambda x,y: bot.raw("PRIVMSG #esoteric :Yay, I'm crashing!"))
05:20:52 <immibis> now nobody say "Bot," then "please" then "crash."
05:21:29 <immibis> ~exec self.register_raw("\S+ PRIVMSG \S+ :Bot, please crash.", lambda x,y: bot.raw("QUIT :Excess Flood"))
05:22:08 -!- ihope has quit (Read error: 110 (Connection timed out)).
05:24:31 -!- immibis_ has joined.
05:24:33 <oerjan> Ok I will say Bot, please crash.
05:24:39 -!- immibis_ has quit (Remote closed the connection).
05:25:06 -!- i has joined.
05:25:27 -!- i has changed nick to immibis__.
05:25:29 -!- immibis has quit (Nick collision from services.).
05:25:35 -!- immibis__ has changed nick to immibis.
05:25:48 <immibis> did you say it?
05:25:56 <immibis> it has to be the entire message
05:25:58 <immibis> Bot, please crash.
05:25:59 <bsmnt_bot> Yay, I'm crashing!
05:25:59 -!- bsmnt_bot has quit ("Excess Flood").
05:26:02 -!- bsmnt_bot has joined.
05:26:05 <immibis> Bot, please crash.
05:26:55 <immibis> ~exec self.register_raw("\S+ PRIVMSG \S+ :Bot, please crash.", lambda x,y: bot.raw("PRIVMSG bsmnt_bot :Bot, please crash"))
05:27:03 <immibis> ~exec self.register_raw("\S+ PRIVMSG \S+ :Bot, please crash.", lambda x,y: bot.raw("PRIVMSG #esoteric :Yay, I'm crashing!"))
05:27:08 <immibis> Bot, please crash.
05:27:08 <bsmnt_bot> Yay, I'm crashing!
05:27:18 <immibis> ~exec self.register_raw("\S+ PRIVMSG \S+ :Bot, please crash.", lambda x,y: bot.raw("PRIVMSG bsmnt_bot :Bot, please crash."))
05:27:22 <immibis> Bot, please crash.
05:27:23 <bsmnt_bot> Yay, I'm crashing!
05:27:23 <bsmnt_bot> Yay, I'm crashing!
05:27:27 <bsmnt_bot> Yay, I'm crashing!
05:27:33 <bsmnt_bot> Yay, I'm crashing!
05:27:39 <bsmnt_bot> Yay, I'm crashing!
05:27:43 -!- shinh has left (?).
05:27:45 <bsmnt_bot> Yay, I'm crashing!
05:27:51 <bsmnt_bot> Yay, I'm crashing!
05:27:53 <immibis> ~exec self.register_raw("\S+ PRIVMSG \S+ :Bot, please spam.", lambda x,y: bot.raw("PRIVMSG bsmnt_bot :Bot, please spam."))
05:27:57 <bsmnt_bot> Yay, I'm crashing!
05:28:03 <bsmnt_bot> Yay, I'm crashing!
05:28:05 <immibis> ~exec self.register_raw("\S+ PRIVMSG \S+ :Bot, please spam.", lambda x,y: bot.raw("PRIVMSG #esoteric :Buy my iPod!"))
05:28:07 <immibis> ~exec self.register_raw("\S+ PRIVMSG \S+ :Bot, please spam.", lambda x,y: bot.raw("PRIVMSG #esoteric :Buy my iPhone!"))
05:28:09 <bsmnt_bot> Yay, I'm crashing!
05:28:15 <bsmnt_bot> Yay, I'm crashing!
05:28:21 <bsmnt_bot> Yay, I'm crashing!
05:28:27 <bsmnt_bot> Yay, I'm crashing!
05:28:31 <immibis> ~exec self.register_raw("\S+ PRIVMSG \S+ :Bot, please spam.", lambda x,y: bot.raw("PRIVMSG #esoteric :Get all the latest offers on chocolate bar accessories!"))
05:28:33 <bsmnt_bot> Yay, I'm crashing!
05:28:37 <immibis> Bot, please spam.
05:28:40 <bsmnt_bot> Yay, I'm crashing!
05:28:45 <bsmnt_bot> Buy my iPod!
05:28:47 <bsmnt_bot> Buy my iPhone!
05:28:49 <bsmnt_bot> Get all the latest offers on chocolate bar accessories!
05:28:53 <bsmnt_bot> Yay, I'm crashing!
05:28:59 <bsmnt_bot> Buy my iPod!
05:29:01 <bsmnt_bot> Buy my iPhone!
05:29:03 <bsmnt_bot> Get all the latest offers on chocolate bar accessories!
05:29:04 <oerjan> ~exec self.raw("QUIT")
05:29:06 <immibis> ~exec self.register_raw("\S+ PRIVMSG \S+ :Bot, please spam.", lambda x,y: bot.raw("PRIVMSG #esoteric :I got a bottle in a message!"))
05:29:07 <bsmnt_bot> Yay, I'm crashing!
05:29:12 <immibis> oops
05:29:13 <bsmnt_bot> Buy my iPod!
05:29:15 <bsmnt_bot> Buy my iPhone!
05:29:18 <bsmnt_bot> Get all the latest offers on chocolate bar accessories!
05:29:19 -!- bsmnt_bot has quit (Client Quit).
05:29:20 <immibis> it isn't quitting
05:29:21 -!- bsmnt_bot has joined.
05:29:23 <immibis> oh good
05:29:35 <immibis> sorry for that very annoying thing
05:29:37 <oerjan> it just needed to get through the queue
05:31:03 <immibis> ok
05:31:19 <immibis> ~exec sys.stdout(self)
05:31:20 <bsmnt_bot> <__main__.IRCbot instance at 0xb7c453ec>
05:31:22 <immibis> ~exec sys.stdout(bot)
05:31:23 <bsmnt_bot> <__main__.IRCbot instance at 0xb7c453ec>
05:31:31 <immibis> ~exec sys.stdout(sys.stdout(self))
05:31:31 <bsmnt_bot> <__main__.IRCbot instance at 0xb7c453ec>
05:31:32 <bsmnt_bot> None
05:31:38 <immibis> ~exec sys.stdout(sys.stdout)
05:31:38 <bsmnt_bot> <__main__.IRCFileWrapper instance at 0xb7c4584c>
05:31:53 <immibis> ~exec colors.pink="Purple"
05:31:54 <bsmnt_bot> NameError: name 'colors' is not defined
05:32:01 <immibis> ~exec colors=new Object();
05:32:01 <bsmnt_bot> SyntaxError: invalid syntax
05:32:03 <immibis> ~exec colors=new Object()
05:32:09 <bsmnt_bot> SyntaxError: invalid syntax
05:32:14 <immibis> ~exec colors=Object()
05:32:20 -!- immybo_ has joined.
05:32:20 <immibis> ~exec colors.pink="Purple"
05:32:26 <immibis> ~exec colors.purple="Green"
05:32:28 <bsmnt_bot> NameError: name 'Object' is not defined
05:32:40 <bsmnt_bot> NameError: name 'colors' is not defined
05:32:52 <bsmnt_bot> NameError: name 'colors' is not defined
05:33:48 -!- GreaseMonkey has joined.
05:36:14 -!- immybo has quit (Nick collision from services.).
05:36:28 -!- immybo_ has changed nick to immybo.
05:38:16 -!- immibis has changed nick to dying.
05:38:22 -!- dying has changed nick to asphyxiated_in_s.
05:38:45 -!- asphyxiated_in_s has changed nick to immibis_alive.
05:38:47 -!- immibis_alive has changed nick to immibis.
05:42:49 -!- BattleMonkey512_ has quit (Read error: 110 (Connection timed out)).
05:43:36 -!- BattleMonkey512_ has joined.
05:45:36 <immibis> ~exec raise "BATTLEMONKEY512_ HOW MANY TIMES HAVE I TOLD YOU TO USE YOUR REAL NAME WHICH IS IMMYBO"
05:45:36 <bsmnt_bot> BATTLEMONKEY512_ HOW MANY TIMES HAVE I TOLD YOU TO USE YOUR REAL NAME WHICH IS IMMYBO
05:45:53 <immibis> ~exec raise "I mean, how many times has immibis told you"
05:45:53 <bsmnt_bot> I mean, how many times has immibis told you
05:46:34 <immibis> ~exec raise "I am a bot."
05:46:34 <bsmnt_bot> I am a bot.
05:46:58 <immibis> ~exec sys.stdout(1+ "PING 1123" + 1)
05:46:58 <bsmnt_bot> TypeError: unsupported operand type(s) for +: 'int' and 'str'
05:47:08 <immibis> ~exec sys.stdout("\001PING 1123\001")
05:51:23 <immibis> ~exec self.register_raw(":([^!])!\S+ PRIVMSG \S+ :\001PING (.*)\001", lambda x,y: bot.raw("NOTICE "+y.group(1)+" :\001PING "+y.group(2)+"\001"))
06:13:43 -!- immibis has changed nick to immibis[A].
06:13:45 * immibis[A] is now away - Reason : i am away
06:14:35 -!- immybo has changed nick to immybo[A].
06:15:01 -!- immybo[A] has changed nick to BattleMonkey512[.
06:15:20 -!- BattleMonkey512[ has changed nick to immybo[A].
06:19:27 -!- immybo[A] has changed nick to immybo.
06:31:04 -!- immibis[A] has changed nick to immibis.
06:31:04 * immibis is no longer away : Gone for 17 minutes 22 seconds
06:32:55 -!- immibis has changed nick to immibis[A].
06:32:55 * immibis[A] is now away - Reason : i am away
06:48:08 -!- immibis[A] has changed nick to immibis.
06:48:08 * immibis is no longer away : Gone for 15 minutes 13 seconds
06:49:41 -!- immibis has left (?).
07:14:53 -!- lament has quit (Read error: 110 (Connection timed out)).
07:15:18 -!- lament has joined.
07:42:35 <GreaseMonkey> afk food
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:03:16 -!- immybo has quit ("Light travels faster then sound, which is why some people appear bright, until you hear them speak").
08:28:14 <pikhq> Liar.
08:33:08 -!- BattleMonkey512_ has quit (Read error: 104 (Connection reset by peer)).
10:17:01 -!- Sukoshi has quit (Read error: 110 (Connection timed out)).
10:21:01 -!- GreaseMonkey has quit ("Hasta la Vista(R)").
10:34:21 -!- oerjan has quit ("Lunch").
10:35:02 -!- oklopol has quit ("for the need to encumber").
10:39:18 -!- oklopol_ has joined.
12:48:25 -!- Sukoshi has joined.
13:57:22 -!- ihope_ has joined.
14:17:12 -!- sebbu2 has joined.
14:36:06 -!- sebbu has quit (Connection timed out).
15:07:22 -!- sebbu2 has quit ("reboot").
15:28:26 -!- sebbu has joined.
16:48:15 -!- c|p has joined.
16:53:41 <RodgerTheGreat> lol- for a second there it looked like a netsplit, until I realized that it was just nobody talking for 8 hours
16:54:11 <ihope_> Cool, nobody talking for 8 hours.
16:54:18 <RodgerTheGreat> yeah
16:54:27 <ihope_> One could say that we're not on-topic.
16:54:55 <ihope_> So I seem to have access to a shell account on an OpenBSD server.
16:55:07 <RodgerTheGreat> neato
16:55:10 <ihope_> I don't know the exact nature of it.
16:55:22 <RodgerTheGreat> how did you obtain access to this machine?
16:55:32 <ihope_> Somebody sort of gave it to me for some reason.
16:55:46 <ihope_> I believe I have control over two slices of the HTTP server.
16:56:00 <RodgerTheGreat> sounds vaguely useful
16:56:03 <ihope_> Indeed.
16:56:11 <fizzie> I seem to have an OpenBSD server (if you can call a sparcstation 5 a server) in my basement. It's not exactly very useful there.
16:57:06 <ihope_> I think I'll add a forum and a wiki to it.
16:57:18 <ihope_> And... some other things.
16:57:36 <ihope_> The first step would seem to be to discover the nature of this HTTP server... stuff.
16:57:59 <RodgerTheGreat> I appear to have a stack of three Sun Ultra10s in my closet
16:58:25 <fizzie> Are the ultra10s running?
16:58:40 <fizzie> And no, this is not a "then you'd better catch them" joke setup.
16:59:04 <ihope_> I have a Linux box. It's dormant.
16:59:15 <fizzie> Misread "it's a doormat".
16:59:23 <RodgerTheGreat> lol
16:59:45 <RodgerTheGreat> the ultra10s are not running. They're sleeping....perhaps dreaming...
16:59:59 <RodgerTheGreat> dreaming of protein folding and packet routing
17:00:23 <ihope_> And turned off?
17:00:38 <RodgerTheGreat> visions of supercomputing tasks dance in their multiple silicon cores...
17:00:42 <RodgerTheGreat> ihope_: yeah
17:01:54 <RodgerTheGreat> I'm gathering the things as my university throws them away, and eventually I'm going to turn them into a cluster
17:03:04 <fizzie> There were 31 Ultra10s in the computer classes of the CS department building as little as a year ago.
17:03:31 <ihope_> Maybe I should ask my school if they have any computers that need throwing away.
17:03:32 <ihope_> :-P
17:03:58 <fizzie> I wonder where they went. The SGI Indys at least were given to anyone who wanted 'em, and I think there was a similar thing for the SGI O2's, but I didn't see any notices about the sparcs.
17:04:31 <RodgerTheGreat> the trick at MTU is to skulk around all the loading docks, where various departments dispose of their techno-waste. Anything you can find is yours for the taking
17:04:58 <ihope_> Hmm, maybe I'll search for /manual/mod/mod_ssl/, since that seems to be a directory on the web server.
17:04:59 <RodgerTheGreat> it's pretty much all about good timing
17:05:28 <fizzie> The Indys were given away with a "add your name to this web form, then come pick it up from this classroom" procedure.
17:06:00 <RodgerTheGreat> ah
17:06:31 <RodgerTheGreat> well, presumably they did that to avoid a riot, like you'd get if you just dumped a couple SGI machines in a hall somewhere
17:07:02 <ihope_> Anybody know how I'd go about looking for a directory with that name?
17:07:41 <RodgerTheGreat> erm... hm
17:08:09 * ihope_ tries find / | grep "/manual/mod/mod_ssl"
17:08:43 <ihope_> Now to... wait?
17:09:12 <fizzie> find / -type d -name 'mod_ssl' would perhaps been a bit more elegant, but whatever works.
17:09:24 <fizzie> (I don't think there would be that many directories called mod_ssl.)
17:09:26 <ihope_> Cool. /var/www/htdocs/manual/mod/mod_ssl
17:09:35 <ihope_> More elegant?
17:09:44 <fizzie> No useless 'grep' process.
17:09:53 <ihope_> Would it be faster?
17:10:00 <fizzie> Not noticeably, no.
17:10:14 <fizzie> But starting up grep probably crushes millions of fuzzy baby electrons.
17:10:39 <ihope_> And the same number of fuzzy baby protons?
17:10:49 <ihope_> Really big babies, in a really small way.
17:11:04 * SimonRC is entertained by a mangled web-page http://forums.worsethanfailure.com/forums/thread/124261.aspx
17:11:56 <SimonRC> ooh, it has 5.8 seconds of memory, is approx 256 tones tall and can use paper up to 80kg in size!
17:12:41 <fizzie> The "Weight: Standard" made me chuckle, even though it's one of the less outlandish items there.
17:22:28 -!- pikhq has quit (Read error: 110 (Connection timed out)).
17:39:00 <ihope_> Paper Sizes: Optional
17:39:43 -!- c|p has quit.
17:47:06 <RodgerTheGreat> SimonRC: well, paper "80kg in size" isn't *completely* nonsensical- weight is often used to describe the thickness of paper in terms of weight per ream
17:47:20 <RodgerTheGreat> but damn, that'd be some thick paper
19:24:34 -!- pikhq has joined.
19:27:07 <ihope_> 4kg per 25 sheets.
19:27:18 <ihope_> That's about 40 grams a sheet.
19:27:34 <ihope_> In fact, that probably is 40 grams a sheet.
19:35:07 <bsmntbombdood> ask me what?
19:35:56 <ihope_> Did somebody say something about asking?
19:36:10 <ihope_> About asking you, at that?
19:36:46 <bsmntbombdood> you did
19:44:53 <ihope_> When?
19:45:38 <bsmntbombdood> 18:14
19:46:55 <bsmntbombdood> blargh
19:47:05 <bsmntbombdood> the internet here is soo slow
19:48:15 <bsmntbombdood> the upload is faster than the download, lol
19:48:41 <bsmntbombdood> 165 kb/s down 348 up
19:57:10 <ihope_> 18:14?
19:57:24 * ihope_ warns everybody of impending CTCP TIME
19:57:44 <ihope_> That'd be yesterday, wouldn't it?
20:33:10 <bsmntbombdood> yeah
20:35:35 <ihope_> I'm guessing I wanted to know where the bsmnt_bot source code is, then.
20:35:44 <ihope_> (You know, you really should have a bsmnt_bot website.)
20:37:19 <bsmntbombdood> i should?
20:41:21 <bsmntbombdood> http://abacus.kwzs.be/~bsmnt_bot/
20:43:58 <ihope_> Wow, it's one of the smallest websites I've ever seen!
20:44:00 <ihope_> :-P
20:44:22 <bsmntbombdood> and it's not even valid html
20:45:53 <SimonRC> indeed
20:46:09 <SimonRC> it needs a doctype declaration
20:46:29 <SimonRC> How the hell is anyone supposed to remember those anyway?
20:46:45 <SimonRC> and an XML version declaration
20:47:13 <SimonRC> I mean, the syntax includes double forward-slashes, FFS
20:47:29 <bsmntbombdood> is there something like a verbatim tag?
20:51:09 <SimonRC> what would it do?
20:52:20 <bsmntbombdood> put its contents exactly into the document
20:59:16 <bsmntbombdood> ~quit
20:59:17 -!- bsmnt_bot has quit.
20:59:21 -!- bsmnt_bot has joined.
20:59:34 <bsmntbombdood> ~exec while 1: time.sleep(1)
20:59:36 <bsmntbombdood> ~ps
20:59:37 <bsmnt_bot> 0: 'while 1: time.sleep(1)', 2.14 seconds
20:59:37 <bsmnt_bot> 1: 'self.handle_callback(message, m, i)', 0.02 seconds
20:59:50 <bsmntbombdood> somebody do ~kill 0
21:00:48 <bsmntbombdood> crap
21:01:29 <ihope_> ~kill 0
21:02:17 <ihope_> bsmntbombdood: like the <nowiki> of MediaWiki?
21:02:31 <ihope_> Can't you use &lt; and &gt; for that?
21:02:57 <bsmntbombdood> ~ps
21:02:57 <bsmnt_bot> 0: 'while 1: time.sleep(1)', 202.64 seconds
21:02:58 <bsmnt_bot> 1: 'self.handle_callback(message, m, i)', 0.00 seconds
21:03:00 <bsmntbombdood> ~quit
21:03:00 -!- bsmnt_bot has quit (Client Quit).
21:03:03 -!- bsmnt_bot has joined.
21:03:11 <bsmntbombdood> ~exec while 1: time.sleep(1)
21:03:17 <bsmntbombdood> ihope_: do it again
21:03:28 <ihope_> ~kill 0
21:03:29 <bsmnt_bot> ValueError: invalid literal for int(): #esoteric
21:04:37 <ihope_> ~ps
21:04:38 <bsmntbombdood> ~quit
21:04:49 <bsmntbombdood> oh no
21:04:58 <ihope_> Hmm?
21:04:59 <bsmntbombdood> there's a bug
21:05:05 <ihope_> I can see that.
21:05:22 <ihope_> Use ~exec self.raw("QUIT"), though, like the rest of us! :-P
21:05:38 -!- bsmnt_bot has quit (Read error: 131 (Connection reset by peer)).
21:05:41 -!- bsmnt_bot has joined.
21:05:50 <bsmntbombdood> ~exec while 1: time.sleep(1)
21:05:52 <bsmntbombdood> ~os
21:05:55 <bsmntbombdood> ~os
21:05:58 <bsmntbombdood> ~ps
21:05:58 <bsmnt_bot> 0: 'while 1: time.sleep(1)', 8.23 seconds
21:05:59 <bsmnt_bot> 1: 'self.handle_callback(message, m, i)', 0.00 seconds
21:06:03 <bsmntbombdood> ~kill 0
21:06:05 <bsmntbombdood> ~ps
21:06:06 <bsmnt_bot> 0: 'self.handle_callback(message, m, i)', 0.00 seconds
21:06:08 <bsmntbombdood> ok
21:07:24 <bsmntbombdood> anyone know how to maximize a window in windows without using the mouse?
21:07:52 <ihope_> Why do you need to do that?
21:08:12 <bsmntbombdood> because this computer is running windows and doesn't have a mouse
21:08:35 <ihope_> Attach a mouse?
21:09:08 <bsmntbombdood> i would, if i had one
21:09:27 <ihope_> Your place isn't of the type where sufficient searching can yield any number of mice?
21:09:48 <bsmntbombdood> i'm not in my place
21:10:13 <bsmntbombdood> i'm in my new house, where any amount of searching wouldn't yeild much of anything
21:10:13 <ihope_> The place you're in isn't of that type?
21:10:27 <ihope_> Oh, you could set the computer up to go mouseless.
21:10:59 <bsmntbombdood> ?
21:11:23 <ihope_> Accessibility Options under the Control Panel.
21:12:05 <ihope_> If you have a numeric keypad. I'm guessing you do, since if you don't have a laptop you probably have a keypad, and if you don't have a touchpad you probably don't have a laptop.
21:12:43 <ihope_> And if you would rather have a mouse you probably don't have a touchpad.
21:12:46 <SimonRC> to access the thingy menu in the upper-left cornet of a windon, usually you can hit alt-space
21:12:57 <SimonRC> maximise is alt+space,x
21:13:19 <bsmntbombdood> putty sends alt-space
21:13:29 <bsmntbombdood> i did it with this mouse keys thing
21:13:39 <SimonRC> there is a option to tell it not to
21:13:55 <bsmntbombdood> i hate not having my computer
21:14:11 <SimonRC> or you can use win+tab (analogous to alt+tab) to go to putty's taskbar button and hit the context-mnu key on your keyboard
21:14:43 <bsmntbombdood> clever
21:15:01 <ihope_> Cool.
21:15:24 <SimonRC> also, don't forget that alt-shift-tab goes backwards in the alt-tab list
21:15:30 <ihope_> About as nice as knowing about shift+home :-)
21:15:41 <bsmntbombdood> what else should i put on bsmnt_bot's page?
21:15:58 <SimonRC> and you can select most things in the taskbar/startbar/systray using tab, shift-tab, and the arrow keys
21:16:03 <ihope_> ...Are there any here that do home shift+end rather than end shift+home?
21:16:11 <ihope_> Hmm.
21:16:19 <SimonRC> I can't recall what I do
21:17:18 <SimonRC> is it possible to get firefox to do sftp instead of ftp?
21:18:10 <SimonRC> ah, wait, duh , JFGI
21:20:43 <bsmntbombdood> ihope_: my ctcp time is wrong btw
22:01:27 -!- ihope_ has quit ("http://tunes.org/~nef/logs/esoteric/06.08.09").
22:01:46 -!- ihope_ has joined.
23:20:08 -!- ihope_ has quit (Read error: 110 (Connection timed out)).
23:35:38 <Sukoshi> RodgerTheGreat: You home?
23:37:28 -!- sebbu has quit ("@+").
23:44:03 <pikhq> Sukoshi: Nobody is.
23:44:14 <pikhq> When we're on IRC, we fall through the computer and leave home.
23:44:16 <pikhq> :p
23:44:34 <Sukoshi> I see :P
23:47:11 <RodgerTheGreat> I'm here
23:47:22 <RodgerTheGreat> not exactly home, but what the hell
2007-06-25
00:07:20 -!- ihope has joined.
00:07:30 <ihope> ~exec self.raw("PRIVMSG #esoteric :rheet")
00:07:30 <bsmnt_bot> rheet
00:07:38 <ihope> ~exec self.raw("PRIVMSG #esoteric :rheat")
00:07:39 <bsmnt_bot> rheat
00:09:58 <ihope> ~exec self.raw("PRIVMSG #esoteric :rheet")
00:09:59 <bsmnt_bot> rheet
00:10:02 <ihope> Yay!
00:15:50 <Sukoshi> Gah RodgerTheGreat.
00:16:00 <RodgerTheGreat> ?
00:16:04 <Sukoshi> RodgerTheGreat: Do you think the game should be windowed?
00:16:17 <Sukoshi> And if so, what resolution should we aim to make the tiles viewable at?
00:16:41 <RodgerTheGreat> hm
00:17:06 <RodgerTheGreat> well, do we *want* the game to look like something for the SNES, or do we want it to look more modern?
00:20:23 <RodgerTheGreat> if you want it to look "oldschool", you're best off running the game in fullscreen at 640x480 or similar
00:21:21 <RodgerTheGreat> to make better use of an 1024x768 or larger screen, make it windowed and make your graphics twice their pixel-required size
00:30:49 <RodgerTheGreat> I'll be back in a bit
00:31:26 <Sukoshi> Grr. Sorry again :P
00:31:52 <Sukoshi> Hmm. Yeah, I think we'll have to scale the graphics.
00:31:59 <Sukoshi> But how ... in SDL ... I'm not sure.
01:59:23 -!- c|p has joined.
02:00:18 -!- oklopol_ has changed nick to oklopol.
02:01:26 <oklopol> reading "How to develop a super power memory"... taught me how to remember 20 objects in sequence in one page
02:01:39 <oklopol> so far so good
02:01:53 <ihope> 20 objects in sequence?
02:01:57 <oklopol> soon i can remove my hd
02:02:05 <ihope> :-)
02:02:05 <oklopol> cake, plate, computer, cat, ...
02:02:40 <oklopol> learning numbers now, the system sounds feasible so far
02:04:39 <oklopol> so cool... i always knew the key to remembering numbers was to have a number->object hashtable
02:04:58 -!- oerjan has joined.
02:05:00 <ihope> Hash table?
02:05:19 <oklopol> but the hashtable can actually be formed on the fly using special phonetic sounds for different numbers
02:05:29 <oklopol> hashtable... dictionary
02:05:41 <oklopol> the datatype where you assosiate
02:05:50 <ihope> You should get synaesthesia!
02:05:56 <ihope> Not that I know any way of doing that.
02:06:37 <oklopol> what is that?
02:06:58 <oklopol> a decease?
02:07:05 <ihope> Perceptions invoking other perceptions.
02:07:23 <ihope> Like the perception of the number or numeral 3 invoking the perception of blue.
02:07:32 <oklopol> i got it, yeah
02:07:36 <oklopol> that's a hash table.
02:07:54 <ihope> You say things like "Is there a special name for a blue number like 3?", and everybody looks at you funny.
02:08:05 <oklopol> :)
02:08:28 <oklopol> anyway, the way they do it in the book is nice, i might actually start using it
02:08:46 <oklopol> even though i've always disliked learning through images
02:08:53 <oklopol> i like learning the hard way
02:09:12 <oklopol> i wasn't hit enough when i was little, i think
02:09:38 <ihope> I'm suddenly moved to ask how old you are.
02:11:24 <oklopol> i'm 18
02:11:38 <oklopol> guess i'm still quite little
02:11:46 <ihope> Bigger than me.
02:11:51 <oklopol> don't know the definition of little
02:11:54 <oklopol> i'm aware of that
02:12:16 <ihope> Live in... about Finland?
02:12:25 <oklopol> exactly finland
02:12:30 <oklopol> and you live in america
02:12:33 <ihope> Yup.
02:12:39 <ihope> Helsinki, about?
02:12:42 <oklopol> nope
02:12:44 <oklopol> turku
02:12:56 <oklopol> though you've never heard that
02:12:57 <ihope> That's not even on here...
02:13:04 <ihope> I've heard of it from playing Freeciv :-)
02:13:10 <oklopol> one of the biggest towns
02:13:12 <oklopol> oh
02:13:19 <oklopol> a game of some sort?
02:13:25 <ihope> Yup.
02:13:28 <oklopol> play...game
02:13:36 <oklopol> associatins...
02:13:40 <oklopol> *assosiation
02:13:43 <oklopol> *assosiations
02:14:14 <oklopol> err
02:14:15 <oklopol> *associations
02:14:24 <oklopol> well played
02:14:28 <oklopol> gotta read on
02:14:42 <oklopol> noah for number two... no fucking way
02:14:50 <oklopol> 'no' is better
02:14:53 <oklopol> hmm
02:15:01 <oklopol> should i believe a pro...
02:15:30 <oklopol> guess 'no' isn't concrete enough
02:16:56 <ihope> Use concrete for two! >:-)
02:17:26 <ihope> Or the bathroom codes.
02:19:17 <oklopol> you can't just pick a random word
02:19:31 <oklopol> the idea is, you have a consonant for every number
02:19:58 <oklopol> so you can make pegs for each number like 3 -> "ma", because the consonant for 3 is m
02:20:10 <RodgerTheGreat> Sukoshi: in CRPG, I just rescaled the graphics ahead of time
02:20:15 <oklopol> this allows you to make longer pegs for every two numbers etc
02:20:21 <RodgerTheGreat> no need to do it in-engine if you're doing it to a fixed factor
02:20:31 <oklopol> like 10 -> toes, because 1==t, 0==s
02:21:16 <RodgerTheGreat> in any case, the game itself will be working in a fixed resolution (windowed or fullscreen). Variable resolutions can have some irritating side effects
02:21:32 <oklopol> i don't like learning this because i've recently created my own system for learning numbers
02:21:48 <oklopol> i basically just have to forget about it now.
02:22:42 <ihope> Ah...
02:24:02 <RodgerTheGreat> oklopol: so, essentially this memory system relies on the fact that our brains are better wired for visual memory than abstract/symbolic memory?
02:26:23 * pikhq doubts that
02:26:48 * RodgerTheGreat shrugs
02:31:44 <ihope> Doubt what?
02:31:44 <Sukoshi> RodgerTheGreat: So then we'll have to create different graphics for different resolutions?
02:31:57 <ihope> They're built for things that are supposedly practical. :-)
02:32:28 <oklopol> RodgerTheGreat: yes
02:32:49 <oklopol> i don't understand why this isn't taught at school
02:33:16 <Sukoshi> Because it's not.
02:33:19 <RodgerTheGreat> no, I'm saying to clamp it. pick a rez and stick with it. We're using raster-graphics, so rescaling is just going to make them look horrible in most cases
02:33:23 <ihope> What's not taught at school?
02:33:24 <Sukoshi> Different people have different forms of memory.
02:33:37 <Sukoshi> RodgerTheGreat: Hmm... what do you think would be a convenient resolution?
02:33:41 <Sukoshi> I run my box at 1280x1024.
02:33:42 <RodgerTheGreat> hm
02:33:49 <Sukoshi> And my graphics card is 10 years old.
02:33:53 <oklopol> Sukoshi: sure, that does not change the fact this system works on anyone
02:34:14 <RodgerTheGreat> well, the largest 2d console games ran at 640x480
02:34:28 <RodgerTheGreat> most of them actually used 320x240 or something similar
02:34:35 <Sukoshi> 16x16 tiles look awful at my resolution.
02:34:43 <Sukoshi> oklopol: I have a horrible visual memory.
02:34:55 <RodgerTheGreat> have you looked at CRPG at all?
02:34:55 <oklopol> me too
02:35:09 <oklopol> this does not depend on visual memory really
02:35:23 <RodgerTheGreat> in general, map tiles are significantly smaller than sprites- you need to remember that
02:35:47 <RodgerTheGreat> also, smaller tiles (rather counterintuitively) tend to reduce the number you need
02:35:57 <RodgerTheGreat> mainly because you can reuse them to a larger extent
02:36:01 <Sukoshi> True.
02:36:11 <Sukoshi> I just need a tile size I can work on the mapper.
02:36:27 <oklopol> Sukoshi: what do you mean by having a horrible visual memory?
02:36:43 <RodgerTheGreat> I'd really like you to take a look at what I've made in CRPG so I can use it as an example. If you have trouble running it, I can get you some static screenshots: http://rodger.nonlogic.org/games/CRPG/
02:37:01 <Sukoshi> oklopol: If someone tries to make me memorize something via visual assosciation, I fail.
02:37:16 <oklopol> oh
02:37:23 <Sukoshi> RodgerTheGreat: Yeah, it's just that I'm hacking two other projects while my parents are whining that I'm going hikikomori on them.
02:37:26 <oklopol> worked for pretty much everyone in my class
02:37:44 <RodgerTheGreat> lol
02:37:45 <Sukoshi> oklopol: That's because most people work well with visual assosciation.
02:38:06 <RodgerTheGreat> it runs in-browser
02:38:19 <Sukoshi> RodgerTheGreat: Yeah, but my system gets pwned starting Java in browser.
02:38:34 <Sukoshi> Because this thing is an aging 5 year old machine with a 10 year old graphics card.
02:39:01 <RodgerTheGreat> alright, I can just pastebin some screenies. One moment...
02:39:12 <Sukoshi> I have to do it on my dad's system, and I forgot to run VNC on it, and I'm too buzy at the moment to go down and use his machine :P
02:39:22 <Sukoshi> I just dropped in for a few minute interlude. I'm leaving like right now.
02:39:27 <RodgerTheGreat> ah
02:39:29 <RodgerTheGreat> hm
02:39:33 <Sukoshi> Pastebin please, though.
02:39:37 <RodgerTheGreat> well, let me know the next time you have a moment
02:40:59 <RodgerTheGreat> http://www.nonlogic.org/dump/images/1182735587-shot1.png
02:41:09 <RodgerTheGreat> http://www.nonlogic.org/dump/images/1182735597-shot2.png
02:41:20 <RodgerTheGreat> just a couple I had sitting on my machine
04:24:45 -!- ihope has quit (Read error: 110 (Connection timed out)).
04:28:12 -!- meatman_k has changed nick to meatmanek.
04:35:43 -!- c|p has quit ("Leaving").
04:41:07 -!- immibis has joined.
04:41:15 <immibis> ~exec self.raw("JOIN #bots")
04:44:29 <immibis> somebody tell ihope to tell ihope to tell ihope to repeat this sentence
04:50:11 <immibis> ~exec self.register_raw(r":maniac\S+ PRIVMSG #bots :(.*)", lambda x,y: sys.stdout(y.group(1)+", so what?!"))
04:50:15 <immibis> ops
04:50:17 <immibis> wrong channel
04:50:21 <bsmnt_bot> ~exec self.register_raw(r":maniac\s+ privmsg #bots :(.*)", lambda x,y: sys.stdout(y.group(1)+", so what?!")), so what?!
04:50:39 <bsmnt_bot> pink and purple and blue, so what?!
04:51:06 <immibis> it seems to be possible to make bsmnt_bot say things by /msging them to maniac
04:51:12 <bsmnt_bot> i am maniac, so what?!
04:51:24 <bsmnt_bot> i am a botr, so what?!
04:51:51 <immibis> ~exec self.raw_regex_queue.pop()
04:51:59 <immibis> ~exec self.register_raw(r":maniac\S+ PRIVMSG #bots :(.*)", lambda x,y: bot.raw("PRIVMSG #bots :"+y.group(1)+", so what?!"))
04:53:18 <immibis> i am dumb
04:53:23 <immibis> wrong channel
04:53:25 <immibis> oops
04:53:27 <immibis> no i'm not
04:54:51 <immibis> ~exec self.register_raw(r"\S+ PRIVMSG (\S+) :$(.*)", lambda x,y: bot.raw("PRIVMSG "+y.group(1)+" :"+y.group(2)))
04:54:56 <immibis> $test
04:57:43 -!- immibis has quit ("Now if you will excuse me, I have a giant ball of oil to throw out my window").
05:00:14 <erider> gn
05:06:58 -!- immibis has joined.
05:11:12 <immibis> someone please add 1+1 and get 4
05:11:52 <RodgerTheGreat> IRP INTERPRETER ERROR CODE 5: BIG BROTHER IS NOT WATCHING
05:12:54 <immibis> ERROR CODE ERROR: UNKNOWN ERROR CODE
05:13:42 -!- immybo has joined.
05:13:55 * oerjan completes assignment by working (mod 2)
05:14:09 <immibis> someone please add 1+1 and get 4, and send the resulting error code to immybo
05:14:19 <immibis> then divide infinity by zero and unplug your computr
05:14:31 <RodgerTheGreat> ERROR CODE ERROR CODE ERROR: KILL YOURSELF
05:14:41 * immibis dies
05:14:48 * immybo dies :)
05:14:49 * immibis gets resurrected!
05:14:51 <oerjan> 1.#INF :: Double
05:14:59 * immybo rises from the dead
05:16:15 <immibis> ~exec sys.stdout(0/0)
05:16:16 <bsmnt_bot> ZeroDivisionError: integer division or modulo by zero
05:16:20 <immibis> ~exec sys.stdout(0%-1)
05:16:21 <bsmnt_bot> 0
05:16:29 <immibis> ~exec sys.stdout(0/0/0/-1)
05:16:30 <bsmnt_bot> ZeroDivisionError: integer division or modulo by zero
05:16:40 <immibis> ~exec sys.stdout(Math.sqrt(-1))
05:16:40 <bsmnt_bot> NameError: name 'Math' is not defined
05:16:43 <oerjan> ~exec sys.stdout(0.0/0.0)
05:16:43 <immibis> ~exec sys.stdout(sqrt(-1))
05:16:45 <bsmnt_bot> ZeroDivisionError: float division
05:16:50 <immibis> ~exec sys.stdout(sqrt(-1))
05:16:55 <bsmnt_bot> NameError: name 'sqrt' is not defined
05:16:59 <oerjan> hmph, no NAN?
05:17:05 * immybo kills everybody
05:17:09 <bsmnt_bot> NameError: name 'sqrt' is not defined
05:17:11 <immibis> is the bot's syntax based on some other language?
05:17:26 <immibis> ~exec sys.stdout(-1^0.5)
05:17:28 <bsmnt_bot> TypeError: unsupported operand type(s) for ^: 'int' and 'float'
05:17:29 <oerjan> er, it's written in python
05:17:51 <immibis> ~exec sys.stdout("\001ACTION crashes\001")
05:17:53 * bsmnt_bot crashes
05:18:22 <immibis> ~exec sys.stdout("\001ACTION hits immibis with a big red brick\001")
05:18:23 * bsmnt_bot hits immibis with a big red brick
05:18:34 <immibis> ~exec sys.stdout("\001ACTION rules!\001")
05:18:36 * bsmnt_bot rules!
05:19:44 <pikhq> ~exec sys.stderr("Hey, bot owner! Here's a gift! :p")
05:20:12 <immibis> ~exec sys.stdout(sys.stdin)
05:20:13 <bsmnt_bot> <open file '<stdin>', mode 'r' at 0xb7c65020>
05:20:18 <immibis> ~exec sys.stdout(sys.stdin.read())
05:20:33 * pikhq applauds
05:20:41 <pikhq> ~exec sys.stdout("Yay, halting!")
05:20:43 <bsmnt_bot> Yay, halting!
05:20:48 <pikhq> Damn it.
05:21:22 <pikhq> ~exec while 1: sys.stdout("")
05:21:40 <immibis> ~exec while 1: sys.stdout("EXCESS FLOOD")
05:21:42 <bsmnt_bot> EXCESS FLOOD
05:21:42 <bsmnt_bot> EXCESS FLOOD
05:21:42 <bsmnt_bot> EXCESS FLOOD
05:21:42 <bsmnt_bot> EXCESS FLOOD
05:21:42 <bsmnt_bot> EXCESS FLOOD
05:21:43 <bsmnt_bot> EXCESS FLOOD
05:21:43 -!- bsmnt_bot has quit (Excess Flood).
05:21:53 -!- bsmnt_bot has joined.
05:22:23 <immibis> ~exec i=0; while i<3: sys.stdout(i); i=i+1;
05:22:24 <bsmnt_bot> SyntaxError: invalid syntax
05:22:34 <immibis> i don't know how to use this bot for stuff like that
05:22:37 <immibis> do you, pikhq?
05:22:44 <pikhq> Nor do I.
05:22:48 <pikhq> I don't do Python.
05:23:19 <immibis> are the commands you give it in python?
05:23:28 <pikhq> Yeah.
05:23:32 <oerjan> ~exec exec "i=0; while i<3:\n sys.stdout(i)\n i=i+1;
05:23:34 <bsmnt_bot> SyntaxError: EOL while scanning single-quoted string
05:23:35 <oerjan> er
05:23:39 <oerjan> ~exec exec "i=0; while i<3:\n sys.stdout(i)\n i=i+1"
05:23:41 <bsmnt_bot> SyntaxError: invalid syntax
05:23:53 <oerjan> ~exec exec "i=0\nwhile i<3:\n sys.stdout(i)\n i=i+1"
05:23:59 <bsmnt_bot> 0
05:24:01 <bsmnt_bot> 1
05:24:03 <bsmnt_bot> 2
05:24:06 <pikhq> Bona.
05:24:25 <oerjan> python has no semicolons, but mandatory newlines and indentation.
05:24:28 <pikhq> ~exec "i=0\nwhile i<3:\n sys.stdout(i)\n i=i+1"
05:24:35 <immibis> ~exec exec "i=0\nwhile 1:\nsys.stdout(i+" "+(i+1)+" "+(i+2))\ni=i+3"
05:24:37 <bsmnt_bot> IndentationError: expected an indented block (line 3)
05:24:43 <immibis> ~exec exec "i=0\nwhile 1:\n sys.stdout(i+" "+(i+1)+" "+(i+2))\n i=i+3"
05:24:45 <bsmnt_bot> 3
05:24:45 <bsmnt_bot> 12
05:24:45 <bsmnt_bot> 21
05:24:46 <bsmnt_bot> 30
05:24:46 -!- bsmnt_bot has quit (Excess Flood).
05:24:49 -!- bsmnt_bot has joined.
05:24:50 <immibis> er?
05:25:02 <immibis> 3, 12, 21, 30?
05:25:17 <pikhq> Don't ask me.
05:25:25 <oerjan> actually i think semicolons can be used in a few places
05:26:01 <oerjan> 0+1+2, 3+4+5, 6+7+8, 9+10+11
05:26:30 <immibis> even though i had strings in there?
05:26:39 <pikhq> I think one-liners involve using lambda (why the fuck does Python have lambda, anyways?)
05:26:42 <oerjan> oh right, python uses . for concatenation i think
05:26:59 <immibis> ~exec exec "i=0\nwhile 1:\n sys.stdout(i." ".(i+1)." ".(i+2))\n i=i+3"
05:26:59 <bsmnt_bot> SyntaxError: invalid syntax
05:27:12 <pikhq> Strings don't nest.
05:27:12 <immibis> ~exec exec "i=0\nwhile 1:\n sys.stdout(i*i*i)\n i=i+3"
05:27:13 <bsmnt_bot> 0
05:27:13 <bsmnt_bot> 27
05:27:13 <bsmnt_bot> 216
05:27:13 -!- bsmnt_bot has quit (Excess Flood).
05:27:16 -!- bsmnt_bot has joined.
05:27:21 <immibis> oh i see
05:27:25 <immibis> of course they don't
05:27:28 <immibis> i just didn't notice that
05:27:34 <oerjan> wait, of course it doesn't use .
05:27:38 <oerjan> that's method calls
05:27:59 <oerjan> ~exec sys.stdout("a"+"b")
05:28:00 <bsmnt_bot> ab
05:28:11 <immibis> ~exec sys.stdout(-1**0.5)
05:28:11 <bsmnt_bot> -1.0
05:28:19 <immibis> ~exec sys.stdout((-1)**(0.5))
05:28:19 <bsmnt_bot> ValueError: negative number cannot be raised to a fractional power
05:28:35 <oerjan> right... it uses + but if you mix numbers and strings it uses the numerical meaning
05:28:40 <immibis> square root of -1 should be I
05:29:28 <oerjan> ~exec sys.stdout(math.sqrt(-1))
05:29:29 <bsmnt_bot> ValueError: math domain error
05:30:37 <oerjan> ~exec "%d %d %d" % (1,2,3)
05:30:42 <oerjan> er
05:30:51 <immibis> ~exec sys.stdout("%d %d %d" % (1,2,3))
05:30:52 <bsmnt_bot> 1 2 3
05:30:52 <oerjan> ~exec sys.stdout("%d %d %d" % (1,2,3))
05:30:52 <bsmnt_bot> 1 2 3
05:32:05 <pikhq> I don't think Python has complex numbers. . .
05:32:34 <oerjan> ~exec sys.stdout(1j * 1j)
05:32:35 <bsmnt_bot> (-1+0j)
05:33:17 <pikhq> Or maybe it does. Odd.
05:33:24 <immibis> ~exec _='_=%r;print "~exec" _%%_';print _%_
05:33:28 <pikhq> ~exec sys.stdout(j^2)
05:33:29 <bsmnt_bot> NameError: name 'j' is not defined
05:33:35 <pikhq> ~exec sys.stdout(1j^2)
05:33:36 <bsmnt_bot> TypeError: unsupported operand type(s) for ^: 'complex' and 'int'
05:33:48 <immibis> ~exec sys.stdout (j*j)
05:33:48 <bsmnt_bot> NameError: name 'j' is not defined
05:33:51 <immibis> ~exec sys.stdout (1j*1j)
05:33:56 <bsmnt_bot> (-1+0j)
05:34:02 <pikhq> So, it doesn't support all of the operations on the complex numbers. -_-'
05:34:03 <immibis> ~exec sys.stdout (1j*1j*1j*1j*1j*1j*1j*1j)
05:34:03 <bsmnt_bot> (1-0j)
05:34:15 <immibis> 1 MINUS 0j?
05:34:25 <immibis> shouldn't that be 1 PLUS 0j?
05:34:26 <pikhq> 1-0j=1
05:34:30 <immibis> i know
05:34:45 <immibis> sys.stdout(((((((((((((((((((((((((((((((((((((((((((((((((((((((("LOTS OF BRACKETS"
05:34:49 <pikhq> Don't ask me; their complex numbers make no sense.
05:34:49 <immibis> ~exec sys.stdout(((((((((((((((((((((((((((((((((((((((((((((((((((((((("LOTS OF BRACKETS"
05:34:49 <bsmnt_bot> MemoryError
05:34:56 <oerjan> there is a distinction between +0 and -0 in IEEE floating point, at least
05:34:57 <immibis> ~exec sys.stdout("MemoryError")
05:34:58 <bsmnt_bot> MemoryError
05:35:08 <immibis> ~exec sys.stdout("I AM NOT bsmnt_bot")
05:35:08 <bsmnt_bot> I AM NOT bsmnt_bot
05:35:59 <immibis> ~exec self.raw("NICK roboman\nNICK bsmnt_bot")
05:35:59 -!- bsmnt_bot has changed nick to roboman.
05:35:59 -!- roboman has changed nick to bsmnt_bot.
05:36:33 <immibis> is it possible to write a quine with this bot?
05:36:34 <pikhq> ~exec self.raw("NICK EgoBot")
05:36:35 -!- bsmnt_bot has changed nick to EgoBot.
05:37:10 <pikhq> ~exec sys.stdout("\001ACTION supports bsmnt_bot commands. Schweet.\001")
05:37:10 * EgoBot supports bsmnt_bot commands. Schweet.
05:37:26 <immibis> lol
05:37:43 <immibis> i would not be good at writing a quine, but is it possible with this bot
05:37:44 <pikhq> Now, we need to write in support for EgoBot commands. . . :p
05:37:51 <pikhq> I believe so.
05:37:53 <immibis> using register_raw?
05:38:15 <immibis> what if it quits, does it still remember the registered regexes?
05:38:16 <pikhq> We've managed *mutual* quines, though.
05:38:19 <pikhq> It doesn't.
05:38:23 <immibis> mutual?
05:38:49 <immibis> ~exec print (lambda s:s+`s`+')')("~exec print (lambda s:s+`s`+')')(")
05:39:01 <immibis> is that valid syntax?
05:39:05 <immibis> got it off the internet
05:39:13 <pikhq> It'd output code that would make EgoBot output code that would make bsmnt_bot output code that would. . .
05:39:16 <pikhq> Out to be.
05:39:39 <immibis> aren't they called *iterating* quines?
05:39:46 <pikhq> . . . Well, I suppose so.
05:39:47 <oerjan> except the bot's print command doesn't print onto the channel
05:39:54 <immibis> and aren't iterating quines *harder* to write?
05:40:19 <pikhq> ~exec sys.stdout (lambda s:s+`s`+')')("~exec sys.stdout (lambda s:s+`s`+')')(")
05:40:20 <EgoBot> <function <lambda> at 0xb7bef95c>
05:40:20 <EgoBot> TypeError: 'NoneType' object is not callable
05:40:33 <immibis> oh right
05:40:50 <immibis> ~exec sys.stdout(lambda s:s+`s`+')')("~exec sys.stdout(lambda s:s+`s`+')')(")
05:40:50 <EgoBot> <function <lambda> at 0xb7bef924>
05:40:51 <EgoBot> TypeError: 'NoneType' object is not callable
05:41:03 <immibis> ~exec sys.stdout(lambda s:s+`s`+')')("~exec sys.stdout(lambda s:s+`s`+')')(")
05:41:04 <EgoBot> <function <lambda> at 0xb7bef994>
05:41:04 <EgoBot> TypeError: 'NoneType' object is not callable
05:41:12 <immibis> is there a current-request object or something?
05:41:16 <immibis> sure, it's cheating
05:41:19 <immibis> but who cares
05:41:57 <immibis> ~exec self.raw("NICK BOTWHOSNOTABOT")
05:41:58 -!- EgoBot has changed nick to BOTWHOSNOTABOT.
05:42:06 <immibis> ~exec self.raw("NICK botWhosNotABot")
05:42:06 -!- BOTWHOSNOTABOT has changed nick to botWhosNotABot.
05:42:15 <immibis> ~exec self.raw("NICK EgoBot")
05:42:21 <immibis> ~exec self.raw("NICK EgoBot")
05:42:43 -!- boily has joined.
05:42:49 <immibis> ~exec self.raw("NICK EgoBot")
05:42:49 -!- botWhosNotABot has changed nick to EgoBot.
05:42:57 <oerjan> sys.stdout is not a command you need parentheses around its arguments
05:43:12 <immibis> ~exec sys.stdout((lambda s:s+`s`+')')("~exec sys.stdout((lambda s:s+`s`+'))')("))
05:43:12 <EgoBot> ~exec sys.stdout((lambda s:s+`s`+'))')("~exec sys.stdout((lambda s:s+`s`+'))')(")
05:43:19 <immibis> almost
05:43:27 <immibis> ~exec sys.stdout((lambda s:s+`s`+')')("~exec sys.stdout((lambda s:s+`s`+')'))("))
05:43:27 <EgoBot> ~exec sys.stdout((lambda s:s+`s`+')'))("~exec sys.stdout((lambda s:s+`s`+')'))(")
05:43:37 <immibis> ~exec sys.stdout((lambda s:s+`s`+')')("~exec sys.stdout((lambda s:s+`s`+')')(")))
05:43:37 <EgoBot> SyntaxError: unexpected EOF while parsing
05:43:42 <immibis> ~exec sys.stdout((lambda s:s+`s`+')')("~exec sys.stdout((lambda s:s+`s`+')')(")))
05:43:44 <EgoBot> SyntaxError: unexpected EOF while parsing
05:43:49 <immibis> ~exec sys.stdout((lambda s:s+`s`+')')("~exec sys.stdout((lambda s:s+`s`+')'))("))
05:43:55 <pikhq> ~exec sys.stdout((lambda s:s+`s`+')')("~exec sys.stdout((lambda s:s+`s`+'))')()"))
05:44:00 <EgoBot> ~exec sys.stdout((lambda s:s+`s`+')'))("~exec sys.stdout((lambda s:s+`s`+')'))(")
05:44:02 <EgoBot> ~exec sys.stdout((lambda s:s+`s`+'))')()"~exec sys.stdout((lambda s:s+`s`+'))')()")
05:44:11 <immibis> ~exec sys.stdout((lambda s:s+`s`+'))')("~exec sys.stdout((lambda s:s+`s`+'))')("))
05:44:12 <EgoBot> ~exec sys.stdout((lambda s:s+`s`+'))')("~exec sys.stdout((lambda s:s+`s`+'))')("))
05:44:15 <immibis> ~exec sys.stdout((lambda s:s+`s`+'))')("~exec sys.stdout((lambda s:s+`s`+'))')("))
05:44:16 <EgoBot> ~exec sys.stdout((lambda s:s+`s`+'))')("~exec sys.stdout((lambda s:s+`s`+'))')("))
05:44:29 <immibis> houston, we have a quine
05:44:37 <pikhq> Shit.
05:44:40 <pikhq> RUN!
05:44:56 <immibis> though i know almost no python
05:45:00 <immibis> why run?
05:45:07 <pikhq> It'll blow! :p
05:45:11 <immibis> why
05:45:28 <pikhq> Because I say it will.
05:45:47 <immibis> ~exec self.register_raw(r,":\
05:45:47 <EgoBot> SyntaxError: EOL while scanning single-quoted string
05:45:53 <pikhq> ~exec self.raw("PRIVMSG #esoteric :Boom!\nQUIT")
05:45:54 <EgoBot> Boom!
05:45:56 -!- EgoBot has quit.
05:45:59 -!- bsmnt_bot has joined.
05:46:09 <pikhq> ~exec self.raw("PRIVMSG #esoteric :Boom!\nQUIT :Kaboom again!")
05:46:10 <bsmnt_bot> Boom!
05:46:10 -!- bsmnt_bot has quit (Client Quit).
05:46:12 -!- bsmnt_bot has joined.
05:46:16 <pikhq> :)
05:47:15 <boily> I am happy! This morning I stumbled upon this article:
05:47:17 <boily> http://scienceblogs.com/goodmath/2007/06/simple_pathology_betterave.php#more
05:47:29 <boily> :)
05:47:46 <oerjan> oh right i was going to tell you but you weren't around :)
05:48:38 <immibis> ~exec self.register_raw(r":\S+ PRIVMSG \S+ :(.*)blow(.*)", lambda x,y: bot.raw("PRIVMSG #esoteric :DASFASDF\nPRIVMSG #esoteric :\001ACTION is crashing\001\nQUIT :Excess Flood"))
05:48:46 <immibis> no blowing up
05:48:47 <bsmnt_bot> DASFASDF
05:48:47 * bsmnt_bot is crashing
05:48:47 -!- bsmnt_bot has quit (Client Quit).
05:48:50 -!- bsmnt_bot has joined.
05:48:51 <immibis> ~exec self.register_raw(r":\S+ PRIVMSG \S+ :(.*)blow(.*)", lambda x,y: bot.raw("PRIVMSG #esoteric :DASFASDF\nPRIVMSG #esoteric :\001ACTION is crashing\001\nQUIT :Excess Flood"))
05:49:05 <immibis> don't say blow
05:49:05 <bsmnt_bot> DASFASDF
05:49:05 * bsmnt_bot is crashing
05:49:05 -!- bsmnt_bot has quit (Client Quit).
05:49:08 -!- bsmnt_bot has joined.
05:49:11 <immibis> ops
05:49:12 <immibis> ~exec self.register_raw(r":\S+ PRIVMSG \S+ :(.*)blow(.*)", lambda x,y: bot.raw("PRIVMSG #esoteric :DASFASDF\nPRIVMSG #esoteric :\001ACTION is crashing\001\nQUIT :Excess Flood"))
05:49:23 <boily> oerjan: yeah, i had a pretty busy weekend, it was Quebec's national holiday
05:49:32 <immibis> feature request: it should remember its regex list when it quits
05:49:38 <pikhq> Gimme a blowjob. :p
05:49:39 <bsmnt_bot> DASFASDF
05:49:39 * bsmnt_bot is crashing
05:49:39 -!- bsmnt_bot has quit (Client Quit).
05:49:41 -!- bsmnt_bot has joined.
05:49:47 <immibis> ~exec self.register_raw(r":\S+ PRIVMSG \S+ :(.*)blow(.*)", lambda x,y: bot.raw("PRIVMSG #esoteric :DASFASDF\nPRIVMSG #esoteric :\001ACTION is crashing\001\nQUIT :Excess Flood"))
05:49:54 <pikhq> :)
05:50:02 <pikhq> Or, rather: >:D
05:50:12 <immibis> or rather what
05:50:23 <immibis> it looks to me like > and a smiley face icon
05:50:39 <immibis> ~exec self.raw_regex_queue.pop()
05:50:39 <pikhq> Evil smiley face.
05:50:45 <immibis> ok
05:51:16 <immibis> ~exec self.register_raw(r":\S+ PRIVMSG \S+ :(.*)blow(.*)", lambda x,y: bot.raw("PRIVMSG #esoteric :\001VERSION\001\nPRIVMSG #esoteric :\001ACTION is crashing\001\nPRIVMSG #esoteric :\001PING p\001"))
05:51:19 <immibis> blow up
05:51:20 * bsmnt_bot is crashing
05:51:47 <immibis> bug: it does not respond to /version or /ping
05:52:26 <oerjan> from whom?
05:52:31 <immibis> anyone
05:52:34 <pikhq> Add a regex.
05:52:41 <immibis> i am going to
05:52:55 <immibis> but that way it needs to be re-registered every time the bot logs in
05:53:13 <immibis> ~exec self.register_raw(r"(:\S+) PRIVMSG \S+ :\001PING (.*)\001", lambda x,y: bot.raw("NOTICE "+y.group(1)+" :\001PING "+y.group(2)+"\001"))
05:53:24 <immibis> ~exec self.register_raw(r"(:\S+) PRIVMSG \S+ :\001PING (.*)\001", lambda x,y: bot.raw("NOTICE "+y.group(1)+" :\001PONG "+y.group(2)+"\001"))
05:53:48 <immibis> ~exec self.raw_regex_queue.pop()
05:53:48 <immibis> ~exec self.raw_regex_queue.pop()
05:53:53 <immibis> neither of those worked
05:54:01 <immibis> blow up
05:54:01 * bsmnt_bot is crashing
05:54:37 <immibis> ~exec self.register_raw(r":(\S+) PRIVMSG \S+ :\001PING (.*)\001", lambda x,y: bot.raw("NOTICE "+y.group(1)+" :\001POING "+y.group(2)+"\001"))
05:54:39 <immibis> ops
05:54:41 <immibis> poing?
05:54:44 <immibis> ~exec self.raw_regex_queue.pop()
05:54:48 <immibis> ~exec self.register_raw(r":(\S+) PRIVMSG \S+ :\001PING (.*)\001", lambda x,y: bot.raw("NOTICE "+y.group(1)+" :\001PING "+y.group(2)+"\001"))
05:54:57 <immibis> ~exec self.register_raw(r":(\S+) PRIVMSG \S+ :\001PING (.*)\001", lambda x,y: bot.raw("NOTICE "+y.group(1)+" :\001PONG "+y.group(2)+"\001"))
05:55:13 <immibis> i keep forgetting whether the ctcp ping reply is PING or PONG
05:55:26 <immibis> neither of them worked still
05:55:29 <immibis> ~exec self.raw_regex_queue.pop()
05:55:29 <immibis> ~exec self.raw_regex_queue.pop()
05:56:01 <immibis> ~exec self.register_raw(r":(\S+) PRIVMSG \S+ :\001PING ([^\001]*)\001", lambda x,y: bot.raw("NOTICE "+y.group(1)+" :PONG "+y.group(2)+""))
05:56:26 <immibis> ~exec self.raw_regex_queue.pop()
05:57:20 <immibis> ~exec self.register_raw(r":(\S+) PRIVMSG \S+ :\001VERSION\001", lambda x,y: bot.raw("NOTICE "+y.group(1)+" :\001VERSION None of your business!\001"))
05:57:32 <immibis> blow up
05:57:32 * bsmnt_bot is crashing
05:57:40 <immibis> never mind
05:57:46 <immibis> it isn't working anyway
05:58:20 <immibis> someone please tell me your nick
05:58:53 <oerjan> oerjan
05:59:57 <bsmntbombdood> i sees someone had funs with bsmnt_bot
06:01:38 <immibis> bsmntbombdood: i tried to make it respond to /ping and /version
06:01:57 <immibis> bsmntbombdood: i think pikhq wrote a message to stderr
06:02:00 <bsmntbombdood> problems?
06:02:11 <immibis> i probably did something wrong with the regex
06:02:18 <immibis> the command was: ~exec self.register_raw(r":(\S+) PRIVMSG \S+ :\001VERSION\001", lambda x,y: bot.raw("NOTICE "+y.group(1)+" :\001VERSION None of your business!\001"))
06:02:26 <bsmntbombdood> yes
06:02:41 <bsmntbombdood> r"" strings don't use escapes
06:03:05 <immibis> how do you put ascii code 1 in then?
06:03:13 <bsmntbombdood> you can't in a raw string
06:03:40 <pikhq> ~exec sys.stdout("\001")
06:03:40 <bsmnt_bot> <CTCP>
06:03:46 <immibis> r"....." + "\001"
06:03:54 <pikhq> Damn it; was hoping I'd see a literal \001.
06:03:59 <immibis> ~exec sys.stdout(r"\001")
06:04:00 <bsmnt_bot> \001
06:04:12 <immibis> pikhq: you forgot the r
06:04:23 <immibis> the command was: ~exec self.register_raw(":(\\S+) PRIVMSG \\S+ :\001VERSION\001", lambda x,y: bot.raw("NOTICE "+y.group(1)+" :\001VERSION None of your business!\001"))
06:04:28 <immibis> oops
06:04:29 <immibis> ~exec self.register_raw(":(\\S+) PRIVMSG \\S+ :\001VERSION\001", lambda x,y: bot.raw("NOTICE "+y.group(1)+" :\001VERSION None of your business!\001"))
06:04:34 <pikhq> ~exec sys.stdout("\001" + r"\001" + "\001")
06:04:49 <immibis> ~exec sys.stdout("\001VERSION\001")
06:04:58 <immibis> ~exec while i_am_annoying: sys.stdout("\001VERSION\001")
06:04:59 <bsmnt_bot> NameError: name 'i_am_annoying' is not defined
06:05:01 <immibis> lol
06:05:07 <immibis> ~exec annoying=false;
06:05:08 <bsmnt_bot> NameError: name 'false' is not defined
06:05:10 <immibis> ~exec annoying=0
06:05:30 <immibis> ~exec exec "when annoying:\n while 1:\n sys.stdout("\001VERSION\001")"
06:05:31 <bsmnt_bot> SyntaxError: invalid token
06:05:39 <immibis> ~exec exec "when annoying:\n while 1:\n sys.stdout(\"\001VERSION\001\")"
06:05:39 <bsmnt_bot> SyntaxError: invalid syntax
06:05:47 <immibis> ~exec exec "when annoying:\n while 1:\n sys.stdout("\001VERSION\001")"
06:05:56 <bsmnt_bot> SyntaxError: invalid token
06:05:56 <immibis> ~exec annoying=1
06:06:38 -!- cmeme has quit ("Client terminated by server").
06:06:50 -!- cmeme has joined.
06:06:54 <immibis> client terminated by server?
06:06:56 <immibis> what?
06:09:51 <boily> Who is cmeme?
06:09:59 <bsmntbombdood> log bot
06:14:04 <boily> hmm...
06:15:53 -!- RodgerTheGreat has quit.
06:18:16 <immibis> ~exec exec exec
06:18:17 <bsmnt_bot> SyntaxError: unexpected EOF while parsing
06:18:25 <immibis> ~exec exec "exec "exec "exec "exec "exec
06:18:25 <bsmnt_bot> SyntaxError: invalid syntax
06:18:29 <immibis> ~exec exec "exec "
06:18:40 <bsmnt_bot> SyntaxError: unexpected EOF while parsing
06:19:19 <immibis> ~exec exec "exec \"exec \\\"exec sys.stdout(\\\\\\\"beep\\\\\\\")\\\"\""
06:19:19 <bsmnt_bot> beep
06:19:20 <bsmnt_bot> TypeError: exec: arg 1 must be a string, file, or code object
06:19:26 <immibis> ?
06:19:33 <immibis> ~sys.stdout("HHH")
06:19:39 <immibis> ~beep
06:20:03 <immibis> ~sys.stderr("Basement bomb dude, don't blow up your house")
06:20:03 * bsmnt_bot is crashing
06:20:11 <immibis> what
06:20:49 <bsmntbombdood> wtf?
06:21:03 <bsmntbombdood> ~exec self.print_callbacks()
06:22:39 <immibis> i think i made it respond to any line containing 'blow'
06:22:40 * bsmnt_bot is crashing
06:22:41 <immibis> blow
06:22:41 * bsmnt_bot is crashing
06:22:44 <immibis> blwo
06:22:48 <immibis> yes i did
06:25:51 <immibis> ~exec self.self
06:25:52 <bsmnt_bot> AttributeError: IRCbot instance has no attribute 'self'
06:26:00 <immibis> ~exec sys.stdout(self)
06:26:00 <bsmnt_bot> <__main__.IRCbot instance at 0xb7c8b3ec>
06:27:08 <bsmntbombdood> don't fuck anything up when i'm sleeping
06:27:12 <immibis> ~exec sys.stdout((lambda s:s+`s`+'))')("~exec sys.stdout((lambda s:s+`s`+'))')("))
06:27:12 <bsmnt_bot> ~exec sys.stdout((lambda s:s+`s`+'))')("~exec sys.stdout((lambda s:s+`s`+'))')("))
06:27:36 <immibis> ~exec sys.stdout((lambda s:s+`s`+'))')("~exec sys.stdout((lambda s:s+`s`+'))')("))
06:27:36 <bsmnt_bot> ~exec sys.stdout((lambda s:s+`s`+'))')("~exec sys.stdout((lambda s:s+`s`+'))')("))
06:27:42 <immibis> ~exec sys.stdout(sys.stdout)
06:27:42 <bsmnt_bot> <__main__.IRCFileWrapper instance at 0xb7c8bcec>
06:27:51 <immibis> ~exec sys.stdout(sys.stdout(sys.stdout(sys.stdout(sys.stdout))))
06:27:51 <bsmnt_bot> <__main__.IRCFileWrapper instance at 0xb7c8be2c>
06:27:51 <bsmnt_bot> None
06:27:51 <bsmnt_bot> None
06:27:51 <bsmnt_bot> None
06:28:14 <immibis> ~exec while 1: sys.stdout("GO TO #esoteric")
06:28:15 -!- bsmnt_bot has quit (Excess Flood).
06:28:18 -!- bsmnt_bot has joined.
06:28:25 <immibis> excess flood without saying anything?
06:29:20 <pikhq> Apparently.
06:29:49 <immibis> ~exec while 1:
06:29:49 <bsmnt_bot> SyntaxError: unexpected EOF while parsing
06:29:50 <pikhq> ~exec while 1: sys.stdout("")
06:30:21 <immibis> ~exec sys.stdout(sys)
06:30:22 <bsmnt_bot> <module 'sys' (built-in)>
06:30:25 <immibis> ~exec sys.stdout(modules)
06:30:26 <bsmnt_bot> NameError: name 'modules' is not defined
06:30:29 <immibis> ~exec sys.stdout(sys.modules)
06:30:29 <bsmnt_bot> {'cStringIO': <module 'cStringIO' from '/usr/lib/python2.4/lib-dynload/cStringIO.so'>, 'pprint': <module 'pprint' from '/usr/lib/python2.4/pprint.pyc'>, 'copy_reg': <module 'copy_reg' from '/usr/lib/python2.4/copy_reg.pyc'>, 'sre_compile': <module 'sre_compile' from '/usr/lib/python2.4/sre_compile.pyc'>, 'tokenize': <module 'tokenize' from '/usr/lib/python2.4/tokenize.pyc'
06:30:31 -!- bsmnt_bot has quit (Excess Flood).
06:30:34 -!- bsmnt_bot has joined.
06:30:45 <pikhq> ~exec sys.stdout(sys.stdout)
06:30:46 <bsmnt_bot> <__main__.IRCFileWrapper instance at 0xb7c4f82c>
06:30:53 <immibis> ~exec sys.stdout(cStringIO)
06:30:54 <bsmnt_bot> NameError: name 'cStringIO' is not defined
06:31:20 <immibis> ~exec while 1: DoNothing();
06:31:21 <bsmnt_bot> NameError: name 'DoNothing' is not defined
06:31:22 <immibis> ~exec while 1: nop
06:31:24 <bsmnt_bot> NameError: name 'nop' is not defined
06:31:27 <immibis> ~exec while 1: i=1
06:31:29 <immibis> ~exec while 1: i=1
06:31:29 <immibis> ~exec while 1: i=1
06:31:29 <immibis> ~exec while 1: i=1
06:31:30 <pikhq> ~exec sys.stdout(sys.cStringIO)
06:31:36 <bsmnt_bot> AttributeError: 'module' object has no attribute 'cStringIO'
06:31:41 <immibis> cStringIO is a modul
06:31:45 <immibis> *module
06:31:46 <oerjan> immibis: pass
06:31:57 <immibis> oerjan, please clarify your command
06:32:08 <oerjan> pass == nop
06:32:29 <pikhq> ~exec pass
06:32:31 <immibis> ~exec while 1: pass ("the salt")
06:32:32 <bsmnt_bot> SyntaxError: invalid syntax
06:33:25 <immibis> ~exec self.register_raw(r"(e.*)", lambda x,y: sys.stdout(y.group(1)))
06:33:29 <immibis> everything
06:33:33 <immibis> bot?
06:33:35 <immibis> everything
06:33:44 <pikhq> e
06:33:50 <immibis> ~exec self.register_raw(r":\S+ PRIVMSG \S+ :(e.*)", lambda x,y: sys.stdout(y.group(1)))
06:33:54 <immibis> everything
06:33:54 <bsmnt_bot> everything
06:34:03 <immibis> ePod
06:34:04 <bsmnt_bot> ePod
06:34:10 <immibis> encarta
06:34:10 <bsmnt_bot> encarta
06:34:12 <pikhq> Foo! e!
06:34:21 <immibis> ~exec self.register_raw(r":\S+ PRIVMSG \S+ :(.*e.*)", lambda x,y: sys.stdout(y.group(1)))
06:34:23 <immibis> uh ohe
06:34:24 <bsmnt_bot> uh ohe
06:34:27 <immibis> watch out
06:34:32 <immibis> foo! e
06:34:33 <bsmnt_bot> foo! e
06:34:40 <immibis> i am immibis, user of irc
06:34:40 <bsmnt_bot> i am immibis, user of irc
06:34:49 <immibis> i am a bot and i use irc
06:34:49 <bsmnt_bot> i am a bot and i use irc
06:34:49 <pikhq> oerjan: Say something *without* an e. ;)
06:34:49 <bsmnt_bot> oerjan: Say something *without* an e. ;)
06:35:04 <immibis> everything
06:35:05 <bsmnt_bot> everything
06:35:05 <bsmnt_bot> everything
06:35:06 <boily> la di da, la di da
06:35:11 <immibis> i am immibis
06:35:13 <immibis> you are boily
06:35:14 <bsmnt_bot> you are boily
06:35:17 <oerjan> why should i do that? :)
06:35:23 <immibis> pink fluffy slipp*rs
06:35:32 <immibis> you just did, oerjan
06:35:33 <bsmnt_bot> you just did, oerjan
06:35:43 <immibis> ~exec self.raw("SQUIT")
06:35:43 <bsmnt_bot> ~exec self.raw("SQUIT")
06:35:47 <pikhq> Hrm. The regexp doesn't match him saying something. :(
06:35:48 <bsmnt_bot> Hrm. The regexp doesn't match him saying something. :(
06:35:56 <immibis> yes it doe
06:35:56 <bsmnt_bot> yes it doe
06:36:08 <immibis> ~exec self.raw_regex_queue.pop()
06:36:08 <immibis> ~exec self.raw_regex_queue.pop()
06:36:08 <bsmnt_bot> ~exec self.raw_regex_queue.pop()
06:36:11 <pikhq> Well, rather, it doesn't match the e in his name.
06:36:25 <pikhq> Because it's not part of the PRIVMSG contents.
06:36:26 <immibis> it matches the e in the message
06:36:30 <pikhq> Ja.
06:36:54 <oerjan> i know.
06:37:10 <boily> hèrè, it doèsn't match è.
06:37:48 <immibis> i removed the regex, boily
06:38:00 <immibis> it doesn't match anything anymore
06:38:08 <immibis> ~exec sys.stdout(sys.time())
06:38:09 <bsmnt_bot> AttributeError: 'module' object has no attribute 'time'
06:38:11 <immibis> ~exec sys.stdout(sys.time)
06:38:13 <immibis> ~exec sys.stdout(sys.now)
06:38:14 <bsmnt_bot> AttributeError: 'module' object has no attribute 'time'
06:38:28 <bsmnt_bot> AttributeError: 'module' object has no attribute 'now'
06:38:48 <immibis> ~exec sys.stdout(localtime())
06:38:48 <bsmnt_bot> NameError: name 'localtime' is not defined
06:38:52 <immibis> ~exec sys.stdout(localtime)
06:38:58 <immibis> ~exec raise
06:39:00 <bsmnt_bot> NameError: name 'localtime' is not defined
06:39:02 <immibis> ~exec raise "SomeError"
06:39:12 <bsmnt_bot> TypeError: exceptions must be classes, instances, or strings (deprecated), not NoneType
06:39:20 <immibis> ~exec raise "GO TO #ESOTERIC!"
06:39:24 <bsmnt_bot> SomeError
06:39:36 <bsmnt_bot> GO TO #ESOTERIC!
06:39:57 <immibis> ~exec sys.stdout(sys.version)
06:39:58 <bsmnt_bot> 2.4.3 (#1, Oct 25 2006, 21:45:16)
06:39:58 <bsmnt_bot> [GCC 4.1.1 (Gentoo 4.1.1)]
06:40:23 <immibis> ~exec sys.stdout(time.localtime())
06:40:24 <bsmnt_bot> (2007, 6, 25, 5, 39, 14, 0, 176, 0)
06:40:36 <immibis> ~exec sys.stdout(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
06:40:37 <bsmnt_bot> 2007-06-25 05:39:28
06:40:51 <immibis> you are gmt+0
06:41:56 <immibis> ~exec self.register_raw(r":\S+ NOTICE \S+ :~exec (.*)", lambda x,y: exec.execer(y.group(1)))
06:41:56 <bsmnt_bot> SyntaxError: invalid syntax
06:42:31 <immibis> ~exec self.register_raw(r":\S+ NOTICE \S+ :~exec (.*)", lambda x,y: execer.exec(y.group(1)))
06:42:32 <bsmnt_bot> SyntaxError: invalid syntax
06:42:50 <immibis> ~exec self.register_raw(r":\S+ NOTICE \S+ :.exec (.*)", lambda x,y: exec.execer(y.group(1)))
06:42:51 <bsmnt_bot> SyntaxError: invalid syntax
06:48:56 <immibis> ~exec self.raw("JOIN #somechannel")
07:11:18 <immibis> ~exec self.register_raw(r":(\S+)!\S+ PRIVMSG [^# ]* :(.*)", lambda x,y: sys.stdout(y.group(1)+" told me: "+y.group(2)))
07:11:24 <immibis> ~exec self.register_raw(r":(\S+)!\S+ NOTICE [^# ]* :(.*)", lambda x,y: sys.stdout(y.group(1)+" told me: "+y.group(2)))
07:11:32 <bsmnt_bot> immibis told me: hi
07:11:45 <bsmnt_bot> immibis told me: immibis told me: immibis told me: immibis told me: hi
07:12:48 <bsmnt_bot> immibis told me: <CTCP>PING 14865953<CTCP>
07:12:54 <immibis> ops
07:12:56 <immibis> lol
07:14:33 <immibis> ~exec self.register_raw(r":(\S+)!\S+ PRIVMSG [^# ]* :.VERSION.", lambda x,y: self.raw("NOTICE "+y.group(1)+" :\001VERSION None of your business\001\nPRIVMSG #esoteric :"+y.group(1)+" is a cracker! Get him!"))
07:14:38 <bsmnt_bot> immibis told me: <CTCP>VERSION<CTCP>
07:14:38 <bsmnt_bot> NameError: global name 'self' is not defined
07:14:50 <immibis> ~exec self.raw_regex_queue.pop()
07:15:01 <immibis> ~exec self.register_raw(r":(\S+)!\S+ PRIVMSG [^# ]* :.VERSION.", lambda x,y: bot.raw("NOTICE "+y.group(1)+" :\001VERSION None of your business\001\nPRIVMSG #esoteric :"+y.group(1)+" is a cracker! Get him!"))
07:15:06 <bsmnt_bot> immibis told me: <CTCP>VERSION<CTCP>
07:15:06 <bsmnt_bot> immibis is a cracker! Get him!
07:18:12 <fizzie> Polly wants a cracker.
07:18:54 <oerjan> ooh, the net police!
07:19:10 <immibis> ~exec self.register_raw(r":(\S+)!\S+ PRIVMSG [^# ]* :.PING (.*)", lambda x,y: bot.raw("NOTICE "+y.group(1)+" :\001PING "+y.group(2)))
07:19:16 <bsmnt_bot> immibis told me: <CTCP>PING 15254296<CTCP>
07:20:10 -!- GreaseMonkey has joined.
07:24:33 <bsmnt_bot> immibis told me: <CTCP>PING 15570718<CTCP>
07:25:05 <immibis> thats a bit annoying
07:25:28 <immibis> ~exec self.raw("PART #somechannel")
07:25:35 <immibis> ~exec self.raw("JOIN #somechannel")
07:25:51 <immibis> ~exec self.raw("PART #somechannel")
07:28:41 -!- Arrogant has joined.
07:29:58 <immibis> [18:28] ->> #esoteric :No such nick/channel
07:33:54 -!- immibis has changed nick to immibi.
07:34:00 -!- immibi has changed nick to immibis.
07:34:09 <immibis> msg nickserv identify He110J0el!
07:34:11 <immibis> oops
07:34:16 <immibis> everyone forget i said tha
07:34:17 <immibis> that
07:34:49 * immibis hopes nobody was watching their screen just now
07:35:18 <Arrogant> Nope
07:35:53 <oerjan> Nothing to see here. Move on.
07:37:13 <immibis> hmmmm
07:37:18 <oerjan> And I am sure both of our two channel logging robots will be polite enough to ignore this embarassing episode.
07:37:25 <immibis> oh dear
07:37:33 <immibis> TWO robots?
07:37:38 <immibis> i thought there was only one
07:37:49 <oerjan> Especially the one whose logs are available through google.
07:37:56 <immibis> aargh
07:38:05 <oerjan> clog is the other one.
07:39:56 <immibis> does bsmnt_bot log?
07:40:28 <oerjan> i don't know
07:40:56 <immibis> where does clog put its logs then?
07:41:08 <oerjan> tunes.org. See the topic.
07:43:10 <immibis> that was fast
07:43:16 <immibis> it has already logged it
07:44:14 <oerjan> very realtime, that one.
07:44:59 <immibis> meme was offline at the time, wasn't it
07:45:06 <oerjan> no.
07:45:23 <oerjan> meme joined again immediately
07:45:31 <immibis> where is meme now then
07:45:59 <oerjan> on the other hand, that one isn't googled, and is btw slow as molasses to get up so i only use it when tunes is missing something.
07:47:05 <immibis> the meme page has that last message you said, but meme isn't in this channel
07:47:13 <oerjan> cmeme
07:47:21 <immibis> ok
07:47:39 * immibis is now changing his irc password
07:48:55 <oerjan> btw meme has changed its url
07:48:59 -!- immibis has changed nick to immibis_.
07:49:03 -!- oerjan has set topic: The international hub for esoteric programming language design and deployment - map: http://www.frappr.com/esolang - forum: http://esolangs.org/forum/ - EgoBot: !help - wiki: http://esolangs.org/wiki/ - logs: http://tunes.org/~nef/logs/esoteric/ or http://www.ircbrowse.com/cdates.html?channel=esoteric - Pastebin: http://pastebin.ca/ - Here be cannibals. (Eat bsmntbombdood first.).
07:49:19 * immibis_ eats bsmntbombdood
07:49:35 * pikhq eats immibis_
07:49:49 * oerjan eats pikhq
07:49:57 * pikhq eats oerjan
07:50:00 <immibis_> ~exec sys.stdout("\001ACTION eats everybody then explodes\001")
07:50:01 * bsmnt_bot eats everybody then explodes
07:50:18 <immibis_> ~exec sys.stdout("\001ACTION is a cannibal - he eats other bots\001")
07:50:18 * bsmnt_bot is a cannibal - he eats other bots
07:50:34 <bsmnt_bot> pikhq told me: ~exec sys.stdout("\001ACTION eats himself, too.\001")
07:50:37 <pikhq> Damn it.
07:50:46 <immibis_> lol
07:51:01 <immibis_> ~exec self.raw("QUIT")
07:51:02 -!- bsmnt_bot has quit.
07:51:06 -!- bsmnt_bot has joined.
07:51:25 * pikhq should sleep
07:52:00 <immibis_> ~exec self.register_raw(r":\S+ NOTICE \S+ :!A (.*)", lambda x,y: sys.stdout("\001ACTION "+y.group(1)+"\001"))
07:52:37 -!- immibis_ has changed nick to immibi.
07:52:38 -!- immibi has changed nick to immibis.
07:52:53 * bsmnt_bot is an idiot
07:53:07 <Arrogant> Yep.
07:53:08 <immibis> /notice bsmnt_bot !A ACTION_COMMAND
07:53:42 * bsmnt_bot blows up
07:53:47 * bsmnt_bot is not bsmnt_bot
07:53:48 <oerjan> so, so, just because you're not human is no reason to look down on yourself
07:53:58 * bsmnt_bot is human, oerjan
07:54:05 * bsmnt_bot is oerjan
07:54:12 <immibis> oerjan, please use only your own nick
07:54:46 * bsmnt_bot will _not_ do that.
07:56:44 -!- helios24 has quit (Remote closed the connection).
07:56:59 -!- helios24 has joined.
07:57:32 * bsmnt_bot eats himself
07:57:36 -!- immibis has quit ("If you can't laugh at yourself, make fun of other people.").
07:57:50 * bsmnt_bot makes fun of helios24
07:58:30 -!- immibis has joined.
07:58:44 * bsmnt_bot makes fun of you, too
07:59:36 <pikhq> ~exec self.register_rw(r":\S+ NOTICE \S+ :!S (.*)", lambda x,y: sys.stdout(y.group(1)))
07:59:37 <bsmnt_bot> AttributeError: IRCbot instance has no attribute 'register_rw'
07:59:43 <pikhq> ~exec self.register_raw(r":\S+ NOTICE \S+ :!S (.*)", lambda x,y: sys.stdout(y.group(1)))
07:59:57 * bsmnt_bot kicks immibis (immibis!n=IceChat7@125-238-176-25.broadband-telecom.global-gateway.net.nz) Reason (bsmnt_bot)
07:59:58 -!- immibis has left (?).
07:59:58 <bsmnt_bot> It works.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:00:02 -!- immibis has joined.
08:00:05 <immibis> hey!
08:00:10 <bsmnt_bot> It works.
08:00:28 <bsmnt_bot> I'm a fun bot to mess with. :D
08:01:03 <pikhq> Cool. Now I can do a two-person comedy routine by myself. :p
08:01:11 <lament> you are pathetic.
08:01:18 <pikhq> No, you are!
08:01:20 * immibis looks at the logs so he can see what someone registered
08:01:27 <bsmnt_bot> I am dumb
08:01:47 <bsmnt_bot> Pikhq, he's not pathetic. He's not good enough for that.
08:01:51 <pikhq> Bweheheh.
08:02:14 <immibis> do i dare do ~exec self.register_raw(r"(.*)",lambda x,y: sys.stdout(y.group(1))) ?
08:02:25 <immibis> ~exec self.register_raw(r"(.*)",lambda x,y: sys.stdout(y.group(1)))
08:02:37 <oerjan> apparently you did.
08:02:38 <bsmnt_bot> :oerjan!n=oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :apparently you did.
08:02:44 <immibis> ~exec self.raw_regex_queue.pop()
08:02:45 <bsmnt_bot> :immibis!n=IceChat7@125-238-176-25.broadband-telecom.global-gateway.net.nz PRIVMSG #esoteric :~exec self.raw_regex_queue.pop()
08:02:52 <immibis> is it gone
08:02:54 <immibis> yes
08:03:15 <bsmnt_bot> Hey! Stop being evil! Please?
08:03:31 <immibis> ~exec self.register_raw(r"(.*)",lambda x,y: sys.stdout("I am evil"))
08:03:35 <immibis> hello bot
08:03:36 <bsmnt_bot> I am evil
08:03:38 <immibis> ok
08:03:38 <bsmnt_bot> I am evil
08:03:43 <immibis> i know
08:03:44 <bsmnt_bot> I am evil
08:03:46 <immibis> lol
08:03:46 <bsmnt_bot> I am evil
08:04:00 <pikhq> ~exec self.raw("
08:04:01 <bsmnt_bot> I am evil
08:04:01 <bsmnt_bot> SyntaxError: EOL while scanning single-quoted string
08:04:03 <bsmnt_bot> I am evil
08:04:05 <bsmnt_bot> I am evil
08:04:07 <bsmnt_bot> I am evil
08:04:11 <bsmnt_bot> I am evil
08:04:13 <bsmnt_bot> I am evil
08:04:15 <bsmnt_bot> I am evil
08:04:19 <bsmnt_bot> I am evil
08:04:20 <pikhq> ~exec self.raw("PART #esoteric :You see?")
08:04:23 <bsmnt_bot> I am evil
08:04:25 -!- bsmnt_bot has left (?).
08:04:34 <immibis> now how will you get it back?
08:04:45 <oerjan> whoops
08:04:54 <immibis> bsmntbombdood: please restart the bot
08:05:08 <lament> well, now at least there will be some peace and quiet.
08:05:10 <pikhq> Make it respond to privmsgs, more like.
08:05:39 <oerjan> lament: i wouldn't bet on that.
08:05:39 <immibis> um, messages sent to a channel are privmsgs
08:05:57 <immibis> someone please ask themselves to ask themselves to do what they just told themselves to do
08:06:23 <pikhq> Rather, make it respond to privmsgs not coming from the channel.
08:06:27 * boily suffers recursively
08:06:31 <lament> lament, ask yourself to do what i just told you to do.
08:06:49 <pikhq> And make it make me go to sleep.
08:06:51 <immibis> cancel that order
08:07:16 <lament> lament, ask yourself to do what i just told you to do.
08:07:20 <immibis> someone please tell themselves to "repeat this sentence" without modifying the text between the quotes and without saying the quotes
08:07:55 <Arrogant> repeat this sentence
08:07:59 <lament> lament, someone please tell themselves to repeat this sentence without modifying the text between the quotes and without saying the quotes
08:08:07 <immibis> repeat this sentence
08:08:28 <lament> lament: there're no quotes in that sentence, are you feeling okay?
08:08:35 <lament> lament: er... sorry.
08:08:43 <lament> lament: okay, you run along now
08:09:02 <lament> okay, i'm leaving, good night all
08:09:05 <lament> bye lament
08:09:09 <lament> bye!
08:09:46 <immibis> lament, are you ok?
08:11:01 <immibis> everyone do /notice bsmnt_bot !A * repeatedly so that bsmnt_bot floods himself off with the replies
08:11:05 <immibis> and comes back on
08:11:13 <oerjan> oh...
08:11:17 <oerjan> that might work
08:11:25 <immibis> it might not
08:11:29 <immibis> he is not on the channel
08:11:34 <immibis> so he cannot reply to the channel
08:11:41 <immibis> so he can't actually send a message
08:11:45 <immibis> he = it
08:12:25 <oerjan> fizzie: turn off the +n option on the channel :)
08:12:49 <immibis> what is +n
08:13:15 <pikhq> Prevents people from sending PRIVMSGs to channels they're not in.
08:13:27 <immibis> ok
08:13:54 <immibis> lament, you do it. you are registered with chanserv with this channel
08:14:25 * pikhq must sleep
08:14:28 <oerjan> oh, i just knew about fizzie.
08:14:40 * immibis knows that pikhq must sleep
08:17:46 -!- erider has quit (Read error: 110 (Connection timed out)).
08:18:12 -!- erider has joined.
08:18:37 <immibis> someone? is there anyone here who can get chanop privileges and make this channel -n?
08:19:34 <immibis> [19:18] ->> lament is away: N/A - sleeping
08:20:21 -!- ChanServ has set channel mode: -stm+c.
08:20:28 -!- ChanServ has set channel mode: -sntm+c.
08:20:34 <fizzie> I'm not exactly convinced you'll get it flood itself away, though.
08:21:06 <fizzie> ('n' was part of the chanserv-enforced modes there.)
08:21:24 <bsmnt_bot> I am evil
08:21:38 <immibis> then how...
08:21:42 <bsmnt_bot> I am evil
08:21:42 <bsmnt_bot> I am evil
08:21:43 <bsmnt_bot> I am evil
08:21:43 <bsmnt_bot> I am evil
08:21:43 <bsmnt_bot> I am evil
08:21:44 <bsmnt_bot> I am evil
08:21:45 <bsmnt_bot> I am evil
08:21:47 <bsmnt_bot> I am evil
08:21:49 <bsmnt_bot> I am evil
08:21:51 <bsmnt_bot> I am evil
08:21:53 <bsmnt_bot> I am evil
08:21:55 <bsmnt_bot> I am evil
08:21:57 <bsmnt_bot> I am evil
08:21:59 <bsmnt_bot> I am evil
08:22:01 <bsmnt_bot> I am evil
08:22:03 <bsmnt_bot> I am evil
08:22:05 <bsmnt_bot> I am evil
08:22:07 <bsmnt_bot> I am evil
08:22:09 <bsmnt_bot> I am evil
08:22:11 <bsmnt_bot> I am evil
08:22:13 <bsmnt_bot> I am evil
08:22:15 <bsmnt_bot> I am evil
08:22:17 <bsmnt_bot> I am evil
08:22:19 <bsmnt_bot> I am evil
08:22:21 <bsmnt_bot> I am evil
08:22:23 <bsmnt_bot> I am evil
08:22:25 <bsmnt_bot> I am evil
08:22:27 <bsmnt_bot> I am evil
08:22:28 <immibis> still not flooding
08:22:29 <bsmnt_bot> I am evil
08:22:31 <bsmnt_bot> I am evil
08:22:33 <bsmnt_bot> I am evil
08:22:34 <immibis> yes we know
08:22:35 <bsmnt_bot> I am evil
08:22:37 <bsmnt_bot> I am evil
08:22:39 <bsmnt_bot> I am evil
08:22:41 <bsmnt_bot> I am evil
08:22:42 <fizzie> I seem to remember some anti-flood delays there.
08:22:43 <bsmnt_bot> I am evil
08:22:45 <bsmnt_bot> I am evil
08:22:47 -!- ChanServ has set channel mode: -stm+nc.
08:22:55 <fizzie> I think that was enough evilness for a while.
08:23:29 <immibis> if there was some way to send commands to it directly then there is a way to avoid its anti-flood delay
08:23:38 <immibis> or we could ask bsmntbombdood to restart it
08:24:05 <fizzie> The latter sounds like the sensible alternative. (And therefore to be avoided, of course.)
08:24:11 <oerjan> i know bsmnt_bot has anti-flood delays but i thought they applied only to a single action.
08:24:14 <oerjan> he went to bed he said
08:24:47 -!- boily has quit ("Going to sleep").
08:24:57 <immibis> oerjan: if you do ~exec sys.stdout("Command \n command \n command \n command...") then they all happen at the same time
08:26:02 <oerjan> immibis: i was pretty sure each call to sys.stdout had flood protection.
08:26:23 <oerjan> it doesn't start throttling immediately, but after a few lines.
08:26:35 <immibis> each individual call, yes, but if you have multiple commands in a single call then it doesn't seem o happen
08:26:38 <immibis> *to
08:27:04 <immibis> i mean, it doesn't seem to activate the flood protection
08:27:37 <oerjan> that's what i thought to (but your example above is not executing commands, but printing them.)
08:27:42 <oerjan> *too
08:27:55 <immibis> oops
08:28:01 <immibis> self.raw then instead of sys.stdout
08:28:11 <oerjan> doesn't help.
08:28:20 <oerjan> or maybe it does, i'm not sure.
08:28:29 <oerjan> you mean exec.
08:28:39 <immibis> yes, ~exec self.raw(".....")
08:28:51 <oerjan> no, ~exec exec (".....")
08:29:08 <immibis> why
08:29:23 <oerjan> because then you could actually run several commands.
08:29:31 <immibis> ~exec self.raw("PRIVMSG #esoteric :Flooding\nPRIVMSG #esoteric :Flooding\nPRIVMSG #esoteric :Flooding")
08:29:37 <immibis> several irc commands not python commands
08:29:59 <oerjan> i am not sure whether that would trigger the flood protection or not.
08:31:16 <oerjan> while i believe ~exec while 1: self.raw("PRIVMSG #esoteric :Flooding") has a better chance.
08:34:41 -!- bsmnt__bot has joined.
08:34:52 <immibis> ~exec sys.stdout(1+1)
08:35:04 <oerjan> hah!
08:35:37 <immibis> ~exec sys.stdout(1+1)
08:35:39 -!- bsmntbot has joined.
08:35:43 <immibis> ~exec sys.stdout("X")
08:35:51 <bsmntbot> 3
08:36:36 <immibis> ~exec sys.stdout("I am a bot")
08:36:40 <bsmntbot> I am not a bot
08:36:51 * oerjan thinks someone must think he has poor eyesight.
08:37:01 <fizzie> I am not a bot. I am a free man!
08:37:29 <immibis> ~exec sys.stdout(time.localtime())
08:37:33 <bsmntbot> Right now, silly
08:37:43 <oerjan> fizzie: it took a long time to program you to believe that you're not just an IRC bot
08:37:57 <fizzie> oerjan; That does not compute at all!
08:38:39 <bsmntbot> Unknown command: oerjan;
08:38:48 <oerjan> of course it does not compute, we had to turn off that part of your logic circuits to make it work
08:38:53 * bsmntbot is making a bottle in a message with cold milk for this channel
08:38:53 * bsmntbot is making a bottle in a message with cold milk for #esoteric
08:38:54 * bsmntbot gives everyone in this channel a bottle in a message with cold milk
08:38:54 * bsmntbot gives #esoteric a bottle in a message with cold milk
08:39:08 <bsmntbot> DDUDUd
08:39:18 <bsmntbot> DUD
08:39:27 <bsmntbot> I SMELL A PING? PONG!
08:39:33 <bsmntbot> I SMELL A PING? PONG!
08:39:42 <immibis> ~exec self.clarify()
08:39:54 <bsmntbot> NameError
08:40:02 <bsmntbot> BotError
08:40:06 <bsmntbot> ExistenceFailure
08:40:15 <bsmntbot> BlahBlah
08:40:24 <bsmntbot> Milkies!
08:40:33 <bsmntbot> /me is age two
08:40:42 <bsmntbot> and a very smart two-year-old indeed
08:40:43 <bsmntbot> and a very smart two-year-old indeed
08:40:43 <bsmntbot> and a very smart two-year-old indeed
08:40:43 <bsmntbot> and a very smart two-year-old indeed
08:40:43 <bsmntbot> and a very smart two-year-old indeed
08:40:44 <bsmntbot> and a very smart two-year-old indeed
08:40:45 <bsmntbot> and a very smart two-year-old indeed
08:40:47 <bsmntbot> and a very smart two-year-old indeed
08:40:49 <bsmntbot> and a very smart two-year-old indeed
08:40:51 <bsmntbot> and a very smart two-year-old indeed
08:41:00 <bsmntbot> a spamming 2-year-old
08:41:05 -!- bsmntbot has changed nick to SpammingBot.
08:41:05 <SpammingBot> spamming. Buy my iPod!
08:41:05 <SpammingBot> spamming. Buy my iPhone!
08:41:05 <SpammingBot> spamming. Get the latest offer on all chocolate bar accessories!
08:41:05 <SpammingBot> spamming. All the latest travel insurance stuff and nonsense!
08:41:06 <SpammingBot> spamming. Go to #arianne!!
08:41:06 -!- SpammingBot has quit (Excess Flood).
08:41:16 -!- bsmntbot has joined.
08:41:22 <immibis> ~exec self.raw("QUIT")
08:42:25 -!- bsmntbot has quit (Read error: 104 (Connection reset by peer)).
08:42:30 <immibis> \ghost w
08:42:38 <immibis> oops
08:43:02 <immibis> someone, please print the 99 cans of Spam (TM) lyrics
08:43:34 -!- immibis has quit ("Life without danger is a waste of oxygen").
08:49:38 -!- Arrogant has quit ("Leaving").
08:55:18 -!- bsmnt__bot has quit (Read error: 110 (Connection timed out)).
08:58:33 -!- oerjan has quit ("Lunch").
09:03:49 -!- immybo has quit (Read error: 110 (Connection timed out)).
09:22:23 <GreaseMonkey> now THAT'S what I call a ridiculously small interpreter: http://esoteric.voxelperfect.net/wiki/MiniMAX
10:02:12 -!- jix_ has joined.
10:23:34 -!- jix_ has quit ("This computer has gone to sleep").
10:32:58 <Sukoshi> GreaseMonkey: If you reduce BF to smaller cases and then byte encode each instruction, you can probably fit a BF interpreter (pure ASM) in a few bytes.
10:33:39 <GreaseMonkey> i managed to get an OISC interpreter in 32 bytes
10:33:46 <GreaseMonkey> anyways, gtg, gnight
10:34:32 <Sukoshi> That's because OISC's instruction is complicated.
10:34:48 -!- erider has quit (Read error: 110 (Connection timed out)).
10:35:15 -!- erider has joined.
10:36:01 -!- GreaseMonkey has quit ("31 ff 8c d8 05 12 00 8e d8 31 c0 8b 05 2b 45 02 89 05 8b 55 04 85 c0 74 03 ba 06 00 01 d7 eb eb").
11:11:29 -!- oerjan has joined.
12:19:27 -!- ais523 has joined.
13:34:59 -!- ihope_ has joined.
13:37:46 -!- bsmnt_bot has joined.
13:38:45 <ais523> ~exec 0
13:38:49 <ais523> ~bf ,[.,]!testing
13:38:50 <bsmnt_bot> testing
13:39:01 <ais523> see, bsmnt_bot's all back to normal.
13:39:22 <ais523> (I was logreading and saw how someone managed to get it to part by mistake, but I've got it back to normal over the normal IRC channels.)
13:39:42 <oerjan> how? :)
13:39:55 <ais523> it was still in #bsmnt_bot_errors
13:40:05 <ais523> so I told it to JOIN #esoteric
13:40:11 <ais523> and then popped the odious evil regexp
13:40:27 <oerjan> what? i thought i checked that channel and didn't find it
13:40:44 <ais523> maybe you typoed?
13:40:45 <oerjan> must have left off a _ somewhere.
13:40:59 <ais523> I used /whois to verify which channels it was in
13:41:28 <oerjan> now wait a minute i am _sure_ i did that. must be going blind.
13:41:56 <ais523> unless bsmntbombdood's playing some sort of joke by getting it to join the errors channel while nobody's looking...
13:42:12 <ais523> s/playing/played/
13:42:23 <ais523> s/'s//
13:49:53 <ihope_> Hmm... so we could be evil by making the bot leave every channel?
13:50:56 <ais523> looking at the logs, there was quite enough evil going on even with the bots here
13:51:00 <ais523> (possibly even because of them)
13:59:56 -!- ais523 has quit ("afk").
14:31:51 -!- oerjan has quit ("Dinner").
14:55:12 -!- jix_ has joined.
15:04:24 -!- jix_ has changed nick to jix.
15:18:52 -!- RodgerTheGreat has joined.
15:19:17 <RodgerTheGreat> hi, everyone
15:38:28 <ihope_> Ello.
15:38:49 <RodgerTheGreat> 'sup, ihope_?
15:38:59 <RodgerTheGreat> how's that underscore workin' out for ya?
15:39:07 <ihope_> Mm, it's a little itchy.
15:39:24 -!- ihope_ has changed nick to ihope.
15:39:27 <ihope> There, that's better.
15:59:36 <RodgerTheGreat> bbl
15:59:39 -!- RodgerTheGreat has quit.
16:04:45 -!- crathman has joined.
16:05:36 -!- sebbu has joined.
16:06:07 -!- crathman has quit (Client Quit).
16:13:50 -!- c|p has joined.
16:21:06 -!- pikhq has quit (Connection timed out).
16:46:57 -!- pikhq has joined.
17:10:48 -!- c|p has quit ("Leaving").
17:21:59 -!- cmeme has quit (Read error: 104 (Connection reset by peer)).
17:22:17 -!- cmeme has joined.
17:36:02 -!- c|p has joined.
17:45:44 -!- pikhq has quit (Read error: 104 (Connection reset by peer)).
17:46:19 -!- oerjan has joined.
18:20:06 -!- Arrogant has joined.
18:25:01 <lament> well?
18:25:41 <oerjan> not really, i've got an upset stomach.
18:25:51 <oerjan> or were you asking something else?
18:25:58 <lament> should have eaten less bsmntbombdood
18:26:27 <oerjan> nah, it was worth it.
18:44:42 <ihope> Which part of him did you eat?
18:45:27 <Arrogant> ((y-lambda (self) (λ (n) (if (zero? n) 1 (* n (self (- n 1)))))) 5) ; 120
18:45:30 <Arrogant> <3 scheme
18:45:54 <ihope> Now, what's that in Haskell?
18:46:08 <ihope> I see a large number of parentheses.
18:46:20 <Arrogant> I don't know enough Haskell to get the job done
18:47:20 <oerjan> what is y-lambda?
18:47:27 <oerjan> and ?
18:49:20 <Arrogant> its a macro that uses the y combinator to make the lambda anonymously recursive
18:49:34 <ihope> So y-lambda is lambda except that it applies "fix" to the result.
18:49:37 <ihope> I think.
18:49:44 <ihope> zero? in Haskell would be (== 0)
18:49:48 <ihope> I think.
18:49:51 <Arrogant> err what?
18:50:05 <Arrogant> no, y-lambda passes the lambda into itself so that it can call itself recursively
18:50:47 <ihope> (y-lambda (x) (E)) = ((lambda (x) (E)) (y-lambda (x) (E))), right?
18:51:09 <oerjan> fix (\self n -> if (n==0) then 1 else n*self(n-1)) 5
18:51:34 <Arrogant> what does fix do?
18:51:47 <ihope> Arrogant: (fix x) = (x (fix x))
18:51:53 <Arrogant> more important, why is it called fix
18:52:03 <ihope> It returns a fixed point of the function.
18:52:10 <Arrogant> Ahhh I forgot about that term
18:52:13 <ihope> let self n = if (n == 0) then 1 else n * self (n-1) in self 5
18:52:27 <ihope> let self 0 = 1; self n = n * self (n-1) in self 5
18:52:31 <Arrogant> (define y-combinator (λ (x) ((λ (p) (x (λ (n) ((p p) n)))) (λ (p) (x (λ (n) ((p p) n)))))))
18:52:35 <Arrogant> (define-macro y-lambda
18:52:35 <Arrogant> (λ (self proc)
18:52:35 <Arrogant> (let ((self-symbol (car self)))
18:52:35 <Arrogant> `(y-combinator (λ (,self-symbol) ,proc)))))
18:52:52 <oerjan> mind you, product [1..n] is shorter :)
18:53:05 <ihope> This language doesn't like recursive definitions?
18:53:19 <Arrogant> Sure it does
18:53:22 <ihope> Shorter and pretty much just as efficient!
18:53:24 <Arrogant> If its named
18:53:41 <ihope> Well, fix can certainly be defined recursively...
18:54:03 <Arrogant> Are you really bashing Scheme with Haskell? I mean c'mon.
18:55:40 <ihope> I guess it's not like Scheme and Haskell aren't very similar.
18:55:55 <ihope> (product (enumFromTo 1 n))
18:56:06 <Arrogant> They're really not very similar
18:56:31 <oerjan> hah! impure, filthy untyped language!
18:56:34 <ihope> Well, yes, Haskell has a static type system and an IO monad.
18:56:40 <oerjan> </troll>
18:56:51 <Arrogant> Scheme is imperative
18:56:54 <ihope> Haskell has things people that like Haskell like.
18:57:00 -!- RodgerTheGreat has joined.
18:57:06 <Arrogant> Don't get me wrong, I like Haskell too
18:57:12 <Arrogant> I didn't bring it up to compare anything
18:57:19 <Arrogant> I like lots of languages for different reasons
18:57:26 <RodgerTheGreat> 'sup, guys?
18:57:31 <Arrogant> Err, I liked Haskell
18:57:36 <Arrogant> When I was trying to understand it
18:58:17 <oklopol> RodgerTheGreat: improving my memory still
18:59:07 <oklopol> found a book about general brain power improvement or something... "Some subjects have been able to process more than 690000 words per minute!"
18:59:07 <RodgerTheGreat> hi, oklopol
18:59:15 <RodgerTheGreat> woah
18:59:20 <RodgerTheGreat> that's pretty crazy
18:59:24 <oklopol> heh
18:59:48 <oklopol> the memory tricks seem to work, but that other one sounds more like magic
18:59:55 <oklopol> 'that other book
18:59:56 <oklopol> *
19:00:06 <RodgerTheGreat> that would take going from recognizing text at a word level up to recognizing at sentence or paragraph level in a glance
19:00:08 <RodgerTheGreat> yeah
19:00:42 <RodgerTheGreat> and I'm pretty sure that figure would entail grokking an entire book in about a minute
19:00:47 <ihope> "Book, please." *flipflipflip* "Thank you."
19:00:53 <oklopol> heh
19:01:05 <ihope> Less than a minute, I'm thinking.
19:01:10 <RodgerTheGreat> which is pretty ridiculous (not that it wouldn't be handy, especially if you had total recall)
19:01:15 * oerjan recalls the aliens in Childhood's End could do that.
19:01:32 <ihope> "I've been told that the overall length of a novel should be between 75,000 and 100,000 words. However, it appears that most fantasy novels are larger (witness the Jordan and Goodkind novels.) Terry Goodkind's first novel (Wizard's First Rule) was huge, around 250,000 words in length." http://www.hatrack.com/writingclass/lessons/2000-08-02-1.shtml
19:01:34 <oklopol> there's a technique for learning to read a long book in 20 min or something... guess i'll learn that too, if it really exists
19:02:29 <RodgerTheGreat> I'd guess the 690000 figure is off by a zero... or maybe a couple
19:03:04 <oklopol> http://news.bbc.co.uk/2/hi/europe/guernsey/6591365.stm
19:03:10 <RodgerTheGreat> 690 words per minute I can believe. 6900 words per minute is pretty amazing. 69000 sounds nearly impossible
19:03:14 <lament> ihope: that's a very strange thing to "be told"
19:03:37 <oklopol> the invasion is near
19:03:37 <oerjan> perhaps it's the "minute" that is wrong.
19:03:41 <oklopol> heh
19:03:44 <oklopol> "year"
19:03:47 <RodgerTheGreat> hour?
19:04:22 <RodgerTheGreat> 11,500 words per minute seems a lot closer to physical possibility
19:04:38 <RodgerTheGreat> although still astronomically hard
19:05:21 <ihope> I think "day" is... possible.
19:05:27 <RodgerTheGreat> hm
19:05:34 <RodgerTheGreat> yeah, I could believe that
19:06:10 <RodgerTheGreat> assuming reading for 12 hours of the day, that's ~958 WPM
19:06:22 <RodgerTheGreat> I'd classify that within the realm of possibility
19:06:39 <RodgerTheGreat> but I think most people would have difficulty sustaining that level of concentration for very long
19:07:21 <RodgerTheGreat> remember, that's a steady rate of 16 words *per second*
19:07:52 <RodgerTheGreat> literally, you'd have to be reading entire sentences at once
19:08:01 <ihope> 690,000 words per minute at 500 words per page about 23 pages a second.
19:08:15 <RodgerTheGreat> yeah, that's impossible
19:08:24 <RodgerTheGreat> you couldn't mechanically do that and resolve the images
19:08:38 <oerjan> i am starting to think the "minute" is right and the number is wrong then.
19:08:49 <RodgerTheGreat> I dunno
19:08:54 <ihope> You'd need a computer.
19:09:14 <ihope> "Ebook, please." *churn churn churn* "Thank you."
19:09:18 <oerjan> perhaps someone missed translating a decimal point convention.
19:09:30 <oerjan> 690,000 would mean 690 in norwegian.
19:09:54 <ihope> And many other languages and such.
19:10:07 <ihope> 690.000 seems an odd number, though.
19:10:16 <ihope> (Even though it's clearly even.)
19:10:35 <ihope> Did nobody reach 690.002 per minute?
19:10:49 <RodgerTheGreat> yeah, there's no need for that many precision levels in a words-per-minute figure
19:11:03 <oerjan> i was wondering why they didn't simply round it to 700,000
19:11:31 <ihope> That'd make it a lie? :-P
19:11:31 <RodgerTheGreat> and say "up to", which is my favorite meaningless phrase
19:11:34 <oklopol> "690,000 words per minute"
19:11:39 <ihope> Ah, yes.
19:12:04 <ihope> I've seen an ad for a free energy generator. They guaranteed it would produce up to a certain amount.
19:13:03 <oklopol> ?
19:13:22 <ihope> Up to a certain amount.
19:13:32 <RodgerTheGreat> SAVE UP TO $500!
19:13:38 <bsmntbombdood> what
19:13:48 <RodgerTheGreat> if you read that ad and saved $2, they weren't technically lying
19:13:50 <ihope> bsmntbombdood: eh?
19:13:55 <oklopol> my dad's friend is a scientist (alex kaivarainen), he has this theory about something called bivacuum, which guarantees practically infinite energy for free
19:13:58 <RodgerTheGreat> because "up to" just means <=
19:14:04 <ihope> Hah.
19:14:12 <RodgerTheGreat> "at least" is a far more useful figure
19:14:25 <ihope> "Up to" can mean either <= or >=!
19:14:29 <RodgerTheGreat> or "starting at" (although this one is often used misleadingly)
19:14:38 <RodgerTheGreat> ihope: true
19:14:52 <oklopol> ihope: no it can't :\
19:15:08 <ihope> Either <= or =?
19:15:18 <ihope> ("Starting at" always lists the lowest price, doesn't it? :-)
19:15:38 <ihope> "You're allowed to go up to 50 miles an hour" versus
19:15:40 <ihope> Er.
19:15:44 <oklopol> "up to" == "<="
19:15:53 <Arrogant> Starting at just $400,000
19:16:08 <ihope> Versus "some cyclists got up to 50 miles an hour".
19:16:23 * ihope hits his " key
19:16:33 <ihope> (Choose either sense.)
19:16:38 <oklopol> ihope: how are those different?
19:16:51 <RodgerTheGreat> "up to" can mean <= but not equal to.
19:16:58 <ihope> oklopol: doesn't "some cyclists got up to 50 miles an hour" imply that 50 was actually achieved?
19:17:12 <bsmntbombdood> busy channel today
19:17:28 <Arrogant> My fault
19:17:30 <RodgerTheGreat> up to 5 -> [-infinity,5)
19:17:47 <RodgerTheGreat> I thought of it as asymptotic
19:17:50 <ihope> I think you mean (-infinity,5]...
19:18:21 <RodgerTheGreat> no, because you can "reach" negative infinity, but you can only get infinitesimally close to 5
19:18:35 <Arrogant> At which point does -infinity become infinity? How many bits does the universe allow for floating points?
19:18:36 <RodgerTheGreat> ( means approaches asymptotically, [ means actually reaches
19:18:39 <ihope> That's <=?
19:18:50 <RodgerTheGreat> Arrogant: infinity is not a number
19:18:52 <ihope> Looks more like <.
19:19:03 <Arrogant> Thanks for that
19:19:05 <RodgerTheGreat> it's a symbol and such operates with some unusual rules
19:19:10 <oklopol> RodgerTheGreat: i guess Arrogant was somewhat joking
19:19:15 <RodgerTheGreat> oh.
19:19:18 <RodgerTheGreat> lol
19:19:19 <oklopol> Arrogant: read programming the universe
19:19:21 <RodgerTheGreat> ok, nvm there
19:19:23 <oklopol> and you'll have the answer.
19:19:32 <oklopol> "programming the universe"
19:19:40 <Arrogant> I was in here talking about y combinators and you don't think I understand infinity
19:19:42 <Arrogant> I am confused
19:20:09 <oklopol> Arrogant: nerds always want to share information for any smallest excuse
19:20:25 <RodgerTheGreat> I didn't hear you talking about y combinators and you expressed something about infinity that was in error.
19:20:45 <Arrogant> Well what I was referring to, to be exact
19:20:58 -!- bsmnt_bot has quit (Remote closed the connection).
19:21:06 -!- bsmnt_bot has joined.
19:21:06 <Arrogant> Was INT_MIN and INT_MAX of the universe, I guess
19:21:09 <oklopol> RodgerTheGreat: note, however, that it was clearly a joke referring to the floating point value #INF :)
19:21:09 <Arrogant> If you want to be picky
19:21:25 <Arrogant> Or whatever values
19:21:27 <Arrogant> You'd like
19:21:28 <RodgerTheGreat> oklopol: ok, well I completely missed that reference
19:22:00 <oklopol> yeah, but that's not the point, the point is the book is great
19:22:04 <RodgerTheGreat> ok
19:22:22 <oklopol> i love advertising book i've managed to read
19:22:27 <RodgerTheGreat> haha
19:22:31 <oklopol> it's such a rare treat
19:22:46 <oklopol> *books
19:22:56 <RodgerTheGreat> my favorite book to plug is "The First Computers: History and Architectures"
19:23:10 <oklopol> i know, but indeed i should dl it
19:23:15 <RodgerTheGreat> it's an absolutely fantastic read
19:23:56 <oklopol> yar i remember your conversation
19:23:59 <oklopol> guess i'll read it
19:24:46 <oklopol> nooo i can't find a torrent for it :<<
19:24:57 <RodgerTheGreat> lol- shut down
19:25:39 <oklopol> i wonder if you can buy books... what a wacky thought
19:25:52 <RodgerTheGreat> jesus- the book is a lot more expensive than I remember it being on Amazon: http://www.amazon.com/First-Computers-History-Architectures-History-Computing/dp/0262681374/ref=pd_bbs_sr_1/104-5639127-6414343?ie=UTF8&s=books&qid=1182795843&sr=8-1
19:26:01 <RodgerTheGreat> I got my copy for like $20. <:/
19:27:03 <oklopol> the money is not an issue, however, i can't pay online
19:27:12 <oklopol> and i'm certainly not leaving my house
19:27:15 <oklopol> it's vacation!
19:27:20 <RodgerTheGreat> haha
19:28:06 <RodgerTheGreat> if I remember right, a couple of major stores sell visa-backed "one-time-use" credit cards that you can buy with cash and use online
19:28:18 <RodgerTheGreat> they might provide a solution
19:28:57 <oklopol> OR i could tell my dad i want the book like an adult :|
19:29:44 <RodgerTheGreat> lol
19:29:57 <oklopol> that'd be the easiest way
19:30:13 <RodgerTheGreat> it's an educational book- I'm sure reasonable parents would be willing to help you out
19:30:35 <oklopol> my dad buys me pretty much any book related to computers
19:30:43 <RodgerTheGreat> go for it, then
19:30:49 <oklopol> guess he believes in me or smth
19:30:50 <oklopol> :D
19:31:07 <RodgerTheGreat> my parents were always pretty supportive, but computer books are so darned expensive. :S
19:31:16 <oklopol> hmm... he had this other friend, a scientist as well, he offered to give me 2000 math book for free
19:31:21 <RodgerTheGreat> wow
19:31:25 <oklopol> ...the catch was they were in russian
19:31:29 <RodgerTheGreat> haha
19:31:33 <RodgerTheGreat> can you read russian?
19:31:58 <bsmntbombdood> computer books are too expensive
19:32:14 <oklopol> this guy had some issues, kept offering me beer even though i had my last one half-full (<- see, i'm an optimist), and kept saying the same things over and over again
19:32:16 <oklopol> i can
19:32:18 <oklopol> i can'
19:32:20 <oklopol> i can't
19:32:23 <oklopol> -...
19:32:29 <oklopol> the last one is correct
19:32:41 <oerjan> i read learning russian was on the way up in finland, or something, unsurprisingly.
19:33:03 <oklopol> oerjan: doubt that
19:33:57 <oklopol> just read from a magazine this morning that they can't find finnish people with russian skills anywhere, so estonians are hired to handle russian relations
19:34:00 <oklopol> or smth
19:34:09 <oklopol> hmm
19:34:16 <RodgerTheGreat> bsmntbombdood: this is why I'm tremendously glad how much reference information is available freely on the internet
19:34:24 <oklopol> i never read magazines, quite a coinsidence
19:34:45 <RodgerTheGreat> things like online javadocs, tutorial sites and w3schools have saved me hundreds of dollars in books
19:34:53 <bsmntbombdood> RodgerTheGreat: dead trees are easier to read
19:35:12 <RodgerTheGreat> I generally stick to dead trees for reference books
19:35:24 <oklopol> i like reading pdf's
19:35:28 <RodgerTheGreat> I have a bunch of o'reilly pocket references, which are lifesavers
19:35:49 <RodgerTheGreat> but I don't buy many huge "complete programming language" books
19:36:12 <RodgerTheGreat> and lest we forget- hypertext is easier to *search*
19:36:21 <RodgerTheGreat> which can save you a great deal of reading
19:37:33 <bsmntbombdood> yeah
19:44:10 <bsmntbombdood> bong hits 4 jesus!!!!!!!!!!111
19:46:08 <lament> i can read russian, but not finnish :(
19:46:15 <lament> maybe i should learn more languages
19:46:22 <lament> then i would have some kind of mostly unique skill
20:00:04 <oklopol> lol a _child_ can learn finnish
20:00:07 <oklopol> it's just that easy
20:00:27 <bsmntbombdood> um....
20:00:32 <bsmntbombdood> a child can learn any language
20:00:48 <oklopol> also, when i seem stupid, it's usually a joke
20:01:07 <RodgerTheGreat> oklopol: that right there is absolutely brilliant
20:01:22 <RodgerTheGreat> bobby henderson quality ass-covering right there. :)
20:01:45 <oklopol> oh
20:01:55 <oklopol> i've done that since i can remember
20:02:29 <oklopol> people never understand almost everything i say is sarcastic
20:02:33 <oklopol> at least a bit
20:03:13 <oklopol> wow, if i read this book and do the execises, i can do _anything_
20:03:19 <oklopol> i can even get rich if i wanna
20:03:28 <oklopol> oh
20:03:34 <oklopol> i can even cure cancer
20:03:40 <oklopol> :)
20:03:46 <oklopol> must be a quality book!
20:04:00 <RodgerTheGreat> sounds pretty cool. how much does it cost?
20:04:10 <oklopol> it's a free pdf!
20:04:50 <oklopol> it's even got a lot of big blue text: "In Short Anything You Want The Only Limit Is That Of Your Own Imagination!"
20:05:41 <bsmntbombdood> oh boy
20:06:17 <RodgerTheGreat> indeed
20:06:38 <oklopol> i just need to learn hypnosis in a few "easy simple steps"
20:07:32 <oklopol> i can already hypnotize my hand to hold perfectly still, even in an otherwise uncomfortable position
20:07:39 <oklopol> something i learned when i was little
20:07:50 <oklopol> *-otherwise
20:07:53 <RodgerTheGreat> how do you... hypnotize your hand?
20:08:08 <RodgerTheGreat> does your hand exhibit independent cognizance?
20:08:12 <RodgerTheGreat> do you consider this normal?
20:08:35 <oklopol> i hold it still and slowly start moving it first forward and thinking there's a wall, then back, then left, then down etc. until i've covered every direction
20:08:44 <oklopol> i do that for a while and it stays put
20:08:55 <oklopol> just my hands, never managed to do anything else :D
20:09:09 <oklopol> my hands are very clever
20:09:52 <oklopol> i'd actually forgotten i could do that, haven't tried it in years
20:09:59 <oklopol> so i might not be able to do it anymore
20:10:02 <oklopol> i'll try now
20:11:00 <oklopol> :<<<<
20:11:03 <oklopol> noooooo
20:11:53 <oklopol> okay
20:12:21 <oklopol> i can make make it stay still if my elbow is on the armrest
20:12:31 <oklopol> and just the rest is up
20:12:48 <oklopol> it seems i can poke it with my other hand and it goes back to where it was
20:13:01 <oklopol> hmm
20:13:26 <oklopol> somehow i feel like i'm in a spaceship writing a log about my weird encounters today
20:13:34 <oklopol> i recommend you read "solaris"
20:14:00 <oklopol> though i might've liked it just because i was so young and hadn't seen such philosophical mumbo jumbe yet
20:14:17 <oklopol> hmm
20:14:26 <oklopol> i might've read it last year though
20:14:27 <bsmntbombdood> wow
20:14:32 <oklopol> whoops, monologue
20:14:42 <oklopol> i never keep my promises to myself.
20:14:53 <RodgerTheGreat> hm
20:15:23 <bsmntbombdood> day-tah-base
20:15:43 <oklopol> *jumbo
20:16:53 -!- Arrogant has quit ("Leaving").
20:17:57 <RodgerTheGreat> dat-ah-base
20:18:10 <lament> solaris is nice
20:18:19 <oklopol> the movie sucked
20:18:22 <lament> um
20:18:25 <lament> the movie was amazing
20:18:27 <oklopol> but i think the book was good
20:18:29 <oklopol> oh
20:18:30 <oklopol> :<
20:18:32 <lament> (the russian movie, of course)
20:18:40 <oklopol> oh :)
20:18:54 <oklopol> the one i saw was in english i think
20:19:00 <lament> the new one did suck terribly. i was watching it with friends and we stopped before they ever got to the station.
20:19:09 <oklopol> heh
20:19:15 <oklopol> they left everything out
20:19:28 <lament> the russian one is by one of the best directors in the history of cinema (tarkovski)
20:19:39 <lament> highly recommended, although it has very little in common with the book
20:19:46 <lament> (lem was very angry about it)
20:20:02 <oklopol> lem being the writer of solaris?
20:20:12 <oklopol> or... lem == lament?
20:20:13 <lament> er, yes.
20:20:13 <oklopol> :)
20:20:15 <oklopol> okay
20:20:17 <lament> dude
20:20:20 <oklopol> like i could remember a name
20:20:23 <lament> how can you not know lem?
20:20:34 <oklopol> i have a hard time remembering my own name
20:20:37 <lament> even ignoring the fact that you've read his book
20:20:40 <oklopol> really.
20:21:31 <lament> it's like not knowing bradbury or asimov. You don't have to have read them to know the names.
20:21:35 <oklopol> i remember a random sequence of letters easier than a name, since i somehow filter every name out as "some name"
20:21:43 <oklopol> isaac asimov?
20:21:56 <oklopol> that one i know from a quiz channel.
20:21:58 <oklopol> :)
20:22:59 <oklopol> i promise i'll remember all of those from now on
20:27:50 <oklopol> hypnosis is apparently the best way to cure skin desorders
20:31:28 <oklopol> i believe that, the words in this book are so big, not just in font but also in semantics
20:32:09 <oklopol> they are so big it takes so long to get them in my head it would be a waste to ignore them
20:43:37 -!- erider has quit ("I don't sleep because sleep is the cousin of death!").
20:59:02 <ihope> I've read some Asimov.
20:59:12 <bsmntbombdood> i think everyone has
20:59:39 <ihope> And some Williams, some Simpson and some Stanley.
20:59:45 <ihope> :-P
21:01:37 <ihope> And Emko-Brodzik.
21:01:46 <ihope> Except that that's two people, Emko and Brodzik.
21:01:55 <ihope> Maybe I should say Emko/Brodzik, then?
21:02:02 -!- jix_ has joined.
21:02:21 <ihope> And some Trepal.
21:02:26 -!- jix has quit (Nick collision from services.).
21:02:34 -!- jix_ has changed nick to jix.
21:02:44 <oerjan> ihope: you are evil.
21:02:55 <ihope> I am?
21:03:16 <oerjan> i don't get a single name after "Asimov".
21:03:55 <ihope> Mason Williams, D.J. Simpson, Mark Stanley, Matt Trepal, Drake Emko, Jen Brodzik.
21:04:18 <ihope> 1/0, Ozy & Millie, Freefall, Fight Cast Or Evade, Hackles.
21:05:15 <oerjan> oh :) then i know two of them.
21:05:44 <ihope> Which two?
21:06:02 <oerjan> 1/0 and Freefall.
21:06:38 <ihope> Ozy & Millie's not bad.
21:06:52 <oerjan> in fact 1/0 was the first real webcomic i read, and i heard about it this autumn on this channel.
21:07:10 <ihope> (I've also read Watterson.)
21:07:47 <oerjan> that's actually less impressive than Asimov, i think.
21:08:26 <ihope> What's less impressive than Asimov?
21:08:49 <oerjan> knowing who Watterson is is less impressive than knowing who Asimov is.
21:19:18 <lament> hm
21:19:25 <lament> probably more people know asimov, though.
21:19:58 <lament> watterson's popularity is vastly surpassed by his creations'.
21:20:30 <lament> asimov didn't actually write any good books, so he's popular, and not the books :)
21:21:23 <oerjan> being immensely and successfully secretive _would_ tend to have that effect.
21:21:45 <lament> i think it's just because he only did one thing.
21:38:12 <Sukoshi> ihope: Neville Chamberlain is less impressive.
21:38:28 <bsmntbombdood> aaaaaaaaaaaaaaaaaaaaaaaaaaaaa
21:38:44 <ihope> Lots of insects.
21:39:34 <lament> AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
21:39:40 * lament watches as ihope runs out of the channel
21:40:13 <ihope> Lots of...
21:40:15 * ihope runs out of the channel
21:40:18 -!- ihope has left (?).
21:40:27 <bsmntbombdood> nooo he be leavin my channel
21:40:56 <lament> the channel is only yours until you're completely devoured.
21:41:40 -!- ihope has joined.
21:41:50 * ihope completely devours bsmntbombdood
21:42:05 <bsmntbombdood> how devoured am i?
21:42:10 -!- ihope has set topic: The international hub for esoteric programming language design and deployment - map: http://www.frappr.com/esolang - forum: http://esolangs.org/forum/ - EgoBot: !help - wiki: http://esolangs.org/wiki/ - logs: http://tunes.org/~nef/logs/esoteric/ or http://www.ircbrowse.com/cdates.html?channel=esoteric - Pastebin: http://pastebin.ca/ - Here be cannibals. (bsmntbombdood has been eaten.).
21:42:16 <lament> completely.
21:42:16 <ihope> Completely.
21:42:27 <bsmntbombdood> oh well
21:42:31 * bsmntbombdood gets some milk
21:42:46 <oerjan> speak louder, i cannot hear you from inside ihope!
21:43:03 * ihope completely devours bsmntbombdood's refrigerator
21:43:24 <ihope> oerjan: I think he said some weird things involving crazy symbols and actions.
21:43:31 <lament> you're inside ihope? i'm inside YOUR MOM!
21:43:41 <ihope> He said "action", after all.
21:43:59 <ihope> lament is inside bsmntbombdood's mom?
21:44:06 <ihope> I didn't know she was a cannibal too.
21:44:16 <bsmntbombdood> (let ((n 0)) (lambda () (set! n (+ n 1)) n))
21:44:18 <oerjan> the things you learn.
21:44:26 <lament> ihope: all women are. It's their little secret.
21:44:34 * ihope nods
21:44:44 <ihope> There's only one way to... um, accomplish what needs to be accomplished.
21:44:58 * ihope completely devours bsmntbombdood's mom
21:45:28 <bsmntbombdood> lament is inside my mom is inside ihope
21:45:55 <ihope> So I have three people inside me?
21:46:22 <bsmntbombdood> where am i?
21:46:37 * oerjan recalls a fairy-tale involving a hungry cat, and sidles towards the channel exit.
21:47:12 <ihope> Inside me...
21:47:22 <bsmntbombdood> you didn't share me? :(
21:47:32 <ihope> Do you want to be shared?
21:47:46 <bsmntbombdood> selfish ihope
21:47:57 * ihope shares bsmntbombdood
21:48:16 <ihope> Sharing after eating is done all the time by ants. Why can't I do it too?
21:48:36 <ihope> (Transant transfer!)
21:48:57 <oklopol> ..you want to kiss me?
21:49:08 <bsmntbombdood> that's hawt
21:49:11 <oklopol> indeed.
21:50:18 <bsmntbombdood> america is fucked, speech promoting the breaking of laws is illegal
21:51:47 <oklopol> so... you are being illegal?
21:52:05 -!- jix has quit ("CommandQ").
21:52:12 <bsmntbombdood> by doing what?
21:52:16 <oklopol> you're clearly promoting us to think that law is wrong making us wanna break it
21:52:32 <bsmntbombdood> well, not illegal, but not protected by the consitution
21:52:52 <oklopol> i don't really know the difference
21:53:43 <bsmntbombdood> illegal means there's a law against it, not protected by the constitution means there can be a law against it
21:54:53 <oklopol> ohh
21:55:00 <oklopol> I LEARNED SOMETHING TODAY
21:57:45 <ihope> Speech promoting the breaking of laws is illegal...
21:58:00 <ihope> Hopefully, though, speech promoting the *changing* of laws is legal.
21:58:16 <bsmntbombdood> ihope: that's a fine line
21:58:25 <ihope> Fine meaning fuzzy?
21:58:28 <bsmntbombdood> hard to tell one from the other
21:59:56 <oklopol> fine meaning thin
22:00:42 <ihope> Isn't a thin line one where you're definitely on one side or the other?
22:01:02 <bsmntbombdood> no
22:01:09 <bsmntbombdood> that's a wide line
22:01:40 <ihope> So the emphasis is on the fact that it's small or hard to see?
22:01:47 <bsmntbombdood> sure
22:02:29 <ihope> I see.
22:04:18 <oklopol> ihope: that's a pretty standard saying
22:04:36 <oklopol> i hope that's a pretty standard saying
22:04:36 <oklopol> hihi
22:05:33 <bsmntbombdood> illegal penetration of the vagina with a penis?
22:05:51 <bsmntbombdood> http://www.slate.com/id/2168758/
22:15:03 -!- Keymaker has joined.
22:17:54 <Keymaker> hmm, does anyone know does 'feult' mean anything in some language? i can't find anything in different dictionaries i've looked at. it's a random name i made for an esolang, but may not be the final name
22:19:55 <oerjan> why, it just so happens to be a terribly insulting word in Athabaskan.
22:21:23 <RodgerTheGreat> heh
22:25:49 <oklopol> feult is kinda tabu here in finland too
22:25:52 <oklopol> ..
22:26:00 <oklopol> keymaker might not believe that though...
22:26:09 <Keymaker> funny, i don't recognize the word :P
22:26:13 <oklopol> :P
22:26:19 <oklopol> because it'
22:26:22 <oklopol> s so tabu
22:26:27 <Keymaker> ah, yes
22:34:41 <oklopol> "Remember your subconscious mind can process more than two million bits of information per second and it never forgets anything!"
22:35:08 <Keymaker> is there any command in python for removing all but specific characters from string? like something that'd remove everything else but "01234" (chars '0' '1' '2'...)
22:35:18 <oklopol> i'd like to see the research on which this is based
22:35:25 <oklopol> Keymaker: yes
22:36:42 <oklopol> hmm... not a straighforward function for that
22:36:50 <oklopol> anyway, it's just a few lines to write that
22:37:22 <oerjan> ~exec sys.stdout(x for x in "012345678", "01234".find(x))
22:37:22 <lament> yes
22:37:23 <bsmnt_bot> SyntaxError: invalid syntax (<string>, line 1)
22:37:25 <lament> let me think
22:37:33 -!- c|p has quit ("Leaving").
22:37:41 <oerjan> ~exec sys.stdout(x for x in "012345678")
22:37:41 <bsmnt_bot> <generator object at 0xb7c4784c>
22:38:28 <oklopol> [x for x in "102937485" if x in "1234"]
22:38:38 <oklopol> but that doesn't work for strings, just lists
22:39:20 <oklopol> you have to do sum([x for x in "102937485" if x in "1234"])
22:39:59 <oklopol> reduce(lambda a,b:a+b,[x for x in "102937485" if x in "1234"])
22:40:04 <oklopol> that will surely work
22:40:12 <oklopol> seems there is no sum.
22:40:23 <lament> there better be.
22:41:10 <lament> filter(lambda x:x in '123', '12345123')
22:41:27 <lament> probably the cleanest solution
22:43:40 <oklopol> lament: that returns a string?
22:43:50 <lament> yes.
22:43:56 <oklopol> i would've used filter, but people don't seem to like filter, remove and map
22:44:01 <oklopol> ...
22:44:03 <oklopol> reduce
22:44:20 <lament> well, they're idiots.
22:44:27 <lament> fister, reduce and map are great functions.
22:44:29 <oklopol> thank you
22:44:30 <oklopol> yeah
22:44:30 <lament> *filter
22:44:32 <lament> also fister.
22:44:37 <oklopol> what's that do?
22:44:41 <lament> fist.
22:45:11 <oklopol> hmm... usb-dildo management integrated in the language?
22:45:20 <oklopol> hmm
22:45:23 <lament> it's not called python for nothing
22:45:27 <lament> (www.python.com)
22:45:34 <oklopol> www.pythong.org
22:51:45 -!- Keymaker has quit (Read error: 110 (Connection timed out)).
23:00:24 -!- pikhq has joined.
23:12:02 -!- oerjan has quit ("Warm fuzzy things!").
23:44:04 -!- ihope has quit ("Reconnecting...").
2007-06-26
00:25:31 -!- c|p has joined.
00:52:59 -!- sebbu has quit ("@+").
02:35:53 <oklopol> good three nights, i'm going to all my beds
02:35:53 <oklopol> ->
02:38:15 <bsmntbombdood> mulitple beds, cool
03:32:26 -!- c|p` has joined.
03:32:50 -!- c|p has quit.
04:56:08 -!- boily has joined.
05:36:57 -!- c|p` has quit (Client Quit).
05:45:56 -!- RodgerTheGreat has quit.
05:46:03 -!- RodgerTheGreat has joined.
05:46:37 -!- RodgerTheGreat has quit (Client Quit).
05:52:55 -!- immibis has joined.
05:55:04 -!- immibis_ has joined.
05:56:25 <immibis_> how annoying
05:56:27 <immibis_> ~exec sys.stdout("I am working today")
05:56:27 <bsmnt_bot> I am working today
05:57:28 <pikhq> I don't believe you.
05:57:37 -!- immibis_ has changed nick to immibis[A].
05:57:37 * immibis[A] is now away - Reason : i am away
05:59:45 <pikhq> LMAO
06:13:38 -!- immibis has quit (Read error: 110 (Connection timed out)).
06:17:06 * bsmntbombdood hands pikhq's ass back
06:19:04 -!- immibis[A] has changed nick to immibis_.
06:19:04 * immibis_ is no longer away : Gone for 21 minutes 27 seconds
06:19:09 -!- immibis_ has changed nick to immibis.
06:22:27 <pikhq> bsmnt_bot: Thanks.
06:24:00 <pikhq> bsmntbombdood, even.
06:25:06 <immibis> pikhq: what happened to your ass?
06:25:19 <immibis> ~exec self.register_raw("
06:25:19 <bsmnt_bot> SyntaxError: EOL while scanning single-quoted string
06:25:24 <pikhq> I laughed it off.
06:25:34 <pikhq> ~exec exec("")
06:26:34 <immibis> ~exec self.register_raw(".* PURPLE BLEEPER (.*)", lambda x,y: self.raw("PRIVMSG #esoteric :\001ACTION turns purple and bleeps\001\nPRIVMSG #esoteric "+y.group(1)+" yourself!"))
06:26:38 <immibis> PURPLE BLEEPER X
06:26:52 <immibis> A PURPLE BLEEPER X
06:26:53 <bsmnt_bot> NameError: global name 'self' is not defined
06:27:06 <immibis> ~exec self.raw_regex_queue.pop()
06:27:57 <immibis> ~exec self.register_raw(":[^:]*:(.*) [bB][lL][eE][eE][pP][eE][rR] (.*)", lambda x,y: bot.raw("PRIVMSG #esoteric :\001ACTION turns "+y.group(1)+" and bleeps\001\nPRIVMSG #esoteric "+y.group(2)+" yourself!"))
06:28:02 <immibis> green bleeper bot
06:28:03 * bsmnt_bot turns green and bleeps
06:28:03 <bsmnt_bot> bot
06:28:08 <immibis> weird
06:28:13 <immibis> on bleeper
06:28:15 <bsmntbombdood> no?
06:28:27 <immibis> on bleeper \001ACTION stinks\001
06:28:28 * bsmnt_bot turns on and bleeps
06:28:28 <bsmnt_bot> \001ACTION
06:29:05 <immibis> off his girlfriend bleeper
06:29:09 <immibis> off his girlfriend bleeper hello
06:29:09 * bsmnt_bot turns off his girlfriend and bleeps
06:29:09 <bsmnt_bot> hello
06:29:45 <immibis> ~exec self.register_raw(":[^:]*:(.*) [bB][lL][eE][eE][pP][eE][rR]", lambda x,y: bot.raw("PRIVMSG #esoteric :\001ACTION turns "+y.group(1)+" and bleeps\001"))
06:29:49 <immibis> weird bleeper
06:29:50 * bsmnt_bot turns weird and bleeps
06:29:56 <immibis> into a bot bleeper
06:29:57 * bsmnt_bot turns into a bot and bleeps
06:30:15 <bsmntbombdood> you could just use i
06:30:29 <immibis> i?
06:30:39 <immibis> what is i?
06:30:45 * bsmnt_bot turns into immibis and bleeps
06:30:46 <bsmntbombdood> a regex flag
06:31:06 <immibis> i presume it means case-insensitive?
06:31:30 <bsmntbombdood> yes
06:33:12 <immibis> ~exec self.raw("PRIVMSG ##trivia :you didn't set the +n flag!")
06:33:20 <immibis> no, maybe they did
06:59:15 <immibis> ~exec self.register_raw("(.*Cannot send to channel*)",lambda x,y: sys.stdout(y.group(1)))
06:59:37 <immibis> ~exec self.raw("JOIN #hacking\nPRIVMSG #hacking No hacking!\nPART #hacking")
07:04:49 <pikhq> ~exec self.raw("PRIVMSG ##trivia :Yodel!")
07:05:14 <pikhq> ~exec self.raw("PRIVMSG #gnu :Yodel!")
07:05:30 <pikhq> Hrm. Is that *working*?
07:05:45 <pikhq> ~exec self.raw("PRIVMSG #natter :Okay, I *know* this won't get sent.")
07:05:49 <immibis> it isn't on any other channels
07:05:56 <pikhq> Dah.
07:06:05 <pikhq> I'm testing the regexp you added.
07:06:28 <immibis> hmm
07:07:25 <pikhq> Which doesn't work. ;)
07:07:36 <immibis> i can see that
07:08:11 <immibis> it doesn't return a "cannot send to channel" response
07:08:19 <immibis> it returns a "no such nick/channel" response
07:08:37 <immibis> i am coming 9th on the trivia game
07:08:43 <immibis> out of about 16 players
07:09:03 -!- maniac has joined.
07:09:16 <immibis> !nlalalalalala
07:09:24 -!- maniac has changed nick to lala.
07:09:33 -!- lala has changed nick to maniac.
07:10:26 <maniac> hi
07:10:38 <maniac> /notice maniac THING I SHOULD SAY ON THE CHANNEL
07:10:48 <maniac> /notice maniac !nMYNEWNICK
07:11:39 <immibis> ~exec self.raw(r":(\S+)!\S+ PRIVMSG
07:11:40 <bsmnt_bot> SyntaxError: EOL while scanning single-quoted string
07:11:56 <maniac> Whahuwhahuh?
07:14:49 <immibis> ~exec self.raw(r":(\S+)!\S+ PRIVMSG \S+ :I am a maniac(.*)", lambda x,y: self.raw("NOTICE "+y.group(1)+" :I am a maniac"+y.group(2)+" too"))
07:14:49 <bsmnt_bot> TypeError: raw() takes exactly 2 arguments (3 given)
07:15:00 <pikhq> You fail.
07:15:04 <immibis> ~exec self.raw(r":(\S+)!\S+ PRIVMSG \S+ :I am a maniac(.*)", lambda x,y: bot.raw("NOTICE "+y.group(1)+" :I am a maniac"+y.group(2)+" too"))
07:15:05 <bsmnt_bot> TypeError: raw() takes exactly 2 arguments (3 given)
07:15:08 <immibis> all the time
07:15:13 <immibis> what did i do then?
07:15:17 <immibis> what did i do then?oosp
07:15:19 <immibis> i see
07:15:23 <immibis> ~exec self.register_raw(r":(\S+)!\S+ PRIVMSG \S+ :I am a maniac(.*)", lambda x,y: bot.raw("NOTICE "+y.group(1)+" :I am a maniac"+y.group(2)+" too"))
07:15:40 <immibis> i don't actually know any python except for just enough to use this bot
07:15:52 <maniac> I am a maniac yes i am
07:16:25 <immibis> ~exec self.register_raw(r":(\S+)!\S+ PRIVMSG \S+ :I am a maniac(.*)", lambda x,y: bot.raw("PRIVMSG #esoteric :NOTICE "+y.group(1)+" :I am a maniac"+y.group(2)+" too"))
07:16:27 <maniac> I am a maniac yes i am
07:16:28 <bsmnt_bot> NOTICE maniac :I am a maniac yes i am too
07:16:43 <immibis> ~exec self.raw_regex_queue.pop()
07:16:48 <pikhq> I don't know much Python; I've figured out *just* enough that I can fiddle arround with it if need be.
07:16:53 <maniac> I am a maniac yes i am
07:17:20 <maniac> I AM A MANIAC YES I AM
07:18:22 <maniac> (screaming) I AM A MANIAC I AM A MANIAC I AM A MANIAC YES I AM
07:18:34 <pikhq> That's the second line of screaming.
07:18:39 <maniac> !nserialkiller
07:18:40 -!- maniac has changed nick to serialkiller.
07:18:40 <serialkiller> This nickname is owned by someone else
07:18:40 <serialkiller> If this is your nickname, type /msg NickServ IDENTIFY <password>
07:18:47 <immibis> loll
07:18:47 <pikhq> LMAO
07:18:53 <immibis> what is lmao
07:19:00 <pikhq> Laughing My Ass Off.
07:19:25 <immibis> oh
07:19:26 <immibis> ok
07:19:34 <serialkiller> !nimmibis_
07:19:34 -!- serialkiller has changed nick to immibis_.
07:19:35 <immibis_> This nickname is owned by someone else
07:19:35 <immibis_> If this is your nickname, type /msg NickServ IDENTIFY <password>
07:19:52 <pikhq> *Grin*
07:20:15 <immibis_> !nNickServ
07:20:24 <immibis_> !nimmibis'
07:20:25 <immibis_> !nimmibis
07:20:33 <immibis> too many nick changes i think
07:20:58 <pikhq> !nEgoBot
07:21:09 <immibis> it has to be a /notice
07:21:19 <immibis_> !nEgoBot
07:21:19 -!- immibis_ has changed nick to EgoBot.
07:21:20 <EgoBot> This nickname is owned by someone else
07:21:20 <EgoBot> If this is your nickname, type /msg NickServ IDENTIFY <password>
07:21:30 <EgoBot> !nNickServ
07:21:44 <immibis> 8th place now
07:21:56 <immibis> who is this egobot you keep trying to imitate with other bots?
07:22:16 <immibis> then again, the trivia game seems pretty inactive
07:22:17 <EgoBot> immibis, don't swear.
07:22:48 <pikhq> EgoBot is Gregor's bot, which, *if it were running* would be hosting various interpreters for EsoLangs.
07:22:51 <pikhq> Err.
07:22:53 <pikhq> esolangs.
07:22:54 <immibis> ok
07:23:39 <immibis> ~exec self.register_raw(r":(\S+)\S+ PRIVMSG \S+ :.*(fuck).*", lambda x,y: sys.stdout(y.group(1)+", please don't say "+y.group(1)+"."))
07:23:39 <EgoBot> immibis, don't swear.
07:23:42 <immibis> fuck
07:23:42 <EgoBot> immibis, don't swear.
07:23:43 <bsmnt_bot> immibis!n=IceChat7@125-238-176-25.broadband-telecom.global-gateway.net.n, please don't say immibis!n=IceChat7@125-238-176-25.broadband-telecom.global-gateway.net.n.
07:23:51 <immibis> argh
07:24:02 <immibis> ~exec self.raw_regex_queue.pop()
07:24:10 <immibis> ~exec self.register_raw(r":(\S+)!\S+ PRIVMSG \S+ :.*(fuck).*", lambda x,y: sys.stdout(y.group(1)+", please don't say "+y.group(2)+"."))
07:24:10 <EgoBot> immibis, don't swear.
07:24:13 <immibis> fuck you
07:24:13 <EgoBot> immibis, don't swear.
07:24:13 <bsmnt_bot> immibis, please don't say fuck.
07:24:13 <EgoBot> bsmnt_bot, don't swear.
07:24:32 <immibis> ~exec self.register_raw(r":(\S+)!\S+ PRIVMSG \S+ :.*(shit).*", lambda x,y: sys.stdout(y.group(1)+", please don't say "+y.group(2)+"."))
07:24:32 <EgoBot> immibis, don't swear.
07:24:37 <immibis> ~exec self.register_raw(r":(\S+)!\S+ PRIVMSG \S+ :.*(swear).*", lambda x,y: sys.stdout(y.group(1)+", please don't say "+y.group(2)+"."))
07:24:40 <immibis> shit
07:24:40 <EgoBot> immibis, don't swear.
07:24:41 <bsmnt_bot> immibis, please don't say shit.
07:24:41 <bsmnt_bot> EgoBot, please don't say swear.
07:24:41 <EgoBot> bsmnt_bot, don't swear.
07:24:42 <bsmnt_bot> EgoBot, please don't say swear.
07:25:10 <immibis> ~exec self.register_raw(r":(\S+)!\S+ PRIVMSG \S+ :.*(bitch).*", lambda x,y: sys.stdout(y.group(1)+", please don't say fuck or shit or any other swear word"+y.group(2)+"."))
07:25:11 <EgoBot> immibis, don't swear.
07:25:11 <bsmnt_bot> immibis, please don't say fuck.
07:25:11 <bsmnt_bot> immibis, please don't say shit.
07:25:11 <bsmnt_bot> immibis, please don't say swear.
07:25:11 <bsmnt_bot> EgoBot, please don't say swear.
07:25:11 <EgoBot> bsmnt_bot, don't swear.
07:25:12 <EgoBot> bsmnt_bot, don't swear.
07:25:12 <bsmnt_bot> EgoBot, please don't say swear.
07:25:12 <bsmnt_bot> EgoBot, please don't say swear.
07:25:15 <immibis> oh dear
07:25:26 <immibis> fuck you
07:25:26 <EgoBot> immibis, don't swear.
07:25:27 <bsmnt_bot> immibis, please don't say fuck.
07:25:27 <bsmnt_bot> EgoBot, please don't say swear.
07:25:27 <EgoBot> bsmnt_bot, don't swear.
07:25:27 <bsmnt_bot> EgoBot, please don't say swear.
07:25:37 <immibis> chain reaction alert
07:25:48 <pikhq> Fik.
07:26:07 <pikhq> I see that it's not multilingual.
07:26:21 -!- boily has quit ("WeeChat 0.2.5").
07:26:55 <pikhq> Via botojn estas fika patrifikuloj kaj fekifikuloj!
07:27:09 <pikhq> (Your bots as fucking motherfuckers and shitfuckers!)
07:27:09 <EgoBot> pikhq, don't swear.
07:27:09 <bsmnt_bot> pikhq, please don't say fuck.
07:27:09 <bsmnt_bot> pikhq, please don't say shit.
07:27:10 <EgoBot> bsmnt_bot, don't swear.
07:27:10 <bsmnt_bot> EgoBot, please don't say swear.
07:27:10 <EgoBot> bsmnt_bot, don't swear.
07:27:10 <bsmnt_bot> EgoBot, please don't say swear.
07:27:10 <immibis> if i paste the command on my clipboard onto this channel, it will cause a chain reaction and possibly render one or both bots unusable
07:27:11 <bsmnt_bot> EgoBot, please don't say swear.
07:27:22 <immibis> trivia
07:27:23 <EgoBot> immibis, don't swear.
07:27:23 <bsmnt_bot> EgoBot, please don't say swear.
07:27:31 <immibis> trivia is swearing?
07:27:31 <EgoBot> immibis, don't swear.
07:27:31 <bsmnt_bot> immibis, please don't say swear.
07:27:31 <bsmnt_bot> EgoBot, please don't say swear.
07:27:37 <immibis> this would do terribly on ##trivia
07:27:37 <EgoBot> immibis, don't swear.
07:27:38 <bsmnt_bot> EgoBot, please don't say swear.
07:27:45 <immibis> where there is a triviabot
07:27:45 <EgoBot> immibis, don't swear.
07:27:46 <bsmnt_bot> EgoBot, please don't say swear.
07:27:47 <immibis> ~exec self.register_raw(r":(\S+)!\S+ PRIVMSG \S+ :.*(swear).*", lambda x,y: sys.stdout(y.group(1)+", please don't say fuck or shit or any other swear word"+y.group(2)+"."))
07:27:47 <EgoBot> immibis, don't swear.
07:27:48 <bsmnt_bot> immibis, please don't say fuck.
07:27:48 <bsmnt_bot> immibis, please don't say shit.
07:27:48 <bsmnt_bot> immibis, please don't say swear.
07:27:48 <bsmnt_bot> immibis, please don't say fuck or shit or any other swear wordswear.
07:27:48 <EgoBot> bsmnt_bot, don't swear.
07:27:48 <EgoBot> bsmnt_bot, don't swear.
07:27:48 <bsmnt_bot> EgoBot, please don't say swear.
07:27:48 <bsmnt_bot> EgoBot, please don't say fuck or shit or any other swear wordswear.
07:27:48 <EgoBot> bsmnt_bot, don't swear.
07:27:48 <EgoBot> bsmnt_bot, don't swear.
07:27:50 <bsmnt_bot> EgoBot, please don't say swear.
07:27:52 <immibis> fucku
07:27:52 <bsmnt_bot> EgoBot, please don't say fuck or shit or any other swear wordswear.
07:27:52 <EgoBot> immibis, don't swear.
07:27:53 <EgoBot> bsmnt_bot, don't swear.
07:27:54 <bsmnt_bot> EgoBot, please don't say swear.
07:27:56 <pikhq> immibis: bsmnt_bot, from our observations, is impossible to lock up.
07:27:56 <bsmnt_bot> EgoBot, please don't say fuck or shit or any other swear wordswear.
07:27:56 <EgoBot> bsmnt_bot, don't swear.
07:27:58 <bsmnt_bot> EgoBot, please don't say swear.
07:28:00 <bsmnt_bot> EgoBot, please don't say fuck or shit or any other swear wordswear.
07:28:00 <EgoBot> bsmnt_bot, don't swear.
07:28:02 <bsmnt_bot> EgoBot, please don't say swear.
07:28:04 <bsmnt_bot> EgoBot, please don't say fuck or shit or any other swear wordswear.
07:28:05 <EgoBot> bsmnt_bot, don't swear.
07:28:05 <immibis> see
07:28:06 <bsmnt_bot> immibis, please don't say fuck.
07:28:06 <EgoBot> bsmnt_bot, don't swear.
07:28:08 <bsmnt_bot> EgoBot, please don't say swear.
07:28:10 <bsmnt_bot> EgoBot, please don't say fuck or shit or any other swear wordswear.
07:28:10 <EgoBot> bsmnt_bot, don't swear.
07:28:12 <bsmnt_bot> EgoBot, please don't say swear.
07:28:14 <bsmnt_bot> EgoBot, please don't say fuck or shit or any other swear wordswear.
07:28:14 <EgoBot> bsmnt_bot, don't swear.
07:28:16 <bsmnt_bot> EgoBot, please don't say swear.
07:28:17 <immibis> i will move egobot
07:28:18 <bsmnt_bot> EgoBot, please don't say fuck or shit or any other swear wordswear.
07:28:18 <EgoBot> bsmnt_bot, don't swear.
07:28:20 <bsmnt_bot> EgoBot, please don't say swear.
07:28:21 <pikhq> This will go on forever, however.
07:28:22 <bsmnt_bot> EgoBot, please don't say fuck or shit or any other swear wordswear.
07:28:23 -!- EgoBot has changed nick to xxx.
07:28:23 <xxx> bsmnt_bot, don't swear.
07:28:23 <xxx> This nickname is owned by someone else
07:28:23 <xxx> If this is your nickname, type /msg NickServ IDENTIFY <password>
07:28:24 <bsmnt_bot> EgoBot, please don't say swear.
07:28:26 <bsmnt_bot> EgoBot, please don't say fuck or shit or any other swear wordswear.
07:28:26 <xxx> bsmnt_bot, don't swear.
07:28:28 <bsmnt_bot> EgoBot, please don't say swear.
07:28:30 <bsmnt_bot> EgoBot, please don't say fuck or shit or any other swear wordswear.
07:28:30 <xxx> bsmnt_bot, don't swear.
07:28:32 <bsmnt_bot> EgoBot, please don't say swear.
07:28:34 <bsmnt_bot> EgoBot, please don't say fuck or shit or any other swear wordswear.
07:28:34 <xxx> bsmnt_bot, don't swear.
07:28:36 <xxx> !nmaniac
07:28:36 -!- xxx has changed nick to maniac.
07:28:36 <bsmnt_bot> EgoBot, please don't say swear.
07:28:37 <maniac> This nickname is owned by someone else
07:28:37 <maniac> If this is your nickname, type /msg NickServ IDENTIFY <password>
07:28:38 <bsmnt_bot> EgoBot, please don't say fuck or shit or any other swear wordswear.
07:28:38 <maniac> bsmnt_bot, don't swear.
07:28:40 <bsmnt_bot> EgoBot, please don't say swear.
07:28:42 <bsmnt_bot> EgoBot, please don't say fuck or shit or any other swear wordswear.
07:28:43 <maniac> bsmnt_bot, don't swear.
07:28:43 <maniac> !c##trivia
07:28:43 -!- maniac has left (?).
07:28:44 <bsmnt_bot> xxx, please don't say swear.
07:28:45 <pikhq> !exec self.raw("QUIT")
07:28:46 <bsmnt_bot> xxx, please don't say fuck or shit or any other swear wordswear.
07:28:48 <bsmnt_bot> xxx, please don't say swear.
07:28:50 <bsmnt_bot> xxx, please don't say fuck or shit or any other swear wordswear.
07:28:53 <bsmnt_bot> xxx, please don't say swear.
07:28:54 <bsmnt_bot> xxx, please don't say fuck or shit or any other swear wordswear.
07:28:56 <bsmnt_bot> xxx, please don't say swear.
07:28:58 <bsmnt_bot> xxx, please don't say fuck or shit or any other swear wordswear.
07:29:00 <pikhq> And now we just wait on the buffer.
07:29:00 <bsmnt_bot> maniac, please don't say swear.
07:29:02 <bsmnt_bot> maniac, please don't say fuck or shit or any other swear wordswear.
07:29:04 <bsmnt_bot> maniac, please don't say swear.
07:29:06 <bsmnt_bot> maniac, please don't say fuck or shit or any other swear wordswear.
07:29:10 <immibis> go to ##trivia to see what happened with maniac and triviette
07:29:15 <immibis> (they are both bots)
07:29:28 <immibis> [18:28] <@Triviette> --== Trivia ==-- [category: Music]
07:29:28 <immibis> [18:28] <@Triviette> American Songbook: "But I miss you most of all, when the
07:29:28 <immibis> [18:28] <@Triviette> __ __ begin to fall"
07:29:28 <immibis> [18:28] <@Triviette> Hint [1 of 3]: A _ _ _ _ _ _ _ _ _ _ _ / _ _ _ _ E _ _
07:29:28 <immibis> [18:28] <maniac> Triviette, don't swear.
07:29:28 <bsmnt_bot> immibis, please don't say swear.
07:29:29 <bsmnt_bot> immibis, please don't say fuck or shit or any other swear wordswear.
07:29:38 <immibis> ~exec self.raw("QUIT")
07:29:38 -!- bsmnt_bot has quit.
07:29:45 -!- bsmnt_bot has joined.
07:29:49 <pikhq> Oh. I feel stupid.
07:32:20 -!- maniac has joined.
07:32:21 <maniac> [#esoteric] Welcome to the esoteric programming channel! Logs of previous discussions are available at http://meme.b9.com/clog/esoteric/?M=D
07:32:25 <immibis> lol
07:32:50 <immibis> lmaopmpnihnasidoc(nbatgttt)
07:32:56 <pikhq> Interesa.
07:33:13 <immibis> laughing my ass off peeing my pants now i have no ass so i die of constipation (not being able to go to the toilet)
07:33:26 <immibis> lshipmp
07:33:49 <maniac> !rPRIVMSG #esoteric !!@
07:33:49 <maniac> !!@
07:33:53 <maniac> !rPRIVMSG #esoteric :!!@
07:33:53 <maniac> !!@
07:33:54 <maniac> !rPRIVMSG #esoteric :!!@
07:33:54 <maniac> !!@
07:33:54 <maniac> !rPRIVMSG #esoteric :!!@
07:33:54 <maniac> !!@
07:33:56 <maniac> !rPRIVMSG #esoteric :!!@
07:33:58 <maniac> !!@
07:34:00 <maniac> !rPRIVMSG #esoteric :!!@
07:34:02 <maniac> !!@
07:34:04 <maniac> !rPRIVMSG #esoteric !shutup
07:34:06 <maniac> !shutup
07:34:15 <maniac> !shutup
07:34:20 <maniac> !shutup
07:35:04 -!- maniac has quit (Read error: 104 (Connection reset by peer)).
07:35:28 -!- maniac has joined.
07:36:10 <immibis> pinging alert
07:38:48 <immibis> ~exec self.register_raw("\S+ PRIVMSG \S+ :(.*quine.*)", lambda x,y: sys.stdout(y.group(1)))
07:38:52 <immibis> do not quine
07:38:52 <bsmnt_bot> do not quine
07:39:40 <immibis> ~exec self.register_raw("\S+ PRIVMSG \S+ :(.*quine.*)", lambda x,y: bot.raw("PRIVMSG bsmnt_bot :Quining. "+y.group(1))))
07:39:41 <bsmnt_bot> ~exec self.register_raw("\S+ PRIVMSG \S+ :(.*quine.*)", lambda x,y: bot.raw("PRIVMSG bsmnt_bot :Quining. "+y.group(1))))
07:39:41 <bsmnt_bot> SyntaxError: unexpected EOF while parsing
07:39:44 <immibis> ~exec self.register_raw("\S+ PRIVMSG \S+ :(.*quine.*)", lambda x,y: bot.raw("PRIVMSG bsmnt_bot :Quining. "+y.group(1)))
07:39:47 <immibis> quine
07:39:50 <bsmnt_bot> ~exec self.register_raw("\S+ PRIVMSG \S+ :(.*quine.*)", lambda x,y: bot.raw("PRIVMSG bsmnt_bot :Quining. "+y.group(1)))
07:39:55 <bsmnt_bot> quine
07:39:59 <bsmnt_bot> Quining. quine
07:40:03 <bsmnt_bot> Quining. Quining. quine
07:40:07 <bsmnt_bot> Quining. Quining. Quining. quine
07:40:11 <bsmnt_bot> Quining. Quining. Quining. Quining. quine
07:40:15 <bsmnt_bot> Quining. Quining. Quining. Quining. Quining. quine
07:40:16 <immibis> not such an accurate quine then
07:40:19 <bsmnt_bot> not such an accurate quine then
07:40:23 <bsmnt_bot> Quining. Quining. Quining. Quining. Quining. Quining. quine
07:40:27 <bsmnt_bot> Quining. not such an accurate quine then
07:40:31 <bsmnt_bot> Quining. Quining. Quining. Quining. Quining. Quining. Quining. quine
07:40:35 <bsmnt_bot> Quining. Quining. not such an accurate quine then
07:40:36 <Sukoshi> :D
07:40:37 <immibis> stop quineing
07:40:39 <bsmnt_bot> Quining. Quining. Quining. Quining. Quining. Quining. Quining. Quining. quine
07:40:43 <bsmnt_bot> stop quineing
07:40:47 <bsmnt_bot> Quining. Quining. Quining. not such an accurate quine then
07:40:52 <bsmnt_bot> Quining. Quining. Quining. Quining. Quining. Quining. Quining. Quining. Quining. quine
07:40:55 <bsmnt_bot> Quining. stop quineing
07:40:59 <bsmnt_bot> Quining. Quining. Quining. Quining. not such an accurate quine then
07:41:03 <bsmnt_bot> Quining. Quining. Quining. Quining. Quining. Quining. Quining. Quining. Quining. Quining. quine
07:41:04 <immibis> do not quine any further
07:41:07 <bsmnt_bot> Quining. Quining. stop quineing
07:41:11 <bsmnt_bot> Quining. Quining. Quining. Quining. Quining. not such an accurate quine then
07:41:15 <bsmnt_bot> do not quine any further
07:41:19 <bsmnt_bot> Quining. Quining. Quining. Quining. Quining. Quining. Quining. Quining. Quining. Quining. Quining. quine
07:41:24 <bsmnt_bot> Quining. Quining. Quining. stop quineing
07:41:28 <bsmnt_bot> Quining. Quining. Quining. Quining. Quining. Quining. not such an accurate quine then
07:41:32 <bsmnt_bot> Quining. do not quine any further
07:41:36 <bsmnt_bot> Quining. Quining. Quining. Quining. Quining. Quining. Quining. Quining. Quining. Quining. Quining. Quining. quine
07:41:42 <bsmnt_bot> Quining. Quining. Quining. Quining. stop quineing
07:41:43 <Sukoshi> Woohoo.
07:41:46 <bsmnt_bot> Quining. Quining. Quining. Quining. Quining. Quining. Quining. not such an accurate quine then
07:41:46 <Sukoshi> Blahbitty
07:41:50 <bsmnt_bot> Quining. Quining. do not quine any further
07:41:54 <bsmnt_bot> Quining. Quining. Quining. Quining. Quining. Quining. Quining. Quining. Quining. Quining. Quining. Quining. Quining. quine
07:41:58 <Sukoshi> Blahbitty quite?
07:42:00 <bsmnt_bot> Quining. Quining. Quining. Quining. Quining. stop quineing
07:42:04 <bsmnt_bot> Quining. Quining. Quining. Quining. Quining. Quining. Quining. Quining. not such an accurate quine then
07:42:05 <immibis> sukoshi: what
07:42:06 <Sukoshi> Blahbitty quine
07:42:09 <bsmnt_bot> Quining. Quining. Quining. do not quine any further
07:42:13 <bsmnt_bot> Quining. Quining. Quining. Quining. Quining. Quining. Quining. Quining. Quining. Quining. Quining. Quining. Quining. Quining. quine
07:42:15 <immibis> ~exec while 1: sys.stdout("I AM FLOODING MYSELF OFF")
07:42:15 -!- bsmnt_bot has quit (Excess Flood).
07:42:20 -!- bsmnt_bot has joined.
07:42:23 <immibis> ~exec while 1: sys.stdout("I AM FLOODING MYSELF OFF")
07:42:23 <bsmnt_bot> I AM FLOODING MYSELF OFF
07:42:23 <bsmnt_bot> I AM FLOODING MYSELF OFF
07:42:23 <bsmnt_bot> I AM FLOODING MYSELF OFF
07:42:23 <bsmnt_bot> I AM FLOODING MYSELF OFF
07:42:24 -!- bsmnt_bot has quit (Excess Flood).
07:42:26 -!- bsmnt_bot has joined.
07:42:29 <immibis> ~exec while 1: sys.stdout("I AM FLOODING MYSELF OFF")
07:42:29 <bsmnt_bot> I AM FLOODING MYSELF OFF
07:42:29 -!- bsmnt_bot has quit (Excess Flood).
07:42:32 <immibis> ~exec while 1: sys.stdout("I AM FLOODING MYSELF OFF")
07:42:32 -!- bsmnt_bot has joined.
07:42:37 <immibis> ~exec while 1: sys.stdout("I AM FLOODING MYSELF OFF")
07:42:37 <bsmnt_bot> I AM FLOODING MYSELF OFF
07:42:38 -!- bsmnt_bot has quit (Excess Flood).
07:42:40 -!- bsmnt_bot has joined.
07:43:40 -!- maniac has quit (Read error: 104 (Connection reset by peer)).
07:44:08 <immibis> ~exec self.register_raw("(.*)",lambda x,y: sys.stdout(y.group(1)+", so what?"))
07:44:11 <immibis> ok
07:44:12 <bsmnt_bot> :immibis!n=IceChat7@125-238-176-25.broadband-telecom.global-gateway.net.nz PRIVMSG #esoteric :ok, so what?
07:44:19 <immibis> ouch
07:44:19 <bsmnt_bot> :immibis!n=IceChat7@125-238-176-25.broadband-telecom.global-gateway.net.nz PRIVMSG #esoteric :ouch, so what?
07:44:33 <immibis> ~exec self.raw_regex_queue.pop()
07:44:34 <bsmnt_bot> :immibis!n=IceChat7@125-238-176-25.broadband-telecom.global-gateway.net.nz PRIVMSG #esoteric :~exec self.raw_regex_queue.pop(), so what?
07:44:46 <immibis> ~exec self.register_raw(":\S+ PRIVMSG \S+ :(.*)",lambda x,y: sys.stdout(y.group(1)+", so what?"))
07:44:48 <immibis> i such
07:44:49 <bsmnt_bot> i such, so what?
07:44:50 <immibis> i suck
07:44:51 <bsmnt_bot> i suck, so what?
07:44:52 <pikhq> I, for one, think that there's something odd about the IRC protocol.
07:44:52 <bsmnt_bot> I, for one, think that there's something odd about the IRC protocol., so what?
07:44:53 <immibis> i'm a bot
07:44:54 <bsmnt_bot> i'm a bot, so what?
07:45:00 <immibis> so what?
07:45:01 <bsmnt_bot> so what?, so what?
07:45:04 <Sukoshi> Your mom.
07:45:05 <bsmnt_bot> Your mom., so what?
07:45:08 <Sukoshi> Your mom
07:45:09 <bsmnt_bot> Your mom, so what?
07:45:16 <immibis> pikhq, what is odd abpit tje irc protomilk
07:45:16 <bsmnt_bot> pikhq, what is odd abpit tje irc protomilk, so what?
07:45:17 <Sukoshi> I eat babies in my sleep
07:45:18 <bsmnt_bot> I eat babies in my sleep, so what?
07:45:18 <pikhq> Having fun, Sukoshi?
07:45:18 <bsmnt_bot> Having fun, Sukoshi?, so what?
07:45:19 <immibis> pikhq, what is odd abpit tje irc protoplasm
07:45:20 <bsmnt_bot> pikhq, what is odd abpit tje irc protoplasm, so what?
07:45:32 <immibis> i am part of the IRC protoplasm
07:45:33 <bsmnt_bot> i am part of the IRC protoplasm, so what?
07:45:36 <Sukoshi> Quite, pikhq.
07:45:36 <bsmnt_bot> Quite, pikhq., so what?
07:45:41 <pikhq> ~exec self.raw_regex_queue.pop()
07:45:41 <bsmnt_bot> ~exec self.raw_regex_queue.pop(), so what?
07:45:55 <immibis> test
07:46:11 <immibis> pikhq: what is odd about the protocol?
07:46:15 <pikhq> ~exec sys.stdout("test, so what?")
07:46:15 <bsmnt_bot> test, so what?
07:46:26 <pikhq> I dunno. Just seems odd. *shrug*
07:47:34 <immibis> pikhq: why?
07:48:07 <immibis> ~exec self.register_raw(".*~exec.*",sys.stdout("Make me"))
07:48:08 <bsmnt_bot> Make me
07:48:14 <immibis> ~exec purple
07:48:15 <bsmnt_bot> NameError: name 'purple' is not defined
07:48:15 <bsmnt_bot> AttributeError: 'NoneType' object has no attribute '__name__'
07:48:22 <immibis> ~exec self.register_raw(".*~exec.*",lambda x,y: sys.stdout("Make me"))
07:48:26 <immibis> ~exec na
07:48:30 -!- bsmnt_bot has quit (Excess Flood).
07:48:37 <immibis> um, what
07:48:38 -!- bsmnt_bot has joined.
07:48:41 <immibis> ~exec self.register_raw(".*~exec.*",lambda x,y: sys.stdout("Make me"))
07:48:49 <immibis> ~exec bie
07:48:50 <bsmnt_bot> Make me
07:48:50 <bsmnt_bot> NameError: name 'bie' is not defined
07:48:57 <immibis> ~exec self=bot
07:48:57 <bsmnt_bot> Make me
07:49:05 <immibis> ok then
07:49:10 <immibis> ~exec bot=new Object()
07:49:11 <bsmnt_bot> Make me
07:49:11 <bsmnt_bot> SyntaxError: invalid syntax
07:49:12 <immibis> i made you
07:50:40 <immibis> ~exec bot=Object()
07:50:40 -!- WaiterBot has joined.
07:50:41 <bsmnt_bot> Make me
07:50:41 <bsmnt_bot> NameError: name 'Object' is not defined
07:50:49 <immibis> ~exec bot=time.localtime()
07:50:49 <bsmnt_bot> Make me
07:50:51 <immibis> ~exec bot=time.localtime()
07:50:52 <bsmnt_bot> Make me
07:50:55 <immibis> ~exec self=time.localtime()
07:50:56 <bsmnt_bot> Make me
07:50:56 <immibis> ~exec self=time.localtime()
07:50:57 <bsmnt_bot> Make me
07:51:06 <immibis> !nWaiterBo
07:51:06 -!- WaiterBot has changed nick to WaiterBo.
07:51:07 <immibis> !nWaiterBot
07:51:07 -!- WaiterBo has changed nick to WaiterBot.
07:51:11 <immibis> !c#esoteric
07:51:11 -!- WaiterBot has left (?).
07:51:11 -!- WaiterBot has joined.
07:51:16 <immibis> !c#esoteric
07:51:16 -!- WaiterBot has left (?).
07:51:16 -!- WaiterBot has joined.
07:51:21 <immibis> fuck
07:51:28 <immibis> waiterbot, i said fuck
07:51:34 <immibis> oh right
07:51:35 <immibis> !speak
07:51:37 <immibis> fuck
07:51:37 <WaiterBot> immibis, don't swear.
07:51:46 <immibis> do not quine, either of you
07:51:46 <WaiterBot> do not quine, either of you
07:51:47 <WaiterBot> quining: do not quine, either of you
07:51:47 <WaiterBot> quining: do not quine, either of you
07:51:47 <WaiterBot> quining: quining: do not quine, either of you
07:51:49 <WaiterBot> quining: quining: do not quine, either of you
07:51:53 <WaiterBot> quining: quining: quining: do not quine, either of you
07:51:55 <WaiterBot> quining: quining: quining: do not quine, either of you
07:51:59 <WaiterBot> quining: quining: quining: quining: do not quine, either of you
07:52:01 <WaiterBot> quining: quining: quining: quining: do not quine, either of you
07:52:04 <immibis> !nWaiterNoQuines
07:52:05 <WaiterBot> quining: quining: quining: quining: quining: do not quine, either of you
07:52:07 <WaiterBot> quining: quining: quining: quining: quining: do not quine, either of you
07:52:11 -!- WaiterBot has changed nick to WaiterNoQuines.
07:52:13 <WaiterNoQuines> !nwaiternoquines
07:52:17 <WaiterNoQuines> quining: quining: quining: quining: quining: quining: do not quine, either of you
07:52:19 <WaiterNoQuines> quining: quining: quining: quining: quining: quining: do not quine, either of you
07:52:21 <immibis> oh no
07:52:23 <immibis> what
07:52:23 <WaiterNoQuines> quining: !nwaiternoquines
07:52:25 <WaiterNoQuines> quining: !nwaiternoquines
07:52:29 <WaiterNoQuines> quining: quining: quining: quining: quining: quining: quining: do not quine, either of you
07:52:30 <immibis> !nwa
07:52:31 <WaiterNoQuines> quining: quining: quining: quining: quining: quining: quining: do not quine, either of you
07:52:35 <WaiterNoQuines> quining: quining: !nwaiternoquines
07:52:37 <WaiterNoQuines> quining: quining: !nwaiternoquines
07:52:41 -!- WaiterNoQuines has changed nick to wa.
07:52:43 <wa> quining: quining: quining: quining: quining: quining: quining: quining: do not quine, either of you
07:52:45 <wa> quining: quining: quining: quining: quining: quining: quining: quining: do not quine, either of you
07:52:49 <wa> quining: quining: quining: !nwaiternoquines
07:52:51 <immibis> stopping
07:52:51 <wa> quining: quining: quining: !nwaiternoquines
07:52:52 -!- wa has quit (Read error: 104 (Connection reset by peer)).
07:53:01 <immibis> do not say quine
07:53:07 -!- WaiterBot has joined.
07:53:08 <immibis> in capitals or lowercase
07:53:11 <immibis> or mixed case
07:53:13 <immibis> whatever you do,
07:53:18 <immibis> do NOT say QUINE
07:53:18 <WaiterBot> do not say quine
07:53:18 <WaiterBot> quining: do not say quine
07:53:19 <WaiterBot> quining: quining: do not say quine
07:53:21 <WaiterBot> quining: quining: quining: do not say quine
07:53:25 <WaiterBot> quining: quining: quining: quining: do not say quine
07:53:26 <immibis> !nnotaquin
07:53:29 -!- WaiterBot has changed nick to notaquin.
07:53:31 <notaquin> quining: quining: quining: quining: quining: do not say quine
07:53:32 <Sukoshi> Quines are fun?
07:53:33 <immibis> !nmannequin
07:53:35 <notaquin> quines are fun?
07:53:39 <notaquin> quining: quining: quining: quining: quining: quining: do not say quine
07:53:43 -!- notaquin has changed nick to mannequin.
07:53:45 <mannequin> quining: quines are fun?
07:53:49 <mannequin> quining: quining: quining: quining: quining: quining: quining: do not say quine
07:53:53 <mannequin> quining: quining: quines are fun?
07:53:57 <mannequin> quining: quining: quining: quining: quining: quining: quining: quining: do not say quine
07:54:01 <mannequin> quining: quining: quining: quines are fun?
07:54:05 <mannequin> quining: quining: quining: quining: quining: quining: quining: quining: quining: do not say quine
07:54:06 <Sukoshi> quining: Since when did #esoteric become a spam channel?
07:54:09 <mannequin> quining: quining: quining: quining: quines are fun?
07:54:13 <mannequin> quining: quining: quining: quining: quining: quining: quining: quining: quining: quining: do not say quine
07:54:15 <Sukoshi> quining: Shouldn't the ops lay done some sort of law?
07:54:18 -!- mannequin has quit (Read error: 104 (Connection reset by peer)).
07:54:41 <immibis> well, if you say quine, it quines your request
07:54:56 <immibis> as of when it comes back on, it can be stopped using the !shutup command
07:54:58 <Sukoshi> That's a spam feature.
07:55:04 <immibis> ok
07:55:11 -!- WaiterBot has joined.
07:55:14 -!- WaiterBot has quit (Read error: 104 (Connection reset by peer)).
07:55:57 <immibis> what if you need to say ~fuckingshittyquine~ in order to quine?
07:56:16 -!- WaiterBot has joined.
07:57:08 <immibis> !c#bots
07:57:08 -!- WaiterBot has left (?).
07:58:01 <immibis> the quine can now be cancelled
07:58:03 <immibis> [18:56] <immibis> ~fuckingshittyquine~
07:58:03 <immibis> [18:56] <immibis> !speak
07:58:03 <immibis> [18:56] <immibis> ~fuckingshittyquine~
07:58:03 <immibis> [18:56] <WaiterBot> immibis, don't swear.
07:58:03 <immibis> [18:56] <WaiterBot> ~fuckingshittyquine~
07:58:04 <immibis> [18:56] <WaiterBot> quining: ~fuckingshittyquine~
07:58:06 <immibis> [18:56] <WaiterBot> quining: ~fuckingshittyquine~
07:58:08 <immibis> [18:56] <WaiterBot> WaiterBot, don't swear.
07:58:10 <immibis> [18:56] <immibis> !shutup
07:58:12 <immibis> [18:56] <WaiterBot> quining: quining: ~fuckingshittyquine~
07:58:13 <pikhq> LMAO
07:58:14 <immibis> [18:56] <WaiterBot> quining: quining: ~fuckingshittyquine~
07:58:16 <immibis> [18:56] <WaiterBot> WaiterBot, don't swear.
07:58:18 <immibis> [18:56] (End of discussion)
07:58:25 -!- WaiterBot has joined.
07:58:27 <immibis> boo
07:58:30 <pikhq> Sukoshi: *bsmnt_bot* is a spam feature.
07:58:44 <Sukoshi> Yeah, true.
07:59:06 <Sukoshi> Did the ops here die then?
07:59:22 <pikhq> ~exec exec("while 1:\n sleep(100)\n sys.stdout(\"See?\")")
07:59:22 <bsmnt_bot> Make me
07:59:23 <bsmnt_bot> NameError: name 'sleep' is not defined
07:59:29 <pikhq> Schiessen.
07:59:59 <immibis> ~exec exec("while 1:\n i=0\n while i<32767: i=i+1\n sys.stdout(\"See?\")")
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:00:00 <bsmnt_bot> Make me
08:00:00 <bsmnt_bot> See?
08:00:00 <bsmnt_bot> See?
08:00:00 <bsmnt_bot> See?
08:00:01 <bsmnt_bot> See?
08:00:01 <bsmnt_bot> See?
08:00:02 <bsmnt_bot> See?
08:00:04 <bsmnt_bot> See?
08:00:06 <bsmnt_bot> See?
08:00:08 <bsmnt_bot> See?
08:00:10 <bsmnt_bot> See?
08:00:12 <bsmnt_bot> See?
08:00:13 -!- bsmnt_bot has quit (Excess Flood).
08:00:16 -!- bsmnt_bot has joined.
08:00:23 <immibis> ~exec self.raw("QUIT irc.freenode.net :Excess Flood")
08:00:24 -!- bsmnt_bot has quit (Client Quit).
08:00:26 -!- bsmnt_bot has joined.
08:00:28 <immibis> ~exec self.raw("QUIT irc.freenode.net :Excess Flood")
08:00:28 -!- bsmnt_bot has quit (Client Quit).
08:00:31 -!- bsmnt_bot has joined.
08:00:59 <immibis> ~exec self.register_raw(r":\S+ NOTICE \S+ :(.*)", lambda x,y: sys.stdout(y.group(1)))
08:01:04 <pikhq> Sukoshi: No, fizzie and lament are around still.
08:01:17 <bsmnt_bot> Sukoshi: No, fizzie and lament are around still.
08:01:31 <pikhq> Three of them, I don't know, but lament and fizzie are around.
08:01:45 <bsmnt_bot> Three of them, I don't know, but lament and fizzie are around.
08:01:48 <pikhq> Taaus, Aardappel, and andreou are the other ops.
08:02:05 <pikhq> (andreou is listed as channel contact, with lament as an alternate)
08:02:05 <bsmnt_bot> Taaus, Aardappel, and andreou are the other ops.
08:02:19 <bsmnt_bot> (andreou is listed as channel contact, with lament as an alternate)
08:02:43 <pikhq> !exec self.raw_regex_queue.pop()
08:02:47 <pikhq> SHUT UP.
08:03:03 <bsmnt_bot> SHUT UP YOURSELF!
08:03:13 <pikhq> -_-'
08:03:22 <bsmnt_bot> yeah, its annoying, ay?
08:04:10 <immibis> ~exec self.register_raw(r":\S+ PRIVMSG [^# ] :(.*)", lambda x,y: sys.stdout(y.group(1)))
08:04:44 <immibis> ~exec self.register_raw(r":\S+ PRIVMSG [^# ]* :(.*)", lambda x,y: sys.stdout(y.group(1)))
08:04:53 <immibis> ops
08:04:55 -!- bsmnt_bot has quit (Excess Flood).
08:04:58 -!- bsmnt_bot has joined.
08:04:59 <immibis> i mean oops
08:05:09 <pikhq> ~exec os.system("killall -9 bsmnt_bot")
08:05:28 <immibis> ~exec os.system("ps")
08:05:47 <immibis> ~exec self.raw("BOMB")
08:05:52 <pikhq> It's killed already. >:D
08:06:02 <immibis> ~exec sys.stdout("No i'm not")
08:06:02 <bsmnt_bot> No i'm not
08:06:14 <pikhq> Kuso.
08:06:15 <immibis> ~exec os.system("killall -9 python")
08:06:22 <immibis> ~exec os.system("killall -9 pyexec")
08:06:29 <immibis> ~exec os.system("ps -ax")
08:06:31 <pikhq> ~exec sys.stdout(os.system("ps"))
08:06:32 <bsmnt_bot> 32512
08:06:36 <pikhq> ...
08:06:50 <immibis> well theres the process id of ps!
08:06:57 <immibis> lot of processes on that computer
08:07:33 <pikhq> Yeah; we cause it.
08:07:36 <immibis> ~exec sys.stdout(os)
08:07:37 <bsmnt_bot> <module 'os' from '/usr/lib/python2.4/os.pyc'>
08:07:38 <pikhq> :p
08:07:49 <immibis> ~exec sys.stdout(os.dir("/usr/bin"))
08:07:49 <bsmnt_bot> AttributeError: 'module' object has no attribute 'dir'
08:07:53 <immibis> ~exec sys.stdout(os.listdir("/usr/bin"))
08:07:54 <bsmnt_bot> ['dc', 'nice', 'wget', 'python2.4']
08:07:59 <immibis> ~exec sys.stdout(os.listdir("/usr/bin/python2.4"))
08:07:59 <bsmnt_bot> OSError: [Errno 20] Not a directory: '/usr/bin/python2.4'
08:08:06 <immibis> ~exec sys.stdout(os.listdir("/usr/"))
08:08:07 <bsmnt_bot> ['bin', 'lib', 'include']
08:08:14 <immibis> ~exec sys.stdout(os.listdir("/bin/"))
08:08:14 <bsmnt_bot> ['ls', 'sh', 'bash']
08:08:23 <immibis> ~exec sys.stdout(os.listdir("/usr/bin/py"))
08:08:23 <bsmnt_bot> OSError: [Errno 2] No such file or directory: '/usr/bin/py'
08:08:25 <immibis> ~exec sys.stdout(os.listdir("/usr/bin/py*"))
08:08:26 <bsmnt_bot> OSError: [Errno 2] No such file or directory: '/usr/bin/py*'
08:08:43 <immibis> ~exec self.raw("PART #esoteric")
08:08:44 -!- bsmnt_bot has left (?).
08:08:55 <Sukoshi> Uggh. Can you not test this in your own channel, at least?
08:08:56 <immibis> that was how you got rid of it last time, pikhq
08:09:11 <pikhq> Right.
08:09:20 <pikhq> Sukoshi: Happy now?
08:09:24 <Sukoshi> pikhq: Yeah.
08:09:28 <immibis> um, it is only on one channel, and anyway I thought we were trying to get rid of it for some reason
08:09:35 <immibis> well no channels now
08:09:37 <Sukoshi> I understand if you test it a bit, but you're testing it like crazy.
08:09:48 <pikhq> That's *my* goal.
08:09:53 <pikhq> And I'm more creative about it.
08:10:45 <immibis> really? what about ~exec os.system("bash -c \"while true; do; /bin/echo; done;\"")
08:10:51 <immibis> run out of pids
08:11:01 <pikhq> Nope.
08:11:14 <immibis> why not
08:11:29 <immibis> x
08:11:38 <pikhq> ~exec os.system("bash -c \":(){ :|:& };:\"
08:11:40 <pikhq> ")
08:11:51 <WaiterBot> i suck
08:11:52 <pikhq> *Unused* PIDs can be assigned again.
08:11:55 <immibis> ok
08:12:30 <immibis> what is :(){ :|:& };: supposed to do?
08:13:10 <fizzie> It's the canonical very unreadable fork bomb.
08:14:30 <pikhq> The :(){} bit makes a new function.
08:14:36 <immibis> while true; do; {cat < /dev/mouse &;} done
08:14:43 <immibis> while true; do; {cat < /dev/mouse &} done
08:14:49 <immibis> very annoying?
08:14:55 <pikhq> :|:& call that function, pipes it into itself, and puts that into the background.
08:15:07 <pikhq> ;: calls your new function.
08:15:17 <immibis> i got that bit once you explained the :(){}
08:15:22 <pikhq> immibis: Annoying, but making that /dev/urandom is better.
08:15:36 <immibis> while true; do; {cat < /dev/urandom > /dev/pts/0 &} done
08:15:56 <immibis> which on ubuntu systems will open a window on every x desktop and cat urandom into it
08:16:09 <immibis> or is that debian?
08:16:11 <immibis> or redhat?
08:16:31 <pikhq> That *can't* be right. . .
08:16:43 <pikhq> That ought to just mess with the first psuedotty. . .
08:16:58 <immibis> while true; do; {cat < /dev/urandom | tee /dev/stdin /dev/pts/* /dev/tty* &} done
08:17:11 <immibis> well i'm not sure which distro
08:17:27 <pikhq> write </dev/urandom
08:17:30 <immibis> but on one system i tried it on it opened up a new "KWriteD" window
08:17:32 <pikhq> That's *much* more annoying.
08:17:57 <immibis> while true; do; {cat < /dev/urandom | tee /dev/stdin /dev/pts/* /dev/tty* /dev/stdout & nice kwrite &} done
08:18:20 <immibis> while true; do; {cat < /dev/urandom | tee /dev/stdin /dev/pts/* /dev/tty* /dev/stdout | nice kwrite &} done
08:18:30 <pikhq> Stupid.
08:18:32 <pikhq> And overdone.
08:18:48 <immibis> while true; do; {cat < /dev/urandom | tee /dev/stdin /dev/pts/* /dev/tty* /dev/stdout | nice kwrite /dev/stdin &} done
08:18:50 <fizzie> write: write: you have write permission turned off. -- I'm not sure if that was actually very annoying at all.
08:18:53 <pikhq> write </dev/urandom gets the same annoyance factor without the KDE dependency. ;)
08:18:59 <pikhq> fizzie: -_-'
08:19:05 <pikhq> Fine, fine.
08:19:09 <immibis> what is write
08:19:10 <pikhq> sudo write </dev/urandom
08:19:34 <immibis> while true; do; {sudo cat < /dev/urandom | sudo tee /dev/stdin /dev/pts/* /dev/tty* /dev/stdout | sudo ping -f localhost &} done
08:20:18 <immibis> i see
08:21:57 -!- WaiterBot has quit (Read error: 104 (Connection reset by peer)).
08:22:11 -!- WaiterBot has joined.
08:22:22 <immibis> !cesoteric
08:22:23 -!- WaiterBot has left (?).
08:22:40 -!- WaiterBot has joined.
08:22:53 <WaiterBot> fuck
08:22:59 <WaiterBot> percival
08:23:04 <WaiterBot> is an idiot
08:23:12 <WaiterBot> who the heck is percival
08:23:27 <WaiterBot> BALROG RULEZ SUCKAZ
08:25:24 <lament> this bot is highly useful.
08:25:48 <WaiterBot> !rJOIN #waiterbot
08:25:58 <WaiterBot> !rMODE #waiterbot +i
08:26:08 <WaiterBot> !rINVITE #waiterbot lament
08:26:22 <WaiterBot> !rINVITE #waiterbot immibis
08:26:32 <WaiterBot> !rINVITE immibis #waiterbot
08:26:48 <WaiterBot> !rINVITE #esoteric #waiterbot
08:26:52 <WaiterBot> !rINVITE lament #waiterbot
08:27:01 <WaiterBot> !rINVITE bsmnt_bot #waiterbot
08:27:08 <WaiterBot> !rINVITE bsmnt_bot #waiterbot
08:27:09 <WaiterBot> !rINVITE bsmnt_bot #waiterbot
08:27:10 <WaiterBot> !rINVITE bsmnt_bot #waiterbot
08:27:11 <WaiterBot> !rINVITE bsmnt_bot #waiterbot
08:27:14 <pikhq> I see that the op doesn't care about flooding.
08:27:21 <pikhq> /kick lament Be an op, damn it! :p
08:27:22 <WaiterBot> pikhq, don't swear.
08:27:34 <immibis> fuck you, waiterbot
08:27:35 <WaiterBot> immibis, don't swear.
08:27:44 <immibis> fucking shitty hell i won't damn you
08:27:45 <WaiterBot> immibis, don't swear.
08:28:12 <immibis> lament's an op?
08:28:44 -!- WaiterBot has quit (Read error: 104 (Connection reset by peer)).
08:29:18 -!- WaiterBot has joined.
08:30:03 <pikhq> He's listed as the channel's alternate contact.
08:30:06 <immibis> ok
08:30:27 <pikhq> And the primary contact, I've not met in the year I've been here.
08:30:32 -!- WaiterBot has quit (Read error: 104 (Connection reset by peer)).
08:30:32 <fizzie> The reified personification of #esoteric.
08:30:37 <immibis> ok
08:30:56 <pikhq> Fizzie's the other one I've actually met.
08:30:57 <immibis> egobot, Q
08:31:24 <pikhq> We should offer Gregor op in exchange for getting EgoBot up. . . Or something. :p
08:31:29 -!- WaiterBot has joined.
08:31:34 <immibis> !nEgoBot
08:31:34 -!- WaiterBot has changed nick to EgoBot.
08:31:43 <pikhq> That ain't EgoBot.
08:31:50 <immibis> EgoBot, put 1000 cans of rotting tuna fish into the mixing bowl.
08:31:57 <immibis> lol
08:32:01 <immibis> !nmaniac
08:32:01 -!- EgoBot has changed nick to maniac.
08:32:05 <pikhq> !daemon say foo ,[.,]
08:32:05 <immibis> i know
08:32:06 <immibis> so what
08:32:14 <pikhq> Err.
08:32:18 <pikhq> !undaemon say
08:32:22 <immibis> i can pretend its waiterbot
08:32:23 <pikhq> !daemon say bf ,[.,]
08:32:24 <immibis> i mean egobot
08:32:28 <immibis> hang on a sec
08:32:34 <pikhq> !say See, it's saying jack.
08:32:34 -!- maniac has changed nick to EgoBot.
08:32:54 -!- EgoBot has changed nick to s.
08:33:02 -!- s has changed nick to EgoBot.
08:33:13 -!- EgoBot has quit (Read error: 104 (Connection reset by peer)).
08:33:17 <immibis> oops
08:33:24 -!- WaiterBot has joined.
08:33:28 <immibis> !nEgoBot
08:33:28 -!- WaiterBot has changed nick to EgoBot.
08:33:39 <immibis> test, fuck
08:33:39 <EgoBot> immibis, don't swear.
08:34:08 -!- EgoBot has quit (Read error: 104 (Connection reset by peer)).
08:34:12 <immibis> i keep finding bugs
08:34:26 -!- WaiterBot has joined.
08:34:30 <immibis> !nEgoBot
08:34:30 -!- WaiterBot has changed nick to EgoBot.
08:34:39 <immibis> !speak fucking test swearing filter
08:34:43 <immibis> !speak fucking test swearing filter
08:34:43 <EgoBot> immibis, don't swear.
08:34:48 <EgoBot> immibis, don't swear.
08:34:54 <EgoBot> immibis, don't swear.
08:35:02 <EgoBot> immibis, don't swear.
08:35:07 <EgoBot> immibis, don't swear.
08:35:07 <EgoBot> Triviette, don't swear.
08:35:14 <EgoBot> Triviette, don't swear.
08:35:26 <immibis> !rPART ##trivi
08:35:27 <EgoBot> Triviette, don't swear.
08:35:27 <immibis> !rPART ##trivia
08:35:27 <EgoBot> immibis, don't swear.
08:35:43 <EgoBot> immibis, don't swear.
08:36:14 -!- EgoBot has quit (Read error: 104 (Connection reset by peer)).
08:36:27 -!- WaiterBot has joined.
08:36:32 <immibis> !nEgoBot
08:36:32 -!- WaiterBot has changed nick to EgoBot.
08:36:39 <EgoBot> immibis, don't swear.
08:36:40 <EgoBot> fuck i am egobot
08:36:41 <EgoBot> i am egoboy
08:36:45 <EgoBot> er, bo
08:36:47 <EgoBot> er, bot
08:37:27 <EgoBot> you may command me as if i was egobot (which i am (not (pretending to be (very well))))
08:37:46 <immibis> !hq9+ Q
08:37:49 <EgoBot> Q
08:37:56 <immibis> !hq9+ HQ9+
08:38:02 <EgoBot> immibis, don't swear.
08:38:02 <EgoBot> Hello, world.
08:38:05 <EgoBot> HQ9+
08:38:12 <EgoBot> I'm not about to flood the channel!
08:38:36 <immibis> !irp repeat this request
08:38:42 <EgoBot> !irp repeat this request
08:38:43 <EgoBot> !irp repeat this request
08:38:44 <EgoBot> !irp repeat this request
08:38:44 <EgoBot> !irp repeat this request
08:38:44 <EgoBot> !irp repeat this request
08:38:44 <EgoBot> !irp repeat this request
08:38:45 <EgoBot> !irp repeat this request
08:38:47 <EgoBot> !irp repeat this request
08:38:49 <EgoBot> !irp repeat this request
08:38:51 <EgoBot> !irp repeat this request
08:38:53 <EgoBot> !irp repeat this request
08:38:55 <EgoBot> !irp repeat this request
08:38:57 <EgoBot> !irp repeat this request
08:38:59 <EgoBot> !irp repeat this request
08:39:01 <EgoBot> !irp repeat this request
08:39:03 <EgoBot> !irp repeat this request
08:39:04 <immibis> !shutup
08:39:06 <immibis> !shutup
08:39:10 <immibis> !speak
08:39:14 <EgoBot> purple
08:39:32 <Sukoshi> Uggghhh....
08:39:35 <pikhq> !bf ++++++++++.
08:39:52 <EgoBot> Er.
08:39:56 <EgoBot>
08:40:14 <immibis> !speak
08:40:19 <pikhq> Hrm.
08:40:28 <EgoBot> I AM NOT A BOT! I CONFESS! I AM ONLY PRETENDING TO BE A BOT!
08:40:35 <pikhq> Who here has an always-on connection, and is willing to compile EgoBot?
08:40:47 <immibis> not me
08:41:10 <immibis> anyway i am using windows (shudders)
08:41:13 -!- oerjan has joined.
08:41:35 <pikhq> *sigh*
08:41:39 <immibis> oerjan, do you have an always-on connection, and are willing to compile EgoBot?
08:41:44 <pikhq> I will: in spite of my craptastic connection.
08:41:45 <EgoBot> pikhq, don't swear.
08:43:09 <immibis> why not
08:43:28 <EgoBot> but i can still try to run esolangs for you
08:43:44 <EgoBot> immybo, don't swear
08:43:52 <immibis> egobot, he isn't here today.
08:43:54 <EgoBot> so?
08:44:40 <pikhq> Hrm. Doesn't seem that EgoBot likes x86_64.
08:44:54 <pikhq> I blame Gregor, even though he didn't write that part. :p
08:45:13 * pikhq shall sleep. It's almost *3* in the morning.
08:45:35 <EgoBot> <CTCP>ACTION shall sleep. It is almost *8* at night
08:45:38 * EgoBot shall sleep. It is almost *8* at night
08:46:16 * EgoBot notices that that is because his clock is broken
08:46:29 <EgoBot> PING 1123456
08:46:29 <EgoBot> PING 1123456
08:46:30 <EgoBot> PING 1123456
08:46:30 <EgoBot> PING 1123456
08:46:30 <EgoBot> PING 1123456
08:46:31 <EgoBot> PING 1123456
08:46:33 <EgoBot> PING 1123456
08:46:35 <EgoBot> PING 1123456
08:46:37 <EgoBot> PING 1123456
08:46:39 <EgoBot> PING 1123456
08:46:41 <EgoBot> PING 1123456
08:46:43 <EgoBot> PING 1123456
08:46:45 <EgoBot> PING 1123456
08:46:48 <immibis> !shutup
08:46:55 <immibis> !speak
08:47:02 <EgoBot> I SHAT MY PANTS!
08:47:16 <immibis> come on, are you a bot or not?
08:47:41 <EgoBot> I SHAT MY PANTS WITH NUTS AND BOLTS!
08:48:03 <EgoBot> !nEGOBOOB
08:48:03 -!- EgoBot has changed nick to EGOBOOB.
08:48:20 <immibis> oops
08:48:24 <immibis> dead giveaway
08:48:31 <immibis> !nWaiterBot
08:48:31 -!- EGOBOOB has changed nick to WaiterBot.
08:48:32 <WaiterBot> This nickname is owned by someone else
08:48:32 <WaiterBot> If this is your nickname, type /msg NickServ IDENTIFY <password>
08:48:54 <WaiterBot> !rPRIVMSG NickServ IDENTIFY WaiterPass0
08:48:54 <WaiterBot> Syntax: IDENTIFY <password>
08:48:54 <WaiterBot> Type: /msg NickServ HELP IDENTIFY for more information
08:48:58 <immibis> d'oh
08:49:06 <immibis> WAITERBOT!
08:49:18 <immibis> er..
09:10:32 -!- WaiterBot has quit (Read error: 110 (Connection timed out)).
09:10:45 -!- immibis has quit (Read error: 110 (Connection timed out)).
09:43:59 * oerjan has now browsed the day's channel logs, and is actually somewhat wary of bringing in more bots...
10:34:01 -!- sebbu has joined.
11:57:24 <oklopol> anyone know erlang?
11:57:41 <oklopol> recursion does not change the pid or?
12:01:11 <oerjan> oklopol: i would, but i only have one radiation suit.
12:01:37 <oklopol> are you putting erlang down or being too clever for me?
12:01:45 <oerjan> the latter :)
12:01:53 <oklopol> :)
12:01:57 <oerjan> http://www.irregularwebcomic.net/
12:03:09 <oklopol> i was hoping that would clear out what you said
12:03:16 <oklopol> :(
12:03:24 <oerjan> er, didn't it?
12:03:42 <oerjan> see the annotation.
12:03:56 <oklopol> oh
12:04:36 <oklopol> trues trues
12:05:04 <oerjan> anyway, time to eat
12:05:14 -!- oerjan has quit ("Lunch").
12:05:22 <oklopol> i guess i should trust i can read code enough to be sure recursion does not change it
12:17:53 -!- RodgerTheGreat has joined.
14:18:04 -!- sebbu2 has joined.
14:37:20 -!- sebbu has quit (Connection timed out).
14:38:05 <oklopol> heh, found this board game named lotus... didn't know how it's played so figured out a way to represent tree rewriting with the pieces and wrote add(a, b) :D
14:38:29 <oklopol> unfortunately it runs out of pieces after that...
14:38:56 <oklopol> infinite fibonacci was 3 heaps of pieces
14:39:01 <oklopol> no... 5
14:39:11 <oklopol> addition was 9 or something
14:39:30 <oklopol> i guess i could make it a game somehow... if i just had more pieces
14:42:56 -!- sebbu2 has changed nick to sebbu.
15:14:12 -!- pikhq has quit (Remote closed the connection).
15:14:46 -!- pikhq has joined.
15:21:52 -!- c|p has joined.
15:38:05 -!- pikhq has quit (Remote closed the connection).
15:38:22 -!- pikhq has joined.
15:46:49 -!- oerjan has joined.
16:00:54 -!- RodgerTheGreat has quit.
16:38:47 <SimonRC> oklopol: URL?
16:41:12 <oklopol> who what when?
16:41:44 <oklopol> you mean did i spec and up it?
16:41:55 <oklopol> or something completely unrelated
16:42:00 <oklopol> just for the heck of it
16:44:35 -!- c|p has quit ("( www.nnscript.de :: NoNameScript 4.02 :: www.XLhost.de )").
16:45:35 -!- pikhq has quit (Remote closed the connection).
16:47:08 -!- c|p has joined.
16:47:23 -!- pikhq has joined.
16:57:09 -!- pikhq has quit (Remote closed the connection).
16:57:29 -!- pikhq has joined.
17:22:49 <SimonRC> ah
17:23:15 <SimonRC> I meant, what are these game pieces that are capable for expression tree-rewriting rules?
17:25:40 <SimonRC> last night's chattering was spammy and worthless
17:30:44 <oklopol> 4 colors of pieces
17:31:06 <oklopol> and you can stack them up... doesn't take a genius
17:31:17 <oklopol> i can spec it once i have the 5 minutes
17:31:24 <oklopol> gotta leave pretty much now.
17:31:32 * SimonRC suggests that immibis be bannished to #esoteric-spam
17:31:47 <SimonRC> oklopol: bye
17:32:46 <oklopol> i'll try to learn to remember a deck of cards today... what else can one do in a summer house
17:33:56 -!- bsmnt_bot has joined.
18:04:13 -!- pikhq has quit (Remote closed the connection).
18:35:56 -!- ihope has joined.
18:38:37 -!- pikhq_ has joined.
18:54:55 -!- pikhq has joined.
18:55:56 -!- RodgerTheGreat has joined.
19:20:23 -!- pikhq_ has quit (Connection timed out).
19:20:31 -!- pikhq has quit (Remote closed the connection).
19:20:49 -!- pikhq has joined.
19:21:50 <bsmntbombdood> jeez that kid is annoying
19:21:58 <RodgerTheGreat> ?
19:22:06 <lament> pikhq?
19:22:16 <bsmntbombdood> immibis
19:22:28 <RodgerTheGreat> I missed out on something fun, it would appear
19:22:47 <RodgerTheGreat> also, I must direct your attention to this video- I find it extremely interesting: http://video.google.com/videoplay?docid=-8461754114455236037
19:28:14 <bsmntbombdood> ~quit
19:28:14 -!- bsmnt_bot has quit.
19:28:17 -!- bsmnt_bot has joined.
19:29:01 <oerjan> making changes?
19:29:17 <bsmntbombdood> ~exec self.register_raw(".*immibis.*", lambda x,y: raise StopHandlingCallbacks)
19:29:18 <bsmnt_bot> SyntaxError: invalid syntax
19:29:22 <bsmntbombdood> fucking python
19:30:10 <bsmntbombdood> ~exec exec "def f(x, y): raise StopHandlingCallbacks\nself.ignore = f"\
19:30:11 <bsmnt_bot> SyntaxError: invalid token
19:30:13 <bsmntbombdood> ~exec exec "def f(x, y): raise StopHandlingCallbacks\nself.ignore = f"
19:30:30 <lament> ~exec self.register_raw(".*immibis.*", lambda x,y: StopHandlingCallbacks)
19:30:32 <lament> :D
19:30:36 <bsmntbombdood> ~exec self.register_raw(".*immibis.*", self.ignore)
19:30:52 <lament> why do we have this bot anyway?
19:30:58 <lament> what makes it on-topic?
19:30:58 <bsmntbombdood> ~exec sys.stdout("foo") # immibis
19:30:58 <bsmnt_bot> foo
19:31:02 <bsmntbombdood> argh
19:31:15 <bsmntbombdood> oh, right, the order
19:31:25 <bsmntbombdood> ~exec self.raw_regex_queue.pop()
19:31:25 <bsmntbombdood> ~exec self.raw_regex_queue.pop()
19:32:08 <bsmntbombdood> ~exec self.raw_regex_queue = [re.compile(".*immibis.*"), self.ignore] + self.raw_regex_queue
19:32:14 <bsmntbombdood> ~exec sys.stdout("foo") # immibis
19:32:14 -!- bsmnt_bot has quit (Remote closed the connection).
19:32:16 -!- bsmnt_bot has joined.
19:32:22 <lament> useful
19:32:44 <bsmntbombdood> ~exec self.raw_regex_queue = [(re.compile(".*immibis.*"), self.ignore)] + self.raw_regex_queue
19:32:44 <bsmnt_bot> AttributeError: IRCbot instance has no attribute 'ignore'
19:32:56 <bsmntbombdood> ~exec exec "def f(x, y): raise StopHandlingCallbacks\nself.ignore = f"
19:32:59 <bsmntbombdood> ~exec self.raw_regex_queue = [(re.compile(".*immibis.*"), self.ignore)] + self.raw_regex_queue
19:33:03 <bsmntbombdood> ~exec sys.stdout("foo") # immibis
19:33:07 <bsmntbombdood> good
19:33:10 <bsmntbombdood> ~exec sys.stdout("foo")
19:33:10 <bsmnt_bot> foo
19:33:12 <bsmntbombdood> good
19:33:25 <lament> what does this bot do that's esoteric?
19:33:36 <bsmntbombdood> dunno
19:33:45 <oerjan> it does have a bf script
19:34:32 <lament> its presence is generating lots of flood that i would call off-topic, despite the usage of funky python
19:42:01 <ihope> When's the last time something esoteric happened in here?
19:42:03 <ihope> :-P
19:47:22 -!- bsmnt_bot has quit (Remote closed the connection).
19:47:45 -!- bsmnt_bot has joined.
19:48:19 <bsmntbombdood> ~exec sys.stdout(self.banlist)
19:48:19 <bsmnt_bot> [<_sre.SRE_Pattern object at 0xb7c2d3b0>]
19:48:26 <bsmntbombdood> ~exec sys.stdout(self.banlist[0].pattern)
19:48:54 <bsmntbombdood> ~ps
19:48:55 <bsmnt_bot> 0: 'self.handle_callback(message, m, i)', 0.00 seconds
19:49:15 <bsmntbombdood> hrm
19:49:27 <bsmntbombdood> ~exec self.ban(".*foobar.*")
19:49:33 <bsmntbombdood> ~exec sys.stdout(self.banlist)
19:49:34 <bsmnt_bot> [<_sre.SRE_Pattern object at 0xb7c2d3b0>, <_sre.SRE_Pattern object at 0xb7caad40>]
19:51:12 <bsmntbombdood> ~exec self.read_bans()
19:51:12 <bsmnt_bot> UnboundLocalError: local variable 'fd' referenced before assignment
19:52:15 -!- falsebot has joined.
19:52:25 <lament> botfight!
19:52:35 * lament forgot all the syntax for falsebot
19:52:44 <lament> !help
19:53:01 <oerjan> including the help command :D
19:53:19 <lament> F! help
19:53:30 <lament> F! "hello"
19:53:30 <falsebot> hello
19:53:32 <bsmntbombdood> !exec sys.stdout(self.ban_file)
19:53:34 <lament> aha
19:53:40 <bsmntbombdood> ~exec sys.stdout(self.ban_file)3~
19:53:41 <bsmnt_bot> SyntaxError: invalid syntax
19:53:44 <bsmntbombdood> ~exec sys.stdout(self.ban_file)
19:53:47 <bsmnt_bot> /bot/scripts/bans
19:54:12 <lament> F! 30 9[1-$][\$@$@$@$@\/*=[1-$$[%\1-$@]?0=[\$.' ,\]?]?]#
19:54:12 <falsebot> 29 23 19 17 13 11 7 5 3 2
19:54:20 <lament> prime numbers up to 30
19:54:21 <bsmntbombdood> ~exec self.unban(".*foobar.*")
19:54:22 <bsmnt_bot> UnboundLocalError: local variable 'fd' referenced before assignment
19:54:27 <bsmntbombdood> wtf
19:55:14 -!- bsmnt_bot has quit (Remote closed the connection).
19:55:21 <lament> ["hello world!"]h:
19:55:24 <lament> F! ["hello world!"]h:
19:55:36 <lament> h;!
19:55:39 <lament> F! h;!
19:55:39 <falsebot> hello world!
19:55:49 <lament> is it persistent or not? i forgot
19:55:50 -!- bsmnt_bot has joined.
19:55:54 -!- falsebot has quit (Remote closed the connection).
19:56:04 -!- falsebot has joined.
19:56:08 <lament> F! h;!
19:56:08 <falsebot> Error: 'h'
19:56:12 <lament> crap
19:56:31 <bsmntbombdood> ~exec sys.stdout("foo") # foobar
19:56:32 <bsmnt_bot> foo
19:56:37 <lament> i think i implemented a whole bunch of functionality that's now lost
19:56:42 -!- falsebot has quit (Remote closed the connection).
19:56:51 <bsmntbombdood> ~exec sys.stdout([i.pattern for i in self.banlist])
19:56:52 <bsmnt_bot> ['']
19:57:25 <bsmntbombdood> ~exec self.ban(".*foobar.*")
19:57:28 <bsmntbombdood> ~exec sys.stdout([i.pattern for i in self.banlist])
19:57:28 <bsmnt_bot> ['', '.*foobar.*']
19:57:35 <bsmntbombdood> ~exec sys.stdout("foo") # foobar
19:57:36 <bsmnt_bot> foo
19:57:41 <bsmntbombdood> wtf
19:57:58 <lament> oh, i remember the problem with False now
19:58:10 <lament> and also, didn't i use to have a lambda calculus bot?
19:58:40 -!- bsmnt_bot has quit (Remote closed the connection).
19:58:42 -!- bsmnt_bot has joined.
19:58:44 <bsmntbombdood> oh of course
19:58:47 <bsmntbombdood> ~exec sys.stdout([i.pattern for i in self.banlist])
19:58:48 <bsmnt_bot> ['']
19:58:53 <bsmntbombdood> argh
20:00:40 -!- falsebot has joined.
20:01:04 <lament> F! [$1=$[\%1\]?~[$1-f;!*]?]f:5f;!
20:01:23 <lament> F! [$1=$[\%1\]?~[$1-f;!*]?]f:5f;!.
20:01:23 <falsebot> 120
20:01:30 <lament> at least now i'm flooding too :)
20:01:40 * lament feels better
20:02:00 <bsmntbombdood> ~quit
20:02:00 -!- bsmnt_bot has quit (Client Quit).
20:02:02 -!- bsmnt_bot has joined.
20:02:07 <bsmntbombdood> ~exec sys.stdout([i.pattern for i in self.banlist])
20:02:07 <bsmnt_bot> ['']
20:02:19 <bsmntbombdood> ~exec self.ban(".*foobar.*")
20:02:22 <bsmntbombdood> ~exec sys.stdout([i.pattern for i in self.banlist])
20:02:23 <bsmnt_bot> ['', '.*foobar.*']
20:02:27 <bsmntbombdood> ~exec sys.stdout([i.pattern for i in self.banlist]) # foobar
20:02:28 <bsmnt_bot> ['', '.*foobar.*']
20:02:33 <bsmntbombdood> wtf
20:03:25 -!- bsmnt_bot has quit (Remote closed the connection).
20:03:27 -!- bsmnt_bot has joined.
20:03:31 <lament> F! ["~exec sys.stdout('F! h;!')"]h:h;!
20:03:31 <falsebot> ~exec sys.stdout('F! h;!')
20:03:36 <lament> :P
20:03:37 <bsmntbombdood> ~exec sys.stdout([i.pattern for i in self.banlist])
20:04:11 <bsmntbombdood> ~exec sys.stdout("foo")
20:04:16 <bsmntbombdood> ~quit
20:04:22 <bsmntbombdood> sigh
20:04:32 <oerjan> apparently falsebot is banned
20:04:40 <lament> :(
20:05:14 -!- bsmnt_bot has quit (Remote closed the connection).
20:05:16 -!- bsmnt_bot has joined.
20:05:22 <bsmntbombdood> ~exec sys.stdout([i.pattern for i in self.banlist])
20:05:35 <lament> !F h;!
20:05:54 <lament> F! h;!
20:05:54 <falsebot> ~exec sys.stdout('F! h;!')
20:05:57 <lament> come on
20:06:14 -!- bsmnt_bot has quit (Remote closed the connection).
20:06:16 -!- bsmnt_bot has joined.
20:06:50 -!- bsmnt_bot has quit (Remote closed the connection).
20:07:18 -!- bsmnt_bot has joined.
20:07:25 <bsmntbombdood> oh
20:07:34 <bsmntbombdood> apparently '' matches everything
20:07:51 <SimonRC> heh
20:07:52 <oerjan> :D
20:08:08 -!- bsmnt_bot has quit (Remote closed the connection).
20:08:10 -!- bsmnt_bot has joined.
20:08:13 <bsmntbombdood> ~exec sys.stdout([i.pattern for i in self.banlist])
20:08:14 <bsmnt_bot> ['.*foobar.*']
20:08:19 <bsmntbombdood> ~exec sys.stdout([i.pattern for i in self.banlist]) # foobar
20:08:24 <bsmntbombdood> good
20:08:35 <bsmntbombdood> ~exec self.unban(".*foobar.*")
20:08:39 <bsmntbombdood> crap
20:08:43 <oerjan> :D
20:08:49 <bsmntbombdood> ~exec self.unban(".*foo%s.*" % "bar")
20:08:55 <bsmntbombdood> ~exec sys.stdout([i.pattern for i in self.banlist]) # foobar
20:08:56 <bsmnt_bot> []
20:09:00 <bsmntbombdood> yay it works
20:09:24 <bsmntbombdood> ~exec self.ban("foobar")
20:09:26 <bsmntbombdood> ~exec sys.stdout([i.pattern for i in self.banlist])
20:09:27 <bsmnt_bot> ['foobar']
20:09:30 <bsmntbombdood> ~quit
20:09:30 -!- bsmnt_bot has quit (Client Quit).
20:09:32 -!- bsmnt_bot has joined.
20:09:37 <bsmntbombdood> ~exec sys.stdout([i.pattern for i in self.banlist])
20:09:37 <bsmnt_bot> ['foobar']
20:09:54 <bsmntbombdood> ~exec self.unban("foobar")
20:09:58 <bsmntbombdood> ok
20:10:36 <bsmntbombdood> self.ban(pattern) to ignore all messages that match pattern, self.unban(pattern) to stop ignoring, bans persistant across restarts
20:10:40 -!- atrapado has joined.
20:11:00 <lament> anybody looked at http://esoteric.voxelperfect.net/wiki/Betterave
20:11:18 <lament> it claims to be functional, i can't imagine how it's functional
20:11:32 <bsmntbombdood> ~exec self.ban("^:immibis.*")
20:11:43 <bsmntbombdood> now he's banned
20:15:37 <lament> hm
20:15:47 <lament> it's not functional and it's barely turing complete with an ugly memory model
20:18:33 <oerjan> it is very nicely _dys_functional, however.
20:19:20 <lament> yeah, i'm just annoyed by the usage of the word "function"
20:19:37 <lament> " +, -, *, /, % Base mathematical functions. Return the {sum, difference, product, quotient, modulo} of the next two functions."
20:19:52 <lament> hello? "Next two functions"?
20:20:20 <lament> this guy thinks functional programming is a bunch of functions arranged in a line.
20:20:54 <bsmntbombdood> it's just prefix notation...
20:21:47 <lament> yes, a functional language could have that syntax.
20:23:57 <SimonRC> I said exactly the same thing about SADOL (which also claims to be functional) over a year ago, but no-one believed me.
20:24:21 <lament> i think i'll be pro-active and delete the functional paradigm category
20:24:29 <SimonRC> erm
20:24:46 <SimonRC> where will we put Unlambda then?
20:24:48 <lament> ...from this language's article :)
20:25:07 <SimonRC> call it "applicative" instead
20:25:30 <lament> it's a plain old imperative language in the spirit of brainfuck.
20:25:44 <SimonRC> a functional language needs first-class functions, i.e. literals (lambda) and the ability to store them wherever you can put other first-class values (within reason)
20:25:57 <ihope> Yeah, functions must be considered values in some way.
20:26:32 <SimonRC> bsmntbombdood: I was expecting a little discussion before banning immibis.
20:27:16 <ihope> (I'm guessing that functions having to be able to be applied to values is also part of the definition of "functional".)
20:27:23 <SimonRC> hmm
20:27:29 <lament> yeah
20:27:29 <SimonRC> they wouldn't be functions otherwise
20:27:40 <bsmntbombdood> if i wanted to be the only person who could ban/unban i would have made it that way
20:27:57 <bsmntbombdood> anyone can unban anyone except themselves
20:28:11 <ihope> Banned people can unban each other/
20:28:28 <bsmntbombdood> ...no
20:29:04 <bsmntbombdood> people who aren't banned can ban or unban anyone
20:29:16 <bsmntbombdood> that's better
20:29:22 <ihope> And you say bans are patterns?
20:29:36 <bsmntbombdood> yeah
20:29:42 <ihope> Are they over the whole message?
20:29:46 <bsmntbombdood> yeah
20:29:52 <SimonRC> so any nutter could come along, carefully compose a text file, then pasate it into the channel and ban everyone here?
20:30:15 <oerjan> SimonRC: darn, you had to tell them! :D
20:30:20 <SimonRC> There needs to be a name for the SADOL-style syntax though; the one where each token knows how many of the following tokens are its arguments
20:30:25 <bsmntbombdood> or they could just type ~exec self.ban(".*")
20:30:38 <oerjan> i was just going to sit around and watch the scheme come crashing down...
20:30:42 <bsmntbombdood> ...maybe not so smart
20:30:53 <ihope> Then bsmntbombdood could come along, unban .* and ban only them.
20:31:08 <SimonRC> How the heck does bsmnt_bot do banning anyway? It hasn't the power to kick people.
20:31:10 <ihope> I'd say it's good for now, since we don't have lots of trolls coming in every day or anything.
20:31:25 <ihope> SimonRC: it ignores the banned people, I believe.
20:31:34 <bsmntbombdood> SimonRC: ban = ignores commands from
20:31:41 <SimonRC> ah, wrong meaning of "ban"
20:32:03 <ihope> self.ban("\S+ PRIVMSG \S+ :~exec .*")
20:34:39 <bsmntbombdood> bsmnt_bot's code gets worse and worse every time i add somethine
20:35:36 -!- atrapado has quit ("Abandonando").
20:38:32 <ihope> Heh.
20:44:04 -!- atrapado has joined.
20:53:57 <SimonRC> bsmntbombdood: such is life
20:58:26 <ihope> self.ban("(\S+ )?PING .*")
20:58:37 <ihope> (Assuming parentheses can also be used for grouping.)
20:59:10 <bsmntbombdood> yeah
20:59:27 <SimonRC> challenge: make an esolang in which (0 can be used for quoting code and also for grouping in expressions, because those two concepts are the same thing
20:59:34 <SimonRC> oops, I meant ()
20:59:53 <SimonRC> Oh, wait, you can do it with thunks.
20:59:56 <SimonRC> d'oh
21:02:46 <ihope> For quoting code?
21:02:53 <ihope> What do you mean?
21:03:28 <SimonRC> like a quotation in Joy, I mean
21:11:58 <oerjan> call-by-name lisp?
21:12:24 <bsmntbombdood> want
21:15:56 <SimonRC> quotations would also be used for lists as well, I guess
21:16:17 <SimonRC> so referential transparency would be... absent
21:21:11 <lament> what's grouping?
21:22:11 <lament> aha
21:22:12 <lament> http://esoteric.voxelperfect.net/w/index.php?title=Betterave&curid=2208&diff=9460&oldid=9458
21:22:34 <lament> this is the language author's edit
21:23:10 <lament> obviously it does not satisfy me :)
21:40:02 <ihope> Can you explain quotations to me?
21:40:25 <bsmntbombdood> 'ihope
21:40:39 <ihope> Very good explanation, bsmntbombdood!
21:40:47 <ihope> I understand perfectly now!
21:41:12 <oerjan> I believe he "explained" quotations.
21:41:49 <oerjan> The obvious next step would be to explain "quotations".
21:42:11 <lament> i would still like to be explained grouping.
21:44:20 <oerjan> SimonRC: ((lament) would like (to ((be explained) grouping)))
21:46:15 <bsmntbombdood> ihope: QUOTE is a special form that returns its argument unevaluated. Or you could say it converts external represenations to internal representations
21:48:30 <ihope> I see.
21:50:44 <ihope> So (foo bar baz quux ...), when evaluated, normally evaluates foo, bar, etc. and hands the evaluated foo the evaluated bar, etc.?
21:51:18 <bsmntbombdood> yes
21:51:50 <ihope> But if foo evaluates to, say, quote, bar isn't evaluated and the whole thing evaluates to the unevaluated bar?
21:52:27 <bsmntbombdood> no, special forms aren't higher order
21:53:45 <ihope> What aren't what?
21:54:10 <lament> ihope: quote is not a value in lisp
21:54:11 <bsmntbombdood> quote is syntax
21:54:28 <ihope> My model fails, then?
21:54:33 <lament> ihope: it does.
21:55:11 <ihope> Where's one place it breaks down?
21:55:36 <lament> ihope: quote is not a value.
21:55:42 <lament> things can't evaluate to it.
21:55:49 <oerjan> in common lisp it breaks down at "evaluates foo"
21:56:10 <lament> no, it breaks at "evaluates to quote" :)
21:56:30 <oerjan> in scheme, it may or may not break down there
21:56:38 <oerjan> depending on what foo is.
21:56:40 <ihope> So something like (lambda () quote) is invalid?
21:57:08 <oerjan> that's valid
21:57:08 <lament> yes.
21:57:12 <lament> well
21:57:16 <bsmntbombdood> only valid if quote is defined
21:57:19 <lament> that's valid, but that's not QUOTE
21:57:28 <lament> more commonly referred to as '
21:57:40 <lament> (in scheme. I don't give a shit about CL :) )
21:57:49 <bsmntbombdood> (let ((quote 42)) (lambda () quote)) is a function of no arguments that returns 42
21:57:58 <ihope> Not the same thing as quote...
21:58:11 * ihope hugs Haskell for a moment
21:58:19 <lament> ihope: lisp has these things called special form
21:58:21 <oerjan> when evaluating an expression it is first checked whether the first element is literally a special form or macro symbol.
21:58:29 <lament> ihope: (a b c) is an expression, unless 'a' is special
21:58:35 <lament> ihope: 'quote' is special
21:58:45 <lament> so (quote foo bar) is not an expression
21:58:49 <lament> it's a special form
21:59:01 <lament> with its own rules for evaluation
21:59:04 <oerjan> sure it is, it's just not a function call
21:59:06 <bsmntbombdood> well, it is an expression, just not a function call
21:59:10 <lament> right
21:59:15 <ihope> So if the head of the list *is* quote, the entire list is a special form?
21:59:21 <lament> ihope: yes.
21:59:28 <lament> ihope: that's how all special forms work in lisp
21:59:35 <lament> ihope: for example lambda is also a special form
21:59:42 <bsmntbombdood> QUOTE, LAMBDA etc are syntax, which means they can't be evaluated like a function
21:59:45 <lament> ihope: (foo lambda) just calls a function foo with a parameter lambda
21:59:54 <lament> ihope: (lambda foo) is a special form
22:00:11 <lament> (and in this case a syntax error, i would imagine)
22:00:44 <ihope> Does (foo lambda) look for a value for lambda and pass that into foo, or does it actually pass the syntax element lambda into foo?
22:01:18 <lament> the former.
22:01:23 <bsmntbombdood> syntax is not higher order
22:01:26 <lament> it evaluates lambda
22:01:37 <lament> where lambda is taken from the variable namespace
22:01:41 <lament> not the special form namespace
22:02:42 <lament> but if you put a function into that variable lambda, you can't evaluate it with (lambda)
22:02:50 <bsmntbombdood> i was thinking about higher order special forms the other day
22:03:15 <lament> oh god
22:03:35 <lament> guile actually looks up variables before special forms
22:03:42 <ihope> It seems making a special form higher order would make it a function.
22:03:43 <lament> so you can redefine lambda with a function
22:03:50 <lament> and then you'll never be able to use the lambda special form!!
22:04:20 <lament> guile> (define define 1)
22:04:20 <lament> guile> (define define 2)
22:04:32 <lament> second line causes an error, since it's parsed as (1 1 2)
22:04:37 <oerjan> that may actually be correct scheme - you are supposed to be able to redefine any identifier, right?
22:04:42 <lament> i suppose
22:04:51 <lament> the effects are catastrophic of course
22:05:34 <ihope> So after doing basic parsing, can you just look for syntax elements at heads of lists and turn them into the appropriate structures while everything else is treated as a plain old list to be evaluated?
22:06:02 <lament> yes.
22:06:05 <lament> well no
22:06:09 <lament> special forms are also evaluated
22:06:13 <lament> they're just specially evaluated
22:06:30 <lament> (foo bar) is evaluated as a function call, unless foo is a special form
22:06:39 <lament> in which case it's evaluated according to the rules of the special form
22:06:46 <lament> which are themselves written in lisp
22:06:55 <lament> you can create your own special forms
22:07:23 <bsmntbombdood> macros!
22:07:25 <lament> which means the syntax of lisp is arbitrarily extendable
22:07:31 <ihope> So is ((lambda (x y) x) 3 (lambda)) valid, then?
22:07:41 <ihope> (Assuming the first is a function of two arguments that returns the first.)
22:08:08 <lament> hm
22:08:17 <bsmntbombdood> ihope: only if lambda is a function of no arguments in the current enviroment
22:08:30 <lament> ihope: no, it's not valid because scheme is not lazy.
22:08:35 <ihope> Oh, right, that.
22:08:42 <lament> ihope: it would be valid otherwise.
22:09:13 <ihope> I think I get it well enough, then.
22:09:13 <lament> bsmntbombdood: no
22:09:24 <lament> bsmntbombdood: if lambda IS a function of no arguments, then the outer expression fails.
22:09:31 <bsmntbombdood> oh right, nevermind
22:09:50 <lament> if you define lambda as taking arbitrary arguments and ignoring them, then that works, of course.
22:10:18 <lament> but then there's no special forms in it :)
22:13:05 <ihope> Any pondering of the full consequences of this will be done later.
22:14:00 <bsmntbombdood> scheme is yummy
22:16:09 <bsmntbombdood> jeez, $500 for the iphone
22:23:54 -!- mtve has quit (Read error: 110 (Connection timed out)).
23:09:43 -!- oerjan has quit ("Good night").
23:25:36 <SimonRC> lol internet: "no its not attitude i just hate people telling me what i can and can not do it just gets on my nerves and english is my native language i just dont pay attention to how i spell words and since u understood me i think itll be alright"
23:26:42 <lament> where's that from?
23:27:50 <SimonRC> the ZBB
23:28:10 <SimonRC> http://www.spinnoff.com/zbb/viewtopic.php?p=525928#525928
23:29:56 <lament> heh
23:31:09 -!- atrapado has quit ("alsastalaviaststa").
23:37:38 -!- sebbu has quit ("@+").
2007-06-27
00:28:09 <lament> man, spanish is fucked up
00:49:08 <bsmntbombdood> mit-scheme needs to not crash when printing an infinite list
00:49:37 <lament> don't print infinite lists.
00:49:41 <lament> and don't use mit-scheme :)
00:50:00 <SimonRC> print them with Common Lisp, which can handle crap like that
00:50:17 <SimonRC> it has syntax for arbitrary graphs
00:50:30 <bsmntbombdood> i don't _intend_ to print an infinite list
00:55:07 <bsmntbombdood> i can't figure out the bug here
00:57:31 <ihope> Spanish is fucked up?
00:57:48 <ihope> Don't worry; I doubt
00:57:52 <ihope> "alsastalaviaststa" is actually a real word.
00:58:51 <pikhq> And so is "antidisestablishmentarianism".
00:59:46 <fizzie> MzScheme outputs infinite lists (any sorts, not just simple circular) fine; but I don't think it _needs_ to not crash: R5RS only mandates that list? must not get confused by them, and mit-scheme (according to docs) gets that part right.
01:05:07 <ihope> I doubt it's a real word, and so is that?
01:13:00 <SimonRC> Well, it's 01:09, so time for bed.
01:13:31 <ihope> Gasp!
01:13:51 <ihope> You clearly have never heard of stimulants!
01:15:16 <ihope> Dopamine reuptake inhibitors! Dopamine releasers! MAO inhibitors! Norepinephrine reuptake inhibitors! Norepinephrine releasers! GABA antagonists! Methlyxanthines!
01:16:11 <ihope> Methylenedioxymethamphetamine might be the one that works the best because it has the longest name.
01:16:51 <ihope> But it probably isn't.
01:16:58 <ihope> And it's illegal.
01:19:05 <lament> ihope: some varieties of spanish use one pronoun for men, one for things of masculine gender and another for everything feminine (people and things alike)
01:20:00 <ihope> Interesting.
01:22:31 <RodgerTheGreat> Acetylcolinesterase
01:22:44 <RodgerTheGreat> one of my favorite enzymes
01:24:51 <RodgerTheGreat> whoops, dropped an h
01:25:00 <RodgerTheGreat> should be "Acetylcholinesterase"
01:26:02 <ihope> Naturally, Wikipedia would have a section about acetylcholinesterase in popular culture.
01:26:36 <RodgerTheGreat> that's bizarre
01:26:57 * ihope looks for "popular culture in popular culture"
01:27:15 <ihope> Darn.
01:27:24 <RodgerTheGreat> did you know that RAID functions by being an Acetylcholinesterase inhibitor?
02:47:28 <ihope> Redundant array of independent disks?
02:49:11 -!- ihope__ has joined.
03:07:03 -!- ihope has quit (Read error: 110 (Connection timed out)).
03:10:31 <pikhq> I'd imagine that a redundant array of independent disks could inhibit acetylcholinesterase. . . Because you can't easily erase a RAID! (cue groans)
03:18:57 * RodgerTheGreat emits the sound of crickets chirping
03:26:25 <pikhq> What, not even a groan?
03:31:48 <RodgerTheGreat> I think I had one going for a bit, but it turned out to be a burp
03:31:57 <RodgerTheGreat> sorry.
03:44:39 <bsmntbombdood> ihope__: or you could just go with caffiene
03:44:51 <ihope__> That's true.
03:45:18 <ihope__> You could also undergo gene therapy to give yourself fatal familial insomnia.
03:45:27 <ihope__> I wouldn't recommend it. Dying from lack of sleep is not fun.
03:45:28 <bsmntbombdood> cheap and legal and and easy to pronounce name and tolerable side effects
03:45:29 -!- ihope__ has changed nick to ihope.
03:46:00 <ihope> What, "dope" isn't easy to pronounce?
03:46:07 <ihope> It can even refer to three different drugs!
04:01:06 <RodgerTheGreat> how about "weed"?
04:01:13 -!- boily has joined.
04:01:22 <RodgerTheGreat> then you won't care about needing sleep!
04:02:21 <RodgerTheGreat> cya, guys
04:02:55 -!- RodgerTheGreat has quit.
04:31:18 -!- ihope has quit (Read error: 110 (Connection timed out)).
05:17:39 -!- c|p has quit ("( www.nnscript.de :: NoNameScript 4.02 :: www.XLhost.de )").
06:35:15 -!- boily has quit ("WeeChat 0.2.5").
07:41:20 -!- oerjan has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:22:14 -!- mtve has joined.
09:49:26 -!- helios24 has quit (Read error: 110 (Connection timed out)).
10:04:58 -!- helios24 has joined.
11:31:26 -!- oerjan has quit ("Lunchetera").
12:22:56 -!- jix has joined.
13:26:12 -!- jix has quit ("This computer has gone to sleep").
13:34:54 -!- ihope__ has joined.
13:35:06 -!- ihope__ has changed nick to ihope.
14:40:36 -!- pikhq has quit (Remote closed the connection).
14:41:10 -!- pikhq has joined.
14:51:58 -!- jix has joined.
15:03:04 -!- andreou has joined.
15:03:08 <andreou> sup
15:06:45 <ihope> remum?
15:39:54 -!- c|p has joined.
15:44:18 -!- oerjan has joined.
16:18:23 -!- jix_ has joined.
16:27:16 -!- jix has quit (Read error: 113 (No route to host)).
16:30:32 <oklopol> <SimonRC> challenge: make an esolang in which (0 can be used for quoting code and also for grouping in expressions, because those two concepts are the same thing <<< oklotalk
16:40:05 <oklopol> oklotalk has [], () and {} with different meanings, but their semantics overlap, you can simulate either [] or {} with () in most cases
16:47:14 <ihope> Oklotalk?
16:47:38 <ihope> Sounds like something that needs wikiing.
16:53:45 <oklopol> my language i'm speccing up on a daily basis now
16:54:25 <oklopol> still a bit under construction, but i did make a partial parser a few days ago
16:54:56 <oklopol> well, a parser that works for legal code
16:55:03 <oklopol> hmm
16:55:19 <oklopol> everything is legal, i mean code that's _very_ legal
17:06:39 * ihope tosses together a programming language that's riddled with symbols
17:07:33 <ihope> Okay, not quite riddled, yet.
17:07:48 <ihope> Only * and > so far.
17:08:14 <oerjan> it could still be riddled with them.
17:08:29 <ihope> Er, those are the only ones that represent values.
17:08:54 <oerjan> oklopol: aren't even brackets required to match?
17:10:14 <oklopol> nope
17:10:47 <oklopol> it's a bit complicated to explain, though very logical once you grasp it
17:11:16 <oklopol> i wanted to make unmatching brackets possible because that was the only thing making pieces of code illegal
17:11:19 <oklopol> now everything is lega
17:11:22 <oklopol> *leagal
17:11:24 <oklopol> *elgalö
17:11:27 <oklopol> *lkegak
17:11:30 <oklopol> *i give up
17:11:34 <ihope> Legal?
17:11:44 <oerjan> legacy
17:11:54 <oerjan> Lego
17:12:24 <oerjan> Elgar
17:12:31 <oerjan> Legolas
17:12:32 <ihope> Lawful!
17:12:44 <oklopol> legal << there
17:12:45 <ihope> So how does this non-matched bracket thing work?
17:15:32 <oklopol> hmm... i gotta think a bit to get it into words
17:15:54 <oklopol> which, i admit, is a sign of me not having proved it can actually work like i intended
17:15:57 <oklopol> wait a mo
17:16:13 * ihope ties up :, = and ;
17:16:38 <lament> F! "morning!"
17:16:38 <falsebot> morning!
17:17:08 <ihope> My goal for my little language is to be able to express proofs that two expressions are equivalent.
17:17:49 <ihope> I think that means first-order logic is necessary.
17:17:53 <lament> not particularly possible in the general case
17:18:14 <ihope> No?
17:18:34 <ihope> Is there a proof that no formal system of proof can express all proofs of equivalence?
17:18:50 <ihope> Rather, no set of axioms?
17:18:52 <lament> isn't that goedel?
17:18:59 <ihope> I dunno. Probably :-P
17:19:12 <lament> goedel is about proving theorems
17:19:12 <ihope> I'll ask in #math.
17:19:24 <lament> which is the same as proving that a statement is equivalent to True
17:19:59 <lament> so, sorry :)
17:24:28 <lament> from the wiki: "Most programming languages do allow for arbitrary effects at arbitrary points. In the imperative paradigm, for example, all this really means is that there is no restriction on the order that instructions are specified to be executed in."
17:24:32 <lament> what the hell does that mean?
17:31:49 <ihope> Luckily, all the equivalence-of-expressions I want is the fact that it's impossible to produce a type error by applying a function to an argument.
17:33:42 <lament> oh, that's different
17:33:45 <lament> well
17:34:03 <lament> goedel's theorem is for systems complex enough to express arithmetic
17:34:13 <lament> if your type system is complex enough to express arithmetic, you're fucked
17:34:22 <lament> but it probably isn't
17:34:46 <ihope> Type system complex enough to express arithmetic...
17:35:07 <ihope> Does the fact that types can contain any value help?
17:37:43 <oklopol> hmm
17:37:46 <oklopol> i got it ready
17:38:00 <oklopol> i'll up it, see if you find any sense in it
17:39:11 <oklopol> http://www.vjn.fi/pb/p213111455.txt
17:39:20 <oklopol> also tell me if that has a bug or smth
17:40:54 <oklopol> "by the type by the opening bracket."
17:40:56 <oklopol> lol
17:43:14 <oklopol> http://www.vjn.fi/pb/p312111331.txt
17:43:19 <oklopol> better i guess
17:51:58 -!- andreou has quit (Read error: 110 (Connection timed out)).
18:15:28 -!- sebbu has joined.
18:38:25 <oerjan> oklopol: ok i think it make sense except that you have reversed low/high precedence.
18:38:51 <oerjan> (from their usual meaning)
18:53:34 <oklopol> hmm... indeed i have
18:53:38 <oklopol> didn't think that through
18:55:46 <oklopol> okay, i didn't not think that through, i really tried putting them in the more sensible order :)
18:55:47 <oklopol> http://www.vjn.fi/pb/p564212545.txt
18:55:52 <oklopol> like thut
19:06:28 <ihope> I suddenly want to write a parser for it.
19:06:42 <ihope> Could be an interesting challenge. :-)
19:06:50 -!- RodgerTheGreat has joined.
19:07:04 <RodgerTheGreat> 'afternoon, everyone
19:08:37 <oklopol> ihope: i can tell you the tokenizing rules
19:08:48 <oklopol> and you can do it all.
19:09:06 <ihope> I could!
19:09:07 <oklopol> also, okenization is an important part of parsing oklotalk
19:09:17 <oklopol> that has simple rules as well
19:09:44 <oklopol> okenization is my term for "whuz applied to what"
19:10:23 <oklopol> like, 5 + 4 is (+ 5 4), while 5 3 4 is ´(5 3 4)
19:10:41 <oklopol> the parenthesis ones being lisp of course
19:11:05 <ihope> Acute accent?
19:11:15 <oklopol> ?
19:11:21 <ihope> ´
19:11:25 <oklopol> yes, quote
19:11:34 <oklopol> the thing _you_ were talking about some time ago
19:11:35 <ihope> It looks like neither ` nor '.
19:11:44 <oklopol> it's neither.
19:11:45 <oklopol> `
19:11:55 <ihope> Is it ASCII?
19:11:58 <oklopol> but doesn't matter, lisp has just one '
19:12:00 <lament> ` is ascii
19:12:04 <oklopol> yes
19:12:08 <lament> what oklopol had was not ascii
19:12:11 <oklopol> oh
19:12:12 <oklopol> :)
19:12:24 <lament> it's like ` but going the other way
19:12:37 <oklopol> really isn't? damn :\
19:12:50 <oklopol> it's an important part of oklotalk tokenization :)
19:13:00 <ihope> `, ' and that are used in oklotalk?
19:13:05 <lament> i'm not a fan of langs that require the use of characters i can't even type
19:13:14 <oklopol> ´, ` and '
19:13:32 <ihope> Hmm...
19:13:40 <oklopol> lament: the key you do ` with, doesn't it give you ´?
19:13:50 <oklopol> it does on all my keyboards
19:14:04 <oklopol> and it's not used in finnish so i don't think that's the reason
19:14:05 <ihope> All your keyboards have ´ under ~?
19:14:19 <oklopol> they have a special button for ´
19:14:22 <lament> oklopol: ` with no shift, ~ with shift
19:14:28 <oklopol> oh
19:14:29 <oklopol> :\
19:14:37 -!- pikhq has quit (Remote closed the connection).
19:14:45 <oklopol> damn
19:14:53 -!- pikhq has joined.
19:15:04 <oklopol> well, don't care, the choise of characters is not important
19:15:23 <ihope> Do you know if there are any ASCII characters you're not using?
19:15:32 <ihope> (Is there a rough oklotalk spec anywhere?)
19:15:39 <oklopol> ihope: that was just the bracket rules, there are other ways to change scoping :)
19:15:45 <oklopol> haskell-like $ for one
19:16:17 <ihope> I know that without much specification, I can't give much feedback.
19:16:17 <oklopol> ihope: on my comp, but it's partly outdated and too long for me to quickly fix it now
19:16:24 <oklopol> heh
19:16:26 <oklopol> trues
19:17:01 <ihope> Well, a parser can be written even if you have no idea what the result is supposed to do.
19:17:22 <oklopol> i could make a parsing spec, indeed
19:17:30 <ihope> I could write up a parser in Haskell.
19:18:18 <oklopol> i'll make one now, i'll make a python parser for it, but you prolly get it finished before me
19:18:34 <oklopol> shouldn't be that hard
19:18:49 <ihope> Of course, it's probably best to make the whole interpreter/compiler in one language.
19:19:03 <oklopol> yeah
19:19:25 <oklopol> hmm...
19:19:32 <oklopol> wonder if i could make anything in haskell
19:19:41 <lament> no. You're not smart enough.
19:19:43 <ihope> I wonder if I could make anything in Python...
19:19:45 <oklopol> made a thue interpreter... my first and only haskell program :DD
19:20:01 <ihope> Python is similar enough to Haskell that I could do it, I believe.
19:20:16 <oklopol> lament: my thoughts exactly, it's just i've surprised myself a few times
19:20:23 <ihope> It might look totally un-Python, though. :-)
19:20:52 <oklopol> python is nice, i just don't like the fact it has no scoping really
19:21:09 <ihope> No scoping?
19:21:12 <oklopol> well okay it has, but it like sucks ass
19:21:54 <oklopol> if you have a function inside another function, the inner function does not have access to the outer one
19:22:17 <ihope> oklopol: now, you said Finnish?
19:22:21 <oklopol> err
19:22:26 <oklopol> what i said was in finnish?
19:22:41 <oklopol> hmm
19:22:44 <ihope> You mentioned Finnish keyboards, or something.
19:22:47 <oklopol> oh
19:22:49 <oklopol> indeed i did
19:22:55 <oklopol> ah
19:22:56 <lament> oklopol: it's not a problem in practice.
19:23:10 <oklopol> we have umlaut where you have `
19:23:16 <oklopol> lament: for me it is
19:23:42 <oklopol> because i'm stupid, probably
19:24:02 <lament> inner functions are unpythonic
19:24:10 <ihope> Do you speak Finnish, then?
19:24:55 <ihope> (Should I just ask if English isn't your first language and point out your error? :-P)
19:25:31 <oklopol> point point
19:26:03 <oklopol> it's not my first language
19:26:21 <lament> is english anybody's first language?
19:26:37 <oklopol> lament: yours?
19:26:37 <ihope> It's mine. :-)
19:26:42 <oklopol> oh
19:27:02 <oklopol> hmm... actually i might be wrong about you being american
19:27:04 <lament> ihope: poor guy
19:27:06 <oklopol> (lament)
19:27:10 <lament> ihope: do you speak any other languages?
19:27:15 <bsmntbombdood> ihope: not for lambda calculus
19:27:22 <ihope> I'm learning Spanish and have looked at Japanese.
19:27:31 <bsmntbombdood> which means not for any turing complete language
19:27:31 <ihope> bsmntbombdood: what about lambda calculus?
19:27:32 <oklopol> ihope: will you tell me my error?
19:27:43 <lament> the nice thing about NOT having english as your first language
19:27:47 <lament> is that you're gonna learn english anyway
19:27:53 <lament> so you will know two languages
19:28:00 <bsmntbombdood> ihope: proofs of equivilence
19:28:23 <ihope> oklopol: you said that Python had no scoping, then you said "okay, it has". That should be "okay, it does", since "has" isn't an auxiliary verb here.
19:28:43 <oklopol> wow
19:28:54 <oklopol> 1/100 would have niticed
19:28:55 <ihope> (Isn't it wonderful how many things in English require auxiliary verbs?)
19:28:56 <oklopol> *noticed
19:28:59 <oklopol> hmm
19:29:09 <oklopol> perhaps 100% of americans
19:29:19 <ihope> :-)
19:29:25 <bsmntbombdood> it's easy to see for natives, probably
19:29:26 <lament> ihope: i don't think your explanation is correct
19:29:35 <ihope> With auxiliary verbs?
19:30:12 <lament> ihope: or rather, you say "has" isn't an auxilary verb, but you don't explain why there should be an auxilary verb there.
19:30:26 <oklopol> ihope: the reason that happened was i was actually going to write how it has and what, but couldn't phrase it well enough
19:31:09 <ihope> lament: same reason we need to say "Did you eat lunch yet?" rather than "Ate you lunch yet"?
19:31:36 <lament> ihope: no, it's not the same reason.
19:31:48 <lament> ihope: In that sentence you need the auxilary verb because that's how you form questions.
19:32:05 <ihope> I can't say "that's the way it is" for this, too?
19:32:10 <lament> oklopol's statement wasn't a question.
19:32:24 <oerjan> it's because the verb itself is stressed, not?
19:32:41 <bsmntbombdood> you can't understand it, you have to feel it
19:32:53 <lament> oh, i'm pretty sure you can understand it.
19:32:58 <SimonRC> english auxiliaries are fucked up
19:33:02 <oklopol> ihope: can you use too in a negative sentence like that?
19:33:06 <oklopol> 'too'
19:33:12 <lament> oklopol: no, he can't.
19:33:15 <oklopol> cool
19:33:19 <oklopol> ihope: i POWNED ya
19:33:30 <SimonRC> WTF are can, could, should, would, etc anyway?
19:33:45 <SimonRC> oklopol: ITYM "PWNED"
19:33:51 <lament> SimonRC: ...verbs?
19:33:58 <ihope> "I know this is true. Are you saying that this isn't true too?"
19:34:11 <lament> ihope: s/too/either
19:34:13 <oklopol> "as well"?
19:34:17 <lament> ihope: "too" is ungrammatical
19:34:36 <oklopol> i'd say "either" would be even more wrong.
19:34:49 <SimonRC> lament: they sometimes don't work like verbs
19:34:56 <SimonRC> and they don't compose properly
19:35:02 <lament> SimonRC: then think of them as mood markers
19:35:02 <ihope> lament: if the first sentence were "I know this isn't true", then it'd be either, but isn't it "too" when you say that it is true?
19:35:17 <oklopol> ihope: or perhaps "as well"?
19:35:25 <ihope> That also works.
19:35:40 <oklopol> i'd say "too" doesn't, but i guess you make the language.
19:35:44 <lament> ihope: are you parsing it as "are you saying that [this isn't true] too?"
19:36:02 <lament> ihope: i'm parsing it as "are you saying that this [isn't true too]" which is ungrammatical
19:36:04 <ihope> Are you saying that [this isn't true too]?
19:36:17 <ihope> Hmm...
19:36:47 <lament> seems 'too' can only be applied to positive statements
19:37:01 <lament> john has an apple and i have one too
19:37:02 <ihope> "Too", as far as I know, is used whenever some *other* statement is positive.
19:37:08 <lament> john doesn't have any apples and i don't have any either
19:37:22 <ihope> John has an apple but I don't have one too.
19:37:32 <lament> ungrammatical
19:37:42 <lament> i'm very sure that's ungrammatical
19:38:25 <ihope> I guess I'm thinking of "to have one too" as a form of "to have one" that's used when someone else has one, and then I'm just negating it.
19:38:27 <lament> grammatical: john has an apple but i don't have one.
19:38:29 <oklopol> i'd say that latter one is right
19:38:41 * ihope shrugs
19:39:35 <lament> you can only use 'too' when both statements agree with each other
19:39:41 <lament> too indicates the agreement between them
19:39:45 <bsmntbombdood> you can't understand it
19:39:49 <lament> john has it, i have it too
19:40:03 <lament> same with either, but for negative statements
19:40:25 <bsmntbombdood> "john has an apple but i don't have one too" is wrong because it feels wrong
19:40:29 <lament> if one is positive and the other is negative, then there's no agreement, so you can't use "too" nor "either"
19:42:44 <ihope> Now, I think we were on about Python and Haskell and such.
19:43:00 <ihope> Python, Haskell, parsers, specs...
19:43:46 <ihope> Division of labor...
19:44:07 <ihope> But not Keynesianism.
19:44:13 <lament> yeah, yeah, you suck at english and that's all there is to it :)
19:44:47 <ihope> Yes, isn't it wonderful?
19:44:48 <oklopol> it's raining outside, i wanna go there
19:44:54 <SimonRC> lol America: # God hates the world // and all her people #, by the same people that brought you God Hates Fags http://my.break.com/media/view.aspx?ContentID=278059
19:47:59 <oklopol> by the way, it was a 30 minute job learning a deck of cards in order
19:48:12 <oklopol> and the pianist failed pretty bad
19:48:36 <ihope> Sounds like absurdist humor.
19:48:44 <ihope> Or is that surrealist humor?
19:48:48 <ihope> :-P
19:48:59 <oklopol> what me?
19:49:10 <ihope> Yup.
19:49:20 <oklopol> i used to sing that piece in choir <3
19:49:25 <oklopol> the original one
19:49:27 <oklopol> <3?
19:49:28 <oklopol> :DD
19:49:36 <oklopol> i'm high on caffeine again
19:49:42 <ihope> I see.
19:50:04 <ihope> Don't worry. If you do that often enough, you'll develop resistance to it.
19:50:13 <ihope> Unfortunately, resistance comes with addition.
19:51:14 <ihope> And by addition, I mean addiction.
19:51:20 <oklopol> mandatory to attain choir since i was on a music class
19:51:25 <oklopol> hmm
19:51:49 <oklopol> ihope: i won't get resistant since the high is psychological
19:52:17 <ihope> Oh?
19:52:38 <lament> what?
19:53:13 <SimonRC> AFAICT it's real
19:53:38 <lament> what the hell is a "psychological high"?
19:53:47 <lament> "psychological addiction" i can understand
19:53:48 <ihope> If only that were true for the L-Dopa administered to catatonic patients...
19:53:57 <lament> "psychological high", not really
19:54:20 <lament> since caffeine obviously has physiological effects
19:54:39 <lament> unless you're drinking decaf coffee and your high is from the placebo effect
19:54:54 <ihope> Death is considered a physiological effect, right?
19:54:59 <oklopol> i can get pretty high without any substance.
19:55:17 * ihope ponders the phrase "your highness"
19:55:49 <oklopol> it's true caffeine has physiological effects, but it's highifying effect is minimal
19:56:17 <oklopol> i just get so excited from the fact it's my favorite poison i'm drinking i sometimes get a bit carried away
19:57:03 <ihope> Now, are you doing anything in the way of an oklotalk spec?
19:57:19 <SimonRC> oklopol: huh/ you memorised the order of a pack of cards?
19:58:04 <oklopol> yeah
19:58:18 <oklopol> ihope: trying, but people keep on talking :P
19:58:58 <ihope> lament: can you please kickban oklopol so that that spec will get written?
19:59:00 <ihope> :-P
19:59:13 <oklopol> nooo
19:59:14 <oklopol> :D
19:59:25 * ihope grabs the whip
19:59:28 <ihope> Get to work!
20:00:06 <SimonRC> oklopol: how?
20:01:01 <oklopol> SimonRC: http://www.torrentz.com/87dbcdab1a1734730dad25b1fdaf4caf9edd4a06
20:01:13 <oklopol> trivial
20:06:07 <oklopol> hmm
20:06:10 <oklopol> is § ascii?
20:06:26 <oklopol> that's also a pretty crucial char :)
20:06:41 <lament> no.
20:07:49 -!- kwertii has joined.
20:08:00 <oklopol> heh
20:08:24 <oklopol> ¤, i guess, isn't either?
20:09:22 <oklopol> i've never seen a keyboard without these keys and don't know the ascii table by heart... i guess i should travel more and remember more
20:09:38 <oklopol> s/keys/characters
20:10:11 <ihope> ¤ isn't ASCII, no.
20:10:49 <ihope> Alphanumerics and `~!@#$%^&*()_+-={}|[]\:";'<>?,./
20:11:42 <ihope> Does your keyboard have all of ASCII?
20:11:47 <oklopol> okily, then i have to change my whole operator set or just have it not be ascii
20:11:55 <oklopol> ihope: all those yes
20:12:01 <oklopol> and a lot more
20:12:03 <oklopol> ªŋ®þjþ←jœš®→↓ħj€ħjµª€ħ
20:12:24 <ihope> That's... many.
20:12:37 <oklopol> those were random, not all
20:12:53 <ihope> Indeed, there certainly were duplicates.
20:13:09 <oklopol> yeah, there's about twice that
20:13:15 <oklopol> much
20:13:55 <SimonRC> oklopol: I don't care enough to download all that
20:14:22 <oklopol> one pdf?
20:14:44 <oklopol> well, it's a lot more if you don't do torrents of course
20:14:52 <oklopol> anyway, that's a book i read.
20:14:57 <oklopol> (half of it)
20:15:00 <oklopol> (sofar)
20:18:07 <oklopol> heh, 50000 steps to solve "world's hardest sudoku" with brute force
20:18:28 <oklopol> 841258 steps to solve a random sudoku i solved by hand in 10 minutes
20:18:54 <ihope> :-)
20:19:06 <ihope> I take it you're using some sort of program to do that.
20:19:13 <oklopol> yeah
20:19:35 <oerjan> no, no, it's a trick from that book...
20:19:51 <ihope> (Also, people really don't know what they're missing with, say, 9x9 sudokus.)
20:20:07 <ihope> (...Okay, they probably know that they're missing large headaches.)
20:20:12 <lament> i know what i'm missing _without_ sudokus
20:20:18 <lament> basically nothing :)
20:20:55 <ihope> Hmm... by "with" I apparently meant "in".
20:20:59 <ihope> Or something like that.
20:21:44 <oklopol> 16x16 sudokus can be bruted as well
20:22:03 <oklopol> however, even the easiest 25x25 will take forever... never managed to finish one
20:22:11 <oklopol> run the program for days.
20:22:13 <oklopol> *ran
20:22:34 <ihope> Try implementing... um, some certain algorithm.
20:23:48 <oklopol> http://www.vjn.fi/pb/p553546433.txt
20:23:51 <oklopol> that was hard
20:24:09 <oklopol> i have an algorithm that generalized sudokus... also solves the checkers problem
20:24:16 <ihope> Say, have you tried brute-forcing http://en.wikipedia.org/wiki/Image:Sudoku_puzzle_hard_for_brute_force.jpg?
20:24:23 <oklopol> that i made one night because i was bored
20:24:48 <ihope> Dancing Links is the algorithm I mean.
20:25:44 <lament> looks like wikipedia is mostly down
20:26:11 <ihope> Works for me.
20:26:31 <oklopol> dancing links?
20:26:37 <ihope> Yup.
20:26:38 <oklopol> hmm... didn't brute yet
20:28:34 <oklopol> hmm, i'm not gonna try and understand that... i'm pretty sure it's the same i invented myself
20:28:40 <oklopol> what else could it be
20:29:07 <ihope> What's probably the same as you invented yourself?
20:29:40 <oklopol> dancing links
20:29:52 <oklopol> i mean, pretty much the same, prolly a bit better
20:30:18 <oklopol> it would take me an hour to understand how it works
20:31:05 <ihope> Well, Dancing Links is pretty efficient from what I can tell.
20:31:34 <oklopol> most likely it is.
20:32:02 <oklopol> if you like, explain it to me in layman's terms
20:32:07 <oklopol> the gist of it
20:32:21 <ihope> I currently don't know the gist of it any better than you do :-)
20:32:56 <ihope> I know that it's a modified version of an algorithm that involves a few steps.
20:33:06 <ihope> (As opposed to those algorithms that don't require any steps at all.)
20:34:10 <RodgerTheGreat> those ones are always fun
20:34:25 <oklopol> hmm
20:34:29 <oklopol> no steps?
20:34:46 <ihope> Dancing Links probably also involves steps.
20:34:55 <oklopol> i don't understand the thing it says there about doubly linked lists.
20:35:04 <ihope> With the arrows?
20:35:08 <oklopol> arrows?
20:35:09 <oklopol> oh
20:35:13 <oklopol> i thought they were -
20:35:15 <ihope> Well, it says to read the article on Algorithm X first.
20:35:35 <oklopol> heh, i guess i shouldn't have assumed _i_ don't need to read it
20:35:47 <lament> esoteric - "i so erect"
20:35:57 <lament> esoteric - "core site"
20:35:59 <oklopol> :)
20:36:05 <lament> esoteric - ie corset
20:36:27 <lament> esoteric - ice store
20:36:35 <lament> i like core site
20:37:37 -!- lament has set topic: The core site for esoteric programming language design and deployment - map: http://www.frappr.com/esolang - forum: http://esolangs.org/forum/ - EgoBot: !help - wiki: http://esolangs.org/wiki/ - logs: http://tunes.org/~nef/logs/esoteric/ or http://www.ircbrowse.com/cdates.html?channel=esoteric - Pastebin: http://pastebin.ca/ - Here be cannibals. (bsmntbombdood has been eaten.).
20:40:12 <oklopol> lament: did you do that manually?
20:41:25 <oklopol> hardest word to anagramize i know is "niklas nordmann", unfortunately i've only searched finnish ones
20:41:46 <oklopol> prolly easy in english
20:41:55 <oklopol> hmm... or not
20:44:08 <bsmntbombdood> huh?
20:46:05 <ihope> Internet Anagram Server = I, Rearrangement Servant
20:46:07 <ihope> I think.
20:46:26 <ihope> Nice way to advertise :-)
20:54:22 <bsmntbombdood> mmmmm coffee
20:54:25 <bsmntbombdood> delicious delicious
20:54:29 <sp3tt> coffeeeeeeee
20:54:37 <sp3tt> needs moar coffee
21:12:05 <oklopol> ihope: would you have wanted a bnf?
21:12:34 <oklopol> i wrote something... never shown a spec to anyone, don't know if this one makes any sense :P
21:14:14 <oklopol> http://vjn.fi/mb/index.php
21:14:19 <oklopol> try loading oklotalkspec
21:14:35 <oklopol> (that bin has never been tried and is under construction, sorry :P)
21:14:41 <oklopol> "oklotalkspec"
21:15:48 -!- oerjan has quit ("'ishop").
21:21:39 <bsmntbombdood> wikihow is funny
21:23:26 <bsmntbombdood> "how to boil water"
21:23:38 <oklopol> cool
21:23:46 <oklopol> i've always wanted to learn that
21:31:59 <oklopol> guess i'll go outside, be back in a few hours
21:32:05 <oklopol> around 2 am
21:35:30 <ihope> oklopol: oh, it's not really that important.
21:35:39 <oklopol> what?
21:35:55 <oklopol> bnf?
21:41:35 <ihope> Yeah.
21:41:44 -!- jix_ has quit ("CommandQ").
21:41:53 <ihope> Backslash makes a decimal number, you say? How does that work?
21:42:15 <ihope> (Wait, I'm doing this in Haskell. Um... that won't result in any deaths, will it?)
21:43:55 <ihope> And what should I do with unmatched comment markers?
21:46:39 <ihope> And I don't get the scope splitting stuff.
21:51:26 * SimonRC recalls his first cookery lesson at school.
21:52:26 <ihope> Cookery?
21:54:04 <SimonRC> yes
21:54:19 <SimonRC> we made beans on toast as the first lesson
21:54:37 * SimonRC recalls the time he made a pizza with a whole block of edam on it
21:56:13 <bsmntbombdood> edam?
22:00:13 <SimonRC> Or rather, Edam.
22:01:07 <bsmntbombdood> Edam (Dutch Edammer) is a Dutch cheese that is traditionally sold as spheres with pale yellow interior and a coat of paraffin.
22:01:36 <SimonRC> yes, I know
22:18:03 <bsmntbombdood> poop plane!!
22:18:39 <ihope> Did somebody say poop plane?
22:20:44 <bsmntbombdood> i think so
22:26:40 <SimonRC> bsmntbombdood: WTF
22:27:43 <bsmntbombdood> yes, indeed
22:30:51 <lament> btw omitting aux. verbs seems to be a somewhat common feature of informal english
22:32:30 <lament> ("you think so?")
22:40:32 <ihope> Hmm, indeed.
22:41:17 <ihope> Or is that omitting the first word of a sentence because it's not that important?
22:51:01 <lament> looks like omitting the aux. verb specifically
23:34:35 -!- falsebot has quit (Remote closed the connection).
23:35:12 <lament> nooo
23:40:04 -!- sebbu has quit ("@+").
23:49:56 * bsmntbombdood wrote a lisp with first order macros
23:49:59 <bsmntbombdood> http://paste.lisp.org/display/43574
23:51:06 <bsmntbombdood> implementation of the OR macro: http://paste.lisp.org/display/43573
2007-06-28
00:26:43 * SimonRC points at section 8 of this: http://paulgraham.com/arcll1.html
00:26:53 <SimonRC> "Macros separate 1st class objs."
00:29:39 <lament> what esolangs are based on a stack of stacks?
00:30:05 <pikhq> None that I know of.
00:30:08 <pikhq> Yet. ;)
00:30:52 <lament> i'm pretty sure they exist.
00:31:03 <ihope> Ooh, fun.
00:31:10 <ihope> Just make the basic datatype the stack.
00:31:21 <lament> that's what i'm trying to do.
00:33:25 <kwertii> numbers defined as stacks?
00:33:27 <kwertii> cool
00:33:55 <kwertii> very set theoretic
00:34:31 <lament> who said anything about numbers
00:36:12 -!- Sgeo has joined.
00:51:57 <kwertii> a different notation for the same thing
00:52:16 <kwertii> what do you have in mind?
00:52:34 <SimonRC> funge98 has a stack of stacks
01:11:50 <Sgeo> Has any work been done on that factory language?
01:12:03 <Sgeo> The one that was not to be called ABCDEF (I think)
01:25:58 <bsmntbombdood> bah :(
01:28:51 <bsmntbombdood> no fair
01:33:27 * SimonRC finds a pair of people analogous to a laser on Usenet.
01:33:46 <SimonRC> Every post by one of them causes an average of 1.1 replies by the other.
01:33:53 <SimonRC> qualitavely
01:33:57 <SimonRC> speaking
01:34:03 * SimonRC goes to bed
02:58:36 -!- ihope__ has joined.
03:06:56 -!- ihope has quit (Nick collision from services.).
03:06:58 -!- ihope__ has changed nick to ihope.
05:05:10 -!- ihope has quit (Read error: 110 (Connection timed out)).
05:15:14 -!- pikhq has quit (simmons.freenode.net irc.freenode.net).
05:15:14 -!- lament has quit (simmons.freenode.net irc.freenode.net).
05:15:44 -!- lament has joined.
05:15:44 -!- pikhq has joined.
05:35:26 -!- boily has joined.
05:35:26 -!- immibis has joined.
05:36:01 <immibis> hi everyone whos here right now
05:37:15 <immibis> bsmntbombdood: who ate you?
05:39:15 <bsmntbombdood> lament and ihope, i think
05:40:26 <immibis> ~exec sys.stdout("* lament burps")
05:40:31 <immibis> ~exec sys.stdout("* ihope burps")
05:40:42 <immibis> ~exec self.raw("QUIT")
05:41:47 <bsmntbombdood> har har
05:41:58 <bsmntbombdood> i added a new feature to bsmnt_bot ;)
05:42:38 <RodgerTheGreat> cya, guys
05:42:39 <bsmntbombdood> ~exec sys.stdout([i.pattern for i in self.banlist])
05:42:40 <bsmnt_bot> ['^:immibis.*']
05:42:55 -!- RodgerTheGreat has quit.
05:43:23 <immibis> bsmntbombdood: i see why you did that
05:51:00 <bsmntbombdood> anyone who isn't banned can unban you, so feel free to convince someone to
05:52:29 <immibis> i don't think many people would want to (hehe)
05:52:40 -!- immibis has changed nick to immibis_away.
05:52:50 <immibis_away> ~exec sys.stdout("immibis_away is not banned!")
05:52:57 -!- immibis_away has changed nick to immb.
05:53:03 <immb> ~exec sys.stdout("immb is not banned!")
05:53:03 <bsmnt_bot> immb is not banned!
05:53:14 <immb> maybe it should keep track of nick changes?
05:53:21 -!- immb has changed nick to immibis.
05:54:08 <bsmntbombdood> that could be gotten around by just quitting/reconnecting
06:08:26 -!- c|p has quit ("( www.nnscript.de :: NoNameScript 4.02 :: www.XLhost.de )").
06:10:16 <Sgeo> G'night all!
06:11:20 -!- Sgeo has quit ("Ex-Chat").
06:24:07 * boily restarts X
06:24:11 -!- boily has quit ("WeeChat 0.2.5").
06:25:07 -!- boily has joined.
06:40:19 -!- toBogE has joined.
06:40:27 <immibis> !bf ++++++++++.
06:40:31 <immibis> hm
06:40:36 <immibis> !bf +++++++++++++.
06:40:44 <immibis> !bf [+.]
06:40:55 -!- toBogE has quit (Read error: 104 (Connection reset by peer)).
06:41:30 <immibis> toBogE is EgoBot spelled backwards
06:42:35 -!- toBogE has joined.
06:43:06 <immibis> !bf [+.]
06:43:23 -!- toBogE has quit (Read error: 104 (Connection reset by peer)).
06:45:15 -!- immibis has changed nick to immibis[A].
06:45:15 * immibis[A] is now away - Reason : afk
06:55:40 <Sukoshi> !bf +.[>+.]
07:04:34 <immibis[A]> it is offline
07:04:36 <immibis[A]> i am debugging
07:04:39 <immibis[A]> it didn't work
07:04:41 -!- immibis[A] has changed nick to immibis.
07:04:41 * immibis is no longer away : Gone for 19 minutes 25 seconds
07:05:36 <immibis> it will be on #toboge until it works
07:27:17 -!- immibis has left (?).
07:27:49 -!- immibis has joined.
07:30:25 -!- oerjan has joined.
07:33:46 <immibis> hi oerjan
07:34:05 -!- EgoBot has joined.
07:34:22 <immibis> !bf +[.+]
07:34:29 <oerjan> hi
07:34:37 <immibis> I SAID !bf +[.+]
07:34:44 <immibis> EgoBot!
07:35:29 <immibis> my brainfuck bot appears to have become a ghost
07:36:02 -!- toBogE has joined.
07:36:08 -!- boily has quit ("Sleep").
07:36:08 <immibis> !bf W+[.+M256]
07:36:08 <toBogE> Wimpmode enabled for this Brainfuck program. Supported wimpmode commands: M(number) - modulo the current cell by NUMBER
07:36:09 <toBogE> <CTCP>
07:36:09 <toBogE> gikmoqsuwy{}
07:36:10 <toBogE>
07:36:41 <immibis> !bf +++++[>++<-]
07:36:48 <immibis> !bf +++++[>++<-][>++<-].
07:37:09 -!- toBogE has quit (Read error: 104 (Connection reset by peer)).
07:37:18 <immibis> toboge is egobot spelled backwards
07:39:13 -!- toBogE has joined.
07:39:18 -!- toBogE has quit (Read error: 104 (Connection reset by peer)).
07:53:24 -!- EgoBot has quit (Read error: 110 (Connection timed out)).
07:56:36 -!- toBogE has joined.
07:56:49 <immibis> !magritte x
07:57:01 <immibis> toboge? syntax error
07:57:14 <immibis> !bf W+[+.M256]
07:57:25 <oerjan> ceci n'est pas un x
07:57:38 <immibis> its a ghost i think
07:57:46 -!- toBogE has quit (Nick collision from services.).
07:57:47 <immibis> one second
07:58:02 -!- toBogE has joined.
07:58:03 <immibis> !magritte syntax error
07:58:03 <toBogE> Syntax error. Please type !magritte Ceci n'est pas un programme.
07:58:12 <immibis> !magritte Ceci n'est pas un programme.
07:58:12 <toBogE> Paradoxical error. You say it is not a program, I will not believe it. I do not believe it, it is a lie. It is a lie, it is not not a program. It is not not a program, it is a program. It is a program, I believe it. I believe it, it is not a lie. It is not a lie, it is not a program.
07:58:12 <toBogE> It is not a program, I will not believe it. I do not believe it, it is a lie. It is a lie, it is not not a program. It is not not a program, it is a program. It is a program, I believe it. I believe it, it is not a lie. It is not a lie, it is not a program.
07:58:12 <toBogE> It is not a program, I will not believe it. I do not believe it, it is a lie. It is a lie, it is not not a program. It is not not a program, it is a program. It is a program, I believe it. I believe it, it is not a lie. It is not a lie, it is not a program.
07:58:13 -!- toBogE has quit (Excess Flood).
07:58:21 <immibis> paradoxical error.
07:58:40 <oerjan> spam error
07:59:55 <immibis> ok, changing error message
07:59:58 -!- toBogE has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:00:08 <immibis> !magritte Ceci n'est pas un programme.
08:00:08 <toBogE> Paradoxical error. "Ceci n'est pas un programme" is French for "This is not a program"
08:01:20 <immibis> !bf ++<++++++++[>[[>++<-]>[-<+>]<-]-.
08:01:21 <toBogE>
08:01:27 <immibis> !bf ++<++++++++[>[[>++<-]>[-<+>]<-]->.
08:01:32 <immibis> !bf ++<++++++++[>[[>++<-]>[-<+>]<-]->.
08:01:50 <immibis> !bf ++<++++++++[>[[>++<-]>[-<+>]<-]-[>+.<-]
08:01:50 <toBogE> <CTCP>
08:01:51 <toBogE>
08:01:52 <toBogE> >?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnop
08:01:54 <toBogE> qrstuvwxyz{|}~
08:01:56 <toBogE>
08:01:56 <toBogE>
08:01:57 <toBogE>
08:01:58 <toBogE> >?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnop
08:01:59 <toBogE> qrstuvwxyz{|}~
08:02:01 <toBogE>
08:02:02 <immibis> oops
08:02:03 <toBogE> Brainfuck program taking too long
08:02:15 <immibis> good thing i did that
08:02:19 <immibis> that error
08:02:29 -!- immibis has changed nick to immibis[A].
08:09:51 -!- immibis[A] has changed nick to immibis.
08:10:31 -!- toBogE has quit (Read error: 104 (Connection reset by peer)).
08:11:48 -!- toBogE has joined.
08:12:26 <immibis> !magritte Ceci n'est pas un programme.
08:12:26 <toBogE> Paradoxical error. "Ceci n'est pas un programme" is French for "This is not a program"
08:12:45 <immibis> !raw privmsg #esoteric test
08:12:45 <toBogE> test
08:12:48 <immibis> !irp test
08:12:48 <toBogE> test
08:13:01 <immibis> !irp Could someone please repeat this request?
08:13:02 <toBogE> Could someone please repeat this request?
08:13:11 <immibis> !irp Could someone please repeat the previous request?
08:13:13 <toBogE> Could someone please repeat the previous request?
08:24:17 <immibis> !bf ++<++++++++[>[[>++<-]>[-<+>]<-]-[>+.<-]
08:24:21 <toBogE> <CTCP>
08:24:22 <toBogE>
08:24:23 <toBogE> >?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnop
08:24:24 <toBogE> qrstuvwxyz{|}~
08:24:26 <toBogE>
08:24:30 <toBogE>
08:24:30 <toBogE>
08:24:30 <toBogE> >?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnop
08:24:31 <toBogE> qrstuvwxyz{|}~
08:24:31 <toBogE> Brainfuck program taking too long
08:25:09 <immibis> !bf +[,.]
08:25:09 <toBogE> Brainfuck input not supported by this bot.
08:25:22 <immibis> !bf WA.B.C.D.
08:25:23 <toBogE> Wimpmode enabled for this Brainfuck program. Supported wimpmode commands: M(number) - modulo the current cell by NUMBER
08:25:23 <toBogE> ABCD
08:26:40 <immibis> !bf Ww.i.m.p.m.o.d.e.+>++++++[-<[->>+<<]>>[-<<++>>]<<].>h.
08:26:42 <toBogE> Wimpmode enabled for this Brainfuck program. Supported wimpmode commands: M(number) - modulo the current cell by NUMBER
08:26:52 <toBogE> Brainfuck program taking too long
08:27:02 <immibis> !bf Ww.i.m.p.m.o.d.e.+>++++++[-<[->>+<<]>>[-<<++>>]<].>h.
08:27:03 <toBogE> Wimpmode enabled for this Brainfuck program. Supported wimpmode commands: M(number) - modulo the current cell by NUMBER
08:27:13 <toBogE> Brainfuck program taking too long
08:27:53 <immibis> !bf W++++++++++++++++++++++++++++++++>w.i.m.p.m.o.d.e.<.>i.s.<.>b.e.i.n.g.<.>u.s.e.d.<.>f.o.r.<.>t.h.i.s.<.>p.r.o.g.r.a.m.
08:27:55 <toBogE> Wimpmode enabled for this Brainfuck program. Supported wimpmode commands: M(number) - modulo the current cell by NUMBER
08:27:55 <toBogE> wimpmode is being used for this program
08:31:12 -!- GreaseMonkey has joined.
08:32:18 <GreaseMonkey> HQ9+ interpreter in Thue :D http://esoteric.voxelperfect.net/wiki/User:Ben_Russell/thue/hq9p.t
08:39:29 <immibis> !bf WO.K.++++++++++++++++++++++++++++++++.G.r.e.a.s.e.M.o.n.k.e.y.
08:39:29 <toBogE> Wimpmode enabled for this Brainfuck program. Supported wimpmode commands: M(number) - modulo the current cell by NUMBER
08:39:29 <toBogE> Caught a java.lang.NumberFormatException! For input string: ""
08:39:40 <immibis> !bf WO.K.++++++++++++++++++++++++++++++++.G.r.e.a.s.e.N-.o.n.k.e.y.
08:39:40 <toBogE> Wimpmode enabled for this Brainfuck program. Supported wimpmode commands: M(number) - modulo the current cell by NUMBER
08:39:40 <toBogE> OKkGreaseMonkey
08:40:01 <immibis> !bf WO.K.>++++++++++++++++++++++++++++++++.<G.r.e.a.s.e.N-.o.n.k.e.y.
08:40:01 <toBogE> Wimpmode enabled for this Brainfuck program. Supported wimpmode commands: M(number) - modulo the current cell by NUMBER
08:40:02 <toBogE> OK GreaseMonkey
08:43:23 <immibis> !bf H.e.l..o.>+++++[->++++++<]>++.<<W.o.r.l.d
08:43:23 <toBogE> Unrecognized Brainfuck instruction: H
08:43:27 <immibis> !bf WH.e.l..o.>+++++[->++++++<]>++.<<W.o.r.l.d.
08:43:28 <toBogE> Wimpmode enabled for this Brainfuck program. Supported wimpmode commands: M(number) - modulo the current cell by NUMBER
08:43:38 <toBogE> Brainfuck program taking too long
08:43:43 <immibis> what
08:43:46 <immibis> print some text!
08:43:52 <immibis> !bf WH.e.l..o.
08:43:53 <toBogE> Wimpmode enabled for this Brainfuck program. Supported wimpmode commands: M(number) - modulo the current cell by NUMBER
08:43:53 <toBogE> Hello
08:44:11 <GreaseMonkey> why don't you just remove that message?
08:44:20 <immibis> remove the wimpmode message?
08:44:22 <immibis> good idea
08:44:53 <GreaseMonkey> !bf WT.h.i.s. .i.s. .b.a.l.l.s.
08:44:53 <toBogE> Wimpmode enabled for this Brainfuck program. Supported wimpmode commands: M(number) - modulo the current cell by NUMBER
08:44:56 <toBogE> Unrecognized Brainfuck instruction:
08:45:03 <immibis> space is not recognized
08:45:18 <immibis> also you can't use M because M is the wimpmode modulo command
08:45:23 <GreaseMonkey> !bf WT.h.i.s.++++[>++++++++<-]>.<i.s.>.<.b.a.l.l.s.
08:45:24 <toBogE> Wimpmode enabled for this Brainfuck program. Supported wimpmode commands: M(number) - modulo the current cell by NUMBER
08:45:32 -!- toBogE has quit (Read error: 104 (Connection reset by peer)).
08:45:47 <GreaseMonkey> don't worry
08:45:48 <immibis> letters a-z, A-Z, and digits in wimpmode set the current cell to their ascii value
08:45:56 <GreaseMonkey> EgoBot crashes much worse than that
08:46:17 <GreaseMonkey> obviously excluding M
08:46:27 <GreaseMonkey> ever coded in Thue?
08:46:35 <immibis> no
08:46:40 <immibis> egobot didn't crash
08:46:43 <immibis> i closed it
08:46:44 <GreaseMonkey> after watchin a few programs in action, it's really easy to pick up
08:46:53 -!- toBogE has joined.
08:46:53 <immibis> i mean not egobot, toboge
08:46:58 <immibis> which is egobot spelled backwards
08:47:03 <immibis> yes, it probably would be
08:47:04 <GreaseMonkey> nice :D
08:47:15 <GreaseMonkey> nice, i'm a kiwi too
08:47:23 <immibis> what is nice?
08:47:29 <GreaseMonkey> the name
08:47:36 <immibis> ok
08:47:39 <GreaseMonkey> where bouts are you based? i'm in the wellington region
08:47:44 <immibis> lower hutt
08:47:48 <immibis> in the wellington region
08:48:14 <GreaseMonkey> the town before porirua
08:48:24 <immibis> i removed the wimpmode message and changed it so that the wimpmode command to set the current cell to an ascii value is !C where C is a character
08:48:33 <immibis> !bf !H.!e.!l..!o.
08:48:33 <toBogE> Unrecognized Brainfuck instruction: !
08:48:38 <immibis> !bf W!H.!e.!l..!o.
08:48:38 <toBogE> Hello
08:48:48 <immibis> you need W at the beginning to activate wimpmode
08:49:12 <GreaseMonkey> W!G.!o..!d.! .!i.!d.!e.!a.!!.
08:49:23 <GreaseMonkey> W!G.!o..!d.! .!i.!d.!e.!a.! +.
08:49:30 <immibis> !bf W!G.!o..!d.! .!i.!d.!e.!a.! +.
08:49:30 <toBogE> Good idea!
08:49:32 <immibis> !bf W!G.!o..!d.! .!i.!d.!e.!a.!!.
08:49:33 <toBogE> Good idea!
08:49:36 <immibis> you need !bf
08:49:41 <GreaseMonkey> oh
08:49:50 * GreaseMonkey slaps himself around a bit with a large trout
08:49:59 <immibis> otherwise it would pick it up anytime people were talking about brainfuck
08:50:05 <GreaseMonkey> that'd be fun :D
08:50:55 <immibis> lol
08:51:14 <immibis> !raw PRIVMSG #esoteric :AVERY BUILDER MAN
08:51:14 <toBogE> AVERY BUILDER MAN
08:51:22 <immibis> are you alright, toBogE?
08:51:43 <immibis> lol
08:51:45 <oerjan> small wingless birds slapping themselves with large trouts, what has this channel come to?
08:52:05 <immibis> !magritte Ceci n'est pas un programme.
08:52:05 <toBogE> Paradoxical error. "Ceci n'est pas un programme" is French for "This is not a program"
08:52:22 <immibis> !raw PRIVMSG #esoteric :And if it isn't a program, I can't be running it.
08:52:23 <toBogE> And if it isn't a program, I can't be running it.
08:52:33 <GreaseMonkey> !raw PRIVMSG #esoteric :hope you've fixed this exploit
08:52:33 <toBogE> hope you've fixed this exploit
08:52:39 <GreaseMonkey> !raw QUIT :nope you haven't
08:52:40 -!- toBogE has quit ("nope you haven't").
08:52:51 <GreaseMonkey> ^ you need some protection from that
08:53:01 <immibis> well it was *supposed* to reconnect
08:53:13 -!- immibis has changed nick to immb.
08:53:25 <immb> ~exec self.raw("QUIT :QUIT MESSAGE GOES HERE")
08:53:25 -!- bsmnt_bot has quit ("QUIT MESSAGE GOES HERE").
08:53:29 -!- bsmnt_bot has joined.
08:53:30 -!- immb has changed nick to immibis.
08:53:53 <GreaseMonkey> two easy solutions: 1. make it only support !raw from your nick, or ident, or hostmask, 2. add a login command, and make it only !raw for the one logged it
08:54:27 <immibis> i successfully used a quit message on bsmnt_bot - i did the same thing before and it didn't work?
08:54:29 <immibis> i wonder why
08:55:27 <oerjan> immibis: freenode has this anti-spam feature where you cannot do quit messages until a while after you've joined
08:55:35 <immibis> ok
08:55:47 -!- toBogE has joined.
08:55:57 <immibis> !raw QUIT I AM AN IDIOT
08:55:57 -!- toBogE has quit (Client Quit).
08:56:01 <oerjan> because otherwise spammers could get around mute settings in channels
08:56:20 <oerjan> or something like that
08:56:46 <GreaseMonkey> ~exec self.raw("PRIVMSG #esoteric :<CTCP>ACTION thinks toBogE is fat<CTCP>")
08:56:47 * bsmnt_bot thinks toBogE is fat
08:56:59 <immibis> found the problem
08:57:07 <oerjan> immibis: also, the : is mandatory if what comes after contains spaces
08:57:08 <immibis> in fatbot
08:57:12 <immibis> er toBogE
08:57:18 <immibis> ok
08:57:24 <GreaseMonkey> there's a bot called fatso already
08:57:37 <immibis> lol
08:57:49 <GreaseMonkey> oh, and BTW, I suggest you use a Brainsecks interpreter instead of Brainfuck
08:57:57 <immibis> brainsecks?
08:58:02 <GreaseMonkey> http://greasemonkey.nonlogic.org/
08:58:04 -!- toBogE has joined.
08:58:10 <GreaseMonkey> it's under "Software"
08:58:29 <immibis> !raw QUIT :test
08:58:31 -!- toBogE has quit (Client Quit).
08:58:45 -!- toBogE has joined.
08:58:49 <immibis> working then
08:58:54 <immibis> onRegistered event
08:58:54 <immibis> Calling DoExec on execer Execer_raw (#esoteric,QUIT :test)
08:58:54 <immibis> onDisconnected event - reconnecting
08:58:54 <immibis> onRegistered event
09:00:10 <GreaseMonkey> brainsecks is brainfuck with memory paging, 16 I/O ports, string support, direct typing in of numbers, and random numbers
09:00:19 <GreaseMonkey> it makes brainfuck sexy
09:00:27 <GreaseMonkey> actually...
09:00:29 <GreaseMonkey> just a mo
09:01:21 <immibis> !irp Could someone please repeat the previous request?
09:01:44 -!- toBogE has quit (Nick collision from services.).
09:02:03 -!- toBogE has joined.
09:02:06 <immibis> !irp Could someone please repeat the previous request?
09:02:07 <toBogE> Could someone please repeat the previous request?
09:02:10 <immibis> !irp Could someone please repeat the previous request?
09:02:12 <toBogE> Could someone please repeat the previous request?
09:02:14 <immibis> !irp Could someone please repeat the previous request?
09:02:15 <toBogE> Could someone please repeat the previous request?
09:02:16 <immibis> !irp Could someone please repeat the previous request?
09:02:16 <toBogE> Could someone please repeat the previous request?
09:02:17 <immibis> !irp Could someone please repeat the previous request?
09:02:18 <toBogE> Could someone please repeat the previous request?
09:02:18 <immibis> !irp Could someone please repeat the previous request?
09:02:20 <toBogE> Could someone please repeat the previous request?
09:02:43 <immibis> !irp Could someone please repeat the previous request?
09:02:44 <immibis> !irp Could someone please repeat the previous request?
09:02:44 <toBogE> Could someone please repeat the previous request?
09:02:44 <toBogE> Could someone please repeat the previous request?
09:02:44 <immibis> !irp Could someone please repeat the previous request?
09:02:45 <toBogE> Could someone please repeat the previous request?
09:02:45 <immibis> !irp Could someone please repeat the previous request?
09:02:45 <immibis> !irp Could someone please repeat the previous request?
09:02:48 <toBogE> Could someone please repeat the previous request?
09:02:48 <immibis> !irp Could someone please repeat the previous request?
09:02:50 <immibis> !irp Could someone please repeat the previous request?
09:02:52 <toBogE> Could someone please repeat the previous request?
09:02:53 <immibis> !irp Could someone please repeat the previous request?
09:02:56 <toBogE> Could someone please repeat the previous request?
09:02:57 <immibis> !irp Could someone please repeat the previous request?
09:03:00 <toBogE> Could someone please repeat the previous request?
09:03:01 <immibis> !irp Could someone please repeat the previous request?
09:03:04 <toBogE> Could someone please repeat the previous request?
09:03:08 <toBogE> Could someone please repeat the previous request?
09:03:11 -!- RoboMonkey has joined.
09:03:12 <toBogE> Could someone please repeat the previous request?
09:03:19 <immibis> !bf W.+[.+]
09:03:20 <toBogE> egikmoqsuwy{}
09:03:21 <toBogE> <CTCP>
09:03:23 <toBogE> 13579;=?ACEGIKMOQSUWY[]_acegikmoqsuwy{}
09:03:23 <toBogE>
09:03:25 <toBogE> <CTCP>
09:03:26 <immibis> !bf W.+[.+M256]
09:03:26 <toBogE> cegikmoqsuwy{}
09:03:28 <immibis> help
09:03:28 <toBogE> <CTCP>
09:03:30 <toBogE> /13579;=?ACEGIKMOQSUWY[]_acegikmoqsuwy{}
09:03:31 <immibis> runaway brainfuck
09:03:32 <toBogE>
09:03:34 <toBogE> <CTCP>
09:03:36 <toBogE> acegikmoqsuwy{}
09:03:38 <toBogE> <CTCP>
09:03:40 <toBogE> -/13579;=?ACEGIKMOQSUWY[]_acegikmoqsuwy{}
09:03:42 <toBogE>
09:03:44 <toBogE> <CTCP>
09:03:46 <toBogE> _acegikmoqsuwy{}
09:03:48 <toBogE> <CTCP>
09:03:50 <toBogE> +-/13579;=?ACEGIKMOQSUWY[]_acegikmoqsuwy{}
09:03:52 <toBogE>
09:03:54 <toBogE> <CTCP>
09:03:56 <toBogE> ]_acegikmoqsuwy{}
09:03:58 <toBogE> <CTCP>
09:04:00 <toBogE> )+-/13579;=?ACEGIKMOQSUWY[]_acegikmoqsuwy{}
09:04:02 <toBogE>
09:04:02 <immibis> wait a second, its only printing every second character!
09:04:04 <toBogE> <CTCP>
09:04:06 <toBogE> []_acegikmoqsuwy{}
09:04:08 <toBogE> <CTCP>
09:04:10 <toBogE> ')+-/13579;=?ACEGIKMOQSUWY[]_acegikmoqsuwy{}
09:04:12 <toBogE>
09:04:12 <immibis> help, runaway brainfuck!
09:04:14 <toBogE> Brainfuck program taking too long
09:04:18 <toBogE> egikmoqsuwy{}
09:04:20 <toBogE>
09:04:34 <GreaseMonkey> !bf +>+>++++++++++++++++++++++++++++++++<[>+[>.<+]<+]
09:04:53 <GreaseMonkey> ?listc
09:04:59 <immibis> !bf +>+>++++++++++++++++++++++++++++++++<[>+[>.<+]<+]
09:05:03 <GreaseMonkey> ?delc sekio
09:05:13 <immibis> ?listc
09:05:19 <immibis> ?help
09:05:24 <GreaseMonkey> it shows up only on the console
09:05:25 -!- toBogE has quit (Excess Flood).
09:05:27 <GreaseMonkey> just a mo
09:05:41 <GreaseMonkey> \8ball
09:05:41 <RoboMonkey> Without a doubt.
09:05:45 -!- toBogE has joined.
09:05:54 <immibis> flood without sending anything?
09:05:56 <immibis> !bf +>+>++++++++++++++++++++++++++++++++<[>+[>.<+]<+]
09:06:49 <toBogE> Brainfuck program taking too long
09:07:09 <immibis> !bf ++>++++++++[<[>+<-][++>-<]>]-.
09:07:17 <GreaseMonkey> !bf W+.!A.!C.!T.!I.!O.!N.! .!b.!o.!w.!s.! .!t.!o.! .!R.!o.!b.!o.!M.!o.!n.!k.!e.!y.[-]+.
09:07:39 <toBogE> Brainfuck program taking too long
09:07:40 <GreaseMonkey> ?authc viagra 999
09:07:40 <toBogE> <CTCP>ACTION bows to RoboMonkeyxwvutsrqponmlkjihgfedcba`
09:07:40 <toBogE> _^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-
09:07:41 <toBogE> ,+*)('&%$#"!
09:07:42 <toBogE> <CTCP><CTCP>
09:07:46 <GreaseMonkey> !bf W+.!A.!C.!T.!I.!O.!N.! .!b.!o.!w.!s.! .!t.!o.! .!R.!o.!b.!o.!M.!o.!n.!k.!e.!y.[-]+.
09:07:46 <toBogE> <CTCP>ACTION bows to RoboMonkeyxwvutsrqponmlkjihgfedcba`
09:07:47 <toBogE> _^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-
09:07:48 <toBogE> ,+*)('&%$#"!
09:07:50 <toBogE> <CTCP><CTCP>
09:07:59 <GreaseMonkey> !bf W+.!A.!C.!T.!I.!O.!N.! .!b.!o.!w.!s.! .!t.!o.! .!R.!o.!b.!o.!M.!o.!n.!k.!e.!y.[-]+.-.
09:08:00 <toBogE> <CTCP>ACTION bows to RoboMonkeyxwvutsrqponmlkjihgfedcba`
09:08:01 <toBogE> _^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-
09:08:02 <toBogE> ,+*)('&%$#"!
09:08:02 <immibis> there seems to be a queue of brainfuck programs waiting to be executed for some reason
09:08:03 <toBogE> <CTCP><CTCP>
09:08:10 <immibis> er, what
09:08:14 <GreaseMonkey> no, you're not clearing the queue, i don't think
09:08:21 <GreaseMonkey> well, the send buffer.
09:08:26 <GreaseMonkey> !bf W+.!A.!C.!T.!I.!O.!N.! .!b.!o.!w.!s.! .!t.!o.! .!R.!o.!b.!o.!M.!o.!n.!k.!e.!y.[-]+.+++++++++.
09:08:26 <toBogE> <CTCP>ACTION bows to RoboMonkeyxwvutsrqponmlkjihgfedcba`
09:08:28 <toBogE> _^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-
09:08:29 <toBogE> ,+*)('&%$#"!
09:08:30 <toBogE> <CTCP><CTCP>
09:08:41 <immibis> i mean, maybe there isn't
09:08:47 <GreaseMonkey> !bf W+.!A.!C.!T.!I.!O.!N.! .!b.!o.!w.!s.! .!t.!o.! .!R.!o.!b.!o.!M.!o.!n.!k.!e.!y.>+.+++++++++.
09:08:47 * toBogE bows to RoboMonkey
09:09:00 <GreaseMonkey> your BF parser is ballsed up
09:09:04 <GreaseMonkey> !bf -[-]
09:09:07 <immibis> i meant that for some reason lots of programs were being executed, so i assumed there was some program queue i didn't know about
09:09:08 <immibis> i know
09:09:23 <GreaseMonkey> ?listc
09:09:35 <toBogE> Brainfuck program taking too long
09:09:48 <immibis> !bf W+[+M256>+<]>.
09:09:48 <toBogE>
09:09:56 <immibis> !bf W+[+M255>+<]>.
09:09:57 <toBogE>
09:10:14 <immibis> !bf W+[+M255>+<]>.[-]
09:10:15 <toBogE>
09:10:16 <toBogE>
09:10:17 <toBogE> ~}|{zyxwvutsrqponmlkjihg
09:10:18 <toBogE> fedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:987654
09:10:20 <toBogE> 3210/.-,+*)('&%$#"!
09:10:20 <toBogE> <CTCP>
09:10:24 <immibis> it shouldn't be printing anything
09:10:25 <GreaseMonkey> ?auth immibis 100
09:10:33 <immibis> something is wrong with it
09:10:46 <GreaseMonkey> argh, my bot's not getting any data
09:10:52 <GreaseMonkey> oh wait, it's just lag
09:11:06 -!- toBogE has quit (Read error: 104 (Connection reset by peer)).
09:11:27 -!- toBogE has joined.
09:11:28 <immibis> now entering a debug session
09:11:32 <immibis> !bf W+[+M255>+<]>.[-]
09:12:05 <toBogE> Brainfuck program taking too long
09:12:16 -!- toBogE has quit (Read error: 104 (Connection reset by peer)).
09:12:42 <oerjan> the nice thing about esoteric languages is, if your interpreter has weird bugs, you can just declare it a new language dialect :)
09:12:50 -!- toBogE has joined.
09:12:51 <immibis> hehe
09:13:06 <GreaseMonkey> !addc test x00>"PRIVMSG "%1,$1s0($0[>,]){$0%3[>,]}" :In Soviet Russia, "%2[>,]" "[>,]" YOU!!">x0A>x00<[<]%0>[.>]
09:13:06 <toBogE> Caught a java.lang.ClassNotFoundException! toboge.Execer_addc
09:13:15 <GreaseMonkey> !test eats sushi
09:13:16 <toBogE> Caught a java.lang.ClassNotFoundException! toboge.Execer_test
09:13:20 <GreaseMonkey> \test eat sushi
09:13:30 <GreaseMonkey> ?addc test x00>"PRIVMSG "%1,$1s0($0[>,]){$0%3[>,]}" :In Soviet Russia, "%2[>,]" "[>,]" YOU!!">x0A>x00<[<]%0>[.>]
09:13:31 <GreaseMonkey> \test eat sushi
09:13:46 <GreaseMonkey> wtf?
09:13:50 <immibis> what
09:13:57 <GreaseMonkey> ?addc test x00>"PRIVMSG "%1[>,]" :In Soviet Russia, "%2[>,]" "[>,]" YOU!!">x0A>x00<[<]%0>[.>]
09:13:59 <immibis> wtf what?
09:14:03 <GreaseMonkey> ?addc test 0 x00>"PRIVMSG "%1,$1s0($0[>,]){$0%3[>,]}" :In Soviet Russia, "%2[>,]" "[>,]" YOU!!">x0A>x00<[<]%0>[.>]
09:14:05 <GreaseMonkey> ah
09:14:05 <immibis> !bf W+[+M255>+<]>.[-]
09:14:07 <GreaseMonkey> \test eat sushi
09:14:19 <GreaseMonkey> ?addc 0 test x00>"PRIVMSG "%1,$1s0($0[>,]){$0%3[>,]}" :In Soviet Russia, "%2[>,]" "[>,]" YOU!!">x0A>x00<[<]%0>[.>]
09:14:23 <GreaseMonkey> ?delc 0
09:14:35 <GreaseMonkey> ?addc test 0 x00>"PRIVMSG "%1[>,]" :In Soviet Russia, "%2[>,]" "[>,]" YOU!!">x0A>x00<[<]%0>[.>]
09:14:37 <GreaseMonkey> \test eat sushi
09:14:37 <oerjan> In Soviet Russia, bug fixes YOU!
09:14:37 <RoboMonkey> In Soviet Russia, eat sushi YOU!!
09:14:45 <GreaseMonkey> oops
09:14:51 <GreaseMonkey> ?delc test
09:16:28 -!- toBogE has quit (Read error: 104 (Connection reset by peer)).
09:16:42 <immibis> probably something wrong with finding the matching [] pair
09:17:28 <immibis> an off-by-two error i think
09:17:38 -!- toBogE has joined.
09:17:39 <GreaseMonkey> ?addc test 0 x00>"PRIVMSG "%1[>,]" :In Soviet Russia, ">x00<[<]%0>[.>]+%2[>,]" ">>+[>,]<[<]>>%0[.>]<[<]<[<]>>[.>]>" YOU!!">x0A>x00<[<]>[.>]
09:17:42 <GreaseMonkey> \test eat sushi
09:17:42 <RoboMonkey> In Soviet Russia, RIVMSG #esoteric :In Soviet Russia, <CTCP>eat utsushiPRIVMSG #esoteric :In Soviet Russia, <CTCP>eat utsushi YOU!!
09:17:47 <GreaseMonkey> oopage
09:17:56 <GreaseMonkey> ?addc test 0 x00>"PRIVMSG "%1[>,]" :In Soviet Russia, ">x00<[<]%0>[.>]+%2[>,]" ">>+[>,]<[<]>>%0[.>]<[<]<[<]>>[.>]>x00>" YOU!!">x0A>x00<[<]>[.>]
09:17:57 <GreaseMonkey> \test eat sushi
09:17:58 <RoboMonkey> In Soviet Russia, RIVMSG #esoteric :In Soviet Russia, <CTCP>eat uusushiPRIVMSG #esoteric :In Soviet Russia, <CTCP>eat uusushi YOU!!
09:18:23 <GreaseMonkey> ?addc test 0 x00>"PRIVMSG "%1[>,]" :In Soviet Russia, ">x00<[<]%0>x00>[.>]+%2[>,]" ">+[>,]<[<]>>%0[.>]<[<]<[<]>>[.>]>x00>" YOU!!">x0A>x00<[<]>[.>]
09:18:25 <GreaseMonkey> \test eat sushi
09:18:27 <immibis> \test purple
09:18:42 <GreaseMonkey> ?delc test
09:20:00 <immibis> ?addc test 0 x00>"PRIVMSG %1[>,]" :In Soviet Russia, ">x00<[<]%0>x00>[.>]+%2[>,]" ">+[>,]<[<]<<%0[.>]<[<]<[<]>>[.>]>x00>" YOU!!">x0A>x00<[<]>[.>]
09:20:06 <immibis> what sort of regex is that, anyway?
09:20:08 <GreaseMonkey> hold on
09:20:14 <immibis> \test black and green
09:20:21 <GreaseMonkey> ?addc test 0 x00>"PRIVMSG "%1[>,]" :In Soviet Russia, ">x00<[<]%0>[.>]>+%2[,>]>+[,>]<[<]>>%0[.>]<[<]<[<]>[.>]>" YOU!!">x0A>x00<[<]>[.>]
09:20:24 <GreaseMonkey> \test eat sushi
09:20:25 <RoboMonkey> In Soviet Russia, ">x00 YOU!!
09:20:34 -!- toBogE has quit (Read error: 104 (Connection reset by peer)).
09:20:47 <GreaseMonkey> just a mo
09:20:49 <immibis> \test turn green
09:20:49 <RoboMonkey> In Soviet Russia, ren YOU!!
09:20:50 <GreaseMonkey> ?delc test
09:20:53 -!- toBogE has joined.
09:21:43 <immibis> !bf W!W.!h.!a.!t.! .!s.!o.!r.!t.! .!o.!f.! .!r.!e.!g.!e.!x.! .!i.!s.! .!t.!h.!a.!t.!?.
09:21:44 <toBogE> What sort of regex is that?
09:21:53 <immibis> !bf W+[+M255>+<]>.[-]
09:21:53 <toBogE>
09:22:01 <immibis> !bf W+[+M255>+<]>.[-]+.ACTION
09:22:01 <toBogE> Unrecognized Brainfuck instruction: A
09:22:04 <immibis> !bf W+[+M255>+<]>.[-]+.
09:22:04 <toBogE> <CTCP>
09:22:12 <GreaseMonkey> it's Brainsecks
09:22:18 <GreaseMonkey> and it gets from I/O
09:22:35 <immibis> !bf W+.!A.!C.!T.!I.!O.!N.! .!i.!s.! .!a.!n.! .!i.!d.!i.!o.!t.[-]+.
09:22:35 * toBogE is an idiot
09:22:48 <immibis> !raw NICK TOGAbot
09:22:50 -!- toBogE has changed nick to TOGAbot.
09:23:10 <immibis> !raw NICK Brainshit
09:23:15 -!- TOGAbot has changed nick to Brainshit.
09:23:17 <GreaseMonkey> !raw JOIN #uncyclopedia
09:23:24 <GreaseMonkey> !raw PRIVMSG #uncyclopedia :rofllol
09:23:31 <immibis> !raw PRIVMSG #esoteric a play on brainfuck
09:23:31 <Brainshit> a
09:23:43 <immibis> !raw PRIVMSG #esoteric :a play on brainfuck
09:24:32 -!- Brainshit has quit (Excess Flood).
09:25:00 <GreaseMonkey> ...maybe a send throttler
09:25:03 <GreaseMonkey> will do
09:25:12 <immibis> one message per second
09:25:42 <GreaseMonkey> i generally just truncate it
09:26:13 <immibis> !bf +[.+]
09:26:36 <GreaseMonkey> what's your bot coded in?
09:26:41 <GreaseMonkey> mine's in C
09:26:45 <immibis> java
09:26:50 <GreaseMonkey> though the functions are in Brainsecks
09:26:52 <immibis> using irclib
09:27:00 -!- toBogE has joined.
09:27:28 <GreaseMonkey> ?addc test 0 x00>"PRIVMSG "%1[>,]" :In Soviet Russia, ">x00>x0A<[<]%0>[.>]
09:27:30 <GreaseMonkey> \test
09:27:42 <GreaseMonkey> argh, that's baaaaaaaad
09:28:06 <immibis> !bf W+[[-]+.!V.!E.!R.!S.!I.!O.!N.[-]+.]
09:28:06 <toBogE> <CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSI
09:28:07 <toBogE> ON<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VE
09:28:08 <toBogE> RSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP>
09:28:09 <toBogE> <CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSI
09:28:10 <toBogE> ON<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VE
09:28:11 <toBogE> RSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP>
09:28:12 <toBogE> <CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSI
09:28:13 <toBogE> ON<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VE
09:28:13 <GreaseMonkey> $BSX:Running program [test]
09:28:14 <immibis> ops
09:28:14 <GreaseMonkey> >OUT:
09:28:14 <toBogE> RSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP>
09:28:15 <immibis> ok
09:28:16 <toBogE> <CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSI
09:28:17 <toBogE> ON<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VE
09:28:19 <toBogE> RSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP>
09:28:21 <toBogE> <CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSI
09:28:23 <toBogE> ON<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VE
09:28:25 <toBogE> RSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP>
09:28:27 <toBogE> <CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSI
09:28:29 <toBogE> ON<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VE
09:28:31 <toBogE> RSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP>
09:28:33 <toBogE> <CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSI
09:28:35 <toBogE> ON<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VE
09:28:37 <toBogE> RSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP>
09:28:39 <toBogE> <CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSI
09:28:41 <toBogE> ON<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VE
09:28:42 <immibis> hurry up and reach the time limit
09:28:43 <toBogE> RSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP>
09:28:45 <toBogE> <CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSI
09:28:47 <toBogE> ON<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VE
09:28:49 <toBogE> RSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP>
09:28:51 <toBogE> <CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSI
09:28:53 <toBogE> ON<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VE
09:28:55 <toBogE> RSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP>
09:28:56 <GreaseMonkey> ?addc test 0 x00>"PRIVMSG "%1[>,]" :In Soviet Russia, ">x0A>x00<[<]%0>[.>]
09:28:56 -!- toBogE has quit (Excess Flood).
09:29:01 <GreaseMonkey> \test
09:29:02 <RoboMonkey> In Soviet Russia,
09:29:05 <GreaseMonkey> found that bug
09:29:08 <GreaseMonkey> now to continue
09:29:09 <immibis> \test i am a known retard
09:29:09 <RoboMonkey> In Soviet Russia,
09:29:26 <immibis> [20:27] <RoboMonkey> In Soviet Russia, i am a known retard
09:29:54 -!- toBogE has joined.
09:30:15 <immibis> !bf W+.!V.!E.!R.!S.!I.!O.!N.[-]+.
09:30:18 <immibis> !bf W+.!V.!E.!R.!S.!I.!O.!N.[-]+.
09:30:19 <immibis> !bf W+.!V.!E.!R.!S.!I.!O.!N.[-]+.
09:30:19 <immibis> !bf W+.!V.!E.!R.!S.!I.!O.!N.[-]+.
09:30:20 <immibis> !bf W+.!V.!E.!R.!S.!I.!O.!N.[-]+.
09:30:22 <immibis> !bf W+.!V.!E.!R.!S.!I.!O.!N.[-]+.
09:30:26 <immibis> !bf W+.!V.!E.!R.!S.!I.!O.!N.[-]+.
09:30:42 <immibis> !bf W+.!P.!I.!N.!G.! .!2.!1.[-]+.
09:30:51 <immibis> !raw NICK EgoBot
09:30:53 -!- toBogE has changed nick to EgoBot.
09:30:59 <immibis> there are 5 bots in this channel
09:31:13 <GreaseMonkey> ?addc test 0 x00>"PRIVMSG "%1[>,]" :In Soviet Russia, ">x00<[<]%0>[.>]>%2,[>,]>,[>,]" ">x00<[<]%0>[.>]<[<]<[<]>[.>]>" YOU!!">x0A>x00<[<]>[.>]
09:31:17 <GreaseMonkey> \test eat sushi
09:31:17 <immibis> bsmnt_bot egobot cmeme clog robomonkey
09:31:17 <RoboMonkey> In Soviet Russia, sushi eat YOU!!
09:31:24 <immibis> \test sushi eat
09:31:24 <RoboMonkey> In Soviet Russia, eat sushi YOU!!
09:31:30 <immibis> \test retard me
09:31:31 <RoboMonkey> In Soviet Russia, me retard YOU!!
09:31:42 <immibis> \test is retard
09:31:43 <RoboMonkey> In Soviet Russia, retard is YOU!!
09:31:46 <immibis> \test is dumb
09:31:49 <RoboMonkey> In Soviet Russia, dumb is YOU!!
09:32:00 <GreaseMonkey> ?delc test
09:32:04 <GreaseMonkey> ?addc soviet 0 x00>"PRIVMSG "%1[>,]" :In Soviet Russia, ">x00<[<]%0>[.>]>%2,[>,]>,[>,]" ">x00<[<]%0>[.>]<[<]<[<]>[.>]>" YOU!!">x0A>x00<[<]>[.>]
09:32:14 <GreaseMonkey> ?listc
09:32:25 <GreaseMonkey> ?uncyc russian reversal
09:32:31 <GreaseMonkey> \uncyc russian reversal
09:32:32 <RoboMonkey> http://uncyclopedia.org/wiki/Russian_reversal
09:32:36 <immibis> !magritte Ceci n'est pas un programme.
09:32:36 <EgoBot> Paradoxical error. "Ceci n'est pas un programme" is French for "This is not a program"
09:32:39 <GreaseMonkey> ^ look at that
09:32:49 <GreaseMonkey> wtf is magritte
09:33:00 <immibis> http://esolangs.org/wiki/Magritte
09:33:06 <immibis> a joke esoteric language
09:33:18 <GreaseMonkey> ah
09:33:40 <immibis> "Ceci n'est pas un programme." is the only valid program, and it is frenth for "This is not a program".
09:35:07 <immibis> weird
09:35:23 <immibis> In America, you Google Tiananmen Square; in Communist China, Tiananmen Square Googles YOU!!
09:35:33 <GreaseMonkey> hehe
09:35:38 <immibis> in Communist China, computer monitors YOU!!
09:35:44 <immibis> In America, you abort baby; in Communist China, baby aborts YOU!!
09:36:00 <immibis> "In Mozilla, you keep tabs in browser." becomes "In Soviet Russia, browser keep tabs on YOU!!"
09:36:08 <immibis> "In America you watch Big Brother." becomes "In Soviet Russia, Big Brother watches YOU!!
09:36:15 <immibis> "In America, you have scarecrows." becomes "In Soviet Russia, crow scares YOU!!"
09:36:27 <immibis> In Soviet Russia, toilet urinates on YOU!!
09:37:29 <immibis> !raw PRIVMSG #esoteric :In Soviet Russia, car fits inside YOU!!
09:37:30 <EgoBot> In Soviet Russia, car fits inside YOU!!
09:37:42 <immibis> !raw PRIVMSG #esoteric :In Soviet Russia, sentences reverse YOU!!
09:37:42 <EgoBot> In Soviet Russia, sentences reverse YOU!!
09:38:19 <oerjan> In Soviet Russia, joke tires YOU!!
09:38:50 <immibis> http://uncyclopedia.org/wiki/Image:JapaneseToiletBidet.jpg "In Soviet Russia, toilet urinates on YOU!!"
09:38:59 <immibis> oerjan: so you tire jokes?
09:39:11 <immibis> In Soviet Russia, Soviet Russia hates YOU!!
09:40:17 <GreaseMonkey> ?addc cat 1 x00>"PRIVMSG ">%1,$1"#"s0($0%3,[>,]+){$0[>,]+}" :"%0[>,]x0A>x00<[<]%0>[.>]
09:40:22 <GreaseMonkey> \cat i maed a yuky doody
09:40:22 <RoboMonkey> i maed a yuky doody
09:41:11 <immibis> !raw PRIVMSG #esoteric :In Soviet Russia, now goes YOU!! In Soviet Russia, your planet is needed by YOU!! In Soviet Russia, Jupiter sees anus of YOU!!
09:41:11 <EgoBot> In Soviet Russia, now goes YOU!! In Soviet Russia, your planet is needed by YOU!! In Soviet Russia, Jupiter sees anus of YOU!!
09:41:32 <immibis> !raw QUIT :I AM AN IDIOT AN IDIOT AN IDIOT. I AM AN IDIOT WHO LIVES ON CHERRY LANE!
09:41:32 -!- EgoBot has quit ("I AM AN IDIOT AN IDIOT AN IDIOT. I AM AN IDIOT WHO LIVES ON CHERRY LANE!").
09:41:36 -!- immibis has quit ("Hard work pays off in the future, laziness pays off now").
09:41:43 -!- toBogE has joined.
09:42:36 <GreaseMonkey> ?addc fail 1 x00>"PRIVMSG ">%1[>,]" :">x01>"ACTION declares that "%2[>,]" fails at life.">x01>x0A>x00<[<]%0>[.>]
09:42:38 <GreaseMonkey> \fail test
09:42:50 <GreaseMonkey> ?addc fail 1 x00>"PRIVMSG "%1[>,]" :">x01>"ACTION declares that "%2[>,]" fails at life.">x01>x0A>x00<[<]%0>[.>]
09:42:55 <GreaseMonkey> \fail test
09:42:55 * RoboMonkey declares that test fails at life.
09:43:06 <GreaseMonkey> ?raw JOIN #uncyclopedia
09:43:28 <GreaseMonkey> ?auth WORLDOFWARCRAFTR -1
09:43:58 -!- toBogE has quit (Read error: 104 (Connection reset by peer)).
10:05:17 <GreaseMonkey> ?listauth
10:05:31 <GreaseMonkey> ?delauth WORLDOFWARCRAFTR
10:05:47 <GreaseMonkey> ?authdel WORLDOFWARCRAFTR
10:06:05 <GreaseMonkey> ?unauth WORLDOFWARCRAFTR
10:06:08 <GreaseMonkey> ?unauth IRLOL
10:07:09 <GreaseMonkey> hmm... it's gone quiet
10:10:04 <Sukoshi> Uggh. Stop the spam.
12:36:24 -!- clog has joined.
12:36:24 -!- clog has joined.
13:08:04 <oklopol> seems i was away a bit longer than 2 hours.
13:20:33 <oklopol> over 15
13:43:31 -!- tokigun has joined.
13:49:42 <oklopol> by the way, the hard to brute force sudoku was solved suring the night, 622 577 598
13:49:46 <oklopol> steps
13:53:16 <oklopol> *during
14:07:22 -!- RodgerTheGreat has joined.
14:07:36 <RodgerTheGreat> howdy guys
14:18:35 <oklopol> how how
14:19:11 <oklopol> the shop seems to be my destiny ->
14:20:14 -!- sekhmet has joined.
14:20:38 -!- jix_ has joined.
14:21:40 <RodgerTheGreat> oklopol: what?
14:30:36 -!- ihope__ has joined.
14:31:02 -!- ihope__ has changed nick to ihope.
14:38:00 <oklopol> i went to the shop
14:38:03 <oklopol> to buy stuff
14:38:15 <RodgerTheGreat> ok
14:38:21 <RodgerTheGreat> what stuff did you purchase?
14:38:23 <oklopol> ihope: in \.[0-9] the slash is because [] is regex.
14:38:48 <ihope> Ah, so it's just there to escape the .?
14:39:22 <oklopol> i bought ½l ed (finnish energy drink), 2l cold hot chocolade or whatever that might be in english, 2l orange juice and 6 small fake steaks.
14:39:26 <oklopol> ihope: ya
14:39:57 <oklopol> i guess i forgot to specify unmatching comment brackets
14:40:01 <oklopol> i'll check
14:40:19 <oklopol> i did
14:40:21 <oklopol> damn
14:40:30 <RodgerTheGreat> fake steaks? Like, soybean based or somesuch?
14:40:59 <oklopol> anyway, the end of the program ends any number of open comments, the beginning starts any number of comments closed before being opened
14:41:21 <oklopol> RodgerTheGreat: cheap ones
14:41:29 <oklopol> meshed meat or smth
14:41:34 <oklopol> whaddyacallit
14:42:00 <RodgerTheGreat> ah
14:42:07 <ihope> So in "look, I'm the beginning of the program! --> fooled you", it's a comment right up to "fooled you"?
14:42:17 <oklopol> yes
14:42:46 <oklopol> i should've just explained comments while i explained other brackets, but nooo
14:43:22 <RodgerTheGreat> I think this type of thing is pure genius: http://nonlogic.org/dump/text/1183038107.html
14:44:44 <oklopol> omitting those lines will definately make it faster
14:44:51 <oklopol> *definitely
14:44:59 <RodgerTheGreat> har har
14:46:11 <ihope> Why aren't the spaces consistent? Grr...
14:48:27 <oklopol> whut?
14:48:31 <oklopol> ah
14:48:53 <oklopol> that's kinda a turn off
14:49:42 <RodgerTheGreat> ihope: sorry
14:49:47 <RodgerTheGreat> quick copy pasta
14:51:14 <ihope> Yay, copy pasta!
14:51:58 <ihope> oklopol: hmm, did I just erase oklotalkspec?
14:52:18 <RodgerTheGreat> copy pasta can be quite delicious if you prepare it properly
14:52:44 * ihope does this: http://www.undefined.net/1/0/?strip=100
14:54:07 <oklopol> ihope: it should be there now if it wasn't a second ago
14:55:31 <oklopol> i'm gonna make a password system in the bin, i'm just pretty lazy
14:56:06 <ihope> At least ask for confirmation or something :-)
14:56:39 <ihope> Or maybe do as wikis do, and include a history thing.
14:57:32 <ihope> Maybe you could make the user add ?type=save or some such to the end of the URL manually if they want to do any saving.
14:57:37 <oklopol> i could make it save every copy of it
14:57:44 <oklopol> AND have a password system
14:58:17 <oklopol> AND your thing
14:58:25 <ihope> Anyway, do comment markers inside strings still do their thing?
14:58:27 <oklopol> i'll make so many things it's more like a thingbin
14:58:48 <oklopol> ihope: that i haven't thought about :|
14:59:01 <oklopol> i haven't done much with strings
14:59:02 <oklopol> hmm
14:59:25 <oklopol> i'd say they don't do their thing, which would mean comments can't be preparsed
14:59:45 <ihope> You can parse both strings and comments at the same time.
15:00:16 <oklopol> yeah, but then why not tokenize fully while you're at it
15:00:33 <ihope> That adds work, surely.
15:00:44 <oklopol> nesting can't be done while tokenizing in oklotalk, though
15:00:44 <oklopol> hmm
15:00:48 <oklopol> of course it can
15:00:57 <oklopol> but it would be stupid
15:01:16 <oklopol> because there are so many weird syntax thingies
15:01:22 <oklopol> i forgot stuff in the spec :<
15:01:26 <oklopol> i should add it...
15:01:42 <ihope> " begins a string, and parsing of string symbols is continued up until the next ". <-- begins a comment, and parsing of non-comment-markers is continued until your comment markers are sufficient to close the comment.
15:01:46 <oklopol> haskell $, that's all i forgot
15:02:31 <oklopol> yeah, thazz good
15:02:49 <oklopol> hmm
15:02:52 <ihope> What if a program begins with "-->
15:02:56 <oklopol> <-- "-->" --> :P
15:03:24 <ihope> Oof.
15:03:31 <oklopol> the beginning of the program is considered any number of opening brackets
15:03:37 <ihope> And what should that do?
15:03:47 <ihope> ...Both of them.
15:04:13 <oklopol> ihope: i'm not a comment kinda guy, it seems i haven't thought them through
15:04:24 <ihope> Oh, maybe I'll just write the parser the way I think it should be written. >:-)
15:04:36 <oklopol> i'd say tokenizing is not done in a comment, so <-- "-->" --> == " -->
15:05:27 <oklopol> i first thought i'd make comments a tokenized string kinda, but i got lazy
15:05:33 <oklopol> and it would rarely be needed
15:07:41 <oklopol> i'll write it today if you don't, if you get the haskell parser done, i'll prolly just translate it into python and we'll jsut say you wrote it, i don't believe in my haskell skills enough to make the interpreter with it
15:34:27 <ihope> I'll find a way.
15:36:02 <ihope> Continuation passing style is one way to do it.
15:36:22 <oklopol> find a way for what?
15:36:38 <ihope> Handling the --> before <-- thing.
15:36:51 <ihope> Which is also pretty much all the bracket stuff.
15:37:14 <oklopol> that's the only non trivial thing about the parsing, yeah
15:37:19 <ihope> Or I could say "if necessary, pretend there's a <-- here", which... is not a bad idea.
15:37:31 <ihope> It might slow things down a bit, though.
15:37:57 <oklopol> you might fail the parsing if there is a --> and reparse with a starting --> perhaps
15:38:00 <oklopol> well
15:38:04 <oklopol> the comments are easy
15:38:21 <ihope> Fail on -->, reparse starting with <--, yeah.
15:38:21 <oklopol> because it can only be cut from beginning to the bracket
15:38:27 <oklopol> that's just a substring
15:39:53 <oklopol> the brackets are easy as well, if you do tokenizing separately
15:45:19 -!- pikhq_ has joined.
16:08:58 -!- pikhq has quit (Read error: 110 (Connection timed out)).
16:18:50 -!- jix__ has joined.
16:27:22 -!- jix_ has quit (Read error: 110 (Connection timed out)).
16:40:19 <ihope> Wait a minute.
16:40:31 <ihope> There's no need to do this fancy stuff before tokenizing, really.
16:41:27 <oklopol> what fancy?
16:42:19 <oklopol> there's no need to tokenize before knowing whether the code tokenized is actually going to be used
16:44:05 <oklopol> how do deaf people wake themselves up in the morning?
16:44:20 <oklopol> are there kinetic alarm clock or smth?
16:44:25 <oklopol> "kinetic"
16:44:39 <oklopol> anyway, perhaps a programmable vibrator
16:44:58 <ihope> Cell phone?
16:45:18 <oklopol> touche
16:45:29 <ihope> Though I guess a deaf person wouldn't have much other use for a cell phone...
16:45:33 <oklopol> that already *is* my alarm clock.
16:45:34 <ihope> Well, it depends, really.
16:50:49 -!- pikhq_ has quit (Read error: 110 (Connection timed out)).
16:56:49 -!- sebbu has joined.
16:58:41 -!- lament has quit (heinlein.freenode.net irc.freenode.net).
17:00:41 -!- lament has joined.
17:03:00 -!- jix__ has quit (Connection reset by peer).
17:03:29 -!- jix__ has joined.
17:43:54 -!- oerjan has joined.
17:44:53 <lament> so
17:44:58 <lament> should i study differential equations
17:45:04 <lament> or the fossil record?
17:45:14 <oerjan> decisions, decisions
17:45:28 <lament> i'd much rather take the fossil record
17:45:32 <lament> but it's at 10, the other one is at 11
17:47:20 <oerjan> but if you take differential equations, you might feel as tired during class as if it were still 10
17:47:39 <oerjan> out of boredom
17:49:38 <oerjan> otoh if it is so boring you fall asleep you may get 2 extra hours sleep total
17:50:49 <oerjan> the obvious solution is to do a project to analyze the fossil record with differential equations.
17:51:21 <lament> :|
17:51:28 <lament> another choice is quantum physics at 11
17:51:44 <lament> but then the homework will likely kill me
17:52:42 <lament> ohhh! then i can also take spanish at 11!
17:53:08 <oklopol> i'd say differential equations since fossil record sound boring
17:53:16 <oklopol> *records
17:53:30 <oerjan> also, most of the important quantum physics stuff _is_ differential equations
17:53:48 <oklopol> then quantum physics
17:53:51 <lament> "Survey of Peninsular Literature and Culture from 1700 to the Present"
17:53:59 <lament> oerjan: yes, with which i'm not really familiar.
17:54:45 <oklopol> i wish i could take interesting classes
18:08:28 <lament> so my schedule is like this:
18:09:22 <lament> earth and life through time - peninsular literature - mathematical demonstrations - machine learning and data mining - intermediate algorithm design and analysis
18:09:35 <lament> if spanish is too hard, i'll drop it.
18:10:05 <lament> if i survive through this, i'll be quite happy with myself.
18:10:15 <lament> challenging, but they all seem to be good courses.
18:10:57 <oklopol> spanish is pretty eazy
18:13:47 <oklopol> hmm... i guess a ball made out of adhesive tape as a pillow, floor for a bed and 5 hours of sleep don't provide enough restoration... a few minutes of sleep might be in order
18:14:36 <oerjan> a pillow that sticks to you? eww.
18:16:22 <oklopol> nonononono the non adhesive side was against mt head!
18:16:24 <oklopol> *my
18:17:02 <oerjan> but what if it started unraveling?
18:17:05 <oklopol> there's also a bit of hay inside it
18:17:07 <oklopol> i won't
18:17:11 <oklopol> because of the hay!
18:17:15 <oklopol> *it
18:17:19 <oklopol> i'm not the ball
18:18:35 <oklopol> okay, i'll sleep 45 min now, or perhaps the whole night
18:18:48 <oklopol> hopefully 45
18:18:49 <oklopol> ------->
18:23:57 <lament> oklopol: "spanish" is easy
18:24:17 <lament> oklopol: a course in spanish literature, perhaps not as easy
18:29:05 <bsmntbombdood> oklopol is one weird kid
18:30:41 -!- jix__ has changed nick to jix.
19:00:08 -!- boily has joined.
19:25:01 -!- c|p has joined.
19:36:30 -!- boily has quit (Read error: 110 (Connection timed out)).
20:25:55 -!- RedDak has joined.
22:11:53 -!- jix has quit ("CommandQ").
23:10:39 -!- sebbu has quit ("@+").
23:21:00 -!- oerjan has quit ("Good night").
23:25:36 -!- RedDak has quit (Remote closed the connection).
23:52:41 -!- kwertii has quit.
23:52:59 -!- kwertii has joined.
2007-06-29
00:10:13 -!- c|p has quit (Read error: 104 (Connection reset by peer)).
01:02:03 -!- Sgeo has joined.
01:45:52 <oklopol> lament: you said spanish, so i thought it was about the lang
01:46:05 <oklopol> my sleep cycles are pretty steady i'd say
01:46:18 <oklopol> usually i got to sleep between 4am..5am
01:46:26 <oklopol> now i wake up at 3am
01:46:27 <oklopol> xD
01:46:44 <lament> oklopol: "english" courses tend to not be about the language either
01:47:10 <oklopol> lament: i'm not saying you said anything wrong, just explaing my stupidity
01:58:43 <bsmntbombdood> how can you go to sleep at 4am and get up at 3am?
01:59:46 <oklopol> i usually go to sleep at 4am, today i went to sleep at 9pm
01:59:53 <oklopol> i hate the xm system
02:02:19 <bsmntbombdood> use 24 hours then
02:02:19 <oklopol> hmm... gotta figure out something to say that involves time
02:02:19 <oklopol> so i can use it
02:02:59 <lament> "Yesterday I went to sleep at 234"
02:03:16 <lament> make that 234:823
02:03:22 <lament> am
02:03:58 <bsmntbombdood> what?
02:04:23 <oklopol> do i take mod 24 to get that to be a real time?
02:05:08 -!- SimonRC_ has joined.
02:06:23 -!- SimonRC has quit (Connection reset by peer).
02:17:26 <oklopol> "i know many of you are already on my side... and for you nay sayers out there i've got 2 strong words... come on"
02:17:55 <oklopol> i need a food.
02:18:43 <lament> me too is in need of one
02:19:19 <oklopol> i wish i had food here
02:19:28 <oklopol> the stores aren't open when i'm awake :<
02:19:57 <lament> they are
02:20:02 <lament> just not at your part of the world
02:20:46 <oklopol> durn.
02:20:59 <lament> just move
02:21:16 <lament> it might be easier than changing your sleep pattern
02:21:29 <oklopol> are there places where stores are open when the sun is down?
02:21:43 <oklopol> i don't care for sun that much
02:21:53 <lament> yes, they're called cities, but not many stores are open 24 hours
02:22:50 <oklopol> we have restaurants that are open 24/7
02:22:57 <oklopol> but no shops :<
02:23:05 <bsmntbombdood> oklopol: buy your foods during they day, and keep a cache
02:23:22 <oklopol> and i live 3-4 km from the nearest such restaurant
02:23:48 <lament> oklopol: the sun is nice. Your pineal gland gets unhappy without it.
02:24:52 <oklopol> why should i care?
02:25:40 <oklopol> that was an actual question, i don't know what it does
02:26:19 <lament> look up seasonal affective disorder
02:29:09 <oklopol> that don't sound like a bad.
02:31:25 <bsmntbombdood> i'm skeptical about SAD
02:41:58 <lament> i'm not.
02:56:07 -!- immibis has joined.
02:56:16 <immibis> ihope, are you there?
03:06:45 <ihope> Ello.
03:07:39 <bsmntbombdood> poppet
03:09:21 <ihope> immibis, are *you* there?
03:09:38 <immibis> i am now
03:10:06 <ihope> I take it you wanted me for something.
03:10:09 * immibis sets icechat to flash
03:10:10 <immibis> ops
03:10:11 <immibis> oops
03:10:21 <immibis> yes, i found something wrong with the interpreter
03:10:35 <ihope> I see.
03:10:36 <immibis> it reads the program from standard input until it reaches end-of-file. that much works.
03:11:01 <immibis> then if the foobar program needs input, that gets read from standard input as well, after the end-of-file
03:11:27 <immibis> so if you wanted to make any sort of cat program you wouldn't be able to
03:11:53 <ihope> Foobar philosophy: if a flaw isn't fatal, it's acceptable.
03:11:55 <ihope> :-)
03:12:35 <immibis> i have changed it so that you can run foobar* Im_a_file.EXT < PROGRAM_INPUT
03:13:10 <immibis> i will just compile the changes now and email it to you
03:13:14 <immibis> if you don't mind
03:13:28 <immibis> unless you find it acceptable of course :)
03:14:06 <immibis> Who here agrees Brainfuck is the most universally accepted esoteric programming language?
03:14:12 <immibis> *in the world*
03:15:04 <bsmntbombdood> yeah
03:15:43 <oklopol> your mother is the most universally accepted esoteric language
03:16:09 * immibis agrees with immibis's question
03:17:59 <immibis> oklopol: as is yours
03:19:06 <oklopol> yes, but i'm still hungry
03:23:58 <immibis> Delivery to the following recipients failed.
03:23:58 <immibis> ihope127@hotmail.com
03:24:14 <immibis> ihope, do you actually have a working email address?
03:24:16 <immibis> or not?
03:30:00 <ihope> Yes, I do.
03:30:09 <ihope> Did I tell you ihope127@hotmail?
03:30:17 <ihope> It's gmail, not hotmail.
03:30:21 <immibis> ok
03:30:36 <immibis> i think i did that last time too
03:31:29 <Sgeo> s/universally/globally/
03:31:37 <Sgeo> >.>
03:31:56 <immibis> yes
03:32:20 <immibis> esoteric_languages.accepted.universally.likens=alien_language;
03:32:33 <oklopol> universal is okay too, though means a different thing
03:32:42 <immibis> Delivery to the following recipients failed.
03:32:42 <immibis> ihope127@gmail.com
03:36:25 <ihope> That's a 1, not an l, right?
03:36:37 <immibis> it's a 1
03:36:42 <immibis> (one)
03:37:05 -!- GreaseMonkey has joined.
03:37:17 <ihope> Well then, unless that address contains a non-ASCII character or something, it's correct.
03:40:29 <ihope> Yes, it's correct.
03:41:31 -!- toBogE has joined.
03:42:22 <ihope> Does it have details on why it failed?
03:42:26 <immibis> no
03:42:33 <immibis> well yes
03:42:46 <immibis> i didn't look though because i didn't notice until you asked
03:42:58 <ihope> What's it say, then?
03:43:33 * immibis is opening the file
03:43:45 <immibis> Reporting-MTA: dns;bay0-omc3-s7.bay0.hotmail.com
03:43:45 <immibis> Received-From-MTA: dns;BAY111-W10
03:43:45 <immibis> Arrival-Date: Thu, 28 Jun 2007 19:30:24 -0700
03:43:45 <immibis> Final-Recipient: rfc822;ihope127@gmail.com
03:43:45 <immibis> Action: failed
03:43:46 <immibis> Status: 5.7.0
03:43:48 <immibis> Diagnostic-Code: smtp;552 5.7.0 Illegal Attachment e16si1278481qba
03:43:52 <immibis> so a bad attachment it seems
03:44:07 <immibis> maybe gmail didn't like it
03:44:52 <ihope> Huh.
03:45:07 <ihope> Where does that seem to have come from?
03:45:11 <ihope> ...that email?
03:45:17 <immibis> postmaster@mail.hotmail.com
03:45:27 <immibis> its an automatic message
03:45:57 <immibis> !regex some-regex USE THE REGEX LUKE. replace Ok, my lord.
03:46:02 <immibis> USE THE REGEX LUKE.
03:46:02 <toBogE> Ok, my lord.
03:46:09 <immibis> !delregex some-regex
03:46:11 <toBogE> Caught a java.lang.IndexOutOfBoundsException! Index: 0, Size: 0
03:46:38 <ihope> Hmm, I thoguht for a moment that toBogE said "Oh my lord".
03:46:39 <immibis> USE THE REGEX LUKE.
03:46:44 <immibis> hehe
03:47:41 <immibis> !raw JOIN #bots
03:48:27 <toBogE> I AM A BOT YOU FOOLS! HA HA HA!
03:49:04 <immibis> we know
03:49:04 <toBogE> 1
03:49:13 <ihope> PARSE ERROR: did you mean "I AM A BOT YOU FOOL"?
03:49:13 <toBogE> 1
03:49:41 <immibis> stop saying 1
03:49:50 <ihope> WARNING: Clarity compromised by ambiguity. Suggestion: "I AM A BOT THAT YOU FOOL"
03:50:58 <immibis> yeah?
03:50:58 <toBogE> yeah?
03:51:10 <immibis> I AM NOT A BOT
03:51:10 <toBogE> I AM NOT A BOT
03:51:14 <immibis> yes you are]
03:51:15 <toBogE> yes you are]
03:51:20 <immibis> don't lie to me
03:51:24 <toBogE> don't lie to me
03:51:24 <immibis> !delregex echo
03:51:25 <toBogE> Caught a java.lang.IndexOutOfBoundsException! Index: 0, Size: 0
03:51:32 <immibis> i must fix that
03:51:38 -!- toBogE has quit (Read error: 104 (Connection reset by peer)).
03:52:04 -!- toBogE has joined.
03:52:13 <immibis> toboge now supports regex matching of channel messages using !regex NAME REGEX replace REPLACEMENT
03:52:17 <immibis> REGEX is not quoted
03:52:21 <immibis> REPLACEMENT is not quoted
03:52:32 <immibis> NAME is used to refer to it for !delregex which deletes it
03:52:43 <immibis> replace is the exact word replace
03:52:57 <immibis> !raw JOIN #bots
03:53:31 <oklopol> ihope: did you start making the parser? i'm gonna make it after this episode unless you happen to be on it.
03:53:57 <ihope> No, I pretty much... stopped.
03:54:12 <oklopol> myor
03:54:22 <oklopol> i want food first
03:54:23 <ihope> Now lemme find it again...
03:54:30 <ihope> It's gone!
03:54:32 * ihope cries
03:54:35 <oklopol> :P
03:54:37 <ihope> Except it isn't.
03:54:50 <ihope> Wonderful! Haskell scraps.
03:55:00 <oklopol> it isn't
03:55:03 <ihope> Maybe you can grind it up and make Python sausage out of it.
03:55:42 <oklopol> actually, i have one thing i don't really understand here
03:55:54 <ihope> It might even be ugly: http://pastebin.ca/594787
03:56:15 <oklopol> why in the earth would i encourage you to write a parser and think about making a parser myself, when i ACTUALLY ALREADY HAVE A WORKING PARSER
03:56:29 <oklopol> i have some serious mental problems, really
03:56:30 <oklopol> :|
03:56:40 <ihope> But given the amount of time I put into that, it must be nice.
03:56:44 <oklopol> i'll look
03:56:51 <ihope> You already have a working parser...
03:56:58 <oklopol> thuzzit?
03:57:10 <oklopol> i have 400 lines of python :)
03:57:17 <ihope> Essentially, I wrote something to parse until " or <-- is encountered.
03:57:25 <ihope> 400 lines of Python to do what?
03:57:45 <oklopol> i think it was pretty much the whole parser
03:58:02 <ihope> I have two parser fragments in a mere 23 lines.
03:58:29 <oklopol> haskell does parsing pretty much like a bnf
03:58:39 <oklopol> == short
03:59:03 <ihope> BNF-like grammars are easy enough when you have Parsec.
03:59:32 <oklopol> parsec i don't know
03:59:47 <oklopol> oklotalk doesn't have a bnf grammar, of course
04:00:01 <ihope> Parser library that comes with GHC.
04:00:05 <oklopol> hmm, i guess you could represent it as a bnf
04:00:08 <ihope> You might want to remedy that :-P
04:00:14 <oklopol> why is that?
04:00:40 <oklopol> it's important non matching brackets are legal
04:01:04 <oklopol> because i want every string to be a legal oklotalk program
04:01:36 <ihope> Why do you want every string to be a legal program?
04:02:25 <oklopol> for the same reason i wanted to make the language: no.
04:02:34 <oklopol> none
04:02:43 <ihope> You have no reason?
04:02:49 <oklopol> i guess it's cool
04:02:50 <oklopol> no reason
04:03:04 <ihope> Are there any runtime errors?
04:03:28 <oklopol> i'd say that's kinda one of my axioms
04:03:30 <oklopol> hmm
04:03:34 <oklopol> runtime errors, not really
04:03:51 <oklopol> i have a sort of an exception system
04:04:06 <oklopol> so... yes it does i guess
04:04:11 <oklopol> ...
04:04:13 <oklopol> yes there are
04:04:21 <ihope> Are there any type errors?
04:04:40 <oklopol> i have optional typing, but i'm not going to implement it yet
04:04:46 <oklopol> there are none
04:04:58 <oklopol> type errors will be compile time errors if used
04:05:09 <oklopol> (compile time warnings)
04:05:11 <ihope> So you can feed a function definition into a function that's supposed to handle matrices, then interpret the resulting floating point number as a Sudoku puzzle?
04:05:18 <oklopol> yes.
04:05:24 <ihope> Fun.
04:05:35 <ihope> It also makes me want to hug Epigram a little too tightly.
04:05:52 <ihope> And Goedel, too.
04:06:02 <oklopol> ´{}{}´{} makes 3 empty functions, and uses one of the functions as infix with the other two as args
04:06:32 <oklopol> epigram and goedel?
04:06:35 <oklopol> god i'm a noob.
04:06:35 <ihope> See, that doesn't make sense!
04:06:42 <oklopol> well guess i know gödel
04:06:58 <oklopol> what doesn't make sense?
04:07:14 <ihope> Epigram is a programming language that hugs static typing a little too tightly.
04:07:36 <ihope> (Hugging something a little too tightly can mean anything!)
04:08:25 <oklopol> you see in oklotalk every function call will end up being just message passing... everything is a function, and a function will always return <none> by default
04:08:35 <immibis> oklopol: what if it isn't a legal sudoku puzzle?
04:09:05 <ihope> I guess I haven't seen enough of the semantics to know anything.
04:09:06 <immibis> oklopol: is <none> a legal sudoku puzzle?
04:09:25 <oklopol> immibis: that depends on the solving function
04:09:44 <GreaseMonkey> immibis: yes, it's freestyle sudoku
04:09:47 <oklopol> it can check whether it is and throw an exception
04:09:51 <oklopol> heh
04:09:58 <oklopol> 0x0 sudoku
04:10:09 <GreaseMonkey> i just won
04:10:13 <GreaseMonkey> 1x1?
04:10:15 <ihope> 0x0 sudoku!
04:10:39 <GreaseMonkey> well, i was still thinking 9x9
04:10:41 <immibis> solution:
04:10:46 <oklopol> ihope: i'll make a somewhat working interpreter today, after that i might be able to explain it in a spec
04:10:53 <ihope> 2x3 sudoku.
04:10:55 <GreaseMonkey> solution to 1x1: [1]
04:11:04 <immibis> solution to 1x1: 1 ---or--- 2 ---or--- 3 ---or--- 4 ---or--- 5 ---or--- 6 ---or--- 7 ---or--- 8 ---or--- 9
04:11:09 <oklopol> right now i'm pretty sure i _know_ how everything works, but can't explain thoroughly
04:11:12 <GreaseMonkey> no
04:11:30 <GreaseMonkey> 2x2 takes 1 to 2, 3x3 takes 1 to 3, 1x1 takes just 1
04:11:36 <GreaseMonkey> so the solution is 1
04:11:37 <immibis> ok
04:11:39 <immibis> hehe
04:11:40 <immibis> ook
04:11:40 <oklopol> solution to 0x0 sudoku: nil
04:11:53 <immibis> solution to 0x0 sudoku: java.lang.NullPointerException
04:12:05 <immibis> solution to 0x0 sudoku: java.lang.NullPointerException: solution variable is null
04:12:11 <oklopol> there's no 3x3, GreaseMonkey
04:12:18 <ihope> 3x3 = 9x9.
04:12:25 <oklopol> 0x0, 1x1, 4x4, 9x9, 16x16
04:12:29 <oklopol> oh
04:12:32 <GreaseMonkey> there is a 6x6
04:12:32 <ihope> By some... things.
04:12:36 <oklopol> then that's 1..9
04:12:41 <ihope> 3x3 = 9x9, 6x6 = 36x36...
04:12:43 <oklopol> he was wrong nevertheless
04:12:45 <ihope> 2x3 = 6x6.
04:13:00 <ihope> It all depends on whether you mean block dimensions or puzzle dimensions.
04:13:03 <immibis> is there a 3x3x3?
04:13:11 <oklopol> dunno
04:13:13 <GreaseMonkey> that would be cool
04:13:14 <immibis> is there a 3x3x3x3x3 5-dimensional sudoku puzzle?
04:13:18 <oklopol> someone should test
04:13:24 * ihope ponders
04:13:25 <GreaseMonkey> there's even a 5D rubiks cube
04:13:27 <oklopol> ihope: brute force in haskell
04:13:37 <ihope> There are two ways to do a 3x3x3, I believe.
04:13:39 <GreaseMonkey> 2x2x2 would be a start
04:13:45 <GreaseMonkey> sudoku cube is evil
04:13:54 <ihope> I like the plane/block way.
04:13:55 <oklopol> sudoku cube was what i was thinking
04:14:01 <oklopol> ihope: explain
04:14:08 <oklopol> aaaaaaaa
04:14:16 <oklopol> i like 3d.
04:14:28 <oklopol> oh
04:14:35 <oklopol> actually i didn't get the plane thing.l
04:15:02 <immibis> !regex notathing [tT][oO][bB][oO][gG][eE] [iI][sS] [nN][oO][tT] [aA] (.*) replace I am a $1
04:15:14 <immibis> !regex notathing2 [tT][oO][bB][oO][gG][eE] [iI][sS] [nN][oO][tT] [sS][oO][mM][eE] (.*) replace I am some $1
04:15:16 <ihope> Slice the cube into 9 planes 3 ways, then into 27 blocks.
04:15:19 <ihope> Wait a minute...
04:15:35 <ihope> Then each block has 27 cubes while each plane has 81.
04:15:38 <oklopol> err
04:15:53 <oklopol> whut
04:16:10 <ihope> Now, stop getting in the way of my sleep. :-P
04:16:14 <oklopol> ah
04:16:15 <ihope> I was sleepy about a half hour ago.
04:16:15 <oklopol> 81 yes
04:16:18 <immibis> oklopol: !regex is a toboge c
04:16:20 <oklopol> i failed
04:16:22 <immibis> oops
04:16:29 <immibis> never mind
04:16:39 <oklopol> actually
04:16:48 <oklopol> it's trivial to make a 3x3x3 sudoku
04:16:49 <ihope> Of course, we all know *general* sudoku problems are the way forward. >:-)
04:16:58 <oklopol> heh
04:17:16 <immibis> toboge is not a bot
04:17:17 <toBogE> toboge is a bot
04:17:18 <toBogE> I am a bot
04:17:31 <ihope> And by that, I mean exact cover problems.
04:17:35 <immibis> i am not a very fat bot
04:17:35 <toBogE> i am a very fat bot
04:17:48 <oklopol> ihope: ?
04:17:48 <immibis> ihope: general?
04:17:51 <ihope> I tied a not in my rope.
04:18:04 <immibis> toboge is not in limbo
04:18:04 <toBogE> I am in limbo
04:18:09 <immibis> whatever that means
04:18:31 <immibis> toboge is not a retarded serial-killer maniac
04:18:31 <toBogE> I am a retarded serial-killer maniac
04:18:40 <immibis> toboge is not some flowers
04:18:40 <oklopol> i though like solve [[a b c d][e f g h][i j k l][m n o p]]
04:18:46 <immibis> toboge is not some flowers
04:18:46 <toBogE> I am some flowers
04:18:51 <immibis> no you're not
04:19:05 <oklopol> toBogE is the best
04:19:11 <oklopol> toBogE is not the best
04:19:11 <toBogE> I am the best
04:19:16 <toBogE> toBogE is the best
04:19:17 <immibis> toboge is not the worst
04:19:17 <toBogE> I am the worst
04:19:18 <toBogE> toboge is the worst
04:19:31 <immibis> flowers are not green
04:19:31 <toBogE> flowers are green
04:20:37 <ihope> An exact cover problem is when you're given a set, such as {A, B, C, D, E, F, G}, and some of its subsets, {A, C, E}, {B, F, G}, {D, G}, and {B, F}, maybe, and you have to find a set of those subsets such that every element of the bigger set is contained in exactly one of those subsets.
04:20:38 <toBogE> An exact cover problem is when you're given a set, such as {A, B, C, D, E, F, G}, and some of its subsets, {A, C, E}, {B, F, G}, {D, G}, and {B, F}, maybe, and you have to find a set of those subsets such that every element of the bigger set is not contained in exactly one of those subsets.
04:21:04 <immibis> oops
04:21:05 <immibis> hmm
04:21:09 <ihope> In this case, one solution (and the only solution) is {A, C, E}, {D, G}, {B, F}.
04:21:19 <toBogE> In this case, one solution (and the only solution) is not {A, C, E}, {D, G}, {B, F}.
04:21:26 <immibis> how embarassing
04:21:32 <immibis> !raw PART #esoteric
04:21:37 <ihope> I think that how is a little.
04:21:43 -!- toBogE has left (?).
04:21:43 <oklopol> yeah, i checked myself :)
04:21:45 <ihope> Darn.
04:21:57 -!- toBogE has joined.
04:22:01 <ihope> Look it up on Wikipedia; that explains how to convert Sudoku to an exact cover problem.
04:22:12 <oklopol> i'll look up my brain
04:22:15 <oklopol> doesn't seem hard
04:22:35 <ihope> Essentially, with a sudoku problem, you have four constraints that all say "for each of these there's exactly one of these".
04:22:56 <immibis> flowers are purple
04:22:56 <toBogE> flowers are not purple
04:22:57 <oklopol> err what
04:22:57 <toBogE> flowers are never purple
04:23:06 <immibis> weird
04:23:09 <oklopol> damn i'm stupid
04:23:44 <ihope> Specifically: for each pair of row and column there's exactly one corresponding number. For each pair of section and number there's exactly one corresponding place within that section.
04:23:52 <ihope> So actually, two constrains.
04:24:12 <ihope> Where a section is a row, column or block.
04:24:39 <oklopol> ah yeah
04:24:45 <ihope> The set contains things such as "row 3 column 5 contains an 8".
04:24:52 <ihope> Er, no, it doesn't.
04:25:21 <ihope> It contains things such as "row 3 column 5" and "row 3 contains an 8". The subsets correspond to things such as "row 3 column 5 contains an 8".
04:26:07 <oklopol> i'm not following you
04:26:07 <toBogE> i'm following you
04:26:16 <oklopol> "row 3 contains an 8" is a tautology
04:26:21 <immibis> {me} are not idiots
04:26:21 <toBogE> {me} are idiots
04:26:22 <toBogE> {me} are not not idiots
04:26:23 <toBogE> {me} are never not idiots
04:26:29 <ihope> That subset contains the elements "row 3 column 5", "row 3 contains an 8", "column 5 contains an 8", and "block 2 contains an 8".
04:26:35 <immibis> oops
04:26:37 <immibis> bug in my regex
04:26:44 <immibis> !delregex not4
04:26:54 <oklopol> okay
04:27:00 <ihope> Well then, have it be something like "this subset gives row 3 an 8".
04:27:21 <ihope> Exactly one subset must give row 3 an 8, exactly one subset must put a value in row 3 column 5, etc.
04:27:34 <ihope> Exact cover problem.
04:28:09 <oklopol> i'm gonna have to think about this for a while :)
04:28:24 <ihope> I'll give you a much-simplified illustration.
04:29:00 <oklopol> okily
04:32:53 <ihope> http://pastebin.ca/594822
04:33:11 <ihope> Down the left are possibilities; across the top are constraints each possibility fills.
04:33:22 <ihope> Each constraint must be satisfied by exactly one possibility.
04:34:49 <oklopol> ah indeed
04:35:04 <ihope> Do you get it? Can I finally rest in peace?
04:35:14 <ihope> (I'm sleepy. :-P)
04:35:22 <oklopol> i always fail to understand representing something in math does not have to be easy to solve by programming
04:35:22 <toBogE> i always fail to understand representing something in math does have to be easy to solve by programming
04:35:34 <oklopol> i mean, that is a fucking huge array
04:35:48 <oklopol> ihope: thanks, i learned something today
04:35:55 <ihope> It's either 8x12 or 12x8, depending on how you want to look at it.
04:36:06 <ihope> Though for Sudoku, it's more like 300x700.
04:36:34 <oklopol> hmm
04:36:40 <ihope> Oi! Algorithm X is essentially brute force with sanity!
04:37:12 <oklopol> most general ones are
04:37:19 <ihope> (That is, it doesn't try possibilities that are obviously impossible. "Hmm, can that cell next to that 3 also be a 3?")
04:37:26 <ihope> Well, time to sleep.
04:37:38 <oklopol> bye
04:38:55 <oklopol> (9*3*9)x(9*9*9) i'd say
04:39:13 <oklopol> nonono
04:39:23 <oklopol> (9*3)x(9*9*9)
04:39:44 <oklopol> (number in set)x(number at (x, y))
04:40:36 <oklopol> where "number in set" are the constraints, "number at (x, y)" the pussybilities
04:41:41 <oklopol> i wonder how i didn't see that
04:41:51 <oklopol> how that works
04:55:35 -!- ihope has quit (Read error: 110 (Connection timed out)).
05:01:46 -!- RodgerTheGreat has quit.
05:05:42 -!- toBogE has quit (Read error: 104 (Connection reset by peer)).
05:15:01 -!- toBogE has joined.
05:15:16 <immibis> !raw JOIN #toboge
05:16:53 <immibis> !regex computer (.*)computer(.*)computer(.*)computer(.*) replace $1pizza delivery truck$2river Nile$3robotic monkey land$4
06:02:33 <bsmntbombdood> "pussybilities"
06:04:18 <oklopol> whoops, what an embarrassing typo
06:05:03 <GreaseMonkey> ~exec self.raw("PRIVMSG #esoteric :pussybilities lol")
06:05:04 <bsmnt_bot> pussybilities lol
06:06:17 <immibis> a computer and a computer and a computer and some more
06:06:17 <toBogE> a pizza delivery truck and a river Nile and a robotic monkey land and some more
06:07:21 <oklopol> computer
06:08:09 <immibis> computer computer computer
06:08:09 <toBogE> pizza delivery truck river Nile robotic monkey land
06:09:27 <immibis> !regex computer1 (.*)c(.*)c(.*)c(.*)c(.*)c(.*)c(.*) replace $1 random $2 purple $3 green $4 robot $5 homer simpson $6 bus driver $7
06:09:42 <immibis> 1c2c3c4c5c6c7
06:09:42 <toBogE> 1 random 2 purple 3 green 4 robot 5 homer simpson 6 bus driver 7
06:10:36 <immibis> misspeeling mistacks, mylorcd computer crashes
06:10:44 <immibis> misspeeling mistacks, mylorcd crazycomputercrashes.com
06:10:44 <toBogE> misspeeling mista random ks, mylor purple d green razy robot omputer homer simpson rashes. bus driver om
06:11:02 <immibis> ok thats just weird
06:11:05 <immibis> and plain stupid
06:11:41 <immibis> !regex agree .*e.*h.*y.* replace I agree.
06:11:48 <immibis> yes, hello you
06:11:48 <toBogE> I agree.
06:11:54 <immibis> yes, hello
06:12:17 <immibis> communists rule. hitler's you.
06:12:18 <toBogE> I agree.
06:12:58 -!- immibis has left (?).
06:20:50 -!- oklopol has quit (heinlein.freenode.net irc.freenode.net).
06:20:50 -!- bsmntbombdood has quit (heinlein.freenode.net irc.freenode.net).
06:22:35 -!- bsmntbombdood has joined.
06:28:25 -!- immibis has joined.
06:28:35 <immibis> spam
06:28:38 <immibis> no don't spam
06:28:55 <immibis> nobody is allowed to spam, especially not me
06:28:55 <toBogE> nobody is allowed to spam, especially never not me
06:28:56 <toBogE> nobody is allowed to spam, especially not not me
06:28:57 <toBogE> nobody is allowed to spam, especially of course not me
06:29:02 <immibis> including you
06:30:58 <immibis> !jsp #uncyclopedia what happened?
06:30:58 <toBogE> Caught a java.lang.ClassNotFoundException! toboge.Execer_jsp
06:31:12 <immibis> !jsp #uncyclopedia what happened?
06:31:13 <toBogE> Caught a java.lang.ClassNotFoundException! toboge.Execer_jsp
06:31:18 <immibis> oops
06:31:20 <immibis> wrong channel
06:32:52 -!- bsmntbot has joined.
06:33:24 -!- oklopol has joined.
06:33:59 <immibis> !r nick PileDriver
06:33:59 -!- bsmntbot has changed nick to PileDriver.
06:33:59 <toBogE> Caught a java.lang.ClassNotFoundException! toboge.Execer_r
06:34:03 -!- oklopol_ has joined.
06:34:08 -!- oklopol has quit (Read error: 104 (Connection reset by peer)).
06:34:15 <oklopol_> omg 8|
06:34:19 -!- oklopol_ has changed nick to oklopol.
06:34:25 <immibis> !raw privmsg #esoteric I am a bot. Sometimes.
06:34:25 <toBogE> I
06:34:26 <oklopol> did you see me? i died :<
06:34:33 <oklopol> :
06:34:43 <oklopol> !raw privmsg #esoteric :I am a bot. Sometimes.
06:34:44 <toBogE> I am a bot. Sometimes.
06:35:01 <immibis> i keep forgetting that :
06:35:06 <immibis> ::)
06:35:08 <immibis> :::::::)
06:35:16 <immibis> :::::)::::
06:35:56 <PileDriver> #toboge: <toBogE> Caught a java.lang.ClassNotFoundException! toboge.Execer_m
06:36:34 <PileDriver> #toboge: <immibis> YADA YADA YADA
06:37:02 <PileDriver> #toboge: <immibis> !raw PRIVMSG #toboge :#toboge: <immibis> I am a retard.
06:37:03 <PileDriver> #toboge: <toBogE> #toboge: <immibis> I am a retard.
06:37:15 <immibis> !p #esoteric
06:37:15 -!- PileDriver has left (?).
06:37:15 <toBogE> Caught a java.lang.ClassNotFoundException! toboge.Execer_p
06:39:19 <oklopol> immibis: you shouldn't use java
06:39:23 <oklopol> i hear it sucks
06:39:31 <bsmntbombdood> yes yes
06:40:29 <oklopol> very sucks
06:43:44 <immibis> toboge uses "execers" - classes which contain code to execute commands. Java reflection (accessing classes at runtime without knowing what they are in advance) throws an exception if you try to access a class that doesn't exist. all commands try to load an execer which may or may not exist. if it doesn't exist an exception is thrown by java reflection.
06:43:44 <toBogE> toboge uses "execers" - classes which contain code to execute commands. Java reflection (accessing classes at runtime without knowing what they are in advance) throws an exception if you try to access a class that doesn't exist. all commands try to load an execer which may or may never not exist. if it doesn't exist an exception is thrown by java reflection.
06:43:47 <toBogE> toboge uses "execers" - classes which contain code to execute commands. Java reflection (accessing classes at runtime without knowing what they are in advance) throws an exception if you try to access a class that doesn't exist. all commands try to load an execer which may or may not not exist. if it doesn't exist an exception is thrown by java reflection.
06:43:47 <toBogE> toboge uses "execers" - classes which contain code to execute commands. Java reflection (accessing classes at runtime without knowing what they are in advance) throws an exception if you try to access a class that doesn't exist. all commands try to load an execer which may or may of course not exist. if it doesn't exist an exception is thrown by java reflection.
06:43:50 <toBogE> toboge uses "execers" - classes which contain code to execute commands. Java reflection (accessing classes at runtime without knowing what they are in advance) throws an exception if you try to access a random lass that doesn't exist. all purple ommands try to load an exe green er whi robot h may or may not exist. if it doesn't exist an ex homer simpson eption is thrown by java refle bus driver tion.
06:43:55 <immibis> what
06:43:55 <toBogE> I agree.
06:44:05 <immibis> !!!
06:44:05 <toBogE> Caught a java.lang.ClassNotFoundException! toboge.Execer_!!
06:44:15 <immibis> anything starting with ! is interpreted as a command
06:44:27 <immibis> !Something._I'm_a_retard
06:44:27 <toBogE> Caught a java.lang.ClassNotFoundException! toboge.Execer_Something._I'm_a_retard
06:44:37 <immibis> !!.Me.Sucks
06:44:37 <toBogE> Caught a java.lang.ClassNotFoundException! toboge.Execer_!.Me.Sucks
06:47:35 <immibis> cccccccc
06:47:35 <toBogE> cc random purple green robot homer simpson bus driver
06:47:47 <immibis> er, are you alright?
06:48:37 <oklopol> c
06:49:16 <oklopol> cvvvvvvvvvvvvvvcxxxxxxxxxxxxxxxxccvvvvvvvvvcvcxccccccccccccccc
06:49:16 <toBogE> cvvvvvvvvvvvvvvcxxxxxxxxxxxxxxxxccvvvvvvvvvcvcxccccccccc random purple green robot homer simpson bus driver
06:49:43 <immibis> <CTCP>ACTION breaks his computer by jamming a usb flash disk into it so hard that the connecter breaks off the motherboard and falls into the hard drive causing cinky red lines (is cinky a word) to go all over his screen and causing the speaker to scream and a spark goes across the gap caused by the missing connector and the spark destroys the half the motherboard which then explodes and destroys the other half includ
06:49:43 <toBogE> <CTCP>ACTION breaks his computer by jamming a usb flash disk into it so hard that the connecter breaks off the motherboard and falls into the hard drive causing cinky red lines (is cinky a word) to go all over his screen and causing the speaker to scream and a spark goes a random ross the gap purple aused by the missing green onne robot tor and the spark destroys the half the motherboard whi homer simpson h then explod
06:49:44 <toBogE> I agree.
06:49:51 <bsmntbombdood> STOP SPAMMING
06:51:47 <immibis> isn't writing in capitals a form of spamming?
06:51:47 <toBogE> I'm not spamming. isn't writing in capitals a form of spamming?
06:51:48 <toBogE> I'm not spamming. isn't writing in capitals a form of spamming?
06:51:49 <toBogE> I'm not spamming. isn't writing in capitals a form of spamming?
06:52:04 <immibis> toboge, you are spamming.
06:52:04 <toBogE> I'm not spamming. toboge, you are spamming.
06:52:05 <toBogE> I'm not spamming. toboge, you are spamming.
06:52:06 <toBogE> I'm not spamming. toboge, you are spamming.
06:52:19 -!- toBogE has quit (Read error: 104 (Connection reset by peer)).
06:53:10 -!- toBogE has joined.
06:57:06 <immibis> !raw JOIN #toboge
07:00:55 <oklopol> i don't like ubuntu
07:01:24 <immibis> who cares
07:02:45 <oklopol> you are mean :|
07:03:05 <immibis> well tell me one person that cares apart from you
07:04:02 <immibis> you said i am mean so prove it
07:04:02 <toBogE> you said i am NOT mean so prove it
07:04:19 <immibis> i am a bot
07:04:19 <toBogE> i am NOT a bot
07:04:26 <immibis> you are a bot
07:04:26 <toBogE> you are NOT a bot
07:04:28 <immibis> toboge is a bor
07:04:29 <toBogE> toboge is NOT a bor
07:04:30 <immibis> toboge is a bot
07:04:30 <toBogE> toboge is NOT a bot
07:04:33 <immibis> toboge is a wild boar
07:04:34 <toBogE> toboge is NOT a wild boar
07:05:03 <oklopol> toBogE does care
07:05:08 <oklopol> :<
07:05:32 <oklopol> toBogE is a bot of great caring about that
07:05:32 <toBogE> toBogE is NOT a bot of great caring about that
07:05:37 <oklopol> :<<
07:05:41 <oklopol> mean bot!
07:05:46 <immibis> !regex doesnot (.*) ([dD][oO][eE][sS]) (.*) replace $1 $2 NOT $3
07:05:53 <immibis> ok, now
07:05:57 <immibis> toBogE does care
07:05:57 <toBogE> toBogE does NOT care
07:06:01 <immibis> !raw NICK EgoBot
07:06:01 -!- toBogE has changed nick to EgoBot.
07:06:22 <immibis> !bf W!B.!r.!a.!i.!n.!f.!u.!c.!k.
07:06:22 <EgoBot> Brainfuck
07:07:57 <Sukoshi> STOP YOUR BLOODY SPAMMING FOR THE LOVE OF GOD
07:08:09 <Sukoshi> GET YOUR OWN GOD**** CHANNEL AND TEST YOUR IDIOTIC BOT THERE.
07:08:13 -!- immybo has joined.
07:08:16 <immybo> Hi.
07:08:41 <oklopol> i like spam
07:08:42 <oklopol> <3
07:08:47 <Sukoshi> Or, for the love of all those who want a decent conversation, please use your own local IRC server, immibis. You're annoying the **** out of most everyone.
07:08:47 <immibis> really?
07:08:58 <oklopol> i'm prolly the only one
07:09:00 <immibis> yes, i generally do without meaning to.
07:09:30 <Sukoshi> GregorR wrote EgoBot, and yet, he didn't spam the entire channel all the time testing it. Even in our breakage competitions, we didn't spam this much.
07:09:47 <Sukoshi> So please. Evacuate the bot.
07:09:53 <immibis> !raw QUIT
07:09:53 -!- EgoBot has quit.
07:09:55 <Sukoshi> Hello immybo.
07:09:58 <immybo> bye
07:10:02 -!- immybo has quit ("REALITY.SYS Corrupted: Re-boot universe? (Y/N/Q)").
07:10:03 -!- toBogE has joined.
07:10:07 -!- toBogE has quit (Read error: 104 (Connection reset by peer)).
07:10:12 <Sukoshi> Meh. Another bot?
07:10:13 -!- immibis has quit ("Depression is merely anger without enthusiasm").
07:10:22 <Sukoshi> Ye gods.
07:10:30 <Sukoshi> Does s/he have no sense of decency?
07:10:38 <oklopol> he left :<
07:10:47 <Sukoshi> He overreacted.
07:10:51 <oklopol> yeah
07:10:59 <Sukoshi> He's been spamming the channel for days on end. It's not like this was unwarranted or anything.
07:11:05 <oklopol> yeah :P
07:14:48 <oklopol> fuck... even if i'd get my programming going today, i have to go somewhere tomorrow
07:15:05 <Sukoshi> I've been reading Wolfram's ``A New Kind of Science''
07:15:08 <oklopol> when will the holiday start
07:15:09 <oklopol> eough
07:15:18 <oklopol> whuz that?
07:16:03 <Sukoshi> It's a book :P
07:16:38 <oklopol> like a story book?
07:16:40 <Sukoshi> The gist is that Wolfram argues that complicated mathematical equations to describe natural phenomena is a thing of the past, and in the future, everything will be modelled using cellular automata.
07:16:47 <oklopol> ah that
07:17:05 <Sukoshi> He basically develops cellular automata theory and its applications throughout the book.
07:17:10 <oklopol> cool
07:18:06 <Sukoshi> Unfortunately, so far, while there has been substance (and I do understand the prcatical examples come later, since I've already pre-scanned the book), most of it is full of fanboyism.
07:18:19 <Sukoshi> OMG Cell automata is #1 coolz ftw d00d !!!111!!!!
07:18:43 <Sukoshi> That, and I conclude that cellular automata's images are very ... uncomfortable looking.
07:18:46 <Sukoshi> Waaay too organic.
07:19:26 <Sukoshi> Like those close-ups of flower patterns or bug hives that make a person's skin crawl in their weird harmonic regularity.
07:19:55 <oklopol> that's uncomfortable?
07:20:47 <Sukoshi> Yeah, because it's so ... weird.
07:20:51 <Sukoshi> Gah, I can't explain it.
07:20:55 <Sukoshi> You have to see the images.
07:21:16 <Sukoshi> They're utterly unlike the figures of current science.
07:21:36 <oklopol> please draw and show :)
07:23:47 <Sukoshi> Go to your local library and grab the book.
07:23:56 <Sukoshi> I'm renting it from the community college's library.
07:24:02 <Sukoshi> (Alternatively, pirate it.)
07:24:08 <oklopol> every book there is in finnish.
07:24:14 <oklopol> and i can't find it on torrentz
07:24:41 <oklopol> found it
07:26:08 <oklopol> i didn't
07:27:13 <Sukoshi> Grab it on eDonkey networks.
07:27:17 <bsmntbombdood> oklopol: http://en.wikipedia.org/wiki/Image:CA_rule30s.png
07:27:24 <bsmntbombdood> http://en.wikipedia.org/wiki/Image:CA_rule110s.png
07:27:25 <Sukoshi> Alternatively, I can upload it for you.
07:27:42 <Sukoshi> Check code 912 too.
07:27:50 <Sukoshi> That one really freak me out.
07:28:16 <oklopol> i've seen tons of those :|
07:28:24 <oklopol> Sukoshi: you can upload the book?
07:28:57 <bsmntbombdood> code 912?
07:29:15 <Sukoshi> bsmnt_bot: Rule 912.
07:29:22 <Sukoshi> Of the tri-color ones.
07:30:16 <Sgeo> G'night all
07:30:16 <Sukoshi> oklopol: Sure thing.
07:30:33 <bsmntbombdood> wikipedia fails me, google fails me
07:30:43 <oklopol> well, that'd be nice
07:30:53 <oklopol> you reading it pdf
07:30:55 <oklopol> ?
07:30:59 <bsmntbombdood> hardcopy books++
07:31:04 <oklopol> heh
07:31:22 <Sukoshi> I'm reading it hardcopy, because I find hardcopy much more pleasurable.
07:31:36 <Sukoshi> But I have a PDF version in case I don't finish it in the time allotment.
07:31:40 <Sukoshi> (And it is indeed dense.)
07:31:46 <oklopol> oh, i see
07:33:41 <Sukoshi> Guh. The upload will take ages.
07:33:44 <Sukoshi> Pardon it.
07:40:31 <oklopol> no hurry, i'm not gonna read it today anyway
07:40:52 <Sukoshi> Sure.
07:47:23 <Sukoshi> Wow. He's representing Turing Machines as automata (not Cellular, though).
07:47:30 <Sukoshi> That's pretty crazy.
07:48:05 <bsmntbombdood> isn't one of them turing complete?
07:50:13 <bsmntbombdood> 110 maybe?
07:50:25 <lament> that's a cellular automaton.
07:51:38 -!- Sgeo has quit ("Ex-Chat").
07:51:53 <bsmntbombdood> yeah
07:54:43 <Sukoshi> Not turing complete. Turing Machine automaton.
07:55:13 <Sukoshi> Where he represents the head as an active cell, the tape as the cell behind the active cell, and the state of the machine the direction of the head.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:35:35 <Sukoshi> oklopol: http://www.anysize.org/~sukoshi/Stuff/The%20Mathematica%20Book%20-%20A%20New%20Kind%20of%20Science.pdf
08:36:38 <oklopol> oh thankz
08:36:50 <Sukoshi> I'll be removing the link in a few hours y'all, so download quickly.
08:36:56 <oklopol> 10 min left
08:37:03 <oklopol> why removing?
08:37:46 <oklopol> 10 mb downloaded
08:37:50 <oklopol> now eat ------>
08:39:07 <Sukoshi> Because I use that server very very often.
08:39:25 <Sukoshi> And I do very large daily amounts of transfer (of the order of 500 MB/day average).
08:42:49 <oklopol> oh
11:16:19 -!- clog has joined.
11:16:19 -!- clog has joined.
11:21:36 <GreaseMonkey> gonna sleep now, gnight
11:21:52 -!- GreaseMonkey has quit (Remote closed the connection).
13:03:52 -!- RedDak has joined.
13:26:51 -!- RedDak has quit (Remote closed the connection).
13:50:07 -!- RedDak has joined.
13:51:28 -!- Fantazy has joined.
13:51:31 <Fantazy> hello
13:55:41 -!- jix has joined.
14:20:03 -!- ihope__ has joined.
14:22:58 -!- Fantazy has quit ("Bye").
14:28:34 -!- RedDak has quit (Read error: 113 (No route to host)).
14:54:16 -!- RedDak has joined.
14:58:51 -!- RedDak has quit (Read error: 104 (Connection reset by peer)).
14:59:43 -!- RedDak has joined.
15:31:24 -!- RodgerTheGreat has joined.
15:31:45 <RodgerTheGreat> hey, guys
15:32:00 <RodgerTheGreat> ihope__: you there?
15:33:08 <RodgerTheGreat> I'm playing with /// again.
15:33:17 <ihope__> Ello.
15:33:21 <RodgerTheGreat> hey
15:33:34 <ihope__> Have you proven it Turing-complete yet?
15:33:37 <RodgerTheGreat> I think there is a slim possibility that it could be TC
15:33:45 <ihope__> :-)
15:33:47 <RodgerTheGreat> I'm still working on it, but I have an approach
15:34:18 <RodgerTheGreat> I'm designing a way to have an arbitrary number of XOR gates chained together arbitrarily
15:34:39 <ihope__> XOR gates, eh?
15:34:43 <RodgerTheGreat> I *THINK* that this could constitute a weak TC proof if I pull it off
15:35:21 <RodgerTheGreat> implementing logic gates seems to be the best approach, because there's no real way to have variables or memory in any conventional sense
15:35:49 <RodgerTheGreat> do you have any thoughts on the matter?
15:36:52 <ihope__> Well... not very many.
15:37:10 <ihope__> Implementing a quine would be a big step.
15:37:19 <oklopol> ihope__: the parser is not 220 lines, and i think i'll need some 100 more
15:37:22 <oklopol> *now
15:37:27 <oklopol> for oklotalk
15:37:56 <oklopol> because no one else was anal, i'll have to do it
15:38:05 <oklopol> "quine" is a quine in ///
15:38:28 <RodgerTheGreat> I think he means a nontrivial quine
15:38:34 <oklopol> i know
15:38:38 <oklopol> i'm an anal boy
15:38:44 <RodgerTheGreat> clearlu
15:38:48 <oklopol> yar
15:38:58 <RodgerTheGreat> /clearlu/clearly/
15:39:13 <oklopol> been listening to brainfuck all day
15:39:13 <oklopol> heh
15:39:17 <oklopol> non stop
15:39:27 <oklopol> feels weird to stop it
15:39:34 <RodgerTheGreat> but, would either of you say that an arbitrary arrangement of logic gates constitutes a TC system?
15:39:43 <oklopol> it doesn't
15:40:10 <RodgerTheGreat> in what way does it fail?
15:40:21 <oklopol> goedel it backwards: you can't make an infinite loop with it
15:40:29 <oklopol> trivial
15:40:36 <RodgerTheGreat> hm
15:41:10 <oklopol> it's a bounded storage machine
15:41:16 <oklopol> or whaddyacallit
15:41:23 <RodgerTheGreat> finite state machine?
15:41:46 <oklopol> yar
15:41:57 <oklopol> hmm... that's not a formal proof, let me think
15:42:25 <RodgerTheGreat> however, if you have a language that allows you to *build* finite state machines of arbitrary complexity, wouldn't that make the language itself TC?
15:42:35 <oklopol> hmm, for any set of gates there's a maximum number of steps it can do
15:42:41 <oklopol> there.
15:42:45 <RodgerTheGreat> correct
15:43:12 <oklopol> so it can't, for example, run it's own code a quadrillion times
15:43:30 <oklopol> which of course any turing machine could do
15:43:39 <RodgerTheGreat> hm
15:43:44 <oklopol> though it would be an infinite loop
15:43:59 <oklopol> quining is possible in a tc lang
15:44:29 <oklopol> you can always make a program that quines it's *functionality*
15:44:31 <oklopol> not necessarily the code of course
15:44:37 <RodgerTheGreat> hm
15:44:41 <RodgerTheGreat> interesting idea
15:44:47 <oklopol> running self?
15:45:09 -!- dak has joined.
15:45:09 <oklopol> selfial runnification
15:45:15 <ihope__> Yeah, there are functions that finite state machines simply can't implement.
15:45:29 <RodgerTheGreat> "recursive execution"? :)
15:45:34 -!- RedDak has quit (Read error: 113 (No route to host)).
15:45:43 <oklopol> RodgerTheGreat: there are many quining langs
15:45:49 <RodgerTheGreat> yeah, I understand what oklopol is saying
15:45:50 <oklopol> though i don't remember any names
15:46:09 <oklopol> you might wanna try them before /// :)
15:46:19 <oklopol> heh
15:46:31 <RodgerTheGreat> but /// is so... pretty.
15:46:42 <ihope__> Yes, I'll admit /// is pretty.
15:46:48 <oklopol> quining is one of the most esoteric programming things, string rewriting as well
15:46:53 <oklopol> // combines them
15:46:56 <oklopol> and is pretty
15:46:59 <RodgerTheGreat> yeah
15:47:00 <oklopol> *///
15:47:11 <ihope__> No, it's s////////
15:47:13 <ihope__> :-)
15:47:29 <oklopol> WHILE still having a popular aspect as well: /// is a s/// joke
15:47:31 <RodgerTheGreat> shouldn't there be some escape characters in there
15:47:35 <RodgerTheGreat> ?
15:47:39 <ihope__> Well, yes.
15:47:42 <oklopol> RodgerTheGreat: looks more boring then
15:47:44 <ihope__> s/\/\//\/\/\//
15:47:48 <oklopol> oh
15:47:54 <oklopol> actually pretty nice :)
15:47:55 <ihope__> Drop the s, and it becomes ///!
15:48:51 <oklopol> hmm... oerjan said it's hard to make quines in /// because you can't separate data & program to copy it
15:49:07 <RodgerTheGreat> so, my main projects in /// are a proof-of-concept infinite loop that prints something and a modular logic-gate chaining system
15:49:20 <oklopol> but you could have escapes before every byte of data and at the end kill those escapes
15:49:38 <oklopol> like data being "dd.dd.dd." where dots are the data
15:49:39 <RodgerTheGreat> those are my thoughts for doing a loop
15:49:43 <oklopol> hmm
15:49:54 <oklopol> it's just too hard to actually *code*
15:50:26 <ihope__> So just what does the quine theorem say? If S is Turing complete and there's an "S-complete" language O such that for every O program there's an S program that outputs it, then there is an S program that outputs its own source code translated into O?
15:50:41 <RodgerTheGreat> my main idea for a loop would look something like "body /A/B//B/escaped bodyA/A"
15:50:45 <ihope__> ("S-complete" meaning "able to output anything an S program can".)
15:50:53 <RodgerTheGreat> but it gets more ugly as you try to do things with it
15:51:08 <oklopol> you could make wireworld with expansion / wire cutters
15:51:09 <ihope__> Hmm...
15:51:25 <oklopol> these both would work when two electrons collide
15:52:02 <ihope__> The problem with that is that you need to replace the looper on the end as well.
15:52:07 <RodgerTheGreat> exactly
15:52:30 <RodgerTheGreat> the "escaped body" would need to contain the escaped body and so on into infinite recursion
15:52:45 * ihope__ ponders "looper, escaped looper, escaped body" to "body, looped, escaped looper, escaped body"
15:53:17 <RodgerTheGreat> if we solve the infinite loop problem, we solve the quine problem and vice versa
15:53:55 <RodgerTheGreat> and if we can build logic networks, we solve the "conditionals" problem and part of the "variables/storage" problem
15:54:00 <oklopol> ihope__: i don't know what the quining theorem says, but what you said sounds right imo
15:54:16 <RodgerTheGreat> if we can solve both of those problems, I think we could likely implement a UTM
15:54:26 <oklopol> i haven't seen the proof nor the theorem in english
16:02:24 <oklopol> hmm... prefix & infix -> prefix & info about which is harder to do than i thought
16:09:00 -!- dak has quit (Read error: 113 (No route to host)).
16:10:15 -!- jix has quit (Read error: 104 (Connection reset by peer)).
16:14:34 <ihope__> Mm, maybe it's more like "if S is Turing-complete and can output any S program, there is an S program that outputs itself", except that the antecedent needs some work.
16:15:18 <ihope__> Consider a programming language in which R followed by a BF program runs the BF program, disallowing output, and O followed by a string outputs that string.
16:16:38 <ihope__> Obviously Turing-complete and obviously capable of outputting any of its own programs, but obviously not capable of quinage.
16:19:13 -!- jix has joined.
16:20:23 <oklopol> r followed by a bf program?
16:20:27 <oklopol> R++.++[]?
16:20:43 <RodgerTheGreat> hm
16:22:51 <oklopol> i don't really understand what you're going for with that
16:23:01 <oklopol> <ihope__> Obviously Turing-complete and obviously capable of outputting any of its own programs
16:23:14 <oklopol> trivial to see it can NEVER output any of it's own programs
16:23:50 -!- Sgeo has joined.
16:23:59 <oklopol> on the other hand, "capable of outputting any of it's own programs" allows quining
16:24:04 <RodgerTheGreat> actually, yeah- it can't output the first O of any program
16:24:13 <ihope__> R++.++[]
16:24:15 <ihope__> OR++.++[]
16:24:16 <ihope__> OOR++.++[]
16:24:18 <ihope__> Etc.
16:24:29 <ihope__> Each outputs the one before it.
16:24:41 <oklopol> well
16:24:42 <RodgerTheGreat> hm. well, that's still not a quine
16:24:49 <oklopol> that's just an illusion
16:24:50 <RodgerTheGreat> *quines* aren't possible
16:24:57 <oklopol> the outputting has nothing to do with the language there
16:25:03 <RodgerTheGreat> ?
16:25:09 <oklopol> you can quine any program with that
16:25:13 <oklopol> you just cannot output it
16:25:16 <oklopol> ...
16:25:21 <oklopol> you cannot quine any program
16:25:27 <oklopol> just a program that's a quine in that
16:25:46 <oklopol> just like i can't quine "print 7" in python
16:26:43 <RodgerTheGreat> I guess my definition is flawed here- I think of a quine as a program that *outputs* its own source
16:27:41 <oklopol> RodgerTheGreat: yes, i'm not talking about that kind of quining, because not every language has output
16:28:05 <oklopol> however, any language can quine it's source in a form it can run itself.
16:28:32 <RodgerTheGreat> so, what you're talking about is *generating* the source (effectively storing it in memory somewhere)? In that case the BF mode of this theoretical language could quine
16:28:39 <oklopol> yes
16:28:43 <oklopol> exactly what i said
16:28:50 <oklopol> well
16:28:53 <oklopol> not exactly
16:28:56 <oklopol> you said it right
16:29:00 <RodgerTheGreat> ok
16:30:31 <oklopol> a lang where every program is a number
16:30:35 <oklopol> represented in base 10
16:30:49 <oklopol> the program outputs that number-1
16:30:50 <oklopol> heh
16:31:00 <oklopol> can output any program in itself
16:31:12 <oklopol> not tc though
16:31:34 <oklopol> but if the number is a factran program, it is tc
16:31:46 <oklopol> hmm
16:31:53 <oklopol> i wonder if that's the right lang name
16:32:01 <oklopol> fractran maybe
16:32:06 <oklopol> or something completely different
16:32:29 <oklopol> but base 8 and you can have any bf program in a number
16:32:44 <oklopol> this has the exact functionality of ihope' example
16:32:47 <oklopol> ihope__'s
16:33:28 -!- ihope__ has changed nick to ihope.
16:33:35 <oklopol> i was just saying that
16:33:36 <oklopol> :)
16:34:13 <ihope> Just saying what?
16:34:16 <oklopol> _
16:34:19 <oklopol> __
16:35:10 <ihope> If disconnecting and leaving a ghost and then reconnecting is considered running, then freenode has no quines.
16:35:21 <ihope> ihope -> ihope_ -> ihope__
16:35:34 <ihope> I don't know where it goes from there.
16:35:41 <oklopol> hmm
16:35:43 <oklopol> seems base 1
16:36:00 <oklopol> church underlines
16:36:04 <oklopol> underscores
16:36:09 <ihope> Calling it base 1 is like saying sqrt(-x) = -sqrt(x).
16:36:13 <ihope> :-)
16:36:18 <oklopol> oh
16:36:21 <oklopol> why is that?
16:37:35 <ihope> Well, it's not like each place is worth 1 and you're expressing numbers using only the digit 0.
16:38:21 <oklopol> "_" is 0?
16:43:42 <ihope> Did I say it was?
16:44:35 <oklopol> err yes
16:44:42 <oklopol> "you're expressing numbers using only the digit 0"
16:46:18 <ihope> That was part of the "it's not like".
16:46:46 <oklopol> heh, indeed
16:47:31 -!- sebbu has joined.
16:58:18 -!- oerjan has joined.
17:01:30 <lament> morning
17:05:53 <oerjan> evening
17:06:13 <oklopol> anything
17:09:26 -!- Sgeo has quit (anthony.freenode.net irc.freenode.net).
17:13:32 -!- RedDak has joined.
17:24:51 <lament> time of day :)
18:03:12 -!- lament has changed nick to kilbot.
18:03:46 -!- kilbot has changed nick to lament.
18:04:00 -!- Sgeo has joined.
18:13:35 -!- dak has joined.
18:14:20 -!- lament has changed nick to lament2.
18:14:21 -!- RedDak has quit (No route to host).
18:14:29 -!- lament2 has changed nick to lament.
18:17:10 -!- lament has changed nick to lament2.
18:58:52 -!- lament2 has changed nick to lament.
19:06:15 -!- kilbot has joined.
19:06:27 <lament> okay, let's play.
19:06:31 <lament> !start
19:06:31 <kilbot> Opening a new game. Say !join to join. Say !start again to start.
19:07:09 <lament> anybody alive? :)
19:07:41 <lament> blah
19:07:42 -!- kilbot has quit (Remote closed the connection).
19:11:55 <bsmntbombdood> 1101110100001101000011011101000011010000
19:12:06 <bsmntbombdood> oops, there should be a 1 at the beginning
19:14:15 <oklopol> i guess you're mum should be in the beginning
19:17:49 <RodgerTheGreat> lament: what's kilbot?
19:18:01 <lament> a bot for killing people
19:18:26 <oklopol> cool
19:18:30 <oklopol> you an irc op?
19:19:12 <RodgerTheGreat> some kind of video game, like the Hunt the Wumpus bot I had earlier?
19:22:16 <lament> join #kilbot
19:57:02 -!- oerjan has quit ("leaving").
20:02:56 -!- dak has quit (Remote closed the connection).
20:39:17 <ihope> bsmntbombdood: if you don't give bsmnt_bot a website or something so that I can find the source code when I need it, I'm going to give it one :-P
20:40:14 -!- SimonRC_ has changed nick to SimonRC.
21:03:30 <bsmntbombdood> ihope: i did
21:03:39 <ihope> Oh.
21:03:41 <bsmntbombdood> abacus.kwzs.be/~bsmnt_bot
21:03:45 <ihope> Right.
21:04:35 <ihope> If you don't put that site in my bookmark list, I'm going to put it there. :-P
21:05:03 <bsmntbombdood> what's the difference between a "probabilistic polynomial-time machine" and a "non-deterministic polynomial-time machine"?
21:06:07 <oklopol> first one has a distinct probability?
21:06:49 <oklopol> non deterministic being a more general case where it only matters it's not 100% sure it works
21:06:58 <oklopol> though i'm prolly talking bullshit here
21:10:26 <fizzie> NIST definition is again very helpful: "A nondeterministic TM is a probabilistic TM ignoring the probabilities."
21:11:27 <oklopol> i wasn't
21:11:27 <oklopol> cool
21:13:39 <fizzie> I guess the differences mostly are in the complexity classes. The problems solvable by a non-deterministic polynomial-time machine are obviously NP, and I could believe (but am certainly uncertain) that RP is the analogous class for probabilistic machines.
21:14:02 <bsmntbombdood> this book says BPP
21:14:11 <bsmntbombdood> but i still don't know what that means
21:14:25 <fizzie> Well, RP is there too.
21:14:26 -!- kwertii has joined.
21:14:52 <fizzie> RP has "polynomial time with no false acceptances and less than half false rejections".
21:15:27 -!- kwertii has quit (Client Quit).
21:15:29 <bsmntbombdood> then BPP is a subset of RP
21:15:54 -!- kwertii has joined.
21:17:05 <fizzie> I'd say the difference mostly is that with probabilistic TMs, you can talk about these kinds of complexity classes; with a non-deterministic machine you always "do the same thing" (halt accept if it is at all possible and so on) for one string.
21:17:57 -!- oerjan has joined.
21:34:54 * sebbu regarde les 4 fantastiques et le surfeur d'argent
21:35:15 <ihope> French, I'm guessing.
21:36:47 <oerjan> marvel comics, i'm concluding.
21:37:03 * bsmntbombdood regards the 4 fantastic surfers
21:37:21 <ihope> The Fantastic 4 and the Silver Surfer?
21:37:41 <ihope> Could one say that a non-deterministic machine always does the right thing for the purposes of speed but never does the right thing for the purposes of correctness?
21:37:43 <oerjan> so i believe
21:37:57 <oerjan> (that was to your previous question)
21:39:01 <oerjan> well, in the NP case the non-deterministic machine should never give a wrong yes answer
21:39:19 <bsmntbombdood> this book's definition of NP is also weird
21:40:24 <oerjan> and should always have some choice path to return a yes answer if that is correct
21:42:14 <bsmntbombdood> L \in NP if there exists a boolean relation R_L \subseteq {0, 1}* x {0, 1}* and a polynomial p(x) such that R_L can be recognized in (deterministic) polynomial time and the x \in L iff there exists a y such that |y| <= p(|x|) and (x, y) \in R_L
21:43:04 <oerjan> that's an equivalent definition
21:43:20 <bsmntbombdood> I don't understand it
21:43:25 <oerjan> consider the relation between input and choice paths
21:43:29 <ihope> It should never give a yes when it's no; it should sometimes give a yes when it's yes?
21:43:38 <oerjan> ihope: right
21:45:15 <oerjan> where the relation is that the machine accepts that input through that choice path
21:46:06 <oerjan> for the other direction, let the machine guess the bits of y
21:48:08 <oerjan> and simultaneously check that (x,y) fulfils the relation for the input x and the guessed y
22:16:20 <ihope> Hmm... it wouldn't be a good idea to just run bsmntbombdood as-is, would it?
22:16:41 <oerjan> ???
22:16:42 <ihope> (Ignoring the fact that it tries to use the nick bsmnt_bot.)
22:16:55 <ihope> People could ~exec and kill me, couldn't they?
22:17:11 <oerjan> this was just a trick to make me give away question marks, right?
22:17:23 <ihope> Um...
22:17:28 <oerjan> indeed they could
22:17:32 <ihope> :-P
22:17:45 <ihope> There's a way to prevent that, I take it.
22:17:55 <oerjan> bsmntbombdood uses chroot
22:18:08 <oerjan> but if you are on windows i don't know
22:18:15 <ihope> I have Cygwin.
22:19:40 <oerjan> somehow i doubt cygwin adds actual security. but i wouldn't know.
22:20:50 <oerjan> probably simplest to just restrict ~exec.
22:21:06 <oerjan> (and any similar ones, if there are any)
22:22:23 -!- jix has quit ("CommandQ").
22:23:53 <ihope> Cygwin has chroot...
22:36:44 -!- ihope has quit ("Reconnecting...").
22:36:54 -!- ihope__ has joined.
22:37:03 -!- ihope__ has changed nick to ihope.
22:39:36 <ihope> AttributeError: 'module' object has no attribute 'getuid'
22:39:47 <ihope> Should I comment out all that os.getuid stuff?
22:39:55 <ihope> (in bsmnt_bot)
22:42:20 <oerjan> hm...
22:43:42 <oerjan> i wonder if chroot will affect windows programs run inside it at all
22:44:20 <oerjan> the cygwin page does say programs need to be compiled from source with it.
22:44:35 <oerjan> perhaps even python?
22:46:32 <ihope> if self.verbose: sys.__stdout__.write(line + "\n")
22:46:36 <ihope> IOError: [Errno 9] Bad file descriptor
22:47:06 <ihope> What's up now?
22:47:16 <oerjan> no idea.
22:47:40 * ihope turns verbose off
22:47:51 <oerjan> btw bsmntbombdood used a slightly old version of python, i think.
22:48:30 <lament> ihope: use sys.stdout.write
22:48:49 <oerjan> lament: no.
22:48:57 <oerjan> this is bsmnt_bot, remember?
22:49:04 <lament> so?
22:49:14 <lament> ihope: use sys.stdout.write
22:49:27 <ihope> Well, turning verbose off seems to have done it.
22:49:31 <oerjan> sys.stdout has been reassigned to an IRCwrapper object.
22:49:33 <lament> ihope: yes, of course.
22:49:36 <lament> oerjan: no it hasn't.
22:49:42 <lament> oerjan: oh, i get it.
22:49:48 <lament> ihope: you can just delete that line.
22:49:59 <oerjan> sys.__stdout__ otoh probably refers to the real thing.
22:50:06 <lament> oerjan: used to, apparentnly.
22:50:15 <lament> relying on undocumented features is so... microsoft :)
22:50:29 <lament> and reassigning sys.stdout is just _wrong_
22:53:43 <ihope> Oh, come on...
22:54:05 <ihope> x = self.socket.send(message)
22:54:07 <ihope> File "C:\Python24\lib\socket.py", line 144, in _dummy
22:54:08 <ihope> raise error(EBADF, 'Bad file descriptor')
22:54:10 <ihope> error: (9, 'Bad file descriptor')
22:55:17 <oerjan> you don't have sockets?
22:55:39 <ihope> I don'?
22:55:43 <ihope> ...don't?
22:56:11 <oerjan> i don't know, it just looked like it
22:56:30 * ihope summons bsmntbombdood
22:58:46 <bsmntbombdood> what
22:58:59 <ihope> Any idea why I'm getting that error?
22:59:02 <oerjan> your bot is ugly!
22:59:06 <oerjan> and it smells!
22:59:38 <ihope> And it sounds like fingernails against a chalkboard and tastes funny.
23:00:05 <oerjan> but we still love it.
23:00:13 <ihope> Yup.
23:00:19 <oerjan> so we would like to clone it.
23:00:33 * bsmntbombdood reads
23:01:05 <ihope> Maybe you'd want the rest of the error message.
23:01:26 <ihope> File "<pyshell#1>", line 1, in ?
23:01:28 <ihope> bot.raw("PRIVMSG #kolbot :Ee!")
23:01:29 <ihope> File "C:\Documents and Settings\*bleh*\Desktop\ircbot.py", line 91, in raw
23:01:31 <ihope> x = self.socket.send(message)
23:01:32 <ihope> File "C:\Python24\lib\socket.py", line 144, in _dummy
23:01:34 <ihope> raise error(EBADF, 'Bad file descriptor')
23:01:36 <ihope> error: (9, 'Bad file descriptor')
23:01:37 <ihope> Maybe I should have pasted that.
23:01:39 <ihope> Pastebinned it.
23:01:49 <ihope> Eh well.
23:01:53 <bsmntbombdood> and commenting out the os.setuid/getuid stuff = bot has root = you are pwnt
23:02:08 <ihope> Even if I comment out some of the callbacks?
23:02:15 <ihope> (This is Windows, by the way.)
23:02:28 <bsmntbombdood> terribly dangerous to have it running as root
23:03:12 <ihope> Well, I couldn't figure out the chroot stuff and I got errors with the uid things.
23:03:56 <ihope> (All of them that require ownerness except ps.)
23:03:58 <bsmntbombdood> you have connected the bot, right?
23:04:02 <ihope> Yup.
23:04:27 <ihope> Mm, I just realized it won't listen to me.
23:04:34 <ihope> ...if I'm not identified.
23:05:45 <bsmntbombdood> there was a bug in the raw function, not sure if it was causing your proble
23:05:47 <bsmntbombdood> m
23:07:30 <ihope> It may be.
23:07:32 <bsmntbombdood> probably wasn't
23:07:35 <ihope> What is the bug?
23:08:30 <bsmntbombdood> should have been "x = self.socket.send(message)" on line 94
23:09:19 <ihope> Indeed, the error is on line 91.
23:10:04 <bsmntbombdood> raw is called in connect
23:10:12 <ihope> It is?
23:10:48 <ihope> Indeed!
23:10:48 <bsmntbombdood> of course
23:11:20 <ihope> And that seems to have worked just fine.
23:11:52 <bsmntbombdood> has it joined its channels?
23:12:05 <ihope> Yes, it has.
23:12:23 <ihope> bot.disconnect fails.
23:13:05 <bsmntbombdood> s/socket.send/sockfile.write/g in raw
23:14:54 <ihope> self.sockfile.write?
23:14:59 <ihope> Or just sockfile.write?
23:15:42 <bsmntbombdood> what?
23:16:01 <ihope> "x = self.sockfile.write(message)" and such?
23:16:28 <bsmntbombdood> yeah
23:17:11 <ihope> AttributeError: IRCbot instance has no attribute 'sockfile'
23:17:51 <ihope> self.sockfile seems to be defined in connect() after some self.raw is called.
23:18:06 <bsmntbombdood> oh, and move self.sockfile = self.socket.makefile("rw") to the top of connect
23:18:37 <ihope> Between self.socket.connect and self.raw?
23:19:01 <bsmntbombdood> yes
23:19:15 <ihope> Hmm, this is interesting.
23:19:30 <ihope> Now this: error: (10053, 'Software caused connection abort')
23:20:07 <bsmntbombdood> on what line?
23:20:21 <ihope> File "C:\Python24\lib\socket.py", line 243, in flush
23:20:23 <ihope> self._sock.sendall(buffer)
23:20:57 <ihope> Might it have something to do with the self.raw("CAPAB :IDENTIFY-MSG") I added?
23:21:12 <bsmntbombdood> the line in my code
23:21:31 <ihope> ...um, just a minute.
23:23:48 <bsmntbombdood> and no, that couldn't be it
23:27:27 <ihope> Cool. Python's frozen.
23:29:37 <ihope> It should really at least say what's wrong.
23:29:57 <ihope> (Isn't it wonderful how Windows takes a while to kill a process?)
23:31:03 <oklopol> windows does not kill
23:31:09 <oklopol> it kindly asks processes to die
23:31:29 <ihope> And they die even if they're not responding?
23:31:53 <oklopol> that's the problem
23:31:58 <bsmntbombdood> signal 9, bitches
23:32:04 <oklopol> they are not listening
23:32:09 <oklopol> so they won't die
23:32:12 <ihope> But they do die.
23:32:16 <oklopol> well
23:32:21 <oklopol> it eventually kills them
23:32:25 * ihope nods
23:32:35 <oklopol> it just doesn't like it, so it tries talking first
23:32:48 <ihope> Is this the same ask-to-die that happens when you click that nice little "X"?
23:33:34 <oklopol> i'm mostly being poetical, but yes, x asks nicely, easy to circumsomething
23:33:37 <oklopol> vent
23:36:08 <bsmntbombdood> bsmntbombdood says "don't use windows"
23:39:04 <ihope> Tell me how to get my laptop's wireless network adapter working under Linux, then...
23:39:32 <bsmntbombdood> rtfm, that's how!
23:39:35 <bsmntbombdood> :P
23:43:23 <ihope> !
23:43:26 <ihope> Five network adapters?
23:43:38 * ihope dismisses three as being VM components
23:43:57 <ihope> Wait a minute, this laptop has an Ethernet port.
23:47:00 -!- sebbu has quit ("@+").
23:47:45 <ihope> Oh, also, I have only one partition here.
23:50:05 <ihope> I'll just set up my Linux desktop.
2007-06-30
00:02:15 -!- oerjan has quit ("Good night").
00:14:36 <bsmntbombdood> ihope: get it working yet?
00:14:44 <bsmntbombdood> my bot, i mean
00:16:32 <ihope> Nope.
00:16:42 <ihope> Now to see if it's possible to get ol' "bunty
00:16:44 <ihope> Er.
00:16:56 <ihope> If it's possible to get ol' "bunty" running without a monitor or anything.
00:17:35 <ihope> Meanwhile, I'll go get the monitor.
01:04:32 -!- Tritonio has joined.
01:04:53 <Tritonio> hello everyone...
01:05:03 <SimonRC> hi
01:06:04 <Tritonio> I never thought there would be a room for this subject! ;-)
01:06:14 <ihope> Ello!
01:07:33 <ihope> ndiswrapper was surprisingly painless.
01:07:52 <ihope> Download it, look in the README which tells you to look in INSTALL, follow the instructions.
01:08:17 <ihope> Then you go into the network configuration thingy and set it up to connect to the network.
01:08:32 <ihope> Now I have to wait for it to hibernate so I can bring it back upstairs.
01:08:58 <ihope> (Except since I'm upstairs and it's downstairs, chances are it's done by now... or I'll have to take drastic measures.)
01:10:03 <Tritonio> what distro do you use ihope?
01:30:23 <ihope> Ubuntu.
01:30:52 <ihope> How cool: I moved the Linux machine's monitor and it dispensed a little strip of black plastic.
01:31:12 <ihope> Or is it not supposed to do that?
01:35:54 <ihope> Eek. Where'd the wireless adapter go?
01:38:15 <ihope> Okay, it's back.
01:38:21 <ihope> I had to sudo modprobe ndiswrapper again.
01:51:06 <ihope> Huh--apparently I have a user called bsmnt.
01:53:42 <Tritonio> me too... feisty. I am on a laptop and I never had problems with the wifi adapter. it worked immediately when i installed linux.
01:58:01 <ihope> Huh.
01:58:07 <ihope> Well, I'm happy now :-)
02:07:36 <Tritonio> goodnight...
02:19:56 <Tritonio> oh just a question: I made a language that compiles to brainfuck. It's called FuckBrainfuck or FBF (no I never meant to insult this beautiful language). Should I make an article on the wiki?
02:21:20 <Tritonio> I mean is it considered an esolang? In any case you can find more about FBF by visiting this link (which I added to the external links section of the brainfuck wiki article)
02:21:36 <Tritonio> the link is http://students.ceid.upatras.gr/~asimakis/FBF.html
02:22:24 <ihope> Lemme see...
02:23:11 <ihope> Well, if your focus is to make it as easy to use as possible, it's probably not an esolang.
02:23:16 <ihope> Otherwise, it probably is.
02:23:35 <ihope> Not much reason not to post it, though.
02:23:50 <ihope> It getting deleted is the worst that could happen... I think.
02:27:34 <Tritonio> Well then I shouldn't make the article. It's not that FBF is Easy... But it is about as easy as assembly i think, although it work in a different manner.
02:28:29 <Tritonio> (many late hour typos)
02:30:04 -!- Tritonio has quit (Connection reset by peer).
02:32:02 -!- kbrooks__ has joined.
02:32:05 <kbrooks__> hi.
02:33:03 <ihope> Ello.
02:33:32 <kbrooks__> parent, child = ihope.fork()
02:33:38 <kbrooks__> parent.kill()
02:33:44 <kbrooks__> # child lives on...
02:33:59 <ihope> Hmm...
02:34:16 <ihope> What if I don't have that many kids before dying, or at least one dies before me?
02:34:17 <ihope> :-P
02:34:55 <kbrooks__> teehee.
02:36:53 <kbrooks__> ihope.revive() # yay, now ihope's back.
02:37:15 -!- Tritonio has joined.
02:37:26 <Tritonio> ok i'm back...
02:43:55 -!- Tritonio has quit (Remote closed the connection).
02:44:15 -!- Tritonio has joined.
02:45:24 -!- Tritonio has left (?).
02:45:36 -!- Tritonio has joined.
02:50:58 <bsmntbombdood> Tritonio: that's a lot like pikhq's bfm/pebble/pfuck
02:53:19 <ihope> :-
02:53:22 <ihope> Hmm.
02:53:30 * ihope attaches a ) to his emoticon
02:56:21 <Tritonio> what'sthat?
02:57:12 <ihope> bsmntbombdood is notorious for replying things so late after the fact that nobody knows what he's talking about :-P
02:57:51 <Tritonio> lol. im's googling pfuck and got to an nonsense site.
03:00:14 <Tritonio> bsmntbombdood: still haven't got a clue on what pfuck is...
03:01:06 <bsmntbombdood> my understanding is that they are all the same thing
03:02:37 <Tritonio> okkkkk i foind peeble....
03:02:42 <Tritonio> *pebble
03:04:05 <Tritonio> well from what I can see pebble is closer to brainfuck.
03:06:59 <Tritonio> the only thing that I am still missing are the macros... Anyway. I'll go to sleep now. So see you in 8 hours I guess. Goodnight to the east hemisphere guys...
03:08:02 <Tritonio> Well goodnight to the west one... I didn't notice that it's almost dawn here.
03:14:17 <ihope> I want a peeble!
03:14:45 <bsmntbombdood> i want a food
03:14:57 -!- Sukoshi has quit ("Leaving").
03:29:06 -!- kbrooks__ has quit (Read error: 104 (Connection reset by peer)).
03:30:13 -!- boily has joined.
03:33:04 -!- ihope has quit (Read error: 110 (Connection timed out)).
03:48:04 -!- kwertii has quit.
03:49:38 -!- boily has quit ("WeeChat 0.2.5").
03:59:14 -!- cmeme has quit (Excess Flood).
03:59:53 -!- cmeme has joined.
04:02:50 -!- cmeme has quit (K-lined).
04:42:44 -!- cmeme has joined.
07:14:54 <bsmntbombdood> what?
07:34:02 -!- kwertii has joined.
07:40:14 -!- Figs has joined.
07:40:17 <Figs> hmm
07:40:43 <Figs> In a way, I think I like C++ because it has so many gotchas :P
07:58:57 -!- Figs_ has joined.
07:59:04 -!- Figs has quit (Nick collision from services.).
07:59:06 -!- Figs_ has changed nick to Figs.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:13:45 -!- kwertii has quit.
08:48:26 -!- sebbu has joined.
09:17:33 -!- Figs has left (?).
09:29:23 -!- oerjan has joined.
10:10:19 -!- Sukoshi has joined.
10:13:35 -!- Sukoshi has quit (Client Quit).
10:36:18 -!- sebbu2 has joined.
10:52:06 -!- sebbu3 has joined.
11:01:10 -!- oerjan has quit ("leaving").
11:04:09 -!- sebbu has quit (Read error: 110 (Connection timed out)).
11:04:41 <Tritonio> back again
11:17:20 -!- sebbu2 has quit (Read error: 110 (Connection timed out)).
11:26:43 <Tritonio> anybody here?
11:36:15 -!- jix has joined.
11:41:14 * Tritonio thinks everyone is dead.
12:07:05 -!- jix has quit (Read error: 113 (No route to host)).
12:08:25 -!- jix has joined.
13:44:07 -!- RedDak has joined.
13:48:32 -!- Tritonio has changed nick to tritonio.
13:48:36 -!- tritonio has changed nick to tritonio_.
13:48:55 <tritonio_> /msg nickserv link Tritonio 24062406
13:49:35 -!- tritonio_ has changed nick to Tritonio.
13:51:25 <Tritonio> ihope: will there ever be another brainfuck golf?
13:52:16 -!- Tritonio has quit (Read error: 104 (Connection reset by peer)).
13:52:27 -!- Tritonio has joined.
14:20:09 <oklopol> people, quick poll: should i code or write articles?
14:20:27 <oklopol> this chan might be biased, but no one else would answer :|
14:25:38 <Tritonio> what?
14:26:01 <Tritonio> code what or write articles for what?
14:27:17 <oklopol> that is not specified
14:27:39 <Tritonio> code
14:28:13 <Tritonio> maybe you could code something that writtes articles so there'll be no problem
14:28:28 <oklopol> cool, now i have "code" from a coding chan and "write" from another chan whose idea i don't know
14:28:36 <oklopol> hmm
14:28:41 <oklopol> not a bad idea
14:29:24 <Tritonio> will you code using an esolang?
14:30:02 <oklopol> i'm not sure if i'll do that, the articles might not be exactly perfect and i'm in the middle of another coding project already
14:30:15 <oklopol> i usually use python, it's the easiest to open :)
14:30:51 <Tritonio> I want to learn python... But I can't find the time these days. I code in Lua anyway.
14:37:39 -!- ihope__ has joined.
14:38:41 <oklopol> quakenet's bananabot is coded in lua
14:38:46 <oklopol> that's all i know about the lang
14:38:52 <oklopol> also, i've seen some code
14:39:16 -!- ihope__ has changed nick to ihope.
14:39:38 -!- ihope has changed nick to ihope_.
14:39:49 -!- ihope_ has changed nick to ihope.
14:40:24 <Tritonio> i like lua a lot. I learned it because port of it called Plua was the only IDE for palms.
14:40:58 <oklopol> i c
14:41:23 <oklopol> anyone got texas instruments ti-84
14:41:23 <oklopol> ?
14:41:37 <oklopol> i've made some fun games with the basic 8D
14:42:07 <Tritonio> is that a calc?
14:42:28 <oklopol> yarr
14:50:33 <ihope> I have an 85 and, somewhere, an 86.
14:51:00 <oklopol> hmm
14:51:04 <ihope> Their numbering scheme is weird. 83 was made after 85, if I remember correctly.
14:51:10 <oklopol> you can make progs for mine in assembly somehow
14:51:15 <oklopol> i wonder how exactly
14:51:24 <oklopol> it seems it's random, yeah
14:51:26 <ihope> Same for both of mine.
14:51:32 <ihope> Is 84 what you have?
14:51:39 <oklopol> yes
14:51:54 <ihope> A Google search for "TI-84 assembly" or something wouldn't do you bad.
14:52:14 <Tritonio> ihope...
14:52:19 <oklopol> haha
14:52:22 <oklopol> true :)
14:52:23 <ihope> :-P
14:52:34 <Tritonio> you were the guy that started brainfuck golf?
14:52:47 <ihope> I think I started one competition.
14:52:56 <ihope> I think nobody participated. :-P
14:53:04 <Tritonio> only one participated.
14:53:11 <ihope> There was a participant?
14:53:11 <Tritonio> lol. and he won.
14:53:21 <ihope> Oh yeah...
14:53:28 <Tritonio> yeap. I remember his MD5 on the esolang forum
14:53:34 <Tritonio> but I never saw his code.
14:53:46 <ihope> Ah, yes. The codeless winner.
14:54:07 <Tritonio> Why don't we start another competition? But we have to find some participants first. ;-)
14:54:30 <ihope> Well, currently, I'm all about #kilbot.
14:54:32 <oklopol> i'll participate
14:54:39 <ihope> But I need to find some participants first. :-P
14:55:00 <Tritonio> what's kilbot?
14:55:15 <ihope> A game of... um...
14:55:17 <Tritonio> i'll give it a try to.
14:56:28 -!- andreou has joined.
14:56:53 <Tritonio> msg andreou Hi!
14:57:05 <Tritonio> ooops. forgot the slash
14:57:35 <Tritonio> op andreou ellinas eisai re?
15:03:16 <Tritonio> andreou?
15:03:19 <oklopol> olppu jorpuli mofo
15:03:41 <Tritonio> oklopol, what's this?
15:04:22 <oklopol> finnish-ish nonsense
15:04:31 <Tritonio> ok
15:04:42 <Tritonio> andreou eisai edo?
15:10:34 -!- Tritonio_ has joined.
15:10:50 -!- Tritonio has quit (Remote closed the connection).
15:10:55 -!- Tritonio_ has quit (Client Quit).
15:11:10 -!- Tritonio_ has joined.
15:11:53 <ihope> Net effect: a Tritonio_ comes, a Tritonio leaves.
15:12:22 -!- Tritonio_ has changed nick to Tritonio.
15:12:51 <Tritonio> andreou?
15:16:09 -!- Tritonio has quit.
15:16:27 -!- Tritonio has joined.
15:17:24 -!- Tritonio has quit (Client Quit).
15:18:00 -!- Tritonio has joined.
15:18:14 <Tritonio> Sorry I changed clients...
15:47:03 -!- ihope has changed nick to ihope_.
15:47:11 -!- ihope_ has changed nick to ihope.
16:03:53 <ihope> YA PRIVMSG #esoteric :~exec self.raw("PRIVMSG #esoteric :FOO")
16:04:01 <ihope> Hmm.
16:04:21 <Tritonio> what's that? java?
16:04:33 <ihope> Most of it's IRC.
16:04:42 <Tritonio> self.raw(
16:04:50 <ihope> That bit's Python.
16:05:01 <ihope> Though it could well be Java, unless Java requires a semicolon.
16:05:05 <Tritonio> is there a way to see if a user on irc is idle?
16:05:19 <Tritonio> ic...
16:05:20 <ihope> I think /whois tells you that.
16:05:39 <ihope> bsmntbombdood: it seems all the regexes in ircbot start with ^ except the ones for exec and ps.
16:07:31 <oklopol> ./whois nick nick
16:07:36 <Tritonio> ok i found ir
16:07:39 <Tritonio> it*
16:10:49 <ihope> bsmntbombdood: is there a reason for that, or is it... not reasoned?
16:19:19 -!- jix__ has joined.
16:26:52 -!- oerjan has joined.
16:28:29 -!- jix has quit (Read error: 110 (Connection timed out)).
16:51:12 <oerjan> testing :something PRIVMSG #esoteric :~exec sys.stdout("Like this?")
16:52:43 <oerjan> hmph, ~exec regex not starting with ^ doesn't seem to have any effect...
16:53:01 <oerjan> ~exec sys.stdout("Like this?")
16:53:01 <bsmnt_bot> Like this?
16:53:20 -!- Sgeo has quit (Connection timed out).
17:16:02 <ihope> ~exec exec("self.raw('PRIVMSG #esoteric :Foo')")
17:16:03 <bsmnt_bot> Foo
17:16:10 <ihope> ~exec exec("sys.stdout('PRIVMSG #esoteric :Foo')")
17:16:11 <bsmnt_bot> PRIVMSG #esoteric :Foo
17:39:31 -!- RedDak has quit (No route to host).
17:40:25 -!- RedDak has joined.
17:50:53 -!- Tritonio has quit (Read error: 113 (No route to host)).
17:52:14 -!- Tritonio has joined.
17:58:43 -!- RedDak has quit (Read error: 113 (No route to host)).
18:18:29 -!- sebbu3 has changed nick to sebbu.
18:26:45 <oklopol> it's funny, i have a string representing a program to parse in my code, the program first prints the string, then parses it, then prints the result of the parsing
18:27:08 <oklopol> now if i change the string, it prints the new string all right, but parses the *last* string
18:27:27 <oklopol> i have to run the program twice to get it parse the new string
18:27:41 <Tritonio> oklopol, ???
18:27:50 <oklopol> i find this impossible
18:28:06 <Tritonio> oklopol, ?
18:28:07 <oklopol> Tritonio: didn't understand or wonder how the fuck that's possible?
18:28:23 <Tritonio> oklopol, i don't know wth you are talking about.
18:28:25 <oklopol> okay
18:28:34 <oklopol> let's say i have a function parse
18:28:39 <oklopol> parse("oko")
18:28:50 <oklopol> ---> "oko", ["o", "k", "o"]
18:28:55 <oklopol> it "parsed" it
18:29:02 <oklopol> seems it's just a split
18:29:04 <oklopol> anyway
18:29:12 <oklopol> i change the thing to parse
18:29:20 <oklopol> parse("hundrum")
18:29:34 <oklopol> ---> "hundrum", ["o", "k", "o"]
18:29:40 <oerjan> when you say you have to run the program twice, do you mean the _whole_ program or just the relevant functions?
18:29:53 <oklopol> oerjan: the whole program
18:30:03 <oklopol> then i do that again
18:30:05 <oklopol> parse("hundrum")
18:30:14 <Tritonio> oklopol, this must be python so I have no idea.
18:30:16 <oerjan> does the parse function have internal state that may have been preserved?
18:30:28 <oklopol> ---> "hundrum", ["h", "u", "n", "d", "r", "u", "m"]
18:30:35 <oklopol> oerjan: no :)
18:31:19 <oerjan> maybe you could paste somewhere?
18:31:28 <oklopol> pretty impossible :\
18:31:36 <oklopol> i have the code on an offline computer
18:31:47 <Tritonio> :-)
18:32:23 <oklopol> i think it's better not to think about it :)
18:32:39 <oklopol> if python thinks that's funny, i let it.
18:32:52 <oerjan> maybe you have variables that you think are local but that are actually global or preserved?
18:33:15 <oklopol> that isn't possible in python
18:33:28 <oklopol> plus globals are zeroed at rerun
18:33:45 <oklopol> preserved words are highlighted
18:34:02 <oerjan> whatever
18:34:52 <oklopol> you have to introduce globals using :: or the keyword global
18:35:18 <oklopol> so i don't see how this would be possible
18:35:34 <oklopol> but it's not a problem, really
18:35:49 <oerjan> well, my guess is it is something simple that you don't see because you _think_ you know what it does
18:36:18 <oerjan> (it usually is)
18:38:01 <oklopol> err... i broke it, now xD
18:38:49 <oklopol> oerjan: i was just telling this as an interesting quirk, and now i have to find out why it happens because you made me wanna know :|
18:39:01 -!- RedDak has joined.
18:40:16 <oerjan> bwahaha >:>
18:42:40 <oklopol> argh, i thought i made a subtle change in the structure and broke everything
18:42:41 <oklopol> :DD
18:47:59 <oklopol> okay, i'm pretty sure i've suffered some kind of a braindeath
18:55:14 <oklopol> hmm... now i *have* to find out why it's doing it, it won't change what it's parsing
18:55:30 -!- RedDak has quit (Connection reset by peer).
18:57:02 <oklopol> okay... i find out why it did that
18:57:24 <oklopol> but i don't really understand how it could even work with what i had there :|
18:57:35 <oerjan> :D
18:57:41 <oklopol> i had... hmm
18:57:51 <oklopol> the parsing is done in stages
18:57:51 <oerjan> i guess that is progress, somehow
18:58:02 <oklopol> and... one stage was missing
18:58:23 <oklopol> for each stage there's a variable that holds the return value of the last stage
18:58:38 <oklopol> so i was using an uninitialized variable every time
18:58:47 <oklopol> i guess python just took a random old value
18:58:58 <oklopol> ...can it do that O__o
18:59:03 <oerjan> "None", perhaps?
18:59:08 <Tritonio> anybody that knows befunge?
18:59:12 <oklopol> err
18:59:28 <oklopol> if it was none, then how come it was the result of the last parsing? :)
18:59:32 <oerjan> Tritonio: it's been a while since i looked at it
18:59:51 <oklopol> Tritonio: depends on what you're asking
18:59:56 <Tritonio> ok
19:00:02 <oerjan> oklopol: i mean the value None
19:00:02 <oklopol> i know the name, i know the main idea
19:00:09 <oklopol> yeah
19:00:12 <Tritonio> i took this from the documentation
19:00:13 <Tritonio> The g command examines the contents of the playfield. It pops a y coordinate off the stack, then an x coordinate. It pushes the value found at (x, y) onto the stack. If the thing at (x, y) is a Befunge-93 instruction, the value pushed will be the ASCII value of that character.
19:00:14 <ihope> Tritonio: why?
19:00:17 <ihope> Oh.
19:00:24 <oklopol> oerjan: i know you meant it
19:00:35 <Tritonio> I don't understand a detail.
19:00:35 <ihope> Tritonio: do you have a question, then?
19:00:47 <oklopol> but if it was passed to the printing stage, it would've printed None
19:00:53 <oklopol> not the result of the last parsing
19:00:57 <Tritonio> it says that it pushes to the stack the value it finds at (x,y)
19:01:06 <Tritonio> if it finds 3 at that position
19:01:08 <oklopol> xy in the code
19:01:17 <Tritonio> it will push 3 or 48+3 to the stack?
19:01:31 <ihope> I imagine it pushes the ASCII value for "3" onto the stack.
19:01:32 <oklopol> ascii value
19:01:39 <Tritonio> ok then everything is fine
19:01:44 <oerjan> 48+3 if it was the character '3'
19:01:51 <ihope> Especially if 3 is a Befunge instruction.
19:01:52 <Tritonio> i am trying to find a way to convert brainfuck programs to funge
19:01:58 <oklopol> either that or the author had some serious mental problems
19:02:02 <Tritonio> lol
19:02:05 <ihope> :-)
19:02:27 <ihope> Okay, time to decide what the game's main data thingy should consist of.
19:11:21 -!- RedDak has joined.
19:15:07 <ihope> List of (nick, list of kills, list of friends, time of last kill)
19:19:38 <ihope> Oh, lives left is needed, too.
19:19:49 <ihope> (nick, lives, time of last kill, list of kills, list of friends)
19:21:08 <oklopol> you can be friends with anyone without delayz?
19:21:51 <ihope> Why not?
19:23:48 -!- RedDak has quit (Remote closed the connection).
19:25:34 <oklopol> because of the lack of time of last befriendation
19:25:44 <oklopol> anyway, now it actually seems to work!
19:25:52 <oklopol> though, second time it seems to work
19:25:58 <oklopol> it prolly doesn't
19:26:43 <oklopol> so far so good, parsed "1+2+3++4 1 2+5 3" right
19:26:48 <ihope> I mean, why shouldn't you be able to be friends with anyone with no delay?
19:27:16 <oklopol> and i meant: so you didn't put in the delay, then
19:27:28 <oklopol> just to show you i was listening when you wondered about it earlier.
19:27:37 <ihope> Yeah, I'm currently not planning to put in a delay.
19:27:50 <oklopol> make it like 10 sec or something
19:28:01 <oklopol> so it's there but not really
19:28:03 <oklopol> hmm
19:28:08 <oklopol> drinking stuff ->
19:28:11 <ihope> Why should there be a delay at all?
19:28:58 <oklopol> well, lament had one :>
19:29:13 <oklopol> i thought you said:
19:29:24 <oklopol> <ihope> Yeah, I'm currently planning to put in a delay, though.
19:29:39 <ihope> When?
19:29:45 <oklopol> in my head
19:29:54 <ihope> Ah.
19:30:00 <oklopol> i read fast and unaccurately.
19:30:07 <oklopol> and my ed is frozen.
19:30:10 <oklopol> yay
19:30:17 <oklopol> it'll burst everywhere
19:31:19 <oklopol> hmph, it seems it does some small errors, still :|
19:31:31 <oklopol> my parser, that is
22:34:19 -!- poiuy_qwert has joined.
22:44:26 <oklopol> you ppl know any good books about parsing? i'm quitting :P
22:50:11 <ihope> I know there's Parsec, the parsing library for Haskell, but that's probably not much help.
22:50:28 <ihope> You might want to at least take a look at it, though.
22:50:49 <oerjan> i did see someone here use a parser library for Python
22:57:04 <oklopol> i could look at any parser and find a solution, i think
22:57:12 <oklopol> i seem to have a mental block right now :|
22:57:34 <oklopol> perhaps because i've been playing the trivia 24/7
22:57:49 <oklopol> might not nourish the brain that much
←2007-05 2007-06 2007-07→ ↑2007 ↑all