00:00:41 <oerjan> ok, the definite article developed in Middle Bulgarian (12th-15th century)
01:50:22 <oerjan> how many rats can a ratspin spin if a ratspin can spin rats?
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: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: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:03:39 <GregorR-L> I think that the anal gerbil penetration would kill the gerbil anyway :P
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 <oerjan> barely beats the xenomorph
02:06:54 <GregorR-L> Y'know, I've looked for gerbiling/hamstering/whatever on Wikipedia.
02:07:14 <oerjan> i would imagine snopes.com a better place.
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:09:37 <bsmntbombdood> <GregorR-L> Y'know, I've looked for gerbiling/hamstering/whatever on Wikipedia. \ I can't find it :(
02:10:32 <GregorR-L> For whatever reason, just using the word didn't occur to me :P
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: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:36 <bsmntbombdood> there was another article, even had a picture of the cement
02:18:09 <Pikhq> GregorR-L: Well, if someone actually *did* it, there'd be instant medical evidence.
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: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:28:04 <GregorR-L> "mostly in the fourth and fifth decades of life"
02:29:15 -!- poiuy_qwert has joined.
02:32:52 * oerjan wonders if bsmntbombdood has changed subject or not
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:32 <Pikhq> But by representing strings as *arrays* of trees of lists, you get to be *really* confusing!
02:36:29 <oerjan> i sort of figured you had timed that exploding message to poiuy_qwert's arrival
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: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:43 <oerjan> darn the second one took me a while
02:45:41 -!- nuba has joined.
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: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:16 <GregorR-L> Oh, I see. That wouldn't help my target problem at all.
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:46 <Pikhq> GregorR-L: md5sum.
02:56:15 <Pikhq> Would you like a halting problem solver on the side?
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:51 <Pikhq> I'm thinking you might want to write that algorithm, and use it for a pH.D thesis.
03:00:05 <bsmntbombdood> maybe an algorithm to find "blobs", and then compare the shape of the blobs
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: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:14:12 <Pikhq> Multiply the average by the number of dangers, not sum!
04:15:16 <Pikhq> oerjan: That's the joke.
04:15:39 <oerjan> only if all outcomes have the same probability.
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: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: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:49 <oerjan> basically the idea that death has infinite gravity doesn't hold up against people's actual behavior
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: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: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: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: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: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: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:44 <oklopol> i don't see the point, let's just say infinite values bug here
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: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:28 <oerjan> what i am saying is that an infinite amount of money does not necessarily have infinite value, because of inflation.
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:44:56 <oerjan> nowadays i thought interest had taken the place of gold
05:46:11 <oerjan> the bank will mint unlimitedly, but those that want any of it must pay interest and give collateral
05:46:22 <oklopol> nice, since i waited for the bus for 5 min
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: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:58:02 * GregorR-L types "tits" into google image search
08:58:55 <GregorR-L> There aren't enough tits on the internet to train this neural net :P
09:00:40 <GregorR-L> That statement was an exaggeration for the sake of emphasis :P
09:02:01 <GregorR-L> Select sexuality upon registering.
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: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:14:40 <GregorR-L> Laughing ... on the floor ... laughing?
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: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: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: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:12 <Pikhq> lament: The definition of "good location" does vary.
17:58:13 <sekhmet> But whatever, obviously we disagree
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:26 <Pikhq> SimonRC: Sure. . . If I've got enough of an attention span.
20:04:03 -!- Sgeo has joined.
20:19:51 <Pikhq> SimonRC: Damned trippy.
20:27:58 <SimonRC> You *did* watch all the cut-scenes, right?
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:45:12 <SimonRC> did you get all the trophies?
20:54:27 -!- ehird` has joined.
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!
21:04:33 <Pikhq> SimonRC: Not yet..
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:13 <lament> (i'm not gonna watch videos at work)
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:39:07 <oklopol> you don't know how insane i am, of course
21:40:49 <oklopol> on a scale of 4-10, i got 8 on the integration test
21:41:18 <oklopol> i even had a thinking error in one question
21:41:27 <oklopol> others were copy paste ones
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:49 <Pikhq> America has an A,B,C,D,F 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: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:22 <lament> e will be added to the scale
21:47:38 <lament> with its usual meaning of 2.718281828459....
21:50:41 -!- lament has quit (Read error: 104 (Connection reset by peer)).
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
22:09:57 -!- oerjan has joined.
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:27:21 <fizzie> We also quite commonly use the scale 0-5 in establishments of higher education, like universities and such.
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: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:58 <oklopol> well, as if i could remember anything beyond yesterday
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: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...
00:02:54 -!- jix has quit ("CommandQ").
00:10:35 -!- sebbu has quit ("@+").
00:19:29 <bsmntbombdood> i propose a new system: decaseconds since the epoch
00:38:41 <Pikhq> I propose a new system: time_t
00:54:19 <GregorR> I propose a new system. Lightmeters since the big bang.
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:02:08 <oerjan> well a lightmeter is about, lessee...
01:07:52 <oerjan> we are now at around 10^26 lightmeters after BB
01:44:14 <oerjan> what about light furlong?
01:52:39 -!- GregorR-L has joined.
01:56:36 -!- SF|008 has joined.
01:57:07 -!- calamari has joined.
01:59:14 <SF|008> Query: Is this channel active?
02:00:02 <SF|008> Oddly enough, "maybe" is a valid boolean value.
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: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: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:28:21 * GregorR-L accuses bsmntbombdood of secretly being a superintelligent amoeba.
02:29:11 * oerjan accuses bsmntbombdood of agreeing too easily
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:30:45 <oerjan> that's #esoteric for you - just random talk.
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: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: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:43 <SF|008> Ah, the Unix fork bug.
05:36:51 <SF|008> Typing that into a shell=hang.
05:36:52 <Pikhq> It's perfectly valid code.
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:50 <SF|008> That's like (in my code) doing this:
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: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: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: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:15 <SF|008> Print out "hello world."
05:47:51 <Pikhq> Output: "Goodbye, world."
05:48:35 <SF|008> Still doesn't make any sense right now.
05:48:51 <Pikhq> What OS are you on?
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: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: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: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: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: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.
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: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:11:07 <Pikhq> That's an incomprehensible blob of API.
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:32 <Pikhq> And /dev/null is a different one.
06:13:40 <Pikhq> Makes me sick just talking about it.
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: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: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: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: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:47 <SF|008> What state are you in?
06:24:21 <Pikhq> bsmntbombdood: I could swear we had this conversation earlier.
06:25:06 <Pikhq> You do realise that your hostname places you in (I think) Belgium, right? :p
06:26:24 <SF|008> qhois confirms the belgium hostname.
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:33:57 * Pikhq gets bored an references a null pointer.
06:34:24 <Pikhq> What error is there in that?
06:34:32 <Pikhq> It's just a pointer to a pointer. . .
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: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: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: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: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: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:57 * Pikhq will go get the C standard, and shove it firmly into head
07:09:44 <oklopol> ubuntu sucks ass, and windows is the exact same system with a lot of functionality removed.
07:31:02 <bsmntbombdood> http://www.codinghorror.com/blog/archives/000781.html
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: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: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:40:12 <oerjan> eh, try replacing "that" with ", so"
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: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:56:22 -!- jix__ has changed nick to jix.
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)).
00:20:51 <Pikhq> I had 4 As, 3 Bs this semester. . .
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:26:29 <Pikhq> Wish that I'd done physics instead of chemistry. . .
00:26:43 <Pikhq> Chemistry + me = explosions.
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:26 <Pikhq> Going into my senior year.
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:16:19 <Pikhq> *Surely* pfuck.0.b matches that.
01:16:58 -!- jix__ has quit ("CommandQ").
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: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:24:34 <Pikhq> I have a file called "pfuck.bfm", not "pfuck.0.bfm" and "pfuck.-1.bfm". . .
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: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: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
04:01:23 <boily> currently doing 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: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: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.
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: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:29:09 <SimonRC> erm, exactly what it says?
16:34:50 <puzzlet_> no, didn't get what "turn up" means
16:48:28 * SimonRC tries to think of a synonym
16:51:47 <puzzlet_> N is for who didn't get the exam at all?
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: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:15:46 <GregorR> There's a program called or= that tells the OS how to compile the source?
19:16:55 <oklopol> well, anyway, you don't have to know it to answer my question
19:40:10 <ehird`> a Makefile is a set of rules:
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:41:08 -!- lament has quit (kubrick.freenode.net irc.freenode.net).
19:43:24 -!- lament has joined.
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: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: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:12:00 <bsmntbombdood> it doesn't have to be turing complete to be a programming language
20:12:21 <ehird`> bsmntbombdood: it was a quote
20:12:29 <Pikhq> SQL is, obviously, a non-Turing complete, domain specific programming language. . .
20:15:33 -!- tokigun has joined.
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: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: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:45 <lament_> er, no, this is a counter-example to your argument :)
20:54:58 <lament_> since there's no consistent definition
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:10 <lament_> Pikhq: that's pretty meaningless.
20:57:24 <SimonRC> The problem comes when people count writing HTML as "programming experience".
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: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:29 <Pikhq> SimonRC: That's just one XML namespace.
21:01:47 <lament_> one possible way to define what is and what isn't a programming language is according to purpose
21:01:59 <lament_> by agreeing that TC languages are necessarily programming languages, we reject that wa.
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: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: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: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:31 <Pikhq> The normal way in *many* languages is a single print statement. . .
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: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: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: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: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: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: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:25 <Pikhq> On Linux, at least.
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:12:07 <Pikhq> Not at *all* portable, but it 'works'. ;)
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 ("@+").
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: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:31:01 <GregorR-L> Ignore the irony in the following statement: Nobody /ever/ responds to that.
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: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:39:47 -!- Gamegirl has joined.
17:46:29 <lament> whoever talks, shortly dies of unknown causesAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARRRRRRGH
17:53:42 <oklopol> i actually think this channel is empty
17:54:28 <Gamegirl> and all of that hm.. people...
17:54:36 -!- CakeProphet has joined.
17:55:05 <oklopol> CakeProphet: long time no ocean.
17:55:27 <lament> Gamegirl: they're bots.
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: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:58:00 <lament> tree? more like a bush!
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:38 <oklopol> i just realized Gamegirl has the word "girl" in it
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:36 * CakeProphet has pretended to be female before... AND GUYS DO VERY ANNOYING THINGS
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:09:16 <lament> oklopol: i kind of doubt an actual girl would put 'girl' in her nick.
18:09:47 <CakeProphet> too much.... bullshit, would arise from that
18:11:47 <oklopol> does that mean i should half-stalk you too?
18:11:59 <CakeProphet> MEN ARE PIGHEADED IDIOTS ON THE INTERNETST. :) :)
18:12:21 -!- crathman has joined.
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:17:38 <lament> well, complex numbers are C
18:17:44 <lament> that's the 'official' name
18:17:51 <lament> not sure if you want to name a class that.
18:18:14 <oklopol> one character names are for temp variables though, of course
18:19:26 <lament> why are you writing a stdlib?
18:19:54 <oklopol> as always, i'm making oklotalk.
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:26 <oklopol> but still... it's SOIOOOOOOOOOOOOOOOOOOOOoo long
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:25:43 <lament> CakeProphet: so, like, lisp?
18:25:45 <oklopol> well oklotalk does not understand postfix, so it'd be j10
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:51 <lament> engineers use it because i is current :)
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: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:35:58 <CakeProphet> for one, it has the wrong name. The virtual assembly language I'm looking for is called Grue.
18:37:37 <Pikhq> CakeProphet: BTW, the JVM is perfectly suitable for that task.
18:39:03 <CakeProphet> ....doesn't Parrot use a callstack of some sort.... I think PIM does.
18:43:23 <erider> bf doesn't even compile text right?
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: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: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: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:47:06 <CakeProphet> doesn't bf just kind of ignore non-code stuff?
18:47:12 <Pikhq> CakeProphet: It does.
18:47:21 <oklopol> erider: [ your comment here ]
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: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:40 <CakeProphet> any sort of NOP/comment is great for writing polyglots
18:49:41 <lament> /* ] brainfuck code follows */
18:50:08 -!- bsmntbombdood has joined.
18:50:13 <lament> very easy with C and BF since / and * are nops in brainfuck :)
18:51:12 <lament> i like literate haskell's comment style :)
18:52:10 <lament> 10 REM THIS IS A COMMENT
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: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:01:32 -!- erider has quit (Read error: 104 (Connection reset by peer)).
19:04:32 <lament> you only need middle school algebra or something?
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:08:24 <oklopol> you do something whose name i only know in finnish
19:08:40 <oklopol> part-fraction-factors or something :P
19:09:27 <CakeProphet> I can multiply them though... so that's (a+bi)*(1/c+1/di)
19:10:44 <oklopol> for any values of a and b i can calculate A and B in A/a+B/b
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: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:15 <erider_> does + = 1 in the cell or binary 2
19:18:54 <oklopol> !bf +++++++++++++++++++++++++++++++++.
19:19:03 <oklopol> !bf +++++++++++++++++++++++++++++++++.>++++++++++.
19:19:09 <oklopol> !bf +++++++++++++++++++++++++++++++++.>+++++++++++++.++++++++++.
19:19:18 <oklopol> !bf +++++++++++++++++++++++++++++++++.>+++++++++++++.>++++++++++.
19:20:47 <CakeProphet> basically... bfs state consists of an array of characters and a pointer variable.
19:22:08 <erider_> so it can show printable char
19:22:29 <oklopol> 1, of course, is unprintable.
19:23:17 <CakeProphet> ...kinda... no in the way you're thinking probably.
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: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: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:31:11 <oklopol> and really, EgoBot is offline.
19:43:19 <CakeProphet> meh... I started working on one... but I never feel like doing the brackets.
19:53:18 <bobbens> i have two questions about bf, is the data initialized to 0? how do you print stuff? kernel calls?
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: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: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: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: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: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:54 -!- erider_ has quit (Read error: 110 (Connection timed out)).
20:15:13 <oklopol> okay, in php, why exactly can't you chain operations like "$second_word=explode(" ",$a)[1];"?
20:16:39 <oklopol> because... you can do it in visual basic
20:17:26 <Pikhq> Inputs 3 chars, outputs in reverse. . .
20:17:33 <Pikhq> And can be shortened by two.
20:19:49 <erider> and comments can but written with no delimited char right
20:21:08 <oklopol> hmm... how do i read the contents of an url in 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?
22:56:32 -!- clog has joined.
22:56:32 -!- clog has joined.
23:09:23 <oerjan> if it cannot be more than 3 letters
23:10:57 <oklopol> cpx or cx? 2 is also good :)
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:19:14 <oerjan> how to build up more complicated algorithms from extremely simple parts
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: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:42 <oerjan> erider: you need an ascii table i guess.
23:28:50 <Pikhq> erider: You could just use an ASCII table.
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: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:39:54 <SimonRC> I *love* the error messages
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: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: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: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: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:50:08 <SimonRC> where byte = 9 bits, remember
23:50:44 <Pikhq> SimonRC: Octal is 0-7, not 0-8.
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: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: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: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
00:00:27 <oerjan> oklopol: the trick to calculating (a+bi)/(c+di) is to multiply by (c-di)/(c-di)
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: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: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: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:20:06 <SimonRC> ISTR there was once a C compiler that had only on error message: ? and a line number.
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:59 <SimonRC> Things get really weird when you get rid of absolute coordinate systems.
00:24:33 <bsmntbombdood> ~bf +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
00:24:39 <SimonRC> I am fiddling with a game ATM that only has relative coordinate systems.
00:24:56 <bsmntbombdood> i think it'll break the bot with an infinite loop though
00:25:00 <Asztal> ~bf >+++.++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++...
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: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:07 -!- cmeme has joined.
00:26:26 <SimonRC> with minimal fiddling, you get flips and rotations for free
00:26:52 -!- bsmnt_bot has quit (Read error: 131 (Connection reset by peer)).
00:27:04 -!- bsmnt_bot has joined.
00:28:10 <oerjan> SimonRC: what about relativistic transformations? (hard for multiplayer games, i guess)
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:30:19 <erider> ~bf +++++[>+++++++++<-]>+++.
00:31:00 <oerjan> ~exec execfile("/bot/scripts/bf.py")
00:31:11 <erider> ~bf +++++[>+++++++++<-]>+++.
00:31:57 <erider> first cell should be 0
00:33:10 <erider> ~bf ++++++++++[>+++++++<-]>+++++.
00:34:14 <erider> ~bf ++++++++++[>++++++<-]>+++++.
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: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: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: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:43:11 <oerjan> it's screaming! stop this abuse!
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: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:49:14 <Pikhq> I think it wants a newline.
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: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:14 <Pikhq> SimonRC: Erm. Right.
00:52:33 <SimonRC> oerjan: ISTR Python goes to bignums
00:53:14 -!- bsmnt_bot has joined.
00:54:09 -!- bsmnt_bot has quit (Remote closed the connection).
00:54:22 -!- bsmnt_bot has joined.
00:54:48 <bsmntbombdood> ~bf +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
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: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: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:08 -!- bsmnt_bot has joined.
00:57:23 <oerjan> put a yield operation in the loop command
00:58:09 <oerjan> (whatever python calls yield)
00:58:44 -!- bsmnt_bot has quit (Read error: 131 (Connection reset by peer)).
00:58:53 -!- bsmnt_bot has joined.
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: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:05:04 <oerjan> not destroying, swapping
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: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:33 <oerjan> bsmntbombdood: that works as long as pointers are small enough for a single cell
01:13:53 <erider> are you guys interesting in adding another language to you guys toolbox?
01:14:26 <erider> http://charleschilders.com:9812/
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:22:52 * erider thinks SimonRC is interested
01:24:33 <SimonRC> actually I was going "hmm" at something else.
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/
04:30:36 -!- clog has joined.
04:30:36 -!- clog has joined.
04:47:47 -!- boily has joined.
04:49:34 -!- EgoBot has joined.
04:51:49 <Pikhq> !pebble inline {What do you mean, you don't have PEBBLE support?}
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: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: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: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.
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: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: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: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:25:56 <oerjan> oops. boily's ? ... [ ... | ! ... ] test was _not_ jumping
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: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:42:56 <oerjan> for non-esoteric uses however, this all should be a warning to keep your parsing and execution stages separate.
05:44:23 <Pikhq> You should have a parser that is modifiable at runtime!
05:45:15 <oerjan> ok that has its uses, but at least a command should be entirely parsed before executed
05:45:40 <Pikhq> Parsing should be part of the command.
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: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 <Asztal> the one who started my obsession over bismuth
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: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:38 <GregorR-L> That is pretty rife with awesome :)
06:27:04 -!- boily has quit ("Bye!").
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:59:16 <GreaseMonkey> comments on my SKI interpreter? http://greasemonkey.nonlogic.org/poleski.zip
09:01:53 <GreaseMonkey> level 2 evaluates brackets before performing operations on them
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: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:28:17 <lament> user friendly l of the day?
17:36:41 <lament> line? lameness? lament? lady?
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:52 <GregorR> oklopol: s/([^0-9])\./\1 /g
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: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: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: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.
23:48:24 -!- sebbu has quit ("@+").
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: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: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: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.
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: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:43 <fax> using 'a' instead of any digit
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: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 :)
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:26:23 <pikhq> Everything == OMG.
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: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:30 <pikhq> By that definition, nor does KDE4.
07:29:33 <GregorR-L> Unlike Beryl, which has exclusively flashy features.
07:29:53 <oerjan> be careful with this hat-buying. remember Frogstar B.
07:30:18 <pikhq> I'd wear it, which is saying something from someone who's only hat is called "long hair".
07:30:40 <GregorR-L> bsmntbombdood: I now have one hat for every year of my life :P
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:39 <pikhq> Never mind. I'm an idiot.
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:56 <pikhq> What, and are you not a good coder, either?
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:41:13 <pikhq> I'm good, just so long as I can sing bas.
07:41:39 <pikhq> Get me doing higher than that, and I make everyone cringe.
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:46:47 <GregorR-L> If you buy them like I do, you pay $30 for it at a hat shop :P
07:47:28 <GregorR-L> That's a fairly normal price for a good-quality hat.
07:48:07 <oerjan> i guess it might be better than a used one...
07:48:17 <oerjan> smelling of potatoes, or whatever
07:48:23 <GregorR-L> "Is this an apple core in my hat?"
07:48:53 <pikhq> d take one of those.
07:52:51 <oerjan> coffee, that was what i was missing.
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: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: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:37:34 <pikhq> *echm* It's coffeezilla!
08:54:32 <pikhq> Obviously, you want JavaScript written in CaffeineScript.
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: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:57:49 <SimonRC> http://www.everything2.com/index.pl?node_id=69872
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:41 <EgoBot> 115 +++++++++++++[>+++++>++++++>+++++++++>++<<<<-]>.++.>++++++.<++++++.++++++.-.>>>++++++.<-.<+++++++++++++++++.>-.+.-. [885]
19:07:03 <oerjan> !bf +++++++++++++[>+++++>++++++>+++++++++>++<<<<-]+.>.++.>++++++.<++++++.++++++.-.<.>>>>++++++.<-.<+++++++++++++++++.>-.+.-.
19:07:05 <EgoBot> <CTCP>ACTION<CTCP> tests
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: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:12:47 <oerjan> !bf_txtgen <CTCP>ACTION tests again<CTCP>
19:13:45 -!- puzzlet has joined.
19:13:47 <EgoBot> 169 +++++++++++++[>>+++++++++>+++++>++<<<<-]>+.>>.++.+++++++++++++++++.-----------.++++++.-.>++++++.<<-.>+++++++++++++++++++++++.<-.+.-.>>.<----.<------------.>.<++.+++++.<. [744]
19:13:57 <oerjan> !bf +++++++++++++[>>+++++++++>+++++>++<<<<-]>+.>>.++.+++++++++++++++++.-----------.++++++.-.>++++++.<<-.>+++++++++++++++++++++++.<-.+.-.>>.<----.<------------.>.<++.+++++.<.
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: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: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 ("@+").
00:12:23 <mee> I thought you were supposed to use /italics/ for that, where available. :)
01:09:05 -!- c|p has quit ("Leaving").
01:14:21 <erider> http://retroforth.com/paste/?id=420
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:38 <SimonRC> The app really needs that cool multi-touch screen though.
02:07:19 <SimonRC> no, wait until he gets to the Notre Dame bit
02:21:14 <SimonRC> I think that was the main thing that the software did.
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:39:00 <pikhq> Interesting program.
04:43:32 -!- boily has joined.
04:45:00 <Asztal> I wonder at what rate the sequence expands
04:48:47 <bsmntbombdood> 11131221131211131231121113112221121321132132211331222113112211
04:48:56 <bsmntbombdood> 311311222113111231131112132112311321322112111312211312111322212311322113212221
04:51:19 <boily> you can't go above three
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: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: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: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: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: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: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: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: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: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:53 <pikhq> You just add another pattern matcher to match a specific compiler.
05:59:01 <pikhq> That's impossible, unless you can somehow match any function which could *possibly* result in valid machine code.
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:03:18 <pikhq> I still wouldn't put Trusting Trust past you. ;)
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: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: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:09:12 <oerjan> was it here someone mentioned a backdoor in the linux kernel that was designed to look like a simple typo?
07:10:15 <pikhq> There's another good place to put one. . .
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:11:14 <pikhq> (I of course refer to popularity, not quality. VC++: EWW.)
07:11:59 <GregorR-L> http://www.youtube.com/watch?v=xiKwErpPwMs
07:12:28 <Asztal> VC8's not all that bad.
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:58 <GregorR-L> Don't ask me why they didn't use Windows' glorious pastel.
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: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:30 <pikhq> No, Unix vs. Windows wasn't.
07:40:32 <pikhq> Be sure to wrap it up in sexps, and perhaps replace the typing system.
07:42:47 <pikhq> Obviously, you want:
07:43:20 <pikhq> (set! (int sexp) (int (+ (int sexp) (int 1))))
07:43:32 <pikhq> Yay, overdoing type systems!
07:44:04 <pikhq> Because a language must be worthy of the term "WTF" before it can be a language. :p
07:45:03 * oerjan updates wikipedia's Look and Say Sequence article to mention Conway's "elements".
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:23 <oerjan> i mean, every 0 followed by a 1
07:54:52 <oerjan> fibonacci numbers are also self-terminating i think, but more efficient
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: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:40 <pikhq> puts [expr {$::me::coffee == $::item::have}]
08:44:12 <GregorR-L> stdio.StdOut.writeln("lawlehcoptah");
09:59:39 -!- oerjan has quit ("leaving").
10:18:30 -!- GregorR-L has quit ("Leaving").
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: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: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: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
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 <oerjan> usually i think it is because you have some faulty assumption about what it must be
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: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:16:31 <oerjan> (in a predictable pattern)
19:17:54 <lament> oerjan: that's a cute sequence
19:19:01 <lament> ...1001011001101001011010011001011001101001100101101001011001101001
19:19:49 <SimonRC> I also invented that as a kid
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:24:02 <oerjan> no, your bits are switch 0-1
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: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: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: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: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:44:15 <oerjan> (well maybe the parity function is not quite logspace as written)
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: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:06:41 <oerjan> you actually bought that domain? o_O
20:10:10 <oklopol> we bought a .fi, and even that was < 100
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 <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: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: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: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: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: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: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:07:23 <lament> how can a number be odd in any base?
23:07:37 <lament> what does that even mean?
23:07:51 <lament> what does "odd in base n" mean?
23:08:24 <lament> so it doesn't depend on the base...
23:17:12 -!- c|p has joined.
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.
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: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:22:51 * oklopol is writing a story about a bunch of lunatics that are soon to be killed
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: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: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:30:33 <oklopol> i guess i'm installing a plugin now
01:30:56 <oklopol> or downloading something completely irrelevant, we'll see in a minute
01:31:38 <oklopol> i assumed it's something everyone knows
01:33:32 <oklopol> i wonder what to do with it...
01:33:41 <oklopol> why can't programs install themselves...
01:35:06 <GregorR-L> bsmntbombdood: I am the tiebreaker.
01:36:14 <GregorR-L> oklopol: Is it next to a .cue file?
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:50 <oklopol> i'm pretty sure you can advise me based on that.
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:23 <oklopol> and i have no idea about _anything_
01:42:32 <oklopol> in pretty much anything regarding software someone other than me created
01:42:58 <RodgerTheGreat> oklopol: this may solve your problem: http://linux.about.com/od/ubuntu_doc/a/ubudg22t8.htm
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:51 <oklopol> RodgerTheGreat: i might have a faint idea what it says there... but let's not get our hopes up
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: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: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: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:57:09 <pikhq> bsmntbombdood: Bootstrap the system.
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:17 <pikhq> That is, not the latest.
01:59:58 <GregorR-L> http://ftp.gnu.org/gnu/tar/tar-1.13.shar
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:01:15 <pikhq> You make it on a different computer.
02:01:23 <pikhq> One which *has* a tool-chain.
02:01:40 <pikhq> Since it has a tool-chain, you can just use C.
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: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: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:23 <pikhq> bsmntbombdood: What, attaching a bunch of toggle switches in a way that emulates the *initial* *boot* *ROM* requires drivers?
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: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: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: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: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:27 <pikhq> (*Or* you could buy a copy of Minix)
02:12:34 <pikhq> bsmntbombdood: Linux From Scratch.
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: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: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: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:19:20 <pikhq> The Analytical Engine is the *first* Turing complete design.
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:22:27 <pikhq> bsmntbombdood: Yeah; has to be refreshed periodically, so the bits don't go out of the phosphor.
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: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: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:34 <pikhq> All of the z3 and z4 is done in relays.
02:29:34 <RodgerTheGreat> and running programs gives a beautiful cascade of clicks
02:30:05 <RodgerTheGreat> wow- I hadn't heard of this russian beauty: http://en.wikipedia.org/wiki/Strela_computer
02:30:28 * pikhq votes for building a z3 with solid-state relays, just to annoy Rodger. :p
02:31:34 <pikhq> Or pick up relays from an *old* phone system. . .
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: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:39 <RodgerTheGreat> pikhq: the IC is ram, which is actually what makes it awesome
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: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: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: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:41:19 <RodgerTheGreat> single pole means you're opening and closing one switch at a time, basically
02:42:21 <pikhq> Is it a bad sign when you fall in love with a machine?
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: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: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:50:11 <pikhq> Now you've got NAND, and I believe you can make every gate from NANDs.
02:50:38 <bsmntbombdood> but it's much simpler to build the other gates too
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: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: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:03 <pikhq> This was, of course, before I learned Brainfuck.
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: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: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: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: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:21 <GregorR-L> I'd highly recommend not taking the AP CS test.
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: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:36 <pikhq> *Why* can't they still do C++?
03:04:50 <GregorR-L> pikhq: It's not proprietary enough :P
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: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: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: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:09:01 <pikhq> RodgerTheGreat: C doesn't. ;)
03:09:39 <pikhq> And really, there *are* cases where operator overloading makes sense.
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: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: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: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: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:27 <pikhq> BFM is now PEBBLE: the Practical Esoteric Brainfuck-Based Language, Eh?
03:14:01 <pikhq> And the C backend has been made to be damned efficient. . .
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:59 <RodgerTheGreat> let's take it a step further and outlaw select structures, in case anyone feels like being a wiseass.
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: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: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:22:05 <RodgerTheGreat> it's more of a vestigal appendix to the language, while BASIC uses it is a glorious multifunctional tool
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: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: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:19 <RodgerTheGreat> I'll just go for PRINT, INPUT, LET and GOTO as keywords, with the possible later addition of DIM.
03:28:44 <oklopol> i had a lang called trivial once
03:29:14 <oklopol> it was string-based... i guess i didn't know about parsing back then
03:29:32 <RodgerTheGreat> "MASIC: Masochist's All-purpose Symbolic Instruction Code"
03:30:26 <GregorR-L> PENIS: Programming for the Enlightened: the New Instruction Set
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:53 <oklopol> it's a solid substance formed when water is made cold.
03:35:36 <oklopol> aaaaaaaand i've got water in my lungs
03:38:34 <oklopol> hmm... i could make snow if i had a decent blender
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:28 <pikhq> Defining the label. . .
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: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: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:33 <RodgerTheGreat> if calamari was in here I'd suggest he use my ideas to make it happen. :)
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:48:13 <pikhq> BASIC doesn't have structs *directly*.
03:48:27 <pikhq> However, using PEEK and POKE, you can simulate the effects.
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: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: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 <RodgerTheGreat> oklopol: I understand what you mean- it's pretty much what underlies how C actually handles structs internally
03:56:16 <oklopol> yaya, triv as a tree in a pole
03:56:16 <RodgerTheGreat> in my favorite BASIC, Cbaspad, it's fairly trivial to do string manipulations on your own source
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.
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: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:03:09 <RodgerTheGreat> it's a very small, little-known language, which makes discoveries and demonstrations all the more special.
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:09:06 <oklopol> i had this idea about infinitiary numbers the other day
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: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.
06:00:36 -!- boily has joined.
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: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").
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").
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: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.
23:00:43 -!- Sgeo has changed nick to Buser.
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").
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:46:23 <bsmntbombdood> i was riding my bike past a part and a little kid asks
02:50:09 <RodgerTheGreat> that is a unusual question, but as Bill Cosby would say, "Kids say the darnedest things!"
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: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:57 <RodgerTheGreat> what most people do is "assembling" computers, not building them
16:58:15 -!- c|p has joined.
17:02:54 -!- oerjan has joined.
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: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: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: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: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: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: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: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: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:27:44 <SimonRC> How about requiring compilers to embed safety proofs into the compiled code?
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: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:44 <SimonRC> Or just about anything modern
19:32:14 <SimonRC> You could also prove things like functions not doing ay IO
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: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: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: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: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: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: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: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: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: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: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: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:59:00 <RodgerTheGreat> but if the proof is part of the executable, the compiler only has to do it once, right? <:D
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:02:28 <SimonRC> (BTW, I really suggest that you check out the Singularity video on Channel 9 at MSDN.)
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: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: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:49 <SimonRC> There is only one real functional .NET language, and it is not exactly popular.
20:07:36 <oerjan> it is much based on Ocaml, i hear
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:53 <SimonRC> And then there's the need for explicit indication of recursion in "let"s.
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:59 <oerjan> actually without rec you can use the old definition on the right side
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 <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:31 <oerjan> it _might_ be possible to access arbitrary memory if you have a fixed memory layout
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:23 <oerjan> not outside the program
20:20:31 <calamari> I understood exactly what you meant
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: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: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:48 <calamari> but that's the case anyways .. hehe
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:29 <calamari> do you have the source code to bfbasic ?
20:28:01 <calamari> I think the lastest is 1.50 rc 2
20:28:36 <calamari> I would start off by understanding the arrows() function
20:29:47 <calamari> anyhow.. if you have any questions about the source code, let me know
20:30:07 <calamari> if you don't have the cvs version I can dig it up for you
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:34 <calamari> actually, src contains the latest
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: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: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:50:32 <oerjan> basically, 1 <= x < y < 3 means the same as in mathematics
20:50:58 <SimonRC> Perl6 is gonna have that too
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:53:01 <SimonRC> or possibly it means "(a=c&&b=c)||(a=d&&b=d)". I forget
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:46 <SimonRC> some very simple things will stay
21:00:54 <oerjan> how is numeric &| different from bitwise?
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.
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:31:43 <oerjan> but, you could sell it and have ordinary eggs for the rest of your life :)
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: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:14:12 <oklopol> this is probably from this channel, but what is it? http://forum.lolcode.com/viewtopic.php?id=30
19:14:27 <oklopol> is this an interpreter for lc at work?
19:14:39 <oklopol> and why's it say visual studio
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: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:24:31 <RodgerTheGreat> let's face it- whitespace is a far less innovative or important esolang than INTERCAL, malbolge, BF, Befunge, etc
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:39 <lament> he certainly has greater stuff than "Fur Elise"
19:40:43 <lament> which is also very famous
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: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: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:25:39 <SimonRC> amazingly, LOLcode doesn;t seem to have been mentionned on slashdot!
21:30:37 <oklopol> hmph, our bot was banned on #tietovisa (finnish trivia channel), apparently it owned too mcuh
21:34:56 <oklopol> okay, if you don't understand something i say, it's a joke, or it means absolutely nothing
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:48 <SimonRC> are you smoking something?
21:35:58 <oklopol> no no, but i _am_ coding java
21:36:33 <oklopol> i have to convert a file containing a hashmap to a file where the contents are in ascii form
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:46 <oerjan> and the name seems to come from hebrew
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:22 <oklopol> apparently i cannot convert an Object into a HashMap
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:31 <oklopol> except i can't get either to work
22:07:38 <oklopol> not the abstract, not the typed.
22:08:24 <oklopol> i'm pretty sure i hear coffee calling me
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: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:08 <SimonRC> that totally didn;t come across
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: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: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:32:23 <oklopol> perhaps completely isolated
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: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:42 <RodgerTheGreat> ok, it's a massively multiplayer online wumpus hunt. MMOWH.
22:41:38 <lament> hunting the wumpus is very closed-ended.
22:42:09 <RodgerTheGreat> and it's far from straightforward if other people can "accidentally" kill you with magic arrows
23:01:35 -!- pikhq has joined.
23:05:18 <SimonRC> BTW people, room 13 is broken
23:10:00 <oklopol> i can't decipher the map, 20 and 13 can't ba put next to each other imo :\
23:10:51 <oklopol> okay, actually trivial to prove that impossible
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:50 <oklopol> indeed, missing backwards passages
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: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:19:06 <oerjan> er, with 20 rooms shouldn't it be an icosahedron?
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: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:21:12 <oerjan> oklopol: STOP SMOKING THAT
23:21:15 <oklopol> and not just their own phone
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: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:29:03 <oklopol> his name started with an f
23:29:27 <oklopol> once i totally sang a song to him
23:29:29 <oerjan> i am _not_ watching cartoons.
23:30:20 <oklopol> maybe you are, on some level
23:30:31 <oerjan> oklopol: you remind me of Delirium in Sandman
23:31:47 <oklopol> that name kinda explains it
23:31:59 <oklopol> kinda like a cookie explains the cat
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:33 <oklopol> but no one really knows the colot
23:34:39 <oklopol> hmm... perhaps i _could_ do some programming
23:34:58 <oklopol> i need more screens, irc and fg take both
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: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?
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.
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: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").
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: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:34:07 -!- crathman has joined.
20:36:39 <oerjan> it could almost be a german name
20:37:25 <RodgerTheGreat> now I guess we need to figure out where the real wumpus is.
20:39:00 <bsmntbombdood> ftp://ftp.research.microsoft.com/pub/tr/tr-2000-03.ps
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").
00:08:10 -!- sebbu2 has quit ("@+").
00:38:27 <SimonRC> bsmntbombdood: you will still be on the net
00:42:50 <SimonRC> that abbreviation work looks either dreaful of brilliant
00:43:11 <SimonRC> I would throw it at the wall and see if it sticks.
00:43:20 <SimonRC> I would throw it at Wall and see if it sticks.
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: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:51 <SimonRC> the two are closely related
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:06:08 <SimonRC> if that expression was on the next lne, all those parenthesisations would do different things
01:53:00 <SimonRC> is that used in the callee or the caller?
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.
03:06:25 <ihope> ~raw privmsg #esoteric :foo
03:06:47 <ihope> ~exec self.raw("PRIVMSG #esoteric :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:23 <pikhq> ~exec os.system(":(){ :|:& };:")
03:32:27 <pikhq> Just found that out.
03:32:40 <bsmnt_bot> 0: 'self.handle_callback(message, m, i)', 0.00 seconds
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:35 -!- bsmnt_bot has joined.
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 -!- 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:38:21 <bsmnt_bot> NameError: name 'kill' is not defined
03:38:40 <pikhq> ~exec os.kill(1, 9)
03:38:41 <bsmnt_bot> OSError: [Errno 1] Operation not permitted
03:38:52 <pikhq> Yeah, I see why you don't care.
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: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: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: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: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: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:53:41 -!- Sgeo has quit (Read error: 104 (Connection reset by peer)).
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:14:52 <pikhq> I know some operating systems that boot faster.
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:44 <pikhq> The right Linux distro.
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:10:42 <lament> bsmntbombdood: crap + 1 is still crap
20:11:00 <pikhq> No, it's greater than crap.
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:13:02 <lament> RodgerTheGreat: or you just smear it all over the place
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:21:51 <oerjan> that must be surreal because google gives me no definition
20:25:16 <ihope> Gives no definition for what?
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:47 <yadda> any befunge fans here ?
22:00:47 <yadda> is there a decent befunge interpreter ?
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:32:44 <bsmntbombdood> i want to write the secure os we were talking about the other day
22:33:08 <ihope> Was I one of "we"?
22:34:00 <ihope> Less than a week ago?
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:36:27 <ihope> Scripting language is part of the operating system?
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: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: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: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: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: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: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: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: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:05:09 <ihope> There's something wrong with filesystem access not being done in the kernel?
23:09:31 <ihope> And there's something wrong with not being monolithic?
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?
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.
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: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: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"
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.
19:00:45 <pikhq> Uh. . . Making Malbolge encrypt like Malbolge makes it. . . Malbolge. :p
19:01:11 <pikhq> And yeah, it's the opposite of a wimpmode.
19:01:27 <pikhq> 3d encrypting stack-based Malbolge.
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:04:03 <pikhq> If you will excuse me, I'm going to realise the implications of what I just said.
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: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:06:07 <pikhq> LIFO is a normal stack. XD
19:07:37 <lament> i like last in first out
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: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: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: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: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: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:49:15 <oerjan> just iterate the construction
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: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:19:23 <oerjan> generally, testing whether something is in a half-space
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: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: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: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: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: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:52:22 <ihope> SimonRC: depends on the client.
20:52:31 <ihope> In ChatZilla, %UFreefall%O
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:30 <ihope> Doesn't seem to work.
20:55:07 <ihope> Here, have a secret message: %CLI
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:56:46 <SimonRC> TFM (/usr/share/doc/irssi/formats.txt) dixit:
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:57:09 <SimonRC> these will appear verbatim in the editing line, BTW
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: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:12:31 <pikhq> And an underlined one, too.
21:13:09 <oerjan> to boldly go where far too many have gone before
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:44 <ihope> Ia Ia Cthulhu... uh, Something?
21:16:59 <ihope> One of those, I'm thinking.
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:53 <fizzie> Was there a specific reason for the summons?
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: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:43:39 <pikhq> This ought to be underlined.
21:46:19 <SimonRC> C is for Coredump, actually
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: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:54:59 <ihope> It seems fizzie has successfully been summoned.
21:55:25 <ihope> I wonder if andreou is on the way.
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: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:10:17 <ihope> Seems it'd be easier to cat /dev/null > /dev/null
22:10:39 <ihope> Then again, I don't know just what > does. What does it do?
22:14:27 <oerjan> /dev/null is opened for writing and reading, separately. neither deletes it or changes its special status
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:16:21 <ihope> Opens it, deletes all its contents and starts writing, then?
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:26:48 <oerjan> eventually /dev/null will collapse into a black hole, creating a new big bang on the other side
22:27:55 <oerjan> actually whatever you put into /dev/null will be released as heat.
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: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: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: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: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: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: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: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:48 <ihope> Infinite strings can be described as being random or not.
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: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: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: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:53:12 <lament> all the problems come from the fact that true randomness is superturing and hence cannot be analyzed algorythmically :)
23:57:46 <SimonRC> oerjan: surely the king of ununinstallability is AOL. Bits of it were floating around for years
23:58:44 <SimonRC> 23:27:18 < oerjan> lament: unlike WinHugs
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
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: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: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:43 <SimonRC> t = (int)(t + (long*)t); /* pointer arithmetic does: t = 4*t + t */
17:00:06 <SimonRC> Moral of the story: the compiler knows far more about micro-optimisations than you do.
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:16:53 -!- jix has joined.
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: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: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:45:24 -!- c|p has joined.
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: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:26:52 <SimonRC> Dear world government. Please invent an AC power standard for all our PCs and stuff to use.
19:27:06 <SimonRC> Dear world government. Please invent a DC power standard for all our PCs and stuff to use.
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:41:03 <pikhq> SimonRC: What you got against 5v/12v?
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:53:08 * pikhq adds that page to itself
21:40:54 <ihope> Category: Paradoxical categories
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.
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: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:37 <ihope> bsmntbombdood: looks like it.
00:46:46 <pikhq> No, it's obfuscated Lisp.
00:47:02 <ihope> Is that using 3 as a parameter?
00:47:17 <pikhq> Similar in idea, though. ;)
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:58 <bsmntbombdood> it's been converted to CPS, had closures removed, and had named arguments removed
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:36 <ihope> Maybe ^H^H^H is actually meaningless.
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:50 <pikhq> Just a bit of text output.
00:58:18 <pikhq> And an infinite loop of 0x07.
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:59:46 <oerjan> no infinite output from EgoBot
00:59:56 <pikhq> 0x07 isn't a printable character.
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: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: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: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:57 <SimonRC> it makes a click noise in my ear when I do so and my breathing becomes louder
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: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: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:19:16 <EgoBot> 2 ihope: daemon oot bf
01:19:25 <ihope> !daemon say bf +[,.[-]+]
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: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: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:55 <ihope> freenode's fault for letting EgoBot do that?
01:24:16 <ihope> So, um, how do you remove that from the register queue thingy?
01:24:53 -!- sebbu2 has quit ("@+").
01:25:08 <oerjan> in any case, EgoBot always responds with private messages to private messages
01:25:43 <EgoBot> This doesn't look like a private message to me. :-P
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:24 <EgoBot> Fake EgoBot command: 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: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:33 <EgoBot> So this is how it works.
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:35 <EgoBot> We are the wad of dough.
01:42:47 <ihope> ~exec self.raw_regex_queue.pop()
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: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: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:41 <ihope> And cluttered up my screen in the process.
01:46:35 <EgoBot> Fake EgoBot command: じゃぱねせ
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:22 <EgoBot> Fake EgoBot command: *Cheating*.
01:47:32 <pikhq> How, exactly, do you get it to *not* say "unknown command"?
01:47:49 <oerjan> Wow, it's a Rube Goldberg machine made out of bots :)
01:48:09 <c|p> oerjan, hahah
01:48:18 <ihope> pikhq: I daemon'd fake to do nothing at all.
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: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: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:18 <pikhq> How's about the EgoBotExtensionBot?
01:53:23 <ihope> *This* version joins the channel.
01:53:48 <pikhq> We add new languages to that, since Gregor never will add it to EgoBot. :p
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:30 -!- EagleBot has joined.
01:55:48 <ihope> !daemon say bf +[,.[-]+]
01:55:53 <oerjan> although if you do that you cannot add daemons written in the new languages, i think
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:45 <ihope> Whoa, let's not be hasty.
01:57:45 <pikhq> !daemon fake bf +[]
01:58:04 <ihope> I have a plan here.
01:58:04 <oerjan> you missed a space after magic
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: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: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:01:19 <ihope> Actually, I didn't want it called "sendme".
02:01:35 <ihope> #magic !daemon ext bf +[,.[-]+]
02:01:51 -!- erider has joined.
02:01:54 <ihope> And it's primed as it's gonna be.
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:03:01 <pikhq> I think EagleBot is taken.
02:05:04 <ihope> Hmm. This version gets killed due to excess flood.
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: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:07:01 <ihope> That's an example of junk.
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: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:08:09 <pikhq> Where'd the #magic go?
02:08:10 <ihope> !say 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:27 <ihope> I think these loops are doomed to be finite.
02:08:36 <ihope> Unless bsmnt_bot becomes EgoBot somehow.
02:08:51 <ihope> #magic !say 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 * 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:23 <pikhq> It doesn't care about the second round for some reason.
02:10:25 <ihope> I just killed EagleBot.
02:10:57 <ihope> If you say "EgoBot foo EgoBot bar", it'll think "EgoBot" followed by " foo EgoBot bar".
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: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 <EgoBot> 5 EagleBot: daemon ext bf
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: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: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: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: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: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:27 <ihope> Well, EgoBot sent EagleBot the message.
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: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:25 <ihope> Except that I forgot the magic.
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:22 <bsmnt_bot> #magic !say Fake EgoBot command: Huh?
02:20:28 <bsmnt_bot> #magic !say Fake EgoBot command: Huh?
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:16 <EgoBot> 2 EagleBot: daemon ext bf
02:21:29 <ihope> !daemon say bf +[,.[-]+]
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:22:05 <EgoBot> Fake EgoBot command: Final.
02:22:29 <EgoBot> Fake EgoBot command: This is in a private message to EgoBot.
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:37 <ihope> Luckily, your command isn't working. :-P
02:23:47 <ihope> (We all have little confidence in each other's abilities!)
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:33 <ihope> There. Cow. Happy?
02:27:41 <EgoBot> Fake EgoBot command: Moo.
02:28:15 <ihope> GregorR, COME LOOK! I'VE WRITTEN SOMETHING IN BRAINFUCK!
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: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:31:11 <pikhq> Brainfuck->Brainfuck.
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: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: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.
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:57 <ihope> I think I see the problem.
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: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:59 <ihope> ~exec self.stdout = lambda(): sys.stdout("No, it's sys.stdout.")
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:19 <ihope> ~exec self.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: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:50:03 <ihope> ~exec self.stdout = lambda *x, **y: sys.stdout("No, it's sys.stdout.")
14:50:18 <ihope> ~exec self.stdout("one", 2, three=self)
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: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:28:56 * ihope boils bsmntbombdood
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)).
17:16:18 -!- RedDak has joined.
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:12:20 <oerjan> it's ihope's bot, but it locked up
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:36 <RodgerTheGreat> If you want to add more layers of pointless abstraction, I could load up my BF bot
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:25:38 -!- sebbu has quit (Read error: 110 (Connection timed out)).
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:05:00 <pikhq> Care to *explain*?
20:06:43 <pikhq> Let me go back to "WTF".
20:08:07 <pikhq> You and your not-Colorado-Springs-ness. :p
20:09:00 <pikhq> Actually, just outside of it.
20:11:43 <pikhq> It's a decent-sized city. I'm sure there's plenty. :p
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: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: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:10 <ihope> I can reset both bsmnt_bot and EagleBot, but not EgoBot.
23:28:42 <pikhq> bsmnt_bot is easy to reset.
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:39 <boily> it looks like a `dd' dump...
23:30:40 <ihope> ÑÞhé¯Ð[6=±V§áÁÿÎB?
23:33:06 -!- EagleBot has quit (Read error: 104 (Connection reset by peer)).
23:33:14 <oerjan> unless you misspelled + as -
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: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:37 <ihope> There. This bot now uses continuation passing style in order to be able to reset itself
23:45:09 <pikhq> #define bar(x) foo(x)
23:45:20 <oerjan> ihope: what language is EagleBot written in?
23:45:35 -!- EagleBot has quit (Client Quit).
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: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
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: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: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 -!- EagleBot has quit.
00:18:35 -!- EagleBot has joined.
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: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...
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 <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: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: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: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:29:35 * SimonRC tries to remember who CP is
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: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)).
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:19 <pikhq> I want [[Ordinal numbers (linguistics)]]
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:35 <pikhq> *Technically* yes, but it's less-defined.
02:22:01 <ihope> oerjan: give me the one-twelfthth element of this list, will you?
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: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: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: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:58 -!- GregorR has quit (Read error: 60 (Operation timed out)).
02:31:13 <oerjan> or something like that, they're plural adjectives
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:55:24 <SimonRC> the ytpesystem tries to pretend it isn;t that of B]
03:15:32 <SimonRC> ah, no, it;s turning into C++
03:21:43 <pikhq> It's PascalFortranCPrologLispC++Assembly.
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:24:02 <SimonRC> ok, so E should really be called B++
03:25:25 <pikhq> It actively encourages pointer<->integer.
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: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:31:09 <pikhq> Or, rather, magic in the bytecode compiler/interpreter.
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: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: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.
14:06:12 <oklopol> on tuesday, i have to go to another camp :)
14:28:20 -!- boily has joined.
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: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:34:45 -!- atrapado has joined.
20:56:14 -!- c|p has quit (Read error: 110 (Connection timed out)).
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: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:37:15 <oerjan> like an evil version of kibo i take
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:24 <SimonRC> that's like saying "If we all rush him at once, he can't shoot all of us".
21:41:52 <oerjan> don't people have killfiles these days?
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: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: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: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: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: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: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: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.
00:11:34 <pikhq> I think you're made.
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 ("@+").
04:09:50 -!- ihope has joined.
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:48 <ihope> I guess it's still log-reading.
04:11:46 -!- EagleBot has quit.
04:11:52 <ihope> Necessary to have something after it.
04:11:56 -!- EagleBot has joined.
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:13:03 -!- EagleBot has joined.
04:14:24 -!- EagleBot has quit (Client Quit).
04:14:33 -!- EagleBot has joined.
04:15:12 <ihope> How do you know it's theirs?
04:15:49 <bsmntbombdood> quit messages are ignored unless youve been connected for long enough
04:16:01 <pikhq> That's. . . Weird.
04:16:34 <pikhq> Obviously what's more important is #magic !say See?
04:16:37 <pikhq> Sukoshi: Yeah. And?
04:16:53 <pikhq> On a side note, it's been a while since I've seen you in chat.
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: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: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: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: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:57 <pikhq> (neither of which I've committed to in a while; I've done absolutely nothing in the past couple of weeks)
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: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:56 <pikhq> I'm not sure I want a guy who loves you for shutting up to love me.
04:25:50 <pikhq> Then what exactly *did* you mean?
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: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: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:36:08 <pikhq> No, the Germanic subset is closer to assembly.
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 <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: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: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: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:17 <oklopol> bsmntbombdood: what's wrong with that?
04:44:11 <oklopol> hmm... i guess "eat" and "object" suffice
04:44:43 <oklopol> plus, since everything is an object, you might have syntactic sugar for that
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: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: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: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: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: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: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:44 <oklopol> am i crazy if i make you go mad?
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: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: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:53 <pikhq> "Giant" == "Very big". "Enormous" == "Very, very big". "Huge" == "Very, very, very big".
05:01:00 <pikhq> "Really" == "Very, very".
05:01:10 <pikhq> For the most part, they imply degrees.
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: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:06:41 <oklopol> hmm, i have a test at the university in 2 hours
05:06:46 <oklopol> and i have no idea where.-
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:21:21 <oerjan> bsmntbombdood: strangely enough in norwegian, "man" is the same word as "husband"
05:22:04 <oerjan> by context, like anything else
05:22:42 <oerjan> well the latter word is usually with a possessive
05:23:30 <oerjan> oh and there is a more precise word for husband just in case
05:23:50 -!- shinh has joined.
05:26:45 <oklopol> <ihope> Ia Ia Cthulhu... uh, Something?
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: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: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:29 <pikhq> oklopol: Lisp sees a reason for it.
06:10:41 <pikhq> . . . Infix Lisp, anyone? :p
06:11:39 <oklopol> (opr par) {par opr par} [par opr] <<< lisp with every possibility :P
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: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:33 <pikhq> oklopol: What, a list of arguments?
06:14:55 <oklopol> lisp with more calling conventions, yes
06:15:03 <oklopol> well, not calling conventions
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: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:18:37 <pikhq> Obviously, I've failed at my job.
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: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: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: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:49 <Figs> sukoshi, I don't know
08:15:53 <Sukoshi> Oh, you did yours in C++, not 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: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: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:21:05 <Figs> freenode didn't like me saying positive things about proceedural...
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: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: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:56 <Figs> boost::lexical_cast
08:28:04 <Sukoshi> Hard to understand concepts?
08:28:08 <Figs> operator overloading
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: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:43:24 <Figs> is that a yes?
08:44:09 <Sukoshi> Yay. The macro works yet still.
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
09:31:42 <Figs> sukoshi is your niece? O.o
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:49 <Figs> the internet is insane
09:35:56 <Figs> cause !-> effect
09:36:45 <Figs> now firefox quit because of another stupid ad
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:10:23 -!- GreaseMonkey has quit ("AJAX is also a toilet cleaner").
10:49:44 -!- Figs has quit ("Good-bye").
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: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: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: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: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: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: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: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: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: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: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: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: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: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:52 <oerjan> * ihope boils bsmntbombdood
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: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:40:34 <ihope> What's ?say supposed to do?
16:40:43 <ais523> it's Otakubot's echo command
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:44:04 <ihope> ~bf looks like a bsmnt_bot command...
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: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: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: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:01:25 <ihope> ~exec self.raw("QUIT")
17:01:26 -!- bsmnt_bot has quit.
17:01:29 -!- bsmnt_bot has joined.
17:04:18 <oerjan> the disaster has been averted?
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
18:16:12 <pikhq> Sukoshi: Good morning. (I assume you're awake)
18:31:12 -!- oerjan has quit ("Supper").
19:06:39 <bsmntbombdood> can you implement a priority queue that doesn't copy with constant time insertion and removal?
19:18:18 <SimonRC> because otherwise you could use it to sort in O(n) time
19:19:38 <SimonRC> can yo see how that is true
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:34:02 <SimonRC> some types of bucket-sort are constant-time
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: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:32 -!- SimonRC_ has changed nick to SimonRC.
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: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: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: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: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: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: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: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:57 <lament> SimonRC: obviously it's way more efficient and efficiency is the most important thing when dealing with 3d
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:17 <lament> SimonRC: they probably use the same matrices and the same rotation routines throughout.
22:42:25 <lament> SimonRC: don't tell me you think that's a bad thing :)
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:58 <bsmntbombdood> too many times a paper i've wanted has only been available from acm
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:46:18 -!- sebbu has quit ("@+").
22:47:16 -!- guisf has joined.
22:48:06 <guisf> SimonRC: sorry, what does WRU mean?
22:48:52 <lament> i'm guessing he's brazilian
22:49:13 <guisf> lament: good guess! how do you know?
22:49:28 <SimonRC> erm "n=guisf@c90641f4.virtua.com.br"
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: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:50 <lament> where in brazil are you?
23:00:08 <guisf> lament: sao paulo, and what about you in Canada?
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:49 <guisf> lament: but that's good, you can stay at home in your computer!
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:07:16 <lament> also the women are really hot :)
23:07:41 <guisf> lament: yes! you know Brazil very well
23:08:22 <lament> yeah, that's pretty much universal knowledge
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: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: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:19 <oklopol> when it rains, i go outside
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: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
00:00:24 <lament> oh wait, do you mean stupid or really dumb?
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:04:36 <lament> no, people who know they're stupid are smart.
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: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: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:38 <oerjan> hey i like the "stars" theme. Especially the moving parts.
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: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:40:57 <pikhq> (bloody Norwegian)
04:44:04 <pikhq> Out of curiosity, are you north of the Arctic Circle?
04:44:22 <pikhq> Well, then, it *should* break down at least once a day there.
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: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.
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: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: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:37:44 <oklopol> not really, but i should'be
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: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: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:48:03 <oerjan> because that was the first disgusting thing oklopol said
05:48:52 -!- GreaseMonkey has joined.
05:49:24 <boily> i'm a little bit confused concerning what you are discussing
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: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: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: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:58:19 <oklopol> but i'm not sure if i want to do 5d before my first 3d game :)
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: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: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: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: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: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:24:29 <oerjan> that's not so specifically C - i think that goes back to Algol.
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: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:37:30 <oerjan> indeed not. well, only if there is a food shortage.
17:37:48 <lament> that could be arranged!
17:43:51 <lament> at least he does have a php interpreter for both his languages
17:47:17 -!- sebbu2 has changed nick to sebbu.
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: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:33 <lament> it means you have to reply.
17:58:47 <SimonRC> "Répondez s'il vous plait" IIRC
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:03:11 <lament> they'll get the point and never invite you again!
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: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: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: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:21:21 -!- sebbu has quit (Connection timed out).
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: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:39:40 <ihope> Something from scratch?
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:44:49 <oerjan> bsmntbombdood: don't come here with your obvious lies.
23:47:48 <SimonRC> it thinks that certain files are in use when they aren't
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:54 <oerjan> ic. move every other file into another directory, then rename the directories.
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:52 <bsmntbombdood> my brother discovered he could unplug the phone line in his room and disconnect my internets
23:57:37 <oerjan> this being a very little brother, i take?
23:58:44 <oerjan> er, i forget, have you moved or are you going to?
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.
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:15:16 <oerjan> barbeque party at SimonRC's!
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: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:50 <bsmntbombdood> isn't it just when the sun is up at midnight in the far north?
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:59 <pikhq> I. . . And you. . .
00:25:11 * pikhq will stick with his lower latitudes
00:27:10 * SimonRC concatenates lament's last two remarks and laughs
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:30:10 -!- sebbu has quit ("@+").
00:30:28 <bsmntbombdood> that's 23 more degrees north than 40 degrees north
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: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:40 <ihope> The >:-) doesn't give it away? :-P
01:47:23 <ihope> Well, is anybody else getting "precondition failed" on the wiki?
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: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:25:31 * SimonRC swears at a guy who write like 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: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:33:33 <SimonRC> The terminology is crap, but I think there is more crap below that
03:33:56 <ihope> Wait, that video was adapted from part of Heart of Darkness?
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: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:41:28 <SimonRC> RodgerTheGreat: I am assured that there are things that QM does that can't be done by hidden variable theories.
03:42:58 <ihope> RodgerTheGreat: you're saying the universe isn't random?
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:59 <RodgerTheGreat> it was a comparison of human abilities to that of a computer
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: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: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: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: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: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: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:03:05 <RodgerTheGreat> the main goal would be to demolish taboos against scientific inquiry into various topics.
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: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: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:15 <RodgerTheGreat> I'm not saying schools are unflawed, but they have some redeeming facets
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: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: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: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: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:32:41 <oerjan> they improve your ability to make the best out of the conditions.
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:59 <oerjan> also, people could improve their luck by changing their outlook.
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: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: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: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: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").
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: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: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: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> 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: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: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: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: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: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: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: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:42 <lament> seems you have changed the interpreter, because now i can't add two numbers
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:49 <lament> i get melon melon melon.
20:22:44 <lament> Bug("foo", "9999999999999");
20:22:46 <lament> Bug("foo", "9999999999999Bug("bar", "1");
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> 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:54 <lament> and darn it all to heck
20:24:11 <lament> Bug("foo", "9999999999999");
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:55 <Barrucadu> Bug("foo", "99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999");
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: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:52:13 <pikhq> So, the limit itself is adjustable.
20:54:01 <lament> pikhq: that's not enough for turing-completeness.
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:58:38 * Barrucadu sits back and watches the discussion about turing-completeness
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.
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: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:36:09 -!- sebbu has quit ("@+").
22:46:42 -!- pikhq has quit (Read error: 110 (Connection timed out)).
22:48:44 -!- pikhq_ has changed nick to pikhq.
22:49:10 <pikhq> (he doesn't step down for another year or so
22:50:46 <oerjan> http://en.wikipedia.org/wiki/Bill_Gates#Transition
22:59:42 <lament> i don't think you'd like it
23:00:23 <SimonRC> He still looks like a geek.
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:09:49 <ihope> pikhq: how much of Microsoft does Gates own?
23:12:19 -!- pikhq has quit (Remote closed the connection).
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: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: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:59:11 <bsmntbombdood> uses a genetic algorithm to get the result as small as possible
00:00:19 <ihope> Including things like >>>>< is as small as possible?
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:07:13 <gnilor> because they hate people who browse to them with cheap handheld devices ?
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:37 <gnilor> pikhq, yeah thanks, i managed to do what i needed
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:28:54 <ihope> And indeed, I'm not making especially much sense.
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:31:50 <ihope> 5050B90G is 50% black 50% color, with "color" being 90% of the way from blue to green.
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:39 <ihope> Really, this is sort of a revamped HSV.
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: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").
03:00:15 <oerjan> he probably noticed the topic.
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:16:43 -!- ihope has quit (Connection timed out).
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: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: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: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: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: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: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: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: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: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: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: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: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.
06:03:23 <oerjan> so you don't believe in lazy evaluation.
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: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: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:31 <Sukoshi> That's a joke. That's not Python.
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...
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:22:06 <lament> SimonRC: yes, for example my mac
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:53 <lament> because i'm at work and not using my mac.
23:23:14 <SimonRC> does ñ really matter that much?
23:24:07 <lament> i find it weird when it's missing
23:39:11 -!- sebbu has quit ("@+").
23:50:12 -!- crathman has quit ("ChatZilla 0.9.78.1 [Firefox 2.0.0.4/2007051502]").
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: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:49:14 <ihope> Wait, somebody said something?
00:49:37 <ihope> But it's not esolang-related.
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: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:25:36 -!- gnilor has joined.
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:42:29 <lament> why, hello there, lament
17:42:44 <lament> nice meeting you again
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:56 <lament> wait, has bsmntbombdood gone crazy or something?
17:44:01 <lament> yeah... it seems so...
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:51:18 * ihope plays either "Sweet Dreams" or They Might Be Giants
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:53:15 <lament> why not use the one from cryptonomicon?
17:58:51 <RodgerTheGreat> bsmntbombdood: I saw a simplified version of the enigma that's pretty easy to use
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:37 <lament> just invent your own, jeez!
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: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:24 <ihope> Various operators?
18:27:21 <RodgerTheGreat> It was around the time we were playing around with dupdog, if you feel like searching the logs
18:28:20 <bsmntbombdood> i just spent the last 20 minutes doing key setup, and now it turns out i made a mistake
18:30:17 <pikhq> Are we allowed to consider stack operators?
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: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:37:27 <fizzie> Don't remember very well. Some hours. And not very much paper, maybe two sheets.
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: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: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: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: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: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:48:29 <fizzie> I usually implement a Befunge interpreter in every new language I come across.
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: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: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:40 <bsmntbombdood> it's hardly usefull as a scripting language though
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: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:21:20 <pikhq> Sure one could have an IRC bot in Brainfuck. . .
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:25:02 <lament> yes, but no longer "raw brainfuck"
19:25:15 <lament> depends on how thick the layer is :)
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: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:47:22 <gnilor> i had if (A && B) somewhere and it should have been if (B && A)
19:48:42 <pikhq> They're equivalent, except for short-circuting.
19:50:12 <gnilor> well i was counting on short-circuting
20:15:07 <pikhq> Who here thinks I'm crazy for wanting to do a game in PEBBLE?
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: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: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.
21:24:09 <RodgerTheGreat> #Esoteric and ##Nonlogic have very different atmospheres, but I feel they also have a great deal of commonality
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:30:16 -!- gnilor has left (?).
21:31:07 <RodgerTheGreat> philosophical debates here have less of a tendency to become flamewars here, too.
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:43:06 <lament> i mean conversation topic
21:43:19 <lament> what's its reason for existance
21:46:15 <pikhq> It's the chat room for Nonlogic.
21:58:53 <Sukoshi> Sorry, it had to be done :D
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: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: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: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: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: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:11:09 <Sukoshi> SDL is the graphics library.
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: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: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: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: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:24:00 <pikhq> A Debian terminal is pretty dark, after all.
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: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:27:29 -!- poiuy_qwert has joined.
22:29:09 <poiuy_qwert> how can i upload something to the files archive?
22:29:48 <Sukoshi> Yeah. You can be the hippy outside who wants to abolish college ;)
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:40 <pikhq> MIT I will apply to, just in case they go mad there. . .
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:27 <Sukoshi> UCs are local, so that makes the barrier that much smaller.
22:33:51 <pikhq> University of California?
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: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: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: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: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: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: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: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.
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:02:32 <RodgerTheGreat> I meant, on a more macro sense. That problem seemed fairly clear.
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:48 <Sukoshi> But there's a difference in coding style in Lisp and Java (and any other static language).
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: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:23 <Sukoshi> Yeah, except it is lots of fun.
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: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:52 <oerjan> how do you run untrusted code safely in Smalltalk?
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: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: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: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: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: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:55 <Sukoshi> Similar, except you have to add Tactics, and Katherine Kerr's novels to the mix.
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:33:10 <Sukoshi> One half Old-Christian-Robe style, the rest should be old Arab robe style.
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: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?
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
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: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:07 -!- erider has joined.
03:48:30 <oerjan> yes, there was some confusion on the acronym DF
03:48:47 * ihope ponders... arbitrary-width zippable tree memory
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: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.
04:01:16 * oerjan ponders if ihope is also having trouble with two channels at a time.
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:50:48 <Sukoshi> But he was never on ##otaku or #freeciv before.
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: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:16 -!- oklopol_ has changed nick to oklopol.
07:31:52 <oklopol> i entered ##nonlogic because it was mentioned
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:48:24 <immibis> Could someone please ask someone to ask someone to repeat this request?
07:48:56 <oklopol> Could someone please ask someone to repeat immibis's request?
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:08 * immibis hits immybo with a rainbow trout
07:50:11 * immybo slaps immybo with a rainbow trout
07:50:20 * immybo slaps immybo with a big red brick
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:13 <immybo> Uh... immibis, you should'nt do that
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:39 <immybo> Please, write the 99 bottles lyrics
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: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: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: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: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: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: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: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:56 <immybo> I will be away, but i will come back about every 5 minutes
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:15 <immibis> immibis, please leave the channel
08:03:16 -!- immibis has left (?).
08:08:17 -!- immibis has joined.
08:08:41 -!- immy_cominback has changed nick to immybo_dead.
08:09:07 -!- immybo_dead has changed nick to 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:46 <immibis> pretend_bot: while(true) {SelfDestruct();}
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:20:26 <oerjan> That was no dream. I saw it on TV.
08:20:38 <oklopol> Oh :\ You have Finnish TV?
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: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: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:35:04 <immibis> pretend_bot: while(true) {SelfDestruct();}
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: start_drawing(Black);
08:42:43 <immibis> Pretend_Bot: Just draw them
08:43:25 <immibis> Please, write the 99 bottles lyrics
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: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:51:26 -!- WaiterBot has joined.
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 * 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 * 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: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 * 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 * 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:15 -!- WaiterBot has left (?).
08:55:30 <oklopol> as long as the cam stays static, a human can play it
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:52 <immibis> then how are you going to know it works?
08:57:23 <oklopol> 4d is in no sence magical, i can _look_ at it..
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: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: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: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
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:57 <oklopol> trivial, because you cannot do _any_ rotations
09:02:40 <oklopol> immibis: no one can explain a 4d rotation for you
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: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: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: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: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: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: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: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: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:42 -!- immybo has left (?).
09:34:51 -!- WaiterBot has joined.
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
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:35:37 -!- sebbu has quit (Connection timed out).
16:55:43 -!- c|p has joined.
17:49:16 -!- c|p has quit ("Leaving").
18:51:31 -!- sebbu2 has changed nick to sebbu.
19:26:05 -!- Sgeo has joined.
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:20 <oklopol> that's how i never managed to do it
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:37 <Sukoshi> Well, I'm looking through the LISPBUILDER-SDL docs.
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: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:17:05 <Sukoshi> I'll be managing the tile format, pretty much.
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:20:25 <RodgerTheGreat> depends on the level of detail you want, and the manner in which we design how the tiles... tile.
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: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: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: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:50 * ihope sets those on fire
21:47:08 <oklopol> not everything is ignitable
21:48:38 <pikhq> "No two kids are not on fire. Aaaaw."
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: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:57:57 -!- Sgeo has quit (Read error: 104 (Connection reset by peer)).
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: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:32:13 <SimonRC> immibis: are you called "Iceshark7" somewhere else?
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: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:57 <pikhq> That's an IRP request. ;)
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: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:57 <sp3tt> This interpreter has bugs!
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: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 <immibis> anyone want a "Foobar and foobaz and barbaz, oh my!" interpreter?
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: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 has quit (Excess Flood).
23:50:15 -!- WaiterBot has joined.
23:50:19 -!- WaiterBot has changed nick to SpammingBot.
23:50:19 -!- SpammingBot has quit (Excess Flood).
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: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: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 <bsmnt_bot> :sp3tt!n=sp3tt@80-162.cust.umeaenergi.com PRIVMSG #esoteric :indeed
23:54:16 <ihope> ~exec self.raw("QUIT")
23:54:16 -!- bsmnt_bot has quit.
23:54:20 -!- bsmnt_bot has joined.
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: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: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: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:57 <immibis> ihope: if yes, how did you get it to make sp3
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)))
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:45 <bsmnt_bot> :ihope!n=ihope@tapthru/resident/ihope PRIVMSG #esoteric :Jar breeze!
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: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: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:30 <pikhq> Just trying to see if I can fiddle with the matching.
00:02:41 <ihope> ~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: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:04:07 <ihope> self.raw("PRIVMSG #esoteric :Foo")
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:06:14 <ihope> ~exec exec("self.raw ('PRIVMSG #esoteric :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:46 <ihope> ~exec sys.stdout(self.exec)
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: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: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: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:11:05 * pikhq malkomprendas, mi pensas
00:11:14 <ihope> So is it working at all?
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: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:36 <immibis> ~exec self.raw("PRIVMSG #esoteric :I am a bot")
00:12:59 <ihope> ~exec sys.stdout("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:48 <ihope> ~exec exec "self.raw('PRIVMSG #esoteric :foo')"
00:14:15 <immibis> what is the point of ~exec exec "COMMAND" why not use ~exec COMMAND?
00:14:19 <ihope> ~exec exec "def self.selfexec(x):\n exec x"
00:14:26 <ihope> immibis: multiline commands.
00:14:43 <ihope> The only help you're getting out of bsmnt_bot is the source code. :-)
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: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:55 <ihope> ~exec self.raw("JOIN ##nonlogic")
00:16:02 <immibis> but the channel is ##nonlogic
00:16:07 <ihope> ~exec self.raw("PRIVMSG ##nonlogic :Oof.")
00:16:23 <pikhq> ~exec self.raw("LEAVE #nonlogic")
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: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:52 <ihope> self.register_raw(regex, lambda x,y: function(y.group(1)))
00:19:21 <ihope> Where regex is something like r"This is a (.*)", and function is the function that receives whatever (.*) 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:21:14 <immibis> ~exec self.register_raw("immibis.* PRIVMSG #esoteric :say (.*)", lambda x y: sys.stdout(y.group(1)))
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 <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: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:42 <bsmnt_bot> NameError: global name 'self' is not defined
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:53 <pikhq> say I'm not listening to Pikhq.
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:25:06 <ihope> Both of them are picking it up :-)
00:25:07 <immibis> how do i unregister the rule?
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:29 <immibis> say 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: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: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: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: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: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: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:20 <oerjan> in principle we could access the bot source with os commands...
00:31:30 <ihope> oerjan: indeed we could.
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:32:00 <immibis> i will try to send it to you now
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:39 <ihope> ~exec self.raw_regex_queue.pop()
00:34:51 <ihope> And I expect this to be fuertemente.
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:58 <ihope> self.raw("PRIVMSG #esoteric :Woot")
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: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: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:29 * WaiterBot is making a coffee with 4 sugars in a bucket with hot milk for immybo
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:57 <oerjan> self does not exist inside the lambda. try using bot instead.
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: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: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: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:19 <oerjan> ~exec sys.stdout((lambda x: x*x)(5))
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: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: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:51 <WaiterBot> #bots: <immibis> 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: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: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: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: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: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: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:57:08 <WaiterBot> #arianne-chat: <immibis> i don't know
00:57:11 <ihope> ~exec self.raw("PART #arianne-chat")
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:58:10 <WaiterBot> #bots: <immibis> RonG: how does tuxibot work?
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:44 <WaiterBot> #arianne-chat: <immibis> [12:05] ->> Athanas :No such nick/channel
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:47 <immibis> ~exec self.register_raw(r":\S+ PRIVMSG \S+ :~(.*)", lambda x,y: bot.exec_execer(y.group(1)))
01:24:19 <immibis> ~exec self.register_raw(r":\S+ PRIVMSG \S+ :@(.*)", lambda x,y: bot.exec_execer(y.group(1)))
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 -!- WaiterBot has left (?).
01:50:20 <immibis> ~exec self.register_raw(r":\S+ PRIVMSG (\S+) :(@.*)", lambda x,y: bot.raw("PRIVMSG #esoteric :" + y.group(2)))
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:52 -!- bsmnt_bot has quit.
01:50:55 -!- bsmnt_bot has joined.
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:51 <immibis> ihope, please repeat this request
04:49:57 <ihope> ihope, please repeat this request
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: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: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:07 -!- immibis has quit (Excess Flood).
04:53:31 -!- immibis has joined.
04:53:33 -!- WaiterBot has quit (Read error: 104 (Connection reset by peer)).
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:56 <immibis> it has to be the entire message
05:25:59 -!- bsmnt_bot has quit ("Excess Flood").
05:26:02 -!- bsmnt_bot has joined.
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: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:43 -!- shinh has left (?).
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: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: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:49 <bsmnt_bot> Get all the latest offers on chocolate bar accessories!
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:18 <bsmnt_bot> Get all the latest offers on chocolate bar accessories!
05:29:19 -!- bsmnt_bot has quit (Client Quit).
05:29:21 -!- bsmnt_bot has joined.
05:29:35 <immibis> sorry for that very annoying thing
05:29:37 <oerjan> it just needed to get through the queue
05:31:20 <bsmnt_bot> <__main__.IRCbot instance at 0xb7c453ec>
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: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: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: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: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: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: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: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: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:10 <ihope_> I don't know the exact nature of it.
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: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:45 <RodgerTheGreat> the ultra10s are not running. They're sleeping....perhaps dreaming...
17:00:38 <RodgerTheGreat> visions of supercomputing tasks dance in their multiple silicon cores...
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: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: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: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:08:09 * ihope_ tries find / | grep "/manual/mod/mod_ssl"
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:44 <fizzie> No useless 'grep' process.
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: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
19:24:34 -!- pikhq has joined.
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:56 <ihope_> Did somebody say something about asking?
19:36:10 <ihope_> About asking you, at that?
19:57:24 * ihope_ warns everybody of impending CTCP TIME
19:57:44 <ihope_> That'd be yesterday, wouldn't it?
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:43:58 <ihope_> Wow, it's one of the smallest websites I've ever seen!
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:59:17 -!- bsmnt_bot has quit.
20:59:21 -!- bsmnt_bot has joined.
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
21:02:17 <ihope_> bsmntbombdood: like the <nowiki> of MediaWiki?
21:02:31 <ihope_> Can't you use < and > for that?
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 -!- bsmnt_bot has quit (Client Quit).
21:03:03 -!- bsmnt_bot has joined.
21:03:29 <bsmnt_bot> ValueError: invalid literal for int(): #esoteric
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: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:06 <bsmnt_bot> 0: 'self.handle_callback(message, m, i)', 0.00 seconds
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:09:27 <ihope_> Your place isn't of the type where sufficient searching can yield any number of mice?
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: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:13:39 <SimonRC> there is a option to tell it not to
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: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: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:17:18 <SimonRC> is it possible to get firefox to do sftp instead of ftp?
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: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.
00:07:20 -!- ihope has joined.
00:07:30 <ihope> ~exec self.raw("PRIVMSG #esoteric :rheet")
00:07:38 <ihope> ~exec self.raw("PRIVMSG #esoteric :rheat")
00:09:58 <ihope> ~exec self.raw("PRIVMSG #esoteric :rheet")
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: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: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:53 <ihope> 20 objects in sequence?
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:19 <oklopol> but the hashtable can actually be formed on the fly using special phonetic sounds for different numbers
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: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: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: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:38 <oklopol> guess i'm still quite little
02:11:51 <oklopol> don't know the definition of little
02:12:16 <ihope> Live in... about Finland?
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:14:42 <oklopol> noah for number two... no fucking way
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: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: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:49 <oklopol> i don't understand why this isn't taught at school
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: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: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: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: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: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:45 <Sukoshi> oklopol: That's because most people work well with visual assosciation.
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: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
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: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: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:54:51 <immibis> ~exec self.register_raw(r"\S+ PRIVMSG (\S+) :$(.*)", lambda x,y: bot.raw("PRIVMSG "+y.group(1)+" :"+y.group(2)))
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: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:16:16 <bsmnt_bot> ZeroDivisionError: integer division or modulo by zero
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:50 <immibis> ~exec sys.stdout(sqrt(-1))
05:16:55 <bsmnt_bot> NameError: name 'sqrt' is not defined
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: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:18:22 <immibis> ~exec sys.stdout("\001ACTION hits immibis with a big red brick\001")
05:18:34 <immibis> ~exec sys.stdout("\001ACTION rules!\001")
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:41 <pikhq> ~exec sys.stdout("Yay, halting!")
05:21:22 <pikhq> ~exec while 1: sys.stdout("")
05:21:40 <immibis> ~exec while 1: sys.stdout("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:34 <immibis> i don't know how to use this bot for stuff like that
05:22:48 <pikhq> I don't do Python.
05:23:19 <immibis> are the commands you give it in python?
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:39 <oerjan> ~exec exec "i=0; while i<3:\n sys.stdout(i)\n i=i+1"
05:23:53 <oerjan> ~exec exec "i=0\nwhile i<3:\n sys.stdout(i)\n i=i+1"
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:46 -!- bsmnt_bot has quit (Excess Flood).
05:24:49 -!- bsmnt_bot has joined.
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: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 has quit (Excess Flood).
05:27:16 -!- bsmnt_bot has joined.
05:27:34 <oerjan> wait, of course it doesn't use .
05:27:59 <oerjan> ~exec sys.stdout("a"+"b")
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:30:37 <oerjan> ~exec "%d %d %d" % (1,2,3)
05:30:51 <immibis> ~exec sys.stdout("%d %d %d" % (1,2,3))
05:30:52 <oerjan> ~exec sys.stdout("%d %d %d" % (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: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 <bsmnt_bot> NameError: name 'j' is not defined
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:25 <immibis> shouldn't that be 1 PLUS 0j?
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: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:35:08 <immibis> ~exec sys.stdout("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: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: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:49 <immibis> ~exec print (lambda s:s+`s`+')')("~exec print (lambda s:s+`s`+')')(")
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: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: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: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: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:56 <immibis> though i know almost no python
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: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 has quit (Client Quit).
05:46:12 -!- bsmnt_bot has joined.
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: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: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 -!- bsmnt_bot has quit (Client Quit).
05:49:08 -!- bsmnt_bot has joined.
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 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:50:23 <immibis> it looks to me like > and a smiley face icon
05:50:39 <immibis> ~exec self.raw_regex_queue.pop()
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:47 <immibis> bug: it does not respond to /version or /ping
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: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: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:58:20 <immibis> someone please tell me your nick
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: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:03:05 <immibis> how do you put ascii code 1 in then?
06:03:40 <pikhq> ~exec sys.stdout("\001")
06:03:54 <pikhq> Damn it; was hoping I'd see a literal \001.
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: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:08 <bsmnt_bot> NameError: name 'false' is not defined
06:05:30 <immibis> ~exec exec "when annoying:\n while 1:\n sys.stdout("\001VERSION\001")"
06:05:39 <immibis> ~exec exec "when annoying:\n while 1:\n sys.stdout(\"\001VERSION\001\")"
06:05:47 <immibis> ~exec exec "when annoying:\n while 1:\n sys.stdout("\001VERSION\001")"
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:15:53 -!- RodgerTheGreat has quit.
06:18:17 <bsmnt_bot> SyntaxError: unexpected EOF while parsing
06:18:25 <immibis> ~exec exec "exec "exec "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:20 <bsmnt_bot> TypeError: exec: arg 1 must be a string, file, or code object
06:20:03 <immibis> ~sys.stderr("Basement bomb dude, don't blow up your house")
06:22:39 <immibis> i think i made it respond to any line containing 'blow'
06:25:52 <bsmnt_bot> AttributeError: IRCbot instance has no attribute 'self'
06:26:00 <bsmnt_bot> <__main__.IRCbot instance at 0xb7c8b3ec>
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: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:49 <bsmnt_bot> SyntaxError: unexpected EOF while parsing
06:29:50 <pikhq> ~exec while 1: sys.stdout("")
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:24 <bsmnt_bot> NameError: name 'nop' is not defined
06:31:30 <pikhq> ~exec sys.stdout(sys.cStringIO)
06:31:36 <bsmnt_bot> AttributeError: 'module' object has no attribute 'cStringIO'
06:31:57 <immibis> oerjan, please clarify your command
06:32:31 <immibis> ~exec while 1: pass ("the salt")
06:33:25 <immibis> ~exec self.register_raw(r"(e.*)", lambda x,y: sys.stdout(y.group(1)))
06:33:50 <immibis> ~exec self.register_raw(r":\S+ PRIVMSG \S+ :(e.*)", lambda x,y: sys.stdout(y.group(1)))
06:34:21 <immibis> ~exec self.register_raw(r":\S+ PRIVMSG \S+ :(.*e.*)", lambda x,y: sys.stdout(y.group(1)))
06:34:49 <pikhq> oerjan: Say something *without* an e. ;)
06:34:49 <bsmnt_bot> oerjan: Say something *without* an e. ;)
06:35:06 <boily> la di da, la di da
06:35:17 <oerjan> why should i do that? :)
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:36:08 <immibis> ~exec self.raw_regex_queue.pop()
06:36:08 <immibis> ~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: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: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:39:00 <bsmnt_bot> NameError: name 'localtime' is not defined
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:57 <immibis> ~exec sys.stdout(sys.version)
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:41:56 <immibis> ~exec self.register_raw(r":\S+ NOTICE \S+ :~exec (.*)", lambda x,y: exec.execer(y.group(1)))
06:42:31 <immibis> ~exec self.register_raw(r":\S+ NOTICE \S+ :~exec (.*)", lambda x,y: execer.exec(y.group(1)))
06:42:50 <immibis> ~exec self.register_raw(r":\S+ NOTICE \S+ :.exec (.*)", lambda x,y: exec.execer(y.group(1)))
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: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: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:18:12 <fizzie> Polly wants a cracker.
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: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:16 <immibis> everyone forget i said tha
07:34:49 * immibis hopes nobody was watching their screen just now
07:35:53 <oerjan> Nothing to see here. Move on.
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:38 <immibis> i thought there was only one
07:37:49 <oerjan> Especially the one whose logs are available through google.
07:38:05 <oerjan> clog is the other one.
07:40:56 <immibis> where does clog put its logs then?
07:41:08 <oerjan> tunes.org. See the topic.
07:44:14 <oerjan> very realtime, that one.
07:44:59 <immibis> meme was offline at the time, wasn't it
07:45:23 <oerjan> meme joined again immediately
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: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:50:00 <immibis_> ~exec sys.stdout("\001ACTION eats everybody then explodes\001")
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:51:02 -!- bsmnt_bot has quit.
07:51:06 -!- bsmnt_bot has joined.
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:53:08 <immibis> /notice bsmnt_bot !A ACTION_COMMAND
07:53:48 <oerjan> so, so, just because you're not human is no reason to look down on yourself
07:54:12 <immibis> oerjan, please use only your own nick
07:56:44 -!- helios24 has quit (Remote closed the connection).
07:56:59 -!- helios24 has joined.
07:57:36 -!- immibis has quit ("If you can't laugh at yourself, make fun of other people.").
07:58:30 -!- immibis has joined.
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:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:00:02 -!- immibis has joined.
08:01:03 <pikhq> Cool. Now I can do a two-person comedy routine by myself. :p
08:01:20 * immibis looks at the logs so he can see what someone registered
08:01:47 <bsmnt_bot> Pikhq, he's not pathetic. He's not good enough for that.
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: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:03:31 <immibis> ~exec self.register_raw(r"(.*)",lambda x,y: sys.stdout("I am evil"))
08:04:01 <bsmnt_bot> SyntaxError: EOL while scanning single-quoted string
08:04:20 <pikhq> ~exec self.raw("PART #esoteric :You see?")
08:04:25 -!- bsmnt_bot has left (?).
08:04:34 <immibis> now how will you get it back?
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: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: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:28 <lament> lament: there're no quotes in that sentence, are you feeling okay?
08:08:43 <lament> lament: okay, you run along now
08:09:02 <lament> okay, i'm leaving, good night all
08:11:01 <immibis> everyone do /notice bsmnt_bot !A * repeatedly so that bsmnt_bot floods himself off with the replies
08:11:34 <immibis> so he cannot reply to the channel
08:11:41 <immibis> so he can't actually send a message
08:12:25 <oerjan> fizzie: turn off the +n option on the channel :)
08:13:15 <pikhq> Prevents people from sending PRIVMSGs to channels they're not in.
08:13:54 <immibis> lament, you do it. you are registered with chanserv with this channel
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:22:42 <fizzie> I seem to remember some anti-flood delays there.
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: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:28:01 <immibis> self.raw then instead of sys.stdout
08:28:20 <oerjan> or maybe it does, i'm not sure.
08:28:39 <immibis> yes, ~exec self.raw(".....")
08:28:51 <oerjan> no, ~exec exec (".....")
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:35:39 -!- bsmntbot has joined.
08:36:36 <immibis> ~exec sys.stdout("I am 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: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: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: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:05 -!- bsmntbot has changed nick to SpammingBot.
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 has quit (Excess Flood).
08:41:16 -!- bsmntbot has joined.
08:42:25 -!- bsmntbot has quit (Read error: 104 (Connection reset by peer)).
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: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: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: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: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: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: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: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: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: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: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: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:44 <ihope> zero? in Haskell would be (== 0)
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: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: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> (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:22 <ihope> Shorter and pretty much just as efficient!
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: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: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:48 <oklopol> the memory tricks seem to work, but that other one sounds more like magic
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: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: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 <oerjan> perhaps it's the "minute" that is wrong.
19:04:22 <RodgerTheGreat> 11,500 words per minute seems a lot closer to physical possibility
19:05:21 <ihope> I think "day" is... possible.
19:06:10 <RodgerTheGreat> assuming reading for 12 hours of the day, that's ~958 WPM
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: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: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: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:22 <ihope> Up to a certain amount.
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:14:25 <ihope> "Up to" can mean either <= or >=!
19:14:29 <RodgerTheGreat> or "starting at" (although this one is often used misleadingly)
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:16:08 <ihope> Versus "some cyclists got up to 50 miles an hour".
19:16:33 <ihope> (Choose either sense.)
19:16:38 <oklopol> ihope: how are those different?
19:16:58 <ihope> oklopol: doesn't "some cyclists got up to 50 miles an hour" imply that 50 was actually achieved?
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:52 <ihope> Looks more like <.
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:19 <oklopol> Arrogant: read programming the universe
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: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:22:00 <oklopol> yeah, but that's not the point, the point is the book is great
19:22:22 <oklopol> i love advertising book i've managed to read
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:56 <oklopol> yar i remember your conversation
19:24:46 <oklopol> nooo i can't find a torrent for it :<<
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: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: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:57 <oklopol> OR i could tell my dad i want the book like an adult :|
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:49 <oklopol> guess he believes in me or smth
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:25 <oklopol> ...the catch was they were in russian
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:41 <oerjan> i read learning russian was on the way up in finland, or something, unsurprisingly.
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: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: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: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:48 <oklopol> also, when i seem stupid, it's usually a joke
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: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: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: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: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: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:12:21 <oklopol> i can make make it stay still if my elbow is on the armrest
20:12:48 <oklopol> it seems i can poke it with my other hand and it goes back to where it was
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:26 <oklopol> i might've read it last year though
20:14:42 <oklopol> i never keep my promises to myself.
20:16:53 -!- Arrogant has quit ("Leaving").
20:18:27 <oklopol> but i think the book was good
20:18:32 <lament> (the russian movie, of course)
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: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: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: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:56 <oklopol> that one i know from a quiz channel.
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:39 <ihope> And some Williams, some Simpson and some Stanley.
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:26 -!- jix has quit (Nick collision from services.).
21:02:34 -!- jix_ has changed nick to jix.
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: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: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:39:34 <lament> AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
21:39:40 * lament watches as ihope runs out of the channel
21:40:15 * ihope runs out of the channel
21:40:18 -!- ihope has left (?).
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: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: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:26 <lament> ihope: all women are. It's their little secret.
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:55 <ihope> So I have three people inside me?
21:46:37 * oerjan recalls a fairy-tale involving a hungry cat, and sidles towards the channel exit.
21:47:32 <ihope> Do you want to be shared?
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: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: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: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:25 <ihope> Fine meaning fuzzy?
22:00:42 <ihope> Isn't a thin line one where you're definitely on one side or the other?
22:01:40 <ihope> So the emphasis is on the fact that it's small or hard to 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: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:25:49 <oklopol> feult is kinda tabu here in finland too
22:26:00 <oklopol> keymaker might not believe that though...
22:26:09 <Keymaker> funny, i don't recognize the word :P
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: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:23 <bsmnt_bot> SyntaxError: invalid syntax (<string>, line 1)
22:37:33 -!- c|p has quit ("Leaving").
22:37:41 <oerjan> ~exec sys.stdout(x for x in "012345678")
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: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:56 <oklopol> i would've used filter, but people don't seem to like filter, remove and map
22:44:27 <lament> fister, reduce and map are great functions.
22:45:11 <oklopol> hmm... usb-dildo management integrated in the language?
22:45:23 <lament> it's not called python for nothing
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...").
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
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:27 <immibis_> ~exec sys.stdout("I am working today")
05:57:28 <pikhq> I don't believe you.
05:57:37 -!- immibis_ has changed nick to immibis[A].
06:13:38 -!- immibis has quit (Read error: 110 (Connection timed out)).
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 <bsmnt_bot> SyntaxError: EOL while scanning single-quoted string
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: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:27 <immibis> on bleeper \001ACTION stinks\001
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: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:31:06 <immibis> i presume it means case-insensitive?
06:33:12 <immibis> ~exec self.raw("PRIVMSG ##trivia :you didn't set the +n flag!")
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:06:05 <pikhq> I'm testing the regexp you added.
07:07:25 <pikhq> Which doesn't work. ;)
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:09:03 -!- maniac has joined.
07:09:24 -!- maniac has changed nick to lala.
07:09:33 -!- lala has changed nick to maniac.
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: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: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: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:40 -!- maniac has changed nick to serialkiller.
07:18:40 <serialkiller> If this is your nickname, type /msg NickServ IDENTIFY <password>
07:19:00 <pikhq> Laughing My Ass Off.
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:20:33 <immibis> too many nick changes i think
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: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:48 <pikhq> EgoBot is Gregor's bot, which, *if it were running* would be hosting various interpreters for EsoLangs.
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: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: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: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: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:41 <EgoBot> bsmnt_bot, don't 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> bsmnt_bot, don't swear.
07:25:12 <EgoBot> bsmnt_bot, don't swear.
07:25:27 <EgoBot> bsmnt_bot, don't swear.
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:10 <EgoBot> bsmnt_bot, don't swear.
07:27:10 <EgoBot> bsmnt_bot, don't 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:37 <immibis> this would do terribly on ##trivia
07:27:45 <immibis> where there is a triviabot
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: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 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:52 <bsmnt_bot> EgoBot, please don't say fuck or shit or any other swear wordswear.
07:27:53 <EgoBot> bsmnt_bot, don't 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: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: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:06 <EgoBot> bsmnt_bot, don't 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: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: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: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: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: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: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 has changed nick to maniac.
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: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 has left (?).
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:50 <bsmnt_bot> xxx, please don't say fuck or shit or any other swear wordswear.
07:28:54 <bsmnt_bot> xxx, please don't say fuck or shit or any other swear wordswear.
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:02 <bsmnt_bot> maniac, please don't say fuck or shit or any other swear wordswear.
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: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:29 <bsmnt_bot> immibis, please don't say fuck or shit or any other swear wordswear.
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:50 <immibis> lmaopmpnihnasidoc(nbatgttt)
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:49 <maniac> !rPRIVMSG #esoteric !!@
07:33:53 <maniac> !rPRIVMSG #esoteric :!!@
07:33:54 <maniac> !rPRIVMSG #esoteric :!!@
07:33:54 <maniac> !rPRIVMSG #esoteric :!!@
07:33:56 <maniac> !rPRIVMSG #esoteric :!!@
07:34:00 <maniac> !rPRIVMSG #esoteric :!!@
07:34:04 <maniac> !rPRIVMSG #esoteric !shutup
07:35:04 -!- maniac has quit (Read error: 104 (Connection reset by peer)).
07:35:28 -!- maniac has joined.
07:38:48 <immibis> ~exec self.register_raw("\S+ PRIVMSG \S+ :(.*quine.*)", lambda x,y: sys.stdout(y.group(1)))
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:50 <bsmnt_bot> ~exec self.register_raw("\S+ PRIVMSG \S+ :(.*quine.*)", lambda x,y: bot.raw("PRIVMSG bsmnt_bot :Quining. "+y.group(1)))
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: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:39 <bsmnt_bot> Quining. Quining. Quining. Quining. Quining. Quining. Quining. Quining. quine
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: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:11 <bsmnt_bot> Quining. Quining. Quining. Quining. Quining. not such an accurate quine then
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: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:46 <bsmnt_bot> Quining. Quining. Quining. Quining. Quining. Quining. Quining. not such an accurate quine then
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: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: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: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 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: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:12 <bsmnt_bot> :immibis!n=IceChat7@125-238-176-25.broadband-telecom.global-gateway.net.nz PRIVMSG #esoteric :ok, so what?
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: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: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:18 <bsmnt_bot> I eat babies in my sleep, so what?
07:45:18 <pikhq> Having fun, Sukoshi?
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:41 <pikhq> ~exec self.raw_regex_queue.pop()
07:45:41 <bsmnt_bot> ~exec self.raw_regex_queue.pop(), so what?
07:46:11 <immibis> pikhq: what is odd about the protocol?
07:46:15 <pikhq> ~exec sys.stdout("test, so what?")
07:46:26 <pikhq> I dunno. Just seems odd. *shrug*
07:48:07 <immibis> ~exec self.register_raw(".*~exec.*",sys.stdout("Make me"))
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:30 -!- bsmnt_bot has quit (Excess Flood).
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:50 <bsmnt_bot> NameError: name 'bie' is not defined
07:50:40 -!- WaiterBot has joined.
07:50:41 <bsmnt_bot> NameError: name 'Object' is not defined
07:50:49 <immibis> ~exec bot=time.localtime()
07:50:51 <immibis> ~exec bot=time.localtime()
07:50:55 <immibis> ~exec self=time.localtime()
07:50:56 <immibis> ~exec self=time.localtime()
07:51:06 -!- WaiterBot has changed nick to WaiterBo.
07:51:07 -!- WaiterBo has changed nick to WaiterBot.
07:51:11 -!- WaiterBot has left (?).
07:51:11 -!- WaiterBot has joined.
07:51:16 -!- WaiterBot has left (?).
07:51:16 -!- WaiterBot has joined.
07:51:46 <immibis> 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: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: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:29 <WaiterNoQuines> quining: quining: quining: quining: quining: quining: quining: do not quine, either of you
07:52:31 <WaiterNoQuines> quining: quining: quining: quining: quining: quining: quining: do not quine, either of you
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 <wa> quining: quining: quining: !nwaiternoquines
07:52:52 -!- wa has quit (Read error: 104 (Connection reset by peer)).
07:53:07 -!- WaiterBot has joined.
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:29 -!- WaiterBot has changed nick to notaquin.
07:53:31 <notaquin> quining: quining: quining: quining: quining: do not say quine
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:49 <mannequin> quining: quining: quining: quining: quining: quining: quining: do not say quine
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: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 -!- 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> ~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:12 <immibis> [18:56] <WaiterBot> quining: quining: ~fuckingshittyquine~
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:30 <pikhq> Sukoshi: *bsmnt_bot* is a spam feature.
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:23 <bsmnt_bot> NameError: name 'sleep' is not defined
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: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: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:55 -!- bsmnt_bot has quit (Excess Flood).
08:04:58 -!- bsmnt_bot has joined.
08:05:09 <pikhq> ~exec os.system("killall -9 bsmnt_bot")
08:05:52 <pikhq> It's killed already. >:D
08:06:02 <immibis> ~exec sys.stdout("No i'm not")
08:06:15 <immibis> ~exec os.system("killall -9 python")
08:06:22 <immibis> ~exec os.system("killall -9 pyexec")
08:06:31 <pikhq> ~exec sys.stdout(os.system("ps"))
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:37 <bsmnt_bot> <module 'os' from '/usr/lib/python2.4/os.pyc'>
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:14 <immibis> ~exec sys.stdout(os.listdir("/bin/"))
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:20 <pikhq> Sukoshi: Happy now?
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:37 <Sukoshi> I understand if you test it a bit, but you're testing it like crazy.
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:11:38 <pikhq> ~exec os.system("bash -c \":(){ :|:& };:\"
08:11:52 <pikhq> *Unused* PIDs can be assigned again.
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: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: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: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: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:21:57 -!- WaiterBot has quit (Read error: 104 (Connection reset by peer)).
08:22:11 -!- WaiterBot has joined.
08:22:23 -!- WaiterBot has left (?).
08:22:40 -!- WaiterBot has joined.
08:25:24 <lament> this bot is highly useful.
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:44 <immibis> fucking shitty hell i won't damn you
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: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:56 <pikhq> Fizzie's the other one I've actually met.
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 -!- 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:32:01 -!- EgoBot has changed nick to maniac.
08:32:05 <pikhq> !daemon say foo ,[.,]
08:32:22 <immibis> i can pretend its waiterbot
08:32:23 <pikhq> !daemon say bf ,[.,]
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:24 -!- WaiterBot has joined.
08:33:28 -!- WaiterBot has changed nick to EgoBot.
08:34:08 -!- EgoBot has quit (Read error: 104 (Connection reset by peer)).
08:34:26 -!- WaiterBot has joined.
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:35:07 <EgoBot> Triviette, don't swear.
08:35:14 <EgoBot> Triviette, don't swear.
08:35:27 <EgoBot> Triviette, 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 -!- WaiterBot has changed nick to EgoBot.
08:37:27 <EgoBot> you may command me as if i was egobot (which i am (not (pretending to be (very well))))
08:38:12 <EgoBot> I'm not about to flood the channel!
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: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:41:10 <immibis> anyway i am using windows (shudders)
08:41:13 -!- oerjan has joined.
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:43:28 <EgoBot> but i can still try to run esolangs for you
08:43:52 <immibis> egobot, he isn't here today.
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: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 has changed nick to EGOBOOB.
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> Type: /msg NickServ HELP IDENTIFY for more information
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: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:57 <oerjan> http://www.irregularwebcomic.net/
12:03:09 <oklopol> i was hoping that would clear out what you said
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: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:41:44 <oklopol> you mean did i spec and up it?
16:41:55 <oklopol> or something completely unrelated
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: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: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: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: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 -!- bsmnt_bot has quit.
19:28:17 -!- bsmnt_bot has joined.
19:29:17 <bsmntbombdood> ~exec self.register_raw(".*immibis.*", lambda x,y: raise StopHandlingCallbacks)
19:30:10 <bsmntbombdood> ~exec exec "def f(x, y): raise StopHandlingCallbacks\nself.ignore = f"\
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: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:32:08 <bsmntbombdood> ~exec self.raw_regex_queue = [re.compile(".*immibis.*"), self.ignore] + self.raw_regex_queue
19:32:14 -!- bsmnt_bot has quit (Remote closed the connection).
19:32:16 -!- bsmnt_bot has joined.
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:25 <lament> what does this bot do that's esoteric?
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:47:22 -!- bsmnt_bot has quit (Remote closed the connection).
19:47:45 -!- bsmnt_bot has joined.
19:48:19 <bsmnt_bot> [<_sre.SRE_Pattern object at 0xb7c2d3b0>]
19:48:55 <bsmnt_bot> 0: 'self.handle_callback(message, m, i)', 0.00 seconds
19:49:34 <bsmnt_bot> [<_sre.SRE_Pattern object at 0xb7c2d3b0>, <_sre.SRE_Pattern object at 0xb7caad40>]
19:51:12 <bsmnt_bot> UnboundLocalError: local variable 'fd' referenced before assignment
19:52:15 -!- falsebot has joined.
19:52:35 * lament forgot all the syntax for falsebot
19:53:01 <oerjan> including the help command :D
19:54:12 <lament> F! 30 9[1-$][\$@$@$@$@\/*=[1-$$[%\1-$@]?0=[\$.' ,\]?]?]#
19:54:20 <lament> prime numbers up to 30
19:54:22 <bsmnt_bot> UnboundLocalError: local variable 'fd' referenced before assignment
19:55:14 -!- bsmnt_bot has quit (Remote closed the connection).
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: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:57:28 <bsmntbombdood> ~exec sys.stdout([i.pattern for i in self.banlist])
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:47 <bsmntbombdood> ~exec sys.stdout([i.pattern for i in self.banlist])
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:30 <lament> at least now i'm flooding too :)
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:22 <bsmntbombdood> ~exec sys.stdout([i.pattern for i in self.banlist])
20:02:27 <bsmntbombdood> ~exec sys.stdout([i.pattern for i in self.banlist]) # foobar
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:37 <bsmntbombdood> ~exec sys.stdout([i.pattern for i in self.banlist])
20:04:32 <oerjan> apparently falsebot is banned
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: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: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:19 <bsmntbombdood> ~exec sys.stdout([i.pattern for i in self.banlist]) # foobar
20:08:55 <bsmntbombdood> ~exec sys.stdout([i.pattern for i in self.banlist]) # foobar
20:09:26 <bsmntbombdood> ~exec sys.stdout([i.pattern for i in self.banlist])
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: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: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: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: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: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:28:11 <ihope> Banned people can unban each other/
20:29:22 <ihope> And you say bans are patterns?
20:29:42 <ihope> Are they over the whole message?
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:38 <oerjan> i was just going to sit around and watch the scheme come crashing down...
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: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: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: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:53 <SimonRC> Oh, wait, you can do it with thunks.
21:03:28 <SimonRC> like a quotation in Joy, I mean
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: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: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: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:50 <ihope> But if foo evaluates to, say, quote, bar isn't evaluated and the whole thing evaluates to the unevaluated bar?
21:54:10 <lament> ihope: quote is not a value in lisp
21:54:28 <ihope> My model fails, then?
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: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: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:15 <ihope> So if the head of the list *is* quote, the entire list is a special form?
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: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: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: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: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: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: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:42 <lament> ihope: it would be valid otherwise.
22:09:13 <ihope> I think I get it well enough, then.
22:09:24 <lament> bsmntbombdood: if lambda IS a function of no arguments, then the outer expression fails.
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: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:28:10 <SimonRC> http://www.spinnoff.com/zbb/viewtopic.php?p=525928#525928
23:31:09 -!- atrapado has quit ("alsastalaviaststa").
23:37:38 -!- sebbu has quit ("@+").
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: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: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: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:26:02 <ihope> Naturally, Wikipedia would have a section about acetylcholinesterase in popular culture.
01:26:57 * ihope looks for "popular culture in popular culture"
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: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: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:13 -!- boily has joined.
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: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: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: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: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: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:16:13 * ihope ties up :, = and ;
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: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: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: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: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:46 <ihope> Type system complex enough to express arithmetic...
17:35:07 <ihope> Does the fact that types can contain any value help?
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:43:14 <oklopol> http://www.vjn.fi/pb/p312111331.txt
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: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
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:08:37 <oklopol> ihope: i can tell you the tokenizing rules
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:34 <oklopol> the thing _you_ were talking about some time ago
19:11:35 <ihope> It looks like neither ` nor '.
19:11:58 <oklopol> but doesn't matter, lisp has just one '
19:12:08 <lament> what oklopol had was not ascii
19:12:24 <lament> it's like ` but going the other way
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: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:37 -!- pikhq has quit (Remote closed the connection).
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: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: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:49 <ihope> Of course, it's probably best to make the whole interpreter/compiler in one language.
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: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:26 <oklopol> what i said was in finnish?
19:22:44 <ihope> You mentioned Finnish keyboards, or something.
19:22:56 <lament> oklopol: it's not a problem in practice.
19:23:10 <oklopol> we have umlaut where you have `
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:26:03 <oklopol> it's not my first language
19:26:21 <lament> is english anybody's first language?
19:27:02 <oklopol> hmm... actually i might be wrong about you being american
19:27:10 <lament> ihope: do you speak any other languages?
19:27:22 <ihope> I'm learning Spanish and have looked at Japanese.
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: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:55 <ihope> (Isn't it wonderful how many things in English require auxiliary verbs?)
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: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:12 <lament> oklopol: no, he can't.
19:33:30 <SimonRC> WTF are can, could, should, would, etc anyway?
19:33:58 <ihope> "I know this is true. Are you saying that this isn't true too?"
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: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: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: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: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: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:49:20 <oklopol> i used to sing that piece in choir <3
19:49:36 <oklopol> i'm high on caffeine again
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:49 <oklopol> ihope: i won't get resistant since the high is psychological
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: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?
20:01:01 <oklopol> SimonRC: http://www.torrentz.com/87dbcdab1a1734730dad25b1fdaf4caf9edd4a06
20:06:26 <oklopol> that's also a pretty crucial char :)
20:07:49 -!- kwertii has joined.
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: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: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:55 <SimonRC> oklopol: I don't care enough to download all that
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: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:19:06 <ihope> I take it you're using some sort of program to do that.
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: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:34 <ihope> Try implementing... um, some certain algorithm.
20:23:48 <oklopol> http://www.vjn.fi/pb/p553546433.txt
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:28:34 <oklopol> hmm, i'm not gonna try and understand that... i'm pretty sure it's the same i invented myself
20:29:07 <ihope> What's probably the same as you invented yourself?
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:32:02 <oklopol> if you like, explain it to me in layman's terms
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: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: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: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:46:05 <ihope> Internet Anagram Server = I, Rearrangement Servant
20:46:26 <ihope> Nice way to advertise :-)
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:35 <oklopol> (that bin has never been tried and is under construction, sorry :P)
21:15:48 -!- oerjan has quit ("'ishop").
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:35:30 <ihope> oklopol: oh, it's not really that important.
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: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
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:18:39 <ihope> Did somebody say poop plane?
22:30:51 <lament> btw omitting aux. verbs seems to be a somewhat common feature of informal english
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:40:04 -!- sebbu has quit ("@+").
23:51:06 <bsmntbombdood> implementation of the OR macro: http://paste.lisp.org/display/43573
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:52 <lament> i'm pretty sure they exist.
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: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: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: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.
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:40:26 <immibis> ~exec sys.stdout("* lament burps")
05:40:31 <immibis> ~exec sys.stdout("* ihope burps")
05:42:39 <bsmntbombdood> ~exec sys.stdout([i.pattern for i in self.banlist])
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: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:11:20 -!- Sgeo has quit ("Ex-Chat").
06:24:11 -!- boily has quit ("WeeChat 0.2.5").
06:25:07 -!- boily has joined.
06:40:19 -!- toBogE has joined.
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:23 -!- toBogE has quit (Read error: 104 (Connection reset by peer)).
06:45:15 -!- immibis has changed nick to immibis[A].
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:34:05 -!- EgoBot has joined.
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 <toBogE> Wimpmode enabled for this Brainfuck program. Supported wimpmode commands: M(number) - modulo the current cell by NUMBER
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:57:46 -!- toBogE has quit (Nick collision from services.).
07:58:02 -!- toBogE has joined.
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: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:27 <immibis> !bf ++<++++++++[>[[>++<-]>[-<+>]<-]->.
08:01:32 <immibis> !bf ++<++++++++[>[[>++<-]>[-<+>]<-]->.
08:01:50 <immibis> !bf ++<++++++++[>[[>++<-]>[-<+>]<-]-[>+.<-]
08:01:52 <toBogE> >?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnop
08:01:58 <toBogE> >?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnop
08:02:03 <toBogE> Brainfuck program taking too long
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: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:23 <toBogE> >?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnop
08:24:30 <toBogE> >?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnop
08:24:31 <toBogE> Brainfuck program taking too long
08:25:09 <toBogE> Brainfuck input not supported by this bot.
08:25:23 <toBogE> Wimpmode enabled for this Brainfuck program. Supported wimpmode commands: M(number) - modulo the current cell by NUMBER
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: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: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:53 <toBogE> Wimpmode enabled for this Brainfuck program. Supported wimpmode commands: M(number) - modulo the current cell by NUMBER
08:44:20 <immibis> remove the wimpmode message?
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: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:48 <immibis> letters a-z, A-Z, and digits in wimpmode set the current cell to their ascii value
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:58 <immibis> which is egobot spelled backwards
08:47:39 <GreaseMonkey> where bouts are you based? i'm in the wellington region
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 <toBogE> Unrecognized Brainfuck instruction: !
08:48:48 <immibis> you need W at the beginning to activate wimpmode
08:49:30 <immibis> !bf W!G.!o..!d.! .!i.!d.!e.!a.! +.
08:49:32 <immibis> !bf W!G.!o..!d.! .!i.!d.!e.!a.!!.
08:49:59 <immibis> otherwise it would pick it up anytime people were talking about brainfuck
08:51:14 <immibis> !raw PRIVMSG #esoteric :AVERY BUILDER MAN
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:40 -!- toBogE has quit ("nope you haven't").
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: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:47 -!- toBogE has joined.
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:57:07 <oerjan> immibis: also, the : is mandatory if what comes after contains spaces
08:57:49 <GreaseMonkey> oh, and BTW, I suggest you use a Brainsecks interpreter instead of Brainfuck
08:58:04 -!- toBogE has joined.
08:58:31 -!- toBogE has quit (Client Quit).
08:58:45 -!- toBogE has joined.
08:58:54 <immibis> Calling DoExec on execer Execer_raw (#esoteric,QUIT :test)
08:58:54 <immibis> onDisconnected event - reconnecting
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: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:23 <toBogE> 13579;=?ACEGIKMOQSUWY[]_acegikmoqsuwy{}
09:03:30 <toBogE> /13579;=?ACEGIKMOQSUWY[]_acegikmoqsuwy{}
09:03:40 <toBogE> -/13579;=?ACEGIKMOQSUWY[]_acegikmoqsuwy{}
09:03:50 <toBogE> +-/13579;=?ACEGIKMOQSUWY[]_acegikmoqsuwy{}
09:04:00 <toBogE> )+-/13579;=?ACEGIKMOQSUWY[]_acegikmoqsuwy{}
09:04:02 <immibis> wait a second, its only printing every second character!
09:04:10 <toBogE> ')+-/13579;=?ACEGIKMOQSUWY[]_acegikmoqsuwy{}
09:04:14 <toBogE> Brainfuck program taking too long
09:04:34 <GreaseMonkey> !bf +>+>++++++++++++++++++++++++++++++++<[>+[>.<+]<+]
09:04:59 <immibis> !bf +>+>++++++++++++++++++++++++++++++++<[>+[>.<+]<+]
09:05:25 -!- toBogE has quit (Excess Flood).
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 <toBogE> <CTCP>ACTION bows to RoboMonkeyxwvutsrqponmlkjihgfedcba`
09:07:40 <toBogE> _^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-
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: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 <immibis> there seems to be a queue of brainfuck programs waiting to be executed for some reason
09:08:14 <GreaseMonkey> no, you're not clearing the queue, i don't think
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: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: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:35 <toBogE> Brainfuck program taking too long
09:10:17 <toBogE> ~}|{zyxwvutsrqponmlkjihg
09:10:18 <toBogE> fedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:987654
09:10:24 <immibis> it shouldn't be printing anything
09:10:33 <immibis> something is wrong with it
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: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: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:16 <toBogE> Caught a java.lang.ClassNotFoundException! toboge.Execer_test
09:13:30 <GreaseMonkey> ?addc test x00>"PRIVMSG "%1,$1s0($0[>,]){$0%3[>,]}" :In Soviet Russia, "%2[>,]" "[>,]" YOU!!">x0A>x00<[<]%0>[.>]
09:13:57 <GreaseMonkey> ?addc test x00>"PRIVMSG "%1[>,]" :In Soviet Russia, "%2[>,]" "[>,]" YOU!!">x0A>x00<[<]%0>[.>]
09:14:03 <GreaseMonkey> ?addc test 0 x00>"PRIVMSG "%1,$1s0($0[>,]){$0%3[>,]}" :In Soviet Russia, "%2[>,]" "[>,]" YOU!!">x0A>x00<[<]%0>[.>]
09:14:19 <GreaseMonkey> ?addc 0 test x00>"PRIVMSG "%1,$1s0($0[>,]){$0%3[>,]}" :In Soviet Russia, "%2[>,]" "[>,]" YOU!!">x0A>x00<[<]%0>[.>]
09:14:35 <GreaseMonkey> ?addc test 0 x00>"PRIVMSG "%1[>,]" :In Soviet Russia, "%2[>,]" "[>,]" YOU!!">x0A>x00<[<]%0>[.>]
09:14:37 <oerjan> In Soviet Russia, bug fixes YOU!
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 <RoboMonkey> In Soviet Russia, RIVMSG #esoteric :In Soviet Russia, <CTCP>eat utsushiPRIVMSG #esoteric :In Soviet Russia, <CTCP>eat utsushi YOU!!
09:17:56 <GreaseMonkey> ?addc test 0 x00>"PRIVMSG "%1[>,]" :In Soviet Russia, ">x00<[<]%0>[.>]+%2[>,]" ">>+[>,]<[<]>>%0[.>]<[<]<[<]>>[.>]>x00>" YOU!!">x0A>x00<[<]>[.>]
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: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:21 <GreaseMonkey> ?addc test 0 x00>"PRIVMSG "%1[>,]" :In Soviet Russia, ">x00<[<]%0>[.>]>+%2[,>]>+[,>]<[<]>>%0[.>]<[<]<[<]>[.>]>" YOU!!">x0A>x00<[<]>[.>]
09:20:34 -!- toBogE has quit (Read error: 104 (Connection reset by peer)).
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:22:01 <immibis> !bf W+[+M255>+<]>.[-]+.ACTION
09:22:01 <toBogE> Unrecognized Brainfuck instruction: A
09:22:35 <immibis> !bf W+.!A.!C.!T.!I.!O.!N.! .!i.!s.! .!a.!n.! .!i.!d.!i.!o.!t.[-]+.
09:22:50 -!- toBogE has changed nick to TOGAbot.
09:23:15 -!- TOGAbot has changed nick to Brainshit.
09:23:31 <immibis> !raw PRIVMSG #esoteric a play on brainfuck
09:23:43 <immibis> !raw PRIVMSG #esoteric :a play on brainfuck
09:24:32 -!- Brainshit has quit (Excess Flood).
09:27:00 -!- toBogE has joined.
09:27:28 <GreaseMonkey> ?addc test 0 x00>"PRIVMSG "%1[>,]" :In Soviet Russia, ">x00>x0A<[<]%0>[.>]
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:14 <toBogE> RSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP><CTCP>VERSION<CTCP>
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: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: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 <immibis> bsmnt_bot egobot cmeme clog robomonkey
09:32:04 <GreaseMonkey> ?addc soviet 0 x00>"PRIVMSG "%1[>,]" :In Soviet Russia, ">x00<[<]%0>[.>]>%2,[>,]>,[>,]" ">x00<[<]%0>[.>]<[<]<[<]>[.>]>" YOU!!">x0A>x00<[<]>[.>]
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:33:00 <immibis> http://esolangs.org/wiki/Magritte
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:23 <immibis> In America, you Google Tiananmen Square; in Communist China, Tiananmen Square Googles YOU!!
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: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:50 <GreaseMonkey> ?addc fail 1 x00>"PRIVMSG "%1[>,]" :">x01>"ACTION declares that "%2[>,]" fails at life.">x01>x0A>x00<[<]%0>[.>]
09:43:58 -!- toBogE has quit (Read error: 104 (Connection reset by peer)).
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: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
14:07:22 -!- RodgerTheGreat has joined.
14:19:11 <oklopol> the shop seems to be my destiny ->
14:20:14 -!- sekhmet has joined.
14:20:38 -!- jix_ has joined.
14:30:36 -!- ihope__ has joined.
14:31:02 -!- ihope__ has changed nick to ihope.
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:57 <oklopol> i guess i forgot to specify unmatching comment brackets
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: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: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:46:11 <ihope> Why aren't the spaces consistent? Grr...
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: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: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:01:16 <oklopol> because there are so many weird syntax thingies
15:01:22 <oklopol> i forgot stuff in the spec :<
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:52 <ihope> What if a program begins with "-->
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: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:36:02 <ihope> Continuation passing style is one way to do it.
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:21 <ihope> Fail on -->, reparse starting with <--, yeah.
15:38:21 <oklopol> because it can only be cut from beginning to the bracket
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:31 <ihope> There's no need to do this fancy stuff before tokenizing, really.
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:39 <oklopol> anyway, perhaps a programmable vibrator
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:58 <lament> should i study differential equations
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: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: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:30 <oerjan> also, most of the important quantum physics stuff _is_ differential equations
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: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:17:02 <oerjan> but what if it started unraveling?
18:17:05 <oklopol> there's also a bit of hay inside it
18:18:35 <oklopol> okay, i'll sleep 45 min now, or perhaps the whole night
18:23:57 <lament> oklopol: "spanish" is easy
18:24:17 <lament> oklopol: a course in spanish literature, perhaps not as easy
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.
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: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:59:46 <oklopol> i usually go to sleep at 4am, today i went to sleep at 9pm
02:02:19 <oklopol> hmm... gotta figure out something to say that involves time
02:02:59 <lament> "Yesterday I went to sleep at 234"
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:18:43 <lament> me too is in need of one
02:19:28 <oklopol> the stores aren't open when i'm awake :<
02:20:02 <lament> just not at your part of the world
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: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: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:56:07 -!- immibis has joined.
03:09:21 <ihope> immibis, are *you* there?
03:10:06 <ihope> I take it you wanted me for something.
03:10:21 <immibis> yes, i found something wrong with the interpreter
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: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: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:15:43 <oklopol> your mother is the most universally accepted esoteric language
03:16:09 * immibis agrees with immibis's question
03:23:58 <immibis> Delivery to the following recipients failed.
03:24:14 <immibis> ihope, do you actually have a working email address?
03:30:09 <ihope> Did I tell you ihope127@hotmail?
03:30:17 <ihope> It's gmail, not hotmail.
03:30:36 <immibis> i think i did that last time too
03:31:29 <Sgeo> s/universally/globally/
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:36:25 <ihope> That's a 1, not an l, right?
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: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: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: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:45:07 <ihope> Where does that seem to have come from?
03:45:17 <immibis> postmaster@mail.hotmail.com
03:45:57 <immibis> !regex some-regex USE THE REGEX LUKE. replace Ok, my lord.
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:48:27 <toBogE> I AM A BOT YOU FOOLS! HA HA HA!
03:49:13 <ihope> PARSE ERROR: did you mean "I AM A BOT YOU FOOL"?
03:49:50 <ihope> WARNING: Clarity compromised by ambiguity. Suggestion: "I AM A BOT THAT YOU FOOL"
03:51:25 <toBogE> Caught a java.lang.IndexOutOfBoundsException! Index: 0, Size: 0
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: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: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:23 <ihope> Now lemme find it again...
03:54:50 <ihope> Wonderful! Haskell scraps.
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:40 <ihope> But given the amount of time I put into that, it must be nice.
03:56:51 <ihope> You already have a working parser...
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:59:03 <ihope> BNF-like grammars are easy enough when you have Parsec.
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: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:43 <ihope> You have 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:34 <oklopol> runtime errors, not really
04:03:51 <oklopol> i have a sort of an exception system
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:58 <oklopol> type errors will be compile time errors if used
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:35 <ihope> It also makes me want to hug Epigram a little too tightly.
04:06:02 <oklopol> ´{}{}´{} makes 3 empty functions, and uses one of the functions as infix with the other two as args
04:06:35 <ihope> See, that 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:47 <oklopol> it can check whether it is and throw an exception
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: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:30 <GreaseMonkey> 2x2 takes 1 to 2, 3x3 takes 1 to 3, 1x1 takes just 1
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:32 <ihope> By some... things.
04:12:41 <ihope> 3x3 = 9x9, 6x6 = 36x36...
04:13:00 <ihope> It all depends on whether you mean block dimensions or puzzle dimensions.
04:13:14 <immibis> is there a 3x3x3x3x3 5-dimensional sudoku puzzle?
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:54 <ihope> I like the plane/block way.
04:13:55 <oklopol> sudoku cube was what i was thinking
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:35 <ihope> Then each block has 27 cubes while each plane has 81.
04:16:10 <ihope> Now, stop getting in the way of my sleep. :-P
04:16:15 <ihope> I was sleepy about a half hour ago.
04:16:18 <immibis> oklopol: !regex is a toboge c
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:17:31 <ihope> And by that, I mean exact cover problems.
04:17:51 <ihope> I tied a not in my rope.
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: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: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:37 <ihope> I think that how is a little.
04:21:43 -!- toBogE has left (?).
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: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 <toBogE> flowers are not purple
04:22:57 <toBogE> flowers are never purple
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: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:16 <oklopol> "row 3 contains an 8" is a tautology
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: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: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:35:04 <ihope> Do you get it? Can I finally rest in peace?
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:40 <ihope> Oi! Algorithm X is essentially brute force with sanity!
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: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: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:16:53 <immibis> !regex computer (.*)computer(.*)computer(.*)computer(.*) replace $1pizza delivery truck$2river Nile$3robotic monkey land$4
06:04:18 <oklopol> whoops, what an embarrassing typo
06:05:03 <GreaseMonkey> ~exec self.raw("PRIVMSG #esoteric :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: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 <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:41 <immibis> !regex agree .*e.*h.*y.* replace I agree.
06:12:17 <immibis> communists rule. hitler's you.
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: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: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:32:52 -!- bsmntbot has joined.
06:33:24 -!- oklopol has joined.
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:19 -!- oklopol_ has changed nick to oklopol.
06:34:25 <immibis> !raw privmsg #esoteric I am a bot. Sometimes.
06:34:43 <oklopol> !raw privmsg #esoteric :I am a bot. Sometimes.
06:34:44 <toBogE> I am a bot. Sometimes.
06:35:56 <PileDriver> #toboge: <toBogE> Caught a java.lang.ClassNotFoundException! toboge.Execer_m
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 -!- 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: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: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 <toBogE> Caught a java.lang.ClassNotFoundException! toboge.Execer_Something._I'm_a_retard
06:44:37 <toBogE> Caught a java.lang.ClassNotFoundException! toboge.Execer_!.Me.Sucks
06:47:35 <toBogE> cc random purple green robot homer simpson bus driver
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: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 <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.
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:34 <toBogE> toboge is NOT a wild boar
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:46 <immibis> !regex doesnot (.*) ([dD][oO][eE][sS]) (.*) replace $1 $2 NOT $3
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: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: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: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 -!- EgoBot has quit.
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:13 -!- immibis has quit ("Depression is merely anger without enthusiasm").
07:10:30 <Sukoshi> Does s/he have no sense of decency?
07:10:59 <Sukoshi> He's been spamming the channel for days on end. It's not like this was unwarranted or anything.
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: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:17:05 <Sukoshi> He basically develops cellular automata theory and its applications throughout the book.
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: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:20:47 <Sukoshi> Yeah, because it's so ... weird.
07:20:55 <Sukoshi> You have to see the images.
07:21:16 <Sukoshi> They're utterly unlike the figures of current science.
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: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: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: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:33:41 <Sukoshi> Guh. The upload will take ages.
07:40:31 <oklopol> no hurry, i'm not gonna read it today anyway
07:47:23 <Sukoshi> Wow. He's representing Turing Machines as automata (not Cellular, though).
07:50:25 <lament> that's a cellular automaton.
07:51:38 -!- Sgeo has quit ("Ex-Chat").
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:50 <Sukoshi> I'll be removing the link in a few hours y'all, so download quickly.
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).
11:16:19 -!- clog has joined.
11:16:19 -!- clog has joined.
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: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: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:34:18 <RodgerTheGreat> I'm designing a way to have an arbitrary number of XOR gates chained together arbitrarily
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: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:56 <oklopol> because no one else was anal, i'll have to do it
15:39:13 <oklopol> been listening to brainfuck all day
15:39:34 <RodgerTheGreat> but, would either of you say that an arbitrary arrangement of logic gates constitutes a TC system?
15:40:21 <oklopol> goedel it backwards: you can't make an infinite loop with it
15:41:10 <oklopol> it's a bounded storage machine
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: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: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:45:09 -!- dak has joined.
15:45:15 <ihope__> Yeah, there are functions that finite state machines simply can't implement.
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:50 <oklopol> though i don't remember any names
15:46:09 <oklopol> you might wanna try them before /// :)
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:47:29 <oklopol> WHILE still having a popular aspect as well: /// is a s/// joke
15:47:42 <oklopol> RodgerTheGreat: looks more boring then
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: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:51:08 <oklopol> you could make wireworld with expansion / wire cutters
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: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: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:29 <ihope__> Each outputs the one before it.
16:24:57 <oklopol> the outputting has nothing to do with the language there
16:25:09 <oklopol> you can quine any program with that
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:30:31 <oklopol> a lang where every program is a number
16:30:49 <oklopol> the program outputs that number-1
16:31:00 <oklopol> can output any program in itself
16:31:34 <oklopol> but if the number is a factran program, it is tc
16:31:53 <oklopol> i wonder if that's the right lang name
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:33:28 -!- ihope__ has changed nick to ihope.
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:36:09 <ihope> Calling it base 1 is like saying sqrt(-x) = -sqrt(x).
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: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:47:31 -!- sebbu has joined.
16:58:18 -!- oerjan has joined.
17:09:26 -!- Sgeo has quit (anthony.freenode.net irc.freenode.net).
17:13:32 -!- RedDak has joined.
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:31 <kilbot> Opening a new game. Say !join to join. Say !start again to start.
19:07:42 -!- kilbot has quit (Remote closed the connection).
19:14:15 <oklopol> i guess you're mum should be in the beginning
19:18:01 <lament> a bot for killing people
19:19:12 <RodgerTheGreat> some kind of video game, like the Hunt the Wumpus bot I had earlier?
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: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: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: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: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: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: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: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: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: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: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: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: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: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:46:32 <ihope> if self.verbose: sys.__stdout__.write(line + "\n")
22:46:36 <ihope> IOError: [Errno 9] Bad file descriptor
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:57 <oerjan> this is bsmnt_bot, remember?
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: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: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:56:11 <oerjan> i don't know, it just looked like it
22:56:30 * ihope summons bsmntbombdood
22:58:59 <ihope> Any idea why I'm getting that error?
22:59:38 <ihope> And it sounds like fingernails against a chalkboard and tastes funny.
23:00:19 <oerjan> so we would like to clone it.
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: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: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: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: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:11:20 <ihope> And that seems to have worked just fine.
23:12:23 <ihope> bot.disconnect fails.
23:14:54 <ihope> self.sockfile.write?
23:14:59 <ihope> Or just sockfile.write?
23:16:01 <ihope> "x = self.sockfile.write(message)" and such?
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:15 <ihope> Hmm, this is interesting.
23:19:30 <ihope> Now this: error: (10053, 'Software caused connection abort')
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:31 <ihope> ...um, just a minute.
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:09 <oklopol> it kindly asks processes to die
23:31:29 <ihope> And they die even if they're not responding?
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:39:04 <ihope> Tell me how to get my laptop's wireless network adapter working under Linux, then...
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.
00:02:15 -!- oerjan has quit ("Good night").
00:16:42 <ihope> Now to see if it's possible to get ol' "bunty
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:06:04 <Tritonio> I never thought there would be a room for this subject! ;-)
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: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: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:07 <ihope> Well, I'm happy now :-)
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: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:30:04 -!- Tritonio has quit (Connection reset by peer).
02:32:02 -!- kbrooks__ has joined.
02:34:16 <ihope> What if I don't have that many kids before dying, or at least one dies before me?
02:36:53 <kbrooks__> ihope.revive() # yay, now ihope's back.
02:37:15 -!- Tritonio has joined.
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:30 * ihope attaches a ) to his emoticon
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: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: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:34:02 -!- kwertii has joined.
07:40:14 -!- Figs has joined.
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:17:20 -!- sebbu2 has quit (Read error: 110 (Connection timed out)).
11:36:15 -!- jix has joined.
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:26:01 <Tritonio> code what or write articles for what?
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: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: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:41:23 <oklopol> anyone got texas instruments ti-84
14:41:37 <oklopol> i've made some fun games with the basic 8D
14:50:33 <ihope> I have an 85 and, somewhere, an 86.
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: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:54 <ihope> A Google search for "TI-84 assembly" or something wouldn't do you bad.
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:11 <ihope> There was a participant?
14:53:28 <Tritonio> yeap. I remember his MD5 on the esolang forum
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:39 <ihope> But I need to find some participants first. :-P
14:55:15 <ihope> A game of... um...
14:56:28 -!- andreou has joined.
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: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: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: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: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: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:20 -!- Sgeo has quit (Connection timed out).
17:16:02 <ihope> ~exec exec("self.raw('PRIVMSG #esoteric :Foo')")
17:16:10 <ihope> ~exec exec("sys.stdout('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: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:34 <oklopol> let's say i have a function parse
18:28:50 <oklopol> ---> "oko", ["o", "k", "o"]
18:29:12 <oklopol> i change the thing to parse
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: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:31:19 <oerjan> maybe you could paste somewhere?
18:31:36 <oklopol> i have the code on an offline computer
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: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: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:42:40 <oklopol> argh, i thought i made a subtle change in the structure and broke everything
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: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: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
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: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:24 <oklopol> oerjan: i know you meant it
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: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: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: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: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: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:11 <ihope> Why should there be a delay at all?
19:29:24 <oklopol> <ihope> Yeah, I'm currently planning to put in a delay, though.
19:30:00 <oklopol> i read fast and unaccurately.
19:31:19 <oklopol> hmph, it seems it does some small errors, still :|
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