←2007-05 2007-06 2007-07→ ↑2007 ↑all
2007-06-01
00:00:41 <oerjan> ok, the definite article developed in Middle Bulgarian (12th-15th century)
01:48:41 <bsmntbombdood> ratspin
01:50:22 <oerjan> how many rats can a ratspin spin if a ratspin can spin rats?
01:51:25 <bsmntbombdood> ratspin rats
01:52:33 <bsmntbombdood> my hair is full of spiderwebs
01:52:38 <bsmntbombdood> stupid spiders
01:54:41 <GregorR-L> That was a poem.
01:57:57 * oerjan doesn't manage to google a straight definition of ratspin.
01:58:17 <GregorR-L> I'm wondering which definition of the word "straight" you're using :P
01:58:35 <oerjan> eh, straight forward
01:58:55 <bsmntbombdood> i would be suprised if you could find a definition
01:59:34 <oerjan> i have found some uses, apparently meaning something like "hogwash" especially by politicians
02:00:18 <GregorR-L> So, not some very fetishist gay sex maneuver.
02:01:33 * bsmntbombdood tries to figure out what that would be
02:01:34 <oerjan> but, i wondered if it had a more direct meaning of some kind
02:01:50 <oerjan> something involving gerbils, i take
02:02:22 <bsmntbombdood> the ass gerbil
02:02:32 <oerjan> with a spin
02:02:51 <bsmntbombdood> that would probably kill the gerbil
02:03:39 <GregorR-L> I think that the anal gerbil penetration would kill the gerbil anyway :P
02:03:57 <bsmntbombdood> in the story the gerbil lives
02:04:04 <bsmntbombdood> they use a toilet paper tube
02:04:11 <GregorR-L> Also: I've seen gerbils chew through plastic. The gerbil is not a good rodent to use X-D
02:04:47 <bsmntbombdood> i'll keep that in mind
02:04:47 <oerjan> barely beats the xenomorph
02:06:54 <GregorR-L> Y'know, I've looked for gerbiling/hamstering/whatever on Wikipedia.
02:06:57 <GregorR-L> I can't find it :(
02:07:10 <bsmntbombdood> uuuh
02:07:12 <bsmntbombdood> http://en.wikipedia.org/wiki/Gerbilling
02:07:14 <oerjan> i would imagine snopes.com a better place.
02:07:24 <GregorR-L> Well.
02:07:25 <GregorR-L> I'm stupid
02:07:42 <bsmntbombdood> "The notion of gerbilling (not necessarily restricted to homosexuals — the insertion of items into the rectum for purposes of autoeroticism is practiced by heterosexuals as well) appears to be pure invention, a tale fabricated to demonstrate the depravity with which "faggots" allegedly pursue sexual pleasure."
02:08:17 <GregorR-L> The lack of medical evidence for gerbilling is not surprising when one considers that (1) rodents have claws, (2) frightened animals are likely to bite, and (3) rodents can be quite large.
02:08:18 <GregorR-L> X-D
02:08:26 <bsmntbombdood> yeah really
02:09:37 <bsmntbombdood> <GregorR-L> Y'know, I've looked for gerbiling/hamstering/whatever on Wikipedia. \ I can't find it :(
02:09:42 <bsmntbombdood> weak
02:10:32 <GregorR-L> For whatever reason, just using the word didn't occur to me :P
02:10:39 <GregorR-L> I tried to find it from 'Gerbil'
02:10:41 <GregorR-L> (etc)
02:10:47 <bsmntbombdood> i searched for "ass gerbil"
02:10:50 <bsmntbombdood> first result
02:11:52 <GregorR-L> Hmmmmmm .... the page on "Rectal foreign object" says that Scrubs refers to two such instances. I can remember a third :P
02:14:30 <bsmntbombdood> I read about a guy putting wet concrete up his ass
02:14:38 <GregorR-L> Hahahaha
02:14:43 <bsmntbombdood> yeah, it hardended
02:14:53 <GregorR-L> In the unlikely scenario that that was true, that somebody would be infinitely stupid :)
02:15:13 <bsmntbombdood> I got the impression i was reading a medical report
02:15:41 <GregorR-L> I feel bad googling for "wet cement rectum"
02:15:42 <oerjan> i just recently read somewhere that concrete will set under water, so it must be true ;)
02:16:16 <bsmntbombdood> turns out it's the first google result
02:16:36 <bsmntbombdood> there was another article, even had a picture of the cement
02:17:14 <bsmntbombdood> yes, http://www.well.com/user/cynsa/cement.html
02:18:09 <Pikhq> GregorR-L: Well, if someone actually *did* it, there'd be instant medical evidence.
02:18:18 <bsmntbombdood> see my link
02:18:47 <Pikhq> I was thinking about gerbiling, not the cement bit.
02:18:53 <bsmntbombdood> "the anus was dilated and two Foley catheters were inserted alongside the rectal mass to relieve suction. A concrete case of the rectum was delivered without incident."
02:19:07 <bsmntbombdood> "he attending physician recommended a psychiatric consultation, but the patient declined."
02:19:27 <bsmntbombdood> "A layer of concrete was chipped off the upper part of the specimen and revealed a white plastic ping-pong ball."
02:19:29 <bsmntbombdood> wtf
02:20:19 <Pikhq> WTF?!?
02:20:30 <GregorR-L> lol
02:25:34 <bsmntbombdood> "In one review of colorectal foreign bodies and their management, all patients were male and mostly in the fourth and fifth decades of life."
02:25:38 <bsmntbombdood> interesting
02:28:04 <GregorR-L> "mostly in the fourth and fifth decades of life"
02:28:09 <GregorR-L> What an awkward way to say that.
02:28:24 <bsmntbombdood> http://www.well.com/user/cynsa/explicar.jpg
02:28:57 <GregorR-L> That == hilarious X-D
02:29:15 -!- poiuy_qwert has joined.
02:30:28 <oerjan> hi poiuy_qwert
02:30:36 <poiuy_qwert> hello oerjan
02:32:01 <bsmntbombdood> and then it exploded, almost all over my keyboard
02:32:10 <bsmntbombdood> but i got it away in time
02:32:52 * oerjan wonders if bsmntbombdood has changed subject or not
02:33:22 <bsmntbombdood> it's part of some qdb or bash.org quote
02:33:51 <bsmntbombdood> the guy is talking about opening a coke, a guy enters the channel, he says what i said, guy leaves with a quit message of something like "sick fucks"
02:34:49 <oerjan> <bsmntbombdood> hmm, by representing strings as trees you get constant time concatenation and O(log n) time indexing
02:35:15 <oerjan> that's what haskell's Data.Sequence does
02:35:26 <GregorR-L> Also, constant time splicing.
02:35:32 <Pikhq> But by representing strings as *arrays* of trees of lists, you get to be *really* confusing!
02:35:33 <GregorR-L> Erm
02:35:38 <GregorR-L> Not constant, O(log n)
02:35:41 <GregorR-L> But spacially constant
02:36:29 <oerjan> i sort of figured you had timed that exploding message to poiuy_qwert's arrival
02:36:49 <bsmntbombdood> yeah
02:37:07 <bsmntbombdood> Pikhq: what would be the point of that
02:37:08 <oerjan> but then, i think it would have worked better if you had _not_ changed the subject :)
02:37:41 <Pikhq> bsmntbombdood: First step in creating something more evil than Malbolge.
02:38:15 <bsmntbombdood> oh, i approve
02:38:23 * Pikhq thinks about it. . .
02:39:10 <bsmntbombdood> http://images.andyblume.com/main.php?g2_view=core.DownloadItem&g2_itemId=475&g2_serialNumber=1
02:40:43 <bsmntbombdood> http://images.andyblume.com/main.php?g2_view=core.DownloadItem&g2_itemId=544&g2_serialNumber=1 <-- similar
02:42:27 <bsmntbombdood> i had to do it
02:42:43 <oerjan> darn the second one took me a while
02:42:55 <oerjan> but it was worth it
02:43:09 <bsmntbombdood> i think that's a real add
02:43:20 <bsmntbombdood> for real lube
02:43:34 <Pikhq> Brilliant.
02:45:05 <bsmntbombdood> yes, http://www.manix.net/index.html
02:45:41 -!- nuba has joined.
02:46:30 <bsmntbombdood> http://www.youtube.com/watch?v=evMBjes_vnw
02:48:37 <Pikhq> That was less than subtle. . .
02:48:56 <GregorR-L> Must ... find ... good ... image comparison algorithm ...
02:50:06 <Pikhq> GregorR-L: Obviously what you need is the very, very powerful "Plof reference counting" algorithm.
02:50:20 <Pikhq> (sorry, I'm really not helpful)
02:50:31 <GregorR-L> lol
02:50:53 <bsmntbombdood> GregorR-L: the "esp game" route
02:51:42 <bsmntbombdood> http://www.espgame.org/cgi-bin/description
02:51:58 <bsmntbombdood> there's a good talk somewhere that he explains it in detail
02:52:52 <GregorR-L> ... something called "esp game" is an image comparison algorithm?
02:53:11 <bsmntbombdood> does "algorithm" mean deterministic?
02:53:16 <GregorR-L> Oh, I see. That wouldn't help my target problem at all.
02:53:23 <GregorR-L> Ideally.
02:54:16 <bsmntbombdood> here's the talk: http://video.google.com/videoplay?docid=-8246463980976635143&q=human+computation
02:54:36 <Pikhq> What, is that a mechanical turk sort of thing?
02:55:00 <GregorR-L> The ESP game wouldn't help my problem at all.
02:55:15 <GregorR-L> I need to be able to take two totally arbitrary images and get a comparison.
02:55:21 <bsmntbombdood> Pikhq: yeah
02:55:46 <Pikhq> GregorR-L: md5sum.
02:55:58 <GregorR-L> I COMPARISON, not equality X_X
02:56:15 <Pikhq> Would you like a halting problem solver on the side?
02:56:26 <bsmntbombdood> probably depends on the images
02:56:45 <bsmntbombdood> the type, and the kind of comparison you want
02:57:09 <GregorR-L> Let's say I have three pictures. Two are of faces, the third is of a house.
02:57:22 <GregorR-L> The result of comparing the two faces should be lower than the result of comparing one of the faces to the house.
02:57:32 <bsmntbombdood> google has a face recognition algorithm
02:57:40 * GregorR-L bashes his head into a wall.
02:57:51 <Pikhq> I'm thinking you might want to write that algorithm, and use it for a pH.D thesis.
02:57:56 <GregorR-L> Heh
03:00:05 <bsmntbombdood> maybe an algorithm to find "blobs", and then compare the shape of the blobs
03:02:00 <bsmntbombdood> blobs being regions of similar color
03:04:48 <bsmntbombdood> blob finding doesn't seem hard
03:08:02 <bsmntbombdood> and you can compare blobs by putting their centers in the same spot, and taking the area of the region the both cover
03:59:24 <bsmntbombdood> i was thinking today about a method for assesing the danger of some activity, by multiplying the probability of failure by the gravity of failure
03:59:41 <bsmntbombdood> i couldn't figure out how to generalize it to multiple failure modes
04:02:20 <Pikhq> One should average the individual dangers.
04:04:12 <bsmntbombdood> i'm rusty on my statistics--what's the probability that either of two independent events happen?
04:06:30 <oerjan> 1-(1-p)*(1-q)
04:06:55 -!- clog has joined.
04:06:55 -!- clog has joined.
04:07:24 <Pikhq> I'm sucky on my statistics. ..
04:07:49 <Pikhq> Unless it can be defined in terms of a derivative or integral, my brain doesn't handle it any more, I fear.
04:07:53 <bsmntbombdood> and that goes to 1 - \prod_i {1 - a_i} for a sequence of probabilitys?
04:08:08 <oerjan> well you need to consider what is the gravity of two things happening simultaneously
04:08:19 -!- sp3tt has quit (kubrick.freenode.net irc.freenode.net).
04:08:19 -!- GregorR has quit (kubrick.freenode.net irc.freenode.net).
04:08:20 <oerjan> it is just deMorgan's law, really
04:08:49 <oerjan> it is the probably that it is _not_ the case that neither happens
04:09:21 <oerjan> and the probability that _both_ of two independent events happen is the product
04:10:33 <oerjan> _if_ you assume that the gravity of two things happening simultaneously is the sum of the gravities, then you can just add the risks. even if they are not independent.
04:10:41 -!- sp3tt has joined.
04:10:58 <oerjan> because the expected value of a sum is the sum of the expected values
04:11:01 -!- GregorR has joined.
04:11:58 <oerjan> and the danger/risk is just the expected value of the gravity of the actual outcome
04:13:19 <bsmntbombdood> so, what Pikhq said
04:13:30 <bsmntbombdood> average all the dangers
04:13:42 <oerjan> not average, sum
04:14:12 <Pikhq> Multiply the average by the number of dangers, not sum!
04:14:40 <oerjan> sheesh
04:14:46 <oerjan> that's the same
04:14:48 <bsmntbombdood> expected value is average, isn't it?
04:14:58 <oerjan> sort of
04:15:16 <Pikhq> oerjan: That's the joke.
04:15:39 <oerjan> only if all outcomes have the same probability.
04:15:53 <Pikhq> (1+2+3)/3*3=1+2+3
04:16:33 <oerjan> expectation is the integral with respect to probability.
04:16:57 <oerjan> (which is a sum if probabilities are discrete)
04:18:51 <bsmntbombdood> ok, i think a sum follows intuition
04:26:47 <bsmntbombdood> an average doesn't: three dangers of .25 together have an average of .25, clearly wrong
04:30:16 <oerjan> on the other hand this doesn't work if dangers don't sum, like lethal ones (you can only die once)
04:31:42 <bsmntbombdood> i'm thinking death has infinite gravity
04:32:04 <bsmntbombdood> at least a painful dishonerable death does
04:35:21 <oerjan> i read a discussion on that recently
04:36:01 <oerjan> in the context of a game where you could win a million dollars simply by showing up, but there was a chance that you would die
04:37:08 <oerjan> the paradox being that most people say they wouldn't participate for any price, yet most take greater risks every day just by crossing the street
04:37:37 <bsmntbombdood> oh, death can't be infinite gravity
04:37:44 <bsmntbombdood> you could die by crossing the street
04:37:49 <oerjan> basically the idea that death has infinite gravity doesn't hold up against people's actual behavior
04:38:17 <bsmntbombdood> yeah
04:39:33 <oerjan> i think a better "rational" behavior might be to maximise your expected total remaining life quality
04:40:01 <oerjan> although real people probably don't work by that either :)
04:40:23 <bsmntbombdood> real people dont try to quantify dangers
04:41:07 <oerjan> not in small tasks at any rate
04:41:21 <oerjan> but perhaps in economical matters
04:42:01 <oerjan> although i am not one of those that do that, either...
04:46:49 <bsmntbombdood> in economic matters it's easy to quantify the gravity of failure/success
05:01:31 <oklopol> if death has inifinite gravity, the subject will do nothing.
05:01:42 <oklopol> if i understand what we're talking about
05:01:45 <oklopol> and that's ai.
05:02:19 <oerjan> except you can die from doing nothing too, i'm sure
05:02:37 <oerjan> in fact you can probably die from excess worrying
05:03:09 * SimonRC likes the (Flash) game Mindscape.
05:03:22 <SimonRC> It's the humour, I think.
05:03:26 <SimonRC> It has non of the usual run-along-2d-landscape-collecting-stuff-to-save-the-world crap
05:03:30 <SimonRC> No, you must run arond in your hallucinations cause by your delusional state of mind, to save your sanity.
05:03:40 <SimonRC> And the cute bunnies, despite their claims to the contrary, are EEEEVIL!
05:03:42 <SimonRC> zzzzzzz
05:05:05 <oklopol> well, if every action is calculated a value indicating how good it is, death being a negative inifity means even a slight change of death will make that goodness index inifitely small, which means every action is as bad as the next one
05:05:37 <oklopol> now school ->
05:11:16 <oklopol> if you think of death as infinitely bad, if someone asks you whether you want a bullet in your head or eternal life, you will pick a random choise.
05:11:33 <oklopol> because you might have a heart attack just before the eternal life.
05:13:34 <Pikhq> SimonRC: Thanks, now youv'e got that addicted.
05:16:41 <oklopol> oerjan: i meant 'random', by 'doing nothing' i meant it will be a sucky ai
05:27:28 <oerjan> i would usually interpret "infinitely bad" in a relative sense: you could still compare different probabilities of dying, it's just that unless the probabilities of dying are the same, no other kind of danger would have any effect on the comparison.
05:28:59 <oerjan> so then eternal life would be the preferable choice.
05:29:48 <oklopol> inf*n=inf.
05:30:08 <oerjan> it would not be that kind of inf
05:30:27 <oklopol> yours requires a more complex view of assigning goodness values, which is only better in the case of infinite gravities.
05:30:38 <oerjan> indeed
05:30:44 <oklopol> i don't see the point, let's just say infinite values bug here
05:30:51 <oklopol> hmm
05:30:53 <oklopol> school?
05:30:54 <oklopol> yes.
05:30:55 <oklopol> ---------->
05:31:20 <oerjan> i was wondering about why you hadn't left yet. have a good day. :)
05:35:02 <bsmntbombdood> maybe it makes more sense to rank gravitys in [0, 1] rather than [0, inf]
05:35:34 <bsmntbombdood> that doesn't work with stuff like money though
05:37:30 <oerjan> depends. money inflates if there is too much of it.
05:37:59 <bsmntbombdood> how can you convert monetary winnings into [0, 1] though?
05:38:37 -!- poiuy_qwert has quit.
05:38:44 <oerjan> logically 1 would have to represent the maximal possibility.
05:39:00 <bsmntbombdood> there is no maximum amount of money though
05:39:28 <oerjan> what i am saying is that an infinite amount of money does not necessarily have infinite value, because of inflation.
05:39:50 <bsmntbombdood> ok
05:41:04 <bsmntbombdood> if one person has unbounded moneys...money isn't worth anything anymore
05:42:17 <oerjan> unless that person is smart enough not to spend it all
05:42:40 <oerjan> that person looks a lot like a central bank
05:43:04 <oerjan> or rather, a government with complete access to the central bank
05:43:37 <bsmntbombdood> a smart government knows not to mint unbounded moneys, and back their moneys by something that actually is limited
05:43:40 <bsmntbombdood> like gold
05:44:56 <oerjan> nowadays i thought interest had taken the place of gold
05:45:20 <bsmntbombdood> what do you mean interest?
05:46:06 <oklopol> haha
05:46:11 <oerjan> the bank will mint unlimitedly, but those that want any of it must pay interest and give collateral
05:46:12 <oklopol> forgot my essay
05:46:22 <oklopol> nice, since i waited for the bus for 5 min
05:46:24 <oklopol> ------------>
05:46:30 <bsmntbombdood> hmm
05:46:33 <oerjan> i guess the collateral limits it
05:47:51 <oerjan> i also suppose this system can only work during economic growth
05:55:21 <Pikhq> bsmntbombdood: Currently, most monetary systems are based, not on something of actual value, but merely the trust that it *is* valuable.
05:55:31 <Pikhq> Welcome to the credit-based economy.
06:01:57 <bsmntbombdood> trusting the government, where does that lead
06:02:42 <Pikhq> I think there's a level of hell reserved for that.
06:07:53 <oerjan> http://en.wikipedia.org/wiki/Fiat_currency
06:11:10 <bsmntbombdood> demanding taxes to be paid in a certain currency gives it value also
06:35:39 -!- oerjan has quit ("Good something").
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:53:34 <GregorR-L> I have insanely written a neural network for comparing images.
08:53:43 <GregorR-L> It asks the human operator which image is more similar.
08:53:52 <GregorR-L> So the training function is ultra-slow (as slow as a person ;) )
08:54:01 <GregorR-L> I doubt highly that it'll work to any useful degree.
08:56:13 <bsmntbombdood> put it on a website, and make it fun to do
08:57:19 <bsmntbombdood> then do it in batch
08:57:39 <GregorR-L> lol
08:57:54 <GregorR-L> How to make it fun to do ...
08:57:57 <GregorR-L> *snaps* I know!
08:58:02 * GregorR-L types "tits" into google image search
08:58:17 <bsmntbombdood> one comparison, one tit
08:58:38 <GregorR-L> lol
08:58:55 <GregorR-L> There aren't enough tits on the internet to train this neural net :P
08:59:35 <bsmntbombdood> ...yeah there are
09:00:40 <GregorR-L> That statement was an exaggeration for the sake of emphasis :P
09:01:09 <bsmntbombdood> you can use other body parts too
09:02:01 <GregorR-L> Select sexuality upon registering.
09:02:44 <bsmntbombdood> you mostly get only male opinions if you use porn
09:03:10 <GregorR-L> To get my training set, I just used google image search with the following search terms:
09:03:16 <GregorR-L> a, the, art, architecture, man, woman
09:03:58 <GregorR-L> Shockingly, there is very little porn.
09:04:10 <GregorR-L> (Yes, safe search was off)
09:04:26 <GregorR-L> I think that porn doesn't generally use the term "woman" :P
09:09:20 <GregorR-L> "WATCH THESE ATTRACTIVE WOMEN ENGAGE IN CARNAL RELATIONS WITH PHYSICALLY GIFTED GENTLEMEN!"
09:10:21 <bsmntbombdood> lofl
09:14:40 <GregorR-L> Laughing ... on the floor ... laughing?
09:14:49 <bsmntbombdood> no, just lofl
09:37:36 <bsmntbombdood> aah, i can't stay up all night anymore
09:42:19 -!- GregorR-L has quit ("Leaving").
10:23:06 <oklopol> <bsmntbombdood> how can you convert monetary winnings into [0, 1] though? <<< 1-1/money
10:23:53 <oklopol> plus, the rise of gravity for money grows logarithmically over the amount of money.
10:24:20 <oklopol> i mean... a billion might be 10 times better than a million
10:26:44 <oklopol> also, it is so even if we assume an infinitely big world where inflation is impossible
10:27:41 <oklopol> because people simply don't see a difference between "one helluva lotta money" and "one thousand helluva lots of money"
10:28:19 <oklopol> i myself, don't really even see a difference between a billion and a million... since i've rarely even had a thousand
13:34:03 -!- jix_ has joined.
16:58:48 -!- fizzie has quit (kubrick.freenode.net irc.freenode.net).
16:58:48 -!- GregorR has quit (kubrick.freenode.net irc.freenode.net).
16:58:49 -!- nuba has quit (kubrick.freenode.net irc.freenode.net).
16:58:49 -!- meatmanek has quit (kubrick.freenode.net irc.freenode.net).
17:01:44 -!- nuba has joined.
17:02:20 <lament> eh
17:02:32 <lament> i certainly do see the difference between a billion and a million.
17:02:50 <lament> a million is enough to buy a decent but not a very good house.
17:02:57 <lament> there're cars that cost over a million.
17:03:11 <lament> a billion is enough to live the rest of your life without having to worry about money.
17:03:21 <lament> (this is in dollars, anyway)
17:03:43 <lament> sounds like a pretty significant difference to me :)
17:10:12 -!- meatmanek has joined.
17:11:21 -!- GregorR has joined.
17:17:55 -!- fizzie has joined.
17:22:37 -!- Izak has joined.
17:43:46 -!- sebbu has joined.
17:46:48 <Pikhq> lament: Where, exactly, do you live, Mr. "Million can buy a decent but not very good house"? California?
17:53:19 <lament> Pikhq: anywhere in the world.
17:53:38 <lament> well, not really, but certainly anywhere interesting in the states or europe.
17:54:09 <sekhmet> Well
17:54:12 <sekhmet> That's not really true
17:54:24 <lament> obviously the definition of 'very good' varies
17:54:24 <sekhmet> You can get a really good house for $1mil in most places in the states
17:54:39 <lament> mine includes things like location
17:54:43 <Pikhq> It depends upon where. . .
17:54:45 <lament> view, neighbourhood, etc
17:54:52 <sekhmet> Outside of, you know, Manhattan, central LA, etc
17:55:06 <sekhmet> I imagine Silicon Valley is somewhat pricey as well
17:55:10 <Pikhq> If you want a damned nice house in, say, LA, you're talking a hell of a lot of money.
17:55:15 <lament> sekhmet: good houses are expensive everywhere.
17:55:22 <sekhmet> lament: Not >$1m expensive, though
17:55:28 <lament> i'm not talking McMansion, i'm talking good house.
17:55:32 <sekhmet> I mean, unless you mean a Mansion or something
17:55:47 <Pikhq> If you want one out in, say, Colorado Springs, you're talking $1 million as your max. . .
17:56:11 <lament> i'd prefer to live somewhere on the ocean front
17:56:27 <Pikhq> Well, that *would* add up to >$1 million, then.
17:56:30 <lament> so there's somewhere to tie the yacht too :)
17:56:35 <sekhmet> Obviously if you tack on "want to live on the beach near a major city" then yeah
17:56:58 <lament> sekhmet: location is very important. Good locations aren't cheap, and cheap locations normally aren't good.
17:57:05 <lament> a good house is in a good location.
17:57:09 <lament> it's not good otherwise.
17:57:10 <sekhmet> That's not necessary for most people's definition of "a very good house" though
17:57:13 <sekhmet> Ah
17:57:18 <sekhmet> Well I see we disagree on that
17:57:39 <lament> sekhmet: you think if i take my good house on the ocean front and move it to antarctica, it remains a good house?
17:57:44 <sekhmet> I agree that location is important, but I take a much broader view
17:57:53 <sekhmet> lament: That's pretty extreme
17:58:02 <lament> any suburb is not a good location, because suburbs just suck.
17:58:07 <sekhmet> lament: If I take my good house on an ocean front and move it five miles inland, it certainly does
17:58:10 <sekhmet> IMO anyway
17:58:12 <Pikhq> lament: The definition of "good location" does vary.
17:58:13 <sekhmet> But whatever, obviously we disagree
17:58:16 <sekhmet> :)
17:58:21 * sekhmet steps out of the conversation
18:56:15 -!- ehird` has joined.
18:59:37 -!- ehird` has quit (Remote closed the connection).
19:11:58 -!- Izak has quit ("Farewell").
19:13:04 -!- aarcane has left (?).
19:27:33 -!- jix_ has changed nick to jix.
19:55:13 <SimonRC> "<Pikhq> SimonRC: Thanks, now youv'e got that addicted." <--- me no speech broken English
19:55:34 <Pikhq> SimonRC: Now you got me *addicted*.
19:57:59 <SimonRC> surely you can win that in about 1/2 hour?
19:58:38 <GregorR> Pikhq: You highlighted the wrong word X_X
19:59:10 <Pikhq> XD.
19:59:26 <Pikhq> SimonRC: Sure. . . If I've got enough of an attention span.
20:04:03 -!- Sgeo has joined.
20:13:53 <Pikhq> Just finished.
20:19:39 <Pikhq> Trippy, man.
20:19:51 <Pikhq> SimonRC: Damned trippy.
20:27:37 <SimonRC> Wonderfully dark too
20:27:58 <SimonRC> You *did* watch all the cut-scenes, right?
20:36:56 <Pikhq> Yup.
20:37:19 <Pikhq> I skipped over some when I started it back up today, but that was only because I had already seen them.
20:42:13 <SimonRC> ok
20:45:12 <SimonRC> did you get all the trophies?
20:54:27 -!- ehird` has joined.
20:54:31 <ehird`> LOLCODE ON MONORAIL
20:54:32 <ehird`> LOLCODE is a much better language than Ruby, and so we need to work hard to make LOLCODE ON MONORAIL the standard web development language!
20:54:32 <ehird`> JESUS CHRIST PEOPLE.
21:04:33 <Pikhq> SimonRC: Not yet..
21:27:39 * bsmntbombdood punches lament in the rich
21:31:00 <lament> ow
21:36:00 <bsmntbombdood> <Pikhq> SimonRC: Now you got me *addicted*. <--- addicted to you
21:36:20 <oklopol> lament: well, i would never buy a big house, just http://www.youtube.com/watch?v=_-OOGN8YmtE
21:36:44 <oklopol> i prefer living cramped in a corner.
21:37:06 <lament> you do?
21:37:13 <lament> (i'm not gonna watch videos at work)
21:37:37 <oklopol> oh :<
21:37:52 <oklopol> i do. well, i guess i'd like a big empty storage hall
21:38:23 <lament> would your friends like it when you invite them over?
21:38:46 <oklopol> my friends are as insane as i am.
21:38:58 <oklopol> well
21:39:07 <oklopol> you don't know how insane i am, of course
21:39:17 <bsmntbombdood> hahahahahah work
21:40:32 <oklopol> school is over \o/
21:40:49 <oklopol> on a scale of 4-10, i got 8 on the integration test
21:41:08 <bsmntbombdood> who uses a scale of 4-10?
21:41:18 <oklopol> i even had a thinking error in one question
21:41:27 <oklopol> others were copy paste ones
21:41:32 <oklopol> finland.
21:42:39 <bsmntbombdood> http://www.improveverywhere.com/2005/12/10/suicide-jumper/
21:43:33 <Pikhq> Obviously, countries with Germanic languages can't do anything that makes sense.
21:43:39 <Pikhq> Finland has a 4-10 scale.
21:43:41 <lament> obviously.
21:43:49 <Pikhq> America has an A,B,C,D,F scale.
21:43:57 <bsmntbombdood> a 0-100 scale
21:44:14 <lament> A,B,C,D,F is pretty brain-damaged
21:44:32 <lament> on the other hand, Russia has grades 1-11, but without grade 4
21:44:54 <bsmntbombdood> percentiles make sense
21:45:06 <lament> yes, they do.
21:45:21 <bsmntbombdood> but erf is a bitch
21:46:35 <Pikhq> Could they please just throw in an "E" to the scale?
21:46:58 <Pikhq> It'd make me happy.
21:47:03 <lament> okay
21:47:22 <lament> e will be added to the scale
21:47:32 <Pikhq> Bona.
21:47:38 <lament> with its usual meaning of 2.718281828459....
21:47:40 <bsmntbombdood> he's bona fide
21:47:51 <Pikhq> Ne.
21:50:41 -!- lament has quit (Read error: 104 (Connection reset by peer)).
21:51:01 <oklopol> i think germany used 1-10
21:51:34 <bsmntbombdood> grades--
21:54:00 <Pikhq> I'd prefer a system of pass or dumbass.
21:54:11 <Pikhq> There is no failure, only being labeled a dumbass. :p
21:55:28 <oklopol> pass/fail, i don't see a need for more
21:56:14 <bsmntbombdood> we are moving :(
22:09:57 -!- oerjan has joined.
22:15:40 <oerjan> ehird`!
22:17:30 <oerjan> ehird`: i got your language finished more properly, in python
22:18:00 <oerjan> http://oerjan.nvg.org/esoteric/ehird.py
22:23:30 <oerjan> Pikhq: finnish is not a germanic language. although swedish, which is, is also an official language in finland.
22:24:48 <Pikhq> Oh.
22:27:21 <fizzie> We also quite commonly use the scale 0-5 in establishments of higher education, like universities and such.
22:27:52 <oklopol> indeed
22:27:53 <oerjan> when i was in junior highschool the grades were LG,NG,G,M(G),S(G). In senior high school they were 0-6. In university they were 1.0-4.0, although the universities now have changed to an A-F system.
22:28:16 <oerjan> (norway)
22:29:49 <oerjan> (G meaning "good", with an appropriate adverb)
22:30:42 <fizzie> For the very first three or so years of school (age: 7-9 years or so) our school used the grades "H", "K" and "L" (descending order), with the letters meaning: "H" -> "hyvä" ('good'), "K" -> "kaipaa lisäharjoitusta" ('more practice required', basically) and "L" -> "kaipaa runsaasti lisäharjoitusta" ('a lot more practice required').
22:31:35 <fizzie> I never really understood why exactly the latter two were named "K" and "L". Especially the "L" makes no sense, since the only word it could come from ("lisäharjoitus") appears in both grades.
22:32:18 <fizzie> Maybe it was only for the first two years, not three.
22:32:24 <oerjan> ah yes. in the first 6 years we had essentially "satisfactory" and "could improve". no abbreviation that i recall.
22:32:36 <oklopol> well, pretty much nothing makes sence outside math and programming.
22:33:01 <oklopol> in my school there was no grading before 4th grade :<
22:34:59 <oerjan> well the L is somewhat like G in our system then.
22:35:33 <fizzie> I don't think our "exams" (were there any?) or other work was graded during the HKL years, but those letters appeared in the semiannual certificate-given-at-the-end-of-study-term papers.
22:35:42 <oklopol> oh
22:35:44 <oklopol> indeed they did
22:35:58 <oklopol> well, as if i could remember anything beyond yesterday
22:35:59 <oerjan> same in norway
22:36:26 <fizzie> Oh, it was a common practice? For some reason I thought the silliness was limited to my particular school.
22:36:35 <oerjan> it's not like i remember that much from my school years...
22:37:54 <oklopol> fizzie: actually we had 3 different SMILEYS.
22:38:43 <fizzie> Ok, that's worse.
22:39:05 <oklopol> ya :P
22:39:54 <oerjan> "this year we will present your grades in the form of an interpretive dance"
22:59:59 -!- ehird` has quit.
23:00:33 <oerjan> that ehird` guy is _really_ hard to get in touch with...
2007-06-02
00:02:54 -!- jix has quit ("CommandQ").
00:10:35 -!- sebbu has quit ("@+").
00:19:13 <bsmntbombdood> time is too fucked up
00:19:29 <bsmntbombdood> i propose a new system: decaseconds since the epoch
00:21:36 <bsmntbombdood> the epoch being the start of the current year
00:37:54 <bsmntbombdood> maybe kiloseconds
00:38:41 <Pikhq> I propose a new system: time_t
00:41:45 <bsmntbombdood> the numbers are too big for humans
00:54:19 <GregorR> I propose a new system. Lightmeters since the big bang.
00:54:56 <bsmntbombdood> good plan
00:55:04 <GregorR> Amusingly, the time is also the radius of the universe in meters ;)
00:59:28 <oerjan> what is wrong with planck time, i say
01:01:11 <bsmntbombdood> numbers to big
01:02:08 <oerjan> well a lightmeter is about, lessee...
01:02:30 <oerjan> 3.3 nanoseconds
01:04:41 <GregorR> lol
01:05:51 <bsmntbombdood> i was being serious
01:06:29 <oerjan> 86.4 ks in a day.
01:07:52 <oerjan> we are now at around 10^26 lightmeters after BB
01:11:48 <bsmntbombdood> maybe 10 light gigameters
01:14:48 <oerjan> what?
01:15:28 <oerjan> about 33 seconds?
01:16:20 <bsmntbombdood> yeah
01:44:14 <oerjan> what about light furlong?
01:45:35 <oklopol> hmm
01:45:45 <bsmntbombdood> 671 nanoseconds?
01:45:46 <oklopol> i might go to sleep now
01:46:03 <oerjan> something like that
01:52:39 -!- GregorR-L has joined.
01:56:36 -!- SF|008 has joined.
01:57:07 -!- calamari has joined.
01:57:53 <SF|008> System online.
01:59:14 <SF|008> Query: Is this channel active?
01:59:25 <oerjan> maybe
02:00:02 <SF|008> Oddly enough, "maybe" is a valid boolean value.
02:00:37 <bsmntbombdood> fuzzy booleans!
02:02:18 <SF|008> If anybody wishes: Throw a runtime exception with the message "I'm in ur channel throwin ur exceptionz."
02:03:30 <oerjan> Program error: I'm in ur channel throwin ur exceptionz.
02:04:31 <fizzie> Booleans! http://worsethanfailure.com/Articles/What_Is_Truth_0x3f_.aspx
02:04:58 <SF|008> Heh, someone here knows what I am talking about.
02:09:46 <oerjan> somehow i don't think that poster actually agreed with you.
02:10:47 <oerjan> i think, while there may be more than two truth values, only two of them are booleans.
02:12:00 <SF|008> Heh.
02:13:32 <SF|008> Ever heard of a proposed esoteric language called LifeScript?
02:15:31 <GregorR-L> SF|008: It's not on esolangs.org, therefore it does not exist.
02:16:07 <SF|008> Well, it was never put on a site other than the following link:
02:16:18 <SF|008> http://uncyclopedia.org/wiki/LifeScript
02:16:43 <oerjan> google turns up nothing obvious
02:17:03 <bsmntbombdood> .47693627620447
02:19:15 <oerjan> how enumerate
02:22:02 <SF|008> /!\ Google doesn't turn up anything related to programming for LifeScript.
02:22:31 <SF|008> (Damn, that /!\ was supposed to look like a warning symbol.)
02:24:53 <oerjan> i would guess it was made up on uncyclopedia
02:26:10 * oerjan accuses bsmntbombdood of spewing random numbers
02:26:49 <bsmntbombdood> 0.82418231992042479
02:28:21 * GregorR-L accuses bsmntbombdood of secretly being a superintelligent amoeba.
02:28:36 <bsmntbombdood> that's right
02:29:11 * oerjan accuses bsmntbombdood of agreeing too easily
02:29:23 <bsmntbombdood> 0.57673614647867355
02:29:56 <bsmntbombdood> q+tiQqHJI74zv7AskwJr7Yg
02:30:04 <bsmntbombdood> 256 bits of entropy, bitches
02:30:08 -!- `008_ has joined.
02:30:25 <GregorR-L> What a uniquely non-alphabetic moniker.
02:34:20 * `008_ waits for his ghost to ping out.
02:35:45 -!- GregorR-L has quit ("Leaving").
02:35:57 <oerjan> if you register you can get nickserv to kill ghosts
02:36:07 -!- SF|008 has quit (Read error: 104 (Connection reset by peer)).
02:37:13 -!- `008_ has changed nick to SF|008.
03:14:42 -!- Pikhq has quit ("Leaving.").
03:17:41 -!- Pikhq has joined.
03:25:01 <SF|008> Hello.
03:25:29 <bsmntbombdood> GL59VPe05mq+geZrOKQ78NItSqrwUNePtw1XWOEuH/s
03:30:45 <oerjan> that's #esoteric for you - just random talk.
03:39:53 <bsmntbombdood> UCqM7ipdod9RM3ucjgTgFA08zyxJv7OuCnlAcTXvF5I
03:52:17 <bsmntbombdood> i can has cheezbrgr?
03:54:24 <oerjan> nowai
03:54:55 <bsmntbombdood> i think i have eaten one cheeseburger in my life
03:55:42 <oerjan> how sad that is
04:03:06 -!- SF|008 has quit (Read error: 104 (Connection reset by peer)).
04:44:43 -!- Sgeo has quit (Read error: 104 (Connection reset by peer)).
05:04:56 -!- SF|008 has joined.
05:26:10 <oerjan> "C++ is multiparadigm in the same way a dog with 4 table legs nailed onto it is an octopus"
05:27:05 <nuba> oerjan: that sounds pretty much like monty python's parrot sketch
05:29:29 <oerjan> C++ is not a dead parrot. people may disagree on whether this is fortunate or not.
05:30:54 <SF|008> Anybody: while(1){fork();}
05:31:16 <Pikhq> I prefer:
05:31:21 <Pikhq> main: call fork
05:31:25 <Pikhq> jmp $main
05:31:41 <SF|008> Assembly?
05:31:44 <Pikhq> Yup.
05:31:59 <Pikhq> Could be made really, really tiny via abuse of ELF. . .
05:32:14 <SF|008> Or in an esolang I'm in the process of coding:
05:32:53 <SF|008> VAR main 0
05:33:12 <SF|008> FRK infinitefork
05:33:25 <SF|008> CLL main
05:33:33 <SF|008> RET 0
05:34:01 <SF|008> *CLL $main
05:34:41 <Pikhq> var __dl_fork=dlsym(dl_libc,"fork");while(:{1},{dlcall(__dl_fork)});
05:34:45 <SF|008> (infinitefork is the name of a file called infinitefork.lsc, which contains this exact code.
05:35:18 <Pikhq> . . . I've got something better for you.
05:35:21 <Pikhq> :(){ :|:& };:
05:35:43 <SF|008> Ah, the Unix fork bug.
05:36:28 <oerjan> it's a bug?
05:36:51 <SF|008> Typing that into a shell=hang.
05:36:52 <Pikhq> It's perfectly valid code.
05:37:06 <SF|008> Yes, but it crashes.
05:37:11 <Pikhq> Not the shell author's fault that what's requested is a crash.
05:37:31 <Pikhq> It's like complaining that your program segfaults when it sends itself a SIG_SEGV.
05:38:30 <SF|008> It's not supposed to send itself a SIGSEGV.
05:39:06 <bsmntbombdood> Pikhq: forkbomb shell code!
05:39:50 <SF|008> That's like (in my code) doing this:
05:40:13 <SF|008> ERR 199 SIG_SEGV.
05:40:31 <SF|008> Where that's supposed to naturally happen like this:
05:40:35 <Pikhq> Imagine that you had raise(SIGSEGV) as your entire program.
05:40:46 <Pikhq> Is it a bug when that causes your program to halt?
05:40:57 <SF|008> That would be a really useless program.
05:41:07 <Pikhq> Yes, but so is a fork bomb.
05:41:27 <SF|008> A fork bomb can take out the system.
05:41:34 <Pikhq> Just because it's useless doesn't make it a bug when an implementation does exactly what's requested of it.
05:42:10 <SF|008> A raise(SIGSEGV) just makes a stupid dialog box appear or something.
05:42:25 <bsmntbombdood> that program could be usefull if you were testing your sigsegv in the kernel
05:42:27 <Pikhq> Are you in POSIX-land or something?
05:42:38 <Pikhq> Err.
05:42:42 <Pikhq> Not in POSIX-land.
05:43:14 <Pikhq> bsmntbombdood: Yeah. . . It could also be useful if you just want to demonstrate to people that something doing what's requested is *desired behavior*, not a bug. ;)
05:43:31 <bsmntbombdood> yes indeed
05:43:51 <bsmntbombdood> *(int*)0;
05:44:09 <SF|008> But raising SIGSEGV explicitly is a kind of crappy error handler.
05:44:28 <Pikhq> Sure, but that *is* the requested behavior.
05:44:41 <Pikhq> If GCC *didn't* handle that properly, then GCC would be buggy.
05:44:57 <bsmntbombdood> maybe you can turn this into an esolang?
05:45:05 <bsmntbombdood> a language that doesn't do what you tell it to?
05:45:09 <Pikhq> Hahah.
05:45:40 <SF|008> The human programming language:
05:46:13 <SF|008> All syntax is valid, but the only output you get is the compiler telling you it'll do it later.
05:47:03 <SF|008> Example code:
05:47:15 <SF|008> Print out "hello world."
05:47:20 <SF|008> Output:
05:47:34 <SF|008> [X] I'll do it later.
05:47:38 <Pikhq> No, no, no.
05:47:40 <bsmntbombdood> not a very interesting completeness class
05:47:46 <bsmntbombdood> not worth thinking about
05:47:48 <bsmntbombdood> goodbye
05:47:51 <Pikhq> Output: "Goodbye, world."
05:47:59 <Pikhq> kill 09 1
05:48:08 <SF|008> 09 1?
05:48:12 <Pikhq> Err.
05:48:15 <Pikhq> kill -9 1
05:48:35 <SF|008> Still doesn't make any sense right now.
05:48:51 <Pikhq> What OS are you on?
05:49:03 <SF|008> Windows XP.
05:49:13 <Pikhq> Here's a nickle, kid. Get a real OS.
05:49:35 <SF|008> I have Ubuntu 6.something on my drive too.
05:49:37 <bsmntbombdood> no beard, no snobby unix guy
05:50:17 <Pikhq> bsmntbombdood: Huh?
05:50:30 <bsmntbombdood> you can't be a snobby unix guy unless you have a beard
05:50:47 <Pikhq> I've not shaved for a week, does that count?
05:50:54 <bsmntbombdood> no
05:51:36 <SF|008> Good idea for the esolang that just came up: print=throw an exception.
05:51:41 <Pikhq> SF|008: http://en.wikipedia.org/wiki/Kill_%28Unix%29
05:51:50 <bsmntbombdood> that's not a good idea
05:52:05 <SF|008> Not really.
05:52:21 <SF|008> I'm just pulling ideas out of /dev/ass right now.
05:52:46 <Pikhq> . . . Okay, so you're on Windows XP, but you're using Unix devices.
05:52:54 <nuba> Pikhq: whats a real OS?
05:53:28 <Pikhq> nuba: A real, honest-to-God UNIX, of course.
05:53:41 <Pikhq> (there are other real OSes, that's just a common one)
05:53:50 <nuba> theres more to OSes than unixes
05:54:05 <Pikhq> Yeah, of course.
05:54:49 <nuba> plan9 for one addressed many bad designs on unix, but didnt stick around mostly cause unix was just good enough
05:54:51 <Pikhq> Here is one simple (if slightly over-general) definition of a real OS. . .
05:55:03 <Pikhq> os_t real_os = !Windows;
05:55:03 <Pikhq> :p
05:56:22 <nuba> heh
05:56:25 <nuba> kthxbye
05:56:37 <nuba> can i has sleep
05:56:44 <nuba> me badly needs sleep
05:57:03 <nuba> oh this is not #lolcode, sorry :)
05:57:12 <Pikhq> kill(nuba_pid, SIGSLEEP);
05:57:25 <nuba> multitasking while sleepwalking, no good. 'night
05:58:04 <bsmntbombdood> it's not "can i has sleep", it's "i can has sleep?"
05:58:26 <nuba> yeah not only wrong channel but syntax error too
05:58:30 <nuba> im in real bad shape
05:59:02 <Pikhq> Moral of the story: don't do LOLCODE.
05:59:14 <bsmntbombdood> don't lolcode, lolcats
06:00:01 <bsmntbombdood> http://icanhascheezburger.files.wordpress.com/2007/05/bring-me-a-tricycle-i-must-get-to-the-circus.jpg <-- it's GregorR !
06:04:01 <oerjan> eek, a werecat
06:06:35 <Pikhq> It's not Gregor, it's Gregor's cat.
06:06:39 <oerjan> nah, cannot be GregorR, it doesn't smile.
06:06:53 <oerjan> GregorR always smiles when he has a hat on.
06:10:22 * SF|008 does not know what the Windows equivalent to /dev/<name> is.
06:10:59 <Pikhq> There is none.
06:11:07 <Pikhq> That's an incomprehensible blob of API.
06:11:20 <SF|008> ?
06:12:05 <SF|008> I know you can redirect input to nul to get rid of it...
06:12:39 <Pikhq> Um, yeah. . . That's a nicety from DOS.
06:13:25 <Pikhq> The equivalent of, say, /dev/dsp is some weird Windows API. . . And the equivalent of /dev/hda is a different API. . .
06:13:28 <bsmntbombdood> uuuh ... don't talk about windows
06:13:32 <Pikhq> And /dev/null is a different one.
06:13:40 <Pikhq> Makes me sick just talking about it.
06:14:34 <SF|008> God, Windows sucks.
06:14:42 <bsmntbombdood> STOP USING IT
06:14:45 <bsmntbombdood> that is all
06:15:00 <SF|008> But it's the only one that I can access my internet connection from.
06:15:06 <Pikhq> SF|008: Sucks even more once you get *used* to having the source code to everything.
06:16:13 * SF|008 goes to check if nocharge.com has an executable dialer for his other system.
06:17:49 <Pikhq> SF|008: What kind of ISP do you have that doesn't support non-Windows OSes?
06:18:08 <bsmntbombdood> how does an isp support or not support an os?
06:18:28 <bsmntbombdood> shouldn't they just...give you a connection to the internets?
06:18:30 <SF|008> The dialer may be in a different executable format.
06:18:34 <Pikhq> bsmntbombdood: Easy. First, require a proprietary protocol.
06:18:52 <Pikhq> Second, only implement it in one OS.
06:19:05 <bsmntbombdood> why would you d o that?
06:19:09 <Pikhq> SF|008: *Surely* they support standard protocols?
06:19:11 <SF|008> Last time I checked, only Windows has the ability to use .exe's.
06:19:14 <Pikhq> bsmntbombdood: I dunno, ask NetZero.
06:19:43 <Pikhq> SF|008: Yeah, but that doesn't mean they don't support standard protocols. . .
06:19:44 <SF|008> What I'm saying is, the dialer that you downlad to give you the numbers may only be in a .exe file.
06:19:59 <bsmntbombdood> extract them
06:20:11 <Pikhq> Earthlink, for example, ships with a proprietary dialer. . . But I can just as easily find the phone numbers, and use kppp to dial up.
06:20:20 <SF|008> .exe=windows executable.
06:20:36 <oerjan> or VMS :)
06:21:17 <SF|008> I don't even know how to get to the net on Ubuntu 6.whatever it is.
06:21:48 <Pikhq> Or DOS, or certain versions of BeOS.
06:22:31 <SF|008> Pikhq: Uh, you seem to have gone into an infinite rant loop.
06:22:44 -!- calamari has quit ("Leaving").
06:23:08 <SF|008> Kindly throw an exception stating that you have detected an infinite rant and have decided to exit.
06:23:10 <Pikhq> SF|008: It's 23:21. I have good reason to.
06:23:25 <bsmntbombdood> whoa you are in my tz
06:23:34 <SF|008> Pikhq: As are you.
06:23:47 <SF|008> What state are you in?
06:23:56 <Pikhq> Colorado.
06:24:01 * bsmntbombdood too
06:24:15 * SF|008 is not.
06:24:21 <Pikhq> bsmntbombdood: I could swear we had this conversation earlier.
06:24:25 <bsmntbombdood> we did
06:24:35 <Pikhq> Ah.
06:24:42 <bsmntbombdood> i didn't remember untill just now
06:25:06 <Pikhq> You do realise that your hostname places you in (I think) Belgium, right? :p
06:25:30 <bsmntbombdood> yeah
06:25:37 <Pikhq> . . . Why?!?
06:25:40 <bsmntbombdood> not my hostname, actually
06:26:11 <SF|008> Heh.
06:26:24 <SF|008> qhois confirms the belgium hostname.
06:26:31 <SF|008> *whois.
06:26:33 <bsmntbombdood> guy who bought it says .be was cheaper
06:26:51 <SF|008> Damn, my typing skills are fail today,'
06:27:11 <Pikhq> bsmntbombdood: Probably is.
06:30:39 * SF|008 gets bored and dereferences a null pointer.
06:31:01 <bsmntbombdood> *(int*)0;
06:31:49 <oerjan> fromJust Nothing
06:33:57 * Pikhq gets bored an references a null pointer.
06:34:04 <Pikhq> &(void*)0;
06:34:14 <bsmntbombdood> errorrrr
06:34:24 <Pikhq> What error is there in that?
06:34:32 <Pikhq> It's just a pointer to a pointer. . .
06:34:34 <oerjan> Just Nothing
06:34:40 <Pikhq> Exactly.
06:34:47 <bsmntbombdood> you can't reference on something that's not a valid lhs
06:35:09 <Pikhq> NULL is perfectly valid until you try to dereference it.
06:45:41 -!- GreaseMonkey has joined.
06:50:03 <fizzie> "The operand of the unary & operator shall be either a function designator, the result of a [] or unary * operator, or an lvalue that designates an object that is not a bit field and is not declared with the register storage-class specifier."
06:50:13 <GreaseMonkey> what's this?
06:50:18 <fizzie> 0 (or any other constant) is not one of those.
06:50:24 <fizzie> GreaseMonkey; You missed:
06:50:27 <fizzie> 08:32:25 < Pikhq> &(void*)0;
06:50:29 <fizzie> 08:32:45 < Pikhq> What error is there in that?
06:51:48 <oerjan> hm... i don't think (void*)0 is an lvalue until you apply * to it
06:51:57 <GreaseMonkey> well, it would be pointing to codespace if it were possible
06:53:08 <fizzie> It might as well have to "point" to a register, if the "0" part was implemented with a "clear a register with a command like xor x, x".
06:53:57 <Pikhq> fizzie: A constant is not such an object, but a pointer to a constant *is*.
06:54:05 <Pikhq> Err.
06:54:12 <Pikhq> A pointer that's constant.
06:54:25 <fizzie> Yes, but "(void*)0" is a constant (a pointer, but still a constant), not an object in memory you could point at.
06:54:26 <oerjan> no, * of a pointer is such an object. not the pointer itself.
06:54:44 <Pikhq> Mmm.
06:54:49 <fizzie> There's nothing wrong with "void * foo = 0; &foo;" though.
06:54:50 -!- SF|008 has quit (Read error: 110 (Connection timed out)).
06:54:55 <Pikhq> So, &(void*)0; is technically invalid.
06:55:16 <Pikhq> (more than technically; I think GCC would shoot me for it)
06:55:20 <fizzie> It's as invalid as "&1", even though that "should" be just a pointer to an integer.
06:55:54 <Pikhq> Except that the constant doesn't get any actual memory space allocated to it.
06:56:06 <fizzie> I'm not sure if there was even an explicit rule stating that the result of a cast operator is never an lvalue.
06:56:13 <fizzie> (void
06:56:18 <fizzie> Arr, enter-error.
06:56:27 <Pikhq> Uh. . .
06:56:28 <fizzie> But "(void*)0" needs no more memory space than "0" does.
06:57:33 <Pikhq> I don't think that works. . . (void *)some-random-integer-here is *surely* an lvalue. . .
06:57:56 <Pikhq> (regardless of how stupid of one it is. ;))
06:58:03 <fizzie> No, it's not. You can't assign to it; "(void *)42 = 69;" does not work at all.
06:58:24 <fizzie> After you dereference it with a *, it's an lvalue. "*(int *)42 = 69;" does "work".
06:59:43 <Pikhq> int *foo;(void *)foo = bar;
06:59:55 <Pikhq> I think in that case (void *)foo is a perfect lvalue.
06:59:58 <fizzie> You can't assign to the result of a cast expression.
07:00:02 <fizzie> It's not an lvalue.
07:00:24 <Pikhq> Now you see why you should never trust my first attempt at a C program.
07:00:27 <fizzie> test.c:3: error: invalid lvalue in assignment
07:00:41 * Pikhq really needs to memorize the rules for lvalues and such
07:01:13 <fizzie> If you really want to do what I think you'd want that to do, you have to say "int *foo; *(void **)foo = bar;"
07:01:28 <fizzie> Er, "*(void **)&foo = bar", I mean.
07:01:49 <Pikhq> Which, of course, is stupid.
07:02:09 <Pikhq> int *foo;foo=bar; is much shorter.
07:02:19 <Pikhq> Or even int *foo=bar;
07:02:43 <fizzie> It might not do the same thing, if void *s are different than int *s. (Although I don't think there are many cases where *(void **)&foo = bar would do the _right_ thing.)
07:02:47 <fizzie> I'd love to stay and quote more of the C standard, but have to hurry, there's the high-school-graduation-party of wife's younger brother to attend to.
07:03:47 <Pikhq> Mmkay.
07:03:57 * Pikhq will go get the C standard, and shove it firmly into head
07:05:09 <oerjan> o_O
07:09:44 <oklopol> ubuntu sucks ass, and windows is the exact same system with a lot of functionality removed.
07:09:56 <oklopol> i mean
07:10:03 <oklopol> except for the lost of"
07:10:10 <oklopol> *"
07:10:21 <oklopol> *lots
07:16:29 * Pikhq sleep need
07:17:32 <oklopol> school :<
07:17:34 <oklopol> --------------->
07:17:52 <oerjan> on saturday?
07:18:06 <oklopol> i get my grades
07:18:23 <oklopol> --------->
07:18:25 <oerjan> oh. good luck.
07:30:09 <bsmntbombdood> i hate the world
07:30:17 <GreaseMonkey> why?
07:30:24 <bsmntbombdood> many reasons
07:30:39 <GreaseMonkey> well, shit happens
07:31:02 <bsmntbombdood> http://www.codinghorror.com/blog/archives/000781.html
07:31:03 <bsmntbombdood> for hat
07:31:04 <GreaseMonkey> and besides, if you're gonna cut your life short, you'll be doing nothing forevermore, which sucks more than life
07:31:05 <bsmntbombdood> *that
07:34:42 <GreaseMonkey> took me two minutes to make a c program that does that
07:35:07 <oerjan> that's one theory. i go by the theory that people who commit suicide get reincarnated into a new life with the exact same kind of problems they didn't resolve in the previous one.
07:35:28 <oerjan> i.e. suicide helps nothing, period.
07:35:41 <bsmntbombdood> ha, reincarnation
07:37:24 <oerjan> but then everyone is so sure of things that everyone is probably going to be hugely surprised, assuming there is an afterlife at all
07:38:54 <oerjan> (including me)
07:39:07 <bsmntbombdood> no parse
07:40:12 <oerjan> eh, try replacing "that" with ", so"
07:47:01 <oerjan> ok, finished
07:47:22 <oerjan> eh wait
07:48:21 <oerjan> there
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:01:02 -!- oerjan has quit ("Good newt").
08:06:59 -!- GreaseMonkey has quit ("have fun, be careful not to blow everything up, ignore that loose screw there").
08:30:08 -!- xororand has joined.
08:30:17 <xororand> hi
08:30:33 <xororand> is there a networking extension for brainfuck or brainfYrk?
08:39:42 -!- Pikhq has quit (kubrick.freenode.net irc.freenode.net).
08:39:42 -!- GregorR has quit (kubrick.freenode.net irc.freenode.net).
08:39:42 -!- meatmanek has quit (kubrick.freenode.net irc.freenode.net).
08:40:44 -!- Pikhq has joined.
08:40:44 -!- GregorR has joined.
08:40:44 -!- meatmanek has joined.
08:46:48 <xororand> nevermind, i just discovered the easel api
09:11:35 -!- sebbu has joined.
11:09:09 -!- xororand has left (?).
11:13:14 -!- kombee has joined.
11:38:03 -!- jix__ has joined.
12:04:27 -!- kombee has quit (Read error: 110 (Connection timed out)).
12:12:02 -!- jix__ has changed nick to jix.
13:03:38 -!- jix__ has joined.
13:13:31 -!- jix has quit (Read error: 113 (No route to host)).
16:43:25 -!- Robdgreat has joined.
16:43:38 <Robdgreat> Hi.
16:56:22 -!- jix__ has changed nick to jix.
17:51:54 <Pikhq> Sal'.
17:56:47 -!- Sgeo has joined.
17:57:18 -!- tokigun has quit (Read error: 104 (Connection reset by peer)).
18:28:57 -!- tokigun has joined.
18:29:36 -!- W|cked has quit (Read error: 110 (Connection timed out)).
18:31:56 -!- W|cked has joined.
18:34:11 -!- Pikhq has quit (Connection timed out).
18:35:42 -!- Pikhq has joined.
18:59:56 <oklopol> hmm, i wonder if i should fix my java documentation after 8 beers...
19:39:46 -!- nuba has left (?).
19:46:38 -!- Robdgreat has left (?).
20:22:45 -!- Pikhq has quit ("Leaving.").
20:26:52 -!- Pikhq has joined.
21:48:28 -!- SF|008 has joined.
22:25:03 -!- `008_ has joined.
22:36:23 -!- SF|008 has quit (Read error: 110 (Connection timed out)).
22:54:14 -!- tokigun has quit ("server shutdown due to maintanence (07:00 - 18:00 KST est.)").
22:58:25 -!- W|cked has quit (Read error: 110 (Connection timed out)).
23:23:48 -!- SF|008 has joined.
23:43:48 -!- `008_ has quit (Read error: 110 (Connection timed out)).
23:49:22 -!- sebbu has quit ("@+").
23:49:51 -!- SF|008 has quit (Read error: 110 (Connection timed out)).
2007-06-03
00:12:18 <bsmntbombdood> we got grades today
00:18:16 <Pikhq> HS or college?
00:19:13 <bsmntbombdood> hs
00:20:31 <bsmntbombdood> 2 As, 1 B, 1 C and 2 Ds
00:20:34 <bsmntbombdood> not so great
00:20:51 <Pikhq> I had 4 As, 3 Bs this semester. . .
00:21:40 <bsmntbombdood> overacheiver
00:22:07 <Pikhq> Not really. My GPA's a 3.02. . .
00:24:25 <bsmntbombdood> well, i'm just glad i passed the two classes i got Ds in
00:25:29 <Pikhq> Know the feeling. . .
00:25:58 <bsmntbombdood> spanish and physics
00:26:29 <Pikhq> Wish that I'd done physics instead of chemistry. . .
00:26:43 <Pikhq> Chemistry + me = explosions.
00:26:53 <bsmntbombdood> i'm taking chem next year
00:26:57 <Pikhq> "How the hell did you get a *noble gas* to explode?!?"
00:27:04 <Pikhq> ^ me in a chem lab.
00:27:14 <bsmntbombdood> are you a sophomore?
00:27:26 <Pikhq> Going into my senior year.
00:27:29 <bsmntbombdood> oh
00:27:42 <bsmntbombdood> one year ahead of me then
00:28:25 <Pikhq> Suppose so.
00:51:03 -!- GregorR has quit (Read error: 110 (Connection timed out)).
01:03:40 -!- jix__ has joined.
01:12:11 -!- jix has quit (Read error: 110 (Connection timed out)).
01:13:03 -!- GregorR has joined.
01:14:09 * Pikhq curses very, very loudly at make
01:14:41 <Pikhq> Is it too much to ask for make to follow its documented behavior? *Is it*?
01:15:17 <GregorR> Yes.
01:16:11 <Pikhq> %.b : %.bfm
01:16:19 <Pikhq> *Surely* pfuck.0.b matches that.
01:16:51 * GregorR never uses that syntax.
01:16:58 -!- jix__ has quit ("CommandQ").
01:16:59 <GregorR> .bfm.b:
01:17:26 <Pikhq> Now, try "%: %.c".
01:17:49 <Pikhq> Or "pfuck.%:pfuck.%.c"; for my purposes, they're equivalent.
01:17:52 <GregorR> WTF? Is that "convert a .c file into anything"?
01:17:58 <GregorR> Ahhhhhhh
01:18:03 <Pikhq> Convert a c file into an executable.
01:18:13 <Pikhq> (obviously not portable. ;))
01:20:29 <Pikhq> http://pikhq.nonlogic.org/Makefile
01:20:40 <Pikhq> Care to tell me how I'm being an idiot?
01:21:00 <bsmntbombdood> that was a tasty sammich
01:23:56 <Pikhq> . . . Found it.
01:24:34 <Pikhq> I have a file called "pfuck.bfm", not "pfuck.0.bfm" and "pfuck.-1.bfm". . .
01:30:06 <GregorR> lawl
01:37:52 <bsmntbombdood> ,
02:45:26 -!- oerjan has joined.
03:18:05 -!- mbishop has joined.
03:18:28 -!- mbishop has left (?).
03:43:43 -!- boily has joined.
03:44:01 <oerjan> hi boily
03:44:07 <boily> hi
03:44:41 <boily> i had some hours to spend today, so i created a new programming language
03:45:00 <boily> i'm not sure if i have developped it enough to add it to the wiki
03:47:03 <oerjan> well the languages on the wiki are pretty variable
03:48:13 <boily> i pasted a ruby interpreter on pastebin and i'm adding the article
03:48:17 <oerjan> if you have an implementation, or enough information that someone could make one, then i say go for it
03:48:59 <oerjan> ok
03:50:45 <boily> http://esoteric.voxelperfect.net/wiki/Betterave
03:50:52 <boily> there, i just created it
03:56:28 <oerjan> a syntax and list of commands would be nice
03:59:42 <oerjan> afk
04:01:23 <boily> currently doing it
04:05:28 <boily> did it
04:05:44 <boily> hope my english isn't too bad... :/
04:11:06 <Pikhq> Not Turing-complete.
04:11:29 <Pikhq> . . . Unless the size of each variable is unlimited or something.
04:11:51 <Pikhq> . . . Or. . .
04:12:00 <Pikhq> String *list*?
04:12:10 <Pikhq> So, infinite number of strings can be stored?
04:12:48 <boily> as i coded it, i guess an infinite number of strings is possible
04:13:24 <Pikhq> Mmkay, so it is Turing complete.
04:13:31 <boily> yay!
04:13:40 <Pikhq> Although it'd be damned annoying to prove it.
04:37:21 -!- Sgeo has quit (Read error: 110 (Connection timed out)).
04:38:17 -!- Sgeo has joined.
04:38:46 -!- boily has quit ("Need sleep...").
05:11:34 -!- Sgeo has quit (Read error: 104 (Connection reset by peer)).
05:13:04 <oerjan> unlimited variables are probably turing-complete (minsky machines seem easy to emulate)
05:13:31 <oerjan> but the string list is not very useful without a way to use it for further computation.
05:13:42 <Pikhq> And, even if the *variables* aren't unlimited, you can store at least one number via the size of strings. . .
05:14:14 <Pikhq> So, """""""" would store 4. . .
05:14:38 <Pikhq> [""|1] would be an infinite loop, adding to the size. . .
05:14:54 <oerjan> i don't think so. how do you get the size of the list other than as an integer? and there is no way to shorten it.
05:15:17 <Pikhq> . . . Yeah, that is a problem.
05:15:32 <oerjan> in fact you would have a problem once the string list length exceeds the integer size.
05:15:46 <Pikhq> Assuming that integers are bounded.
05:16:04 <oerjan> and if they aren't you don't need the string list other than for output.
05:16:11 <Pikhq> Right. . .
06:38:06 <bsmntbombdood> i wonder if you could have an algorithm that has a runtime of some uncomputable function
06:39:02 <oerjan> not if it always halts.
06:39:47 <oerjan> because then you could simply run it to find out the runtime.
06:40:12 <bsmntbombdood> but
06:40:58 <oerjan> on the other hand the runtime of most ordinary turing-complete interpreters _is_ uncomputable.
06:41:51 <oerjan> because otherwise their halting problem would be solvable by computing the runtime first, then running the algorithm for that long.
06:42:49 <oerjan> er, assuming the computed runtime only works if it actually halts.
06:43:36 <oerjan> as with a busy beaver function
07:54:40 -!- oerjan has quit (Read error: 104 (Connection reset by peer)).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:03:54 -!- glenker_ has joined.
08:04:10 -!- glenker_ has quit (Client Quit).
08:04:50 -!- glenker_ has joined.
08:11:56 -!- glenker_ has quit ("WeeChat 0.2.4").
08:29:59 -!- lament has joined.
09:17:15 -!- sebbu has joined.
11:47:31 -!- jix has joined.
13:02:31 -!- jix__ has joined.
13:12:06 -!- jix has quit (Read error: 110 (Connection timed out)).
13:48:24 -!- jix__ has changed nick to jix.
15:01:00 <SimonRC> In Britain, we are graded for exams on the scale: A, B, C, D, F, N, U.
15:03:14 <SimonRC> A-D as usual, F = really bad, U = so bad they didn't even want to grade you, and N = didn't turn up.
16:15:25 <puzzlet_> didn't turn up?
16:17:30 <puzzlet_> what does it mean
16:29:09 <SimonRC> erm, exactly what it says?
16:29:15 <SimonRC> the scale is for exams
16:34:50 <puzzlet_> no, didn't get what "turn up" means
16:35:21 <puzzlet_> as a non-native English user
16:48:28 * SimonRC tries to think of a synonym
16:50:57 <SimonRC> "attend"
16:51:18 <puzzlet_> ah
16:51:47 <puzzlet_> N is for who didn't get the exam at all?
16:52:22 <SimonRC> yes
17:36:32 -!- boily has joined.
17:44:49 -!- boily has quit ("WeeChat 0.2.4").
18:06:35 -!- Sgeo has joined.
18:11:58 -!- sebbu2 has joined.
18:20:36 <oklopol> what is a makefile?
18:20:56 <oklopol> (i prefer annoying people over google :))
18:30:17 -!- sebbu has quit (Connection timed out).
18:43:16 -!- ehird` has joined.
18:44:05 -!- helios24 has quit (Remote closed the connection).
18:44:10 -!- helios24 has joined.
18:48:11 -!- sebbu2 has changed nick to sebbu.
19:08:39 <SimonRC> oklopol: it is a file that is (usually) required by the *nix program make(1).
19:10:20 <oklopol> hmm... tells the os how to compile the source, like, or=
19:10:21 <oklopol> ?
19:15:46 <GregorR> There's a program called or= that tells the OS how to compile the source?
19:16:36 <oklopol> you don't know it?
19:16:55 <oklopol> well, anyway, you don't have to know it to answer my question
19:37:58 <bsmntbombdood> or=?
19:40:10 <ehird`> a Makefile is a set of rules:
19:40:19 <ehird`> DEST: SRCS
19:40:19 <ehird`> <tab>COMMANDS
19:40:28 <ehird`> "This is how you create DEST, using SRCS: COMMANDS"
19:40:39 <ehird`> make(1) just happens to use SRCS for intelligent dependency handling
19:40:42 <oklopol> so, what i said?
19:40:53 <ehird`> basically. yes.
19:41:08 -!- lament has quit (kubrick.freenode.net irc.freenode.net).
19:43:24 -!- lament has joined.
19:43:26 <oklopol> is bash tc?
19:43:46 <ehird`> um, yes
19:43:51 <ehird`> well
19:43:53 <ehird`> not sure about bash
19:43:57 <ehird`> zsh is, for certain
19:44:07 <ehird`> i assume you mean "tc without anything but builtins"
19:44:14 <bsmntbombdood> http://maps.google.com/maps?f=l&hl=en&q=museum&near=San+Francisco,+California,+United+States&ie=UTF8&view=map&om=1&layer=c&cbll=37.777452,-122.504927&cbp=1,289.875024308419,0.628713401659621,3&ll=37.784554,-122.500091&spn=0.023674,0.040169&z=15
19:44:32 -!- lament_ has joined.
19:45:30 -!- lament has quit (Remote closed the connection).
19:46:27 <oklopol> ehird`: you assume very correct.
19:48:44 <ehird`> then, i'd say yes
19:49:04 <ehird`> if/while/test/recursing functions/arrays... it's like a normal prog. language
19:49:14 <ehird`> ``Actually I meant what I said, bash is a turing complete language.''
19:49:19 <ehird`> http://lists.ibiblio.org/pipermail/sm-users/2005-December/000902.html
19:49:25 <lament_> of course bash is turing-complete
19:49:57 <lament_> indeed it's pretty powerful and expressive
19:49:59 <bsmntbombdood> of course bash is turing complete
19:50:06 <bsmntbombdood> bash is very usefull
19:50:23 <oklopol> i haven't used it
19:50:33 <oklopol> so i wasn't sure
19:50:36 <oklopol> is dos tc?
19:50:38 <oklopol> :P
19:50:58 <ehird`> proof: a language with two characters, iota, * and i, is turing complete. it is laughably simple to implement (a few lines). you can implement it easily in bash. QED
19:51:17 <lament_> oklopol: batch files you mean? I'm not sure
19:51:29 <lament_> _they_ might actually not be
19:51:45 <lament_> in their modern form, they probably are; in the original, they might well not be
19:52:00 <lament_> i don't think you could access unlimited memory with them
20:04:22 <Pikhq> lament_: It depends upon which DOS system you're referring to.
20:04:45 <Pikhq> FreeDOS, for example, absolutely is.
20:11:05 <ehird`> ``...SQL is not a programming language because it is for instance impossible to write an infinite loop in it.''
20:11:42 <SimonRC> ooh, activity
20:11:57 <oklopol> you mother
20:12:00 <bsmntbombdood> it doesn't have to be turing complete to be a programming language
20:12:00 <oklopol> *your
20:12:01 <oklopol> ...
20:12:21 <ehird`> bsmntbombdood: it was a quote
20:12:23 <ehird`> a silyl quote
20:12:25 <ehird`> *silly
20:12:29 <Pikhq> SQL is, obviously, a non-Turing complete, domain specific programming language. . .
20:13:17 <bsmntbombdood> ehird`: hence the quote marks?
20:15:33 -!- tokigun has joined.
20:18:58 <SimonRC> tokigun: hi
20:19:06 <tokigun> hello
20:39:43 -!- Pikhq has quit ("Leaving.").
20:42:19 -!- Pikhq has joined.
20:52:37 <lament_> the problem with accepting non-TC languages as such is that, where do you stop?
20:52:59 <lament_> is html a programming language? Are text files a programming language?
20:53:22 <bsmntbombdood> yeah
20:53:27 <ehird`> meh
20:53:54 <oklopol> you can define it using humans in the definition
20:54:03 <oklopol> because that's how it's usually done
20:54:07 <oklopol> the defining
20:54:16 <lament_> HTML is a bit of a corner case, since some people actually do call it a programming language, and some vehemently deny it is.
20:54:26 <oklopol> hence, my argument
20:54:45 <lament_> er, no, this is a counter-example to your argument :)
20:54:58 <lament_> since there's no consistent definition
20:55:27 <bsmntbombdood> i've had that argument before
20:55:29 <bsmntbombdood> about html
20:56:39 <lament_> personally i'm fine defining it either way
20:56:52 <lament_> as long as it's done according to some consistent procedure :)
20:56:53 <Pikhq> A programming language should be a language expressing a set of logic for a computer to follow.
20:57:05 <bsmntbombdood> Pikhq: which html is
20:57:10 <lament_> Pikhq: that's pretty meaningless.
20:57:24 <SimonRC> The problem comes when people count writing HTML as "programming experience".
20:57:33 <bsmntbombdood> which is bullshit
20:57:52 <SimonRC> well.....
20:57:55 <bsmntbombdood> you just can't win
20:58:04 <SimonRC> it is a very tiny amount of programming experience
20:58:33 <Pikhq> But merely knowing algebra provides more experience. :p
20:58:44 <oklopol> Pikhq: i meant it perhaps need not be an unambiguous definition
20:58:56 <oklopol> though i did not really say that.
20:58:57 <SimonRC> OTOH, HTML has a very high "language level", so if it is suitable for a task, it will blow almost everything else out of the water.
20:58:59 <Pikhq> oklopol: Hmm. . . That does make sense.
20:59:21 <oklopol> wow, i rarely hear that :)
20:59:46 <oklopol> now, fixing my documentation... ->
20:59:51 <Pikhq> HTML isn't much of a programming language. . . It says in the name "Markup language". ;)
21:00:27 <Pikhq> Now, I'd call something like *LaTeX* a corner case. . .
21:00:30 <lament_> 'languge' stands for 'programming language', just as in many other acronyms.
21:00:35 <lament_> *'language'
21:00:50 <bsmntbombdood> latex is turing complete bro
21:00:50 <SimonRC> TeX *is* TC....
21:00:54 <Pikhq> Sure, it's a markup language. . . But it's got a Brainfuck interpreter written in it (I don't remember where)
21:01:16 <lament_> i think we all agree that being TC implies being a programming language
21:01:21 <SimonRC> also, there's that XML re-jiggeriser that is TC too.
21:01:23 <Pikhq> Of course.
21:01:29 <Pikhq> SimonRC: That's just one XML namespace.
21:01:30 <SimonRC> quite an FP language IIRC
21:01:31 <lament_> why "of course"?
21:01:47 <lament_> one possible way to define what is and what isn't a programming language is according to purpose
21:01:58 <SimonRC> ahh....
21:01:59 <lament_> by agreeing that TC languages are necessarily programming languages, we reject that wa.
21:02:02 <lament_> that way.
21:02:08 <Pikhq> Then surely Visual Basic isn't a programming language.
21:02:10 <SimonRC> I just had another thought...
21:02:21 <Pikhq> . . . You know, I think I like a definition which excludes Visual Basic. :p
21:02:26 <SimonRC> :-)
21:02:54 <SimonRC> Just because you can do programming in something doesn't make it sensible to call it a programming language...
21:02:54 <lament_> if we say "if it's TC, then it's a programming language", then we're defining based on _capability_
21:03:15 <SimonRC> in the same way that just because you can do OO in something doesn't make it sensible to call it an OO language.
21:03:26 <lament_> that is correct
21:03:27 <SimonRC> OO ASM probably works very well.
21:03:39 <lament_> but if you start rejecting TC things as programming languages, people will rebel.
21:04:05 <Pikhq> SimonRC: The problem is that OO is not a primitive feature of the language itself, it's an addon.
21:04:06 <SimonRC> you can do FP in C# 3.0, but that doesn't make it an FPL, because FP in it is unidiomatic and clunky.
21:04:28 <SimonRC> maybe it is to do with idiomaticity rather than possibility
21:04:32 <Pikhq> If you want to define things that way, HTML is Turing-complete, because you can strap ECMAscript into it.
21:05:26 <lament_> i think we can all be sane enough to consider javascript as separate from html proper.
21:05:38 <Pikhq> I'd *hope* so.
21:05:56 <SimonRC> You could make a Python "Hello World" program along the lines of the typical Java version, but that is unidiomatic. The normal way in Python is a single printing statement, because Python is a "scripting language".
21:06:27 <bsmntbombdood> java is yucky
21:06:31 <Pikhq> The normal way in *many* languages is a single print statement. . .
21:06:40 <lament_> SimonRC: sure
21:06:43 <lament_> SimonRC: this is also why perl sucks
21:06:44 <Pikhq> Even *assembly* has a simpler "Hello, world" program than Java. . .
21:06:49 <SimonRC> heh
21:07:00 <SimonRC> but it is less portable!
21:07:03 <lament_> perl can do a lot of stuff, is very powerful, and it's certainly possible to write clean code in it.
21:07:10 <lament_> Just not idiomatic.
21:07:18 <SimonRC> Also, what if the program later needs to be expanded to read mail?
21:07:23 <Pikhq> hello: .asciz "Hello, world!\n"
21:07:24 <Pikhq> main: push $hello
21:07:24 <Pikhq> call puts
21:07:44 <Pikhq> SimonRC: Then obviously you should take the GNU Hello route.
21:07:54 <lament_> fortunately, we don't normally judge the power of languages by how easy it is to write hello world in them.
21:08:17 <SimonRC> yes
21:08:30 <lament_> java was never meant for writing hello world.
21:08:34 <SimonRC> I realise my earlier statement was in fact totally pointless and confusing
21:08:49 <bsmntbombdood> Pikhq: using libc is not allowed
21:09:03 <Pikhq> bsmntbombdood: Fine; just reduces the portability.
21:09:18 <lament_> (and if you argue that 'hello world' should necessarily be an easy program in every useful language, then you're just on crack)
21:09:22 <bsmntbombdood> you have to use sys_write
21:09:33 <Pikhq> http://pikhq.nonlogic.org/hello.asm This is, of course, what you want.
21:10:05 <ehird`> defending java is forbidden
21:10:07 <ehird`> that is final! :)
21:10:08 <bsmntbombdood> i assume sys call 4 is write
21:10:25 <Pikhq> On Linux, at least.
21:10:56 <bsmntbombdood> don't you have to put 0 somewhere for stdout?
21:11:33 <Pikhq> On kernels newer than a certain version of 2.2, the registers default to being 0.
21:11:42 <Pikhq> Well, that is, on process creation.
21:11:46 <bsmntbombdood> oh
21:12:07 <Pikhq> Not at *all* portable, but it 'works'. ;)
21:12:48 <bsmntbombdood> and ebx is 1?
21:13:59 <Pikhq> Yup.
21:14:06 <bsmntbombdood> what for?
21:14:46 <Pikhq> stdout == 1
21:14:55 <bsmntbombdood> oh
21:15:06 <Pikhq> And syswrite takes the stream to write to as the first argument.
21:23:28 -!- GregorR has quit (Success).
21:43:26 -!- ehird` has quit.
21:47:20 -!- jix has quit ("CommandQ").
21:51:47 -!- lament_ has changed nick to lament.
22:04:47 -!- GregorR has joined.
23:33:25 -!- sebbu has quit ("@+").
2007-06-04
02:27:02 <bsmntbombdood> i haven't designed an esolang in a while
02:31:21 <oklopol> me neither :<
03:14:26 -!- GregorR-L has joined.
03:23:55 -!- Sgeo has quit (Read error: 104 (Connection reset by peer)).
03:30:42 -!- Sgeo has joined.
04:31:27 -!- Sgeo has quit ("Ex-Chat").
04:42:40 -!- boily has joined.
06:37:43 <boily> hmm... activity is low at this ungodly hour of the night...
06:38:24 <fizzie> 08:36 in this time zone.
06:38:25 <boily> just to say i perused the channel's logs, and following your discussion about my new language (betterave), i've improved string manipulation
06:38:36 <boily> 01:38 here
06:48:55 -!- mtve has quit (Read error: 110 (Connection timed out)).
06:50:34 -!- boily has quit ("Brush bed then sleep in teeth, uh, no... the other way round... sleep in teeth then brush bed.").
07:27:12 -!- erider has joined.
07:28:17 <erider> anyone here
07:31:01 <GregorR-L> Ignore the irony in the following statement: Nobody /ever/ responds to that.
07:33:31 <erider> hi
07:35:43 <erider> I'm trying to learn a simplistic language brainf**k seems to have some features or some techniques I would like to master
07:36:30 <erider> GregorR-L could you point me in the right direction
07:38:58 <GregorR-L> Well, http://www.esolangs.org/wiki/Brainfuck would be an obvious starting point ...
07:39:05 <GregorR-L> Other than that, Idonno, Google? :)
07:39:37 <erider> thanks
07:43:57 <Pikhq> erider: I just recommend one thing. . . For Brainfuck, be willing to do something even if it seems useless.
07:50:08 <Pikhq> And, of course, you have to be of about the mindset that would write a compiler for the hell of it. :p
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
10:03:01 -!- GregorR-L has quit ("Leaving").
11:09:49 -!- mtve has joined.
12:24:20 -!- bsmnt_bot has quit (Read error: 145 (Connection timed out)).
12:31:26 -!- bsmntbombdood has quit (Read error: 110 (Connection timed out)).
13:02:31 -!- helios24 has quit (Read error: 104 (Connection reset by peer)).
13:02:48 -!- helios24 has joined.
13:03:46 -!- mtve has quit ("Terminated with extreme prejudice - dircproxy 1.0.5").
13:16:58 -!- ais523 has joined.
13:31:16 -!- pe4enitsa has joined.
13:34:06 -!- pe4enitsa has left (?).
13:56:47 -!- mtve has joined.
14:23:19 -!- ais523 has quit ("trying to find a computer on which I can actually edit Wikipedia without inserting lots of random line breaks").
14:58:17 -!- jix has joined.
15:36:32 -!- boily has joined.
15:57:38 -!- sebbu has joined.
17:36:20 <lament> HI
17:39:47 -!- Gamegirl has joined.
17:45:30 <Gamegirl> is anyone talking here?
17:46:09 <lament> never
17:46:12 <lament> it's forbidden
17:46:22 <Gamegirl> why&
17:46:25 <Gamegirl> jh
17:46:29 <lament> whoever talks, shortly dies of unknown causesAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARRRRRRGH
17:46:33 <Gamegirl> aargh!
17:46:53 <lament> que tal?
17:47:03 <Gamegirl> oh, I`m sorry
17:47:17 <Gamegirl> I can`t understand
17:47:28 <lament> what's up?
17:47:39 <Gamegirl> what que tal mean?
17:48:06 <lament> what's up
17:49:07 <Gamegirl> good
17:51:42 <Gamegirl> Is it a dead chat?
17:53:08 <oklopol> yeah
17:53:16 <oklopol> lament already told you
17:53:42 <oklopol> i actually think this channel is empty
17:54:01 <Gamegirl> oh, it`s very sad
17:54:28 <Gamegirl> and all of that hm.. people...
17:54:36 -!- CakeProphet has joined.
17:54:41 <Gamegirl> they are not alive?
17:55:02 <CakeProphet> :)
17:55:05 <oklopol> CakeProphet: long time no ocean.
17:55:17 <CakeProphet> LOL PUN
17:55:27 <lament> Gamegirl: they're bots.
17:55:32 <oklopol> <--- CLEAVA BOY
17:55:35 <oklopol> *CLEVA
17:55:45 <lament> for example, clog is a bot that logs the channel.
17:56:05 <lament> and GregorR is a bot that interprets some esoteric languages.
17:56:11 <Gamegirl> lament: all of them?
17:56:41 <lament> and puzzlet_ is a korean translation bot.
17:57:04 <CakeProphet> CakeProphet is a bot that spits out random bits of wisdom
17:57:15 <CakeProphet> .....very complex AI in this one.
17:57:23 <lament> or so it says.
17:57:51 * CakeProphet pauses as he traverses his decision tree.
17:58:00 * CakeProphet proceeds
17:58:00 <lament> tree? more like a bush!
17:58:04 <CakeProphet> HEY FUCK YOU K?
17:58:07 <lament> :D
17:58:10 * CakeProphet made the optimal decision.
17:58:29 <lament> aren't you proud.
17:58:57 <CakeProphet> mhm :)
18:03:32 <lament> Gamegirl: to summarize everything, if you want to chat, this is perhaps not the best channel; but if you want to discuss esoteric languages, then it is.
18:04:10 <CakeProphet> chatting is fine.
18:04:11 <Gamegirl> to discuss with bots?
18:04:16 <Gamegirl> o_O
18:04:22 <Gamegirl> wierd
18:04:24 <CakeProphet> yep
18:04:34 <CakeProphet> bots are excellent for conversation
18:04:38 <oklopol> i just realized Gamegirl has the word "girl" in it
18:04:41 <lament> we're smart bots.
18:04:45 * oklopol is a bot that penetrates
18:04:49 <CakeProphet> ...
18:04:56 <oklopol> ...
18:05:05 <oklopol> like... metphorically
18:05:10 <oklopol> *metaphorically
18:05:13 <CakeProphet> ...I see.
18:05:32 * lament slowly backs away from oklopol
18:05:57 <oklopol> i'm < 1000 km long, don't worry 8|
18:06:20 <lament> length can be measured in several ways
18:06:27 <lament> i don't know which one you chose...
18:06:27 -!- Gamegirl has left (?).
18:06:31 <oklopol> :)
18:06:36 * CakeProphet has pretended to be female before... AND GUYS DO VERY ANNOYING THINGS
18:06:43 <oklopol> ...oh?
18:06:45 <CakeProphet> mhm
18:06:51 <oklopol> i can't imagine.
18:06:54 <CakeProphet> ...
18:07:12 <oklopol> who said i'm a guy?
18:07:23 <oklopol> i guess i've said that multiple times, though
18:07:36 <lament> congrats, we scared him away.
18:07:36 <CakeProphet> my decision tree does not account for sarcasm
18:08:21 <CakeProphet> ...can bots have a gender? How would you check?
18:08:33 <oklopol> i guess she wasn't interested in esoteric penetration
18:08:40 <oklopol> i need more caffeine
18:09:16 <lament> oklopol: i kind of doubt an actual girl would put 'girl' in her nick.
18:09:47 <lament> on freenode anyhow.
18:09:47 <CakeProphet> too much.... bullshit, would arise from that
18:10:52 * CakeProphet 's mind is 50% woman
18:11:15 <oklopol> oh
18:11:47 <oklopol> does that mean i should half-stalk you too?
18:11:52 <oklopol> :|
18:11:59 <CakeProphet> MEN ARE PIGHEADED IDIOTS ON THE INTERNETST. :) :)
18:12:01 <CakeProphet> ....yep.
18:12:21 -!- crathman has joined.
18:12:27 <CakeProphet> hello person
18:12:31 <CakeProphet> of interest
18:12:33 -!- sebbu2 has joined.
18:16:44 <oklopol> what's "complex number" in under four letters? "cx"?
18:16:50 <oklopol> that's such a long term...
18:16:56 <oklopol> "cn"
18:17:01 <lament> i
18:17:10 <oklopol> hmm
18:17:12 <lament> what's the context?
18:17:16 <oklopol> class name.
18:17:22 <oklopol> for my stdlib
18:17:38 <lament> well, complex numbers are C
18:17:42 <oklopol> oh
18:17:44 <lament> that's the 'official' name
18:17:49 <oklopol> indeed
18:17:51 <lament> not sure if you want to name a class that.
18:17:54 <oklopol> LOX!
18:17:56 <oklopol> i sure do
18:17:58 <oklopol> hmm
18:18:14 <oklopol> one character names are for temp variables though, of course
18:18:20 <oklopol> cx then?
18:18:22 <oklopol> or?
18:19:26 <lament> why are you writing a stdlib?
18:19:35 <oklopol> ...?
18:19:54 <oklopol> as always, i'm making oklotalk.
18:21:09 <CakeProphet> I would go with complex or something
18:21:19 <oklopol> too long
18:21:31 <CakeProphet> compnum?
18:21:41 <oklopol> it'll be quicker just to calculate with lists if is use that long a name
18:21:45 <CakeProphet> complex isn't too hard to type... considering how not-quite-so-often it'll be used.
18:21:58 <oklopol> though guess you can do c='complex; and then use c
18:22:16 <oklopol> well, indeed it's prolly not that often needed
18:22:18 <CakeProphet> just use some kind of J notation
18:22:26 <oklopol> but still... it's SOIOOOOOOOOOOOOOOOOOOOOoo long
18:22:27 <CakeProphet> in the number literal
18:22:34 <oklopol> heh
18:22:51 <oklopol> 10+i43 :P
18:23:08 <CakeProphet> hmm... 10j43 maybe?
18:23:15 <oklopol> why j?
18:23:22 <CakeProphet> -shrug- I forgot
18:23:26 <oklopol> okily
18:23:30 -!- helios24 has quit (Remote closed the connection).
18:23:37 -!- helios24 has joined.
18:24:22 <CakeProphet> ...I'd like a language that's really fast... and has a quick way to write extension languages that can cooperate with it. IT WOULD BE GOOD, FOR MAKING GAMES AND SUCH
18:24:31 <oklopol> ?
18:24:35 <oklopol> whutta ya mean?
18:25:21 <CakeProphet> OH I REMEMBER WHY
18:25:26 <CakeProphet> Python uses J for complex.
18:25:28 <CakeProphet> >>> type(10j)
18:25:30 <CakeProphet> <type 'complex'>
18:25:31 <CakeProphet> >>> 10j+2
18:25:33 <CakeProphet> (2+10j)
18:25:34 <oklopol> oh
18:25:35 <CakeProphet> >>>
18:25:43 <lament> CakeProphet: so, like, lisp?
18:25:45 <oklopol> well oklotalk does not understand postfix, so it'd be j10
18:25:53 <CakeProphet> lament, not quite.
18:25:58 <CakeProphet> but... similar yes.
18:26:03 <lament> lots of people use 'j' instead of 'i'
18:26:13 <lament> that doesn't mean 'j' refers to complex numbers
18:26:23 <lament> it's just a synonym for 'i'
18:26:34 <lament> engineers use it because i is reserved for i,j,k direction vectors
18:26:37 <lament> er
18:26:40 <lament> so's j.
18:26:41 <lament> :)
18:26:51 <lament> engineers use it because i is current :)
18:27:34 <CakeProphet> ...I don't like Lisp...
18:27:45 <CakeProphet> as world-changing as people claim it is.
18:30:19 <CakeProphet> ....basically I just need a virtual machine assembly type thing.... and then have a suite of languages that compile to it that can run together..... something like what Parrot is going for.
18:31:32 -!- sebbu has quit (Connection timed out).
18:32:50 <lament> ...use parrot?
18:33:34 <CakeProphet> MY DECISION TREE... PREDICTED THIS.
18:33:41 <CakeProphet> THAT YOU WOULD SAY SUCH A THING.
18:33:56 <CakeProphet> ....but what's the point in using stuff that already exists? I like to use things that do not exist yet.
18:34:03 <oklopol> why use parrot when you can try making your own?
18:34:08 <CakeProphet> FUCK YES
18:34:09 <oklopol> yeah
18:34:11 <CakeProphet> :)
18:34:13 <oklopol> :)
18:34:29 <CakeProphet> perhaps Parrot is lame? yes?
18:34:42 <oklopol> yeah, LAMEnt!
18:35:58 <CakeProphet> for one, it has the wrong name. The virtual assembly language I'm looking for is called Grue.
18:36:03 <CakeProphet> ...and it does not exist yet
18:37:37 <Pikhq> CakeProphet: BTW, the JVM is perfectly suitable for that task.
18:37:47 <Pikhq> ;)
18:38:08 <CakeProphet> ....JVM is named Grue?
18:39:03 <CakeProphet> ....doesn't Parrot use a callstack of some sort.... I think PIM does.
18:39:11 <CakeProphet> I DO NOT WANT A CALLSTACK.
18:43:23 <erider> bf doesn't even compile text right?
18:43:48 <CakeProphet> ?
18:43:50 -!- bobbens has joined.
18:43:52 <oklopol> this one day i had this weird urge to have a callstack, but i said to myself "don't you have another callstack, you just had one last week" and i was like "fuck you"
18:44:02 <oklopol> you know
18:44:13 <CakeProphet> ...
18:44:40 * CakeProphet finds that inexplicably hilarious... but remains unsure as to why
18:44:40 <oklopol> i just start writing and let it come out, sorry.
18:45:28 <Pikhq> erider: Uh, wha?
18:45:29 <CakeProphet> GRUE SHALL HAVE... LIKE... BUILTIN MICROTHREAD THINGS....
18:45:31 <oklopol> okay, my pattern matching works, but it's definitely not pretty.
18:45:48 <CakeProphet> Like erlang.... or something
18:45:57 <erider> Pikhq: sorry I was talking about being able to comment
18:45:59 <lament> CakeProphet: maybe you should join the lolcode people
18:46:00 <Pikhq> BTW, I've actually got an SVN repository for PEBBLE set up. . .
18:46:24 <oklopol> erider: [you comment here.]
18:46:26 <oklopol> *your
18:46:48 <oklopol> [-][ -||- ]
18:47:06 <CakeProphet> doesn't bf just kind of ignore non-code stuff?
18:47:08 <erider> >+++++++++ # comment?
18:47:12 <Pikhq> CakeProphet: It does.
18:47:14 <oklopol> ..?
18:47:21 <oklopol> erider: [ your comment here ]
18:47:24 <CakeProphet> >comment++++++++++++++
18:47:31 <lament> [none of these instructions will ever get executed. Therefore, punctuation, including brainfuck commands, is fine. The only thing that will break it is unmatched brackets]
18:47:37 <Pikhq> erider: You only need to put your comment in a loop which won't run if it includes Brainfuck special chars.
18:47:38 <erider> that was my question thank CakeProphet
18:47:54 <CakeProphet> but the brackets are good if you want punctuation
18:48:14 <lament> otherwise it's easy to put punctuation in by mistake, and spend ages debugging
18:48:14 <erider> ok
18:48:23 <CakeProphet> just use brackets on a bf cell that's set to 0
18:48:37 -!- mee has joined.
18:48:41 <lament> brackets are nice for comments in the beginning of the program
18:48:50 <lament> otherwise, you have to be really sure the cell is set to 0
18:49:05 <CakeProphet> most mid-program comments don't require punctuation anyways
18:49:12 <lament> they're also nice for writing a polyglot.
18:49:23 <lament> // [
18:49:27 <lament> C code follows
18:49:40 <CakeProphet> any sort of NOP/comment is great for writing polyglots
18:49:41 <lament> /* ] brainfuck code follows */
18:49:43 <CakeProphet> it's almost necessary
18:50:08 -!- bsmntbombdood has joined.
18:50:13 <lament> very easy with C and BF since / and * are nops in brainfuck :)
18:50:48 <CakeProphet> I like Haskell's comment style.
18:51:12 <lament> i like literate haskell's comment style :)
18:51:28 <CakeProphet> -- lol comment here
18:51:58 <lament> -- lol code here
18:52:10 <lament> 10 REM THIS IS A COMMENT
18:52:17 <CakeProphet> literate haskel huh?
18:52:27 <lament> CakeProphet: comments and code are switched
18:52:33 <lament> everything's a comment, unless preceded by --
18:52:45 <lament> with the idea that comments are more important than the actual code
18:52:49 <CakeProphet> aaah.... you'd use that in things where you have more comment that haskell
18:52:57 <CakeProphet> *than
18:53:04 <CakeProphet> like.. in some kind of example
18:53:16 <lament> well, the idea is that you should use that for all your programs.
18:53:35 <oklopol> i hate comments, don't read code, write it.
18:53:36 <lament> because making a human understand what's going on is more important (and harder) than making the computer understand.
18:54:19 <CakeProphet> .....not really. I find it very easy to explain things to... people.
19:00:37 <lament> in writing?
19:01:32 -!- erider has quit (Read error: 104 (Connection reset by peer)).
19:04:02 <oklopol> what's (a+bi)/(c+di)?
19:04:22 <lament> calculate it.
19:04:30 <oklopol> :<
19:04:32 <lament> you only need middle school algebra or something?
19:04:36 <oklopol> i don't wanna :<
19:04:38 <oklopol> yeah
19:04:41 <oklopol> okay, i'll try
19:05:13 <Pikhq> svn://nonlogic.org/pikhq/pebble/trunk/
19:05:17 <oklopol> nah, i can't, at least i can't do it fast
19:07:13 <CakeProphet> hmmm.... it would be like...
19:08:05 <CakeProphet> ...I forgot how to divide polynomials.
19:08:13 <oklopol> hmm
19:08:24 <oklopol> you do something whose name i only know in finnish
19:08:40 <oklopol> part-fraction-factors or something :P
19:08:50 <oklopol> divide it in those.
19:09:27 <CakeProphet> I can multiply them though... so that's (a+bi)*(1/c+1/di)
19:09:32 <CakeProphet> right?
19:09:34 <oklopol> no
19:09:54 <oklopol> 1/(a+b) is not a/a+1/b
19:10:00 <oklopol> *1/a+1/b
19:10:03 <oklopol> even i know that
19:10:04 <oklopol> :)
19:10:18 <CakeProphet> oh... yeah :P
19:10:32 <CakeProphet> I SUCK... AT MATH
19:10:44 <oklopol> for any values of a and b i can calculate A and B in A/a+B/b
19:10:53 <oklopol> but not the general case
19:11:01 <oklopol> i mean, i probably could, but it'd take long
19:12:56 <CakeProphet> you could change 1/(c+di) by multiplying it by something that equals one... and will result in a denominator of 1.
19:13:20 <oklopol> speaking of sucking, i got a scholarship for being 5th in finlands national math competition \o/
19:13:45 <oklopol> my grades in math are of average 8 (4-10)
19:13:56 <CakeProphet> what times (c+di) will equal 1?
19:14:13 -!- erider_ has joined.
19:14:46 <oklopol> i'd've been divided first but i didn't understand a question right... finnish is so hard
19:15:05 <oklopol> CakeProphet: i have no idea, but i guess you can... calculate it?
19:15:45 <CakeProphet> dunno... I'm just trying to switch that division into a multiplication.... I forgot how to divide polynomials.
19:16:06 <oklopol> i know how you do it, but it's not trivial
19:16:14 <oklopol> and i don't know the term
19:16:15 <erider_> does + = 1 in the cell or binary 2
19:16:31 <oklopol> ?
19:17:53 <CakeProphet> + in bf increments the current cell by 1
19:18:12 <CakeProphet> !bf +.
19:18:25 <CakeProphet> hmm... I need a linefeed right?
19:18:44 <oklopol> or a printable character
19:18:54 <oklopol> !bf +++++++++++++++++++++++++++++++++.
19:19:03 <oklopol> !bf +++++++++++++++++++++++++++++++++.>++++++++++.
19:19:09 <oklopol> !bf +++++++++++++++++++++++++++++++++.>+++++++++++++.++++++++++.
19:19:13 <CakeProphet> :)
19:19:18 <oklopol> !bf +++++++++++++++++++++++++++++++++.>+++++++++++++.>++++++++++.
19:19:22 <oklopol> .
19:19:36 <oklopol> I WASN'T EVEN TRYING
19:19:40 <erider_> hmm
19:20:00 <oklopol> egobot is not here.
19:20:04 <oklopol> heh
19:20:17 <erider_> !bf +.
19:20:47 <CakeProphet> basically... bfs state consists of an array of characters and a pointer variable.
19:20:59 <CakeProphet> + is equivalent to array[pointer] += 1
19:21:09 <CakeProphet> > is pointer += 1
19:21:30 <CakeProphet> < is pointer -= 1
19:21:32 <CakeProphet> etc
19:22:08 <erider_> so it can show printable char
19:22:19 <CakeProphet> with the . command, yep.
19:22:29 <oklopol> 1, of course, is unprintable.
19:22:35 <oklopol> chr(1)
19:23:02 <erider_> can it show ints
19:23:09 <oklopol> yes
19:23:15 <oklopol> but not like you mean.
19:23:17 <CakeProphet> ...kinda... no in the way you're thinking probably.
19:23:20 <oklopol> yeah
19:23:28 <CakeProphet> it can show the ASCII characters for digits...
19:23:46 <CakeProphet> but... . doesn't print out the value in the cell... just its corresponding ASCII character.
19:24:40 -!- erider has joined.
19:24:51 <Pikhq> You can, of course, do some itoa stuff on it.
19:24:52 <erider> sorry I was on my phone
19:25:07 <CakeProphet> !bf ++++++++++++++++++++++++++++++++++++++++++++++++.
19:25:22 <CakeProphet> the cells value is 48.... but the interpreter would print "0".
19:25:32 <CakeProphet> because the 48th ASCII character is "0"
19:26:16 <erider> ok so to do calc?
19:26:33 <Pikhq> The same for ++++++[>++++++++<-]>.
19:27:00 <CakeProphet> addition of two cells... is fairly simple... you just make a loop in one cell that increments another.
19:27:17 <Pikhq> Pretty much just multiplication.
19:28:07 <CakeProphet> two plus two... would be ++>++<[>+<-]
19:28:10 <CakeProphet> or something similar
19:28:45 <CakeProphet> [>+<-] would be a destructive addition... that dumps the result in the cell to the right of the current one
19:30:29 <erider> CakeProphet: do you know of an interactive shell for bf or just compilers and interpreters
19:30:53 <oklopol> you can make one in 15 minutes
19:30:54 <CakeProphet> egobot has one.
19:31:01 <CakeProphet> !help
19:31:05 <oklopol> yeah, that'd this channel
19:31:11 <oklopol> and really, EgoBot is offline.
19:31:23 <oklopol> *that'd be
19:31:40 <CakeProphet> erider, do you have Python?
19:31:47 <erider> yes
19:43:19 <CakeProphet> meh... I started working on one... but I never feel like doing the brackets.
19:45:28 <oklopol> triv with rec
19:53:18 <bobbens> i have two questions about bf, is the data initialized to 0? how do you print stuff? kernel calls?
19:53:35 <bobbens> (excuse my laziness :) )
19:54:28 <oklopol> kernel calls?
19:54:30 <CakeProphet> it's all initalized to 0
19:54:35 <CakeProphet> and . is the print command
19:54:46 <bobbens> that prints the entire stack or whatever it's called?
19:54:48 <oklopol> ! will call asm INT n, where n is the value of the current cell.
19:55:12 <CakeProphet> nope... just the current cell
19:55:20 <bobbens> ok
19:55:38 <bobbens> might mess around with that someday :)
19:55:38 <CakeProphet> here's the interactive bf shell I was working: http://deadbeefbabe.org/paste/4999 it doesn't have [ and ] yet... which I don't feel like implementing (definetely the most time consuming out of all the commands)
19:55:51 <erider> ! is an addition command? I have only seen the 8 commands
19:56:04 <CakeProphet> ! isn't a normal command.... not that I'm aware of.
19:57:56 <oklopol> sorry, i just mislead people asking advice :<
19:58:01 <Pikhq> erider: There's only 8 commands.
19:58:06 * oklopol is a sly bastard
19:58:07 <Pikhq> +-><.,[]
19:58:24 <Pikhq> From that, one can *do* many powerful things, however. . .
19:59:05 -!- boily has quit ("WeeChat 0.2.4").
19:59:54 * CakeProphet always implements the bf array as a sparse-matrix-esque hash table.... to save space with all the zeros floating about.
20:00:33 <erider> Pikhq: what types of things
20:00:59 <Pikhq> erider: Theoretically anything.
20:01:08 <Pikhq> It's Turing complete, after all.
20:01:41 <Pikhq> (although doing stuff like networking, graphics, etc. requires some additional support from the interpreter, to wrap that stuff around stdin and stdout.)
20:02:05 <CakeProphet> bf is kind of useless... not because it can't do a lot of things... it just doesn't have any OS-specific things. While it can COMPUTE anything... it can't necessarily communicate with the rest of the operating system like most other programs can.
20:03:16 <CakeProphet> it can't do things like draw windows... write to files... send things to a server in India... etc
20:03:21 <Pikhq> CakeProphet: Sure it can (although the *implementation* of such things is lacking).
20:03:31 <CakeProphet> ...not the normal bf.
20:03:38 <Pikhq> One merely needs to implement PESOIX, or something similar, and voila.
20:03:43 <CakeProphet> adding an "extension" to bf pretty much makes it something other than bf
20:04:04 <Pikhq> It's not an extension to the language, it's an API which BF code can access via I/O.
20:04:40 <erider> how to you access input with ,
20:04:52 <erider> do*
20:05:00 <CakeProphet> otherwise, I could argue that Python has gotos... I just haven't hacked it in as a trace function yet.
20:05:32 <Pikhq> CakeProphet: I'm not saying that BF has it, just that it *can*.
20:05:44 <Pikhq> Likewise, Python *can* do gotos, but it's not a native feature.
20:05:55 <Pikhq> erider: Yeah, "," is the input command.
20:06:05 <CakeProphet> how does PESOIX do this without using -anything- other than the standard bf implementation?
20:06:35 <erider> Pikhq: input from where
20:06:54 <CakeProphet> stdin
20:06:57 <CakeProphet> whatever that may be.
20:07:12 <CakeProphet> typically it's a line-buffered keyboard input... in a shell window.
20:07:44 <Pikhq> CakeProphet: Interfacing with PESOIX is done soley by stdin and stdout.
20:08:22 <erider> CakeProphet: so it bring in one char at a time
20:08:22 <oklopol> well, if you make '@' mean "open irc connection", you are changing the language, however, if you, like someone just said, make special characters change where stdio goes, you are pretty much just making an api
20:08:53 <CakeProphet> erider, yep... everything is character-by-character in BF... no "strings" in the typical sense...
20:08:58 <CakeProphet> technically, the bf array is just one giant string
20:09:26 <Pikhq> And all PESOIX is is an API. . . Just outputting stuff selectively. . . In theory, at least, you could use the API on any esolang.
20:09:36 <erider> CakeProphet: by we control where the char are placed in the tape
20:09:51 <CakeProphet> right
20:09:54 -!- erider_ has quit (Read error: 110 (Connection timed out)).
20:10:02 <erider> but*
20:15:13 <oklopol> okay, in php, why exactly can't you chain operations like "$second_word=explode(" ",$a)[1];"?
20:16:03 <erider> ,>,>,><.<.<.
20:16:39 <oklopol> because... you can do it in visual basic
20:17:16 <Pikhq> erider: Yup.
20:17:26 <Pikhq> Inputs 3 chars, outputs in reverse. . .
20:17:33 <Pikhq> And can be shortened by two.
20:17:41 <Pikhq> ,>,>,.<.<.
20:19:10 <erider> interesting
20:19:49 <erider> and comments can but written with no delimited char right
20:20:02 <erider> s/but/be
20:21:08 <oklopol> hmm... how do i read the contents of an url in php? :)
20:21:16 <Pikhq> Right.
20:21:17 <oklopol> (last time i ask :))
20:21:27 <Pikhq> oklopol: #php
20:35:30 <erider> +++++[>+++<-] Cell1 By 5 = 15
20:38:03 <Pikhq> erider: Perfect code.
20:39:42 <erider> thanks I think I should modify my interpreter
20:45:16 -!- boily has joined.
20:46:52 <erider> Pikhq: can you < or | into , ie; ./bf foo.b < bar
20:48:20 <Pikhq> erider: Of course. Input redirection is done by your shell, not by the Brainfuck code.
20:50:03 -!- boily has quit ("WeeChat 0.2.4").
20:50:04 <erider> Pikhq: I tried to print chars from a file with ,[.,] and it went in to while(1)
20:50:44 <Pikhq> erider: Does your interpreter make an EOF=-1 or 0?
20:51:55 <erider> Pikhq: I think EOF=0
20:52:54 <erider> or '\0'
22:56:32 -!- clog has joined.
22:56:32 -!- clog has joined.
23:09:12 * oerjan suggests cpx
23:09:23 <oerjan> if it cannot be more than 3 letters
23:09:56 <oerjan> (that's for oklopol)
23:10:57 <oklopol> cpx or cx? 2 is also good :)
23:11:02 <oklopol> CompleX
23:11:13 <oklopol> ComPleX
23:11:15 <oklopol> omg
23:11:16 <oklopol> leet
23:11:19 <oklopol> i like that
23:11:49 <oerjan> tlas ftw!
23:13:17 <oklopol> indeed
23:17:49 <erider> what can I learn playing with brainf**k
23:18:14 <oerjan> how to twist your brain into tiny little knots, obviously
23:18:46 <bsmntbombdood> aka fuck
23:19:14 <oerjan> how to build up more complicated algorithms from extremely simple parts
23:19:45 <erider> there it is
23:20:10 <erider> so its worth playing with :)
23:21:04 <oerjan> how to program with no type checking at all
23:21:17 <oerjan> (forth could also be used for that, i hear)
23:21:27 <oerjan> or assembly
23:21:42 <bsmntbombdood> yay no types
23:22:26 <erider> forth type is a cell
23:22:38 <bsmntbombdood> B has no types either
23:26:45 <erider> oerjan: so I need to know a lot about ascii to make interesting things
23:27:29 <oerjan> regarding the name of Parrot: why would anyone want to name a vm after a dead bird?
23:28:04 <bsmntbombdood> he's not dead
23:28:11 <bsmntbombdood> he's sleeping
23:28:42 <oerjan> erider: you need an ascii table i guess.
23:28:50 <Pikhq> erider: You could just use an ASCII table.
23:28:57 <Pikhq> Or use PEBBLE. :p
23:29:41 <erider> just trying to figure out what one would need
23:29:55 <oerjan> there are of course 3 blocks whose positions are easy to memorize: 0-9 start at 48, A-Z at 65 (64+letter number) and a-z at 97.
23:31:45 <oerjan> (note that 48 = 3*16, 64 = 4*16 and 96 = 6*16)
23:32:11 <oklopol> while teaching erider how to write complex programs, please teach me to be clever
23:33:00 <oerjan> i see you are on haskell, using map fromEnum is a nice way to get the ascii numbers for a string
23:33:31 <oerjan> or map ord but that requires an import
23:33:34 -!- jix has quit ("CommandQ").
23:36:34 <erider> cells are only 0-254 wide?
23:36:34 <oerjan> one subtlety about brainfuck is that there are so many implementation variations: end-of-file, cell size and wrapping, tape size
23:36:58 <oerjan> 0-255 is usually the minimum to call it brainfuck
23:37:09 <oerjan> (although things like boolfuck exist)
23:37:42 <oerjan> if EgoBot was here, you could choose between 8 bit, 16 bit or 64, i believe
23:38:05 <bsmntbombdood> http://cm.bell-labs.com/cm/cs/who/dmr/btut.html
23:38:43 <oerjan> oklopol: i am sorry that is not in my power
23:38:45 <bsmntbombdood> "All arithmetic in B is integer, unless special functions are written. There is no equivalent of the Fortran IJKLMN convention, no floating point, no data types, no type conversions, and no type checking. Users of double-precision complex will have to fend for themselves. "
23:38:50 <bsmntbombdood> gotta love a language like that
23:39:07 <SimonRC> ah, yeah, B rox
23:39:14 <SimonRC> it's C for massochists
23:39:54 <SimonRC> I *love* the error messages
23:40:12 <bsmntbombdood> can gcc compile it?
23:40:18 <SimonRC> dunno
23:40:27 <SimonRC> there's probably a front-end around somewhere
23:40:54 <SimonRC> It's where the ever-useless "auto" keyword in C comes from.
23:41:47 <oerjan> btw EgoBot's interpreter, EgoBFI, is available at http://esoteric.voxelperfect.net/files/brainfuck/impl/egobf-0.7.1.tar.bz2
23:42:04 <bsmntbombdood> auto v[10]; v[10]; /*no error?!?*/
23:42:38 <Pikhq> bsmntbombdood: Of course not. C doesn't do any bounds checking.
23:42:52 <oerjan> so auto is B's equivalent to C's plain int?
23:43:08 <bsmntbombdood> it's still undefined behavior in C
23:43:22 <bsmntbombdood> auto v[10] makes v have 11 elements
23:43:39 <bsmntbombdood> oerjan: B's only type is the machine word
23:43:42 <oerjan> since B doesn't have a type to use for declaration
23:43:51 <SimonRC> notice the onderful syntax that was later nicked for wide characters in C
23:44:05 <SimonRC> actually, C has auto too
23:44:43 <oerjan> what i mean is, since B has no types, it must use something else to declare a variable, so auto becomes the default word for this?
23:44:45 <SimonRC> auto means "automatic variable": it has space allocatioed when the function is entered and that space is freed when the function exits
23:44:52 <SimonRC> i.e. it is a local variable, on the stack
23:45:34 <bsmntbombdood> i can't find the function for dynamic allocation
23:45:53 <erider> oerjan: looks to be a long on my system
23:46:11 <Pikhq> There is only one reason why B has one type of 4 bytes. . .
23:46:22 <Pikhq> The system they were writing stuff on had that as a word size. ;)
23:47:17 <erider> Pikhq: have you used WSpace?
23:47:37 <Pikhq> erider: No, I haven't.
23:49:49 <bsmntbombdood> if a="foo", how many characters is a[0]?
23:50:08 <SimonRC> where byte = 9 bits, remember
23:50:18 <SimonRC> hence the octal
23:50:44 <Pikhq> SimonRC: Octal is 0-7, not 0-8.
23:50:47 <bsmntbombdood> what wait?
23:50:55 <oerjan> erider: regarding brainfuck comments in brackets, the easiest way to be sure it the brackets don't get run is to put them right after another set of brackets.
23:50:57 <SimonRC> Pikhq: erm, yes
23:51:04 <oerjan> *that
23:51:13 <SimonRC> but 3 octal digis is exactly one 9-bit byte
23:51:34 <SimonRC> oh, wow, they use the old-style "backwards" assignment operators: "foo =+ bar" etc
23:51:36 <Pikhq> Each octal digit is 8 bits. . .
23:51:47 <Pikhq> How the *hell* do you get 24=9?
23:51:52 <bsmntbombdood> no...
23:52:11 <bsmntbombdood> one octal digit is log_2(8) = 3 bits
23:52:25 <Pikhq> . . . Oh, right.
23:52:29 <bsmntbombdood> one _octect_ is 8 bits
23:52:31 <Pikhq> I'm an idiot.
23:53:33 <oerjan> this is #esoteric. everyone is either an idiot or a genius at any time, just not the same always.
23:54:15 <Pikhq> The fuck? They actually *are* using 9 bit bytes.
23:54:50 <oerjan> imagine if that had stuck, then octal would probably be more used than hexadecimal
23:55:07 <SimonRC> erm, yeah
23:55:08 <lament> geniot
23:55:20 <SimonRC> their machine had 36-bit words
23:55:36 <lament> but hexadecimal is so much cooler than octal.
23:55:56 <lament> of all base-2 systems hexadecimal is perhaps the coolest.
23:56:07 <lament> or at least the most useful (could easily replace decimal)
23:56:15 <Pikhq> Well, now I know where the tradition of using octal for chmod comes from. . .
23:56:23 <Pikhq> lament: Hexadecimal is base-16, not base-2. :p
23:56:36 <lament> base-power-of-2 i mean
2007-06-05
00:00:27 <oerjan> oklopol: the trick to calculating (a+bi)/(c+di) is to multiply by (c-di)/(c-di)
00:00:48 <oklopol> indeed
00:01:01 <oklopol> i'd never have come up with that
00:01:21 <SimonRC> I though it was a standard trick
00:01:24 <oklopol> it is
00:01:33 <oerjan> basically you want your denominator to become real, and any number times its conjugate is real
00:01:39 <oklopol> but since i've never done math, it's not something i actually use
00:03:43 <bsmntbombdood> who is they?
00:04:03 <SimonRC> erm...
00:04:47 <SimonRC> K, and possibly R
00:05:02 <SimonRC> and kt
00:05:04 <bsmntbombdood> are you still talking about B?
00:05:23 <SimonRC> yes
00:07:07 -!- sebbu2 has quit ("@+").
00:11:57 <oerjan> bobbens: many BF interpreters have a # debugging command that does print the whole tape.
00:12:27 * oerjan is working through the logs rather slowly today
00:13:09 <bsmntbombdood> "Diagnostics consist of two letters"...that's helpful
00:13:28 -!- poiuy_qwert has quit.
00:14:00 <oerjan> bsmntbombdood: is that B? probably it was written for seriously memory starved machines
00:14:05 <bsmntbombdood> yeah
00:16:35 <Pikhq> oerjan: It was.
00:16:40 <oerjan> the NVG computer club actually has a machine emulating a pdp-10 with TOPS-20
00:17:14 <oerjan> probably faster than the original :)
00:18:30 <oerjan> *here
00:20:06 <SimonRC> ISTR there was once a C compiler that had only on error message: ? and a line number.
00:20:14 <erider> !bf >+.
00:20:47 <oerjan> GregorR: fire up EgoBot, please :)
00:21:17 -!- Asztal has joined.
00:21:53 <oerjan> or bsmntbombdood fire up bsmnt_bot with bf, please
00:22:23 -!- bsmnt_bot has joined.
00:23:12 * oerjan has forgot the script-loading command for bsmnt_bot
00:23:18 <bsmntbombdood> ~exec execfile("/bot/scripts/bf.py")
00:23:22 <bsmntbombdood> i think it's that
00:23:30 <SimonRC> hmm
00:23:35 <oerjan> ~bf >+.
00:23:36 <bsmnt_bot> <CTCP>
00:23:45 <oerjan> that worked
00:23:59 <SimonRC> Things get really weird when you get rid of absolute coordinate systems.
00:24:00 <Asztal> heh
00:24:30 <lament> what things?
00:24:33 <bsmntbombdood> ~bf +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
00:24:34 <bsmnt_bot> a
00:24:39 <SimonRC> I am fiddling with a game ATM that only has relative coordinate systems.
00:24:41 <bsmntbombdood> good
00:24:45 <SimonRC> -ish
00:24:56 <bsmntbombdood> i think it'll break the bot with an infinite loop though
00:25:00 <Asztal> ~bf >+++.++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++...
00:25:00 <bsmnt_bot> EEE
00:25:01 <lament> SimonRC: the difference isn't exactly huge.
00:25:03 <oerjan> SimonRC: postscript sort of works like that
00:25:47 <oerjan> bsmntbombdood: you still haven't got it to run bf in its own thread?
00:25:56 <bsmntbombdood> don't remember
00:25:57 -!- cmeme has quit ("Client terminated by server").
00:26:01 <SimonRC> space is made of blocks, and a position is defined as a transformation and the number of the spacial block whose coordinate system it is relative to.
00:26:04 <SimonRC> :-S
00:26:07 -!- cmeme has joined.
00:26:21 <bsmntbombdood> ~bf +[]
00:26:26 <SimonRC> with minimal fiddling, you get flips and rotations for free
00:26:26 <bsmntbombdood> ~ps
00:26:41 <bsmntbombdood> yep, not in a new thread
00:26:45 <bsmnt_bot> KeyboardInterrupt
00:26:51 <Asztal> heh
00:26:52 -!- bsmnt_bot has quit (Read error: 131 (Connection reset by peer)).
00:27:04 -!- bsmnt_bot has joined.
00:27:09 <bsmntbombdood> waut
00:28:10 <oerjan> SimonRC: what about relativistic transformations? (hard for multiplayer games, i guess)
00:28:44 <SimonRC> i'm ignorigh that
00:28:47 <SimonRC> but...
00:29:02 <oerjan> i mean, with a single player that could be nearly as simple
00:29:10 <lament> is there a single-player game that does relativistic effects?
00:29:23 <lament> i've seen a simple simulator but it wasn't a game
00:29:31 <Asztal> I've only ever seen a relativistic renderer
00:29:34 <SimonRC> can anyone think of a good abbreviation for "normalise"?
00:29:47 <erider> !bf +++++[>+++++++++<-]>+++.
00:29:54 <oerjan> nlz
00:30:19 <erider> ~bf +++++[>+++++++++<-]>+++.
00:30:21 <oerjan> or nls
00:30:40 <SimonRC> bah
00:30:50 <erider> :/
00:30:52 <bsmntbombdood> nrmlz
00:31:00 <oerjan> ~exec execfile("/bot/scripts/bf.py")
00:31:06 <oerjan> try again
00:31:11 <erider> ~bf +++++[>+++++++++<-]>+++.
00:31:12 <bsmnt_bot> 0
00:31:23 <erider> should be A
00:31:41 <oerjan> 5*9+3 = 48
00:31:57 <erider> first cell should be 0
00:32:10 <erider> oops your right
00:33:10 <erider> ~bf ++++++++++[>+++++++<-]>+++++.
00:33:11 <bsmnt_bot> K
00:34:14 <erider> ~bf ++++++++++[>++++++<-]>+++++.
00:34:14 <bsmnt_bot> A
00:36:02 <oerjan> there is a list of shortest way to get numbers at http://esoteric.voxelperfect.net/wiki/Brainfuck_constants (large page)
00:36:04 <erider> oerjan: how to I copy from one cell to the next
00:36:19 <SimonRC> use a temporary location
00:36:22 <erider> do*
00:36:53 <oerjan> you need 3 cells, first move from one to the two others, then move back from one of the others
00:37:06 <SimonRC> e.g. [->+>+<<]>>[-<<+>>]<<
00:37:37 <SimonRC> it is actually not much worse than Forth
00:37:50 <oerjan> o_O
00:38:21 <oerjan> this must be one of those famous British understatements :D
00:39:20 <SimonRC> well, in Forth, *everything* gets destroyed when you use it, so you have to dup everything
00:39:43 <SimonRC> other aspects of BF are indeed worse than Forth
00:40:15 <SimonRC> though if your data is all small words, you can translate a forth program into BF quite well
00:40:39 <SimonRC> unless it uses recursion or something like that
00:41:50 <bsmntbombdood> i'm working on threading the callbacks
00:42:08 <oerjan> actually recursion could work pretty well
00:42:45 <oerjan> er, well you would confuse the two forth stacks
00:42:52 <erider> ~bf ++++++++++[>++++++>++++++<<-]>+++++>+++++<.>.
00:42:52 <bsmnt_bot> AA
00:43:11 <oerjan> it's screaming! stop this abuse!
00:43:23 <erider> lol
00:43:46 <erider> sorry
00:46:47 -!- crathman has quit (Read error: 113 (No route to host)).
00:47:29 <Pikhq> Obviously what you want is "@ a;@ temp;cons65 a : temp;out a"
00:47:31 <Pikhq> Err
00:47:46 <Pikhq> "source ^stdcons.bfm;@ a;@ temp;cons65 a : temp;out a"
00:47:57 <Pikhq> Add another out a. -_-'
00:48:32 <Pikhq> ~bf >----[<+>----]<++..
00:48:53 <oerjan> hm...
00:48:58 <oerjan> ~ps
00:49:14 <Pikhq> I think it wants a newline.
00:49:34 <bsmntbombdood> did you break it again
00:49:51 <bsmntbombdood> naughty naughty
00:49:52 <bsmnt_bot> KeyboardInterrupt
00:49:56 -!- bsmnt_bot has quit (Read error: 131 (Connection reset by peer)).
00:49:59 <oerjan> Pikhq seemed to assume the interpreter was wrapping
00:50:01 -!- bsmnt_bot has joined.
00:50:24 <Pikhq> Which is a natural assumption; it damned well *should* be.
00:50:30 <oerjan> it probably uses Python integers
00:50:32 <Pikhq> And if it were up to me, it would.
00:50:48 <Pikhq> It should probably add a %255 in there.
00:50:54 <lament> this might come as a surprise to many of you, but integers don't wrap.
00:51:12 <bsmntbombdood> pwnt
00:51:29 <Asztal> unless in modulo arithmetic :|
00:51:46 -!- bsmnt_bot has quit (Remote closed the connection).
00:51:47 <Pikhq> Thus why I'm saying "add a %255".
00:51:54 <lament> Asztal: those things aren't called integers.
00:51:57 <oerjan> although i don't know if Python converts to bignums or throws an exception on overflow, or perhaps the size is just so big it didn't reach wrap yet
00:52:04 <SimonRC> Pikhq: not %256?
00:52:05 <lament> oerjan: bignums.
00:52:14 <Pikhq> SimonRC: Erm. Right.
00:52:33 <SimonRC> oerjan: ISTR Python goes to bignums
00:53:14 -!- bsmnt_bot has joined.
00:53:19 <bsmntbombdood> i hope this works....
00:53:23 <bsmntbombdood> ~exec execfile("/bot/scripts/bf.py")
00:53:26 <bsmntbombdood> fuck
00:54:09 -!- bsmnt_bot has quit (Remote closed the connection).
00:54:22 -!- bsmnt_bot has joined.
00:54:25 <bsmntbombdood> ~exec execfile("/bot/scripts/bf.py")
00:54:48 <bsmntbombdood> ~bf +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
00:54:49 <bsmnt_bot> a
00:54:58 <bsmntbombdood> ~bf +[]
00:55:02 <bsmntbombdood> ~ps
00:55:18 <bsmntbombdood> argh
00:55:22 <Asztal> if the integers in BF wrap at 256, doesn't that hurt indirection? is indirection even possible in BF?
00:55:38 <oerjan> indirection?
00:55:53 <bsmntbombdood> it seems the thread is not giving up it's time slot
00:55:55 <oerjan> you mean storing pointers?
00:56:31 <oerjan> oh so python only does cooperative threading?
00:56:53 <bsmnt_bot> KeyboardInterrupt
00:56:56 <bsmnt_bot> KeyboardInterrupt
00:56:58 -!- bsmnt_bot has quit (Read error: 131 (Connection reset by peer)).
00:56:59 <lament> Asztal: the type of brainfuck cells is not specified.
00:57:01 <bsmntbombdood> it would seem
00:57:08 -!- bsmnt_bot has joined.
00:57:14 <bsmntbombdood> ~exec execfile("/bot/scripts/bf.py")
00:57:18 <bsmntbombdood> ~bf +[]
00:57:23 <oerjan> put a yield operation in the loop command
00:57:25 <bsmntbombdood> ~os
00:57:28 <bsmntbombdood> ~ps
00:58:09 <oerjan> (whatever python calls yield)
00:58:41 <bsmnt_bot> KeyboardInterrupt
00:58:42 <bsmnt_bot> KeyboardInterrupt
00:58:44 -!- bsmnt_bot has quit (Read error: 131 (Connection reset by peer)).
00:58:53 -!- bsmnt_bot has joined.
00:58:56 <bsmntbombdood> ~exec execfile("/bot/scripts/bf.py")
00:58:59 <bsmntbombdood> ~bf +[]
00:59:01 <bsmntbombdood> ~ps
00:59:08 <bsmntbombdood> wtf
00:59:50 <oerjan> you could do pointers in bf with variable width arrays
01:00:54 <oerjan> although that would seem to require shuffling things to store values
01:03:17 <bsmntbombdood> why not it work :(
01:03:21 <bsmnt_bot> KeyboardInterrupt
01:03:21 <bsmnt_bot> KeyboardInterrupt
01:03:23 -!- bsmnt_bot has quit (Read error: 131 (Connection reset by peer)).
01:03:39 <oerjan> however, since moving along the tape (especially if you are searching for something so it cannot be optimized away) takes linear time, moving things at the same time may only imply a constant factor overhead
01:03:44 <Asztal> seems to me that it's difficult to execute a "move to position X" operation though, since you can only read the target cell from the current cell... once you move off it, you don't know where you're moving to any more
01:04:10 <Asztal> you'd have to shuffle things, as you said, which might corrupt things along the way
01:04:35 <oerjan> you would need to bring the destination pointer with you
01:04:50 <oerjan> i am sure it can be done, it's just inefficient
01:04:56 <bsmntbombdood> destroying contents as you go
01:05:04 <oerjan> not destroying, swapping
01:05:41 <bsmntbombdood> hmmm
01:05:50 <Pikhq> I believe the means of storing arrays involve storing array cells with 2 bytes. . .
01:06:09 <bsmntbombdood> bsmnt_bot has been quitting in IRCFileWrapper.write
01:06:42 <Asztal> oerjan: and to avoid shifting all the cells inbetween, you'd have to go back and swap them again each time you finish a swap, perhaps?
01:07:20 <Asztal> you could decrement the "position" value each time you swap, once it reaches zero, you're there. and you've probably wasted millions of cycles getting there :)
01:08:09 <oerjan> not really, because the swapping would not change the order of anything other than the record you are bringing with you.
01:08:29 <oerjan> indeed, i imagine all pointers being relative
01:09:19 <oerjan> wasting millions of cycles is a given in brainfuck
01:10:11 <Asztal> I imagine it starting off as: DabcdefghijkT (d=pointer, a->k are values, T=target cell), then
01:10:12 <Asztal> DabcdefghijkT, aDbcdefghijkT, abDcdefghijkT, abcDdefghijkT, ..., abcdefghijkD
01:10:43 <oerjan> yep, that's what i am thinking too
01:11:12 <Asztal> I was thinking of some way of swapping them back but it hurts my brain
01:11:43 <oerjan> well, D would have to contain a pointer backwards too if you want that.
01:12:31 <bsmntbombdood> [->+<]>[[->>+<<]>>-]
01:12:42 <oerjan> all pointers in D would be adjusted as you go. or perhaps it is better to keep them absolute apart from "current position"
01:12:54 <bsmntbombdood> that would move n cells right where n is the number in the current cell
01:13:02 <bsmntbombdood> assuming every other cell is used for data
01:13:33 <oerjan> bsmntbombdood: that works as long as pointers are small enough for a single cell
01:13:39 <bsmntbombdood> right
01:13:53 <erider> are you guys interesting in adding another language to you guys toolbox?
01:14:07 <SimonRC> shoot
01:14:26 <erider> http://charleschilders.com:9812/
01:16:29 <bsmntbombdood> i haven't played with forth for a long time
01:16:37 <SimonRC> i like Factor
01:16:40 <SimonRC> as you know
01:17:06 <SimonRC> Factor has the same fuck-around-with-the-system attitude as smalltalk.
01:18:42 <bsmntbombdood> forth is fuck-around-with-the-system-shoot-your-head-off to the max
01:20:04 <erider> have a look at the rosette code
01:20:38 <SimonRC> hmm
01:22:52 * erider thinks SimonRC is interested
01:24:33 <SimonRC> actually I was going "hmm" at something else.
01:25:36 <bsmntbombdood> wtf
01:25:44 <bsmntbombdood> my radio station is down :(
01:27:06 <bsmntbombdood> no fair
01:27:12 <bsmntbombdood> i'm going to learn vi then
01:41:09 <bsmntbombdood> i forgot how cool vi was
01:42:58 <SimonRC> zzzzzz
01:43:07 <SimonRC> bsmntbombdood: you have a radio station?
01:43:37 <bsmntbombdood> s/my radio station/an internet radio station i listen to/
01:43:42 <SimonRC> ah, ok
01:43:43 <SimonRC> zzzzzz
04:30:36 -!- clog has joined.
04:30:36 -!- clog has joined.
04:47:47 -!- boily has joined.
04:48:20 <Pikhq> 'Lo.
04:49:16 <oerjan> hi boily
04:49:34 -!- EgoBot has joined.
04:51:13 <boily> hi
04:51:23 <Pikhq> It's EgoBot!
04:51:49 <Pikhq> !pebble inline {What do you mean, you don't have PEBBLE support?}
04:51:51 <EgoBot> Huh?
04:51:54 <oerjan> i see a remaining problem with your string handling: what happens with \ on an empty string?
04:52:15 <boily> it returns -1, leaving the empty string there
04:52:27 <boily> the only way to suppress a string is through _
04:52:33 <oerjan> ok
04:54:23 <oerjan> also what happens if you do ? ... [ ... | ! ... ]
04:54:33 <boily> uh... just a minute...
04:55:14 * Pikhq should probably add PEBBLE support to EgoBot, just as soon as I'm satisfied for a PEBBLE 1.0 release
04:56:22 <oerjan> or for that matter ? ... ? ! ... !
04:56:51 <bsmntbombdood> oerjan's gone nutters
04:57:08 <boily> he isn't nuts, he's beets
04:57:47 <boily> about oerjan's first question: it works. i do not know how nor why, but it works.
04:58:05 <boily> C3?5[,*+563|!C-c1] prints "!!!"
04:58:18 <oerjan> actually i am more wondering about _what_ it does :)
04:58:30 * Pikhq wonders: how many people care about PEBBLE?
04:58:33 <boily> no idea.
04:58:38 <erider> Pikhq: what is PEBBLE?
04:58:40 * Pikhq is thinking that it's somewhere on the order of '1'.
04:59:01 <Pikhq> erider: PEBBLE is a language and compiler I devised which is designed to efficiently compile to Brainfuck.
04:59:05 * boily scratches his head
04:59:24 <Pikhq> It's currently a whole lot more efficient with the C backend, though.
04:59:26 <erider> website?
05:00:14 <Pikhq> http://pikhq.nonlogic.org/esoteric.html is the closet I've got for now. . . It dates back to before I changed the name, but does give a good summary of the language.
05:01:21 <boily> talking about brainfuck, i coded an interpreter for fun this morning (june 4th)
05:01:33 <Pikhq> I kind of need to update the documentation. . .
05:02:32 <Pikhq> BTW, that link is wrong. . . http://pikhq.nonlogic.org/pebble-1.0-preview.tar.bz2 contains the latest PEBBLE build that's tarred up, and svn://nonlogic.org/pikhq/pebble/trunk contains the latest and not guaranteed to work.
05:05:40 * erider is reading about a time long long ago
05:06:09 <oerjan> boily: the interpreter link is wrong, leading to a completely unrelated page
05:06:23 <boily> d'oh
05:06:42 <Pikhq> erider: Hmm?
05:07:04 <oerjan> it also occurs to me that pastebin pages can probably be edited by anyone...
05:07:49 <boily> yeah, it's just a temporary place. as soon as my friend's server is up, i'll host it there
05:08:05 <oerjan> although you can still find the original, just as on wikis
05:08:31 <oerjan> no wait
05:08:36 <oerjan> it gets a new number
05:09:18 <oerjan> false alarm :)
05:09:29 <boily> i corrected the link
05:11:07 <Pikhq> erider: BTW, http://pikhq.nonlogic.org/pfuck-1.0.tar.bz2 or svn://nonlogic.org/pikhq/pfuck/trunk include something somewhat useful written in the language.
05:12:00 <erider> Pikhq: your version of the language
05:12:51 <Pikhq> erider: Uh, by definition, any version of the language will be my version, at this point, simply because it's *my* language entirely. . .
05:13:20 <erider> :)
05:13:23 <erider> cool
05:13:54 * erider is reading about brainf**k algorithms
05:14:12 <Pikhq> Well, oerjan helped a good deal earlier on. . . That was *before* I did the rewrite of the compiler, making it multiple passes. . .
05:14:24 <Pikhq> I believe his most notable contribution as of *now* is the stdcons.bfm file.
05:15:37 <oerjan> which i mostly automatically translated from [[Brainfuck constants]] on the wiki.
05:16:27 <Pikhq> True.
05:25:56 <oerjan> oops. boily's ? ... [ ... | ! ... ] test was _not_ jumping
05:26:55 <boily> which means?
05:27:03 <oerjan> the interesting cases are when you _do_ jump into or out of a [ ... ]
05:27:26 * boily ponders on this particular problem...
05:27:33 <oerjan> if ? doesn't jump then it acts as a nop
05:29:07 <oerjan> i think it will be even more crazy if ? is the argument of something else
05:29:47 <oerjan> in fact that might be crazy even without [ ... ], if that something else requires more arguments
05:31:59 <oerjan> congratulations, i think you have made a language more twisted than you intended :)
05:35:38 <oerjan> i also think comments and strings containing ! should be used with care.
05:37:02 <boily> i don't know if i shall rejoice or flee.
05:37:33 <boily> i think the next step will be to hack a brainfuck interpreter in betterave...
05:38:19 <oerjan> i _think_ your language is relatively sensible apart from the ? ... ! effects
05:39:02 <boily> hmm... i agree.
05:40:44 <oerjan> i don't think [ ... | ... ] has any issues with comments unless you put something after the | xxx expression
05:41:03 <oerjan> (or strings, but that would be useless anyhow
05:41:05 <oerjan> )
05:42:56 <oerjan> for non-esoteric uses however, this all should be a warning to keep your parsing and execution stages separate.
05:44:05 <Pikhq> oerjan: Lies!
05:44:14 <boily> lies?
05:44:23 <Pikhq> You should have a parser that is modifiable at runtime!
05:44:37 <boily> :)
05:45:15 <oerjan> ok that has its uses, but at least a command should be entirely parsed before executed
05:45:26 <Pikhq> Lies.
05:45:40 <Pikhq> Parsing should be part of the command.
05:45:56 * Pikhq is evil. ;)
05:46:40 <Pikhq> proc foo {args} {standard_parser; do stuff with $args};foo();bar();quuux!
05:51:45 <oerjan> something occurs to me. [ ... | ... ] is always executed at least once.
05:52:09 <oerjan> so you cannot avoid ? ... ! entirely.
05:55:32 <boily> that was one reason why i added ? ... ! to my language
05:58:19 <oerjan> hm |0] cancels the preceding [, no matter where it is
06:00:22 <oerjan> so you could exit a loop with ? ... ] ... ?!|0]1! or something like that
06:01:02 <boily> umm... not sure about the ?! part...
06:01:04 <boily> wait...
06:01:07 <boily> it works.
06:01:11 <Pikhq> boily: You, sir, are *way* too evil for your own good.
06:01:31 <boily> me? evil? bah, humbug!
06:01:42 <oerjan> because the last ? doesn't look for ! until the end of the test
06:04:39 -!- GregorR-L has joined.
06:11:55 <Pikhq> It be Gregor!
06:11:55 <Asztal> it's HIM!
06:11:55 <Asztal> the one who started my obsession over bismuth
06:11:55 <Asztal> >:(
06:11:55 <boily> um, pardon my ignorance, but what is bismuth?
06:12:04 <Pikhq> I'll second that question.
06:12:18 <oerjan> apart from a chemical element
06:12:32 <Asztal> bismuth is a heavy metal which makes awesome crystals
06:13:47 <Asztal> because of its density, he mentioned sending it back in business reply envelopes... then I had to go look it up, resulting later on in the purchase of http://i6.ebayimg.com/02/i/000/a0/38/eadf_1.JPG
06:14:19 <boily> nice
06:15:10 <Asztal> it's like a fractal which I can touch!
06:17:20 -!- Pikhq has quit (Remote closed the connection).
06:17:40 -!- Pikhq has joined.
06:18:13 <GregorR-L> ..................
06:18:38 <GregorR-L> That is pretty rife with awesome :)
06:26:52 <Pikhq> Yeah.
06:27:04 -!- boily has quit ("Bye!").
06:33:53 <bsmntbombdood> i've got a small one of those
07:01:44 -!- Pikhq has quit (Remote closed the connection).
07:04:34 -!- Pikhq has joined.
07:16:25 -!- Pikhq has quit (Remote closed the connection).
07:17:15 -!- Pikhq has joined.
07:30:50 -!- GreaseMonkey has joined.
07:52:01 <GreaseMonkey> getting off now, here's my SKI interpreter if you want it: http://greasemonkey.nonlogic.org/poleski.zip
07:52:07 -!- GreaseMonkey has quit (Client Quit).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:56:33 -!- GregorR-L has quit ("Leaving").
08:58:23 -!- GreaseMonkey has joined.
08:58:53 <GreaseMonkey> anyone on?
08:59:11 <oerjan> yeah
08:59:16 <GreaseMonkey> comments on my SKI interpreter? http://greasemonkey.nonlogic.org/poleski.zip
08:59:52 <GreaseMonkey> it's actually pretty damn advanced now
09:00:01 <GreaseMonkey> it just doesn't have "level 3"
09:00:34 <bsmntbombdood> level 3?
09:01:16 <GreaseMonkey> it has an explanation
09:01:25 <GreaseMonkey> let's say that Lazy K is level 1
09:01:39 <GreaseMonkey> (very lazily evaluated)
09:01:53 <GreaseMonkey> level 2 evaluates brackets before performing operations on them
09:02:02 <GreaseMonkey> level 3 evaluates top-down
09:02:57 <GreaseMonkey> everything is optional: Level 1/2, Empty-Bracket-Removal {on/loadtime only/off}, Lone-Bracket-Removal {on/off}, Forward-On-Dud (on a dud symbol, evaluate brackets after it) {on/off}, Lazy-I (don't evaluate bracket next to I) {on/off}
09:03:24 <GreaseMonkey> defaults: L2, LTLBR (Load-Time LBR), EBR, FOD, Lazy-I
09:36:00 -!- oerjan has quit ("Off to lunch").
10:51:07 <oklopol> <Pikhq> Thus why I'm saying "add a %255". <<< why not 256?
10:51:14 <oklopol> oh
10:51:27 <oklopol> i should read further before saying anything
10:55:45 -!- GreaseMonkey has quit ("Crashing a computer only works if you add wheels to it.").
10:58:10 <oklopol> <oerjan> you would need to bring the destination pointer with you <<< i did something like having every second cell empty and [->+>>+<<<]>>>[-<<<+>>>]<<[[->>+<<]>>-]>
10:59:24 <oklopol> and bsmntbombdood also coded that after you said it, i'll stop commenting what i see :<
12:49:21 <oklopol> whuzz the regex way to say "replace every '.' in a string with ' ' if '.' is not preceded by a number"
12:49:33 -!- Asztal has quit (Read error: 104 (Connection reset by peer)).
12:51:54 -!- Asztal has joined.
12:52:14 -!- Asztal has quit (Read error: 104 (Connection reset by peer)).
12:53:05 -!- CakeProphet_ has joined.
12:54:14 -!- lament has quit (Remote closed the connection).
12:54:18 -!- lament has joined.
12:57:08 -!- Asztal has joined.
13:00:22 -!- CakeProphet has quit (Read error: 104 (Connection reset by peer)).
13:47:23 -!- jix_ has joined.
15:28:52 -!- crathman has joined.
15:39:32 -!- CakeProphet_ has changed nick to SilentScience.
15:47:52 -!- helios24 has quit (Remote closed the connection).
15:49:56 -!- helios24 has joined.
15:55:08 -!- boily has joined.
16:29:54 <SimonRC> I recommend that every here reads worsethanfailure.com
16:30:00 <SimonRC> their contest results are amazing
16:57:22 -!- sebbu has joined.
17:03:39 <SimonRC> hi
17:09:28 <lament> hi
17:12:32 <boily> hi
17:12:43 * SimonRC grins at the UF LoTD
17:28:01 <lament> at the who?
17:28:17 <lament> user friendly l of the day?
17:36:41 <lament> line? lameness? lament? lady?
17:36:46 <lament> limerick?
17:43:08 -!- crathman has quit (Read error: 113 (No route to host)).
17:53:30 -!- boily has quit (Read error: 110 (Connection timed out)).
17:56:53 -!- crathman has joined.
17:57:57 -!- crathman has quit (Client Quit).
18:04:41 <GregorR> oklopol: s/([^0-9])\./\1/g
18:04:50 <GregorR> Erm
18:04:52 <GregorR> oklopol: s/([^0-9])\./\1 /g
18:04:56 <GregorR> (Forgot the space :P)
18:06:34 -!- boily has joined.
18:47:00 <fizzie> GregorR; That's "if '.' is preceded by something that's not a number", not "-- not preceded by a number", which means it'll fail to replace the '.' at the beginning of the string. In perl-style regexps you can use a simple s/(?<!\d)\./ /g
18:48:05 <fizzie> s/([^0-9]|^)\./\1 /g probably works for less-endowed regexps.
19:09:27 -!- boily has quit (Read error: 110 (Connection timed out)).
19:44:08 -!- sebbu2 has joined.
19:51:37 <bsmntbombdood> you must escape the ()
19:53:34 <fizzie> At least in sed, yes.
19:54:31 <fizzie> Although in those systems you probably also need to escape the |.
19:54:52 <fizzie> My sed also has the 'extended regular expressions' argument -r.
19:55:23 <bsmntbombdood> it's annoying how everything has a different flavor of regexes
19:57:14 <fizzie> Perl, Java, anything using the PCRE library (like PHP's preg_* functions) at least are relatively close to each other.
19:58:22 <bsmntbombdood> and there's grep, sed, awk...
19:58:49 <bsmntbombdood> egrep
19:59:50 <bsmntbombdood> regex handling should have gone into the libc from the beginning
20:11:27 -!- sebbu has quit (Read error: 110 (Connection timed out)).
20:11:27 -!- sebbu2 has changed nick to sebbu.
20:18:14 -!- GregorR-L has joined.
20:19:20 <bsmntbombdood> long i; for(i=1<<31; i; i >>= 1) while(malloc(i));
20:28:32 <oklopol> how come i end up being drunk 3 times a week though i hate drinking?
20:28:40 <oklopol> i have to filter my friends.
20:30:45 -!- sebbu has quit ("reboot").
20:32:53 <bsmntbombdood> eventually malloc all their core storage
20:37:25 -!- Pikhq has quit ("Leaving.").
20:38:08 -!- Pikhq has joined.
20:46:05 -!- sebbu has joined.
21:14:00 -!- GregorR-L has quit ("Leaving").
22:10:32 -!- jix_ has quit ("CommandQ").
22:32:28 * SimonRC goes to have a pizza then continue his sleeping experiments.
22:33:44 <oklopol> sleeping experiments?
22:33:46 <oklopol> :)
23:09:53 <bsmntbombdood> oklopol and his fetsih
23:09:56 <bsmntbombdood> *fetish
23:18:56 <oklopol> yeeeeeeah
23:22:43 <bsmntbombdood> when are you going to try the ubermans?
23:24:47 <oklopol> me?
23:24:50 <oklopol> prolly in a month
23:24:59 <oklopol> i have stuff next week :<
23:48:24 -!- sebbu has quit ("@+").
2007-06-06
00:00:45 -!- crathman has joined.
00:24:01 <erider> http://retroforth.com/paste/?id=415
00:55:12 -!- crathman has quit (Read error: 113 (No route to host)).
01:18:21 -!- fax has joined.
01:18:24 <fax> hi
01:19:53 <Asztal> hello
01:36:07 -!- oerjan has joined.
01:40:21 <oerjan> s/([^0-9]|^)\./\1 /g and the like will not work for several . in a row
01:40:40 <fax> change \. to \.\.* maybe?
01:41:27 <oerjan> no, you need _each_ replaced by a space
01:41:45 <fax> use tr
01:42:02 <oerjan> (because /g only does non-overlapping substitutions)
01:42:12 <fax> 'y' in sed
01:42:24 <fax> but im not sure how (or if you even can) use it on a subexpression
01:42:28 <oerjan> tr cannot take a precondition can it?
01:42:43 <fax> would be cool to do: s/([^0-9]|^)\.\/\1 /g
01:42:54 <oerjan> well if you allow /e, but then we are far out of anything usable in non-perl
01:42:57 <fax> would be cool to do: s/([^0-9]|^)\(\.\.*\)/\1 <apply tr to \2>/g
01:45:53 <oerjan> hm, not sure if tr in perl can be used functionally. but perhaps (($2=~y/.../.../),$2) will work
01:46:27 <fax> aw I thought you were using sed
01:47:08 <fax> bah I'm stupid, never noticed unescaped ()'s
01:49:39 <oerjan> this was a question by oklopol in the logs. fizzie gave s/(?<!\d)\./ /g, which should work
01:50:21 <fax> would it be possible to just replace all .. with . until no more matches occur
01:50:30 <fax> or might that interfere with the rest of the patter?
01:50:34 <bsmntbombdood> not in engines that don't have lookbehid
01:53:52 <oerjan> if you are to do it without full expressions you can only replace one . at each match, and the matches must be non-overlapping so lookbefore seems essential
01:54:38 <oerjan> unless you use more than one substitution. doing the naive one twice should work in this particular case.
01:56:21 <oerjan> hm, look-behind is the technical term. sounds illogical to me.
01:57:08 <fax> oh or s/\.\.*/./
01:57:47 <oerjan> fax: each . is to be replaced with one space. you cannot collapse them.
01:59:00 <fax> s/\./ /
02:00:33 <oerjan> if you use perl expressions, " " x length($2) is simple enough
02:01:02 <oerjan> fax: each . that is replaced, i mean.
02:02:09 <oerjan> <oklopol> whuzz the regex way to say "replace every '.' in a string with ' ' if '.' is not preceded by a number"
02:03:24 <erider> hi fax
02:03:30 <fax> hey erider
02:03:41 <oerjan> i think it is impossible to do with a single substitution using no extension such as expressions or look-behind
02:08:12 <fax> echo "c..d a.....a b...b" | sed -e "s/a\(\.\.*\)a/\"\`echo \'a\1\a' | tr . \\\\ \`\"/g" -e 's/\(.*\)/echo "\1"/' | sh
02:08:56 <fax> ..doesn't work lol
02:08:57 <fax> sorry 1 sec
02:09:40 <oerjan> (whatever that is it doesn't go under "no extension")
02:11:19 <oerjan> if that is supposed to be the same question, then you forgot to check that . is not preceded by a digit.
02:11:29 <fax> no
02:11:43 <fax> using 'a' instead of any digit
02:12:51 <fax> hm
02:12:59 <fax> echo "\"a.....a\"" | tr . \ #-> "a a"
02:13:11 <fax> echo `echo "\"a.....a\"" | tr . \ `#-> "a a"
02:13:31 <fax> need to replace . with '\ ' ;/
02:30:09 -!- fax has quit ("Leaving").
03:47:25 -!- bsmntbombdood has quit (Read error: 104 (Connection reset by peer)).
03:50:20 -!- bsmntbombdood has joined.
04:03:17 <bsmntbombdood> http://www.ben.jellybaby.net/
04:38:19 -!- SilentScience has quit (Read error: 113 (No route to host)).
04:47:52 -!- Chaos750 has joined.
04:48:38 -!- Chaos750 has quit (Client Quit).
04:49:17 * oerjan thinks that may have been a chaos magician...
04:58:44 * erider has a functional bf interpreter in toka :)
04:59:34 <oerjan> so toka is TuCo :)
05:27:46 -!- boily has joined.
05:40:56 -!- Pikhq has quit (Remote closed the connection).
05:41:25 -!- Pikhq has joined.
05:41:46 -!- Pikhq has quit (Client Quit).
05:51:30 -!- pikhq has joined.
05:51:49 -!- digital_me has joined.
05:56:30 -!- digital_me has quit (Client Quit).
06:11:33 -!- boily has quit ("WeeChat 0.2.4").
07:13:56 -!- GregorR-L has joined.
07:25:17 * pikhq looks at KDE4, stares longingly
07:25:53 <bsmntbombdood> ...why?
07:26:16 <pikhq> Plasma == OMG.
07:26:19 <pikhq> Kwin == OMG.
07:26:23 <pikhq> Everything == OMG.
07:26:25 <bsmntbombdood> what's that?
07:26:52 <pikhq> Plasma is the new implementation of the desktop, desktop widgets, panel, and more.
07:27:14 <pikhq> Kwin is the KDE window manager, which, for KDE4, will use AIGLX and Xcomposite.
07:27:33 <GregorR-L> http://www.codu.org/hats/Pakul-med.jpg < Gregor's new burlap-sack hat.
07:27:58 <bsmntbombdood> useless waste, useless waste, and useless waste?
07:28:18 <pikhq> bsmntbombdood: The Kwin features are actually *useful*.
07:28:25 <pikhq> As are the Plasma features, actually.
07:28:44 <pikhq> And Phonon will be a really, really nice abstraction of the audio layer. . .
07:28:45 <GregorR-L> KDE doesn't have much in terms of flashy features.
07:28:53 <pikhq> GregorR-L: KDE4 sure as hell does.
07:29:13 <GregorR-L> pikhq: When I say "flashy features", I mean "features which have no purpose but to be flashy"
07:29:16 <pikhq> Oh.
07:29:30 <pikhq> By that definition, nor does KDE4.
07:29:33 <bsmntbombdood> GregorR-L: cool hat
07:29:33 <GregorR-L> Unlike Beryl, which has exclusively flashy features.
07:29:43 <pikhq> Yup.
07:29:47 <bsmntbombdood> GregorR-L: that's the best one yet
07:29:53 <oerjan> be careful with this hat-buying. remember Frogstar B.
07:29:59 <bsmntbombdood> i'd wear it
07:30:18 <pikhq> I'd wear it, which is saying something from someone who's only hat is called "long hair".
07:30:25 <GregorR-L> Heh
07:30:40 <GregorR-L> bsmntbombdood: I now have one hat for every year of my life :P
07:30:48 <bsmntbombdood> lol
07:31:13 <fizzie> "The hats of my life", sounds like a book and/or a movie and/or a musical title.
07:31:23 <pikhq> Man. . . It's one thing for a UI to look beautiful, but KDE4 surpasses that. . . The friggin' *API* is a work of art already.
07:31:44 <bsmntbombdood> i like this hat http://www.codu.org/hats/TopHat-med.jpg and this hat http://www.codu.org/hats/RedFedora-med.jpg
07:32:20 <pikhq> ogg123, written using kdelib from KDE4, is about 10 lines of code.
07:33:44 <bsmntbombdood> http://www.codu.org/music/GRegor-op8.ogg <-- this is a cool song
07:34:10 <pikhq> A long song from Gregor?
07:34:53 <GregorR-L> Strange how my random hat update causes people to start reading my page :P
07:35:29 <pikhq> GregorR-L: I usually check your page every once in a blue moon.
07:35:43 <GregorR-L> I don't even check my own page more than once every never :P
07:36:04 <pikhq> Honestly, I've noticed that it doesn't update much. . .
07:36:15 <pikhq> Most of your stuff is, uh, hidden from the actual page.
07:36:23 <pikhq> Like that ogg that was just linked.
07:36:34 <pikhq> . . . Err.
07:36:34 <GregorR-L> That's on the "music" page.
07:36:39 <pikhq> Never mind. I'm an idiot.
07:36:43 <GregorR-L> :P
07:36:51 <GregorR-L> Anyway, I rarely update it ... it's not a blog.
07:36:59 <GregorR-L> I don't have enough to say about my life to blog X-P
07:37:12 <pikhq> And you're a friggin' amazing piano player.
07:37:39 <GregorR-L> Not really :P
07:37:56 <pikhq> What, and are you not a good coder, either?
07:38:20 <GregorR-L> I'm an excellent coder.
07:39:12 <pikhq> I'm well aware.
07:39:15 <GregorR-L> But given that my friend Eric, who plays the piano as one of an ever-increasing number of instruments (at least five), plays much better than I do, I'm not that great :P
07:39:36 <pikhq> You play a hell of a lot better than I do. . .
07:40:13 <pikhq> My musical skills are more in the realms of choral music. . .
07:40:46 <GregorR-L> There's a notable tragedy in my singing: I can sing in tune, but my voice makes people's ears bleed X-P
07:40:51 <pikhq> Hahah.
07:41:13 <pikhq> I'm good, just so long as I can sing bas.
07:41:14 <pikhq> Err.
07:41:15 <pikhq> bass.
07:41:39 <pikhq> Get me doing higher than that, and I make everyone cringe.
07:41:46 <GregorR-L> Heh
07:41:58 <pikhq> My falsetto? T3h suck.
07:44:58 <GregorR-L> By the way, the hat I linked ( http://www.codu.org/hats/Pakul-med.jpg ) is basically a rolled-up burlap sack ;)
07:45:35 <pikhq> Creative. ;)
07:46:30 <bsmntbombdood> where do you get a burlap sack
07:46:47 <GregorR-L> If you buy them like I do, you pay $30 for it at a hat shop :P
07:47:04 <bsmntbombdood> that's a lot of moneys
07:47:06 <oerjan> o_O
07:47:28 <GregorR-L> That's a fairly normal price for a good-quality hat.
07:47:52 <bsmntbombdood> but it's not a good-quality hat...it's a sack
07:48:07 <oerjan> i guess it might be better than a used one...
07:48:12 <GregorR-L> Heh
07:48:17 <oerjan> smelling of potatoes, or whatever
07:48:23 <GregorR-L> "Is this an apple core in my hat?"
07:48:26 <bsmntbombdood> you could have a coffee smelling hat
07:48:49 <pikhq> I'
07:48:53 <pikhq> d take one of those.
07:52:51 <oerjan> coffee, that was what i was missing.
07:53:08 * oerjan slurps loudly
07:54:12 <bsmntbombdood> that sounds good
07:55:34 * bsmntbombdood hasn't had any caffeine for 2.5 weeks
07:55:39 <GregorR-L> O_O
07:55:55 * GregorR-L is thoroughly addicted to teh soda.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:05:23 * pikhq loves the holy nectar: Mountain Dew
08:14:29 -!- oerjan has quit ("leaving").
08:18:44 <bobbens> pikhq: and i was assuming the holy nectar was ambrosia aka expresso :)
08:18:58 <pikhq> Espresso, while holy, is not a nectar.
08:19:16 <bobbens> when you've had enough it is :)
08:19:29 <bobbens> got to hook up my expresso iv now :)
08:19:31 <pikhq> You mean it's *sweet*?!?
08:19:51 <pikhq> It ain't a *nectar* unless it's sweet.
08:20:03 <pikhq> Holiness comes from caffeine content, though. ;)
08:20:34 <bobbens> well you put sugar in it
08:20:43 <bobbens> i like brown sugar because it gives it a nice caramalized effect
08:20:47 <pikhq> Then it's no longer worthy of the name 'espresso'.
08:20:53 <bobbens> straight expresso messes with my stomach early morning :)
08:21:20 <bobbens> expresso is the base of all coffee drinks, you need a stomach of iron to drink it straight
08:21:30 <bobbens> and even then it'll eventually destroy your stomach
08:22:01 <bobbens> i used to like that mountain dew soda stuff
08:22:10 <bobbens> but it just messes with you too much :)
08:22:17 <bobbens> now i'm on tea/coffee
08:22:52 * pikhq prefers his coffee to be just strong enough to glow from the radiation within :p
08:23:29 <bobbens> it has to be able to move on its own right? :P
08:23:44 <bobbens> "Come back here mister coffee! I'm going to drink you!"
08:24:42 <GregorR-L> pikhq doesn't drink his coffee, he hunts, cooks and eats his coffee.
08:26:04 <pikhq> Heheheh.
08:34:14 <bsmntbombdood> yum
08:37:34 <pikhq> *echm* It's coffeezilla!
08:43:03 <GregorR-L> Caffeine written in JavaScript?
08:54:17 <pikhq> No, no, no.
08:54:32 <pikhq> Obviously, you want JavaScript written in CaffeineScript.
08:54:46 <pikhq> Night. . .
08:57:21 -!- GregorR-L has quit ("Leaving").
09:40:43 -!- GreaseMonkey has joined.
10:37:04 -!- GreaseMonkey has quit ("The future of IRC --> mIRC http://www.mirc.com <-- Crappy ads in your quit message").
11:41:57 <SimonRC> Never let Robocop hang the decorations on your Christmas tree, he will only break them all.
11:43:05 * oklopol will keep that in mind
11:44:25 <SimonRC> These dream-messages don't seem quite as profound when you tell them to someone.
11:49:37 <oklopol> hmm... i'm pretty sure i play the piano better than GregorR... or at least used to play, but if that's his composition, i'm fucking impressed
11:50:37 <oklopol> SimonRC: please tell me about your sleep expreriments :)
11:51:21 <oklopol> okay, i guess i couldn't concentrate enough to play that long a piece in one go
11:52:41 <oklopol> i wish i knew another composer, i could play my card game with them
11:52:58 <oklopol> perhaps i'll articlify that
11:53:00 <oklopol> ->
11:57:24 <SimonRC> not ubermans...
11:57:49 <SimonRC> http://www.everything2.com/index.pl?node_id=69872
11:57:53 * SimonRC goes back to bed
13:03:24 -!- jix_ has joined.
13:19:44 -!- jix__ has joined.
13:28:13 -!- jix_ has quit (Read error: 110 (Connection timed out)).
15:19:05 * SimonRC loves his magical shrinking code
15:19:14 <SimonRC> The more you hack on it, the shorter it gets.
15:27:19 -!- crathman has joined.
16:15:45 -!- crathman has quit ("ChatZilla 0.9.78.1 [Firefox 2.0.0.4/2007051502]").
16:36:06 -!- oerjan has joined.
16:50:22 -!- sebbu has joined.
17:05:42 -!- jix__ has quit (Killed by douglas.freenode.net (Nick collision)).
17:06:18 -!- jix_ has joined.
17:06:36 -!- jix_ has changed nick to jix.
19:03:05 <Asztal> !bf_txtgen ACTION tests
19:03:35 <Asztal> <_<
19:03:41 <EgoBot> 115 +++++++++++++[>+++++>++++++>+++++++++>++<<<<-]>.++.>++++++.<++++++.++++++.-.>>>++++++.<-.<+++++++++++++++++.>-.+.-. [885]
19:07:03 <oerjan> !bf +++++++++++++[>+++++>++++++>+++++++++>++<<<<-]+.>.++.>++++++.<++++++.++++++.-.<.>>>>++++++.<-.<+++++++++++++++++.>-.+.-.
19:07:05 <EgoBot> <CTCP>ACTION<CTCP> tests
19:07:38 <oerjan> oh
19:07:45 <pikhq> Do it again, and it'll work.
19:07:48 <Asztal> well, I was going to add ASCII 001 to the start and end, and see if it did a CTCP action
19:07:54 <Asztal> !bf +.++++++++++++[>+++++>++++++>+++++++++>++<<<<-]>.++.>++++++.<++++++.++++++.-.>>>++++++.<-.<+++++++++++++++++.>-.+.-.[-]+.
19:07:57 * EgoBot tests
19:08:17 <pikhq> It's an issue with EgoBot's buffering; the first time it sends a CTCP, it fails.
19:08:18 <oerjan> so did i except i forgot the "tests" should also be inside
19:08:42 <pikhq> . . . Ah.
19:12:47 <oerjan> !bf_txtgen <CTCP>ACTION tests again<CTCP>
19:13:37 <oerjan> !ps
19:13:41 <EgoBot> 1 oerjan: bf_txtgen
19:13:43 <EgoBot> 2 oerjan: ps
19:13:45 -!- puzzlet has joined.
19:13:47 <EgoBot> 169 +++++++++++++[>>+++++++++>+++++>++<<<<-]>+.>>.++.+++++++++++++++++.-----------.++++++.-.>++++++.<<-.>+++++++++++++++++++++++.<-.+.-.>>.<----.<------------.>.<++.+++++.<. [744]
19:13:57 <oerjan> !bf +++++++++++++[>>+++++++++>+++++>++<<<<-]>+.>>.++.+++++++++++++++++.-----------.++++++.-.>++++++.<<-.>+++++++++++++++++++++++.<-.+.-.>>.<----.<------------.>.<++.+++++.<.
19:14:01 * EgoBot tests again
19:31:08 -!- puzzlet_ has quit (Read error: 110 (Connection timed out)).
20:05:44 -!- ehird` has joined.
20:07:14 -!- boily has joined.
20:18:52 -!- oerjan has quit ("Good night").
20:18:52 -!- boily has quit ("Lunch").
21:02:05 <bsmntbombdood> i want to try ubermans again but i need a better way to keep on it
21:07:34 <ehird`> I wonder... if we all banded together, would it be possible to make a language that's so massively massive and convoluted (like intercal *= googolplex intercals or something) that we need an entire Hello World Development Sub-Comittee deciding which output function we should use?
21:23:43 -!- c|p has joined.
21:25:55 <bsmntbombdood> try per
21:25:56 <bsmntbombdood> l
21:26:06 <ehird`> hah!
21:26:10 <ehird`> no but seriously. :)
21:48:27 -!- jix has quit ("CommandQ").
22:08:36 <Asztal> well, there's malbolge... although it's more of a turing tarpit-type thing
22:08:55 <lament> ehird`: that _does_ sound like perl.
22:09:00 <SimonRC> _Contact_ FTW!
22:09:11 <bsmntbombdood> contact?
22:10:28 <SimonRC> no, _Contact_
22:10:36 <bsmntbombdood> contact?
22:10:42 <SimonRC> gah!
22:10:48 <SimonRC> no, _Contact_
22:10:55 <SimonRC> notice the underlining
22:11:02 <bsmntbombdood> what's contact?
22:11:37 <SimonRC> The underlining indicates it is the title of an artwork, piece of fiction, film, or similar
22:38:00 -!- ehird` has quit.
23:33:01 -!- sebbu has quit ("@+").
2007-06-07
00:12:23 <mee> I thought you were supposed to use /italics/ for that, where available. :)
00:13:34 <bsmntbombdood> or just plain text
01:09:05 -!- c|p has quit ("Leaving").
01:14:21 <erider> http://retroforth.com/paste/?id=420
02:00:12 <bsmntbombdood> zomg 420
02:03:17 <SimonRC> hmm
02:03:37 <SimonRC> MS are trying to be Google: http://slashdot.org/articles/07/06/06/1848214.shtml
02:04:02 <SimonRC> I initially just assumed that it was Google that did this when I saw the video
02:04:37 <bsmntbombdood> google is becoming evil
02:04:38 <SimonRC> The app really needs that cool multi-touch screen though.
02:07:03 <bsmntbombdood> photo zooming, wow
02:07:19 <SimonRC> no, wait until he gets to the Notre Dame bit
02:09:19 <bsmntbombdood> hmm
02:10:21 <bsmntbombdood> i wonder how they put all the pictures together
02:21:14 <SimonRC> I think that was the main thing that the software did.
02:21:28 <bsmntbombdood> ...yeah
02:30:33 <SimonRC> zzzz
02:58:16 -!- mee has left (?).
03:53:30 -!- erider has quit ("I don't sleep because sleep is the cousin of death!").
04:29:57 -!- erider has joined.
04:31:12 <bsmntbombdood> 1, 11, 21, 1211, 111221, 312211, 13112221, 1113213211, 31131211131211, 13211311131221
04:32:40 <Asztal> 11131221133113112211
04:32:57 <bsmntbombdood> yes
04:39:00 <pikhq> Interesting program.
04:39:03 <pikhq> :p
04:43:32 -!- boily has joined.
04:45:00 <Asztal> I wonder at what rate the sequence expands
04:48:25 <bsmntbombdood> 11131221133112132113212221
04:48:32 <bsmntbombdood> 3113112221232112111312211312113211
04:48:38 <bsmntbombdood> 1321132132111213122112311311222113111221131221
04:48:42 <erider> any scheme users here
04:48:47 <bsmntbombdood> 11131221131211131231121113112221121321132132211331222113112211
04:48:56 <bsmntbombdood> 311311222113111231131112132112311321322112111312211312111322212311322113212221
04:49:26 <bsmntbombdood> faster than exponential, looks like
04:50:53 <bsmntbombdood> and it looks like the digits don't go above 3
04:51:19 <boily> you can't go above three
04:52:08 <bsmntbombdood> why not?
04:52:53 <boily> because, for example, to get a 4 you need something like 1111, 2222, ...
04:53:27 <boily> 1111 refers, in the precedent step, to 11, which normally is written 21 in the next step
04:53:27 <bsmntbombdood> yes
04:53:36 <bsmntbombdood> and why can't there be 111 ones?
04:53:44 <boily> oh
04:53:47 <boily> umm...
04:55:22 <Asztal> http://en.wikipedia.org/wiki/Conway_sequence
04:55:33 <Asztal> his starts with a 3, though.
04:56:02 <Asztal> actually, http://en.wikipedia.org/wiki/Look_and_say_sequence
04:56:42 -!- GregorR-L has joined.
04:56:48 <bsmntbombdood> bah, i'm never the first one to think of it
04:58:06 <bsmntbombdood> lol @ the polynomial on that page
04:58:54 <Asztal> funny how something that complex comes from a simple sequence (or, a simple to generate sequence)
04:58:58 * pikhq hails the EgoBot lord
04:58:59 <pikhq> :p
04:59:26 <boily> wooo... this polinomial scares me
05:02:18 <Asztal> 1, 11, 101, 111011, 11110101, erm
05:02:27 -!- puzzlet_ has joined.
05:19:39 -!- puzzlet has quit (Read error: 110 (Connection timed out)).
05:20:19 <bsmntbombdood> 100110111011
05:20:27 <bsmntbombdood> 111001011011110101
05:20:37 <bsmntbombdood> 111100111010110100110111011
05:20:53 <bsmntbombdood> 100110011110111010110111001011011110101
05:22:13 <GregorR-L> GET YOUR BINARY OUT OF HERE
05:22:14 <GregorR-L> BITCH
05:22:16 <GregorR-L> I mean hi.
05:25:46 <Asztal> probably wasn't a good idea to set ruby going with this, as it's now consuming about 20MB per second
05:27:14 <Asztal> yes, I definitely don't have 1.89770965081337e+030 bytes of RAM :(
05:27:53 <bsmntbombdood> why would you need that much?
05:28:48 <Asztal> because I was doing it the silly way, i.e. keeping it all in memory at once
05:29:34 <Asztal> I think you should be able to calculate the length recursively if you give it a depth
05:29:54 <bsmntbombdood> huh?
05:30:41 <Asztal> I was calculating the rate of growth of the 1, 11, 21, 1211 sequence.. in a very dumb way (and doing 250 iterations) :)
05:32:43 <bsmntbombdood> iterations?
05:33:24 <Asztal> I was thinking of 1 -> 11 as one iteration
05:47:14 <pikhq> Gregor, I was just randomly running strings on cplofc. . . And I'm wondering: how the *hell* did "Hello, world!" get into there?
05:49:16 <pikhq> http://www.acm.org/classics/sep95/ Did you happen to pull this trick off?
05:52:59 <bsmntbombdood> that would be awesome
05:53:30 <pikhq> It's not a *horribly* difficult trick. . .
05:53:52 <pikhq> Whee bit tricky when you've got two implementations that your self-hosting compiler can run on, though. ;)
05:54:10 <pikhq> . . . Oh, shit. Dplof is written in D, and Gregor is a major D developer. . .
05:54:11 <pikhq> :p
05:54:46 <pikhq> Although that seems like a bit of excessive work for sticking "Hello, world!" in something.
05:55:14 <bsmntbombdood> the putting it in the compiler you're compiling is the tricky part
05:55:51 <pikhq> Not really. Once you've got a self-hosting compiler, you add in a pattern matching function or two, then compile, remove, distribute binaries.
05:56:45 <pikhq> There's a few problems with this approach, of course. . . The source could change enough to break the pattern matching being the most obvious.
05:57:13 <bsmntbombdood> it would be better if you could put it in other compilers
05:57:40 <pikhq> Why not.
05:57:53 <pikhq> You just add another pattern matcher to match a specific compiler.
05:58:14 <bsmntbombdood> in compilers you don't know about
05:59:01 <pikhq> That's impossible, unless you can somehow match any function which could *possibly* result in valid machine code.
05:59:23 <bsmntbombdood> that's why i said it was tricky
05:59:33 <pikhq> The main problem with *that* being that, odds are, your compiler would break every binary, and it'd be noticed.
06:27:42 -!- boily has quit ("WeeChat 0.2.4").
06:49:22 -!- oerjan has joined.
06:57:32 <GregorR-L> pikhq: You should've said "GregorR-L", so I'd recognize that you'd messaged me :P
06:58:33 <GregorR-L> pikhq: And that's from some tests compiled into fileio.plof
06:58:38 -!- GreaseMonkey has joined.
07:00:13 -!- sp3tt has quit (Remote closed the connection).
07:00:18 -!- sp3tt has joined.
07:02:43 <pikhq> GregorR-L: Ah.
07:03:18 <pikhq> I still wouldn't put Trusting Trust past you. ;)
07:03:47 <bsmntbombdood> i want to invent a language so i can do that
07:04:33 <pikhq> bsmntbombdood: Screw that. Stick it in a Brainfuck compiler. . .
07:04:50 <pikhq> Hmm. I should do that to Pfuck. :p
07:04:55 <oerjan> but Trusting Trust only works properly if the language is self-hosting
07:05:01 <bsmntbombdood> no one compiles login with a bf compiler
07:05:48 <pikhq> And Brainfuck self-hosts.
07:06:50 <oerjan> clarification: the best compiler for the language must be yours, and self-hosting
07:07:09 <bsmntbombdood> right
07:07:14 <pikhq> Obviously, you should get it into GCC.
07:07:25 <GreaseMonkey> hmm, there's plenty of BF self-compilers out there
07:07:57 <GregorR-L> Especially if your target is BF :P
07:07:58 <pikhq> Preferably into one of the RTL optimisation passes. You could even leave the code *in* and nobody would notice it there!
07:08:18 <oerjan> :D
07:09:12 <oerjan> was it here someone mentioned a backdoor in the linux kernel that was designed to look like a simple typo?
07:09:55 <bsmntbombdood> i have can't hair all over me
07:10:15 <pikhq> There's another good place to put one. . .
07:10:22 <oerjan> no parse
07:10:23 <pikhq> Except, of course, that GCC is used on more archs.
07:10:41 <pikhq> GCC is, after all, the #1 compiler on everything but Windows.
07:10:53 <GreaseMonkey> yah
07:11:01 <GreaseMonkey> the #1 compiler on Windows is "
07:11:02 <GreaseMonkey> "
07:11:06 <GreaseMonkey> the #1 compiler on Windows is "don't bother"
07:11:07 <bsmntbombdood> vc++
07:11:14 <pikhq> (I of course refer to popularity, not quality. VC++: EWW.)
07:11:22 <bsmntbombdood> yes
07:11:34 <GreaseMonkey> c compilers are crap under windows
07:11:59 <GregorR-L> http://www.youtube.com/watch?v=xiKwErpPwMs
07:12:10 <GregorR-L> (On the subject of Microsoft :P)
07:12:28 <Asztal> VC8's not all that bad.
07:13:23 <pikhq> Not entirely.
07:13:36 <pikhq> GCC is a good C compiler for Windows, after all.
07:16:55 <pikhq> GregorR-L: You, uh, do realise that Windows 1.0 had a (craptastic) color GUI, not just B&W, right?
07:17:43 <GregorR-L> I didn't make that.
07:17:45 <GregorR-L> Microsoft did.
07:17:58 <GregorR-L> Don't ask me why they didn't use Windows' glorious pastel.
07:18:02 <pikhq> Ah.
07:18:20 <pikhq> That's a craptastic OS.
07:18:38 <GregorR-L> You could've read the description before asking that X-P
07:18:49 <pikhq> Too much work.
07:21:11 * pikhq really goes into uncontrollable laughter when comparing the capabilities of those POS machines and a UNIX box. . . (fine, so we're comparing tricycles to Ferraris. . . Still.)
07:22:00 <bsmntbombdood> that was in the movie?
07:22:30 <pikhq> No, Unix vs. Windows wasn't.
07:37:25 <bsmntbombdood> I need a language to invent
07:37:53 <pikhq> Invent Plof 0.1
07:39:49 <GreaseMonkey> but call it Flop just to avoid issues
07:40:02 <pikhq> Of course.
07:40:32 <pikhq> Be sure to wrap it up in sexps, and perhaps replace the typing system.
07:42:06 <bsmntbombdood> sexp++
07:42:26 <bsmntbombdood> i mean
07:42:36 <bsmntbombdood> (set! sexp (+ sexp 1))
07:42:47 <pikhq> Obviously, you want:
07:42:56 <bsmntbombdood> or (incf sexp)
07:43:20 <pikhq> (set! (int sexp) (int (+ (int sexp) (int 1))))
07:43:32 <pikhq> Yay, overdoing type systems!
07:43:36 <bsmntbombdood> why would i do that?
07:44:04 <pikhq> Because a language must be worthy of the term "WTF" before it can be a language. :p
07:44:19 <GreaseMonkey> that sounds pretty sexp to me
07:45:03 * oerjan updates wikipedia's Look and Say Sequence article to mention Conway's "elements".
07:46:06 <GreaseMonkey> sexp!4++;
07:46:08 <oerjan> they are really the key to understand why the polynomial arises, although i don't explain _that_.
07:52:31 <oerjan> apparently you can do something similar but much easier with the binary version (easier because every 0 ends an "atom")
07:53:10 <GreaseMonkey> hehe, zero-terminated arbitrary numbers :D
07:53:23 <oerjan> i mean, every 0 followed by a 1
07:54:05 <GreaseMonkey> Quick, dial 11111111101010!
07:54:52 <oerjan> fibonacci numbers are also self-terminating i think, but more efficient
07:55:07 <oerjan> *fibonacci base
07:56:03 <oerjan> er, i mean you just add a 1 at the end
07:56:14 <oerjan> because 11 doesn't occur internally
07:57:08 <GreaseMonkey> gonna get off now for food, cya
07:57:51 -!- GreaseMonkey has quit ("I'm the world's fastest idiot!").
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:04:16 -!- bsmntbombdood has quit (Remote closed the connection).
08:04:20 -!- bsmntbombdood has joined.
08:07:26 <pikhq> puts [set me::state $::human::states::sleepy]
08:08:00 <bsmntbombdood> [drink you coffee]
08:08:40 <pikhq> puts [expr {$::me::coffee == $::item::have}]
08:08:47 <pikhq> stdout: "FALSE"
08:09:12 <bsmntbombdood> stab your foot
08:44:12 <GregorR-L> stdio.StdOut.writeln("lawlehcoptah");
08:44:47 <bsmntbombdood> roflbrothel!!
09:59:39 -!- oerjan has quit ("leaving").
10:18:30 -!- GregorR-L has quit ("Leaving").
10:22:40 <GregorR> http://www.codu.org/cmh/
13:04:04 -!- Asztal has quit (":o").
13:48:21 -!- jix has joined.
15:14:50 -!- bobbens has quit ("Lost terminal").
15:36:10 <SimonRC> yay, democracy FTW! http://en.wikipedia.org/wiki/Cleanfeed_(content_blocking_system)
15:36:42 <SimonRC> Oh, BTW people, I managed a lucid dream.
15:36:43 <SimonRC> Yay!
15:36:54 <SimonRC> I didn't do anything sensible though.
15:37:20 <SimonRC> I just ran for a short time, then flew, then woke up due to high heart rate.
16:42:26 -!- sebbu has joined.
17:03:51 -!- crathman has joined.
17:06:11 <SimonRC> lol@BB!
17:06:17 <SimonRC> http://www.theregister.co.uk/2007/06/07/big_brother_eviction/
17:06:27 <SimonRC> woman says "nigger"; gets kicked out
17:44:36 <SimonRC> anyone here who hasn't seen this yet ought to: http://worsethanfailure.com/Articles/OMGWTF-Finalist-08-Universal-Calculator.aspx
17:44:49 <SimonRC> You just go WTF WTF WTF
17:47:42 <lament> that's beautiful
17:48:28 <SimonRC> did you try a multiplication?
17:48:55 <SimonRC> The little icon in the taskbar pops up a baloon to tell you it's finished!
18:03:31 -!- oerjan has joined.
18:31:06 <oklopol> <bsmntbombdood> 1, 11, 21, 1211, 111221, 312211, 13112221, 1113213211, 31131211131211, 13211311131221
18:31:06 <oklopol> <Asztal> 11131221133113112211
18:31:16 <oklopol> i'm pretty sure i'd never have figured that.
18:37:52 -!- crathman_ has joined.
18:38:31 -!- crathman_ has quit (Remote closed the connection).
18:40:25 -!- crathman has quit (Read error: 110 (Connection timed out)).
18:53:56 <SimonRC> oklopol: the trick is to have seen it before
18:54:41 <oerjan> heh
19:10:26 <oklopol> indeed, though i don't understand how i could be so blind
19:10:26 <oklopol> if you say it out loud, you can't miss it
19:10:26 <oklopol> unless retarded
19:10:26 <oklopol> why didn't i try that?
19:10:26 <oklopol> <- dumb
19:10:26 <oerjan> usually i think it is because you have some faulty assumption about what it must be
19:10:26 <oklopol> true, it looked familiar
19:10:26 <oklopol> it looked like one where you reverse the string
19:10:26 <oklopol> but, that had no relation, so i didn't get it
19:10:26 <oerjan> 01101001100101101001011001101001
19:10:26 <oerjan> ...
19:11:29 <lament> 22
19:12:02 <oklopol> hmm
19:12:04 <oerjan> huh?
19:12:35 <oklopol> now that i decoded that binary with python, i'm pretty sure one of the two of us failed miserably :<
19:12:36 <oerjan> (that's supposed to be the start of an infinite sequence of bits)
19:12:41 <oklopol> oh
19:12:49 <oklopol> then perhaps neither
19:16:31 <oerjan> (in a predictable pattern)
19:17:54 <lament> oerjan: that's a cute sequence
19:19:01 <lament> ...1001011001101001011010011001011001101001100101101001011001101001
19:19:33 <SimonRC> ah, yeah...
19:19:41 <SimonRC> that one
19:19:49 <SimonRC> I also invented that as a kid
19:20:12 <lament> repeatedly?
19:20:24 <SimonRC> huh?
19:20:35 -!- c|p has joined.
19:20:53 <SimonRC> The "also" applied to the "I" not the "invented".
19:22:50 <oerjan> lament: your sequence is wrong from index 65
19:23:22 <lament> probably typo
19:24:02 <oerjan> no, your bits are switch 0-1
19:24:08 <oerjan> *switched
19:24:46 <lament> oh, in that case your short sequence simply doesn't give enough information
19:24:53 <lament> here's mine, from the beginning:
19:24:55 <lament> 0110100110010110100101100110100110010110011010010110100110010110100101100110100101101001100101100110100110010110100101100110100110010110011010010110100110010110011010011001011010010110011010010110100110010110100101100110100110010110011010010110100110010110
19:24:59 <lament> etc
19:25:04 <lament> (no typos)
19:25:45 <lament> now, if my sequence has a simpler generating rule, i win :)
19:26:19 <oerjan> that one was correct, you must have made a cut/paste error in the first
19:26:24 <lament> oh, okay.
19:27:14 <lament> i suppose it's a nature of this sequence that a cut-paste error leads to effects like "all bits being reversed"
19:27:49 <oerjan> indeed
19:29:06 <oerjan> btw it's called the Morse-Thue sequence
19:34:35 <SimonRC> let { foo = "0" ++ (tail $ concat [if c == '0' then "01" else "10" | c <- foo]) } in foo
19:35:38 <SimonRC> OTOH, I think there is a log-space stream generator
19:36:30 <oerjan> i suppose, based on something like the parity definition in the MathWorld article
19:36:57 <oerjan> http://mathworld.wolfram.com/Thue-MorseSequence.html
19:40:12 <lament> SimonRC: that's not my rule...
19:40:38 -!- mangatiga has joined.
19:40:49 <oerjan> let parity 0 = 0; parity n = (parity (n `div` 2) + n `mod` 2) `mod` 2 in concatMap show $ map parity [0..]
19:41:05 <lament> wow
19:41:11 <lament> those rules are way too complex.
19:41:28 <oerjan> that one is log-space i hope
19:41:56 <lament> my rule: start with '01'
19:42:19 <lament> then take the existing string, split it into two equal halves, swap them and put the result after the existing string.
19:42:37 <lament> each operation grows the string by a factor of 2.
19:42:53 <oerjan> there are several ways of producing this :)
19:43:03 <lament> i like mine :)
19:44:15 <oerjan> (well maybe the parity function is not quite logspace as written)
19:44:33 <oerjan> i mean linear
19:44:39 <lament> not only my method is the best but the mathworld page doesn't mention it
19:44:50 <lament> or maybe i just don't notice it there.
19:46:35 <oerjan> your method corresponds to the substitution method done inside out
19:48:10 <oerjan> as in, assuming the two halves were generated from 0 and 1 respectively, what would the next step 0110 generate
19:49:46 <lament> but the two halves weren't generated from anything
19:51:02 <oklopol> <oerjan> 01101001100101101001011001101001 << this one i actually cracked! :)
19:51:07 <oerjan> another way, but which can only create every other step: if s is your string, use s ++ reverse s ++ reverse s ++ s
19:51:56 <oerjan> oklopol: good :)
19:51:58 <lament> yeah.
19:52:16 <oerjan> only works for the assymetric steps
19:53:22 <oerjan> lament: the two halves would be what the substitution method generates in n steps, it is a way of deriving your method from the substitution method
19:54:06 -!- GregorR-L has joined.
20:03:13 <SimonRC> I just tested (for the first time) my library for non-Euclidean game terrain.
20:05:08 <oerjan> hideously non-Euclidean?
20:05:22 <GregorR-L> http://www.choosemyhat.com/
20:06:41 <oerjan> you actually bought that domain? o_O
20:09:40 <oklopol> those are cheap
20:10:10 <oklopol> we bought a .fi, and even that was < 100
20:18:55 <bsmntbombdood> non-euclidean?
20:22:55 <GregorR-L> oklopol: <100 whats?
20:25:54 <fizzie> Err, I'd say <<100, not just <100. .fi domains are 48 EUR per three years, which means 16 EUR/year. Not as cheap as com/net/org, but still.
20:34:48 <bsmntbombdood> h-t-t-p-colon-slash-slash-slash-dot-dot-org
20:34:48 <SimonRC> oerjan: yes, hideously
20:34:48 <SimonRC> You can even have flips, giving a set-up like a Möbeus strip
20:34:48 <SimonRC> but each rectangular patch of terrain must only connect to each other patch in one way, and never to itself, so some really twisted things can't be done.
20:35:34 <SimonRC> i.e. you have a graph of blocks of terrain
20:37:14 <bsmntbombdood> vim has cool undo
20:40:54 <oerjan> bsmntbombdood: if you delete something, write something else and then discover you didn't want to delete anyhow, you can undo, yank what you deleted, redo what you wrote, then paste
20:41:32 <bsmntbombdood> is there a special way to yank what you deleted?
20:41:44 <oerjan> no, just ordinary yank
20:42:40 <oerjan> of course if the original delete was with a single command you may still have it in the yank buffer automatically
20:43:20 <oerjan> er, i vaguely recall that there are rotating yank buffers as well
20:45:10 <oklopol> <GregorR-L> oklopol: <100 whats? <<< cash tokens.
20:46:30 <oerjan> right, the numbered registers
21:00:08 <bsmntbombdood> me is just learning
21:00:43 <oklopol> does a stack based copy paste exist in any form?
21:01:52 <oerjan> the registers 1-9 behave as a stack
21:02:13 <oerjan> not very deep...
21:03:22 <bsmntbombdood> popping pastes wouldn't be very usefull, because you could only paste once
21:04:48 <oerjan> right, behave as a stack on pushing. on pasting you use "1p - "9p, i suppose
21:04:58 <bsmntbombdood> yeah
21:05:42 <oklopol> you could have top and pop separate
21:06:30 <oklopol> okloOS has this a native feature, it's very great in my head, though i'm not sure if it'll look exactly like that when i implement it...
21:06:36 <oklopol> i mean, overall
21:06:44 <oklopol> hmm
21:06:58 <oklopol> context switch
21:07:00 <oklopol> ->
21:40:52 -!- oerjan has quit ("Good night").
21:52:23 -!- jix has quit ("CommandQ").
22:00:16 -!- GregorR-L has quit (Read error: 110 (Connection timed out)).
22:29:00 -!- c|p has quit ("Leaving").
23:05:27 <bsmntbombdood> all the binary LaSS numbers are odd
23:06:43 <bsmntbombdood> actually, the LaSS numbers in any base are odd
23:07:23 <lament> how can a number be odd in any base?
23:07:32 <lament> oh wait
23:07:37 <lament> what does that even mean?
23:07:51 <lament> what does "odd in base n" mean?
23:08:06 <bsmntbombdood> odd means not divisble by 2
23:08:19 <lament> right
23:08:24 <lament> so it doesn't depend on the base...
23:09:08 <bsmntbombdood> the LaSS numbers do depend on base
23:10:37 <bsmntbombdood> err, not base 3
23:17:12 -!- c|p has joined.
23:18:26 <bsmntbombdood> err
23:21:47 <bsmntbombdood> not quite
23:22:51 <bsmntbombdood> the last digit is always theinitial value
23:26:21 -!- sebbu has quit ("@+").
23:36:11 -!- GregorR-L has joined.
23:38:21 -!- wooby has joined.
23:45:44 -!- wooby has quit.
2007-06-08
00:01:23 <GregorR-L> http://www.choosemyhat.com/ is now officially live
00:02:52 <oklopol> guess i'll design you a schedule then
00:03:46 * oklopol chooses the boring ones to leave the good stuff for later
00:04:45 <oklopol> now back to my ...thing ->
00:04:59 <bsmntbombdood> i has no thing
00:56:11 <oklopol> i hate writing long stories, i can't handle complex plots and i have a very intense imagination: very bad combination
00:57:25 <oklopol> long == 15 pages or more for me, i usually write even shorter ones.
01:21:08 -!- RodgerTheGreat has joined.
01:21:27 <RodgerTheGreat> how's it going, everyone?
01:21:43 <oklopol> well, well
01:21:54 <RodgerTheGreat> hi, oklopol
01:21:59 <oklopol> hiii
01:22:51 * oklopol is writing a story about a bunch of lunatics that are soon to be killed
01:23:29 <RodgerTheGreat> sounds somewhat interesting
01:23:42 <RodgerTheGreat> what inspired your literary efforts?
01:24:59 <oklopol> www.vjn.fi <<< i'm a month behind
01:25:29 <oklopol> my 1½ week trip to germany killed our article-per-day project for a while, i'm catching up now :)
01:26:14 <RodgerTheGreat> haha
01:26:17 <oklopol> we started right after last summer, there's also another almost 3 month gap because of pure laziness
01:26:46 <oklopol> we had a group of 5 ppl deciding each writes 1-2 articles a week
01:26:54 <RodgerTheGreat> I've been spending the summer doing some coding on an RPG game engine- do you have a java plugin for your browser?
01:26:59 <oklopol> but turned out only 2 of us would actually write anything :)
01:27:11 <oklopol> i might.
01:27:14 <oklopol> ::)
01:28:25 <RodgerTheGreat> well, if you in fact do, take a gander at the demo I have online at the moment: http://rodger.nonlogic.org/games/CRPG/
01:28:41 <RodgerTheGreat> some aspects of it (like going through doors) are buggy, but it's a work in progress.
01:28:49 <RodgerTheGreat> many interesting things work well already
01:30:33 <oklopol> i guess i'm installing a plugin now
01:30:46 <RodgerTheGreat> haha- ok, then
01:30:56 <oklopol> or downloading something completely irrelevant, we'll see in a minute
01:31:15 <oklopol> what's a .bin? :)
01:31:23 * RodgerTheGreat shrugs
01:31:30 <oklopol> oh
01:31:38 <oklopol> i assumed it's something everyone knows
01:33:20 <RodgerTheGreat> possibly a binary file of some kind?
01:33:26 <oklopol> possibly.
01:33:32 <oklopol> i wonder what to do with it...
01:33:41 <oklopol> why can't programs install themselves...
01:33:43 <oklopol> :<
01:34:03 <bsmntbombdood> long time no see, RodgerTheGreat
01:34:50 <bsmntbombdood> GregorR-L: oh no you have a tie for tommorow
01:34:51 <GregorR-L> Is it next to a .cue?
01:34:59 <RodgerTheGreat> hi, bsmntbombdood
01:35:03 <GregorR-L> bsmntbombdood: Read the FAQ :P
01:35:06 <GregorR-L> bsmntbombdood: I am the tiebreaker.
01:35:14 <erider> hi all
01:35:20 <bsmntbombdood> i would hope so
01:36:14 <GregorR-L> oklopol: Is it next to a .cue file?
01:36:31 <oklopol> errrr no
01:36:42 <GregorR-L> Then it's a binary of some kind :P
01:38:01 <oklopol> hmm.... there was, like, this button that said "install plugin"... so i pressed it (even though it didn't blink) and it said something about not being able to do something and i have to do something manually and i found myself on a page with linux penguins and a list of files ot dl
01:38:13 <oklopol> so... naturally i clicked on a random link
01:38:47 <RodgerTheGreat> lol
01:38:50 <oklopol> i'm pretty sure you can advise me based on that.
01:38:52 <oklopol> :)
01:38:56 <oklopol> okay, coffee time...
01:39:11 <GregorR-L> Then it's probably a binary.
01:39:19 <GregorR-L> chmod 0755 it, run it, and watch it reformat your hard disk.
01:39:49 <GregorR-L> Also, if that's the flash player, just use the RPM (+alien on non-RPM platforms)
01:41:05 <RodgerTheGreat> oklopol: what linux distro do you run?
01:41:07 <oklopol> chmod 0755?
01:41:09 <oklopol> ubuntu.
01:41:23 <oklopol> and i have no idea about _anything_
01:41:56 <pikhq> n00b?
01:42:03 <oklopol> yes.
01:42:32 <oklopol> in pretty much anything regarding software someone other than me created
01:42:37 <bsmntbombdood> GregorR-L: this could be big
01:42:58 <RodgerTheGreat> oklopol: this may solve your problem: http://linux.about.com/od/ubuntu_doc/a/ubudg22t8.htm
01:43:49 <GregorR-L> bsmntbombdood: digg it :P
01:44:03 <bsmntbombdood> oooh good plan
01:44:15 <GregorR-L> bsmntbombdood: I'll add a "digg this" button if you give me the HTML.
01:44:18 <GregorR-L> I don't have a fegging clue with digg.
01:44:19 <bsmntbombdood> except i am not able
01:44:22 <GregorR-L> X-P
01:44:25 <bsmntbombdood> me neither :)
01:44:51 <oklopol> RodgerTheGreat: i might have a faint idea what it says there... but let's not get our hopes up
01:44:55 * oklopol tries
01:46:28 <oklopol> oaky, too hard.
01:46:45 <oklopol> i should install a brain first
01:49:13 <oklopol> but that'd be like dl'ing winzip in a .zip-file
01:49:15 <oklopol> of course
01:49:38 <oklopol> (real-life example)
01:53:41 <pikhq> It's almost like having GCC in C, or tar in a tarball, or Make with a Makefile. . .
01:54:09 <oklopol> yes, but are those ever officially distributed like that? :)
01:54:21 <pikhq> Um, yeah.
01:54:23 <bsmntbombdood> gcc
01:54:31 <oklopol> oh :|
01:54:34 <bsmntbombdood> and tar
01:54:38 <oklopol> i guess that's sensible in some way
01:54:44 <pikhq> GNU Make actually depends upon Make, automake, autoconf, etc.
01:54:44 <bsmntbombdood> and make, probably
01:54:47 <oklopol> though i don't know the way
01:54:49 <GregorR-L> GCC is in C, tar is in a tarball but also has a sharball, and make is distributed with an sh script as well.
01:55:20 <pikhq> Of course, if you don't *have* those, the method of installation you have remaining involves bootstrapping a build environment. . .
01:55:26 <pikhq> GregorR-L: Oh, make has a .sh? Didn't know that.\
01:55:44 <pikhq> Likewise, didn't know that tar had a shar of it.
01:55:59 <GregorR-L> http://ftp.gnu.org/gnu/tar/tar-1.16.1.shar.gz
01:55:59 <oklopol> i don't know about those, but at some point winzip was ONLY distributed in .zip-format on the official page
01:56:14 <GregorR-L> There's a non-gzipped version of that too :P
01:56:14 <oklopol> i had to install pkunzip to get it open
01:56:20 <pikhq> What's the point of a *compressed* shar? If you don't have tar, you probably don't hbave gzip. . .
01:56:25 <pikhq> Oh, I stand corrected.
01:56:43 <pikhq> At that point, you do depend upon the shell. . . But if you don't have bash, you're kind of screwed. ;)
01:56:48 <GregorR-L> Heh
01:56:59 <bsmntbombdood> yeah, how do you make bash? :P
01:57:09 <pikhq> bsmntbombdood: Bootstrap the system.
01:57:29 <bsmntbombdood> what do you mean?
01:57:49 <pikhq> I mean, compile the whole OS from scratch.
01:58:04 <pikhq> Honestly, if you don't have a *shell*, you don't exactly *have* an OS. . .
01:58:49 <pikhq> Hmm. There's not an uncompressed shar of tar that I can find on ftp.gnu.org
01:59:05 <bsmntbombdood> how do you compile the os without making gcc?
01:59:17 <pikhq> That is, not the latest.
01:59:58 <GregorR-L> http://ftp.gnu.org/gnu/tar/tar-1.13.shar
02:00:00 <GregorR-L> Oh
02:00:03 <GregorR-L> Right, not the latest.
02:00:39 <pikhq> bsmntbombdood: Well, at *that* point, you either use a boot disc to build your toolchain, or (if you're making the toolchain for an arch that doesn't have any one yet) you write by hand a basic C compiler in assembly.
02:00:55 <pikhq> (although you'd be best off just making a damned cross-compiler)
02:00:55 <bsmntbombdood> how do you make the assembler?
02:01:15 <pikhq> You make it on a different computer.
02:01:21 <GregorR-L> In hex.
02:01:23 <pikhq> One which *has* a tool-chain.
02:01:29 <bsmntbombdood> how do you make it on that one?
02:01:40 <pikhq> Since it has a tool-chain, you can just use C.
02:01:41 <oklopol> haha
02:01:47 <GregorR-L> The absolute, basic bootstrapping occurred decades ago. Now, everything has been bootstrapped.
02:02:05 <pikhq> Now it's a matter of just doing bootstrapping from a different working system.
02:02:40 <pikhq> If you *insist* on doing the basic bootstrapping, you need to start with a system where you can input the individual bits yourself, and go up from there.
02:03:02 <oklopol> hmph, GregorR-L prevented further "why" trolling quite meanly :<
02:03:30 <GregorR-L> ?
02:03:34 * pikhq thinks. . . Perhaps a ROM-chip emulator with a few thousand toggle switches and the Intel docs?
02:03:51 <bsmntbombdood> you can't input bits without an os on any arch i know
02:03:58 <pikhq> bsmntbombdood: Toggle switches.
02:04:27 <oklopol> GregorR-L: it was a nop.
02:04:32 <oklopol> forget it
02:04:36 <oklopol> me continue ->
02:04:44 <bsmntbombdood> pikhq: they need drivers
02:04:47 <pikhq> Hell, if you don't want to get your x86 board to accept toggle switches, *obviously* you go ahead and get an older PDP-11.
02:05:04 <bsmntbombdood> you know where i can get one of those?
02:05:23 <pikhq> bsmntbombdood: What, attaching a bunch of toggle switches in a way that emulates the *initial* *boot* *ROM* requires drivers?
02:05:24 <GregorR-L> I swear I will kill you all :P
02:05:37 <GregorR-L> What if you're in a universe with no matter? How do you compile your GCC?
02:05:52 <pikhq> How the hell does a BIOS boot if you need drivers from the BIOS to boot the BIOS? ;)
02:06:00 <oklopol> what compiled the universe?
02:06:10 <pikhq> GregorR-L: Obviously you ask God.
02:06:43 <pikhq> And don't ask where God came from. God is the initial bootstrapper. ;)
02:06:45 <bsmntbombdood> my computer doesn't have to switches :(
02:06:49 <RodgerTheGreat> "LET THERE BE... oh, fuck. hold on, lemme find a repo with the packages I need for this thing..."
02:07:24 <pikhq> bsmntbombdood: Yeah. . . You get a good hardware designer to make you a circuit board for the several thousand switches needed.
02:08:30 <bsmntbombdood> or you could just use 2 switches and do it serially
02:08:37 <RodgerTheGreat> usually you just wire up a CPU to accept a byte at a time from switches and interrupts
02:08:51 <RodgerTheGreat> that's how altairs and ELFs did it.
02:08:51 <pikhq> True.
02:09:53 <RodgerTheGreat> or you could design some type of pegboard wire-crossing ROM thingy like they had on the EDSAC with a bootloader that can read in an OS from tape, which actually is a pretty convenient solution.
02:10:11 <pikhq> The obvious solution, though, is to write a C compiler in Brainfuck, get a friggin' huge notebook, and hand-run your C compiler, and then use that switch setup to set it up in your computer.
02:10:42 <GregorR-L> LOL
02:10:59 <RodgerTheGreat> fuck that- if I'm punching something into a computer via dipswitches, I'm damn well going to hand-optimize the code in machinecode.
02:11:17 <RodgerTheGreat> computer scientists were hardcore like that, back in the day.
02:11:26 <bsmntbombdood> it would be fun to do
02:11:27 <GregorR-L> Now they're all fucking pansies.
02:11:30 <pikhq> RodgerTheGreat: Fine, then. Get your IA-32 docs, and start hand-compiling that C code.
02:11:46 <oklopol> can't one say anything here without it resulting in a very sick conversation :)
02:12:03 <pikhq> And no, I'm not printing out the LFS source code for you.
02:12:10 <pikhq> Hire Kinko's to do it. :p
02:12:19 <RodgerTheGreat> C is worthless when your RAM wordcount is in the sub-1000 range and you brag about having a 40k drum memory.
02:12:21 <bsmntbombdood> LFS?
02:12:27 <pikhq> (*Or* you could buy a copy of Minix)
02:12:34 <pikhq> bsmntbombdood: Linux From Scratch.
02:12:38 <bsmntbombdood> oh
02:12:54 <pikhq> Minix, IIRC, has full annotated C code for it in the book.
02:12:56 <RodgerTheGreat> machinecode is where it's at with anything that uses mercury delay-line registers.
02:13:14 <bsmntbombdood> that was written with a computer, no fair using it
02:13:16 <pikhq> RodgerTheGreat: We were discussing bootstrapping on x86, last I checked.
02:13:49 <RodgerTheGreat> I'm discussing coding for an EDSAC.
02:14:26 * RodgerTheGreat laughs a bit at saying *an* EDSAC
02:14:30 <pikhq> Fine, if you care about it being written with a *computer*, I'll get you the blueprints for a Z1
02:14:36 <RodgerTheGreat> oh, sweet
02:14:51 <bsmntbombdood> hot damn http://en.wikipedia.org/wiki/Image:Mercury_memory.jpg
02:14:55 <RodgerTheGreat> I can see if raul rojas was really on to anything with his TC proof
02:15:00 <pikhq> Sorry. I'll give you a Z3.
02:15:03 <oklopol> i browsed through minix source code once, i wonder if anyone ever actually benefits from printed 300 pages of source...
02:15:11 <pikhq> The Z1 was just a floating point calculator; the Z3 was the TC one.
02:15:26 <RodgerTheGreat> ah, good- the memory is more reliable on the Z3, too- relays > pure mechanical
02:15:40 <RodgerTheGreat> the z1 had a lot of mechanical deadlock problems
02:16:04 <RodgerTheGreat> bsmntbombdood: like I said, computer scientists were hardcore back in the day.
02:16:05 <pikhq> Of course, I could also get you an Analytical Engine.
02:17:11 <RodgerTheGreat> the analytical engine had a rather unconventional means of flow control- it only expresses a vague programmability
02:17:30 <RodgerTheGreat> possibly TC, but I don't know.
02:18:40 <RodgerTheGreat> Tell you what- gimme a manchester Mark 1.
02:19:03 <bsmntbombdood> oh my, 64 22-bit words
02:19:20 <pikhq> The Analytical Engine is the *first* Turing complete design.
02:19:57 <bsmntbombdood> and only 100kg!
02:20:03 <bsmntbombdood> *1000kg
02:20:16 <oklopol> hmm... i wonder if bees get angry if you hit them with a book and they do not die
02:20:48 <pikhq> RodgerTheGreat: You sure you want a Mark 1?
02:20:52 <RodgerTheGreat> I'm fairly familiar with it, but the Z1 represents a much more... tangible... contribution to computation history. As Steve Jobs once said, "real artists ship".
02:21:14 <pikhq> The Mark 1's not even TC. . .
02:21:16 <RodgerTheGreat> pikhq: why not? It has *blazing* CRT-based RAM!
02:21:50 <bsmntbombdood> crt ram!?!
02:22:27 <pikhq> bsmntbombdood: Yeah; has to be refreshed periodically, so the bits don't go out of the phosphor.
02:22:43 <bsmntbombdood> how do you read it?
02:23:18 <pikhq> Obviously with a bunch of photoelectric cells.
02:24:22 <pikhq> http://en.wikipedia.org/wiki/Williams_tube Never mind; they read it differently.
02:24:26 <RodgerTheGreat> the nice thing about a mark 1 is that it consists of only a handful of racks, so it can be moved from place to place with a few trucks, fit through doors, and can be set up in an average sized room.
02:25:26 <bsmntbombdood> wonderful
02:25:30 <RodgerTheGreat> yeah
02:26:19 <RodgerTheGreat> pretty reasonable memory and storage capabilities, too
02:27:07 <RodgerTheGreat> the Z3 is a nice machine, but TC is very nontrivial and mechanically unfeasible, for the most part. A Z4 could be pretty cool, though.
02:27:13 <pikhq> The Z3 could be moved with just one truck-load, I think. . .
02:27:30 <RodgerTheGreat> mmm. relay-based computing makes me feel all warm inside.
02:27:33 <pikhq> A Z4 would take a few.
02:27:57 <bsmntbombdood> you could use relays for ram, no?
02:27:58 <RodgerTheGreat> the z1 and z3 are fairly compact, but too wide to fit through conventional doors, and difficult to disassemble.
02:28:13 <pikhq> bsmntbombdood: Certaintly.
02:28:22 <RodgerTheGreat> bsmntbombdood: that's what the z3 and z4 did.
02:28:34 <pikhq> All of the z3 and z4 is done in relays.
02:28:39 <bsmntbombdood> that's hot
02:28:51 <bsmntbombdood> probably literally
02:29:34 <RodgerTheGreat> and running programs gives a beautiful cascade of clicks
02:30:04 <bsmntbombdood> want
02:30:05 <RodgerTheGreat> wow- I hadn't heard of this russian beauty: http://en.wikipedia.org/wiki/Strela_computer
02:30:22 <bsmntbombdood> i want to build one now
02:30:28 * pikhq votes for building a z3 with solid-state relays, just to annoy Rodger. :p
02:30:29 <RodgerTheGreat> :3
02:30:40 <RodgerTheGreat> <:[
02:30:41 <bsmntbombdood> how much do you think 2000 relays cost?
02:30:49 <RodgerTheGreat> why are you so cruel, pikhq?
02:31:02 <RodgerTheGreat> bsmntbombdood: lots, unless you find a bulk supplier
02:31:12 <RodgerTheGreat> bsmntbombdood: z3 or z4?
02:31:18 <bsmntbombdood> neither
02:31:28 <RodgerTheGreat> oh, just a relay based computer?
02:31:32 <bsmntbombdood> yeah
02:31:34 <RodgerTheGreat> kewl beans
02:31:34 <pikhq> Or pick up relays from an *old* phone system. . .
02:31:48 <bsmntbombdood> we can design our own
02:32:18 <pikhq> True.
02:32:19 <GregorR-L> http://web.cecs.pdx.edu/~harry/Relay/
02:32:25 <RodgerTheGreat> we want to use small voltage ranges so that we can keep the machine small and the cost low.
02:32:50 <RodgerTheGreat> GregorR-L: I've seen that machine before- quite an accomplishment
02:33:01 <GregorR-L> pdx.edu == my school ;)
02:33:13 <pikhq> GregorR-L: Cheating. I see an IC.
02:33:19 <RodgerTheGreat> bsmntbombdood: I recommend designing some relay-based logic gates first, as practice
02:33:28 <bsmntbombdood> yeah :D
02:33:39 <RodgerTheGreat> pikhq: the IC is ram, which is actually what makes it awesome
02:33:59 <RodgerTheGreat> 32k = virtually limitless possibilities
02:34:49 <pikhq> So. . . RAM is IC, registers are relays, *and* the ALU is in relays?
02:34:52 <pikhq> Damn, that's sexy.
02:35:12 <RodgerTheGreat> I do concur. <3
02:35:20 <bsmntbombdood> IC = lame
02:35:23 <bsmntbombdood> we can do better
02:35:48 <RodgerTheGreat> bsmntbombdood: well, relays make RAM expensive and large. so we need an alternate solution...
02:36:03 <pikhq> bsmntbombdood: 32K of relay RAM?!?
02:36:07 <bsmntbombdood> don't trade awesomeness for practicality
02:36:20 <RodgerTheGreat> possibly punchcards or tape as a large storage base with only limited onboard RAM?
02:36:48 -!- c|p has quit (Remote closed the connection).
02:36:55 <bsmntbombdood> http://web.cecs.pdx.edu/~harry/Relay/SoundOfRelays.mp3
02:37:07 <RodgerTheGreat> if the program runs directly from tape (and is obviously in a loop that can halt), we could get away with a very small number of registers.
02:37:51 <RodgerTheGreat> I'm imagining something like a pure-relay version of the Z3 with a conditional jump-forward command.
02:38:12 <RodgerTheGreat> what do you guys think of that?
02:38:13 <bsmntbombdood> i'm going to see if i can figure out some basic gates
02:39:21 <RodgerTheGreat> probably throw in a true "halt" instruction too, so you don't have to rely on arithmetic exceptions.
02:40:20 <bsmntbombdood> what's Four-Pole-Double-Throw?
02:40:34 <RodgerTheGreat> erm
02:40:43 <RodgerTheGreat> do you know anything about switches?
02:40:53 <bsmntbombdood> the turn things on and off
02:41:00 <RodgerTheGreat> SPST = single pole, single throw.
02:41:19 <RodgerTheGreat> single pole means you're opening and closing one switch at a time, basically
02:41:33 <RodgerTheGreat> wait, I'm backwards
02:41:45 <RodgerTheGreat> single throw means one switch at at time.
02:42:00 <RodgerTheGreat> argh
02:42:21 <pikhq> Is it a bad sign when you fall in love with a machine?
02:42:32 <bsmntbombdood> no
02:42:34 <RodgerTheGreat> no. never. especially not when it has clicky bits.
02:42:56 <pikhq> Good. . .
02:43:04 <RodgerTheGreat> and if it's TC, you're only required to avoid making out with it in public.
02:43:13 <RodgerTheGreat> bsmntbombdood: http://en.wikipedia.org/wiki/Switch#Contact_arrangements
02:43:24 <pikhq> Fine, then. I'll be sure to get a room.
02:43:29 <bsmntbombdood> thanks
02:43:52 <pikhq> Although I don't think my girlfriend would appreciate me cheating on her. . .
02:44:09 <pikhq> Especially not when it's a clicky machine. . . :)
02:44:29 <GregorR-L> Looks like I'll be wearing my red fedora tomorrow.
02:44:50 <RodgerTheGreat> just tell her that if she wants to win you back she'll have to learn to talk dirty in machinecode.
02:44:52 <bsmntbombdood> so, Four-Pole-Double-Throw means it has 4 different SPDT switches?
02:45:04 <RodgerTheGreat> that are mechanically linked
02:45:05 <RodgerTheGreat> yes
02:45:17 <RodgerTheGreat> so, if one is ON, all are on.
02:45:26 <bsmntbombdood> right
02:45:29 <RodgerTheGreat> like how a DPST does it with two
02:45:31 <RodgerTheGreat> exactly
02:45:42 <pikhq> GregorR-L: You might want to check again.
02:46:30 <GregorR-L> Looks like I'm still wearing the red fedora :P
02:46:45 <RodgerTheGreat> have any of you guys read "The First Computers: History and Architectures"?
02:47:12 * pikhq does a vote-- on the fedora. :p
02:47:38 <RodgerTheGreat> it's one of my favorite books of all time, because not only does it discuss early machines, it often has schematics, specs, instruction sets and machinecode examples. :D
02:48:01 <RodgerTheGreat> and most of the articles are written by the people that *created* the machines in the first place
02:48:03 <GregorR-L> pikhq: By the way, I wore the Pakul on Wednesday, so I'm not wearing it on Friday even if it wins.
02:48:05 <pikhq> RodgerTheGreat: Oooooh. . . I need that.
02:48:29 <pikhq> GregorR-L: Yeah, yeah. . . Just messing with ya. ;)
02:48:52 <RodgerTheGreat> http://www.amazon.com/First-Computers-History-Architectures-History-Computing/dp/0262681374/ref=sr_1_22/102-0916127-5584141?ie=UTF8&s=books&qid=1181267279&sr=8-22 <- absolutely fucking awesome
02:49:26 <bsmntbombdood> NOT is easy, AND is easy
02:49:58 <RodgerTheGreat> XOR is a trick, but useful as hell
02:50:10 <GregorR-L> NAND and you wins.
02:50:11 <pikhq> Now you've got NAND, and I believe you can make every gate from NANDs.
02:50:19 <GregorR-L> That is truth.
02:50:21 <bsmntbombdood> yep
02:50:38 <bsmntbombdood> but it's much simpler to build the other gates too
02:50:44 <bsmntbombdood> s/simpler/more efficient/
02:50:46 <pikhq> Of course, creating that many NANDs could be painful for a relay-based system.
02:51:17 <RodgerTheGreat> and it's best that you optimize your NAND gate as a single circuit rather than tying a NOT to an AND
02:51:36 <pikhq> True.
02:51:50 <pikhq> The point is that you can, not that it's a good idea. ;)
02:52:08 <RodgerTheGreat> and when you get to actually implementing the system, always start with a truth table and simplify, simplify, simplify
02:52:22 <bsmntbombdood> how do you do xor?
02:52:27 <RodgerTheGreat> pikhq: yeah, I understand- your point was just about it in a theoretical sense
02:52:55 * pikhq used to have a list of gates done in NAND. . . I was bored in a computer class. Very bored.
02:53:00 <RodgerTheGreat> 1,1:0 1,0:1 0,1:1 0,0:0
02:53:03 <pikhq> This was, of course, before I learned Brainfuck.
02:53:16 <RodgerTheGreat> is that clear enough, bsmntbombdood?
02:53:36 <bsmntbombdood> i know what xor _is_
02:53:40 <RodgerTheGreat> lol
02:54:01 <RodgerTheGreat> if you're having trouble with it, see if you can figure out the inverse and then NOT it
02:54:06 <GregorR-L> The Tam just took a term for the better.
02:55:37 <GregorR-L> Erm
02:55:39 <GregorR-L> "turn"
02:56:07 <bsmntbombdood> oh, i got
02:56:14 <bsmntbombdood> it takes 3 relays though
02:56:15 <RodgerTheGreat> currently, the favorite books I have on my shelf are "Programming the IBM Personal Computer: BASIC", "The First Computers: History and Architectures", "Snow Crash", "The Salmon of Doubt" and "Understanding Comics"
02:56:58 <pikhq> I see you've got pretty good taste.
02:57:09 <RodgerTheGreat> (^ _ ^)
02:57:25 <bsmntbombdood> oh yeah? well i've got "The ibm personal computer made easy"
02:57:41 * pikhq needs to find his Apple II
02:57:51 <RodgerTheGreat> and I'm using a copy of "The C++ Programming Language" to hold up my monitor.
02:57:55 <pikhq> (ain't every day you find a 17 year old saying that)
02:59:01 <oklopol> * pikhq used to have a list of gates done in NAND. . . I was bored in a computer class. Very bored. <<< we do that stuff in the university \o/
02:59:06 <RodgerTheGreat> after about 20 pages of stroustrup creaming himself over the brilliance and elegance of his horrible little language, I gave up on that book and repurposed it.
03:00:27 <oklopol> (of course you might be there already)
03:00:27 <pikhq> oklopol: I'm in high school right now.
03:00:27 <pikhq> I did that my freshman year.
03:00:43 <bsmntbombdood> college is going to suck
03:00:44 <oklopol> my point was: we don't, not in the school
03:00:48 <RodgerTheGreat> I'm slowly getting to the point where university CS courses are teaching me new things. Freshman year was more or less a wash, but I did learn a few new ideas in Data Structures.
03:01:06 <bsmntbombdood> if i even get in
03:01:23 <pikhq> For me, my freshman year will probably be boring. . .
03:01:30 <RodgerTheGreat> Once I get "Software development in C/C++" out of the way I start being able to take the fun classes, which is why I'm taking it now during the summer.
03:01:39 <oklopol> i don't think i've learned anything but german and swedish in my whole school time
03:01:57 <RodgerTheGreat> pikhq: I'd highly recommend taking the AP CS test, even if your school doesn't offer it.
03:02:15 <RodgerTheGreat> Brush up on java for a few days and you can ace it no problem.
03:02:16 <pikhq> RodgerTheGreat: Yeah, I've been thinking about it.
03:02:17 <bsmntbombdood> the AP CS test is a joke
03:02:21 <GregorR-L> I'd highly recommend not taking the AP CS test.
03:02:26 <GregorR-L> Since no school accepts it.
03:02:36 <bsmntbombdood> I haven't taken it, but i've looked at it
03:02:39 <RodgerTheGreat> GregorR-L: MTU sure as hell did.
03:02:46 <pikhq> It'll largely depend upon whether or not my school of choice does take it. . .
03:03:06 <pikhq> If it doesn't, screw it. I'm not wasting my money, and I'm not tainting my brain with Java. ;)
03:03:33 <GregorR-L> I did the AP CS A test in C++, and the AP CS B test in Java.
03:03:37 <RodgerTheGreat> I sense fear that you will enjoy Java.
03:03:38 <GregorR-L> Because I'm brilliant that way.
03:03:57 <RodgerTheGreat> when I took it, everything was done in Java.
03:04:18 <GregorR-L> Presumably you took it more recently than I did
03:04:24 <RodgerTheGreat> I had about 2 weeks of java coding under my belt at the time and didn't know half a shit about OOP, and I still got a 5 on it.
03:04:26 <GregorR-L> They switched it over between when I took the two.
03:04:29 <RodgerTheGreat> this was about 2 years ago.
03:04:36 <pikhq> *Why* can't they still do C++?
03:04:50 <GregorR-L> pikhq: It's not proprietary enough :P
03:04:55 <bsmntbombdood> why can't the use a decent language?
03:04:57 <pikhq> GregorR-L: Nor is Java.
03:05:02 <RodgerTheGreat> pikhq: because over 80% of CS curricula in universities are based on Java.
03:05:08 <GregorR-L> (OK, I know, I'm not being fair, Java is now somewhat F/OSS)
03:05:13 <GregorR-L> PSU == C++ still 8-D
03:05:19 <bsmntbombdood> RodgerTheGreat: whhhhhhy
03:05:25 <pikhq> RodgerTheGreat: Then I'm lucky that the ones I've looked at are the 20% that aren't Java.
03:05:52 <pikhq> bsmntbombdood: Pain, agony, sorrow, not teaching malloc.
03:06:26 <bsmntbombdood> how can you not know manual memory allocation?
03:06:40 <pikhq> (to be fair, doing malloc and such the *right* way does take half a brain, which the average CS freshman doesn't have, if the course material is anything to judge by)
03:06:48 <pikhq> bsmntbombdood: Simple.
03:06:50 <RodgerTheGreat> because it's much, much more *consistent* than C or C++, for all it's faults. The vast majority of the work of learning C and C++ is learning all the "gotchas" and exceptions, rather than learning to program. In most CS courses, they're more concerned that you know how to conceptually use a linked list and manipulate it in algos than how to manage the memory behind it.
03:06:52 <pikhq> Use Java.
03:07:18 <bsmntbombdood> RodgerTheGreat: scheeeemeee
03:07:18 <GregorR-L> It's consistent because it's lacking.
03:07:36 <GregorR-L> Note that it's consistently getting less consistent ^^
03:07:46 <RodgerTheGreat> At MTU, we do what I feel is a pretty good balance of both worlds- all introductory courses use Java, then you're required to learn C and C++, and then you use whatever the hell you want.
03:08:10 * pikhq should look into MTU, just for the sake of doing Java->C->Brainfuck.
03:08:42 <RodgerTheGreat> GregorR-L: you could argue that the loss of consistency stems from the pressure of C coders that whine about lacking features like operator overloading.
03:08:47 <pikhq> And I have no idea why struct foo *Java has a member struct foo *C, nor do I know why struct foo *C has struct foo *Brainfuck.
03:08:57 <GregorR-L> RodgerTheGreat: That's C++ :P
03:09:01 <pikhq> RodgerTheGreat: C doesn't. ;)
03:09:39 <pikhq> And really, there *are* cases where operator overloading makes sense.
03:09:45 <bsmntbombdood> yeah
03:09:47 <RodgerTheGreat> by "C programmers" I mean "C and C++ programmers", because as far as I'm concerned C++ is just a sloppy mess tacked on to the actual language C.
03:09:48 <pikhq> Such as GMP.
03:09:50 * GregorR-L <3 Smalltalk
03:10:05 <GregorR-L> C++ is quite a mess, yes.
03:10:10 <GregorR-L> But Java is a horrible overreaction to that.
03:10:14 <pikhq> RodgerTheGreat: No, C++ is a sloppy mess tacked onto a slightly disabled C.
03:10:20 <GregorR-L> X-D
03:10:26 <bsmntbombdood> C isn't disabled
03:10:40 <pikhq> bsmntbombdood: No, but the common subset supported by C++ and C *is*.
03:10:41 <GregorR-L> bsmntbombdood: You don't speak English, do you?
03:10:54 <RodgerTheGreat> Java has a consistent design that doesn't factor in things like operator overloading, and every feature like that erodes the integrity of the design. It's just standard-rot.
03:11:01 <bsmntbombdood> only a little
03:11:41 <GregorR-L> Smalltalk.
03:11:43 <pikhq> RodgerTheGreat: Java has a consistent design that was made by people who never seem to value their ability to code for more than an hour.
03:11:43 <GregorR-L> Smaaaaaaaaaaaaalltalk.
03:11:50 <GregorR-L> Smaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalltalk.
03:11:58 <pikhq> GregorR-L: I've heard good things about it, but never coded in it.
03:12:30 <RodgerTheGreat> but back on the topic of pikhq using something like BFM for homework- it'd be totally acceptable (in the compiled form of C code) for most homework, but if it has a bug, he's probably going to get a zero, because the grader will want to die when he looks at it
03:12:54 <pikhq> I think you missed my rename of BFM.
03:13:00 <RodgerTheGreat> clearly
03:13:27 <pikhq> BFM is now PEBBLE: the Practical Esoteric Brainfuck-Based Language, Eh?
03:13:41 <RodgerTheGreat> creative.
03:14:01 * RodgerTheGreat debates actually completing an interpreter for Lojo.
03:14:01 <pikhq> And the C backend has been made to be damned efficient. . .
03:14:19 <RodgerTheGreat> Ooh. I just got a wonderful, horrible idea.
03:14:24 <pikhq> Yeah?
03:14:33 <RodgerTheGreat> I'll implement Lojo in C.
03:14:40 <RodgerTheGreat> not just any C though...
03:14:57 <RodgerTheGreat> horrifically obfuscated and mangled C.
03:15:11 <bsmntbombdood> that's the best way to go
03:15:21 * RodgerTheGreat begins happily drafting an esoteric C coding style doc.
03:16:46 <RodgerTheGreat> ground rules: no globals, no functions, no for loops, no header files, and as many things as possible rolled into oneliners.
03:17:07 <RodgerTheGreat> those principles *alone* should be enough to create some monstrosities.
03:17:17 <oklopol> no functions?
03:17:20 <oklopol> :|
03:17:29 <RodgerTheGreat> excepting main, of course
03:17:38 <oklopol> sooooo jsut while?
03:17:41 <oklopol> jsustu
03:17:59 <RodgerTheGreat> let's take it a step further and outlaw select structures, in case anyone feels like being a wiseass.
03:18:06 <RodgerTheGreat> oklopol: yeah
03:18:21 <oklopol> i kinda like functions :<
03:18:27 <RodgerTheGreat> if C had better support for labels I'd strip out everything but IF...THEN.
03:18:38 <oklopol> i had a verrrry sick idea for an rpg using c and function pointers
03:18:48 <RodgerTheGreat> it's sad how crippled C's goto is. the poor thing...
03:18:58 <RodgerTheGreat> hm
03:19:07 <oklopol> but it was too sick for me back then
03:19:14 <RodgerTheGreat> that is correct- function pointers can lead to hilarious hijinx.
03:19:39 <RodgerTheGreat> and let's not forget excessive use of recursion.
03:19:45 <RodgerTheGreat> ok, ok- functions are back in.
03:21:04 <bsmntbombdood> what's wrong with c's goto?
03:21:28 <RodgerTheGreat> bsmntbombdood: it's so... so weak compared to the GOTO of BASIC.
03:21:39 <oklopol> my idea was to encode the game in a big array of functions... each representing a room, and it'd reorder itself somwhat randomly like in that one boardgame
03:21:54 <bsmntbombdood> doesn't seem like there's much to a goto...
03:22:05 <RodgerTheGreat> it's more of a vestigal appendix to the language, while BASIC uses it is a glorious multifunctional tool
03:22:09 <RodgerTheGreat> *uses it as a
03:22:42 <oklopol> what's that mean?
03:23:19 <RodgerTheGreat> computed jumps, oklopol. computed jumps.
03:23:41 <bsmntbombdood> what can you compute?
03:24:20 <RodgerTheGreat> the beautiful thing about BASIC is that everything boils down to IF, THEN, LET and GOTO.
03:24:43 <oklopol> please boil out the difference :>
03:24:44 <oklopol> :<
03:25:46 <oklopol> hmm... i wonder if i could just skip a night's sleep without additional sleep tomorrow night... thazz rare
03:25:46 <RodgerTheGreat> and IF and THEN can often be simulated with LET and GOTO, actually
03:26:08 <RodgerTheGreat> oklopol: your REM cycles will catch up with you, one way or another
03:26:44 <oklopol> i guess
03:27:14 <RodgerTheGreat> alright, screw Lojo for the time being- I'm implementing a true Estoteric BASIC. I'll call it "BASICU" (Basic Unadvanced) for a playful jab at BASICA
03:27:39 <RodgerTheGreat> unless one of you can think of a more interesting/pleasant/funny name off the tops of your heads.
03:28:18 <oklopol> ubasic
03:28:19 <RodgerTheGreat> I'll just go for PRINT, INPUT, LET and GOTO as keywords, with the possible later addition of DIM.
03:28:27 <oklopol> (qbasic)
03:28:32 <RodgerTheGreat> heh
03:28:44 <oklopol> i had a lang called trivial once
03:29:07 <bsmntbombdood> i used to code in qbasic
03:29:10 <bsmntbombdood> those were the days
03:29:14 <oklopol> it was string-based... i guess i didn't know about parsing back then
03:29:21 <oklopol> me too :)
03:29:24 <oklopol> i sucked :<
03:29:32 <RodgerTheGreat> "MASIC: Masochist's All-purpose Symbolic Instruction Code"
03:29:40 <oklopol> heh
03:29:44 <oklopol> that's best of the 3
03:29:51 <RodgerTheGreat> we keep getting better
03:29:56 <RodgerTheGreat> who'll top that one?
03:30:26 <GregorR-L> PENIS: Programming for the Enlightened: the New Instruction Set
03:30:58 <bsmntbombdood> how long did that take you?
03:31:09 <RodgerTheGreat> that's extremely entertaining, but the name might be too long.
03:31:11 <oklopol> hmm... okay, i made myself a big bowl of ice... now how the fuck do i eat it
03:31:14 <GregorR-L> X-D
03:31:16 <RodgerTheGreat> ba-dum-tshh
03:31:27 <bsmntbombdood> oklopol: ice?
03:31:39 <oklopol> hard to explain
03:31:45 <GregorR-L> How to eat it:
03:31:47 <GregorR-L> 1) Melt it.
03:31:50 <GregorR-L> 2) Drink it.
03:31:53 <oklopol> it's a solid substance formed when water is made cold.
03:32:05 <oklopol> yuck, water
03:32:12 <bsmntbombdood> why are you eating it
03:32:13 <oklopol> ice, on the other hand <3
03:32:18 <oklopol> it's hot
03:33:17 * bsmntbombdood looks through a catalog for relays
03:35:36 <oklopol> aaaaaaaand i've got water in my lungs
03:35:45 <oklopol> god i'm great.
03:35:56 <bsmntbombdood> i'm looking at $3/each
03:36:04 <RodgerTheGreat> check out major suppliers like digikey
03:36:20 <RodgerTheGreat> oklopol: lol- good work there, cheif
03:38:28 <bsmntbombdood> what's a power relay?
03:38:34 <oklopol> hmm... i could make snow if i had a decent blender
03:38:41 <bsmntbombdood> because here's some for $.90/each
03:38:41 <oklopol> that'd be sweeeeeeeet
03:39:24 <pikhq> RodgerTheGreat: Looking way back at your discussion. . .
03:39:30 <pikhq> GNU C *does* have computed jumps.
03:40:08 <pikhq> __label__ foo, bar, baz;
03:40:20 <pikhq> Declaring those labels. . .
03:40:24 <pikhq> foo:
03:40:28 <pikhq> Defining the label. . .
03:40:29 <RodgerTheGreat> but the *elegance* man, the *elegance*!
03:40:40 <pikhq> __label__ array[3] = {foo, bar, baz};
03:40:46 <pikhq> There we go. An array of labels.
03:41:21 <pikhq> Err. Not quite. . .
03:41:48 <pikhq> GCC's documentation (section 5.3) describes it being different.
03:42:32 <bsmntbombdood> all these relays are expensive
03:42:59 <RodgerTheGreat> bsmntbombdood: it's a sad truth of electromechanical components- they's pricey.
03:43:30 <RodgerTheGreat> y'know, I once got in a huge argument as to wether or not BASIC had pointers
03:44:46 <RodgerTheGreat> my take is that since PEEK and POKE can manipulate memory directly, and VARPTR() can get the location of a variable, you have all the capabilities of pointers with different syntax and effectively weak-typed pointer/integer mutability
03:45:20 <pikhq> This assumes that your BASIC implementation has PEEK and POKE.
03:45:33 <RodgerTheGreat> peek(x) is effectively the same as *x in C
03:45:40 <RodgerTheGreat> yes, naturally
03:45:53 <RodgerTheGreat> the one I was using for my examples does, so it stands
03:45:54 <oklopol> <ignore> i cracked my ice! </ignore>
03:46:07 <pikhq> So, that doesn't work for BFBASIC. ;)
03:46:19 <RodgerTheGreat> which is too bad.
03:46:33 <RodgerTheGreat> if calamari was in here I'd suggest he use my ideas to make it happen. :)
03:47:20 <oklopol> uh, ice is pretty
03:47:22 <oklopol> <3
03:47:43 <RodgerTheGreat> in the end, the argument devolved into my opponent telling me that since BASIC doesn't have structs, my examples were meaningless, which I find to be poppycock
03:47:47 <GregorR-L> choosemyhat.com is bettar!
03:48:13 <pikhq> BASIC doesn't have structs *directly*.
03:48:26 <RodgerTheGreat> pikhq: my point exactly
03:48:27 <pikhq> However, using PEEK and POKE, you can simulate the effects.
03:48:40 <bsmntbombdood> what do structs have to do with pointers?
03:48:46 <RodgerTheGreat> capability is largely independent from syntax
03:48:48 <pikhq> Or just use a nice naming scheme for variables.
03:49:09 <RodgerTheGreat> bsmntbombdood: I guess he figured pointers aren't useful without structs?
03:49:29 <pikhq> Which is BS.
03:49:59 <pikhq> It's possible to simulate structs granted pointers. . .
03:50:05 <pikhq> Although it'll look horrid. ;)
03:50:27 <oklopol> a simple macro system will make that look ok
03:51:06 <pikhq> Y'mean the one BASIC doesn't have?
03:51:43 <RodgerTheGreat> most BASICs lack a preprocessor
03:51:50 <oklopol> well
03:51:55 <bsmntbombdood> you could run basic through cpp
03:52:02 <RodgerTheGreat> eesh.
03:52:19 <RodgerTheGreat> why would you do such a thing?
03:52:51 <oklopol> i mean, the struct thing is something which does not require any weird stuff, just a few simple calculations for different fields of the struct
03:53:06 <oklopol> what i mean by a macro system is it's not something the language can't handle trivially
03:53:23 <oklopol> because it could be done with a text substitution macro system
03:53:35 <oklopol> if that makes any sence, call me lucky.
03:53:42 <oklopol> i can't really see the screen
03:56:16 <oklopol> *sense
03:56:16 <RodgerTheGreat> oklopol: I understand what you mean- it's pretty much what underlies how C actually handles structs internally
03:56:16 <RodgerTheGreat> pointers + offsets substituted in for variable names
03:56:16 <oklopol> yaya, triv as a tree in a pole
03:56:16 <RodgerTheGreat> sounds pretty simple
03:56:16 <oklopol> i find that hilarious
03:56:16 <oklopol> i should sleep, prolyl
03:56:16 <oklopol> *prolly
03:56:16 <RodgerTheGreat> in my favorite BASIC, Cbaspad, it's fairly trivial to do string manipulations on your own source
03:56:16 <RodgerTheGreat> I ought to try that at some point. >:D
03:56:51 <oklopol> i've never really seen anyone use code manipulation done on plain source code
03:57:03 <oklopol> i mean, and archieving something by it
03:57:32 <oklopol> guess i have to admit i might have seen one but had no idea what i saw.
03:59:01 <RodgerTheGreat> most of the time, it's really hard to do.
04:00:32 <oklopol> yeah... if you really do something you couldn't have done by changing the _parsed_ source, and still manage to do something, you're pretty sick
04:00:41 <bsmntbombdood> i want to make this computer
04:00:42 <RodgerTheGreat> in Cbaspad, a program is loaded by line numbers and then initialized, executing stored instructions. Then, you can open the source itself as an input file, make modifications freely, and (using some tricky manipulations), get the program to reload the source without clearing variable contents and begin running again
04:01:06 <oklopol> and i can't imagine that being done but a few times, VERY carefullly planned for every bit of code where it's used
04:02:12 <RodgerTheGreat> I think I love Cbaspad because I understand it more completely than any other non-esolang, and I feel I've pushed it to it's limit more than anyone else who's used it.
04:02:20 * pikhq shuts down
04:03:09 <RodgerTheGreat> it's a very small, little-known language, which makes discoveries and demonstrations all the more special.
04:03:20 <oklopol> cooool
04:03:27 <oklopol> ice, yuum
04:04:26 <oklopol> oh, 6 am, i should wake ^
04:04:34 <oklopol> i might code a bit
04:04:47 <oklopol> haven't programmed anything in about a week :<
04:05:02 <oklopol> except for random bits of java and php
04:05:05 <oklopol> but like
04:05:11 <oklopol> i haven't coded oklotalk
04:05:12 <oklopol> :<
04:06:14 <bsmntbombdood> why should our computer even be binary?
04:06:26 <oklopol> cause it's the easist?
04:06:33 <oklopol> unary 8P
04:08:30 <GregorR-L> Nonary
04:08:35 <GregorR-L> 0 == infinity
04:09:06 <oklopol> i had this idea about infinitiary numbers the other day
04:09:09 <oklopol> err
04:09:13 <oklopol> today
04:09:15 <oklopol> :P
04:09:42 <oklopol> though the idea is so trivial i can't even say it with a straight face
04:12:24 <oklopol> "oh no, someone peed in my pants" xD family guy is so insightful
04:19:31 -!- pikhq has quit (Read error: 110 (Connection timed out)).
04:52:29 <bsmntbombdood> "Memory: thin metal plates, worked with fret saw;"
04:52:34 <bsmntbombdood> how does that work?
04:53:43 <bsmntbombdood> http://irb.cs.tu-berlin.de/~zuse/Konrad_Zuse/en/Rechner_Z2.html
05:10:53 -!- bsmntbombdood has quit (Remote closed the connection).
05:10:57 -!- bsmntbombdood has joined.
05:41:25 -!- oerjan has joined.
05:59:19 <bsmntbombdood> i think 1 bit of memory = 2 relays
06:00:36 -!- boily has joined.
06:03:42 <bsmntbombdood> no that doesn't wor
06:03:42 <bsmntbombdood> k
06:05:27 <bsmntbombdood> but this does
06:40:36 -!- boily has quit ("WeeChat 0.2.4").
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:17:14 -!- oerjan has quit ("leaving").
09:15:52 -!- ais523 has joined.
10:31:38 -!- GregorR-L has quit ("Leaving").
11:50:35 -!- ais523 has quit (Remote closed the connection).
11:54:24 -!- ais523 has joined.
12:00:24 -!- ais523 has quit ("looking for food").
12:09:30 -!- ais523 has joined.
12:30:29 <ais523> ~bf ,[.,]!test
12:30:48 <ais523> ~exec execfile('/bot/scripts/bf.py')
12:31:38 <ais523> ah, the bot isn't here, that's why it isn't responding
13:17:05 -!- jix has joined.
14:47:34 -!- cmeme has quit ("Client terminated by server").
14:47:56 -!- cmeme has joined.
14:48:57 -!- fizzie has quit (kubrick.freenode.net irc.freenode.net).
14:49:10 -!- fizzie has joined.
15:39:55 -!- calamari has joined.
15:58:03 -!- calamari has quit ("Leaving").
16:14:49 -!- jix has quit ("CommandQ").
16:54:56 -!- ais523 has quit ("bye").
17:00:31 -!- sebbu has joined.
17:36:34 -!- oerjan has joined.
18:22:38 <RodgerTheGreat> this is awesome: http://catb.org/esr/jargon/html/story-of-mel.html
19:40:43 -!- oerjan has quit ("leaving").
20:06:42 <bsmntbombdood> old
21:07:41 -!- Asztal has joined.
21:46:02 -!- poiuy_qwert has joined.
22:13:48 -!- poiuy_qwert has quit (Read error: 110 (Connection timed out)).
22:37:57 -!- c|p has joined.
22:53:11 -!- poiuy_qwert has joined.
23:22:52 -!- poiuy_qwert has quit (Read error: 110 (Connection timed out)).
23:25:53 -!- sebbu has quit ("@+").
23:28:13 -!- c|p has quit ("Leaving").
2007-06-09
01:02:09 -!- RainbowTrout has joined.
01:02:09 -!- RainbowTrout has quit (Client Quit).
01:05:08 -!- mangatiga has quit ("User pushed the X - because it's Xtra, baby").
02:02:01 -!- c|p has joined.
02:47:07 -!- Asztal has quit ("Chatzilla 0.9.77-rdmsoft [XULRunner 1.9a3pre/2007022508]").
03:22:39 -!- c|p has quit ("Leaving").
03:41:15 -!- GreaseMonkey has joined.
06:11:46 -!- oerjan has joined.
06:27:09 -!- GreaseMonkey has quit ("gonna go soon, byes").
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:24:33 -!- sebbu has joined.
09:15:12 -!- oerjan has quit ("leaving").
09:55:40 -!- sebbu2 has joined.
10:15:59 -!- sebbu has quit (Read error: 110 (Connection timed out)).
11:37:49 -!- jix has joined.
14:12:49 -!- c|p has joined.
14:44:17 -!- jix has quit (Read error: 104 (Connection reset by peer)).
14:53:06 -!- jix has joined.
15:18:46 -!- erider has quit ("I don't sleep because sleep is the cousin of death!").
15:23:51 -!- erider has joined.
16:03:11 <SimonRC> bsmntbombdood: indeed, very old
16:05:59 -!- c|p has quit ("Leaving").
16:24:02 <RodgerTheGreat> SimonRC: but that doesn't make it any less cool.
16:45:28 -!- jix has quit ("CommandQ").
16:51:26 * SimonRC wonders when the current set of bootstrapping actually started. Some time in the 70s he suspects. You can't design any but the smallest ICs without a computer too.
16:52:31 <RodgerTheGreat> well, it's certainly shit-tons harder to do without a computer
16:53:34 <RodgerTheGreat> I'd guess earlier than the 70s- that's just when minicomputers made computing reasonably affordable. Earlier than that, you still have some mainframes powerful enough to do compilation, bootstrapping and IC design
17:20:57 <SimonRC> I think that there were still some computers made mostly without computer help in the 1970s
17:21:55 <RodgerTheGreat> hm. true- most of the "big iron" of the day still relied mostly on discrete components
17:22:44 -!- jix__ has joined.
17:25:14 * RodgerTheGreat is listening to Apollo [While my 64...] by Rebb / Tm!C
17:43:42 -!- c|p has joined.
18:04:33 -!- oerjan has joined.
18:50:06 -!- jix__ has quit ("CommandQ").
19:06:34 -!- c|p has quit ("Leaving").
19:06:57 -!- c|p has joined.
20:32:21 -!- oerjan has quit ("leaving").
20:50:51 -!- Sgeo has joined.
21:57:21 -!- GregorR-L has joined.
22:30:06 -!- jix__ has joined.
22:42:41 <SimonRC> Why do none of us make stuff like this? http://forum.lolcode.com/viewtopic.php?id=30
22:44:24 -!- wooby has joined.
22:52:16 <SimonRC> hi
22:58:45 <bsmntbombdood> because .net is horrible?
23:00:43 -!- Sgeo has changed nick to Buser.
23:00:44 <c|p> hmm
23:00:46 <c|p> i have an idea
23:00:48 -!- Buser has changed nick to Sgeo.
23:00:49 <c|p> "esoterrism"
23:01:24 <c|p> as in: obscure terrorism
23:02:51 -!- wooby has quit (Success).
23:17:04 <SimonRC> Yeah, but don't have so much as an emacs mode.
23:40:40 -!- jix__ has quit ("CommandQ").
2007-06-10
00:34:54 -!- GregorR-L has quit ("Leaving").
00:43:58 -!- sebbu2 has quit ("@+").
02:21:21 -!- c|p has quit ("Leaving").
02:23:16 -!- RodgerTheGreat has quit.
02:25:47 -!- RodgerTheGreat has joined.
02:45:26 <bsmntbombdood> i got asked if i had kids today
02:45:30 <bsmntbombdood> it was funny
02:46:00 <RodgerTheGreat> what was the context of this
02:46:23 <bsmntbombdood> i was riding my bike past a part and a little kid asks
02:46:33 <bsmntbombdood> *park
02:49:33 <RodgerTheGreat> hunh
02:50:09 <RodgerTheGreat> that is a unusual question, but as Bill Cosby would say, "Kids say the darnedest things!"
02:51:57 <bsmntbombdood> yeah
04:02:52 -!- erider has quit ("I don't sleep because sleep is the cousin of death!").
06:42:39 -!- oerjan has joined.
07:14:07 -!- GreaseMonkey has joined.
07:32:35 -!- Sgeo has quit (Remote closed the connection).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:30:34 -!- sebbu has joined.
09:49:16 -!- sebbu2 has joined.
10:00:48 -!- oerjan has quit ("leaving").
10:14:41 -!- jix has joined.
10:16:11 <GreaseMonkey> ok, gonna get off now, gnight everyone
10:16:24 -!- sebbu has quit (Read error: 110 (Connection timed out)).
10:16:33 -!- GreaseMonkey has quit ("Hasta la Vista(R)").
10:29:51 -!- jix has quit ("CommandQ").
10:37:07 -!- jix has joined.
15:17:33 -!- jix has quit ("CommandQ").
16:26:58 <bsmntbombdood> I wonder if Mel of /The Story of Mel/ is still around
16:28:55 <RodgerTheGreat> if not, there are probably still some Real Programmers carrying on his proud tradition
16:33:16 <bsmntbombdood> there's not even any real computers around anymore
16:37:17 <RodgerTheGreat> not except when people build their own, anyway
16:37:28 <RodgerTheGreat> and not in the "order from newegg" sense
16:37:35 <bsmntbombdood> out of relays
16:37:57 <RodgerTheGreat> what most people do is "assembling" computers, not building them
16:41:48 * oklopol goes beep
16:41:52 <oklopol> for no reason
16:42:33 <RodgerTheGreat> fair enough
16:58:15 -!- c|p has joined.
17:02:54 -!- oerjan has joined.
17:07:37 <RodgerTheGreat> @who
17:07:42 <RodgerTheGreat> whoops
17:07:45 <RodgerTheGreat> wrong window
17:09:37 <bsmntbombdood> a likely story
17:09:40 <SimonRC> Mel is known to be "Mell Kaye"
17:09:54 <oerjan> @who? isn't that moo or something?
17:11:44 -!- bsmnt_bot has joined.
17:11:58 <SimonRC> it's not one of lambdabot's though lambdabot does take some @-commands
17:12:34 <oerjan> i vaguely recall moo commands began with @, like @create
17:13:37 <oerjan> incidentally i am pretty sure there was a lambdamoo
17:13:43 <SimonRC> heh
17:14:26 <oerjan> Ah yes, from wikipedia: It is the oldest and most active MOO today, with just under 3000 regular members.
17:15:04 -!- RodgerTheGreat has changed nick to PocketUniverse.
17:15:07 <SimonRC> no, lambdabot is to be found on #haskell, among other places
17:15:36 -!- PocketUniverse has changed nick to RodgerTheGreat.
17:16:05 <oerjan> i know what lambdabot is too
17:17:13 <oerjan> it has esoteric languages too, brainfuck and i think unlambda
17:17:57 <oerjan> maybe we could invite it here...
17:21:25 <bsmntbombdood> you'll make bsmnt_bot jealous
17:21:42 <oerjan> hmph, it seems not to work presently, otherwise you can /msg it
17:22:28 <oerjan> i suppose a bot with a functional haskell interpreter _would_ make our bots jealous
17:23:18 <bsmntbombdood> you can always fork an interpreter
17:25:03 <oerjan> it has an interesting approach to sandboxing, using Haskell's type system to avoid non-pure expressions
17:26:32 <oerjan> that requires a bit more than just invoking an interpreter directly on the code
17:28:30 <oerjan> (actually it invokes a compiler and a dynamical linker. apparently all modern haskell implementations are compiler-based)
17:29:31 <oerjan> although it does run it in a forked process with ulimits, so the sandboxing is not totally type-based.
17:30:31 <oerjan> (I read about this just the other day, i think it was in the haskell-cafe archive)
18:25:08 -!- cmeme has quit (Remote closed the connection).
18:25:30 -!- cmeme has joined.
18:59:27 -!- jix__ has joined.
19:00:04 <bsmntbombdood> the world needs a better S
19:00:11 <bsmntbombdood> *OS
19:04:25 <bsmntbombdood> with fine grained security and a better scripting language than C
19:10:39 <bsmntbombdood> fine grained enough to run arbitrary code without a second thought
19:11:17 <RodgerTheGreat> that's pretty much the dream
19:12:03 <RodgerTheGreat> it might be possible to make that kind of security more feasible through the use of "secure" trusted compilers that build code that can be considered foolproof
19:12:24 <bsmntbombdood> that's not good enough
19:12:33 <bsmntbombdood> the security needs to come from the kernel
19:13:31 <RodgerTheGreat> if compilation became a core service, (which it should if *all* non-kernel software was compiled on the system before execution) it would make perfect sense for it to be part of the kernel
19:13:50 <RodgerTheGreat> do away with binary executables and you solve a lot of potential issues before they can start.
19:13:56 <bsmntbombdood> when i said arbitrary code, i meant arbitrary machine code
19:14:16 <bsmntbombdood> not everyone wants to give away their source
19:14:25 <RodgerTheGreat> in a non virtualized environment, arbitrary machinecode is inherently insecure.
19:14:55 <RodgerTheGreat> you could avoid having to distribute source by using intermediary interpreted bytecode, and effectively do the same thing as virtualization
19:15:54 <bsmntbombdood> you can execute arbitrary machine code safely
19:16:23 <bsmntbombdood> because anything dangerous has to go through the kernel
19:20:41 <bsmntbombdood> i think the hard part would be managing the tons of permissions data you need to keep track of in an intelligent way
19:23:16 <bsmntbombdood> and the methods programs use to modify it
19:27:44 <SimonRC> How about requiring compilers to embed safety proofs into the compiled code?
19:28:02 <bsmntbombdood> how can you prove safety?
19:28:02 <SimonRC> These would have no run-time penalty, as they would be executed by the loader.
19:28:19 <SimonRC> The compiler knows more about the program that is represented in the machine code.
19:29:03 <RodgerTheGreat> exactly
19:29:08 <SimonRC> It could know that there aren't any generalised pointers, just refernces and array iterators, but that is hard to tell from the object code
19:29:52 <SimonRC> Since it has access to a more abstract representation of the program (i.e. the source code), it has a good idea of all the safety invariants that hold.
19:31:06 <SimonRC> It knows what things are always true, that are much easier to check than discover for object code
19:31:10 <SimonRC> A Java compiler could annotate the code to say where on the stack was pointers and where was references.
19:31:15 <oerjan> especially if it is written in a language that actually has support for safety invariants
19:31:28 <SimonRC> (then show that there is no generalised pointer arithmatic)
19:31:36 <SimonRC> oerjan: e.g. Java
19:31:44 <SimonRC> Or just about anything modern
19:32:14 <SimonRC> You could also prove things like functions not doing ay IO
19:32:23 <SimonRC> *cough* Haskell *cough*
19:32:29 <bsmntbombdood> how can you prove something like that?
19:33:23 <SimonRC> in Haskell, if it doesn't have an IO return type, and unsafePerformIO never gets near it, the function *does* *no* *IO*.
19:33:49 <oerjan> which as i mentioned was how LambdaBot does part of its sandboxing
19:33:51 <RodgerTheGreat> that's a pretty good mechanism- I'm going to have to explore that language more.
19:33:53 <bsmntbombdood> and how can you prove that given only the machine code?
19:34:02 <SimonRC> not easily
19:34:11 <RodgerTheGreat> bsmntbombdood: in general, you don't
19:34:18 <bsmntbombdood> right
19:34:20 <SimonRC> that is why the *compiler* creates the proof, and the loader checks it
19:34:22 <oerjan> you must construct the proof simultaneously with the machine code
19:34:23 <SimonRC> I did say
19:34:46 <bsmntbombdood> how do you verify a proof is what i meant
19:35:35 <SimonRC> well, to do file IO, you would have to do an OS call or fiddle with the disk devices directly
19:35:47 <oerjan> http://www.cs.cornell.edu/talc/
19:35:59 <SimonRC> therefore, you can show that you do no OS calls, and do not write to certain memory addresses
19:36:08 <bsmntbombdood> i think the right approch is to check the permissions related to a system call whenever that call is used
19:36:18 <SimonRC> slow
19:36:38 <SimonRC> even with a Synthesis-style OS it would be slow
19:36:54 <SimonRC> (It gets only a little bit trickier if you add HoF.)
19:37:22 <bsmntbombdood> i don't think it would be much slower
19:38:08 <SimonRC> depends on your permissions scheme
19:38:37 <oerjan> when to check would probably depend on how often the code is going to run
19:39:10 <oerjan> if it is going to run many times it would be better to have a once-and-for-all proof
19:39:29 <bsmntbombdood> i don't think you can have a proof like that
19:40:34 -!- kushalhada has joined.
19:40:49 -!- kushalhada has left (?).
19:42:13 <oerjan> what part of this do you think is unsolvable?
19:43:02 <bsmntbombdood> i have no idea how you would construct a proof that could be verified
19:43:56 <oerjan> a proof by definition is verifiable
19:44:11 <oerjan> otherwise it is not a complete proof
19:45:01 <bsmntbombdood> you could analize the machine code at loadtime
19:45:56 <bsmntbombdood> that wouldn't work even with simple stuff like adding two numbers to get the syscall number
19:45:58 <oerjan> the machine code comes with the proof bundled, that is what proof-carrying code means
19:46:23 <bsmntbombdood> how does the proof work
19:47:21 <oerjan> it is just a proof in a machine readable format, that somehow proves that your code satisfies the system's safety protocol
19:47:40 <bsmntbombdood> uh huh
19:47:54 <RodgerTheGreat> it might be equivalent to digital signing or something
19:48:16 <RodgerTheGreat> or embedded into the functioning of the executable format somehow
19:49:03 <bsmntbombdood> i and have no idea how to construct a proof like that
19:49:18 <bsmntbombdood> and i highly doubt it's possible
19:49:49 <oerjan> well there are many people working on machine checkable proofs of program properties.
19:50:32 <oerjan> one of the teams is working on creating a certified compiler for Standard ML. it would be the first "real" language with such a compiler.
19:50:59 <bsmntbombdood> you can do it with a trusted compiler, sure
19:52:15 <oerjan> apparently they go through Typed Assembly Language, which is asm annotated with types proving the properties of the program
19:53:03 <oerjan> the Curry-Howard isomorphism which says that types and theorems are basically the same thing is important in much of this kind of work
19:53:35 <oerjan> so in a sense Java's types are a simpler version of the same
19:53:48 <SimonRC> bsmntbombdood: but you don't need to trust the compiler. If the compiler can explain why the code is safe, and the OS can check it, then it doesn't matter if the executable is a string of random bytes, it must be safe.
19:54:10 <bsmntbombdood> SimonRC: "if"
19:58:09 <oerjan> it's not "if", it's "when", and i believe the answer is "within five years"
19:58:10 -!- sebbu has joined.
19:58:24 <oerjan> although not for an entire operating system i guess
19:58:33 <SimonRC> bah, 20 years at least
19:59:00 <RodgerTheGreat> but if the proof is part of the executable, the compiler only has to do it once, right? <:D
19:59:37 <oerjan> right
19:59:38 <bsmntbombdood> I don't think you can construct a proof like that
19:59:41 <SimonRC> Although MS's Singularity experiment has almost everything written in "safe C#".
20:00:13 <SimonRC> bsmntbombdood: depends on the language you are compiling
20:00:17 <bsmntbombdood> checking permissions at runtime allows binarys to ignore security if they want to
20:00:50 <RodgerTheGreat> how the hell can anyone honestly use [C-derivative] and "safe" in the same sentence without negation operators or other complex syntactic shenanigans?
20:00:51 <SimonRC> I mean, a C compiler would have more difficulty than a Haskell compiler in checking safety.
20:01:06 <SimonRC> RodgerTheGreat: erm C# is not that bad on that angle
20:01:21 <SimonRC> you have to mark all "unsafe" code explicitly
20:01:46 <SimonRC> And you can write huge swathes of code with no "unsafe" blocks at all
20:01:58 <SimonRC> e.g. most of Singularity
20:02:13 <RodgerTheGreat> eugh
20:02:28 <SimonRC> (BTW, I really suggest that you check out the Singularity video on Channel 9 at MSDN.)
20:02:36 <SimonRC> C# is better than Java
20:02:46 <RodgerTheGreat> In my book, when the wheel sucks, build a new one, don't just superglue on retreads.
20:02:54 <SimonRC> by which I mean, I like programming in it better
20:03:25 <SimonRC> RodgerTheGreat: they have thrown away almost everything except the colour (i.e. the syntax)
20:03:33 <SimonRC> although the syntax does suck a bit
20:03:42 <SimonRC> but it's not too bad for an imperative language
20:03:50 <RodgerTheGreat> I guess
20:04:09 <RodgerTheGreat> I still feel I could do better (which is not an entirely idle statement)
20:04:58 <SimonRC> "You need to be free to point the gun wherever you want, but most of the time you *know* you don't want it anywhere near your foot and the compiler should help you out with that."
20:05:11 <RodgerTheGreat> heh
20:05:58 <RodgerTheGreat> well, that saves you from some mistakes, but doesn't do anything about the two most dangerous types of coders: malicious hackers and people with no idea what they're doing.
20:06:03 <SimonRC> .NET languages are like those lego people: they claim to be different, bu there is a haunting similarity between them.
20:06:10 <RodgerTheGreat> lol
20:06:11 <SimonRC> RodgerTheGreat: heh
20:06:49 <SimonRC> There is only one real functional .NET language, and it is not exactly popular.
20:06:55 <SimonRC> F#
20:07:10 <RodgerTheGreat> I've never heard of F#
20:07:36 <oerjan> it is much based on Ocaml, i hear
20:11:52 <SimonRC> yes]
20:11:59 <SimonRC> doesn't look too bad to me
20:12:24 <SimonRC> Although ISTR it has the dreadful syntax for types that OCaml has.
20:13:11 <SimonRC> I really don't know how I can hate it so much.
20:13:59 <oerjan> Ocaml is not known for having a pretty default syntax, unlike Haskell
20:14:22 <SimonRC> At least it allows the C# syntax for types.
20:14:39 <SimonRC> but really, *postfix* type constructors
20:14:43 <oerjan> i understand F# has an alternative syntax
20:14:51 <oerjan> that is inheritance from ML
20:15:27 <SimonRC> And an infix type operator (tuple) that neither left nor right associates, but does magic instead, with parentheses being significant?
20:15:39 -!- calamari has joined.
20:15:44 <oerjan> that is also from ML i think
20:16:08 <SimonRC> yes, I know
20:16:16 <SimonRC> I hate ML's type syntax
20:16:53 <SimonRC> And then there's the need for explicit indication of recursion in "let"s.
20:16:58 <RodgerTheGreat> hey, calamari
20:17:13 <RodgerTheGreat> there's an idea I wanted to mention to you a few days ago-
20:17:18 -!- sebbu2 has quit (Read error: 110 (Connection timed out)).
20:17:22 <SimonRC> FFS people, it is a *functional* language! The compiler should be worrying about that, not the programmer.
20:17:27 * SimonRC stops ranting
20:17:31 <calamari> hi RodgerTheGreat
20:17:36 <calamari> shoot
20:17:59 <oerjan> actually without rec you can use the old definition on the right side
20:18:05 <oerjan> like with scheme
20:18:10 <SimonRC> yuk
20:18:14 <RodgerTheGreat> we were discussing how the use of peek, poke and varptr effectively give BASIC pointers- do you think it would be possible to incorporate this type of functionality into BFBASIC?
20:18:59 <calamari> shouldn't be too hard
20:18:59 <RodgerTheGreat> obviously, you couldn't use it for accessing arbitrary memory, but you could try to have the compiler map peeks and pokes within memory "owned" by a program
20:19:18 <calamari> right
20:19:31 <oerjan> it _might_ be possible to access arbitrary memory if you have a fixed memory layout
20:19:46 <oerjan> er,
20:20:00 <oerjan> i guess that's what you meant
20:20:09 <calamari> oerjan: I don't think he's referring to interpreter bugs
20:20:17 <RodgerTheGreat> lol
20:20:23 <oerjan> not outside the program
20:20:26 <calamari> right
20:20:31 <calamari> I understood exactly what you meant
20:20:48 <RodgerTheGreat> excellent- we're on the same wavelength
20:20:57 <oerjan> but then with protected memory you couldn't do that anyway
20:21:29 <RodgerTheGreat> a DIM statement is very similar to a memory allocation in lower-level languages
20:23:41 <calamari> RodgerTheGreat: here is my suggestion for this...
20:24:02 <calamari> there is a function called arrows that translates @vars into >>> <<<'s
20:24:12 <RodgerTheGreat> ok
20:24:14 <calamari> for example @myvar might be location 123
20:24:38 <calamari> you could change that function so that it would treat something like @234 specially
20:24:53 <RodgerTheGreat> so, you're suggesting extending that function to handle peek's "dereferences"?
20:24:59 <RodgerTheGreat> ah
20:25:01 <RodgerTheGreat> hm
20:25:01 <calamari> then @567 in the code would go to memory location 567
20:25:36 <calamari> then you can use that to write your peek and poke routines
20:26:25 <RodgerTheGreat> that could work. Now that I'm thinking of this in terms of translation into BF, though, I forsee this could generate some really nasty compiled code
20:26:31 <calamari> I don't remember what varptr is.. looking that up
20:26:41 <calamari> well, yeah
20:26:43 <RodgerTheGreat> varptr returns the memory address of a given variable
20:26:48 <calamari> but that's the case anyways .. hehe
20:26:53 <calamari> oh
20:27:00 <calamari> that should be easy to implement as well
20:27:11 <RodgerTheGreat> it's how you access a variable via peek and poke so you don't have to just guess wildly. :)
20:27:18 <calamari> makes sense
20:27:29 <calamari> do you have the source code to bfbasic ?
20:27:34 <RodgerTheGreat> I think so
20:27:39 <calamari> it is available via cvs
20:27:42 <calamari> okay great
20:27:45 * RodgerTheGreat rifles through his drive
20:28:01 <calamari> I think the lastest is 1.50 rc 2
20:28:05 <calamari> latest
20:28:06 <RodgerTheGreat> effectively, if we compare BASIC to C, varptr()
20:28:09 <RodgerTheGreat> erk
20:28:24 <RodgerTheGreat> varptr(x) is equivalent to &x
20:28:36 <calamari> I would start off by understanding the arrows() function
20:28:41 <RodgerTheGreat> peek(x) is equivalent to *x
20:29:02 <calamari> =*x
20:29:22 <calamari> poke is *x=
20:29:22 <RodgerTheGreat> and poke x,a is equivalent to *x=a
20:29:26 <RodgerTheGreat> yeah
20:29:47 <calamari> anyhow.. if you have any questions about the source code, let me know
20:30:02 <RodgerTheGreat> ah, I found arrows
20:30:07 <calamari> if you don't have the cvs version I can dig it up for you
20:30:11 <RodgerTheGreat> I'll play around with this for a while
20:30:16 <calamari> okay :)
20:30:25 <RodgerTheGreat> I have v1.30
20:31:26 <calamari> that's old
20:31:34 <RodgerTheGreat> oh.
20:32:24 <RodgerTheGreat> well, that's the version you have in a .ZIP on your site- that's probably where I got it.
20:32:36 <calamari> RodgerTheGreat: http://sourceforge.net/cvs/?group_id=59653
20:34:06 <RodgerTheGreat> oh, dang- you're at 1.41
20:34:34 <calamari> actually, src contains the latest
20:34:37 <calamari> 1.50rc2
20:35:16 <calamari> src/ I mean
20:35:30 <calamari> afk..
20:35:39 <RodgerTheGreat> alright, got it
20:35:50 <RodgerTheGreat> what's new since 1.3?
20:37:14 <RodgerTheGreat> woah, select case?
20:37:34 <calamari> I didn't implement that :)
20:38:34 <RodgerTheGreat> and I must say that AlgebraicExpression.java frightens me a bit
20:39:10 <oerjan> wow, it all makes sense now: http://freefall.purrsia.com/ff200/fv00125.htm
20:39:31 <RodgerTheGreat> lol
20:39:43 <RodgerTheGreat> everyone loves a calvin and hobbes reference
20:43:07 * SimonRC reads about the significant parentheses in F#
20:43:18 <SimonRC> dear god please make it stop
20:43:58 <SimonRC> the type "int -> int" is not the same as "(int -> int)"
20:44:28 <oerjan> wow
20:45:28 <SimonRC> neither is "type c = C of int * int" the same as "type c = C of (int * int)", though that was got from ML
20:45:41 * oerjan wonders what SimonRC thinks about python's relation syntax
20:49:29 <SimonRC> what's that like?
20:50:32 <oerjan> basically, 1 <= x < y < 3 means the same as in mathematics
20:50:51 <SimonRC> ah yes
20:50:58 <SimonRC> Perl6 is gonna have that too
20:51:15 <SimonRC> That is not *too* bad
20:52:02 <SimonRC> Perl 6 is also going to have the amazing | and & operators, which allow things like "a&b=c|d", meaning "(a=c||a=d)&&(b=c||b=d)".
20:52:15 <SimonRC> but they have some reasonably clean semantics behind that
20:52:26 <bsmntbombdood> that's pretty ugly
20:52:52 <SimonRC> it's Perl
20:53:01 <SimonRC> or possibly it means "(a=c&&b=c)||(a=d&&b=d)". I forget
20:53:35 <bsmntbombdood> is & and | not bitwise and and or?
20:54:01 <oerjan> icon has | like that doesn't it
20:54:23 <SimonRC> icon does it in a good way, similar to the List monad in Haskell.
20:54:31 <SimonRC> bsmntbombdood: not in Perl 6
20:54:48 <SimonRC> bitwise ones have ? prepended
20:55:27 <oerjan> so Perl 6 will not be backwards compatible?
20:55:27 <SimonRC> or is that numeric ones? In which case the bitwise ones have + before them, and the character ones I forget about
20:55:31 <SimonRC> nope
20:55:46 <SimonRC> some very simple things will stay
20:56:19 <oerjan> numeric?
21:00:22 <SimonRC> huh?
21:00:54 <oerjan> how is numeric &| different from bitwise?
21:01:18 <bsmntbombdood> ints versus strings
21:01:19 <SimonRC> dunno
21:10:09 -!- calamari has quit ("Leaving").
21:41:18 -!- jix__ has quit ("CommandQ").
22:30:39 -!- ihope has joined.
23:32:10 -!- sebbu has quit ("@+").
23:54:17 -!- davidmc has joined.
23:55:57 -!- davidmc has changed nick to xTarget.
2007-06-11
00:15:15 -!- xTarget has quit ("Chatzilla 0.9.77 [Firefox 1.5.0.12/0000000000]").
00:16:34 -!- bsmnt_bot has quit (Read error: 131 (Connection reset by peer)).
00:17:37 -!- bsmntbombdood has quit (Read error: 104 (Connection reset by peer)).
00:18:03 -!- bsmntbom1dood has joined.
00:18:23 -!- bsmntbom1dood has changed nick to bsmntbombdood.
00:33:19 -!- ihope_ has joined.
00:54:28 -!- ihope has quit (Read error: 110 (Connection timed out)).
02:04:35 -!- c|p has quit ("Leaving").
02:24:33 -!- helios24 has quit (Read error: 110 (Connection timed out)).
02:43:14 -!- ihope__ has joined.
02:43:21 -!- ihope__ has changed nick to ihope.
02:51:14 -!- ihope_ has quit (Read error: 60 (Operation timed out)).
03:58:17 -!- ihope has quit (Read error: 60 (Operation timed out)).
04:18:00 -!- helios24 has joined.
04:23:52 <bsmntbombdood> one egg isn't good enough
04:23:57 <bsmntbombdood> oops
04:24:21 <oerjan> unless it's faberge
04:26:04 <bsmntbombdood> meh, those are pretty ugly
04:31:43 <oerjan> but, you could sell it and have ordinary eggs for the rest of your life :)
04:31:53 <bsmntbombdood> that's true
05:17:17 -!- RodgerTheGreat has quit.
05:29:06 -!- oerjan has quit ("leaving").
05:54:46 -!- calamari has joined.
06:08:17 -!- calamari has quit ("Leaving").
07:10:52 -!- GreaseMonkey has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
09:45:19 -!- GregorR has quit (Remote closed the connection).
09:46:26 -!- GregorR has joined.
10:51:52 <GreaseMonkey> gonna sleep now, gnight
10:52:28 <GreaseMonkey> p.s. got any diet cherry vanilla orange grape lemon lime mint roast chicken mayonnaise and cola dr. pepper?
10:53:07 -!- GreaseMonkey has quit ("Hasta la Vista(R)").
12:20:46 -!- ihope__ has joined.
12:20:55 -!- ihope__ has changed nick to ihope.
14:12:40 -!- jix__ has joined.
14:25:18 -!- ais523 has joined.
15:04:36 -!- jix__ has quit (Read error: 110 (Connection timed out)).
15:04:53 -!- jix__ has joined.
15:31:47 -!- RodgerTheGreat has joined.
16:20:33 -!- crathman has joined.
16:37:43 -!- sebbu has joined.
16:56:31 -!- ais523 has quit ("Coming up to 16:00 UTC").
18:14:37 <SimonRC> hehe: http://www.hankstruckpictures.com/df_god.htm
18:48:17 -!- ehird` has joined.
19:02:23 <ihope> "GOD" should be a trademark.
19:02:45 <RodgerTheGreat> I like it
19:14:12 <oklopol> this is probably from this channel, but what is it? http://forum.lolcode.com/viewtopic.php?id=30
19:14:14 <oklopol> i mean
19:14:27 <oklopol> is this an interpreter for lc at work?
19:14:39 <oklopol> and why's it say visual studio
19:14:42 <oklopol> :\
19:17:34 <ihope> Why is LOLCODE so popular all of a sudden?
19:18:29 <ihope> I guess people who have seen esolangs before don't tend to spread it like wildfire.
19:18:35 <oklopol> yeah
19:19:01 <oklopol> my friend has never heard of _brainfuck or intercal_, and he knows lolcode
19:20:13 <RodgerTheGreat> it seems like everyone I've ever talked to in CS has heard of whitespace, but very few know of BF and the other big esolangs
19:20:40 <ihope> We should try to get all these other esolangs spreading like that.
19:21:55 <RodgerTheGreat> the problem with BF is that it isn't as "pop-art-crazy-cool" as whitespace, and the real name is offensive enough to turn off other people
19:22:17 <ihope> Pop-art-crazy-cool?
19:23:18 <RodgerTheGreat> like, with immediate novelty and strangeness, but not in a very deep or meaningful way
19:23:29 <RodgerTheGreat> "Pop-art-crazy-cool" seemed to summarize that
19:24:31 <RodgerTheGreat> let's face it- whitespace is a far less innovative or important esolang than INTERCAL, malbolge, BF, Befunge, etc
19:37:32 <ihope> Gimmick language.
19:38:25 <lament> BF and Whitespace are pop-culture.
19:38:52 <lament> brainfuck gets mentioned very often in other Freenode channels.
19:39:36 <lament> this happens with everything: Everybody knows Beethoven wrote Ninth Symphony and the Moonlight Sonata, but few know any other works.
19:40:03 <ihope> And some of his others are greater?
19:40:04 <lament> (hint: if he wrote the ninth symphony, he probably also wrote at least 8 others!)
19:40:32 <lament> i'm not really qualified to judge
19:40:34 <ihope> Heinz's 57th!
19:40:39 <lament> he certainly has greater stuff than "Fur Elise"
19:40:43 <lament> which is also very famous
19:41:29 <bsmntbombdood> spread P'' instead of brainfuck then
19:41:51 <lament> there're many characteristics that aid popularity
19:42:11 <lament> and quality and innovation are not the important ones
19:42:28 <lament> (another example: real-world celebrities)
19:48:53 <RodgerTheGreat> I think BF spreads pretty easily because it's a combination of trendiness, simplicity (you can learn it in 5 minutes, even with no esolang exposure) and the profusion of cool things made with it
19:49:21 <RodgerTheGreat> pi calculators, DeCSS, LostKingdom, endless spinoffs, etc, etc
19:52:11 <bsmntbombdood> too bad something cooler isn't the most popular esolang
19:53:12 <RodgerTheGreat> BF is better than whitespace, by a lot
19:55:21 <lament> i think BF spreads because of the name and the syntax.
19:55:29 <lament> (syntax - as in "how programs look like")
19:55:53 <lament> but mostly the name.
19:56:50 <RodgerTheGreat> "hee hee we're saying a bad word hee hee"
19:57:32 <RodgerTheGreat> I found myself liking it because it's a very clean, clear-cut, elegant language. Some of the more interesting languages get really hairy and overly complex
19:57:49 <RodgerTheGreat> I'm also a big fan of dupdog and /// for essentially that reason
19:58:49 -!- sebbu2 has joined.
19:59:23 <RodgerTheGreat> neither of which, however, are at all likely to be TC. <:/
20:17:53 -!- sebbu has quit (Read error: 110 (Connection timed out)).
20:32:13 -!- ihope__ has joined.
20:40:24 -!- oerjan has joined.
20:45:03 -!- jix__ has changed nick to jix.
20:46:24 <oerjan> what, you mean Beethoven's Fifth isn't just as well-known?
20:46:25 -!- c|p has joined.
20:47:15 -!- ihope has quit (Read error: 110 (Connection timed out)).
21:17:10 -!- ehird` has quit ("Pong timeout").
21:22:15 <SimonRC> "<ihope> Why is LOLCODE so popular all of a sudden?" -- LOLCODE is popular because it hit Digg and Reddit on the same day. Whitespace (I know the creator of that) did hit the front page of Slashdot, but that was back in 2003, which is the early 19th centuary in Internet Years, and it didn't hook onto an existing craze.
21:23:02 <lament> i think whitespace might have been on /. more than once
21:24:11 <SimonRC> it was first on AFD 2003
21:25:39 <SimonRC> amazingly, LOLcode doesn;t seem to have been mentionned on slashdot!
21:28:40 <c|p> o:
21:29:53 <oklopol> my eyes are singing
21:30:37 <oklopol> hmph, our bot was banned on #tietovisa (finnish trivia channel), apparently it owned too mcuh
21:33:54 <SimonRC> "singing"?
21:34:56 <oklopol> okay, if you don't understand something i say, it's a joke, or it means absolutely nothing
21:35:09 <oklopol> this was the latter
21:35:12 <oklopol> i think
21:35:32 <oklopol> you know how you sometimes just feel like saying stuff
21:35:38 <oklopol> and wonder what the fuck you meant
21:35:39 <SimonRC> hmph
21:35:48 <SimonRC> are you smoking something?
21:35:58 <oklopol> no no, but i _am_ coding java
21:36:02 <oklopol> i guess that counts
21:36:04 <SimonRC> ouch
21:36:33 <oklopol> i have to convert a file containing a hashmap to a file where the contents are in ascii form
21:37:00 <oklopol> pretty tough!
21:39:56 <oklopol> i think it's very clever this task requires about 4 object wraps, layers make me feel safe
21:40:33 <oklopol> "about 4"==3, but that didn't sound that much so i filibustered it up
21:41:45 <oklopol> well okay, 2, but its still needless!
21:43:20 <oerjan> interesting discussion at the haskell-cafe, apparently "Haskell" is from the hebrew for intellect.
21:44:26 <oerjan> i can just believe that :)
21:45:11 <SimonRC> I thought "Haskell" was named after Haskell B. Curry/
21:45:12 <SimonRC> ?
21:45:21 <oerjan> sure it is
21:45:46 <oerjan> and the name seems to come from hebrew
21:46:13 <SimonRC> ok
21:46:14 <oerjan> but it is an appropriate coincidence
22:01:11 -!- jix has quit ("CommandQ").
22:05:49 <oklopol> okay, i can't do this, unchecked conversion in code i've pasted from sun's pages.
22:06:02 <oklopol> because of generics
22:06:22 <oklopol> apparently i cannot convert an Object into a HashMap
22:06:31 <oklopol> very feasible
22:06:43 <oklopol> java is pretty great
22:06:56 <oerjan> hm...
22:07:19 <oklopol> http://forum.java.sun.com/thread.jspa?threadID=707244&tstart=30
22:07:22 <oerjan> what about (HashMap<...>)(HashMap)(whatever)
22:07:24 <oklopol> this is my problem
22:07:31 <oklopol> except i can't get either to work
22:07:38 <oklopol> not the abstract, not the typed.
22:07:55 <oklopol> i mean, conversion
22:08:13 <oklopol> hmm
22:08:24 <oklopol> i'm pretty sure i hear coffee calling me
22:08:25 <oklopol> ->
22:11:18 <oklopol> oh my god i'm pro, it compiled all along, it was just a warning.
22:11:31 <oklopol> why check when you can debug for hours?
22:12:13 <SimonRC> heh
22:12:15 <oerjan> that page you linked has something about @SuppressWarnings("unchecked")
22:12:19 <SimonRC> why does that make you a "pro"?
22:12:43 <oklopol> it makes me pro in a sarcastic way
22:13:01 <SimonRC> ah, ok
22:13:08 <SimonRC> that totally didn;t come across
22:13:18 <oklopol> maybe :)
22:13:23 <oklopol> i'm feeling a bit goofy
22:14:21 <oerjan> vacation?
22:14:31 <oklopol> perhaps
22:16:49 <oklopol> it's funny, i always thought i was the weirder of me and my gf, and she's going to be an out-patient after summer :P
22:16:53 <oklopol> life's funny like that
22:17:04 <oklopol> whoops, two funnies
22:17:09 <oklopol> i guess that's a bit too funny
22:17:56 <oerjan> funny you should say that
22:19:11 <lament> i think she's weirder, for choosing a weird boyfriend like that
22:21:38 <oerjan> yeah, oklopol, you should be wary of people who are _that_ weird. might be dangerous :)
22:23:05 <oerjan> with insincere apologies to Groucho Marx
22:24:55 <oklopol> i wish i had time to learn these 7995 random questions and their answers
22:27:30 <SimonRC> oklopol: an out-patient of where?
22:28:20 <oklopol> i guess it's kinda like a mad house
22:28:27 <oklopol> just sounds pretty harsh
22:28:29 * oerjan tried to google that and came up with "The Frequency of Use of the Interrogative Formula est-ce que"
22:31:09 <oklopol> not really out-patient... in-patient \o/
22:31:31 <oklopol> if that's the right term
22:32:23 <oklopol> perhaps completely isolated
22:32:25 <oklopol> dunno yet
22:33:01 <oklopol> hmm, i wonder why i have to tell everything on the channel that happens to be open when it pops to mind
22:33:27 <oklopol> gotta write my artixxels ->
22:37:08 <RodgerTheGreat> hey, if anybody wants to try a little IRC-based mud prototype I'm working on, just type "/msg PocketUniverse @join"
22:37:36 <lament> is that a universe in your pocket, or are you just happy to see me?
22:38:23 <RodgerTheGreat> lol
22:39:35 <oklopol> can you do anything elsez?
22:39:57 <RodgerTheGreat> not much yet, but it'll eventually become a Hunt-The-Wumpus game
22:40:10 <lament> that's not a mud!
22:40:42 <RodgerTheGreat> ok, it's a massively multiplayer online wumpus hunt. MMOWH.
22:41:38 <lament> hunting the wumpus is very closed-ended.
22:41:49 <RodgerTheGreat> not necessarily
22:42:09 <RodgerTheGreat> and it's far from straightforward if other people can "accidentally" kill you with magic arrows
22:43:20 <SimonRC> oh that will be fun
22:43:32 <RodgerTheGreat> indeed
23:01:35 -!- pikhq has joined.
23:05:18 <SimonRC> BTW people, room 13 is broken
23:05:24 <SimonRC> in a bizarre way
23:05:29 <RodgerTheGreat> heheh
23:09:19 <oklopol> how?
23:09:36 <RodgerTheGreat> a typo when I entered the map data
23:09:57 <RodgerTheGreat> it ends up being several one-way tunnels
23:10:00 <oklopol> i can't decipher the map, 20 and 13 can't ba put next to each other imo :\
23:10:06 <oklopol> *be
23:10:51 <oklopol> okay, actually trivial to prove that impossible
23:11:59 <SimonRC> oklopol: it;s mangled
23:12:10 <SimonRC> RodgerTheGreat mixed up 13 and 15
23:12:21 <SimonRC> notice the missing backward passages in some places
23:12:56 <SimonRC> 15 should be next to 16, 6, and 14
23:13:05 <SimonRC> 13 should be next to 14, 12, and 20
23:13:12 <SimonRC> then the numbering is simple
23:13:32 <oklopol> okay... i wish i could've seen that from listing the passages.
23:13:39 <oklopol> ah
23:13:50 <oklopol> indeed, missing backwards passages
23:14:02 <oklopol> then it's izzzzzi
23:15:24 <RodgerTheGreat> yep. *just* complicated that most people want a map to keep their bearings, not so complicated you constantly get lost
23:15:34 <RodgerTheGreat> *just complicated enough
23:17:07 <SimonRC> oklopol: I figured it out
23:17:18 <oklopol> the map?
23:17:22 <SimonRC> yeah
23:17:33 <oklopol> in your head?
23:17:37 <oklopol> or paper?
23:17:37 <SimonRC> on paper
23:17:46 -!- c|p has quit ("Leaving").
23:17:50 <SimonRC> HTW is traditionally on a dodecahedron
23:17:51 <oklopol> okay, i'm pretty sure i could do that if i had paper
23:18:17 <SimonRC> I suspected that it was labeld siprally, and following you around for a bit showed that it was, except for the glitch
23:18:19 <oklopol> with a text editor it kinda sux
23:18:33 <SimonRC> ah, ok
23:19:06 <oerjan> er, with 20 rooms shouldn't it be an icosahedron?
23:19:08 <oklopol> supral?
23:19:40 <oklopol> hmm, has someone done a 3 (or more) D minesweeper?
23:19:46 <oklopol> that might be kinda awesome
23:19:52 <SimonRC> the dodecahedron and the icosahedron are duals
23:19:59 <oerjan> i know
23:20:10 <oklopol> and you could have like a character to bounce around with
23:20:28 <oerjan> i just thought it made more sense if rooms were surfaces
23:20:31 <oklopol> it could break a block and walk on any wall
23:20:54 <oklopol> and sing any song
23:21:05 <oklopol> and dial any phone
23:21:12 <oerjan> oklopol: STOP SMOKING THAT
23:21:15 <oklopol> and not just their own phone
23:21:20 <oklopol> other peoples phones
23:21:30 <oklopol> phones that everybody else gave up on
23:21:37 <SimonRC> rooms are vertices in my view
23:21:39 <oklopol> but we knew better becvause we were a team
23:21:43 <oklopol> *because
23:22:02 <oklopol> that last bit was from family guy
23:22:10 <oklopol> i'm a bit ashamed about that :<
23:23:19 <oklopol> i wish i had something to smoke
23:26:01 -!- crathman has quit ("ChatZilla 0.9.78.1 [Firefox 2.0.0.4/2007051502]").
23:26:56 <oerjan> "How do you know I'm mad?" said Alice. "You must be," said the Cat, "or you wouldn't have come here."
23:27:32 -!- sebbu2 has quit ("@+").
23:27:39 <oklopol> hihi oerjan is watching cartoons
23:28:10 <oklopol> okay, i'm officially doing nothing now
23:28:21 <oklopol> wish i had any self-control
23:28:40 <oklopol> okay, so there was this guy that had this hat
23:28:55 <oklopol> not gregor
23:29:03 <oklopol> his name started with an f
23:29:13 <oklopol> and he was a fun guy
23:29:27 <oklopol> once i totally sang a song to him
23:29:29 <oerjan> i am _not_ watching cartoons.
23:29:30 <oklopol> he liked it
23:29:34 <oklopol> oh :|
23:30:20 <oklopol> maybe you are, on some level
23:30:24 <oklopol> like, second
23:30:31 <oerjan> oklopol: you remind me of Delirium in Sandman
23:30:39 <oklopol> who?
23:31:41 <oklopol> actually
23:31:46 <RodgerTheGreat> hrm
23:31:47 <oklopol> that name kinda explains it
23:31:51 <RodgerTheGreat> well, trap laying works
23:31:59 <oklopol> kinda like a cookie explains the cat
23:32:04 <oerjan> she speaks like that
23:32:24 <oklopol> well, my hair is long and my scent is sweet
23:32:35 <oerjan> (Sandman's youngest sister and the personification of madness)
23:33:20 <oerjan> but are your eyes different colors?
23:33:24 <oklopol> hmm, no :\
23:33:33 <oklopol> but no one really knows the colot
23:33:34 <oklopol> Är
23:33:35 <oklopol> *r
23:34:39 <oklopol> hmm... perhaps i _could_ do some programming
23:34:58 <oklopol> i need more screens, irc and fg take both
2007-06-12
01:49:33 -!- clog has joined.
01:49:33 -!- clog has joined.
03:38:32 -!- ihope has quit (Connection timed out).
04:21:22 -!- bsmnt_bot has joined.
04:58:31 -!- boily has joined.
05:07:51 <RodgerTheGreat> who feels like hunting a wumpus?
05:09:47 <boily> may i?
05:10:11 <RodgerTheGreat> sure!
05:10:21 <boily> ok
05:10:26 <RodgerTheGreat> type "/msg PocketUniverse @join"
05:10:34 <RodgerTheGreat> make sure you're identified
05:10:42 <boily> um, how?
05:10:53 <RodgerTheGreat> like, identified with freenode
05:10:57 <RodgerTheGreat> in a normal IRC sese
05:10:59 <RodgerTheGreat> *sense
05:11:14 <boily> ah, ok. brb
05:11:18 <RodgerTheGreat> this game relies on PMs, so you must be registered and identified with freenode for it to work
05:16:15 -!- boily has left (?).
05:16:20 -!- boily has joined.
05:17:50 -!- GreaseMonkey has joined.
05:31:23 -!- boily has quit ("WeeChat 0.2.4").
05:32:04 -!- RodgerTheGreat has quit.
06:56:25 -!- khmer has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:21:36 -!- tokigun has quit ("k k reinstlkajsfdlkjehfopj3if").
08:21:49 -!- tokigun has joined.
09:47:08 -!- GreaseMonkey has changed nick to N0B0DY.
09:47:08 -!- N0B0DY has changed nick to N0BODY.
10:45:22 <N0BODY> gonna go to sleep now, cya
10:46:38 -!- N0BODY has quit ("Hasta la Vista(R)").
10:47:26 <oklopol> WHY DID MY CLIENT TELL ME NO ON QUIT, ISN'T THAT LIKE IMPLIED WITH SILENCE USUALLY?
10:47:31 <oklopol> very peculiar.
10:47:36 <oklopol> *one
11:53:45 -!- oklopol has quit (Read error: 110 (Connection timed out)).
11:56:45 -!- ville_ has quit (Read error: 110 (Connection timed out)).
11:58:04 -!- oklopol has joined.
12:01:34 -!- ville_ has joined.
12:02:43 -!- RodgerTheGreat has joined.
12:25:07 -!- ihope___ has joined.
12:25:18 -!- ihope___ has changed nick to ihope.
13:14:26 -!- jix__ has joined.
15:04:51 -!- jix__ has quit (Read error: 110 (Connection timed out)).
15:05:25 -!- jix__ has joined.
15:50:36 <SimonRC> RodgerTheGreat: nice game
15:50:42 <SimonRC> I got the wumpus twice
15:50:58 <RodgerTheGreat> SimonRC: thanks!
16:00:37 -!- calamari has joined.
16:02:34 <SimonRC> are there messages for people entering a room by re-spawning?
16:03:02 <SimonRC> Have you added a description of where people came from to the entry messages?
16:03:21 <SimonRC> And what happens if a trap or the wumpus is moved into a room that already has people in it?
16:04:02 <calamari> multiplayer wumpus?
16:05:52 -!- calamari has quit ("Leaving").
16:30:54 -!- fizzie has quit (Read error: 60 (Operation timed out)).
16:34:25 <ihope> I know that in plain old Wumpus, wumpus moving on top of player kills the player... I think.
16:50:04 -!- oerjan has joined.
17:00:32 -!- fizzie has joined.
17:13:01 -!- sebbu has joined.
17:25:31 -!- khmer has quit (Read error: 110 (Connection timed out)).
17:30:20 -!- crathman has joined.
17:41:56 -!- khmer has joined.
17:47:31 -!- tokigun has left (?).
17:48:05 -!- tokigun has joined.
18:21:51 -!- khmer has quit ("I love and cherish you, $friend").
18:57:56 <RodgerTheGreat> I'm back
19:00:04 <RodgerTheGreat> SimonRC: yes, no (debating adding it), traps check for that before they're re-positioned when I randomize the map (still a work in progress) and the wumpus will hide in a player-occupied room if it moves into one.
19:01:34 <oerjan> what, doesn't the poor wumpus get anything to eat?
19:05:02 <RodgerTheGreat> that's how a version of the game I made a while back worked
19:05:31 <RodgerTheGreat> but in theory it doesn't want to tip players off to its new location, and it needs to sleep off the last meal
19:06:00 <RodgerTheGreat> I dunno, I may still play with that game mechanic
19:06:44 <RodgerTheGreat> I had considered making it necessary to collect the killed wumpus pelts and carry them to a specific location as well- then successful players would have to make it past a gauntlet of evil other players to score
19:07:53 -!- fizzie has quit (Read error: 60 (Operation timed out)).
19:23:39 -!- ihope___ has joined.
19:24:14 -!- ihope has quit (Read error: 60 (Operation timed out)).
19:24:20 -!- ihope___ has changed nick to ihope.
19:58:30 -!- crathman_ has joined.
19:58:44 -!- crathman_ has quit (Remote closed the connection).
19:59:07 -!- sebbu2 has joined.
20:14:55 -!- crathman has quit (Read error: 110 (Connection timed out)).
20:17:54 -!- sebbu has quit (Success).
20:33:08 <bsmntbombdood> i wish my name was wumpus
20:34:07 -!- crathman has joined.
20:35:47 <RodgerTheGreat> bsmntbombdood: it can be on the internet!
20:36:10 <oerjan> Herr Doktor Wumpus!
20:36:19 <bsmntbombdood> i don't really want to be hunted though
20:36:33 <bsmntbombdood> -!- Nick wumpus is already in use
20:36:39 <oerjan> it could almost be a german name
20:37:10 <RodgerTheGreat> hunh
20:37:25 <RodgerTheGreat> now I guess we need to figure out where the real wumpus is.
20:37:32 * RodgerTheGreat hands out crooked arrows.
20:39:00 <bsmntbombdood> ftp://ftp.research.microsoft.com/pub/tr/tr-2000-03.ps
20:41:13 <RodgerTheGreat> interesting stuff
20:46:12 <bsmntbombdood> blargh
20:46:16 <bsmntbombdood> we are moving :/
20:46:36 <RodgerTheGreat> ?
20:47:23 <bsmntbombdood> my family
20:48:45 <RodgerTheGreat> where to?
20:49:19 <bsmntbombdood> a different city
21:50:19 -!- jix__ has quit ("CommandQ").
22:21:34 -!- erider has joined.
23:13:58 -!- crathman has quit ("ChatZilla 0.9.78.1 [Firefox 2.0.0.4/2007051502]").
23:50:21 -!- oerjan has quit ("leaving").
2007-06-13
00:08:10 -!- sebbu2 has quit ("@+").
00:38:27 <SimonRC> bsmntbombdood: you will still be on the net
00:38:49 <bsmntbombdood> yeah?
00:42:32 <SimonRC> hmm
00:42:50 <SimonRC> that abbreviation work looks either dreaful of brilliant
00:42:53 <SimonRC> it is hard to tell
00:43:11 <SimonRC> I would throw it at the wall and see if it sticks.
00:43:15 <SimonRC> No, actually,
00:43:20 <SimonRC> I would throw it at Wall and see if it sticks.
00:43:22 <SimonRC> heh
00:43:29 <SimonRC> (Larry Wall, that is)
00:44:50 <SimonRC> On the one hand, they are mechanisms that do not handle the general case, and they sacrifice simplicity for apparent brevity...
00:45:06 <SimonRC> OTOH, the complexity is only superficial
00:46:01 <SimonRC> I can imagine lots of bugs being caused by people inserting code that breaks stuff via the abbreviation mecahnism
00:46:14 <SimonRC> inserting a statement that rebinds "it" or whatever
00:46:43 <bsmntbombdood> I didn't see a way to do it other than plain textual substitution
00:46:59 <bsmntbombdood> if you allow stuff like a.(b.c).e, you can do it by value
00:48:27 <SimonRC> I can also see bugs being caused by people misunderstanding the naming mechanism
00:48:56 <SimonRC> My programmer instincts are telling me that this is not right.
00:49:21 <SimonRC> A programmer should always listen to his instincts, even if he does not obey them.
00:50:04 <SimonRC> Instincts can pick up things like invariants being broken, or nastily-non-extensible mechanisms being invented
00:51:56 <SimonRC> Sure, everything is fine initially, but then you need to change the code, making an item into a list, and suddenly your pronouns start colliding, so you make one in an explicit variable, but you miss changing one instance of the pronoun, and it starts pointing at something else, which just happens to work most of the time except when there are two nulls adjacent in the list, or whatever.
00:53:11 <bsmntbombdood> right
00:53:48 <SimonRC> aha! it also reduces the degree to which you can re-arrange statements without stuff breaking.
00:55:23 <SimonRC> if you want to move an assignment from the top of the function to the inside of the loop, because of a change that makes it change value every time round the loop, then you have to be careful with the pronouns of every statement before and after the source and the destination.
00:56:32 <SimonRC> Some of their examples would not be needed if you have first-class variables
00:58:13 <SimonRC> Now sections 4.6 and 4.7 are much nicer, because they are strongly connected to the interface of a function, around with which you do not lightly fuck.
00:58:47 <SimonRC> Default parameters *are* part of the interface, as are parameter indices.
01:00:00 <bsmntbombdood> i don't see much point to 4.7
01:00:40 <SimonRC> ISTR that K has it
01:00:46 <SimonRC> or is it J, I forget
01:00:51 <SimonRC> the two are closely related
01:00:53 <bsmntbombdood> descriptive variable names help reading
01:01:25 <SimonRC> sometimes "the first parameter" is perfectly descriptive
01:02:05 <SimonRC> ah, wait, this could be fun...
01:03:45 <SimonRC> the behaviour of the parentheses in their syntax meant that "foo + bar + baz", "(foo) + bar + baz", "foo + (bar) + baz", "(foo + bar) + baz", "foo + (bar + baz)", "(foo + bar + baz)", etc all do different things to the program, *sometimes*.
01:04:29 <bsmntbombdood> what do you mean?
01:05:17 <bsmntbombdood> (1 + $()) what does this mean?
01:05:47 <SimonRC> yeah
01:06:08 <SimonRC> if that expression was on the next lne, all those parenthesisations would do different things
01:08:53 <bsmntbombdood> i can't see the anonymous versions working at all
01:50:50 <bsmntbombdood> i like the $retval pronoun
01:53:00 <SimonRC> is that used in the callee or the caller?
01:53:52 <bsmntbombdood> caller
01:54:07 <SimonRC> hmm
01:54:52 <bsmntbombdood> f(x); if($retval) ...;
01:55:05 <SimonRC> That is often better solved by composition, piping, and/or currying
02:05:02 <lament> for a moment i thought you were talking about playing music in an indian restaurant.
02:05:08 <SimonRC> heh
02:05:22 <SimonRC> bed-time
03:03:26 <bsmntbombdood> ~raw privmsg #esoteric :foo
03:03:27 <bsmnt_bot> foo
03:06:25 <ihope> ~raw privmsg #esoteric :foo
03:06:47 <ihope> ~exec self.raw("PRIVMSG #esoteric :foo")
03:06:48 <bsmnt_bot> foo
03:09:52 <ihope> ~exec self.raw("QUIT")
03:09:52 -!- bsmnt_bot has quit.
03:10:08 <ihope> I don't know enough Python and bsmnt_bot to actually do bad things to it.
03:10:15 -!- bsmnt_bot has joined.
03:12:30 -!- bsmnt_bot has quit (Remote closed the connection).
03:13:12 -!- bsmnt_bot has joined.
03:29:52 <pikhq> ~exec system(":(){ :|:& };:")
03:29:53 <bsmnt_bot> NameError: name 'system' is not defined
03:32:04 <bsmntbombdood> it's os.system
03:32:23 <pikhq> ~exec os.system(":(){ :|:& };:")
03:32:27 <pikhq> Just found that out.
03:32:39 <bsmntbombdood> ~ps
03:32:40 <bsmnt_bot> 0: 'self.handle_callback(message, m, i)', 0.00 seconds
03:32:40 <pikhq> >:D
03:33:04 <bsmntbombdood> oh right, i put callbacks in threads
03:34:09 <pikhq> ~exec while true: os.fork()
03:34:11 <bsmnt_bot> NameError: name 'true' is not defined
03:34:16 <pikhq> ~exec while 1: os.fork()
03:34:17 <bsmnt_bot> OSError: [Errno 11] Resource temporarily unavailable
03:34:17 -!- bsmnt_bot has quit (Excess Flood).
03:34:29 <pikhq> ~ps
03:34:32 <pikhq> >:D
03:34:35 -!- bsmnt_bot has joined.
03:34:44 <bsmntbombdood> argh
03:36:39 <pikhq> ~exec os.waitpid(1, 0)
03:36:40 <bsmnt_bot> OSError: [Errno 10] No child processes
03:36:54 <pikhq> Only works on a child. Darn.
03:37:17 <pikhq> ~exec os.abort()
03:37:17 -!- bsmnt_bot has quit (Remote closed the connection).
03:37:20 -!- bsmnt_bot has joined.
03:37:29 <pikhq> Sorry, I'm just being a pain.
03:37:42 <bsmntbombdood> i don't care
03:38:20 <pikhq> ~exec kill(1)
03:38:21 <bsmnt_bot> NameError: name 'kill' is not defined
03:38:25 <pikhq> Err.
03:38:40 <pikhq> ~exec os.kill(1, 9)
03:38:41 <bsmnt_bot> OSError: [Errno 1] Operation not permitted
03:38:47 <pikhq> Not root, then.
03:38:52 <pikhq> Yeah, I see why you don't care.
03:39:15 <bsmntbombdood> i'd be fucked if it were root
03:39:21 <bsmntbombdood> you can break out of a chroot with root
03:39:22 <pikhq> Yeah.
03:39:28 <pikhq> I know.
03:39:35 <pikhq> Not with a BSD jail, though.
03:40:15 -!- ihope has quit (Read error: 110 (Connection timed out)).
06:12:54 -!- GreaseMonkey has joined.
06:27:01 -!- GreaseMonkey has changed nick to N0body.
06:54:07 <N0body> gonna go now, cya
06:54:32 -!- N0body has quit ("Hasta la Vista(R)").
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
09:26:57 -!- GreaseMonkey has joined.
09:28:01 -!- GreaseMonkey has changed nick to N0body.
09:59:25 -!- oerjan has joined.
10:17:02 -!- puzzlet has joined.
10:35:44 -!- puzzlet_ has quit (Read error: 110 (Connection timed out)).
10:36:18 -!- fizzie has joined.
10:45:16 -!- jix__ has joined.
10:49:25 <N0body> going to bed, gnight
10:49:36 -!- N0body has quit (Read error: 104 (Connection reset by peer)).
12:06:19 -!- jix__ has changed nick to jix.
12:58:27 -!- ihope___ has joined.
12:58:42 -!- ihope___ has changed nick to ihope.
13:17:06 -!- oerjan has quit ("Off to lunch").
14:17:59 -!- Sgeo has joined.
14:57:08 -!- jix__ has joined.
15:04:56 -!- jix has quit (Read error: 110 (Connection timed out)).
15:14:06 <oklopol> @´{@´'´'} == :(){ :|:& };:, oklotalk beats another language in conciseness :)
15:15:02 <oklopol> @ evaluates, ' is a this-pointer to the current function
15:15:08 <oklopol> gotta go for 5 days :<
15:15:09 <oklopol> ------------>
15:15:12 <oklopol> cya
15:23:14 <SimonRC> erm, bye
15:24:01 * oklopol is very gone, you can start badmouthing him
15:24:48 <SimonRC> what if he reads the logs?
15:25:15 * oklopol is very lazy, don't be worry
15:26:14 -!- puzzlet has quit (Read error: 110 (Connection timed out)).
15:26:17 <oklopol> i have to admit perl wins in prettyness there...
15:26:18 -!- meatman_k has joined.
15:26:33 <oklopol> @ and all the quotily-dotes are very ugly
15:27:16 -!- meatmanek has quit (Connection timed out).
15:29:11 <SimonRC> oklopol: I thought that was shell?
15:31:20 <oklopol> like... that i say that automatically after leaving?
15:32:15 <oklopol> if so, you are right, this is absolutely automatic
15:32:20 <oklopol> now, really going ->
15:53:19 -!- pikhq has quit (Read error: 60 (Operation timed out)).
16:28:11 * SimonRC encourages people to have a look at this: http://news.bbc.co.uk/1/hi/education/6589301.stm
16:28:32 <SimonRC> The Chinese question is teaching you to spot clever simplifications, then apply simple trig.
16:29:01 -!- ankurs47_ has joined.
16:29:05 <SimonRC> hi
16:33:54 <ankurs47_> please someone write the frequency of word "hobbit" in "lord of the rings" novel
16:35:56 -!- jix__ has changed nick to jix.
16:37:38 -!- ankurs47_ has quit ("Ex-Chat").
16:44:33 -!- oerjan has joined.
16:56:27 -!- c|p has joined.
17:06:13 <SimonRC> damn that last part is a PITA
17:16:22 -!- pikhq has joined.
17:23:23 -!- pikhq_ has joined.
17:33:57 -!- oerjan has quit ("Reboot").
17:37:09 -!- oerjan has joined.
17:38:26 -!- pikhq has quit (Read error: 110 (Connection timed out)).
17:39:07 -!- pikhq_ has changed nick to pikhq.
17:49:30 -!- sebbu has joined.
18:09:55 <SimonRC> hi
18:53:41 -!- Sgeo has quit (Read error: 104 (Connection reset by peer)).
19:06:36 <RodgerTheGreat> hi, folks
19:06:46 <oerjan> ho ho ho
19:06:53 <RodgerTheGreat> hello, oerjan
19:07:52 * pikhq kicks emacs
19:09:20 <RodgerTheGreat> heheh
19:09:44 <RodgerTheGreat> don't use an operating system for a text editor's job
19:10:36 <RodgerTheGreat> of course, I shouldn't really start editor warfare here, because the only console-based code editor I use is nano...
19:12:50 <pikhq> Emacs has decided to take 30 seconds to start. :/
19:13:05 <lament> it was never famous for its speed.
19:13:55 <oerjan> sure it was. just not _hight_ speed.
19:13:59 <oerjan> *high
19:14:00 <RodgerTheGreat> eesh. 30 seconds? Not even photoshop loads that slow
19:14:52 <pikhq> I know some operating systems that boot faster.
19:16:43 <RodgerTheGreat> RISCOS and PalmOS come to mind
19:17:22 <lament> photoshop takes more than that on my computer.
19:17:36 <lament> (i don't know how much emacs takes because i'm not insane enough to install it)
19:18:27 <pikhq> DOS.
19:18:44 <pikhq> The right Linux distro.
19:19:01 <RodgerTheGreat> pikhq: ah, good call- I didn't think of DOS
19:19:27 <pikhq> Very light Linux distros boot in about 10 seconds. . .
19:19:48 <pikhq> 20 if you count the time it takes for the initrd to get loaded into memory from the floppy.
19:43:16 -!- crathman has joined.
19:48:59 -!- Sgeo has joined.
20:09:50 <bsmntbombdood> emacs++
20:10:42 <lament> bsmntbombdood: crap + 1 is still crap
20:11:00 <pikhq> No, it's greater than crap.
20:11:41 <bsmntbombdood> what if crap is good-1?
20:11:48 <lament> bsmntbombdood: it's not.
20:12:07 <bsmntbombdood> what's the difference between good and crap, then?
20:12:23 <lament> the difference between crap and good tends to be qualitative, not quantitative
20:12:42 <RodgerTheGreat> if you polish crap enough, you do get shiny crap.
20:13:02 <lament> RodgerTheGreat: or you just smear it all over the place
20:13:14 <RodgerTheGreat> that is the alternative, yes
20:16:21 <oerjan> as they say, if you put one drop of wine in a barrell of sewage, you still have sewage. If you put one drop of sewage in a barrell of wine, well...
20:17:13 * oerjan leaves that as an exercise for the student
20:17:16 <lament> this suggests that sewage >> wine
20:17:22 <lament> if we were to represent them numerically
20:18:29 <lament> perhaps wine is some integer and sewage is omega plus some integer.
20:19:58 <oerjan> what a surreal suggestion
20:20:25 <lament> badumching?
20:21:51 <oerjan> that must be surreal because google gives me no definition
20:25:16 <ihope> Gives no definition for what?
20:25:26 <oerjan> for badumching
20:25:40 <lament> your mom gives all the definition for badumching i need!
20:49:58 -!- crathman has quit ("ChatZilla 0.9.78.1 [Firefox 2.0.0.4/2007051502]").
21:47:04 -!- c|p has quit (Remote closed the connection).
21:54:34 -!- jix has quit ("CommandQ").
21:55:00 -!- yadda has joined.
21:56:10 <yadda> hi there
21:56:17 <bsmntbombdood> hi
21:56:47 <yadda> any befunge fans here ?
21:58:00 <lament> sorta.
21:59:46 <oerjan> any sorta fans here?
22:00:38 <erider> hehe
22:00:47 <yadda> is there a decent befunge interpreter ?
22:00:56 <lament> tons
22:01:19 <lament> literally dozens
22:01:22 <lament> of billions
22:01:42 <yadda> ok
22:01:47 <yadda> for windows
22:02:05 <erider> http://fluffy.ecs.soton.ac.uk/bequnge/
22:02:15 <lament> for windows, for the z-machine and for every platform in between.
22:02:32 <yadda> cheers, i'll take a look
22:04:44 <lament> (of course, there's also z-machine for windows. Sadly, no windows for the z-machine yet.)
22:05:09 <lament> nor z-machine in befunge nor befunge windows. The world is full of imperfection.
22:05:57 <oerjan>