←2006-08-19 2006-08-20 2006-08-21→ ↑2006 ↑all
00:10:35 -!- Razor-X has left (?).
00:10:41 -!- Razor-X has joined.
00:17:55 <ihope_> OMGJAPANESE
00:18:24 <Razor-X> Yeah. Crazy i'nt it?
00:38:40 <GregorR> http://www.donotputthebaby.com/index.php?s=Snakes
00:47:09 <jix> LOL?!
00:47:32 <jix> GregorR: there was a discussion 'bout that movie on #codegolf
00:47:39 <jix> just in this moment
00:47:53 <GregorR> PASTE THE LINK
00:47:56 <GregorR> YOU KNOW YOU WANT TO
00:48:16 <GregorR> DO IT
00:48:17 <GregorR> DOOOOOOOOOOOOOO IT
00:48:21 <jix> done
00:48:25 <GregorR> 8-D
00:48:34 <jix> WTF?! i posted the link just because you told me OMG!?
00:48:40 <GregorR> :P
00:49:34 <jix> np: The Sounds - Hope Your're Happy Now [ Living in America ]
00:54:08 -!- ihope_ has quit (Connection timed out).
01:01:25 <Razor-X> I only heard about the movie recently. Sorry, I'm not much into pop culture.
01:01:34 <Razor-X> But I could only think about bestialities when I heard the name.
01:05:03 -!- oerjanj has joined.
01:05:42 <Razor-X> *beastialities even.
01:07:27 * pikhq had a crazy idea. . .
01:07:44 * oerjanj is listening
01:07:48 <pikhq> Imagine a programming language which operates on a Rubik's cube.
01:08:20 <oerjanj> mmm... group theory
01:08:32 * pikhq has nothing fleshed out; just a random, odd idea
01:09:27 <oerjanj> it is a bit small for a memory...
01:09:29 <RodgerTheGreat> hm. as in using the cube as memory or what?
01:09:41 <pikhq> Just idle thought.
01:09:48 <RodgerTheGreat> yes. you'd want something larger, unless you had something like a stack in addition.
01:09:55 <oerjanj> perhaps as pointer to memory
01:10:04 <oerjanj> although it would still be finite then.
01:10:23 <pikhq> Or make the memory a *set* of Rubik's cubes.
01:10:25 <RodgerTheGreat> you could perhaps use the cube as your working register(s), with memory and program space seperate.
01:10:51 <oerjanj> so a RC state would be your basic data type
01:11:07 <Razor-X> You mean you have to line up the cubes right to access the memory?
01:11:16 <RodgerTheGreat> map a word of memory to each face, and then perform calculations with rotation instructions.
01:11:25 <pikhq> . . . And no, I'm not wanting to flesh this out any further.
01:11:31 -!- kipple has quit (Read error: 110 (Connection timed out)).
01:11:37 <Razor-X> Sounds like your average 3D language to me.
01:12:38 <oerjanj> there are many options for such a language
01:12:45 <pikhq> The memory would be composed of Rubik's cubes. . . All operations on it would be "rotate face foo". . .
01:13:02 * pikhq is fleshing this out even though he doesn't want to. . . GAH!
01:13:17 <oerjanj> there is no escape
01:13:33 <pikhq> I go in here working on an Esolang once, and I'm *stuck*.
01:13:35 <pikhq> Shit.
01:13:36 <pikhq> :p
01:13:58 <oerjanj> it would be simple to make a BF clone based on this idea
01:14:05 <Razor-X> NO
01:14:17 <Razor-X> <Darth Vader> NOOOOOOOOOOOOOOOOOOO!!!! </Darth Vader>
01:14:37 * oerjanj bows to the majority
01:14:44 * pikhq wonders how addition could be expressed in terms of rotating a cube. . .
01:14:48 <oerjanj> the screaming majority
01:15:02 <Razor-X> Yay.
01:15:04 <oerjanj> it would be group multiplication
01:15:47 <pikhq> Hmm.
01:15:57 <jix> pikhq: rubics cube rules... but i'm slow at solving them was like 4 minutes or something
01:16:20 <oerjanj> i recall that there is a pattern of rotations that takes more than a thousand repeats to return to the initial state, that would
01:16:35 <oerjanj> give you increments modulo a somewhat large number
01:16:36 <pikhq> jix: I can't remember how to solve the last layer (that's what brought me to this evil idea).
01:16:49 <jix> pikhq: depends on which method you choose
01:16:51 <oerjanj> basically turn one face, then the whole cube
01:17:10 * oerjanj sometimes did this when bored
01:21:12 <oerjanj> i remember there was a trick using commutators: do rotation 1, then rotation 2, then reverse rotation 1, then reverse rotation 2
01:21:59 <jix> oerjanj: you do that to rotate edges on the last layer (if you use the algorithm i use)
01:22:02 <RodgerTheGreat> the other fun thing would be to use the cube for I/O, somehow.
01:22:07 <oerjanj> where each rotation can be a more complicated operation
01:22:39 <oerjanj> the thing about that is that anything not touched by both rotations will not be moved by the combination
01:23:17 <pikhq> RodgerTheGreat: Yes! Make I/O just a special cube in the memory!
01:23:18 <pikhq> >:D
01:24:07 <oerjanj> this makes me think of C-intercal's turing tape I/O
01:24:41 <oerjanj> where you have to know everything that was previously inputed/outputted
01:25:13 <oerjanj> in order to know the right thing to put next
01:26:10 <oerjanj> except this RC version would be more difficult since you can't reach every state with just one operation
01:26:28 <oerjanj> operation=rotation in this case
01:27:14 <oerjanj> or maybe the final state of the cube would be the entire output? but then it would be bounded in size
01:27:14 <RodgerTheGreat> well, we should allow the program to base it's actions on the contents of each cube.
01:27:51 <RodgerTheGreat> if a programmer requires a specific orientation, they'll have to "solve" the cube first.
01:28:11 <RodgerTheGreat> this would lend itself toward allowing the creation of libraries.
01:28:27 <oerjanj> uh, this could be _worse_ than malbolge...
01:28:55 <RodgerTheGreat> #library_setstate_complete[green];
01:29:00 <RodgerTheGreat> etc
01:29:10 <CakeProphet> Hmmm... an esolang that functions like a rubix cube...
01:29:13 <CakeProphet> o.o
01:29:17 <RodgerTheGreat> it wouldn't be as bad as malbolge if you can build libraries.
01:29:44 <RodgerTheGreat> malbolge is a pain in the ass because it's almost impossible to reuse code in other programs.
01:30:03 <RodgerTheGreat> not to mention that memory is pretty limited.
01:30:20 <pikhq> I was thinking of making the only esoteric part of this being the Rubik's cube part.
01:30:32 * CakeProphet figures out how a programming language could work like brainfuck-style but with a rubix-cube like interface.
01:31:00 <pikhq> Hmm.
01:31:01 * RodgerTheGreat warns CakeProphet of Razor-X's hatred for BF-clones
01:31:07 <oerjanj> so, basically you would have RC states instead of ints as the basic data type?
01:31:15 <pikhq> oerjanj: Yeah.
01:31:31 <CakeProphet> Shit.... you got the idea before me.
01:31:33 <pikhq> . . . I think.
01:31:38 * CakeProphet didn't know we were already talking about this...
01:31:38 <RodgerTheGreat> you need a good way to map the faces of the cube to numbers.
01:31:56 <pikhq> Hmm.
01:32:08 <CakeProphet> Coordinates.
01:32:17 <RodgerTheGreat> possibly a 9-digit, base-6 variable type.
01:32:20 <oerjanj> i told you you can get numbers up to about 1500 with a combination of two rotations,
01:32:21 <CakeProphet> One for a surface... and one for the individual squares.
01:32:29 <RodgerTheGreat> hm.
01:32:42 <pikhq> Hmm indeed.
01:32:47 <CakeProphet> mmmm tuples
01:33:45 -!- bsmntbombdood has quit ("all your basment are belong to bsmntbombdood").
01:34:00 <CakeProphet> But... it would be difficult to keep track of what numbers are were.... would the numbers "move" with the rotations... or would they stay in place?
01:34:06 <Razor-X> Turing Tape IO is a PAIN.
01:34:40 <oerjanj> razor-X: you trying to program INTERCAL?
01:34:57 <Razor-X> oerjanj: I almost got a BF interpreter done.
01:35:08 <oerjanj> feel free to borrow parts from my Unlambda interpreter
01:35:12 <CakeProphet> Hmmm...
01:35:25 <CakeProphet> (surface, square)
01:35:25 <RodgerTheGreat> this is why I like my idea- ignore the actual rotations for values, just say each face is a variable, each cube represents a digit 0-5 (based on color).
01:35:52 <Razor-X> The idea was easy, and is essentially similar to most languages A) Test for input B) Modify state based on input.
01:36:32 <pikhq> Rotating is just how you set values to that variable.
01:37:00 <RodgerTheGreat> yes
01:37:19 <RodgerTheGreat> and preform math, in a vaguely Malbolge/INTERCAL style.
01:37:31 <CakeProphet> That would be mindboggling to code with... and I can't imagine anything working on it but... eh.
01:37:44 <RodgerTheGreat> it's doable.
01:37:51 <oerjanj> but what would be the connection to rubik's cube, other than the names of the commands?
01:37:53 <pikhq> I'm sitting here with my cube, figuring out arithmetic with it.
01:38:29 <CakeProphet> I'd imagine it'd be easy to make with like an associative array or something.
01:38:41 <RodgerTheGreat> depending on the instruction set, it could be as bad as DIS, or as easy as LISP with only primitive operators.
01:41:17 <oerjanj> if Face(1).center = Green then Face(2).rotateCW ?
01:43:05 <pikhq> Okay, arithmetic is going to be rather tricky. . .
01:43:11 <pikhq> Not impossible, just tricky.
01:43:26 * CakeProphet wants to implement a new number system...
01:43:37 <CakeProphet> Like... a 7 digit number system... or something...
01:44:03 <CakeProphet> 0 1 2 3 4 5 6 10 11 12 13 14 15 16 17
01:44:13 <CakeProphet> er... not 17
01:44:15 <oerjanj> septimal isn't new...
01:44:16 <CakeProphet> 20
01:44:24 * CakeProphet puts.
01:44:28 * CakeProphet puts
01:44:37 <CakeProphet> hmmm.... 3-digit number system?
01:44:41 <RodgerTheGreat> it seems like you'd want pretty complex loop constructs to accomplish anything/
01:44:51 <RodgerTheGreat> CakeProphet: Trinary, you mean?
01:44:54 <CakeProphet> Sure.
01:44:57 <RodgerTheGreat> like Malbolge.
01:45:03 <CakeProphet> Argh
01:45:14 <CakeProphet> Okay... a 42-digit number system ^_^
01:45:55 <pikhq> RodgerTheGreat: We're doing complex conditionals, along with a macro feature in the compiler/interpreter.
01:45:59 <RodgerTheGreat> H2G2-nary. :D
01:46:14 <pikhq> I'm not *that* cruel. :p
01:46:17 <RodgerTheGreat> pikhq: sounds awesome.
01:46:55 -!- tgwizard has quit (Remote closed the connection).
01:46:56 <oerjanj> but... wouldn't having a boolean datatype be cheating?
01:47:15 <CakeProphet> Is it... possible to cheat?
01:47:25 <CakeProphet> I mean... what's the test we're easing ourself out of? :D
01:47:59 <RodgerTheGreat> if you can do recursive function calls and returns and conditional evaluation, you get implicit temporary storage for free, so you could certainly synthesize math.
01:50:19 <oerjanj> hm, maybe there shouldn't be just six colors for each face...
01:50:28 <RodgerTheGreat> oh, god.
01:50:39 <oerjanj> maybe each color should be an entire Rubik's cube
01:51:13 <oerjanj> hm, infinite recursion might give some trouble...
01:51:16 <RodgerTheGreat> sweet jesus. fractal rubiks cubes.
01:51:18 <pikhq> Macros, not functions.
01:51:41 <RodgerTheGreat> if macros can contain macros, you're set. :D
01:52:03 <oerjanj> not if the macros are evaluated at compilation time...
01:52:37 <RodgerTheGreat> :(
01:52:38 <pikhq> We're talking "evaluatable via sed" kind of macros.
01:52:44 <pikhq> Not terribly complex.
01:52:48 <oerjanj> just to limit their power...
01:53:44 * CakeProphet feels like this is way out of league... probably because it is.
01:53:54 <oerjanj> well, the complexity doesn't so much enter into it as the question of whether the program can start running before every macro is expanded
01:54:34 <oerjanj> if it can, then recursive macros aren't so hard...
01:54:42 <RodgerTheGreat> mmm. tail recursion.
01:55:08 <oerjanj> you would need conditional expansion of macros though if you want your program to ever end
01:55:32 <RodgerTheGreat> or a "Halt" instruction.
01:56:12 <oerjanj> you still need it if you want to ever end a macro to continue with something else
01:56:53 <oerjanj> maybe Come From would be sufficient
01:57:09 <RodgerTheGreat> wouldn't nesting the macro call in a conditional take care of the infinite recursion "problem"?
01:57:20 * oerjanj wouldn't suggest something as trivial as Go To
01:57:23 <CakeProphet> Bah... True and False are old... I want new forms of truth..
01:57:51 <RodgerTheGreat> troolean operators. True vs. False vs. Maybe
01:57:57 <CakeProphet> You could set how "deep" the cubes go at the very beginning... with some sort of global variable.
01:58:05 <CakeProphet> 5 "layers"... if that makes any sense.
01:58:13 <RodgerTheGreat> I think I follow.
01:58:19 * pikhq kills CakeProphet
01:58:22 <oerjanj> i was sort of thinking you could assign values to each face
01:58:55 <oerjanj> building linked lists and the like...
01:59:33 <CakeProphet> recursions = 5 cube-within-cube-within-cube-within-cube-within-cube
01:59:43 <RodgerTheGreat> yes
01:59:46 <CakeProphet> :P
01:59:59 <oerjanj> if you limit recursions then you make memory finite
02:00:09 <CakeProphet> That's... even more mindboggling than the original idea.
02:00:16 <oerjanj> bad for turing-completeness
02:01:10 <CakeProphet> Well.... how could you have infinite recursions? I mean... how can the program work with an infinite number of "cubes".
02:01:20 <CakeProphet> er.. programmer... not program.
02:01:37 <oerjanj> maybe have six colors as base values and every other value a cube of other values
02:02:36 <pikhq> Maybe just have it be a real-life Rubik's cube, instead of cubes with an infinite amount of colors on it?
02:02:41 <oerjanj> might be too simple to program with
02:02:58 * CakeProphet still has no idea how the coding would work... he's still trying to conceptualize what allows you to code with rubix cubes.
02:03:17 <oerjanj> that last comment was not to pikhq but to myself
02:03:20 <CakeProphet> Pfft... but an infinite fractal cube sounds way more mindboggling.
02:03:36 <pikhq> But it's not a Rubik's cube.
02:03:51 <CakeProphet> It's a rubix fractal cube ^_^
02:03:53 <pikhq> rotate(R);
02:04:04 <oerjanj> it could have the same rotations, even if not the same colors
02:05:02 <CakeProphet> I mean... how would the code operate? I'm seriously stumbed on even that part? What allows addition, or even variable assigment to occur?
02:05:08 <oerjanj> maybe just two levels of values then: 6 colors and the cubes with colors
02:05:33 <pikhq> if(1,2,3 = 6)(rotate(L);)(rotate(F);)
02:05:52 <pikhq> CakeProphet: Pick up a Rubik's cube. Have fun.
02:05:54 <oerjanj> assignment would be by reference, i assume, it's really just a pointer
02:06:20 <pikhq> if(3,2,1 = 1)(cube++;)(cube--;)
02:06:28 <CakeProphet> I still... don't get it... :D
02:06:31 * pikhq is giving you example code. . .
02:06:39 * CakeProphet is a bit... uh... dense when it comes to stuff like this.
02:06:53 <pikhq> Let's say you have a simple Rubik's cube.
02:07:27 <pikhq> You assign white=0, red=1, blue=2, orange=3, green=4, and yellow=5.
02:07:53 <oerjanj> i suppose in the simple case you might not have assignment at all, but rather a reversible language of conditional rotations (or nearly reversible)
02:08:41 <pikhq> You have rotations, conditional rotations, movement to a different cube, and conditional movement to a different cube.
02:09:15 <pikhq> Hmm. Need a looping construct in there.
02:09:27 <CakeProphet> spin :D
02:09:32 <oerjanj> what would be the pattern of layout of different cubes? a tape, a meta-cube, variable names?
02:09:55 <pikhq> oerjanj: Just a straight row of cubes. . .?
02:10:09 <oerjanj> essentially a tape then
02:10:15 <CakeProphet> Yeah.. I get all that... but how... does that turn out to be code? How would you add and subtract?
02:10:36 <CakeProphet> Oh... there's more than one cube?
02:10:39 <oerjanj> which makes you earily close to a BF-clone
02:10:40 * CakeProphet facepalms.
02:10:44 <oerjanj> *eerily
02:10:55 <CakeProphet> Eh... just don't think in terms of BF...
02:11:04 <CakeProphet> There's no pointer ^_^
02:11:16 <pikhq> Pointer to a cube.
02:12:20 <oerjanj> but then it is a BF-clone
02:12:37 <CakeProphet> which is why I say: no pointer.
02:12:47 * CakeProphet is still working on how that work though...
02:12:56 <pikhq> By that logic, the Turing machine is a BF clone.
02:13:14 <CakeProphet> How would you do strings?
02:13:21 <oerjanj> yes they are so close...
02:13:37 <pikhq> Just some similarity.
02:14:31 * CakeProphet likes the fractal cube idea.
02:14:35 <CakeProphet> INFINITE CUBES MAAAAN
02:14:40 <oerjanj> at least with bounded cell values, translation is trivial
02:15:40 * CakeProphet wishes he could make one of those nifty languages that Turing machines can't deal with.
02:15:41 <pikhq> I'm not doing [!@#$!%^&] for my operations; I'm doing "while (1,2,3) (rotate (F); rotate (R); rotate(D'))".
02:16:26 <oerjanj> CP: just include an unsolvable problem (such as the Halting Problem) as an instruction
02:16:58 <pikhq> Also, I could do "macro rotateFRD' () (while (1,2,3) (rotate (F); rotate (R); rotate (D'));if (3,2,1) (rotateFRD')".
02:17:08 <pikhq> That's not exactly Brainfuckish.
02:17:19 * CakeProphet designs a language that works like jumprope.
02:17:34 <CakeProphet> Function rotations? :)
02:17:50 <oerjanj> jumprope?
02:18:13 <CakeProphet> I dunno... just thinking of how jump rope could be translated into a coding environment...
02:18:13 <pikhq> Hell, let's do it all in sexp's, just to seperate it from Brainfuck further.
02:18:29 <CakeProphet> Everybody else is doing physical-to-code analogies these days... I might as well do it too.
02:20:07 <RodgerTheGreat> I'm working on a fairly normal language, currently. I'm trying to make an esolang that has some real utility- like console, file, and socket I/O.
02:20:14 <CakeProphet> Each rotation of the jump rope is a change in state... and you can alter the speed of swingage... and which direction you're rotating, as well as the direction the "person" is facing, and somehow translate that to IO
02:20:31 <RodgerTheGreat> and function definitions that I can modify on the fly.
02:21:02 <CakeProphet> Yes yes... flexibility in functions would be nice.
02:21:36 <pikhq> That doesn't seem esoteric.
02:21:36 <CakeProphet> Oh oh oh oh !
02:21:42 <pikhq> (yet).
02:22:09 <CakeProphet> There could be TWO PEOPLE swinging a jumprope... and an arbitrary number of people inside the area of the rope... !
02:22:27 <CakeProphet> I could so easily turn that into brainfuck... but I'm going a different directions.
02:22:50 <RodgerTheGreat> well, it uses character-based instructions and a large amount of it's functionality is derived from self-modification. I think that's at least *kinda* esoteric...
02:22:55 <oerjanj> each of those people could be having their own, smaller rope
02:23:11 <CakeProphet> Fractal rope!
02:23:13 <RodgerTheGreat> I call it "SYNTHESYS".
02:23:16 <pikhq> That works. :)
02:23:51 <RodgerTheGreat> woot
02:23:56 <oerjanj> esotheric would be if the functions had to change themselves on the fly each time they were called
02:24:08 <oerjanj> and it was awkward to keep them stable
02:24:36 <RodgerTheGreat> there's a difference between "odd" esoteric, "theme" esoteric, and "sadism" esoteric.
02:25:03 <RodgerTheGreat> Chef is theme esoteric. Malbolge is sadism esoteric. BF is odd esoteric.
02:25:08 <CakeProphet> Hmmm.... actually... the jumprope idea would work nicely for event-based multi-processeing asynchronous loops
02:25:13 <RodgerTheGreat> and BF isn't even that odd,
02:25:23 <RodgerTheGreat> because it's been copied so many times.
02:25:46 <oerjanj> maybe it belongs to a fourth category: minimalistic esoteric
02:25:52 <oerjanj> AKA turing tarpit
02:26:15 <RodgerTheGreat> yeah, I could agree with that. Many things fall into both minimalistic and another category, though.
02:26:16 <CakeProphet> Sadism esoteric sounds like fun.... I like beating things.
02:26:22 <RodgerTheGreat> ...
02:26:22 <pikhq> I
02:26:41 <pikhq> I've got a theme minimalist esolang. . . whee. . .
02:26:47 <pikhq> CakeProphet: Malbolge is for you.
02:26:52 <oerjanj> i thought the rubik's cube language had some potential for sadism
02:27:08 <pikhq> oerjanj: It does, but I'm not feeling like it.
02:27:29 <RodgerTheGreat> the difference between odd and sadism lies in the instruction set.
02:27:43 <oerjanj> maybe an RC bytecode, similar to Malbolge but with rotations for self-modification
02:28:17 * RodgerTheGreat cringes.
02:28:42 <oerjanj> the source code would be a list of rotations - which would have side effects
02:29:14 <oerjanj> and you would need to keep track of the current state of the cube to know which side effect
02:29:47 <CakeProphet> Hmmm.. so back to codename "JumpRope"
02:30:14 * RodgerTheGreat works on refining the spec for synthesys.
02:30:36 <CakeProphet> The "rope" could be a pending vending... and the different processes are people... and the people "jump" everytime the event (jumprope) occurs.
02:30:46 <CakeProphet> ha... pending vending = pending even
02:30:48 <CakeProphet> tt
02:31:08 <oerjanj> that was a good vending
02:31:25 <oerjanj> (if you understood that you are probably norwegian)
02:31:56 <CakeProphet> And then reversing the jumprope is changing from input to output.
02:32:48 <oerjanj> would the programs be in the form of children's verse?
02:32:58 <CakeProphet> Obviously.
02:33:19 <CakeProphet> And... I'm still working on how fractal ropes would work ^_^
02:33:38 <oerjanj> well, some ropes could be faster than others
02:34:09 <CakeProphet> And... just for fun... we could have the option to have the child not jumping and being tripped by the rope... just cause I like to imagine a child planting their face in the concrete...
02:34:24 <CakeProphet> Yes... I had imagined you could set different speeds for different ropes.
02:34:35 <CakeProphet> But... if the ropes are events... you can't really choose speeds.
02:34:38 <oerjanj> and here i thought this was _not_ a sadist language
02:35:06 <RodgerTheGreat> Razor-X: will you kill me if SYNTHESYS makes use of a tape?
02:35:10 <CakeProphet> a "not jump" would be the equivalent of a pass.
02:36:11 <oerjanj> you could choose how many times a rope turns (including fractional) each time the outer rope turns
02:36:21 <CakeProphet> hmmm... so I wonder if the ropes are individual events... or if they're how -often- events should be checkes for... how would speed work if the ropes are events?
02:37:13 <CakeProphet> Or... I could just scratch the whole event thing... and go back to a more non-specialize d approach.
02:37:14 <oerjanj> for ropes in the output direction it doesn't seem like a problem
02:37:35 <oerjanj> only if you had inner ropes listening for external events
02:38:25 <CakeProphet> And of course there can be multiple ropes at different speeds on the same "layer"
02:38:26 <oerjanj> a rope might be listening for two events: it's own and the turning of an outer rope
02:39:17 * CakeProphet boggles at all the thoughts
02:39:20 <oerjanj> it would be somewhat similar to a window system
02:39:29 <CakeProphet> A... window system?
02:39:53 <oerjanj> as far as the passing of events, and nesting goes
02:40:15 <CakeProphet> Oh oh oh oh oh wait!
02:40:55 <CakeProphet> Let's reverse it... jumping is a pass... and tripping is an action... just cause that sounds better that way
02:41:07 <CakeProphet> I like imagining the children tripping when something happens.
02:41:49 <CakeProphet> hmmm... let's get out of the event-oriented paradigm... and imagine it more abstractly..
02:42:10 <oerjanj> THERE IS SUCH A THING AS A ROPE
02:42:25 <CakeProphet> We have... little kids, jumping at a somewhat steady tempo, that changes given new conditions... and we have ropes... covering certain numbers of these kids, spinning at their own speeds.
02:42:40 <CakeProphet> mmmORK
02:43:01 <CakeProphet> Imagine gravity mixed with ORK fixed with our original idea mixed with some other shit I can't think of right now.
02:43:19 <oerjanj> ORK would be the obvious implementation language for this...
02:43:25 <CakeProphet> Yup.
02:43:51 <CakeProphet> So... the more off-tempo the kids get with the rope... the closer and closer they get to tripping...
02:44:24 <CakeProphet> Tripping (or not tripping... or almost tripping... or any increment inbetween) can trigger certain bits and pieces of code...
02:44:36 <RodgerTheGreat> events.
02:44:57 <CakeProphet> Eh... sure... I was thinking more broadly though...
02:46:53 <CakeProphet> Imagining a programming happening in RL is quite.... astounding...
02:47:23 * RodgerTheGreat ponders the RNA preprocessing system in human cells.
02:47:39 <CakeProphet> A programming language modelled after DNA/RNA?
02:47:52 <RodgerTheGreat> makes one think- Our genetic code is turing complete.
02:48:14 <RodgerTheGreat> our cells constitute a *massively* parallel computer.
02:48:48 <CakeProphet> hmm... so what would happen if a kid -holding- a rope trips?
02:49:03 <RodgerTheGreat> cells can communicate locally via protein links, and more globally using hormones and other chemical messengers.
02:49:32 <RodgerTheGreat> DNA and internal chemical status are both program and memory space.
02:50:02 <RodgerTheGreat> ribosomes and transcription enzymes are the interpreter.'
02:50:25 <CakeProphet> Lysosomes.... carbage collectors? :D
02:50:31 <oerjanj> have you looked at chemical programming languages? they actually exist
02:50:56 <RodgerTheGreat> and at the same time, the ribosomes and the rest of the protein synthesis chain are the I/O system and flow control operators.
02:51:42 <oerjanj> one is called gamma calculus, if i remember right
02:52:30 <RodgerTheGreat> the code in our cells is primarily concerned with maintaining and building everything necessary for cell function, and in turn it's own execution. There is, however, plenty of processing power that could be used for other purposes.
02:53:16 <RodgerTheGreat> If I weren't studying computer science, I'd be studying biology.
02:53:19 <CakeProphet> So... lets say an event is triggered only when Kid1 is tripped... but Kid1 is holding a rope... so does it temporarily pause that rope from happening until Kid1 stands up (which itself could be set to a certain speed)?
02:53:41 <oerjanj> that's what viruses do, essentially...
02:54:22 <oerjanj> except they usually destroy the cell's own processing in the end
02:54:32 <RodgerTheGreat> yes. viruses are hacks that take advantage of existing cellular machinery to circumvent all the "unnecessary" maintenance code most cells have.
02:54:40 -!- bsmntbombdood has joined.
02:54:47 <RodgerTheGreat> only because they overload the cell's functions.
02:55:22 <RodgerTheGreat> there are some viruses that actually repair cells to an extent, to make them usable for reproduction. it's quite fascinating,
02:55:26 <oerjanj> hm, overload is an overloaded term here
02:55:28 <CakeProphet> Hmm.. I think I'm going to make a giant super-language called Playground... that has a bunch of different sub-languages built for certain applications..
02:55:45 <CakeProphet> hop-scotch, jumprope, red cover, duck duck goose.
02:55:52 <CakeProphet> All could be used as a language.
02:55:58 <CakeProphet> er... red rover
02:56:53 <RodgerTheGreat> I seem to remember a case with a strain that could infect algal cells whose chloroplasts had been damaged by UV-radiation of some kind. they would apply "patch" code that could rebuild the affected proteins before making use of the cell.
02:58:27 <oerjanj> hmm... but are there any symbiotic viruses? perhaps they exist but tend to get integrated into the cell's own DNA
02:59:03 <oerjanj> but then they wouldn't still be viruses. hm.
02:59:10 <RodgerTheGreat> I feel that the primary requisite for life, contrary to the complex list posited in most biology texts, is simply reproduction with inherited change. Viruses are alive, because they are not static.
02:59:23 <RodgerTheGreat> retroviruses integrate with host DNA.
02:59:43 * CakeProphet considers computer code a form of life.
03:00:08 <RodgerTheGreat> in fact, retroviruses are often used by genetic engineers as an easy way to patch existing organisms.
03:00:08 <oerjanj> yes, but by symbiotic i mean mutually benifical rather than parasitic
03:00:29 <RodgerTheGreat> well, I don't know of any offhand, but it's certainly possible.
03:00:49 <CakeProphet> Hmmm... could you synthesis a artificial virus?
03:01:06 <RodgerTheGreat> there are few viruses that can reproduce without destroying their host, though..
03:01:10 <RodgerTheGreat> CakeProphet: yes
03:01:18 <CakeProphet> Such a "created" viruses could be used for beneficial crap.
03:01:59 <RodgerTheGreat> sequence the handful of genes your virus needs, and then PCR millions of copies.
03:02:45 <CakeProphet> We could patch all sorts of problems that way
03:02:59 <RodgerTheGreat> introduce the raw DNA loops to some prokaryotes and disrupt their cell walls. Odds are, some will take up the new DNA.
03:03:23 <RodgerTheGreat> then, you just isolate your affected organisms and culture them.
03:04:37 <RodgerTheGreat> if it's a retrovirus, you just patched the prokaryotes with new DNA. If it's a normal phage or something, the infected hosts will spawn fully-formed viruses with their normal protein coat, which can then reproduce without help.
03:04:57 <RodgerTheGreat> viruses are biological quines.
03:05:26 <RodgerTheGreat> and like most quines, you can rebuild the complete program from just the data portion if you bootstrap it manually.
03:08:49 <RodgerTheGreat> just to allay the natural fears here, most man-made viruses would end up being extremely fragile, easily broken by mutation, and wouldn't be as effective in the wild as evolved ones (even if they did specific things better). So, making viruses from scratch is not a path to an artificial "super-virus" plague.
03:09:28 <RodgerTheGreat> maybe in 100 years we'll know enough about cellular machinery to worry.
03:09:45 * CakeProphet likes how he made his IRC bot able to change itself mid-running with only one line of code... which is pretty damn cool given his newbiness.
03:09:47 <RodgerTheGreat> bbiab
03:09:51 <oerjanj> even our biological programs are buggy :-)
03:12:09 <CakeProphet> I'm trying to think of what applications my jumprope could have... other than event programming,
03:12:15 <pikhq> What else do you call genetic disorders?
03:12:37 <pikhq> :p
03:12:52 <CakeProphet> Well... genetic mutations are one thing most programs don't have.
03:13:44 <pikhq> Some computer viruses do that.
03:14:01 <pikhq> Intentionally, of course. . .
03:14:01 <CakeProphet> mmmmworms
03:15:09 <CakeProphet> So... everyone help me out with my jumprope idea.
03:15:10 <CakeProphet> :D
03:15:20 <CakeProphet> Alone I am weak and feeble.
03:15:36 -!- jix has quit (Read error: 110 (Connection timed out)).
03:16:24 <CakeProphet> I need some other stufff to make it different... what about variable assigment?
03:19:15 <CakeProphet> Aww... the esolang wiki won't let me use "the prophet wizard of the craoyon cake" as a username.
03:19:38 <oerjanj> what is wrong with CakeProphet?
03:20:06 <CakeProphet> Well... that's just my IRC nickname... the prophet wizard of the crayon cake is much more drawn out and esoteric.
03:20:18 <CakeProphet> It's the na,e I always use on wikis
03:21:57 <oerjanj> well, what you set as your signature nickname can be different.
03:22:23 <CakeProphet> Oh ho!
03:22:32 <oerjanj> although i don't know how long it can be - or whether anyone would complain
03:22:57 <oerjanj> that shows up in Talk pages only though
03:24:14 <oerjanj> what is a crayon cake btw?
03:24:45 <CakeProphet> Such things are not known by barely stew.. and are thus incomprehensibility to the data sphere supsanct modular crystal Bizera
03:25:06 <oerjanj> ah, that is obvious
03:25:27 <oerjanj> although not quite grammatical...
03:26:53 <oerjanj> as for your variable assignment, you should be able to let people move between ropes
03:26:55 -!- ihope_ has joined.
03:27:11 -!- ihope_ has changed nick to ihope.
03:27:57 <oerjanj> cloning children might not be suitable for a playground alas
03:28:50 -!- ihope has quit (Client Quit).
03:29:07 <oerjanj> hm, scared ihope away with that comment
03:29:38 <oerjanj> cloning ropes might have fewer problems
03:30:47 <CakeProphet> Rope splitting?
03:31:05 <oerjanj> right.
03:31:25 <oerjanj> merging too, perhaps.
03:31:25 <CakeProphet> Wait... how does moving between ropes create variable assignment?
03:31:57 <oerjanj> if persons are data, you have moved that data
03:32:16 <CakeProphet> Placement in the row doesn't mean anything though.. it's not like brainfuck.
03:32:38 <oerjanj> no, but what rope you are under might matter
03:32:40 <CakeProphet> Think of people as function-like datatypes.
03:32:51 <pikhq> Could you do something else evil, like proove Homespring Turing complete?
03:32:58 <CakeProphet> Right right... I could say that being useful... but not the equivaent of variable assignment.
03:32:58 <oerjanj> functions are data to, says this unlambdaist
03:33:22 <pikhq> That's just functional programming.
03:33:24 <CakeProphet> say = see
03:33:26 <oerjanj> homespring hmm...
03:34:01 <CakeProphet> Well... the kids can be anything really... not nessicarily functions... but functions would be the way to go if I were going to make a -practical- language.
03:34:29 <oerjanj> well, ropes can be assigned, just split then move
03:34:31 <CakeProphet> But I'm think of something between ORK, gravity-ish, multi-threading shit :D
03:35:24 <oerjanj> hm, then you would have the ropes being the data and the children the functions acting on them
03:36:15 <CakeProphet> Originally.. in my event-based model... the ropes were events, and the children would "jump" when the event happens... but... I've changed it a bit now.
03:36:53 <oerjanj> well, events can be data too
03:36:58 <oerjanj> i'm sure
03:37:31 <oerjanj> like an open file
03:37:38 <oerjanj> or socket
03:38:01 <CakeProphet> I'm starting to shift away from a practical language to a fun-and-interesting-to-play-around-with-while-still-being-usable-although-a-little-bit-more-difficult-than-your-regular-language type language.
03:38:45 <CakeProphet> You'd need "timing" to get everything to synchronize right in your program...
03:55:30 <CakeProphet> I don't think rope merging is possible... unless the ropes are exactly the same as far as data goes.
03:55:41 <CakeProphet> Rope splitting is possible though.
04:01:09 -!- EgoBot has quit (calvino.freenode.net irc.freenode.net).
04:01:39 <GregorR> EGOBOT?! NO!!!!!!!!!!!!!
04:01:53 <CakeProphet> Wow... this will be amazingly complex to code in... I like it.
04:02:19 <pikhq> I don't think many people use sterling. . .
04:02:59 <oerjanj> pikhq: hm?
04:03:18 <CakeProphet> http://www.esolangs.org/wiki/User:CakeProphet (that's the basic outline for JumpRope)
04:03:51 <pikhq> oerjanj: Only a handful of people got lost in the netsplit.
04:05:21 <CakeProphet> JumpRope is turning out to be like a mix between some sort of OO language and a gravity-like system that involves multiple things rather than just a single "gravity"
04:07:44 <oerjanj> "There can be any number of ropes being spun by a single child" sounds a bit unrealistic
04:08:03 <CakeProphet> Too bad
04:08:24 <CakeProphet> Is splitting and merging ropes realistic... no... hahahahaha muyhahahahahahaha... I just like imaginging it.
04:08:37 <CakeProphet> And I don't mean a "single" child... there will be two children per every jumprope.
04:08:41 -!- EgoBot has joined.
04:08:45 <oerjanj> btw, only children at the end of a rope should be able to spin it
04:08:59 <oerjanj> inside, or outside, or either?
04:09:34 <oerjanj> if it is inside it could be single, _if_ there are no other children inside the same rope
04:09:36 <CakeProphet> Holding a jumprope.... think of them as the "border" of the rope... any childreen inbetween the two holders will be jumping... but theywill only be spinning.
04:09:58 <oerjanj> but "realistic" restrictions can add to the difficulty of programming
04:10:28 <CakeProphet> Nope... I'm not making restrictions... I'm making it so complex that it'll be difficult.
04:11:02 <CakeProphet> There's so many different options and ways for things to happen.... that the coder will have to set everything up as though it were a puzzle.
04:11:06 <oerjanj> but unnecessary complexity can be ignored
04:11:12 <CakeProphet> Yup.
04:11:16 <CakeProphet> So.. either way.. it doesn't matter :D
04:11:25 <CakeProphet> Restrictions seem... boring.
04:11:59 <oerjanj> i mean, restrictions can actually make it less likely that you can ignore a complexity
04:12:21 <CakeProphet> I doubt more-than=one=rope being held by two kids will make anything that much easier.
04:12:52 <CakeProphet> but.. eh.
04:13:06 <CakeProphet> We'll see... I'm still just in the early phases of thinking-things-out.
04:13:24 <CakeProphet> So far I really like it though.
04:13:52 <oerjanj> hm, actually... if there is no way to add unlimited children then they may have to hold unlimited number of ropes
04:14:19 <CakeProphet> What do you mean?
04:15:03 <oerjanj> or maybe not. the unbounded speeds might be enough to get unlimited memory
04:15:25 <oerjanj> i am assuming you would want turing completeness
04:15:32 <CakeProphet> Yeah... I'm not sure if there's a strict "limit" to how many children can be under one rope... if it's pre-determined by the ropes "length" (range of children), or if unlimited children can just be impossibly fitted into one rope.
04:15:48 <CakeProphet> Yup.
04:16:08 <CakeProphet> So far... I've got everything limitless... so chances of turing-ness are looking good.
04:16:53 <pikhq> Unless you prove it impossible to do Brainfuck in it.
04:17:47 <CakeProphet> Unlimited jump tempo... unlimited possibilities for different asynchronizations... unlimited rope geld by a child between anyone, unlimited numbers of children inside a rope.
04:18:20 <oerjanj> i assume you could add new children at any point. how do you assign functions to children?
04:18:21 <CakeProphet> If () is the confines of the rope and a 0 is a child... you could pretty much put them in any combination.
04:18:31 <CakeProphet> DUnno.
04:18:34 <CakeProphet> Still working on that...
04:18:56 <oerjanj> would there be a limited number of functions or would you write classes of children?
04:19:13 <CakeProphet> (o o o((o o o ) o o o) o o o o )
04:19:36 <CakeProphet> Hmmm?
04:19:46 <CakeProphet> no.. no limits..
04:20:18 <CakeProphet> I'm thinking either the children are functions... any specific datatype... or an subclass of Child with their own methods.
04:20:25 <oerjanj> who is holding the outermost rope in that diagram?
04:20:37 <CakeProphet> Uh... too people I forgot to incluce :D
04:20:47 <CakeProphet> o(o o o((o o o ) o o o) o o o o )o
04:21:06 <CakeProphet> Imaging that happening RL.... and gawk
04:21:11 <oerjanj> will the children always form a line?
04:21:24 * CakeProphet shrugs, "Maybe.. maybe not..."
04:21:44 <CakeProphet> No idea how I could implement 2-D placement of kids though.
04:21:55 <CakeProphet> And still make it usable... jump ropes are pretty linear.
04:22:07 <oerjanj> with a graph
04:22:12 <CakeProphet> Heh
04:22:18 <CakeProphet> Sure why not.
04:22:28 <CakeProphet> I want to make this as limitless and complex as possible :D
04:22:32 <CakeProphet> This is -not- a turing tarpit ^_^
04:22:59 <oerjanj> more like a turing great flood
04:23:11 <oerjanj> landslide perhaps...
04:23:16 <CakeProphet> hmmm... I -could- limit two jumpropes per child.. one per hand or something.
04:23:36 <oerjanj> that's what i was thinking
04:23:47 <CakeProphet> Could they go in the same direction?
04:24:29 <CakeProphet> Or would it -have- to be like this o( o o o o o o o o o ) o ( o o o o o o o o o o o)0
04:24:46 <CakeProphet> instead of o(( o o o o o o o o o o o ) o o o o o o )
04:25:12 <CakeProphet> Eh... any direction I dare say
04:25:53 <CakeProphet> Hmmm... actually... I think the children will act like functions... not objects... that will make it more complex.
04:26:13 <CakeProphet> You would need more children... thus more tempos.. and crap...
04:26:28 <CakeProphet> Yeah.. I see what you mean by restrictions creating more interesting situations.
04:27:16 <CakeProphet> It all seems needles though... you could probably accomplish a number of things with just one rope and a few children... so it would be neato if I could implement it so that any usable programable needs a large number of children and ropes.
04:28:10 <CakeProphet> *snickers* One line per asynchronization?
04:29:17 <CakeProphet> Oh... that's right... the kids aren't functions at all... I totally forgot my idea there.
04:29:28 <CakeProphet> The children act as conduits for a number of situations.
04:30:02 <CakeProphet> Using some Python-like code... it would look like.
04:32:19 <CakeProphet> if Kid1.async(5) from Rope1: jump 3 faster, Kid1 = "h"
04:32:41 <CakeProphet> So... maybe the kids are variables?
04:33:16 <oerjanj> that would make it hard to add an unlimited number
04:33:37 <CakeProphet> hmmm?
04:34:01 <CakeProphet> It would be hard to do much of anything with -only- variables.
04:34:54 <oerjanj> i mean if each kid has its own name then you cannot add them on the fly
04:35:53 <CakeProphet> When kids are created... they have specific, immutable datatypes... but never functions... they can be lists, strings, integers, or maybe even conditionals if I'm feeling dangerous.
04:36:01 <CakeProphet> :d
04:36:11 <CakeProphet> Sure I can.
04:37:24 <CakeProphet> "conceive Tom the variable" "Tom jumps in cheesestringRope"
04:37:27 <oerjanj> well, it depends on how you can refer to kids, i suppose
04:37:40 <CakeProphet> Any name is possible.
04:37:45 <oerjanj> what i mean by on the fly is:
04:38:07 <oerjanj> add an unlimited number of kids at runtime
04:38:28 <CakeProphet> ?
04:38:29 <oerjanj> their names cannot all be mentioned in the program
04:38:43 <CakeProphet> how would that be possible in the first place?
04:39:23 <oerjanj> if you have some way of referring to a kid other than a name unique to it
04:39:42 <CakeProphet> Well.. there has to be something identifying them...
04:39:47 <CakeProphet> something unique... to specific
04:40:37 <oerjanj> number in line perhaps
04:40:52 <CakeProphet> Meh.. I was going for verboose syntax.
04:41:04 <CakeProphet> Numbers scare me.
04:41:15 <oerjanj> names would work if they were local to a function
04:41:36 <oerjanj> then each function invocation could conceive of a new kid
04:41:43 <CakeProphet> Well... in the language itself.. there will be no functions.
04:41:58 <oerjanj> some kind of lexical scope then
04:42:38 <CakeProphet> THe children themselves will be objects of a class... but that won't come into play in the language itself.
04:44:01 <oerjanj> will the code of the program have to be encoded entirely in the arrangement and data of the ropes and kids?
04:44:10 <CakeProphet> "conveice Tom the variable" Would create a variable object named Tom... variable is a subclass of Child
04:44:17 <CakeProphet> Yup :D
04:44:50 <CakeProphet> I won't it to be challenging... puzzle-like.
04:44:53 <CakeProphet> want
04:45:18 <CakeProphet> I'm considering making -all- statements depending on certain conditions...
04:45:36 <oerjanj> ah, my brain is about to stop working - need to go to bed
04:45:42 <CakeProphet> ^_^
04:45:59 <oerjanj> see you another time
04:46:04 <CakeProphet> Bye
04:46:12 <oerjanj> Bye
04:46:16 -!- oerjanj has quit ("Leaving").
05:36:23 -!- Razor-X has quit (Remote closed the connection).
05:37:05 -!- Razor-X has joined.
05:38:56 <Razor-X> Emacs crashed :(.
05:39:37 <Razor-X> 'Twas a sad sad moment.
05:40:04 <RodgerTheGreat> sad indeed.
05:40:31 <Razor-X> Emacs has crashed twice since my computer has been on. I guess it's not quite as stable as the rest of the OS.
05:41:02 <RodgerTheGreat> so, you never answered my question: will you kill me if my language has a tape?
05:41:14 <Razor-X> Maybe.
05:41:18 <RodgerTheGreat> hm.
05:41:31 <Razor-X> That depends on the advantages I get, and whether it outweighs the pain received from using the tape.
05:42:24 <RodgerTheGreat> how about functions that can be modified on the fly, and socket I/O?
05:42:44 <Razor-X> Maybe I'll just ask Xenu to prove to you that world that is the gestalt being and watch thousands of years of useless faith go down the toilet along with hundreds and thousands of once-devout worshippers masochating (is that a word?) in agony.
05:42:57 <Razor-X> That's not too bad.
05:43:08 <RodgerTheGreat> ok
05:43:57 <pikhq> Maybe I'll just get a good ol' clambake to show you that Xenu == shit.
05:44:23 <Razor-X> Well, he's not exactly a looker, no. He made our vision spectrum inferior to his.
05:44:26 <RodgerTheGreat> I was thinking about creating loops with [] that are non-conditional and that use a # to break out of the loop (optionally prefaced with a conditional operator).
05:44:30 <CakeProphet> I've extended my concept... check out http://www.esolangs.org/wiki/User:CakeProphet
05:44:50 <pikhq> No, I mean that he is literally made of shit.
05:45:13 <Razor-X> Don't you dare downplay Xenu.
05:46:04 <Razor-X> Wow. Are we creating non-BF languages?
05:46:10 <Razor-X> What is the Esolangs community COMING to?!
05:47:02 <RodgerTheGreat> we're COMING to the realization that some people have blood feuds brewing against BF clones.
05:47:10 * RodgerTheGreat still likes DBF.
05:47:17 <CakeProphet> One BF is enough..
05:47:30 <CakeProphet> We've dilutted its greatness by making too many damn clones.
05:47:34 <RodgerTheGreat> four or five BF's are enough.
05:47:38 <Razor-X> Wow. I guess we're finally emerging from the Dark Ages.
05:47:54 <RodgerTheGreat> don't you mean "The Fuck Ages"?
05:48:04 <Razor-X> No. That sounds too vulgar.
05:48:14 <RodgerTheGreat> that's the idea.
05:48:19 <Razor-X> Stupid BF revealed itself just as the Imagination Nomads invaded Esome.
05:48:28 <RodgerTheGreat> it sounds more distopian than "The Brain Ages"
05:49:08 <Razor-X> Then the old Emperor of Esome split the Empire in two. He created the NotSoEsome which began creating semi-useful languages, and the Western Esome fell into darkness.
05:49:32 <Razor-X> But both NotSoEsome and Esome both embrace BF as their new religion.
05:49:51 <Razor-X> Even though the FsckProphet has revealed himself in later occasions.
05:50:16 <RodgerTheGreat> hunh. very... pseudobiblical, Razor-X.
05:50:50 <Razor-X> Now Esome is emerging from the Brain Ages. Only to take the entire OSS World by storm, to hopeless colonize the OSS World, and to create a whole breed of new bas**** languages.
05:51:23 <RodgerTheGreat> hm.
05:51:31 <CakeProphet> So... we should all talk JumpRope and how to make it even more kickass.
05:51:40 <pikhq> Rubikode FTW!
05:52:41 <Razor-X> But soon, the NotSoEsome will collapse by BFA, the ``newer'' version of BF.
05:52:59 <RodgerTheGreat> SYNTHESYS FTW!
05:53:22 <Razor-X> If this sounds like History class, I'd maybe imply that you were correct, but reveal nothing.
05:53:43 <RodgerTheGreat> ah
05:54:00 <RodgerTheGreat> so there'll be a test on this material tomorrow?
05:54:04 <Razor-X> Yes.
05:54:11 <Razor-X> I can't wait for the Rennaisance.
05:54:13 * RodgerTheGreat scribbles furiously.
05:54:30 <Razor-X> I wonder what we'll create! And the Obfuscated-NewLogic wars too.
05:54:57 <RodgerTheGreat> would you be interested in helping be develop synthesys once I get further along in writing the spec?
05:55:04 <RodgerTheGreat> *helping me
05:55:06 <Razor-X> Then the worshipers of BF will drive out the BFA infidels from their mailing lists, unite, and begin colonizing.
05:55:19 <Razor-X> For DBF?
05:55:40 <RodgerTheGreat> no, no- SYNTHESYS is a new language I'm developing.
05:55:48 <Razor-X> Aha.
05:56:42 <RodgerTheGreat> it's going to kinda place emphasis on self-modification while attempting to actually be a useful language.
05:57:56 <RodgerTheGreat> and I'm trying to make the code not look ass-ugly, as some languages have a tendency toward.
06:00:55 <RodgerTheGreat> code modularity and the loading of external libraries seems like a good goal as well.
06:01:05 <CakeProphet> so... if "offset = Childtempo - Ropetempo" would tripping occur when offset = o?
06:01:08 <CakeProphet> er... o?
06:01:10 <CakeProphet> er... 0?
06:01:38 <RodgerTheGreat> yes, I think so.
06:01:54 <RodgerTheGreat> what is this MOD? 1?
06:02:10 <CakeProphet> ?
06:02:25 <RodgerTheGreat> 'cause, the offset would have to stay in a particular range to be logical..
06:02:31 <RodgerTheGreat> the modulus.
06:02:54 <CakeProphet> Hmm....
06:03:01 <CakeProphet> How do you tell when tripage occurs?
06:03:23 <CakeProphet> I was going to make the range for offset being unlimited...
06:03:43 <RodgerTheGreat> well, let's assume the movement of the rope and the kid are sinusoidal.
06:03:51 <CakeProphet> >.>
06:03:53 <CakeProphet> Are... what?
06:04:01 <RodgerTheGreat> in the shape of a sine curve.
06:04:07 <CakeProphet> o.o
06:04:12 * CakeProphet is -not- a math person.
06:04:16 <RodgerTheGreat> :/
06:04:34 <RodgerTheGreat> nevermind, then- I'm not going to try to explain this at 1AM.
06:04:50 <CakeProphet> So... what would the range have to be?
06:05:03 <CakeProphet> At some point the offset would factor down.
06:05:34 <RodgerTheGreat> ok, let's say you're drawing a circle.
06:06:04 <RodgerTheGreat> if you go halfway around, you have half a circle.
06:06:18 <RodgerTheGreat> if you go all the way around, you have a circle.
06:06:38 <RodgerTheGreat> if you go three complete times around, you still have only made one circle.
06:06:45 <RodgerTheGreat> see where I'm going with this?
06:06:55 <CakeProphet> So....
06:07:54 <CakeProphet> Ropetempo/Childtempo - Childtempo/Roadtempo" ????
06:08:13 * CakeProphet scratches head.
06:08:16 <CakeProphet> no that wouldn't work.
06:08:22 <RodgerTheGreat> ...
06:08:48 <RodgerTheGreat> http://en.wikipedia.org/wiki/Modulo_operation
06:08:54 <RodgerTheGreat> ^ this will do what you need.
06:09:04 <CakeProphet> Aha!
06:09:10 <CakeProphet> That makes sense.
06:09:41 <RodgerTheGreat> there we go.
06:10:00 <RodgerTheGreat> my work here is done. Good... morning... everyone, I'm going to get some sleep.
06:10:06 * RodgerTheGreat tips his hat.
06:10:31 <CakeProphet> See ya
06:10:44 -!- RodgerTheGreat has left (?).
06:15:13 <CakeProphet> Hmmm..
06:15:14 <CakeProphet> Now...
06:15:40 <CakeProphet> I need to figure out how the hell offset effects the different increments of asynchronization... and how to even create a workable notation for that.
06:17:33 -!- CXI has quit ("If you're reading this, it's probably xchat's fault.").
07:12:50 -!- Arrogant has joined.
07:17:24 -!- CXI has joined.
07:55:25 <CakeProphet> Holy crap.... head hurts... from trying to... code... in my prototype JumpRope code.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:00:49 <Razor-X> Will you get scared if I say ``sine curve'' ? ;)
08:01:35 <CakeProphet> Nah.
08:01:52 <CakeProphet> I'm just putting random numbers in as tempos and working with them.
08:02:04 <Razor-X> Blah. T3h family went out all day, and now I must churn my vocabulary.
08:06:57 <CakeProphet> If I can compile this thing... I dare say it may be one of the most difficult language I've ever seen.
08:13:11 <Razor-X> Worse than INTERCAL?
08:30:43 <CakeProphet> I dunno
08:30:50 <CakeProphet> Check out the hello world prog: http://www.esolangs.org/wiki/User:CakeProphet
08:31:02 <CakeProphet> I realized halfway through I could have made it so much simpler.
08:31:55 <CakeProphet> Future considerations: condense syntax
08:33:33 * CakeProphet pokes Razor-X
08:54:58 <Arrogant> That is not worse than Malbolge, I have to say.
09:03:55 <CakeProphet> Arrogant, o,o It took me near 45 minutes of tedious, repetitive typing and math calculating to get it to print "Hello, world!" ....how sucky is Malbolge?
09:04:20 <Arrogant> Malbolge encrypts the instruction after executing it
09:04:23 <Arrogant> http://www.esolangs.org/wiki/Malbolge
09:29:10 <Razor-X> CakeProphet: Don't think you've made the worst language in the world.
09:29:19 <Razor-X> It's hard to beat Malbolge.
09:29:33 <CakeProphet> :(
09:29:47 <Razor-X> The Hello World program of INTERCAL is 200+ lines, IIRC (when not using the standard library).
09:29:49 <CakeProphet> Hmm.. well I wasn't even going for difficult to begin with.. so...
09:29:53 <pgimeno> not actually
09:30:05 <pgimeno> (not actually hard to beat it)
09:30:25 <Razor-X> Well Malbolge skirts that invisible line of still programmable.
09:31:12 <pgimeno> it has severe weaknesses as a cryptosystem
09:32:13 <pgimeno> see http://www.lscheffer.com/malbolge.shtml - near the end, a section entitled "It could be worse"
09:35:13 <pgimeno> programmability in Malbolge comes from its weaknesses
09:42:49 <pgimeno> however, making a language hard to program in is not very original as a goal
09:44:40 <Razor-X> I think that's the slump the entire Esolangs Community (hereby referred to as Esome) suffers under, IMO.
09:45:23 <pgimeno> exploring new possibilities is nice, though; making original contributions is too
09:45:39 <pgimeno> but I especially miss the humour part in recent esolangs
09:45:51 <pgimeno> that's the very heart of INTERCAL
09:46:07 <Razor-X> Well, Esolangs are becoming quite academic now.
09:46:18 <pgimeno> I have an idea in my mind which I want to develop
09:46:22 <pgimeno> a language called "Numb"
09:46:35 <pgimeno> where you specify what NOT to do
09:46:52 <pgimeno> DON'T STORE 3 INTO B"
09:46:53 <Razor-X> None of my ideas seem novel enough. I had an idea to base on sine curves, but I need more thinking time.
09:47:51 <Razor-X> I think we really need a nice competitive language, like Redcode but more esoteric/fun too.
09:48:30 <pgimeno> there's already FyB too
09:48:48 <Razor-X> I know but... no offense to GregorR, it just seems a bit... blah.
09:50:10 <pgimeno> the types in Numb would be non-negative (unsigned), non-numeric (string), non-real (imaginary)
09:50:39 <GregorR> "<Razor-X> None of my ideas seem novel enough." ... "I think we really need a nice competitive language" \ "<pgimeno> there's already FyB" \ "<Razor-X> (generic argument)
09:50:44 <GregorR> Speaking of being novel :P
09:51:06 <Razor-X> Well, I can go into specifics if you want.
09:51:14 <GregorR> Please, do.
09:51:58 <pgimeno> I'm still trying to get ideas on what to do to get Numb to actually execute code; I'm considering a statement "DON'T OBEY NEXT" and a clause "DON'T <do something> UNLESS blah"
09:52:07 <pgimeno> hi Gregor
09:52:41 <Razor-X> It seems too simple an extension to BF. We can make a similar extension to any stack-based language relatively easily and get a competitive language.
09:52:57 <Razor-X> pgimeno: Heh. Lots of INTERCAL inspiration it seems.
09:53:29 <pgimeno> not exactly but it's harder and harder to be original :)
09:54:00 <Razor-X> Doesen't mean we can't try.
09:54:38 <pgimeno> yeah but I'm poor in imagination
09:54:56 <pgimeno> I already wrote the BitXtreme specification
09:55:08 <GregorR> Hi pgimeno. And now, I'm going to sleep :P
09:55:15 <GregorR> Razor-X: That's hardly an argument.
09:55:16 <pgimeno> heh, nite GregorR
09:55:23 <pgimeno> agreed
09:55:34 <Razor-X> GregorR: It's not bad by any means, I just was hoping to make something *more* original.
10:01:03 -!- _jol_ has joined.
10:22:50 -!- kipple has joined.
11:01:19 -!- Arrogant has quit (Read error: 104 (Connection reset by peer)).
11:53:55 -!- _jol_ has quit (Read error: 110 (Connection timed out)).
12:04:45 -!- pgimeno has quit (Read error: 54 (Connection reset by peer)).
12:19:38 -!- pgimeno has joined.
12:24:42 <CakeProphet> ...000560
12:43:12 -!- tgwizard has joined.
12:55:31 -!- ihope has joined.
13:17:50 <ihope> Is {} a valid compound statement in C?
13:23:01 -!- CXI has quit ("If you're reading this, it's probably xchat's fault.").
13:52:08 -!- _jol_ has joined.
14:01:15 <pgimeno> ihope: yes, I think it is
14:01:46 <ihope> What about {something()}? Is that valid, or would I have to use {something();}?
14:01:58 <pgimeno> the latter
14:03:10 <ihope> Is there a way to avoid using semicolons in a C program?
14:03:26 <pgimeno> main(){}
14:04:08 <pgimeno> I think at least one semicolon is needed
14:04:21 <pgimeno> for everything but an empty main(), that is
14:05:10 <pgimeno> or an infinite loop: main(){while(0){}}
14:05:15 <pgimeno> hum
14:05:24 <pgimeno> that opens a whole can o' worms
14:05:40 <pgimeno> it is possible to write someting
14:07:40 <fizzie> main(){while(printf("Hello, world!\n"),0){}}
14:07:42 <pgimeno> er, while(0) was not an infinite loop
14:07:47 <pgimeno> yeah
14:07:57 <fizzie> I think comp.lang.c had a discussion about this once.
14:08:03 <fizzie> (Or maybe it was somewhere in IRC.)
14:08:04 <pgimeno> main(){while(expr,expr,0){}}
14:08:17 <ihope> What's the comma do?
14:08:48 <pgimeno> it concatenates expressions to form an expresion whose result is the last in the comma series
14:09:09 <pgimeno> e.g. the result of 1,2,3,0 is 0
14:09:12 <ihope> Evil.
14:09:16 <fizzie> Also, in "a,b" the "a" and "b" are evaluated sequentially, from left to right, with a sequence point in-between.
14:09:17 <pgimeno> indeed
14:09:39 <fizzie> It's rather useful in, say, for(i = 0, j = 0; ....)
14:09:45 <pgimeno> you can't use do, for, if, while... as expressions though
14:09:46 <ihope> Oh, say, is main(); a valid program?
14:09:57 <pgimeno> nope, functions require {}
14:10:24 <pgimeno> that's a stupid limitation IMO but anyway
14:10:45 <pgimeno> well, I think these are prototypes
14:11:23 <fizzie> "Hello world without semicolon": http://groups.google.com/group/comp.lang.c/browse_thread/thread/eaaa5febf2f108f7/b6762266408b5e10
14:11:38 <ihope> Well, I'd say that C-without-semicolon is Turing-complete.
14:13:14 <ihope> Just use recursion instead of loops.
14:14:48 <pgimeno> impossible, C is not TC ;)
14:18:10 <ihope> It isn't?
14:18:33 <ihope> Even without malloc(), you have local variables.
14:18:48 <pgimeno> but no unbounded storage
14:19:25 <ihope> Does the C spec state that storage is bounded?
14:19:38 <fizzie> We had a discussion about *that* here.
14:19:42 <pgimeno> yep
14:19:53 <pgimeno> (yep to fizzie)
14:20:26 <pgimeno> the C spec states that sizeof(a pointer) returns an int IIRC
14:20:33 <fizzie> I don't recall the results, though. I think it depended on the reading of the standard: the storage needs to be addressable, at least, but I don't remember if the spec implicitly allowed or disallowed "int of infinitely many bits".
14:21:27 <ihope> Intfinity!
14:21:33 * ihope runs
14:21:36 <pgimeno> hehe
14:22:33 <pgimeno> unfortunately the result is not a float, where infinity is a valid value
14:22:39 <pgimeno> but an integer
14:23:01 <fizzie> You (possibly) might still have an unlimited integer.
14:23:30 <pgimeno> I don't think so
14:23:56 <pgimeno> that's what I recall from the discussion, at least
14:24:22 <fizzie> I'm not sure it was very clear, but could be.
14:26:37 <pgimeno> I think that the same limitation of sizeof() applies to all types
14:26:58 <fizzie> C-without-semicolon doesn't even need recursion for looping, btw: http://colin.tky.hut.fi/~fis/fibo.c.txt is a very simple iterative fibonacci proggie.
14:28:17 <pgimeno> heh, true... the while() itself does loop
14:29:25 <fizzie> It's still a bit iffy: can't really declare variables (outside parameter lists) or return anything from functions (without using a pointer as an output parameter).
14:31:22 <ihope> Okay, let's see here...
14:31:27 <pgimeno> I'd write that sentence the other way around: you can declare variables (within parameter lists) and return anything from functions (using a pointer as an output parameter)
14:31:45 <fizzie> Perhaps I'm just a bit negative.
14:31:57 <fizzie> You must be one of the "glass is half full" type of people.
14:32:01 <pgimeno> hehehe
14:33:15 <ihope> Wait... can we write C-without-semicolon without using if, for, or while?
14:33:23 <ihope> Or until, if there's such a thing?
14:34:46 <fizzie> There's no "until", but "yes".
14:35:07 <fizzie> Or maybe not.
14:35:15 <fizzie> My first thought did not work out. :p
14:39:16 <pgimeno> you can't use for
14:39:31 <fizzie> You could possibly use a switch.
14:41:59 <pgimeno> yeah, maybe, like line numbers in BASIC
14:42:43 <ihope> Hmm...
14:42:48 <pgimeno> or...
14:42:55 <fizzie> I mean, switch(..., ..., 0) {}
14:42:57 -!- _jol_ has quit ("leaving").
14:43:06 <pgimeno> er, forget the BASIC bit
14:43:07 <pgimeno> yeah
14:43:38 <fizzie> But if you outlaw everything the spec calls an "selection-statement" or an "iteration-statement", then it might be impossible.
14:44:32 <pgimeno> in Spain there's a saying: what you want is that the bull catches me!
14:44:44 <pgimeno> originated from a joke
14:46:33 <fizzie> At least any "statement" you could put an expression in either includes a ";" or is a selection/iteration-statement (if, switch, while).
14:46:59 <fizzie> (According to my reading of C99 6.8.)
14:48:20 <pgimeno> "What if you're in a street and there's a bull coming towards you?" "I'd climb to a fence" "And if there's no fence?" "I'd look for a shop or something" "And if there's no shop" "I'd try to run to the closest corner" "And if there's a wall?" "I'd try to jump it" "And if it's too high?" "Hey, what you want is me to be caught by the bull!"
14:54:16 <pgimeno> hm, according to the thread there's a problem: in C89 main() must return a value and thus needs a semicolon.
14:57:14 <pgimeno> incidentally, you can avoid both ; and {} by using trigraphs
14:57:23 <fizzie> There's no trigraph for ;.
14:58:15 <pikhq> pgimeno: Funny, I thought that was part of the POSIX spec, and not the C spec.
14:58:18 * pikhq shrugs
14:58:36 <fizzie> There are trigraphs for #, ], |, [, ^, }, \, { and ~.
14:58:46 <fizzie> "No other trigraph sequences exist."
14:58:49 <pgimeno> fizzie: I know, you have to avoid ; as discussed here
14:58:49 <fizzie> (For C99, at least.)
14:59:05 <fizzie> Ah, right; misinterpreted, then.
14:59:08 <pgimeno> and {} by trigraphs
14:59:25 <fizzie> Trigraphs are just sick, though.
14:59:28 <pgimeno> a not very good wording on my side
15:01:08 <pgimeno> pikhq: do you mean the trigraphs as part of POSIX?
15:01:34 <pikhq> pgimeno: No, I mean the part about main() needing to return a value.
15:01:39 <pgimeno> oh
15:02:17 <pgimeno> there's a discussion here: http://groups.google.com/group/comp.lang.c/browse_thread/thread/eaaa5febf2f108f7/64fd1228e56f23ec?hide_quotes=no
15:02:30 <pgimeno> (part of the above pointed by fizzie)
15:02:54 <pikhq> Hmm. Couldn't someone do some C coding with stuff like if(step_1) {null} if(step_2) {null} to avoid semicolons? :p
15:03:02 <pikhq> Err.
15:03:08 <pikhq> Hmm. Couldn't someone do some C coding with stuff like if(step_1) {} if(step_2) {} to avoid semicolons? :p
15:03:30 <fizzie> Wasn't that what we've been talking about?
15:03:51 <pikhq> Oh. Someone mentioned that already?
15:03:54 <pikhq> Fek.
15:04:34 <pikhq> This is giving me some evil obfuscated C ideas. . .
15:08:03 <fizzie> POSIX does give additional semantics for the return values, though. The C only defines the meaning of returning 0, EXIT_SUCCESS or EXIT_FAILURE from main.
15:24:08 -!- RodgerTheGreat has joined.
15:27:30 -!- jix_ has joined.
15:27:48 -!- jix_ has changed nick to jix.
15:49:43 <ihope> "My first dream that I can remember was a nightmare. I was about 3 years old. I dreamed that my eyes popped out of my head and they were flying away from me and I tried to catch them, I never did"
15:50:13 <RodgerTheGreat> what are you quoting?
15:51:02 <ihope> http://ld4all.com/forum/viewtopic.php?p=21920#21920
15:51:14 <ihope> I never forget to paste the URL's right after quoting...
15:52:30 <RodgerTheGreat> oh, ok.
16:20:39 <pgimeno> damn, I was planning to start using minix3 but it would seem it doesn't suppoprt virtual memory or shared libraries... that is a serious limitation
16:35:37 <ihope> So? BF is a serious limitation.
16:41:42 <pgimeno> I don't use BF for serious work, but I do use Linux for it
17:10:22 * ihope tries to listen to this sound clip, but fails
17:10:29 <ihope> "Enough is enough! I have--"
17:11:21 <ihope> Ah, there we go. "Enough is enough! I have had it with these mother[beep]ing planes on this mother[beep]ing snake!"
17:11:40 -!- CXI has joined.
17:13:32 <RodgerTheGreat> Planes on a Snake?
17:15:05 <pgimeno> the planes will need snake oil
17:21:40 -!- Keymaker has joined.
17:22:45 <RodgerTheGreat> is it odd that I seriously want this movie to exist? http://i.somethingawful.com/inserts/articlepics/photoshop/12-30-05-hybrids/Trent.jpg
17:23:06 <Keymaker> hello, world
17:23:53 <ihope> What do you want, universe?
17:24:18 <RodgerTheGreat> It would star Samuel Jackson, so it'd be more like "Hello world, MuthaF#@ka!"
17:24:44 <ihope> You mean hello, muthaf#@in world?
17:25:45 <RodgerTheGreat> either way.
17:25:45 <Keymaker> is snakes on a plane already in movies?
17:25:56 <Keymaker> or whatever that soap was called
17:25:58 <Keymaker> :)
17:29:15 <ihope> A Snakes on a Plane opera!
17:29:45 <Keymaker> :D
17:42:42 * Keymaker returns to an old quine work..
17:43:04 <Keymaker> work=program
17:44:55 <ihope> Oh, I'll just let someone else write the spec for Thubi :-P
17:45:11 <Keymaker> a new language?
17:45:14 <ihope> Aye.
17:45:18 <Keymaker> aha. what kind of?
17:45:29 <ihope> It's a lot like Thue.
17:45:41 <Keymaker> ah.
17:45:46 <Keymaker> sounds good then :D
17:46:10 <Keymaker> write at least something at esowiki.. if i understand it i may expand the article :)
17:57:02 -!- Sph1nx has joined.
17:58:37 <ihope> So what's \? used for in C?
18:05:58 <fizzie> You mean "\ and ?" or the combination "\?"?
18:06:16 <ihope> The escape code \?.
18:07:30 <fizzie> It's a "?".
18:07:43 <ihope> What's it for?
18:08:35 <fizzie> I assume it's used to write something like "??=" without having it changed to "#" when trigraph processing is enabled.
18:09:34 -!- _jol_ has joined.
18:09:40 <fizzie> ISO/IEC 9899:1999 (C99), 5.2.1.1 ("Trigraph sequences"), paragraph 2: "EXAMPLE The following source line printf("Eh???/n"); becomes (after replacement of the trigraph sequence ??/) printf("Eh?\n");"
18:09:46 -!- Keymaker has quit (Read error: 60 (Operation timed out)).
18:09:49 <ihope> You'd write "?\?=" instead?
18:10:09 <fizzie> Or "\?\?=", if you want to be explicit about it.
18:10:16 <fizzie> Either way would work.
18:10:51 <ihope> Okay. I won't include it in Thubi, then.
18:11:25 <fizzie> Although I have to admit I haven't really been paying attention to ?s in my strings.
18:12:17 <lindi-> hmm
18:15:20 <lindi-> i just get 'trigraph.c:9:19: warning: trigraph ??/ ignored' from printf("Eh???/n");
18:15:51 <lindi-> with -trigraphs i get "trigraph.c:9:19: warning: trigraph ??/ converted to \"
18:17:26 <fizzie> Yes, well, no-one uses trigraphs, so I guess gcc thinks it prudent to warn.
18:17:55 <fizzie> But it does convert trigraphs if you use -ansi or -std=x, where 'x' is one of the ISO standards.
18:18:13 <ihope> What're trigraphs for?
18:18:54 <fizzie> Some computing environments lack some of the punctuation (like {} or []) C needs.
18:19:24 <ihope> What computing environments are those?
18:19:36 <fizzie> Probably something very ancient.
18:20:28 <lindi-> nokia communicator 9110 for one does not do { easily
18:20:41 <fizzie> Early ASCII versions before the 1968 standard lacked ^.
18:20:48 <fizzie> (They used to have an up-arrow there.)
18:20:57 <lindi-> i wrote a filter to convert "[[" to "{" before i heard about trigraphs
18:35:13 -!- CakeProphet has changed nick to GrandmotherChaos.
18:35:31 -!- Sph1nx has quit (Remote closed the connection).
18:41:05 -!- GrandmotherChaos has quit ("haaaaaaaaaa").
18:42:29 -!- CakeProphet has joined.
18:53:26 -!- _jol_ has quit ("temci lo nu citka").
19:36:49 -!- _jol_ has joined.
19:54:55 -!- CakeProphet has quit (Read error: 104 (Connection reset by peer)).
20:09:48 -!- oerjanj has joined.
20:23:19 -!- CakeProphet has joined.
20:25:48 -!- _jol_ has quit ("co'o rodo").
20:34:53 -!- oerjanj has quit ("Leaving").
20:37:40 -!- Sph1nx has joined.
20:38:45 -!- Sph1nx has left (?).
20:40:00 -!- Sph1nx has joined.
21:02:42 <pikhq> ihope: The ISO 640 character set has those symbols as optional (ISO 640 is a subset of ASCII). . .
21:03:11 <pikhq> They're now outdated, but provide for some evil code obfuscation possibilities.
21:14:06 <CakeProphet> ☼ │ ? Ü4 Q ô2 :Θ; b↓ÌÈ
21:14:13 <CakeProphet> ☼ │ ? Ü4 Q ô2 :Θ; b↓ÌÈ╫µÖ
21:16:16 <pikhq> He's getting it. :p
21:17:24 <CakeProphet> -.-
21:20:08 -!- CakeProphet has quit (Read error: 104 (Connection reset by peer)).
21:21:13 -!- CakeProphet has joined.
21:34:42 <GregorR> Ü < one character smiley
21:35:03 <RodgerTheGreat> I used that for a game once instead of char 1.
21:35:11 <GregorR> DOS game? :-P
21:35:17 <RodgerTheGreat> palmOS game.
21:35:30 <GregorR> Hm, does palmOS also have the funky smiley-face for char 1?
21:35:32 <RodgerTheGreat> because the palm fonts don't have characters for low-order ASCII
21:35:40 <RodgerTheGreat> no, sadly.
21:35:40 <GregorR> Ah
21:36:01 <RodgerTheGreat> they just turn into the "non-character block" thing.
21:36:07 <GregorR> :(
21:36:14 <RodgerTheGreat> my thoughts exactly.
21:36:15 <GregorR> Should've used an @.
21:36:16 <GregorR> It's traditional.
21:36:24 <RodgerTheGreat> yeah, roguey.
21:36:45 <RodgerTheGreat> but a u-umlaut is nearly as good as char 0.
21:36:48 <GregorR> Hey, watch a DirectNet DHT forming: http://directnet.sourceforge.net/dht.avi ^^
21:36:51 <GregorR> Heh
21:36:51 <GregorR> True
21:58:42 <RodgerTheGreat> hey, GregorR- I made something for you. DO NOT PUT THE BABY IN THE PIXEL ART! http://rodger.shadowarts.org/images/BabyPixel.gif
21:59:24 <GregorR> Hahahah
21:59:29 <RodgerTheGreat> :D
21:59:29 <GregorR> It doesn't /quite/ fit the theme.
21:59:34 <RodgerTheGreat> :/
21:59:34 <GregorR> I'll accept it if you put the yellow bg on.
21:59:44 <GregorR> Erm, and is it the same size?
21:59:51 <GregorR> Yeah, I think it is ...
22:00:03 <RodgerTheGreat> okie dokie. (It's on a transparency atm. I can rescale it as needed)
22:00:42 <GregorR> Just make sure it's the same size as all the others, put the same color yellow as the BG (it's 254-254-0) and give me a copyright line.
22:01:09 <RodgerTheGreat> ok. what did you have in mind copyright-wise?
22:01:33 <GregorR> A name or pseudonym.
22:01:37 <RodgerTheGreat> ok
22:01:47 <GregorR> No license except that I can put it on the site :-P
22:02:11 <GregorR> And I may put it on merch if said merch has a bunch of 'em.
22:05:00 <RodgerTheGreat> ok
22:06:21 <RodgerTheGreat> do you want a copyright notice *on* the image, or what?
22:07:42 <GregorR> No, I put it below the image.l
22:07:50 <GregorR> I just need the name for the notice so I can put it there :-P
22:08:24 <RodgerTheGreat> there you go:
22:08:26 <RodgerTheGreat> http://rodger.shadowarts.org/images/BabyPixel.gif
22:08:31 <RodgerTheGreat> (c) RodgerTheGreat
22:09:19 <RodgerTheGreat> license granted for use on website, merchandise sold, and any other direct or indirect representation of the above image.
22:13:07 <RodgerTheGreat> have you ever played "Hunt The Wumpus"?
22:14:11 <GregorR> Yuh
22:14:38 <RodgerTheGreat> this is a doodle I drew the other day of how I imagine the ravenous beast looking: http://rodger.shadowarts.org/art/Wumpus.gif
22:15:44 <GregorR> http://www.donotputthebaby.com/index.php?s=Pixel
22:15:56 <RodgerTheGreat> awesome.
22:22:02 <Razor-X> RodgerTheGreat: Do you have any notes on SYNTHESIS?
22:22:13 <Razor-X> Ow. My wrist is cramping. Mind my slow speed.
22:22:58 <RodgerTheGreat> not at the moment. I'm trying to decide how I'm going to handle memory, which kinda defines how a lot of other things should work.
22:23:31 <RodgerTheGreat> I could do a tape with optionally named cell aliases.
22:23:41 <Razor-X> What's the basic concept about?
22:24:29 <RodgerTheGreat> self modification via recursive string manipulation and evaluation.
22:24:48 <RodgerTheGreat> the "recursive" part depends on how people use it.
22:25:41 <RodgerTheGreat> using a tape-based memory makes conditionals really simple, which I like. However, there may be a more appropriate way to do them.
22:25:55 <Razor-X> Recursive string manipulation? Example?
22:27:04 <RodgerTheGreat> well, you could have a function that evaluates itself near the end. By having that same function modify the string that represents itself, it could change from iteration to iteration.
22:27:27 <Razor-X> Oh. So like a standard functional language recursive function?
22:27:35 <RodgerTheGreat> basically.
22:28:40 <RodgerTheGreat> a language based on self-modification naturally needs a fairly straightforward syntax, so that it isn't extremely painful to use this ability.
22:29:19 <Razor-X> I suggest a simple two-array system, one of functions and one of arrays.
22:29:25 <Razor-X> s/arrays/strings/
22:29:36 <RodgerTheGreat> hm.
22:29:52 <RodgerTheGreat> so, each "cell" represents an entire string, rather than a character?
22:29:56 <Razor-X> Yeah.
22:30:04 <RodgerTheGreat> that could work quite well.
22:30:13 <Razor-X> Using a set of builtins, we can add to an array slot, modify the slot, push a string, pop a string, and such.
22:30:40 <RodgerTheGreat> yes. string manipulation could be stack-based in some way.
22:31:29 <Razor-X> We can make it Unlambda style where the builtins are simple letters. That'll make it easy to swap the arrays so you can have functions modifying functions.
22:31:52 <RodgerTheGreat> in this case, separate arrays for functions and "normal" strings would be unnecessary, by just saying that you can attempt to evaluate any string as a function.
22:32:10 <RodgerTheGreat> hm.
22:32:12 <Razor-X> The only reason I wanted the seperate arrays was for self-code-modification.
22:32:53 <Razor-X> The only thing unchangable in the language is the structure of the two arrays and the builtins theselves. Everything else is game.
22:33:10 <RodgerTheGreat> well, we could make it buffer a string whenever it's evaluated, and then any modifications to the string while it runs would be ignored until it iterates again.
22:33:49 <Razor-X> Well, I was making the assumption that this is a functional world.
22:33:59 <RodgerTheGreat> hm.
22:34:01 <Razor-X> It's just one mutable string on a stack.
22:35:51 <RodgerTheGreat> what type of operators do you think this language would need, on a basic level?
22:35:58 <Razor-X> Hmmm.
22:36:46 <Razor-X> Push string, pop string, concat strings, ....
22:36:53 <Razor-X> Are we making this turing complete?
22:37:14 <RodgerTheGreat> it's easy to work with characters by themselves, but working on larger groups in a meaningful way can get more complex..
22:37:19 <RodgerTheGreat> yes, Ideally.
22:37:32 <Razor-X> Then we need integer operations too.
22:41:08 -!- Sph1nx has quit (Remote closed the connection).
←2006-08-19 2006-08-20 2006-08-21→ ↑2006 ↑all