←2007-08-25 2007-08-26 2007-08-27→ ↑2007 ↑all
00:03:06 <navaburo> bsmntbombdood: yes that is what i meant
00:04:10 <navaburo> SimonRC: well... ^ and v are equ to strings of >> and <<, but the length of those >>> stirngs changes with the graphics geometry
00:09:09 -!- ehird` has quit.
00:16:38 <MotH-> stoned, and just made out with a 24 year-old when I helped her to deal with traumatic experience
00:16:53 <MotH-> also drunk at the point of almost vomiting
00:17:00 <MotH-> and 18 year old meself
00:17:17 <MotH-> and she is my new-found "stepsister"
00:17:20 <MotH-> comments ?
00:17:33 <navaburo> and you are now coding so esolangs?
00:17:41 <navaburo> thats pretty fsked up
00:17:42 <MotH-> I'm interested in them
00:18:12 <MotH-> Really, I just came here by reddit
00:18:26 <MotH-> And have found it fun to observe
00:18:35 <MotH-> sorry.. this is rediculous
00:18:51 <MotH-> I just had nowhere to go to youknow ?
00:19:21 <navaburo> reddit, is that like digg?
00:19:21 <MotH-> If i'd have shared this with someone I know it'd had spread like a bushfire
00:19:34 <MotH-> It's better than digg imo
00:19:45 <navaburo> i have heard lots aboutit lately
00:19:59 <MotH-> no apple fanboys and no total retards
00:20:02 <navaburo> same system as digg?
00:20:07 <navaburo> well that can change
00:20:14 <MotH-> just pseud-intellectuals and snobbish types
00:20:35 <MotH-> It's not so much linear than digg
00:21:00 <MotH-> Because the front page is deteriorating with time
00:21:19 <navaburo> you were linked HERE from reddit?
00:21:33 <MotH-> or a post is something like rank=points*something/age*something
00:21:36 <MotH-> yes
00:21:39 <MotH-> a few days ago
00:22:07 <oerjan> there was a link to the irp page on the wiki
00:22:08 <MotH-> I was going to "program" something "funny" in this IRP thing
00:22:17 <MotH-> but i was too shy
00:22:37 <MotH-> fuck! there's a fly scavengin for scraps
00:22:43 <MotH-> in my fsking forearm !
00:22:58 <MotH-> Tickles + annoys as hell
00:23:13 <MotH-> but it just keeps coming back if i shoo it away
00:23:24 <MotH-> well, live and let live i guess
00:23:47 <MotH-> gahh...
00:23:54 <MotH-> what an annoying creature
00:24:12 <MotH-> allthough marvelous, the common housefly
00:24:31 <MotH-> put them in a freezer their systems stop completely
00:24:42 <MotH-> and thaw them and they begin to fly
00:24:55 <MotH-> impressive imo
00:25:47 <bsmntbombdood> drink enough deet to bring your blood percentage up to ~ 5%
00:26:01 <MotH-> Deet ?
00:26:04 <MotH-> what's that
00:26:27 <bsmntbombdood> N,N-diethyl-m-toluamide
00:26:28 <ihope> Bug repellant?
00:26:39 <oerjan> for a moment i thought bsmntbombdood had stumbled trying to write "beer"
00:26:41 <MotH-> Ohh
00:26:49 <MotH-> oerjan me too
00:27:10 <bsmntbombdood> that would probably work too
00:27:11 <MotH-> I thought he was going to think i'm a smartass for pointing out a typo
00:27:28 <MotH-> Well deet is an american product
00:27:31 <MotH-> ?
00:27:59 <MotH-> THAT FLY IS MADDENING
00:28:20 <MotH-> But it just keeps coming back
00:28:49 <MotH-> what does it want from my skin ?
00:29:00 <MotH-> I'm that dirty ?!
00:29:47 <ihope> Kill it?
00:29:58 <MotH-> I cant ! :D
00:30:05 <MotH-> as i stated, i am stoned and drunk
00:30:24 <ihope> Do you have a gas mask?
00:30:29 <MotH-> his reflexes greatly outnumber my speed and accuracy
00:30:39 <MotH-> I dont' unfortunately
00:30:52 <ihope> Perhaps you could pay someone to remove it
00:30:55 <MotH-> I've got a half-mask with a gas filter though
00:31:02 <MotH-> It's 2.30 AM
00:31:06 <ihope> Or maybe wear more clothes?
00:31:17 <bsmntbombdood> i want an SCBA
00:31:17 <MotH-> !
00:31:20 <oerjan> trick it out of the house?
00:31:22 <EgoBot> Huh?
00:31:24 <MotH-> that IS a solution
00:31:30 <MotH-> wear more clothes
00:31:32 <MotH-> brilliant
00:31:38 -!- puzzlet has quit (Connection timed out).
00:31:40 <ihope> Socks, pants, long-sleeve shirt, possibly gloves, possibly hat, possibly scarf...
00:32:02 <MotH-> But then i'm afraid it's only option would be my skin
00:32:05 <MotH-> *face
00:32:17 <ihope> Scarves need not go around only the neck.
00:32:28 <bsmntbombdood> hood + balaclava + ski googles
00:32:29 <bsmntbombdood> duh
00:32:41 <MotH-> True
00:32:52 <MotH-> but to go through every closet now
00:32:54 <MotH-> ..nahg
00:33:08 <bsmntbombdood> you can make a suitable balaclava from a tshirt
00:33:21 <MotH-> "balaclava" ?
00:33:49 <MotH-> ohh
00:34:07 <MotH-> again wikipedia made my english vocabulary larger
00:34:16 * oerjan starts wondering if the fly has the upper hand on intelligence too
00:34:22 <bsmntbombdood> procure an NBC suit
00:34:33 <MotH-> Hey, english is not my native language
00:34:41 <oerjan> although technically it doesn't have hands
00:35:01 <MotH-> balaclava isn't exactly the word that comes around in the everyday irc conversation
00:35:29 <MotH-> so yeah, oerjan
00:35:33 <oerjan> what about balalaika?
00:35:42 <MotH-> tell me the word in some other language you know
00:35:52 <MotH-> balalaika is an instument
00:36:04 <MotH-> "Balalaikka" in Finnish
00:37:43 <bsmntbombdood> there happens to be an NBC suit in my closet
00:38:10 <MotH-> you're prepared.
00:38:30 <MotH-> but why do you have one ?
00:38:39 <bsmntbombdood> can't remember
00:38:51 <MotH-> you're just really careful or it's from work or smth
00:39:08 <bsmntbombdood> might have been a halloween costume
00:40:20 <MotH-> i wonder how much one would cost
00:40:42 <bsmntbombdood> something like $15-20 iirc
00:40:56 <MotH-> wow..
00:41:07 <MotH-> I want one too then
00:41:07 <bsmntbombdood> it's like your own personal portable steam room
00:43:00 <MotH-> tong tied and twisted just an earth-bound misfit, I
00:43:03 <MotH-> pfft
00:43:38 <MotH-> tongue* :P
00:43:58 <bsmntbombdood> quoting pink floyd is not allowed
00:44:17 <MotH-> why not ?
00:44:32 <MotH-> too good or too bad
00:44:34 <MotH-> ?
00:44:42 <MotH-> fsking question mark
00:44:48 <MotH-> fsking word fsking
00:44:51 <bsmntbombdood> because i just felt like saying that
00:45:20 <MotH-> Any recommendations on music ?
00:45:56 <navaburo> to a fellow floyd fan? The Gods and Czar
00:48:06 <MotH-> some UG band ?
00:48:23 <navaburo> well those are two bands
00:49:32 <navaburo> i just use Pandora
00:51:08 <MotH-> alcohol
00:51:13 <MotH-> what an useless drug
00:54:12 <ihope> Indeed, many drugs are useless.
00:55:15 <ihope> Oh, and how about Toccata and Fugue in D minor? I find smalin's YouTube version better than any of the versions on iTunes.
00:55:23 <ihope> Which is, you know, weird.
00:55:33 <bsmntbombdood> many drugs are very usefull
00:55:55 -!- whitenoyce has joined.
00:56:09 -!- whitenoyce has left (?).
00:56:22 <MotH-> No, some drugs are fun
00:57:09 <MotH-> And yws, this toccata and fugue thing is great
00:59:48 <MotH-> ..incredibly so !
00:59:59 <MotH-> now that i have watched half-way
01:05:34 <ihope> Some would call it hallucinogenic :-P
01:22:02 -!- Sgeo has joined.
01:22:39 <Sgeo> Hello
01:23:01 <Sgeo> Is it ok if I make the maximum expressible number in PSOX 1.26238305e+614?
01:23:12 <Sgeo> (approx)
01:23:25 <Sgeo> exactly 2^(8*255)?
01:32:49 -!- c|p has joined.
01:38:13 <Sgeo> hi c|p
01:38:33 <c|p> hi
01:40:14 -!- c|p has quit ("sssss").
01:48:18 <Eidolos> Sgeo: I haven't been following, but does PSOX have a string type?
01:48:30 <Sgeo> NUL-terminated strings, yes
01:48:59 <Eidolos> so people can probably implement their own math with strings, if they need true arbitrary-precision arithmetic
01:49:31 <Eidolos> thus your (rather large) limit is OK :)
01:50:20 * Sgeo isn't sure how a Brainf*ck program would handle the numbers though..
01:50:40 <Eidolos> I don't even know what PSOX is :)
01:50:45 <Sgeo> What's the traditional way for a BF program to handle large numbers?
01:51:01 <Sgeo> http://sgeo.diagonalfish.net/esoteric/psox.txt
01:51:03 <oerjan> very painfully
01:52:14 <Sgeo> Is there a particular format that's used most often?
01:52:41 * oerjan doesn't know he just couldn't resist
01:52:54 <oerjan> i assume it is related to arrays
01:53:40 <oerjan> other than that, i somehow cannot believe there is a standard for it
01:56:09 <Sgeo> Would Brainf*ck be able to handle numbers set up similar to Pascal strings, i.e. put a header in front indicating the number of bytes?
01:57:36 <oerjan> i recall something about arrays being implemented with interior empty cells to ease traversing
02:00:51 <Sgeo> I could do it like this: data byte, byte indicating whether or not it continues.
02:00:52 <Sgeo> Etc.
02:01:14 -!- MotH- has left (?).
02:01:15 <Sgeo> So 0x012C would be 0x01 0x01 0x2C 0x00
02:03:39 <Sgeo> Or maybe 0x01 0x00 0x2C 0x01
02:07:58 <ihope> You want a universal code.
02:07:58 * SimonRC goes to bed
02:08:44 <ihope> A byte-based universal code that's good for arithmetic via incrementing, decrementing and checking for zero.
02:09:08 <ihope> Wait, checking whether a cell is equal to 128 takes at least 127 steps, doesn't it?
02:09:32 <ihope> Therefore, NEED COMPILER PLZTHX
02:22:41 <pikhq> Sgeo: The PSOX spec is very, very nice. . .
02:22:47 <pikhq> And actually implementable. :)
02:23:06 <Sgeo> ty pikhq
02:23:23 <Sgeo> Is my idea for longnums good?
02:23:31 <Sgeo> (Discussion inchan justnow)
02:24:00 <Sgeo> And it's still a work-in-progress
02:24:17 <pikhq> Personally, I like the idea of either sending enough cells to make up your longnum or a string representation. . .
02:25:16 <pikhq> 0x00 0x01 0xmath 0x00 0xadd length-of-longnum bit1 bit2 bit3...
02:25:22 <pikhq> Err. Byte1-3.
02:26:34 <pikhq> The last byte will be stored directly, and then, going left, you'll do bignum += byte^256*(number-of-bytes-so-far)
02:27:55 <Sgeo> erm, is that saying put the number of bytes in front?
02:28:00 <Sgeo> basically?
02:28:06 * Sgeo doesn't see how that could work with BF
02:28:38 <pikhq> Which is, of course, the problem. :/
02:29:06 -!- importantshock has joined.
02:29:09 <Sgeo> How about putting indicator bytes between each byte of the number?
02:29:14 <Sgeo> erm
02:29:24 <pikhq> Like, say, 0x00?
02:29:30 <pikhq> Plausible.
02:29:45 <pikhq> Could be broken, but you'd have to break it intentionally. . .
02:29:47 <Sgeo> Should the first byte be indicator or data:
02:29:50 <oerjan> pikhq: did you switch ^ and * or is your representation _very_ weird? :D
02:29:56 <Sgeo> "broken"?
02:30:09 <pikhq> oerjan: Actually, I think my brain's merely dead.
02:30:24 <oerjan> BRAAIINS
02:30:29 <pikhq> Sgeo: You could end up screwing up the Brainfuck output, such that indicator bits get skipped.
02:30:58 <pikhq> No huge danger, since, well, that's a problem with any programming language.
02:31:05 <pikhq> Why the hell I mentioned it is beyond me.
02:31:26 <Sgeo> 0x01(data) 0x01(indicator) 0x2C(data) 0x00(indicator)
02:33:29 <Sgeo> indicator-data order might be confusing..
02:34:15 <Sgeo> But it would mean while loops instead of do-while loops..
02:35:32 <oerjan> note that you will have to be able to deal with the number from either end, assuming your program contains more than a couple
02:36:23 * Sgeo would hope that the program would be able to record location information as it's receiving the number
02:36:47 <Sgeo> The longnum format is not necessarily how the client will store the number
02:36:52 <Sgeo> It's just transmission
02:38:46 <bsmntbombdood> 0b1<7 bits of data> indicates there's more data, 0b0<7 bits of data> indicates this is the last one
02:39:11 <Sgeo> That's not as convenient to manipulate
02:40:08 <Sgeo> But that implies an indicator-data approach:
02:40:26 <Sgeo> 0x012C becomes 0x01(i) 0x01(d) 0x00(i) 0x2C(d)
02:41:56 <Sgeo> Programmers will need to remember to retrieve the last byte, but that's their problem.
02:42:02 <importantshock> :(
02:43:40 <Sgeo> Unless we make 0x00(i) mean EOF:
02:44:01 <Sgeo> 0x012C becomes 0x01(i) 0x01(d) 0x01(i) 0x2C(d) 0x00(i)
02:54:24 -!- oerjan has quit ("Good night").
02:57:17 <Sgeo> importantshock has made an important contribution to PSOX
02:57:33 <Sgeo> Although I am realizing that maybe the Pascal thing might have worked..
02:57:46 <importantshock> Sgeo: wait, is this sarcasm?
02:57:53 <Sgeo> importantshock, not at all
02:58:11 <Sgeo> importantshock, because of you, I decided that maybe Indicator-Data-Indicator would work well
02:58:42 <Sgeo> <Sgeo> Programmers will need to remember to retrieve the last byte, but that's their problem.
02:58:42 <Sgeo> <importantshock> :(
02:58:42 <Sgeo> <Sgeo> Unless we make 0x00(i) mean EOF:
02:58:45 <importantshock> Sgeo: Thank you very much
02:58:51 <Sgeo> importantshock, you're welcome
03:00:31 <importantshock> Sgeo: I've never heard of PSOX, anywhere I can look for some background?
03:00:49 <Sgeo> http://sgeo.diagonalfish.net/esoteric/psox.txt
03:00:59 <Sgeo> Have you heard of PESOIX?
03:01:42 <Sgeo> It's still very much in a state of flux
03:01:59 <importantshock> Vaguely. Sort of a unified, OS-agnostic approach to operating system functions?
03:03:28 <Sgeo> PESOIX lets esolangs like BF access OS functions
03:03:57 <ihope> All rather silly, in my opinion.
03:04:06 <ihope> Then again, I have no idea how it actually works.
03:04:27 <Sgeo> PESOIX was never implemented.
03:04:50 <importantshock> Sgeo: sounds like a fine idea to me, though i am new to esolangs in general. all i've done was write an HQ9+ parser in haskell.
03:05:10 <Sgeo> I went to attempt to start to implement it, but due to personal disagreements with semantic and practical issues, I decided to make a (backwards-incompatible) successor
03:05:35 <importantshock> Backwards-compatibility is the root of all evil. Good on you.
03:06:34 <Sgeo> I suppose one could make a translator layer that turns PESOIX commands into PSOX commands..
03:06:39 <Sgeo> lol ty
03:08:56 * Sgeo kills the NUL-terminated numbers
03:08:59 <Sgeo> *shudder*
03:11:47 <ihope> main = do {program <- getContents; sequence (map (parse program) program)}; parse pgm 'H' = putStrLn "Hello, world!"; parse pgm 'Q' = putStr pgm; parse pgm '9' = putStrLn "insert 99bob here"; parse pgm '+' = return (); parse pgm _ = error "Syntax error"
03:14:35 -!- importantshock has quit ("Trying a new IRC client.").
03:17:07 -!- importantshock has joined.
03:19:35 <Sgeo> Hi importantshock
03:19:44 <Sgeo> What took the new client so long?
03:21:27 <bsmntbombdood> pikhq: http://www.uer.ca/locations/show.asp?locid=24797 <-- you should go there
03:22:48 <ihope> Sgeo: he had to download and install Linux to use it.
03:22:57 <Sgeo> lol
03:23:02 <ihope> And he chose the biggest distribution he could find, and he has dial-up.
03:23:25 <ihope> And he doesn't have access to a CD burner; only a single floppy disk and a friend's house.
03:23:30 <ihope> Said friend lives in Europe.
03:23:47 <ihope> And he can't afford any type of transportation, so he had to go there on foot.
03:24:40 <ihope> And that friend has two computers: one with a floppy drive, one with a CD burner.
03:25:40 <ihope> He can't afford enough electricity to run both at the same time, so he had to memorize that Linux distribution before turning off the floppy drive computer and turning on the CD burner computer.
03:25:43 <ihope> He used more and ed.
03:26:04 <ihope> Either that, or head and cat. I don't remember.
03:28:09 <Sgeo> http://sgeo.diagonalfish.net/esoteric/psox.txt updated with the longnum spec!
03:29:22 <importantshock> Actually, I wrote my own IRC client.
03:29:27 <importantshock> IN...
03:29:30 <importantshock> HQ9++!
03:31:55 <importantshock> Oh, did I say HQ9++? I meant *machine code*.
03:32:35 <importantshock> Which I programmed into my computer by flicking a light switch on and off to represent binary 1 and 0.
03:35:24 <pikhq> bsmntbombdood: Why?
03:35:31 <bsmntbombdood> pikhq: because i can't?
03:35:37 <pikhq> XD
03:35:43 <Sgeo> pikhq, did you see the updated spec?
03:35:45 <pikhq> Move to Colorado Springs.
03:36:36 <pikhq> Sgeo: Why wouldn't that format *not* be suitable for storage in Brainfuck memory?
03:36:56 <pikhq> (assuming, of course, that you only manipulate it using PSOX functions, and try to avoid overlaps)
03:37:41 <Sgeo> pikhq, how would BF find the left end?
03:38:09 <pikhq> goto start;bf '[>>]';
03:38:23 <Sgeo> and it wouldn't be manipulated with only PSOX functions..
03:38:28 <Sgeo> pikhq, that's the right end
03:38:32 <pikhq> Oh.
03:38:46 <pikhq> Programmer needs to handle that.
03:38:53 <pikhq> (put a 0x00 before it)
03:39:29 <Sgeo> How would the BF program add two longnums?
03:40:04 <Sgeo> How would it traverse to a point in the middle of the longnum?
03:40:56 <pikhq> PSOX ADD longnum #1, longnum #2;read longnum from input
03:41:58 * Sgeo was thinking if maybe each indicator would indicate the number of data bytes remaining..
03:41:58 <pikhq> (admittedly, there could easily be more efficient representations. . .)
03:42:12 <Sgeo> Although that would limit the length of longnums..
03:42:55 <Sgeo> And would it really be useful?
03:44:31 <Sgeo> Although that would hamper longnum's ability to be used as strings that can contain NUL...
03:47:22 <pikhq> Null-terminated strings, perhaps?
03:48:54 <pikhq> (although I doubt the practicality of, say, "2e10" versus ++>+>>+>>+>>+>>+>>+>>+>>>>)
03:51:29 <Sgeo> pikhq, strings that contain NULs can't be NUL terminated..
03:51:44 <Sgeo> I mean like bitstring thingies
03:53:15 <pikhq> Well. . . Right.
03:53:31 <pikhq> I'd suggest sized strings, but those are a pain to deal with from Brainfuck.
03:54:40 <importantshock> pikhq: like in Pascal?
03:55:34 <Sgeo> pikhq, longnums do work for the purpose..
03:59:02 <Sgeo> Interspersing amount of data left in the longnum might make it difficult for the client to send longnums
04:01:34 <Sgeo> hm, the mere concept of variable-length numbers might cause problems with some languages..
04:02:03 <Sgeo> (receiving, anyway)
04:02:41 <Sgeo> Pretty strong reason to avoid longnums unless necessary
04:03:19 <Sgeo> e.g. in an ask the user for a number function, the client could say how many bytes the number can be, or 0 for a longnum
04:11:16 <Sgeo> OTOH, I have no similar warnings about NUL-terminated strings..
04:12:39 <Sgeo> Maybe I should..
04:26:49 * Sgeo will add warnings... tomorrow
04:27:25 -!- Sgeo has quit ("Ex-Chat").
04:30:47 -!- poiuy_qwert has joined.
04:57:49 -!- Figs has joined.
04:58:12 * Figs says something stupid... just because.
05:33:25 <Figs> >>> ->+>+++>>+>++>+>+++>>+>++>>>+>+>+>++>+>>>>+++>+>>++>+>+++>>++>++>>+>>+>++>++>+>>>>+++>+>>>>++>++>>>>+>>++>+>+++>>>++>>++++++>>+>>++>+>>>>+++>>+++++>>+>+++>>>++>>++>>+>>++>+>+++>>>++>>+++++++++++++>>+>>++>+>+++>+>+++>>>++>>++++>>+>>++>+>>>>+++>>+++++>>>>++>>>>+>+>++>>+++>+>>>>+++>+>>>>+++>+>>>>+++>>++>++>+>+++>+>++>++>>>>>>++>+>+++>>>>>+++>>>++>+>+++>+>+>++>>>>>>++>>>+>>>++>+>>>>+++>+>>>+>>++>+>++++++++++++++++++>>>>+>+>>>+>>++>+>+++>>>++>>
05:33:38 <Figs> was that too long?
05:49:01 <Figs> what's a reasonable size for a brainfuck buffer?
05:49:22 <Figs> 4k?
05:53:31 <pikhq> +[>>+]
05:53:37 * pikhq grins evilly
05:54:06 <pikhq> The joys of a representation of infinity in PSOX's longnum format.
05:58:27 -!- calamari has joined.
06:01:12 <bsmntbombdood> pikhq: http://www.actionsquad.org/stahl.htm <-- you should go there, too
06:01:36 <bsmntbombdood> unless waist deep in sewage isn't your idea of fun?
06:10:03 <pikhq> Not really, no.
06:10:21 <bsmntbombdood> too bad
06:31:58 -!- importantshock has quit (Read error: 110 (Connection timed out)).
06:49:34 -!- calamari has quit ("Leaving").
07:00:37 -!- importantshock has joined.
07:05:02 -!- ihope has quit (Connection timed out).
07:21:58 -!- importantshock has quit (Read error: 110 (Connection timed out)).
07:26:29 -!- importantshock has joined.
07:37:03 -!- poiuy_qwert has quit (Read error: 110 (Connection timed out)).
07:47:04 -!- importantshock has quit ("Meh.").
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:30:18 -!- importantshock has joined.
08:40:42 <Figs> haha
08:40:54 <Figs> my brainfuck interpretter just went up in flames.
08:41:03 <Figs> damn ye '['!
08:49:16 <Figs> O_O
08:49:24 <Figs> I just used a char*** for the first time in my code :P
08:51:09 <importantshock> Figs: in an mp4 metadata-parser i had to modify, i almost used a char****
08:51:17 <Figs> :P
08:52:10 <importantshock> ...then i said "No, just...no. Sure, the following code may not be as abstracted as it could be, but i'm not using four fucking stars."
08:52:20 <Figs> :)
08:52:28 <Figs> it's a charfuck!
08:52:40 <Figs> that's what well call char****
08:52:46 <Figs> confuse people...
08:52:58 <Figs> they'll think we're cursing when they see char**** in our code
08:53:01 <Figs> char**** charfuck;
08:53:03 <Figs> ^_^
08:53:24 <Figs> basically, I have a
08:53:31 <Figs> char* [10000][2]
08:53:42 <Figs> and I have a char*** to access the data
08:54:05 <Figs> I wonder how the hell I learned to use that.
08:54:12 <Figs> I've never seen anyone use char***s before... :S
08:54:14 <Figs> huh
08:54:19 <Figs> now I'm talking to myself, aren't I?
08:54:34 <Figs> WALL OF TEXT REPLY!
08:54:42 <importantshock> ooh
08:54:44 <importantshock> i have an idea
08:54:47 <importantshock> do
08:54:55 <importantshock> #define fuck ****
08:55:01 <Figs> haha
08:55:18 <Figs> I think I will do that later
08:55:24 <Figs> since I plan to obfuscate this program
08:55:34 <Figs> and that'd just be classic :)
08:55:42 <Figs> typedef char brain;
08:55:50 <Figs> #define fuck ****
08:55:57 <Figs> brain fuck ptr;
08:56:38 <Figs> or maybe just brain**** pointer;
08:56:48 <Figs> so that my code doesn't curse :)
08:57:06 <Figs> and see if people get the jokes :P
08:58:24 <Figs> oh
08:58:25 <Figs> haha
08:58:29 <Figs> I don't really need a char***
08:58:32 <Figs> I just a char**
08:58:34 <Figs> :P
08:59:14 <importantshock> ah, gotta love C
08:59:20 <importantshock> no string support to speak of
09:00:50 <Figs> :P
09:01:07 <Figs> hehe >,<
09:01:13 <Figs> in case you haven't figured out yet
09:01:22 <Figs> I'm writing an obfuscated BF interpreter :)
09:01:32 <Figs> modified a bit...
09:01:39 <Figs> ` is now the quit operator
09:01:48 <Figs> so I can do things like [`] to quit
09:01:53 <Figs> if a value is zero :D
09:01:55 <importantshock> i wrote my first interpreter the other day!
09:01:59 <importantshock> for....
09:02:04 <importantshock> HQ9+
09:02:24 <importantshock> not a big deal, i know.
09:02:27 <importantshock> but i did it in haskell.
09:03:36 <Figs> :)
09:03:44 <Figs> I don't know what HQ9+ is
09:06:50 <importantshock> four instructions:
09:06:55 <importantshock> 'h' prints Hello World
09:06:58 <importantshock> 'q' prints Q
09:07:07 <importantshock> '9' prints 99 bottles of beer on the wall
09:07:16 <importantshock> and '+' increments an accumulator
09:07:22 <Figs> :)
09:07:26 <Figs> lol
09:07:57 <Figs> huh
09:08:09 <Figs> I am doing something stupid with me []s I think
09:08:14 <Figs> my*
09:09:14 <importantshock> this is plain C?
09:09:32 <Figs> yeah
09:09:37 <Figs> I'm writing it in C
09:09:50 <Figs> (writing the code for [ and ] in bf)
09:11:00 <Figs> ooooh
09:11:15 <Figs> now I remember why I wanted that second thing...
09:11:35 <Figs> well, shit.
09:11:36 <Figs> :P
09:11:51 <importantshock> :(
09:11:58 <Figs> brain**** even!
09:12:02 <Figs> :D
09:13:55 <importantshock> ooh
09:14:01 <importantshock> #define ass ***
09:14:05 <Figs> nice
09:14:18 <importantshock> now, if only there were a two-letter swear word...
09:14:25 <Figs> FU
09:14:27 <Figs> :)
09:14:42 <Figs> F(uck) (y)U(o)
09:14:57 <Figs> sad thing is that I could actually make that mean something in C++
09:15:12 <importantshock> that would be easy, yeah
09:15:19 <Figs> :P
09:15:42 <importantshock> y swearword[];
09:15:51 <Figs> ?
09:16:09 <oklopol> "* SimonRC thinks that "references" is a fun word to type" <<< of you like that, you should try "oklopol"
09:16:14 <importantshock> wait, nevermind.
09:16:38 <importantshock> references references.
09:16:41 <importantshock> reeferences!
09:17:02 <Figs> o.o
09:17:22 <Figs> no references in C
09:21:09 <Figs> grr segfault
09:24:28 <importantshock> i'd like to write a bf interpreter in haskell...but the amount of monads involved scares me.
09:24:56 <Figs> lol
09:25:13 <Figs> hrm
09:25:28 <Figs> char [][] -> char*** is giving me trouble
09:25:37 <Figs> maybe I'm totally wrong on that one :D
09:26:15 <Figs> well, fuck it
09:26:19 <Figs> I'll just double the size :P
09:26:24 <Figs> handle it me-self.
09:26:45 <importantshock> 640 K of RAM should be enough for anyone.
09:26:52 <Figs> :)
09:27:02 <oklopol> "<MotH-> "Balalaikka" in Finnish" <<< haha, all the loonies are finnish
09:28:36 <importantshock> that old wives tale?
09:28:42 <importantshock> finland doesn't exist.
09:28:45 <importantshock> everyone knows that
09:29:10 <oklopol> "<Sgeo> Is there a particular format that's used most often?" <<< use brainfuck as you'd use bitchanger
09:29:23 <oklopol> ...also, don't give advise to people that aren't there
09:30:40 <importantshock> lawlz.
09:31:23 <oklopol> oh, i now realize what he ws using that for
09:36:11 <Figs> how
09:36:14 <Figs> it just blew up :D
09:36:19 -!- importantshock has quit.
09:36:22 <Figs> *wow
09:40:06 <oklopol> i was night watchman at this place the last two nights
09:40:22 <oklopol> first night i went there 2 hours early... because i'm an idiot or smth
09:40:34 <oklopol> made the scheme interpreter \o/
09:40:44 <oklopol> but didn't learn the song yet :<
09:40:59 <oklopol> my friends hallway didn't have a piano.ö
09:41:02 <oklopol> *-ö
09:41:11 <oklopol> friend's
09:43:00 <oklopol> it's a stub of an interpreter though.
09:43:13 <oklopol> i haven't even made it tail recurse yet :D
09:43:43 <oklopol> well... i guess it tail recurses, even C can do that, but it doesn't optimize it
09:44:29 <Figs> :P
09:44:52 <Figs> why is this thing crashing O_o
09:46:52 -!- ololobot has joined.
09:51:00 <oklopol> >>> sch (define factorial (lambda (a) (if (= a 0) 1 (if (= a 1) 1 (* a (factorial (- a 1)))))))(factorial 6)
09:51:00 <ololobot> num:720
09:52:45 <oklopol> >>> sch (define (factorial a) (cond ((= a 0) 1) ((= a 1) 1) (1 (* a (factorial (- a 1)))))) (factorial 6)
09:52:45 <ololobot> num:720
09:53:05 <oklopol> smth like that
09:54:03 <oklopol> it has static scoping and basic operations + basic special forms, but it's pretty stubbist
09:54:06 <oklopol> *stubbish
10:17:31 -!- oklopol has quit (Read error: 110 (Connection timed out)).
10:20:17 -!- ololobot has quit (Read error: 110 (Connection timed out)).
10:29:26 <Figs> http://rafb.net/p/MeAsRu82.html
10:29:34 <Figs> do you guys see anything wrong with this? :S
10:35:28 <Figs> there's something wrong in either '[' or ']' since it keeps segfaulting
10:42:12 <Figs> O_O
10:42:22 <Figs> can you imagine paying $2000 for a piece of software?
10:49:43 <Figs> O.o
11:35:21 -!- oerjan has joined.
12:03:11 <oerjan> Figs: it looks to me that ] jumps unconditionally to just _after_ the matching [, because of the i++ in the for loop
12:05:16 <Figs> oerjan: Unfortunately, I've modifed it so much since then that's not relevant any more, but thanks for looking...
12:05:21 <Figs> you can help me debug the new version ^_^
12:05:42 <Figs> http://rafb.net/p/dh4L2C10.html
12:07:04 <oerjan> might add a check for \0 in find_bracket
12:08:20 <Figs> I'm pretty sure the problem isn't with find_bracket
12:08:27 <Figs> at least the one I'm dealing with now
12:08:33 <Figs> but yeah, I know there is a bug there
12:08:37 <oerjan> that was just for added error checking
12:08:41 <Figs> or a possible problem
12:08:46 <Figs> mhm
12:08:59 <Figs> I'll add something to it later if I get further along and there's more errors
12:09:08 <Figs> for the real version though, I don't know if it'd matter
12:09:39 <Figs> anywho
12:09:59 <Figs> the most recent issue is that somewhere my data in the stack got corrupted
12:10:06 <Figs> or I'm setting it to the wrong place
12:10:08 <Figs> or something
12:10:22 <oerjan> eek, linked list. why do you need it doubly-linked, just for a stack?
12:10:49 <Figs> just the stack
12:11:04 <Figs> seemed like the easiest way to put it together without too much work
12:11:50 <Figs> I'd rather use C++, but the Obfus. C people don't accept obfuscated C++ :P
12:12:05 <Figs> if they did, I'd have been done hours ago
12:12:42 <oerjan> oh, it's obfuscated, i guess doubly-linked is fine then ;)
12:12:44 <Figs> the brainfuck program I am using to test it is +++[-]
12:12:48 <Figs> it will be :P
12:12:58 <Figs> right now, obviously, it's not :)
12:13:54 <oerjan> do any of your asserts fire?
12:14:21 <Figs> no
12:14:23 <Figs> it seg faults
12:14:37 <Figs> as far as I can tell somewhere in pop
12:15:13 <oerjan> add an assert(current) in pop?
12:16:35 <Figs> 0x22b153, 0x77c5fc80
12:16:42 <Figs> ok...
12:16:47 <Figs> so here's the problem
12:16:52 <Figs> current = current->back;
12:16:58 <Figs> now the data is wrong.
12:17:17 <Figs> call changed from 0x22b153 to that other one
12:17:27 <Figs> and now it's garbage
12:17:52 <Figs> segfaults when you try to free it
12:19:40 <oerjan> _did_ you add an assert(current) in pop?
12:20:03 <Figs> where?
12:20:09 <Figs> the first assert works
12:20:09 <oerjan> first, of course
12:20:34 <oerjan> i suppose that would have segfaulted if not
12:20:36 <Figs> yeah
12:22:04 <Figs> the reason it segfaults is free(current->next) fails
12:23:03 <oerjan> i am wondering about current->next->back = &current
12:23:27 <oerjan> does &current even exist beyond the call to push?
12:23:31 <Figs> that's probably wrong.
12:23:44 * Figs removes &
12:24:08 <Figs> ok
12:24:25 <Figs> now I have a failed assertation
12:24:35 <Figs> current->back!=0 on line 58
12:25:50 <Figs> I put a current!=0 before that
12:25:55 <Figs> didn't fail on that
12:26:35 <Figs> http://rafb.net/p/x7bDuD78.html
12:26:39 <Figs> not much different
12:26:44 <Figs> but so we're still looking at the same thing
12:27:45 <Figs> note to self: callstack = 0x3d2470
12:28:39 <oerjan> ah... that i++ after find_bracket on line 106 may be wrong
12:28:54 <oerjan> same problem as i initially mentioned :D
12:29:16 <oerjan> but in the other direction
12:29:17 <Figs> :P
12:30:11 <oerjan> i suppose [ and ] somehow popping too much stack would cause your other problem
12:30:44 <Figs> hold on, still stepping through
12:30:53 <Figs> so far it's gotten through the first pop properly
12:31:30 <Figs> nope
12:31:34 <Figs> I found the problem
12:31:36 <Figs> it's not i++
12:31:52 <Figs> (although that might still be wrong)
12:32:18 <Figs> the problem I guess is that it's not poping back where it should O.o
12:32:31 <Figs> I need -1 from i
12:33:25 <Figs> w00tage!!!
12:33:25 <Figs> it works
12:33:40 <Figs> no failures
12:33:50 <Figs> just nice sweet working-ness ^_^
12:34:00 <oerjan> great. now i go for lunch :)
12:34:21 <Figs> :P
12:34:26 <Figs> thanks for looking oerjan ;)
12:34:40 <Figs> I should go to bed now
12:34:41 <Figs> :P
12:34:44 -!- oerjan has quit ("You're welcome").
12:34:44 <Figs> it's 4:30 am
12:34:49 <Figs> lol
12:43:58 <Figs> !bf
12:44:03 <Figs> !bf ++++++++++++++++++++++++++++++++++++++++++++++++++.
12:44:06 <EgoBot> 2
12:44:20 <Figs> !help bf
12:44:24 <EgoBot> To use an interpreter: <interpreter> <program> Note: <program> can be the actual program, an http:// URL, or a file:// URL which refers to my pseudofilesystem.
12:45:04 <Figs> right... how do I give egobot an input sequence?
12:48:52 -!- Tritonio has joined.
12:56:36 <Figs> aha, oerjan was right
12:56:39 <Figs> too
12:56:50 <Figs> hi Tritonio
12:57:58 <Figs> *now* it works properly.
13:03:43 -!- ehird` has joined.
13:04:18 <Figs> http://rafb.net/p/cKTRLJ66.html
13:04:21 <Figs> I think I got it right
13:04:42 <Figs> I'm sure you guys are all going to laugh at my for being so bad at writing a bf interpreter in C... :P
13:05:10 <Figs> time now for me to obfuscate it...
13:45:16 -!- Sgeo has joined.
14:12:31 <Tritonio> hi!
14:13:41 <Figs> lo!
14:16:39 <Sgeo> Hi Tritonio and Figs
14:18:08 <Figs> hi
14:36:03 <SimonRC> *sigh*
14:36:12 <Figs> http://72.14.253.104/search?q=cache:Z661JiPJ_08J:sysspider.vectorstar.net/papers/obftricks.txt
14:36:19 <Figs> that'll cheer you up SimonRC
14:36:32 <Figs> or destroy your faith in humanity further
14:36:35 <Figs> one or the otehr.
14:36:45 * Figs asks SimonRC what's troubling him...
14:36:53 <SimonRC> magic
14:37:00 <SimonRC> or rather, people who believe in it
14:37:41 <Figs> :P
14:37:51 <SimonRC> They are failing to see the difference between things that are simple to nature but very strange to humans, and things that are simple to humans but highly complex and arbitrary to nature.
14:37:55 * Figs sings... "Do you believe in magic...?"
14:38:18 <SimonRC> They fail to see how ridiculously human-centric their point of view is.
14:38:27 <Figs> welcome to life :P
14:39:11 <SimonRC> there is an upside though...
14:39:40 <SimonRC> I am writing the explanation while role-playing a species not at all related to humans...
14:39:51 <Figs> :P
14:40:00 <SimonRC> Therefore I can be very rude and tell them they have the brains of monkies at it is "role-playing"
14:40:05 <Figs> I'm writing an obfuscated brainfuck interpreter for the Obfus C Contest
14:40:07 <SimonRC> :-)
14:40:19 <SimonRC> Figs: make it a super-optimising one
14:40:32 <Figs> right now it's bulkier than hell at 17k
14:40:37 <SimonRC> at the very least it should spot null-movement loops
14:40:46 <SimonRC> Figs: tut tut tut
14:41:15 <Figs> actually, the code is much bigger than the source
14:41:16 <SimonRC> Figs: in return I give you this gift: http://mindprod.com/jgloss/unmain.html
14:41:23 <Figs> source is like 3 k
14:41:24 <Figs> max
14:41:30 <SimonRC> compress it in a silly way then
14:41:45 <Figs> ;p
14:41:48 <SimonRC> unmain is great; take an hour out to read it
14:41:56 <SimonRC> it will help a bit too
14:42:06 <Figs> I'll read it sometime when I'm not 6 hours past my bed time :)
14:43:43 <SimonRC> Maybe try to make the code as readable as possible. High-level incomprehensibility will win you more points than low-level incomprehensibility.
14:44:11 <Figs> I was thinking of doing a lot of gotos and function pointers
14:44:11 <SimonRC> Figs: you must be in oceania
14:44:14 <Figs> nope
14:44:19 <Figs> I'm in California
14:44:30 <Figs> it's 7 am here
14:44:35 <Figs> (give or take)
14:44:55 <Figs> switches in switches... conditional gotos
14:45:09 <Figs> switches with gotos
14:45:11 <SimonRC> "#define foo(a, b) ((a - b++) * (a * b))" <-- gaah! undefined!
14:45:19 <Figs> :P
14:45:29 <Figs> and of course, naming everything with underscores
14:45:30 <SimonRC> Thou Shalt Not Invoke Undefined Behaviour.
14:45:39 <Figs> _, __, ___, ____, ______
14:45:39 <SimonRC> Uness It Is Really Cool.
14:45:41 <Figs> :P
14:46:08 <Figs> {/*]{8*/{}}{}{{{}}}
14:46:16 <SimonRC> (like building a big stack by recursing a lot then scribbling all over it for storage. (like that program that had no variables, one year)
14:46:34 <Figs> lol
14:46:36 <Figs> I should do that
14:46:37 * SimonRC tries to find the funny Java he made once
14:46:44 <Figs> that would be awesome....
14:46:54 <SimonRC> already been done
14:46:56 <Figs> actually I already have a stack as a linked list in my program
14:47:01 <SimonRC> unless you add a new twist...
14:47:21 <Figs> I'll probably stick with a wall of redirection though
14:47:37 <SimonRC> the program worked almost everywhere, it could detect which way the stack built.
14:47:43 <Figs> I was thinking of doing
14:47:49 <Figs> #define fuck ****
14:47:57 <Figs> typedef char brain;
14:48:04 <Figs> brain fuck pointer;
14:48:09 <Figs> at some point for fun
14:48:28 <Figs> reverse censoring!
14:48:51 <Figs> passing the code through gcc -E would censor it... :P
14:49:27 <Figs> but I don't know.
14:49:29 <Figs> I might not do that for this
14:53:46 <SimonRC> (We were set the task of writing a christmas-related program. I wrote this: http://compsoc.dur.ac.uk/~sc/tmp/xmastree.zip )
14:53:49 <SimonRC> :-)
14:54:08 <Figs> http://rafb.net/p/NMOgLP83.html
14:54:11 <SimonRC> Figs: actually that would be funny
14:54:12 <Figs> this seems to compile
14:54:29 <SimonRC> "Most/Least polite program"
14:54:33 <Figs> :P
14:54:42 <Figs> especially if I could do some punning
14:54:47 <SimonRC> though an intercal-corrector would be better for that title
14:54:53 <Figs> so that it totally changes the meaning after converting it
14:55:07 <Figs> intercal-corrector?
14:55:29 <SimonRC> you know that an INTERCAL requires the correct level of politeness to compile, right?
14:55:45 <SimonRC> *INTERCAL program
14:56:10 <Figs> ohh :P
14:56:11 <Figs> yeah
14:56:18 <Figs> have to say 'please' all the time and such
14:56:44 <Figs> I didn't realize I could nest structs in main
15:01:40 <Figs> OHH :D
15:01:52 <Figs> I need some rude text
15:04:20 * SimonRC has an idea
15:04:21 <Figs> could you please curse at me?
15:04:27 <SimonRC> what is this program supposed to do?
15:04:29 <Figs> I need a half paragraph of rude text
15:04:44 <Figs> Brain Fuck interpreter
15:04:48 <SimonRC> inspiration fails me.
15:04:51 <Figs> :'(
15:05:04 <SimonRC> try Wikipedia
15:05:13 <Figs> why do I only get cursed at when I don't want to be cursed at?
15:05:23 <Figs> I've asked in 3 places :'(
15:05:47 <SimonRC> seriously, try Wikipedia
15:06:01 <SimonRC> Where does it get the brainfuck from?
15:06:30 <Figs> input
15:06:33 <Figs> from the user
15:07:22 <SimonRC> ok...
15:07:24 <SimonRC> I have an idea,,,
15:07:43 <Figs> http://en.wikipedia.org/wiki/Category:Profanity
15:07:45 <SimonRC> You could write the program in Brainfuck initially, then port it to C, to get extra-weird C
15:07:50 <Figs> ;p
15:07:59 <Figs> a brainfuck interpreter in brainfuck fucks my brain
15:07:59 <SimonRC> or course, it will be more comprehensible to anyone familiar with idiomatic BF
15:08:11 <SimonRC> there are several around
15:08:20 <SimonRC> find one tat is well-commented, then port it badly
15:08:20 <Figs> I already wrote the interpreter in C
15:08:21 <Figs> :P
15:08:32 <Figs> I need a paragraph of cursing
15:10:31 <SimonRC> did you look at my java program?
15:10:59 <sp3tt> java is dirty
15:11:03 <Figs> yeah
15:11:11 <Figs> I don't know java though :P
15:11:15 <sp3tt> I won't tough java, even for money.
15:11:46 <SimonRC> it has some good techniquies, like a method with the same name as main's argument, everything being named after ___, and the ternary operator
15:12:22 <SimonRC> and of course, it performs recursion on the structure of a string, which really fucks up the C programmers' brains
15:12:30 <Figs> :P
15:13:34 <SimonRC> ooh, that's a good technique: you can emulate immutable lists quickly using array slices, then represent an array slice as a struct that has three ints in it.
15:13:49 <SimonRC> and you know what else has three ints? That's right, a color!
15:13:56 <Figs> :P
15:14:00 <SimonRC> so you end up representing lists as colors
15:14:08 <SimonRC> I just thought that up, BTW
15:14:22 <SimonRC> be sure to re-suse unralted stuff as much as possible
15:15:00 <SimonRC> be sure to split the struct into seperate arguments for no good reason too occasioanlly
15:15:33 <SimonRC> and with small representation of immutable lists is great for your FP techniques (confusing for c programmers)
15:15:45 <SimonRC> sneak in Haskell-style classes if you can
15:17:44 <navaburo> FP? functional programming?
15:19:58 <SimonRC> yes
15:20:09 <SimonRC> of course, a function curried over two 1-word arguments is really just a function pointer and two ints
15:20:18 <SimonRC> that will fit nicely into a color too!
15:20:26 <SimonRC> so now a color is a function
15:20:35 <SimonRC> except when it isn't
15:21:50 <ehird`> SimonRC: lists as clours... hmm... but will the max value be 255?
15:22:55 <SimonRC> no these are 3-word colours for "flexibility"
15:23:16 <SimonRC> mybe you could abuse struct_tm or something else instead
15:23:26 <SimonRC> be sure to cast a lot
15:24:40 <ehird`> hmm
15:24:42 <ehird`> 3-word colours
15:25:00 <ehird`> "now you don't have to be a human to use your whole eye range!"
15:25:16 <SimonRC> heh
15:26:17 <ehird`> "note: lists-as-colours may only be efficiently used by little green men with exceptional eyesight."
15:26:44 <SimonRC> the most confusing FP technique is passing a function to another function, which passitslef to it
15:27:11 <SimonRC> e.g. f g x = g (foo x) f (bar x)
15:32:27 <navaburo> SimonRC: what do foo and bar represent in that line?
15:33:28 <SimonRC> just some functions or other
15:50:18 <Figs> hello.
15:50:29 <Figs> I have decided.
15:50:41 <Figs> since it's almost 8 am, I will not sleep.
15:50:53 * Figs shall break his awake-ness record!
15:51:28 * Figs is at 16 hours of awakeness right now.
16:04:09 <ehird`> SimonRC: f foo bar g x = g (foo x) f (bar x) -- confusing function generator, takes two arguments
16:04:24 <ehird`> "f foo bar -- returns a confusing function"
16:06:47 <Figs> http://www.muppetlabs.com/~breadbox/bf/quine.b.txt
16:27:08 -!- Keymaker has joined.
16:27:21 <Keymaker> http://koti.mbnet.fi/yiap/programs/smurf/99.smu
16:27:27 <Keymaker> 99 bottles of beer in Smurf
16:27:28 <navaburo> Figs: its outputting itself?
16:27:44 <Figs> yeah
16:27:59 <Figs> brainfuck quine :P
16:28:03 <Figs> I thought it was pretty neat
16:29:51 <navaburo> ok
16:30:02 <Keymaker> one can run the program by using safalra's smurf interpreter, for example, which can be found here: http://www.safalra.com/programming/esoteric-languages/smurf/interpreter/
16:30:40 <navaburo> wait... ooo, quines _are_ non trivial
16:30:48 <Figs> :P
16:33:52 -!- calamari has joined.
16:34:05 <Sgeo> Hi calamari
16:34:11 <calamari> hi Sgeo
16:35:36 <Figs> howdy squid-ly one .
16:35:40 <Figs> how goes thee?
16:35:59 * Sgeo feels moderate guilt
16:36:52 <Figs> why?
16:37:54 <Sgeo> PSOX won't be EsoAPI compatible..
16:38:27 <Sgeo> and isn't calamari the EsoAPI person?
16:39:00 -!- Keymaker has quit.
16:39:06 <calamari> Figs: goes ok :)
16:39:13 <navaburo> ahhhhhhhhhh
16:39:16 <calamari> Sgeo: yeah I am.. what's up?
16:39:24 <navaburo> noooo recursion
16:39:37 * navaburo tries to write a quine
16:39:43 <Sgeo> http://sgeo.diagonalfish.net/esoteric/psox.txt
16:42:19 <Figs> I wrote a quine in C++ before :P
16:42:28 <Figs> (ie, not using printf)
16:43:03 <Figs> the trick I think was to do printf myself C++ constructs :P
16:46:03 <navaburo> ?
16:46:14 <navaburo> like with individual chars?
16:46:24 <Figs> lemme see if I still have it
16:48:04 <Figs> nah
16:48:07 <Figs> I dunno where it is
16:48:09 <Figs> maybe my logs
16:51:34 <Figs> nope.
16:51:37 <Figs> damn ;P
16:54:09 <navaburo> allright, well i allready broke down and cheeted
16:54:17 * navaburo looksed at http://www.nyx.net/~gthompso/self_c.txt
16:54:45 <Figs> do it without printf :D
16:54:47 <navaburo> the trick commonly employed there is to use printf formatting
16:54:51 * SimonRC goes
16:54:58 <Figs> bye SimonRC
16:55:04 * Figs comes.
16:55:05 <Figs> ...
16:55:06 <Figs> wait
16:55:07 <Figs> :P
16:55:16 <Figs> that sounded bad
16:55:22 <SimonRC> (you could just use the Ken Thompson technique)
16:55:24 * SimonRC goes
16:55:26 <navaburo> the format chars are used once as format chars and once as just plain output
16:55:39 <Figs> ;)
16:55:53 <navaburo> clever
16:56:00 <Figs> ohh, how about a preprocessor quine? :P
16:56:30 <navaburo> elaborate...
16:56:47 <Figs> I like the last one
16:56:56 <Figs> "" <-- shortest possible quine
16:57:03 <Figs> (ie, 0 bytes)
16:57:16 <Figs> "Worst Abuse of the Rules" award in 1994 IOCCC
16:57:49 <navaburo> meh gcc doesnt like it ;)
16:58:05 <navaburo> well... actually ld freaks out
16:58:24 <Figs> you have to be creative with a makefile to make it work :)
16:58:31 <Figs> but you can do it
16:58:38 <navaburo> i dont like that
16:58:45 <navaburo> you shouldnt be allowed to use a make file!
16:59:04 <Figs> that's why it's the "worst abuse of the rules EVAR"
16:59:07 <Figs> :P
16:59:09 <navaburo> if you REALY want one, put it at the top of the .c file
16:59:20 <Figs> since they require you to provide build instructions or a portable make file
16:59:27 <navaburo> ooook
16:59:39 <Figs> ooh
16:59:43 <navaburo> i figgured it was something like, it HAS to compile with gcc foo.c
16:59:43 <Figs> thunder in San Diego
16:59:47 <Figs> I bet it'll rain
16:59:52 <Figs> first time in 100+ days supposedly
17:00:00 <Figs> nah :P
17:00:05 <Figs> read the rules :P
17:00:17 <navaburo> it is curious that it is difficult to write quines
17:00:34 <Figs> http://www0.us.ioccc.org/2006/rules.txt
17:00:45 <Figs> prove something mathematical about quines :P
17:01:00 <navaburo> i wonder if there are turing-complete languages with resonable output capability that cannot implement a quine
17:01:35 <Figs> depends if you can look at your own source code or not
17:02:35 <navaburo> right.... actually , it may be trivial to write a quine in C
17:03:10 <navaburo> what about compiling with -g and parsing the running binary for the debug info containing the source code?
17:04:07 <Figs> 9.9
17:07:23 <Figs> http://www0.us.ioccc.org/1987/westley.c
17:09:04 <Figs> http://www0.us.ioccc.org/2004/gavin.c << Mini-OS
17:11:05 <Figs> quote:
17:11:06 <Figs> This is a 32-bit multitasking operating system for x86 computers,
17:11:06 <Figs> with GUI and filesystem, support for loading and executing user
17:11:06 <Figs> applications in elf binary format, with ps2 mouse and keyboard drivers,
17:11:06 <Figs> and vesa graphics. And a command shell. And an application -
17:11:06 <Figs> a simple text-file viewer.
17:11:46 <navaburo> wtf
17:13:18 <Figs> that's an IOCCC winner :)
17:13:20 <Figs> for 2004
17:13:35 <navaburo> it doesnt compile
17:13:54 <Figs> :P
17:14:14 <Figs> you need the rest of it
17:14:18 <Figs> http://www0.us.ioccc.org/years-spoiler.html
17:14:24 <Figs> scroll down to gavin - Mini-OS
17:15:04 <Figs> and you have to do it on Linux :P
17:17:26 <navaburo> ight, well time for the gym
17:18:00 <navaburo> but i am going to think (mathematically) about these 'quines' later...
17:20:41 <calamari> Sgeo: I wrote EsoAPI such that I could fit its implemention into a 512-byte boot sector. I don't mind if you come up with something different.. hehe
17:22:00 <Figs> o.o
17:22:28 <Figs> http://rafb.net/p/mbphjc24.html
17:25:10 -!- mouflon has left (?).
17:35:01 -!- Sgeo has quit ("Ex-Chat").
17:37:59 <navaburo> grrrrrr gym closed
17:38:28 -!- Tritonio has quit (Read error: 104 (Connection reset by peer)).
17:48:38 <Figs> http://rafb.net/p/iv2lMb85.html
17:57:20 <Figs> http://rafb.net/p/MJYs2L76.html
17:57:23 * Figs is getting weirder
18:14:54 <Figs> did you know you can impliment exceptions in C with setjmp and the preprocessor?
18:15:00 <Figs> http://www.di.unipi.it/~nids/docs/longjump_try_trow_catch.shtml
18:15:10 <Figs> TRY/CATCH/FINALLY
18:19:39 -!- Tritonio has joined.
18:21:07 <Tritonio> I finally gave my project...........................
18:21:18 <Tritonio> what a relief...
18:24:31 <Figs> http://rafb.net/p/I39o8e51.html
18:24:38 <Figs> Tritonio: prepare to be terrified
18:24:48 <Figs> it isn't so evil yet
18:24:51 <Figs> but it will be soon
18:25:55 <Tritonio> wtf is this?
18:26:13 <Figs> it's my setjmp hello world program
18:26:19 <Figs> in valid C
18:26:37 <Tritonio> <setjmp.h>
18:26:44 <Tritonio> what's that header?
18:27:09 <Figs> it's the header for jmp_buf, setjmp, and longjmp
18:27:24 <Tritonio> which are?
18:27:33 <Figs> fancy gotos
18:27:56 <Tritonio> ok i think i got it....
18:28:11 <Figs> jmp_buf stores the state of the program at a particular point so you can jump back to it and continue
18:28:25 <Figs> (the stacks and things)
18:28:35 <Figs> so you can impliment complex exception handling and such directly in C
18:28:37 <Tritonio> (foo) what is that?
18:28:48 <Figs> foo is the jmp_buf
18:29:10 <Figs> setjmp returns 0 when called
18:29:14 <Tritonio> you first create snapshot of the stacks etc....
18:29:19 <Figs> basically
18:29:32 <Figs> then when you call longjmp with the jmp_buf and an int
18:29:37 <Figs> it returns the int when you go back
18:29:49 <Figs> so here, I use the ternary operator do basicall do false first
18:29:53 <Figs> then true later
18:30:00 <Figs> _ and __ are functions
18:30:07 <Tritonio> very nice...
18:30:29 <Figs> (x? __ : _)(f); executes __(f) if x is true, or _(f) if it is not
18:31:03 <Figs> I'm an evil son-of-a-bitch :D
18:31:03 <Tritonio> yeap i know... wait a moment.
18:31:13 <Tritonio> does the true part ever execute?
18:32:05 <Tritonio> no wait
18:32:16 <Figs> yes
18:32:17 <Tritonio> what is the second parameter of longjmp?
18:32:24 <Figs> the value to return when you go back
18:32:30 <Tritonio> ok i got everything
18:32:31 <Tritonio> lol
18:32:33 <Figs> so when it goes back, it returns 1
18:32:34 <Tritonio> it's funny
18:32:49 -!- calamari has quit ("Leaving").
18:33:08 <Tritonio> so you first call setjump that returns 0 and stores the current state at the same time
18:33:18 <Tritonio> because it returned zero you execute _
18:33:18 <Figs> basically
18:33:36 <Tritonio> and then _ jumps back to the point where you saved the state of the program
18:33:42 <Tritonio> but know it returns 1
18:33:46 <Tritonio> so __ is executed
18:33:51 <Tritonio> and exit is called
18:33:53 <Tritonio> nice one
18:33:54 <Figs> yes
18:34:02 <Figs> wait until I add variable flow based on time...
18:34:36 <Tritonio> you really don't have too... ;-)
18:34:38 <Figs> as long as it eventually does the same thing, I can have it go about doing things in multiple different ways
18:34:47 <Figs> oh, but I do!
18:34:56 <Figs> I want to get the worst abuses of flow award
18:35:13 <Figs> sadly, I doubt I'll be able to beat the true masters of the art
18:35:20 <Figs> but you never know ;)
18:35:23 <Tritonio> hehe
18:35:54 <Figs> non-local jump, function pointers, etc are not exactly typical
18:51:14 -!- jix_ has joined.
19:11:52 -!- ihope_ has joined.
19:14:14 -!- ihope_ has quit (Read error: 104 (Connection reset by peer)).
19:20:02 -!- sebbu2 has joined.
19:24:30 <Figs> http://rafb.net/p/WMKiDv18.html
19:32:44 -!- oerjan has joined.
19:33:01 <Figs> hi oerjan
19:33:05 <Figs> you were partially write
19:33:07 <Figs> *right
19:33:10 <Figs> there was a bug there
19:33:18 <Figs> any way, http://rafb.net/p/WMKiDv18.html
19:33:46 <Figs> I am now working on finding evil things to make my flow crazy
19:35:35 <oerjan> eek
19:35:55 <Figs> and it will only get better (read: worse) as I find ways to make it more complex
19:40:00 -!- sebbu has quit (Read error: 110 (Connection timed out)).
19:49:40 -!- pikhq has quit (Read error: 110 (Connection timed out)).
19:56:34 -!- sebbu2 has quit (Connection timed out).
20:00:29 <Figs> http://rafb.net/p/LvIgFU52.html
20:04:50 * Figs prods oerjan
20:06:11 <oerjan> you gotta do better than that, it was almost as easy as plain code to understand
20:06:44 <Figs> yes, but can you see how it will get more complex when you scale it up? :P
20:07:24 <Figs> especially when I start mixing it with gotos and longjmps...
20:07:49 <oerjan> i suppose
20:11:46 -!- calamari has joined.
20:14:06 -!- sebbu has joined.
20:17:10 -!- sebbu has left (?).
20:28:34 <bsmntbombdood> Figs: what's the point of that?
20:37:38 -!- pikhq has joined.
20:38:59 <SimonRC> You can't write obfuscated code in bits.
20:39:09 <SimonRC> You must write it all at once, otherwise it is too modular.
20:40:15 <bsmntbombdood> int main() { 0x12, 0x34, 0x42, ...}
20:40:34 <SimonRC> navaburo: Ken Thompson wrote an easily-memorised quine.
20:40:38 <bsmntbombdood> errr
20:40:45 <bsmntbombdood> int main[] {...}
20:41:55 <Figs> ;p
20:42:13 <Figs> I'm practicing my techniques
20:42:17 <Figs> and thinking up new ideas
20:42:33 <Figs> it's a good way to force myself to read more of the documentation
20:43:01 <Figs> I'm starting to like C
20:43:13 <Figs> just for the fact that it has less weird cases than C++
20:43:21 <Figs> not much more readable though
20:43:25 <Figs> :P
20:44:01 <pikhq> You want a weird case?
20:44:12 <Figs> as many as you know.
20:44:22 <pikhq> A char is neither a signed or an unsigned case. ;)
20:44:26 <pikhq> s/case/char/
20:44:35 <Figs> ok
20:44:41 <Figs> makes no difference to me
20:44:49 <Figs> I always thought signed chars were kind of silly.
20:45:08 <Figs> :P
20:45:26 <Figs> I mean the fact that C lacks constructors and destructors makes it simpler to reason about
20:45:52 <Figs> the fact that C lacks methods is at once annoying but simplifying
20:46:28 <Figs> each part is easier to reason about in general since there are less weird exceptions to the rules (or so it seems)
20:47:56 <Figs> I think I'll really like haskell for that in some ways when I get to it
20:49:43 <SimonRC> yes
20:49:45 <SimonRC> Haskell rocks
20:50:08 <SimonRC> pikhq: um
20:50:38 <SimonRC> Actually, chars are either signed of unsigned by default. Implementations may choose.
20:50:41 <SimonRC> *or
20:59:20 -!- Sukoshi has joined.
20:59:25 <Sukoshi> pikhq: Ya here?
20:59:30 <pikhq> Jes.
20:59:35 <Sukoshi> You use Gentoo, right?
20:59:42 <Figs> hi Sukoshi
20:59:49 <Sukoshi> Hiyo Figs.
20:59:52 * pikhq nods
21:00:03 <Sukoshi> How do you have the time to set up Gentoo?!
21:00:11 <Sukoshi> *Nothing* comes in the install by default!
21:00:39 <pikhq> sudo emerge -av zsh elinks screen irssi bitlbee
21:00:49 <pikhq> Start up screen, get irssi, bitlbee, and elinks setup.
21:00:53 <Sukoshi> No X? :P
21:00:56 <pikhq> sudo emerge -av ratpoison firefox
21:01:12 <pikhq> Get a simple window manager set up and firefox. Install Conkeror for my sanity.
21:01:19 <pikhq> Finally, sudo emerge -av kde-meta
21:01:28 <pikhq> Voila. I've got 90% of what I need.
21:01:38 <Sukoshi> I'm doing an emerge update --deep world now, because I changed some use flags that were built shoddily into some packages I made.
21:01:53 <pikhq> Try "emerge -avuDN world".
21:01:55 <Sukoshi> Does that grab everything that your user flags want?
21:02:10 <Sukoshi> Well, hrm. I've been doing that since 2 hours ago.
21:02:22 <pikhq> -avuDN will also rebuild packages with changed use flags.
21:02:34 <Sukoshi> Is N --newuse?
21:02:40 <pikhq> Yeah.
21:02:40 <Sukoshi> Because I added that in too.
21:02:41 <Figs> bbl
21:02:42 -!- Figs has left (?).
21:02:43 <Sukoshi> Alright.
21:02:52 <Sukoshi> So it'll grab everything my USE flags told it to?
21:02:58 <pikhq> Right.
21:03:00 <Sukoshi> Joy.
21:03:15 <Sukoshi> Then everything shall be set up after this, and I can sit down to configging fun.
21:03:36 <Sukoshi> Still, some of the use flags are annoying. My first build of imagemagick did not have jpg support.
21:03:47 <Sukoshi> Because I didn't explicitly put jpeg in USE :P
21:03:53 <pikhq> Try using the desktop profile.
21:04:03 <Sukoshi> Hm. Doesen't it come by default?
21:04:06 <pikhq> (which I ought to switch to, instead of my really, really long USE list)
21:04:15 <Sukoshi> Yeah, I have a really really long USE list.
21:04:17 <pikhq> No, the default profile is very bare-bones.
21:04:27 <Sukoshi> Ack. Syn. No wonder.
21:04:42 <Sukoshi> Ah! See, the install handbook should say that instead of ``look at the other profiles''.
21:05:48 <Sukoshi> The trouble is, after this long compile/wget marathon, now I have to see if everything else works.
21:06:18 <Sukoshi> And set up my Japanese and dev environments.
21:06:52 <pikhq> I usually set aside a weekend to get comfortable with a Gentoo install.
21:07:21 <Sukoshi> I *had* set up a day, but it turned out that this day turned out very busy, and this weekend my busiest weekend of the summer :P
21:07:33 <pikhq> It's still summer for you?
21:07:35 <pikhq> Lucky.
21:07:54 <Sukoshi> Well, unlike y'all midwestern bumpkins, we don't end for summer when it isn't even hot.
21:08:07 <Sukoshi> (Joke.)
21:08:43 <pikhq> "Midwestern"?
21:08:47 <pikhq> What's your locale, again?
21:08:53 <Sukoshi> Or non Californian then. Happy?
21:09:03 <pikhq> Oh.
21:09:18 <Sukoshi> Well, I know a lot of the people in the Midwest and some from the East end school around end of May?
21:09:40 <pikhq> Yeah; I've got summer from the end of May to mid-August.
21:09:43 <Sukoshi> Which I've never understood, because summer's heat doesen't even come until mid-June, when the 95 F temperatures start becoming normal.
21:09:56 <pikhq> 95F temperatures?!?
21:10:03 -!- calamari has quit ("Leaving").
21:10:05 <Sukoshi> This is California, not frigids-ville :P
21:10:18 <Sukoshi> It's funny seeing you people on the news literally dying in heat waves of 92 F.
21:10:20 <pikhq> Oh, so it's unbearable-temperature-ville.
21:10:21 <bsmntbombdood> it's been regularly 105f here :(
21:10:37 <Sukoshi> Because it's fairly common to reach into the mid-90s in summer here.
21:10:48 <pikhq> 95 is an unusual temperature. . .
21:11:03 <pikhq> We're usually in about the 80s during summer. . .
21:11:15 <pikhq> (something in the 60s at night)
21:11:26 <Sukoshi> Wow. That's only a few degrees above room temperature.
21:12:00 <Sukoshi> bsmntbombdood: Live around Arizona/New Mexico/thereparts?
21:12:19 <pikhq> We also have negative humidity. :)
21:12:35 <Sukoshi> California generally does, except for this freakish summer.
21:12:46 <Sukoshi> But our heat is all dry.
21:13:06 <pikhq> Well, in that case, mid-90s wouldn't be all that bad.
21:13:20 <Sukoshi> Ah, yes. We don't get the New York style humid-heat.
21:13:31 <Sukoshi> That there's a killer from 85 up.
21:13:45 <bsmntbombdood> Sukoshi: colorado
21:13:59 <Sukoshi> bsmntbombdood: Hmph. It gets that hot in California?
21:14:05 <Sukoshi> *Colorado even
21:14:12 <Sukoshi> I always thought it was cooler because it was higher up.
21:14:40 <pikhq> bsmntbombdood: Where in Colorado are you?
21:14:47 <bsmntbombdood> pikhq: longmont
21:15:04 <pikhq> Ah. Yeah, you're roasting.
21:16:40 <Sukoshi> I shall now leave to study as soon as I determine what emerge is compiling.
21:17:13 * pikhq enjoys the weather out by Colorado Springs. ;)
21:17:50 <bsmntbombdood> 80f in the summer, wow
21:18:10 <pikhq> Well, lower nineties this week. . .
21:18:52 <oerjan> bsmntbombdood: clearly on a good day. at least by Trondheim standards.
21:19:11 <bsmntbombdood> what?
21:20:05 <oerjan> in Trondheim, 80 would be a good summer day. 60 would be slightly below average.
21:20:32 <Sukoshi> Eastern Europeans don't count, because you guys don't even know the meaning of the word ``sunlight'' :P
21:20:34 <oerjan> or thereabouts.
21:20:43 <oerjan> "Eastern"?
21:20:50 <Sukoshi> Ok, Europeans in general.
21:21:17 <oerjan> that 80 day would be sunny, of course, and the 60 probably rainy.
21:21:19 <bsmntbombdood> oerjan: what about in winter?
21:21:36 <oerjan> in winter it usually hovers unpredictably around 32.
21:22:12 <pikhq> Both warmer and colder than Colorado. XD
21:22:17 <bsmntbombdood> i don't know why people think colorado is cold
21:22:34 <pikhq> bsmntbombdood: It's the snowstorms that do it.
21:22:42 <bsmntbombdood> there's not even much snow
21:22:51 <pikhq> Not pay attention in December?
21:22:54 <bsmntbombdood> it's 100 in the summer and rarely below 32 in the winter
21:24:52 <bsmntbombdood> and not much more than a foot of snow each winter
21:27:33 <pikhq> http://en.wikipedia.org/wiki/December_20-21%2C_2006_Colorado_Blizzard
21:27:35 <pikhq> *cough*
21:27:57 <SimonRC> suck on that EB!
21:28:14 <bsmntbombdood> that's faaaar from typical
21:28:17 <bsmntbombdood> and very awesome
21:28:26 <pikhq> Well, yes.
21:30:41 <bsmntbombdood> utah stole all our snow that one year
21:33:32 <Sukoshi> One last thing.
21:33:39 <Sukoshi> Is it bad to add -perl to the USE flags list?
21:34:23 <Sukoshi> (Says me after 3 hours of emerging.)
21:35:09 <Sukoshi> I mean, I don't care about neither Perl, nor Ruby, so I didn't think -perl or -ruby would be bad.
21:35:23 <Sukoshi> But I added in python, so.
21:36:52 <pikhq> -perl would only disable that as an optional dependency, so it wouldn't be a bad thing.
21:37:15 <pikhq> (although you'll still *have* Perl, since Portage uses Perl extensively)
21:37:54 <Sukoshi> I thought so.
21:38:16 <Sukoshi> I have concluded that libc is being built now.
21:38:25 <Sukoshi> Hooray. This is what I switched from Slackware for.
22:48:28 -!- jix_ has quit ("CommandQ").
22:55:43 -!- ehird` has quit.
23:36:13 -!- mtve has quit (Read error: 110 (Connection timed out)).
23:37:21 <SimonRC> oooh, pretty: http://www.teamhassenplug.org/GBC/
23:44:33 -!- Tritonio has quit (Remote closed the connection).
←2007-08-25 2007-08-26 2007-08-27→ ↑2007 ↑all