00:00:07 Hm. Does that mean 704 bits? 00:00:14 Seems to. 00:00:37 And the number is 74037563479561712828046796097429573142593188889231289084936232638972765034028266276891996419625117843995894330502127585370118968098286733173273108930900552505116877063299072396380786710086096962537934650563796359. 00:00:54 Try 3. I've got a good feeling that it's some number times 3. 00:01:33 Nope, it's congruent to 1 mod 3. 00:01:43 Well, I'm out of ideas. 00:02:14 Okay. Choose a random number from 1 to RSA-704. 00:02:14 So to break this one, you'd need a 704-qubit register, right? Pfft, good luck, hardware designers. 00:02:58 ...Well? 00:03:08 Uh... We already did 3. So... um... floor(pi * googol). 00:03:44 That's 101 digits, about the right size for one of the offending factors. 00:03:54 Probably not even prime, but since when is that MY problem? 00:04:17 Okay, the number is 31415926535897939206342872074089512377015178275785648855278065595809401623948916766946766405184258048. 00:04:28 DAMN! Even. 00:04:34 So, uh, forget that entirely. 00:05:00 No, we can still use it. 00:05:07 But this and that are coprime. 00:05:23 This and 3, or this and the RSA number? 00:05:31 This and the RSA number. 00:05:46 Now, f(x) = this^x mod that. 00:06:06 Do you know the period of that function? 00:06:31 Nope. 00:06:52 Oh. 00:07:09 Uh... wanna ask EgoBot? 00:07:27 Maybe... write a BF program. Or Glass. And wait 20 years or something. 00:07:39 We got time. 00:07:53 What if somebody else does it first? 00:08:20 Okay, I need you to create a register that contains everything from 0 to the RSA number minus one, all with equal positive probability amplitudes. 00:08:23 Then we use a different algorithm: find the guys who did it, then beat the crap out of 'em and take credit for the accomplishment. 00:08:45 I'll split the cash 100-0 your way, since odds are you're the one who's gonna be in charge of the beating. 00:08:56 And I wouldn't know what to do with the money. 00:09:07 But nobody's done it yet, and the RSA guys will probably know it's them before we will. 00:09:37 Okay then, back to the original plan. Um... crap. I'm gonna need a lot more RAM. 00:10:34 So... what's 1 over RSA-704? 00:10:43 Hmm? 00:11:15 The reciprocal. The probability. We can figure out the amplitude from that. 00:11:18 Oh. 00:11:43 The reciprocal is 1/74037563479561712828046796097429573142593188889231289084936232638972765034028266276891996419625117843995894330502127585370118968098286733173273108930900552505116877063299072396380786710086096962537934650563796359. 00:12:08 Approximately 1.3506657337204956e-212, that is. 00:13:30 Uh... huh. Is it too late to kill this process and just do a simple "Hello World"? 00:13:39 'Cause this could take a while. 00:13:50 Um... 00:13:55 Kill what process? 00:14:26 The quantum factoring algorithm. 00:14:44 It's not working nearly as well as I had hoped. 00:14:53 !ps 00:14:56 1 ihope_: ps 00:15:07 Not too late, then. 00:15:19 K then. 00:15:24 !kill irp 00:15:26 No such process! 00:15:43 Anyway, the probability amplitude you need is about 1.1621814547309278e-106. Initialize them to that. 00:16:00 !kill q-irp 00:16:02 No such process! 00:16:56 You need to be an IRC operator to do that. 00:17:26 Then I'll have to try the old exception-handling way. 00:17:32 Please stop trying to factor RSA-704. 00:18:00 Interrupt the running, and all that. ^^ 00:19:06 What if I don't want to stop? 00:19:35 Well, knock yourself out, but don't expect me to continue helping as a parallel processor. 00:19:58 But... the other chatters might complain. Or they would if they were still here. 00:20:08 * AndrewNP pokes the sleepy chatroom citizens. 00:23:35 * pikhq is poked 00:24:13 * AndrewNP is slapped with a sexual harassment class-action suit. 00:25:32 And statutory rape. 00:25:46 How old is AndrewNP? 00:25:50 20. 00:25:56 Yup :P 00:25:57 And two months. 00:26:04 But not that kind of poke... I think. 00:26:22 The courts don't care what kind of poke it was. 00:26:31 lol 00:26:42 Damn "justice" system. 00:27:16 Honestly, ONE body-fluid-stained corpse and they're all like "Ooh, Murder in the First Degree!" 00:27:31 :p 00:28:21 I mean, two or three, sure, I can understand. But doesn't everyone get a freebie? I think that's in the UN charter or something. 00:28:29 http://www.donotputthebaby.com/index.php?s=Knife 00:28:45 How hard does one have to try to kill someone in order for it to be considered attempted murder? 00:28:54 It doesn't count if I just want someone to die, does it? 00:29:02 That's attempted manslaughter X-P 00:29:10 Eh, you probably have to DO something at least. 00:29:18 Like, chase 'em with a knife. 00:29:49 Doing something that could have been fatal, but wasn't? 00:29:49 Here's an esolang for ya: http://www.donotputthebaby.com/index.php?s=Code 00:30:00 Probably. Like, you really really REALLY expected 'em to die. 00:30:18 Shooting 'em and just missing the heart, for example. 00:34:08 Well, let's try to factor 4 using Shor's algorithm. 00:34:14 Just for practice and all that. 00:35:41 So a = 1. The GCD thingy is 1... well, yeah, 1 is a factor of 4. 00:36:11 Let's say a = 3, since that's *not* a factor of 4. 00:36:32 Speaking of just wanting somebody to die ... 00:39:05 GregorR: Uh-oh. I'm sorry! :'( 00:40:02 Okay, so now we take .5|00>+.5|01>+.5|10>+.5|11> 00:40:17 .5^2 = .25, so that should work as the amplitude. 00:40:29 No, .5|00> + .5|10> + .5|20> + .5|30>. 00:41:03 Speaking of just wanting somebody to die ... :P 00:41:16 GregorR: Yes, what? Who do ye want dead? 00:41:25 He didn't say that. 00:41:35 Okay, fine. First register = 0-3, Second = 0. 00:41:40 Yep. 00:41:55 So then we take... 3^x mod 4, right? 00:41:59 Yep. 00:42:29 So we turn that into (|01> + |13> + |21> + |32>)/2, I think. 00:43:08 ...No, (|01> + |13> + |21> + |33>)/2. 00:43:13 Yeah, that's better. 00:43:51 Now Fourier transform that bad boy! 00:44:03 Er, inverse. Inverse Fourier transform. 00:44:36 ...How do I do that? 00:44:45 Damned if I know. 00:45:09 Oh, let's skip to the probability part. 00:45:28 You have to do the transform first, buddy. 00:45:50 Is there some sort of Introduction to Quantum Computing? 00:45:51 Do we? 00:46:11 Razor-X: well, you might wanna look at... something. Lemme see... 00:46:17 I think. Otherwise the numbers we're working with would be all wrong. 00:46:37 Razor: Actually, I promised a couple guys I'd write up a QC tutorial for 'em. 00:46:49 Razor: Do you want the physics behind it, or just the math and comp-sci part? 00:47:04 Well, you have to understand wavefunctions. 00:47:35 AndrewNP: Well, depends on how involved the physics is. 00:47:43 No, I don't have enough background for the wavefunctions. 00:47:54 Unless a wave function is a sine curve :D. 00:48:10 I thought the whole point of the bra-ket thingie was to abstract out the wavefunction? 00:48:17 Um, well... yeah. 00:48:21 Okay, skip that. 00:48:35 Now, instead of 0 and 1, we have |0> and |1>. 00:49:03 Awesome. 00:49:06 And we can use |0> and |1> as numbers, sort of. 00:49:08 Like 0 and 1, smilified. 00:49:17 Sort of, mmmkay. 00:49:27 And this time, instead of covering up a voltage, they stand for a whole crapload of physics. 00:49:56 We can add quantum states to each other, and we can multiply quantum states with numbers. 00:50:28 Essentially, you have to be able to turn it into something of the form a|0> + b|1>. 00:50:43 And |a|^2 + |b|^2 has to be 0. 00:51:08 So |0>*sqrt 2 + |1>*sqrt 2 is valid, but 2|0> isn't. 00:51:12 You mean, has to be 1. 00:51:17 Yes. 00:51:48 So you can have like... sqrt(2)|0> 00:51:55 Razor-X: so now that you understand everything, write me a qbf program. 00:52:04 Uh...... 00:52:25 Razor-X: well, no, because the square of the absolute value of the square root of 2 is 2. 00:52:42 Mmmm. Can someone make a TeX proof of this? >_>. 00:52:51 A TeX proof of what? 00:52:55 Errr, not proof. 00:53:03 But, it's hard to see without only ASCII on IRC. 00:53:15 (Note. I should be studying for my Statistics final. Do I care? No.) 00:53:22 Oh, wait, I meant |0>/sqrt 2 + |1>/sqrt 2. 00:53:36 So, uh ... |0> is divided by sqrt(2) ? 00:53:42 Yep. 00:53:51 But what value does |0> have? 00:54:05 |0> is just |0>. It's like a variable. 00:54:43 Alright.... 00:55:14 But then, since |0> is symbolysis for physics cr*p, then you can at most simplify to |0>/sqrt(2) ? 00:55:32 Well, |0> and |0>/sqrt(2) are different thinges. 00:55:50 Well, yeah... I understand that... 00:55:54 Yeah. Think of it as an ordered pair with |0> and |1> coordinates. 00:55:59 Ok. 00:56:16 What operations can you do to these |0> and |1> ? 00:56:43 Well... 00:57:12 There must be some repeatability in the operations to produce logic with them, no? 00:57:16 An example would be the Hadamard gate, which turns |0> into (|0> + |1>)/sqrt(2) and |1> into (|0> - |1>)/sqrt(2). 00:58:07 How do you perform logic, then? 00:58:22 With different gates, on a bit level? 00:58:24 Well, there's, say, the Toffoli gate, which is simply a logic gate turned quantum. 00:58:37 no 00:58:41 toffoli gate is not quantum. 00:58:50 it operates on regular bits. 00:58:56 Mmmmm. 00:59:05 The Toffoli gate leaves everything the same, except that it turns |110> into |111> and vice versa. 00:59:07 But the Toffoli gate IS reversible, one-to-one, which is what all quantum gates need to be. 00:59:31 Something about thermodynamics. Don't know, don't care. 00:59:37 Heh. 00:59:49 So there's no such thing as a ``Quantum Truth Table'' ? 00:59:55 A what? 01:00:14 Well, yes, but they're more complicated. 01:00:25 Quantum gates use a square matrix to describe the transformation. 01:00:37 How so? 01:00:54 Well, the outputs can be any quantum states, instead of simple bits. 01:01:45 ihope: Well, duh. ;) 01:01:45 But here, the quantum states are |0> and |1> ? 01:01:55 And combinations of them. 01:02:04 Yeah, those are just the base states. 01:02:12 The x and y, if you will. 01:02:38 You can also have things like (|0> + |1>)/sqrt(2). 01:03:21 So, all you can do is divide by sqrt(2) one or both of the quantum states? 01:03:31 Well... 01:03:48 There are also states like -|1> and |1>i. 01:04:09 Well, |1>-1 is the same thing as -|1> ? 01:04:10 Or 3/5 |0> + 4/5 |1> 01:04:11 The only rule for quantum states is that the squares of the absolute values have to add up to 1. 01:04:19 Ah. 01:04:31 Razor: It has to be in the form a|0>+b|1>. 01:04:38 Adding a constant is meaningless. 01:04:50 Oh! I see. 01:05:10 abs( a|0> ? b|1> )^2 = 1 ? 01:05:16 Trying to pastebin an explanation of matrix notation, but it's being slow >_< 01:05:18 Errr... 01:05:23 abs( a|0> + b|1> )^2 = 1 ? 01:05:30 abs(a)^2 + abs(b)^2 = 1 01:05:39 Ok. 01:05:51 And as ihope pointed out, a and b can be complex. 01:05:52 http://pastebin.ca/101581 < matrix notation 01:06:33 To use the quantum gate, you just have to multiply the state vector by the matrix. 01:07:01 For example, for a single qubit a|0>+b|1>, the state vector is [a,b]. 01:07:20 But, you would get a resulting matrix then, no? 01:07:28 Isn't the goal to get a resulting vector? 01:07:35 A vector times a matrix is a vector. 01:07:41 Oh, duh. Whoops. 01:07:43 And since the matrix is square, it'll be the same dimension. 01:07:51 Yeah, I see. 01:08:00 Ah, OK, so then these gates are scientifically designed to be possible? 01:08:09 Yep, something like that. 01:08:23 Don't ask me how. Maybe ihope knows? (If you care, that is.) 01:08:38 IIRC, at least a few exist in reality. 01:08:44 Well, what do you mean by "these gates"? 01:08:53 These matricies. 01:09:02 But which ones are "these" ones? 01:09:14 The ones that are used in QC. Hadamard, CNOT, and so forth. 01:09:36 Well, if they weren't actually possible, we probably wouldn't be using them. 01:09:53 There is one limitation, though. QC gates have to be "unitary" matrices. 01:10:15 Unitary? 01:10:29 Its conjugate transpose has to equal its inverse. 01:10:37 I don't know if there are any rules other than that they have to be unitary and they have to actually produce valid states. 01:10:57 * Razor-X decides to look up Matrix conjugate transposes. 01:11:45 Then, I gather there's a large-but-finite amount of states? 01:11:53 s/unitary/reversible/ 01:11:58 Technically it's infinite. 01:12:05 Oh. 01:12:14 Any two complex numbers that obey |a|^2 + |b|^2 = 1 are legal. 01:12:41 .... I'll assume that complex numbers can be states too :P. 01:12:46 Yep. 01:12:56 Mmmm. Doublethink. 01:13:01 Yeah. You could have 3/5i |0> + -4/5 |1>. 01:13:06 Anyhow, how does this fit into computing? 01:13:15 You can compute with these. 01:13:20 Well, the real magic happens once you get more than one qubit. 01:13:29 For multiple qubits, you have things in the form a|00> + b|01> + c|10> + d|11>. 01:13:44 But, can 4 qubits go into one gate? 01:13:46 And |a|^2 + |b|^2 + |c|^2 + |d|^2 = 1. 01:13:56 Razor-X: if it's a 4-qubit gate, yes :-) 01:14:14 Yep. 4x4 matrices = 2-qubit gates. 8x8 = 3 qubits. 01:14:20 And so on and so forth. 01:14:23 So the rules stay the same, just reversible and produces valid states? 01:14:30 Yep. 01:14:51 Is there any math to decrease the ``circuitry'' involved? 01:15:04 Like a K-map or something? 01:15:48 Um... 01:16:07 Well wait... because normal bits have two possible states, you can produce logic in the form of base-2 numbers..., if the number of possible states is infinite, you have base-infinite numbers??? 01:16:17 Nope, still base two. 01:16:28 The numbers are actually *probabilities*. 01:16:34 Oh :D. 01:16:55 That when you observe the bit or do something irreversible, the value will be |0> or |1>. 01:17:16 So... if you want a |1>, you want to get the probability for |0> as low as possible? 01:17:22 Yep. 01:17:26 Preferably to 0 :P 01:17:45 All the qubits in QBF start as (0,1), so that's easy :P 01:17:59 So that also chops down the number of possible states by a lot too, if you want totally probably states, no? 01:18:03 But if you want a |1>, you can just pull one out of thin air. 01:18:11 Razor-X: if you want what? 01:18:19 A |1> ? 01:18:27 Wait.... 01:18:33 *totally probable states 01:18:34 Blah. 01:18:49 Yeah. Part of the problem with QC is figuring out a way to make the correct answer the probable outcome. 01:18:53 Mind you, I believe that in QBF you can actually only achieve about six states ... 01:19:12 GregorR-W: what're those? 01:19:21 Figuring it out right now :P 01:19:22 Razor: 'Cause once you observe something, it stays in that state. It collapses to a pure |0> or |1>. 01:19:41 So, the goal of qubits is to apply a certain number of gates until the probability for a certain qubit becomes 1 and the rest 0? 01:19:47 AndrewNP: Yeah, I know. 01:19:55 OK, much more than six, but finite :P 01:19:58 Razor-X: well, sort of, yeah. 01:20:04 Sort of :P. 01:20:26 Well, you usually can't guarantee a 100% probability, but if you get a high figure and run the algorithm several times, you should get a pretty good idea of the answer. 01:20:36 What's the advantage of quantum computing over binary computing? 01:20:36 high *probability*. 01:20:47 (0, 1), (1, 0), (1/sqrt(2), 1/sqrt(2)), (1/sqrt(2), -1/sqrt(2)), (0, i), (i, 0), (0, -1), (-1, 0), (0, -i), (-i, 0), (i/sqrt(2), i/sqrt(2)), (i/sqrt(2), -i/sqrt(2)), (-1/sqrt(2), -1/sqrt(2)), (-1/sqrt(2), 1/sqrt(2)), (-i/sqrt(2), i/sqrt(2)) 01:20:49 Razor-X: doing lots at the same time. 01:20:55 Probably missed some :P 01:20:56 ihope_: Huh? 01:21:02 But, gtg 01:21:05 -!- GregorR-W has quit ("Chatzilla 0.9.73 [Firefox 1.5.0.2/0000000000]"). 01:21:47 Razor: The number of states that can be manipulated at once goes up exponentially with the number of qubits. 01:21:57 I see. 01:22:12 If you put something into a superposition of every basis state, then apply some function to it... 01:22:14 But, what's the advantage to the different number of states? 01:22:33 Each one represents a binary number. Like |01001>. 01:22:51 So with 5 qubits, you can apply the function to the range [0..31] simultaneously. 01:22:54 Aha! 01:23:03 I see. 01:23:21 Now the lightbulb goes off, and she becomes a believer. :) 01:23:21 What operations does QBF allow? 01:23:25 Er, on. 01:23:26 Hehehe. 01:23:50 And with QC, you can access some of the weirder parts of quantum physics. Like entanglement. 01:23:55 Hadamard gate, controlled-V gate, swap. 01:24:01 The bits don't have to be indpendent of each other. 01:24:10 Uh.... :P. 01:24:20 Using probabilities instead of those godawful magnitudes, let's say you have... 01:24:21 The Hadamard gate and controlled-V gates have their own matricies, I gather? 01:24:36 Razor-X: well, just don't thing of them apart. And yes, they have their own matrices. 01:24:54 10% |00> + 20% |01> + 30% |10> + 40% |11>. 01:25:15 100%! Woohoo! I can count! 01:25:21 Instead of two (|0> + |1>)/sqrt(2) that have to be the same, you can just have (|00> + |11>)/sqrt(2). 01:25:41 Better example, ihope. I yield to you. 01:25:45 So if the probability of two qubits is the same, they're considered to be the same qubit? 01:26:16 Well, when you have two or more qubits, you can't consider them in isolation. 01:26:38 In ihope's case, whatever the first bit is observed to be, the second bit will NECESSARILY be also. 01:26:55 Yeah, I understand. 01:26:59 In my case, observing one bit will alter the probability state of the other bit. 01:27:16 If you've taken a stats class, this should all be simple enough. ;) 01:27:18 Physically though, you can only view one of the two, no? 01:27:38 Nah, you can view any one of them. Ideally, at least. 01:27:45 At the same time? 01:28:12 Probably. And the probability of each outcome is determined, again, by the overall matrix. 01:28:22 Ah. Ok. 01:28:35 So for ihope, there's a 50-50 chance of seeing |00> or |11>. But you will NOT get |10> or |01>. 01:29:04 I see. 01:29:33 But if physically you only see one of the two, what's the point of them having the same probability other than to confuse? 01:30:13 Well, ihope's case is more to give you a feel of how it works. 01:30:23 Mmmkay. 01:30:33 I don't think it would occur in a practical algorithm. 01:31:01 Well, it doesen't seem *too* complicated... if that's all there is to it.... 01:31:20 At a very high, abstract, I-don't-care-about-the-very-complicated-physics level. 01:31:29 Yeah, the math concepts are pretty easy. The challenge is designing algorithms for it. 01:31:41 Seems like a perfect job for the Esolang community. 01:32:02 And, of course, there's the hardware level. They think 7 qubits is an accomplishment. They factored 15. 01:33:39 Razor: Yeah, that could be a good field of study. 01:33:57 Certainly more fruitful than "How many ways can we encode Brainf***?" X-D 01:34:13 Hahahaha :P. 01:34:34 Well, 7 qubits is better than binary for sure. 01:34:35 like a perfect job for the Esolang community. 01:34:35 [20:31] And, of course, there's the hardware level. They think 7 qubits is an accomplish 01:34:54 Whoa. Did I paste that? 01:35:00 Yeah, you did :P. 01:35:16 Sorry. Need to not play with ctrl-C while this window is open. ^^;;; 01:35:23 Heh. 01:35:31 Is the QBF interpreter ready yet? 01:35:48 Wait a second... hmmmm... 01:35:51 How does QBF syntax look? 01:36:05 A lot like BF. 01:36:13 I gathered that much :P. 01:36:18 But with ! and % and & and such. 01:36:24 But I mean..., you don't have a ``tape'' here do you? 01:36:48 It works on a "tape" of qubits. 01:36:53 Yep. 01:36:58 All initialized at |0> ? 01:37:06 All initialized to |1>. 01:37:09 Ah. 01:37:16 How many qubits at once? 01:37:18 ihope: Any reason for that instead of |0>? 01:37:19 Just one? 01:37:42 Well, the qubits can be entangled, as in a single register. 01:37:46 AndrewNP: well, it might actually be impossible to create a NOT gate. 01:38:21 Oh right. 'Cause of the controls. Do they make "inverse-controlled" gates? 01:38:27 But it's possible to get a CNOT, so it starts with |1> so people can use that. 01:38:56 And they don't make gates wholesale. :-) 01:39:21 Heh. I meant, like, physically and mathically speaking. 01:39:26 So You can invert one way but not the other? 01:39:29 Mathically :P. 01:40:08 Well, controlled gates only work if there's a |1> bit somewhere. 01:40:30 Like, if bit one = 1, do THIS to bit two. 01:40:43 It's a convenient way to entangle two qubits. 01:42:13 Entangle? 01:42:16 :P. 01:42:27 Make their states codependent. 01:42:36 How would you do that? 01:42:44 By changing the probabilities? 01:43:14 Pretty much. Controlled gates change |10> and |11> without touching |00> or |01>. 01:43:47 Well, if we have multiple qubits, then we use |00> and such as basis states instead of |0> and such. 01:44:02 Mmmkay. 01:44:11 I feel happy with my now-new-knowledge in fancy lingo. 01:44:26 And somewhat-simple math. 01:45:24 The problem with bra-ket notation is that it can be tricky to tell | and 1 apart :- 01:45:32 s/:-/:-)/ 01:45:52 My font sees it fine, heh. 01:46:25 How is input handled? 01:46:34 In QBF, or just in general? 01:47:01 Both :). 01:47:04 Razor-X: I mean when writing them down. I tend to write both the same, except with | a bit longer. 01:47:17 Ah. 01:47:29 I write the 1 with the extra appendage up top. 01:48:13 In QBF, you take a classical bit from cin and write it to the current qubit. Right? 01:48:29 AndrewNP: that's one way of doing it. 01:48:33 So then, you're manipulating 8 qubits, I imagine? 01:48:44 Razor-X: why 8? 01:48:59 Well... ASCII input.... 01:49:18 Oh. 01:50:38 Eh, I guess you could handle it like that BIT language, where it reads in the character 1 bit at a time... 01:50:53 The only problem is, since it's ASCII, you'd never get a 1 for the high bit. 01:51:27 If you give it Unicode, you could. 01:51:52 Or if you only limit it to 7 qubits.... 01:52:02 (Which seems physically possible, at least.) 01:52:58 Well, I don't think you have to limit the qubits -- since you can write the input one bit at a time. 01:53:18 Like BoolF. 01:53:38 Right. Maybe you could just discard every 8th bit...? 01:55:08 Well, that would also be quite painful. 01:55:17 More so than it already is with matricies :P. 01:56:15 True. I guess you could just live with the always-zeroed bit. 01:56:34 The bigger concern would be actually writing it. Since you'd probably have to observe and collapse the qubit first. 01:57:05 So that it'd be in a pure state that could be flipped. 01:57:06 Um... 01:57:22 If you want to write to a qubit, discard it and get a new one :-) 01:57:42 But what would that do to the existing state vector? 01:57:52 I wanna make sure whatever happens is physically possible. 01:58:02 If, God forbid, QBF becomes *the* language for QCs. 01:58:05 You can't flip non-collapsed qubits? 01:58:18 Well, if we have enough algorithms, it'll probably be used in the beginning. 01:58:27 Well, you could, but you wouldn't have a guaranteed |0> or |1>. 01:58:32 Razor-X: nah, something like QPL would be used. 01:58:36 QPL? 01:58:53 You can throw away qubits just by keeping them somewhere safe. 01:59:47 Hm... I guess that could work. As long as you don't observe it, the probabilities of the other qubits should stay the same, 02:00:05 Yep. 02:02:08 But if you did a lot of input, you'd end up with a lot of discarded qubits. And would it even be *possible* to swap qubits out of a register? 02:02:48 You can move qubits out of a register by physically transporting them, or by using quantum teleportation. 02:03:34 Yeah, but could you do that without totally disrupting the rest of the register, is my question. 02:03:56 Yes. 02:04:15 Eh, if you say so. I'm not the physics... knowing... guy here. 02:04:36 Unless all the stuff I know about observing quantum states is wrong. Not that I know much... 02:05:16 .... Quantum teleportation? 02:05:27 Doublethink time. 02:05:34 It exists, it's always existed. 02:05:35 Yes. 02:06:11 *it has 02:07:02 By entangling one qubit with another, you can set it up so that the one's state can be saved to the other when you collapse it. 02:07:18 Quantum teleportation is some weird thing that allows transmission of a qubit by transmitting two classical bits and using two entangled qubits. 02:07:47 Yeah. The classical bits are required if you want any information out of it, so you can't transmit at faster than the speed of light. 02:08:10 Though... if the state of the classical bits were agreed upon beforehand, couldn't you get around that rule? 02:08:28 You can't agree on them; they're determined by observation. 02:08:57 Just like you can't have two people agree on the result of flipping a coin. 02:09:11 Ohhh. K then. I'll have to reread that part. 02:09:59 Ah. Got it. So never mind then. 02:10:43 Yes. Doublethink it is. 02:11:09 It's a bit weird at first, but it makes sense in terms of entanglement. 02:11:15 Uh.... 02:11:18 All you're doing is moving the entangled qubits apart. 02:11:22 You change the probabilities and they teleport? 02:11:33 How can you ``move'' a qubit, first of all? 02:11:38 The only thing you're "teleporting" is the state of the qubit. 02:11:44 You're not actually moving anything physical. 02:11:45 Hell, I don't even know what a qubit physically represents :P. 02:11:55 Neither do most physicists. ;) 02:12:08 Orwell has given me a great tool to understand all of this. 02:12:13 Thank you Mr. Orwell, now..... 02:12:15 Seriously, they still get into fist fights with philosophers of science about it. 02:12:21 Or maybe I made that up. 02:12:48 So..., magically, real bits with real values and qubits have their probabilities change, and they swap like magic? 02:13:45 Not magic. But doublethink. 02:15:55 Yeah, I still don't get how it works, math-wise. But rest assured, when the one qubit gets observed, the other collapses into a state equivalent to that of the first. 02:16:19 So... the entire tape fills up with qubits of the same value? 02:16:48 Well... that's what happens when you do quantum teleportation. 02:17:20 Is there a quantum teleportation operation in QBF? 02:17:29 There's a swap operator. 02:17:53 But does that turn every qubit on the tape to the same value as the current qubit? 02:18:04 What? No. No-ho. 02:18:05 Nope; it just swaps two qubits. 02:18:08 Or is the qubit only collapsed when you output it? 02:18:10 Oh. 02:18:24 Outputting can collapse a qubit, and loops always do. 02:18:32 You could probably construct quantum teleportation in QBF. 02:18:52 I would assume so. If your gates are computationally complete, which I think I saw some citation saying they are. 02:19:45 Maybe that'd be a good program. Combine QBF with classical BoolF to simulate teleportation? 02:19:51 ............ 02:20:04 I still don't understand the exact process behind a teleportation..... 02:20:09 Neither do I. 02:20:21 So how can you make QBF do it? 02:20:56 I can't, but somebody else probably could :-P 02:21:01 Probably. ^^ 02:21:09 How did I know you'd say that? :P. 02:21:32 You guessed? 02:21:39 You'd need to entangle the qubits, observe one, and somehow use its state to control what is done to the other. 02:21:43 Yes. 02:22:02 Can't you make a loop do that? 02:22:14 *Maybe*[21:17] Nope; it just swaps two qubits. 02:22:14 [21:17] Or is the qubit only collapsed when you output it? 02:22:14 [21:17] Oh. 02:22:23 What the...? 02:22:29 Uh..... 02:22:41 * Razor-X ignores the fact that she seems to be in each of those pastes. 02:22:44 Hmm? :-P 02:22:58 * AndrewNP kills the hypersensitive Insert key. 02:23:12 Anyway, it SHOULD be possible to make a loop do what needs to be done. 02:23:28 I can imagine it, kinda. 02:23:51 The only trick would be moving the pointer to a pure |0> so that it doesn't repeat the operation. 02:23:55 But that's easy. :) 02:24:18 Well, with quantum teleportation, it'd be "easy" to construct a quantum network. 02:24:43 Woo. More lingo. 02:24:48 With quantum foo, it'd be "easy" to bar. :p 02:25:02 Are there any other quantum programming languages out there? 02:25:11 Other than QBF and QPL? 02:25:17 What's QPL? 02:25:32 Nevermind. 02:25:39 http://www.google.com/search?q=Quantum+programming+language 02:25:40 :-) 02:25:58 I think QBF is a first generation QPL. ;) 02:26:18 That scares me, to tell you the truth. 02:26:36 Why is it scary? 02:26:37 Maybe there isn't a language called QPL. 02:26:40 At least we're doing something useful. 02:26:51 http://en.wikipedia.org/wiki/Quantum_programming_language 02:26:56 Wikipedia says there is. 02:26:57 I must have been thinking of QCL. 02:27:03 But I'm not finding a spec. 02:27:12 Who cares. We have QBF. 02:27:24 And I can doublethink myself into assuming it's all possible and existable. 02:27:30 So it's all good ;). 02:27:36 Then again, do we really NEED quantum-specific languages beyond the assembly level? 02:27:51 Seems you could just have the compiler optimize quantum-efficient algorithms. Maybe. 02:27:57 Do we really NEED classical programming languages beyond the assembly level? 02:28:02 ;). 02:28:50 No, no, I mean, we can avoid the quantum nastiness. Keep the high-level languages classical, and let the compiler take care of the quantum stuff. 02:29:19 At some peoint, algorithms probably need to be changed. 02:29:21 I can't imagine your average monkey-suited coder wants to learn complex linear algebra just to factor a number. ;) 02:29:22 Oh. 02:29:33 You can simulate a classical computer, but I don't think it'll be as effecient. 02:29:47 Well, if your compiler can completely rewrite algorithms... 02:29:48 Well, why not AndrewNP ? 02:30:07 Finally! The end of the Silicon Valley army of Coders-With-No-Heart! 02:30:10 AndrewNP: The average code-monkey doesn't even want to learn basic arithmetic. 02:30:40 pikhq: LOL! Good call. 02:31:27 Jeez. I'm in *high school*, and I know more then a code-monkey could ever hope to learn. 02:31:50 I'm in high school too, ya know. 02:32:01 Which is why I'm using doublethink to quell my curiosity. 02:32:26 ihope: Okay, so it was a stupid idea and I apologize. But how well is this quantum stuff going to mesh with all our existing languages...? 02:32:44 I can see it now: "import java.quantum.*;" 02:33:02 Because Java will not die, as much as it may deserve to. 02:33:07 I'm just saying that, even with the math knowledge from high school math, it is p[ossible to know much, much more then a code-monkey. . . 02:33:29 Yeah, there are ways to combine quantum stuff with current languages. 02:33:41 Well, I have a nice advantage. 02:33:45 I'm horribly stubborn. 02:34:04 But oddly enough, quantum stuff at base seems to be imperative. 02:34:09 So, if I don't understand something, either I'll spend many of my 22 hours searching for how to understand something, or badger someone to death until they tell me. 02:34:57 Razor-X: That's fairly normal in my experience. ;p 02:35:19 Most high-schoolers want to do this weird thing called ``sleep'' when they're done with homework and studying. 02:35:29 Ah just duhn anderstund. 02:36:00 And most high-schoolers want to do this weird thing called "studying". Why bother? I know more then the teacher already! :p 02:36:08 Heh. 02:36:26 Just remember, kids: if they knew anything about the subject, they wouldn't be stuck in a teaching job! :) 02:36:48 Indeed. 02:37:31 Heh. 02:43:40 Well, I think I'm gonna call it a night. You guys -- and lady :) -- stay classy out there. 02:43:49 -!- AndrewNP has quit ("See ya!"). 03:06:55 Back. 03:07:05 I have a few more questions about QBF, if someone wants to entertain me. 03:07:30 Ask away. 03:07:58 What does QBF output when the probabilities aren't totally certain? 03:08:04 Output the most likely one, or error out? 03:08:45 Or output using a weighted distribution? 03:10:48 Well, I think the current distribution chooses randomly. 03:10:59 Not even weighted? 03:11:02 s/distribution/implementation/ (common typo, eh?) 03:11:05 And it's weighted. 03:11:11 Ah. OK. 03:11:14 Cool-z. 03:12:45 And what's the matrix for a Hadamard gate? 03:13:59 [1 1] 03:14:01 [1 -1] 03:14:11 Divided by the square root of two. 03:15:23 Mmmkay. 03:15:57 Now. Time to pursue my semi-useful idea. 03:16:10 Oh yeah, and where can you get this awesome piece of interpreter from, and what's it written in? 03:16:55 It's written in Python, and it's probably at the file archive. 03:17:39 http://esoteric.voxelperfect.net/files/qbf/impl/ 03:18:03 Oooh-ness. 03:19:00 Semi-useful idea? 03:19:02 Blasphemy. 03:19:37 I know. 03:19:46 (|useful> + |not useful>)/sqrt(2) 03:19:46 It's an idea I got from my Statistics final. 03:20:25 Statistics == Math for a business major. 03:20:34 AKA pure bullshit. 03:20:41 But it gave me a nifty idea. 03:20:51 Hmm? 03:20:57 Our teacher allowed us a letter-paper page front-and-back of notes. 03:21:20 You're lucky. My algebra teacher only gave me an index card for notes. 03:21:33 So, a thought struck me at making a form of condensed English that's human readable and reproducable. 03:21:37 Notes? Bah, humbug. . . 03:21:48 It's a summer course with a nice teacher. 03:21:49 I stuffed it full of formulas and only used one. 03:21:54 My teachers have never given me notes in the past. 03:21:59 *let me used notes. 03:22:00 Razor-X: Got it already. I'll try making a document to explain it for you. 03:22:09 Huh? 03:22:13 You made one? 03:22:18 Yes. 03:22:24 Boredom inspired. ;) 03:22:29 Can it reproduce mathematical formulae? 03:23:27 I can't help but think that making a formula any more condensed and it won't be understandable. . . 03:23:41 Unless, of course, you don't mind postfix notation. :p 03:23:58 Lemme see. 03:24:08 I was thinking of implementing a functional style notation to represent mathematical operations. 03:24:17 Hmm. 03:24:25 Now that could be interesting. 03:24:34 Well, it's easy to condense and read. 03:25:05 I was also going to condense the most common English polygraphs. 03:25:25 ps, th, ch, ough, ead, ae, and others. 03:25:30 Needs some time and analysis. 03:25:37 What I produced was simply a very condensed writing system for English, taking advantage of the fact that 'nglsh 's vr rdbl whn wrttn 's 'n 'bjd. 03:26:15 I was thinking of omitting vowels, but I wasn't sure. 03:26:24 Or simply implying glide using an accent on the consonant. 03:26:34 That, alone, makes it much shorter. . . 03:26:43 Like `a can represent ae. 03:26:50 Or `f can represent fe. 03:27:00 (Of course, the accent is on top of the letter.) 03:27:21 I made my writing system so that I can write each characters using one stroke on the paper, so that I can write in it much faster. . . 03:27:27 Probably not something you need. 03:27:42 My requirement is that it must be TeX-symbol compatible. 03:27:58 Handywrite does shorthand well enough. 03:28:07 It's new graphomes entirely. 03:28:18 Pretty much, it's my own, personal shorthand. ;) 03:28:19 Yeah, this must be printable by a computer. 03:28:29 Because a computer can get a lot more condensed than my hand can ;). 03:28:58 I'm capable of writing stuff that's very small. . . 03:29:13 I'm not, heh. 03:29:18 Roughly 9pt font, I believe. 03:29:35 It's double worse because I'm a girl X_X. 03:29:37 *doubly 03:29:55 Why's that? 03:30:05 Because girls must have good handwriting. It's social stigma. 03:30:19 -_-' 03:30:24 Exactly. 03:30:36 Not that I care that much, but it's a good asset to have >_>. 03:30:55 I think that being a good typist is a much more useful skill, personally. 03:31:09 I was thinking of borrowing Greek letters too, but mathematical functions use those. 03:31:19 It maybe more concise to use global Greek letters. 03:31:26 People are *impressed* by me typing at 70 wpm. :/ 03:31:29 So maybe Hebrew, if TeX supports it by default. 03:31:36 I type at 130.... heh. 03:32:07 I've got fat fingers, which sort of slows my typing speed; need to go back and correct myself. 03:32:38 There are some advantages to having ``dainty'' hands :P. 03:32:56 I use an IBM Model M all the same. 03:32:57 Apparently. 03:33:24 I'm thinking about learning Dvorak sometime. . . 03:33:31 'Tis nifty. 03:33:32 I like it. 03:33:53 Also. . . I WANNA BUCKLING SPRING! :'( 03:33:54 :p 03:34:40 Hehehe. 03:34:45 It's reeeeaaaalllyyy nice. 03:34:51 I love buckling springs. 03:35:06 Now, if I can get a Dvorak buckling spring keyboard, I'll be incredibly happy. 03:35:26 IBM Model M's can be rearranged. 03:35:35 (Except the home keys will lose their little indentation.) 03:37:28 qId rather not do xmodmap for it. 03:37:31 Grr. 03:38:00 I don't use xmodmap, I load the keymap itself. 03:38:02 But vatever. 03:38:51 Remind me to stab whoever thought that mapping xoff to C-a s was a good idea, please. 03:40:24 It's so easy to accidently hit C-a s when trying to type just C-a. . . 03:40:54 And, since you don't really notice it, you just think that the screen session locked up on you. 03:41:06 -_-' 03:43:01 I use Emacs binds, so meh. 03:44:01 I'm thinking of also using tense modifiers in the condensed English. 03:44:09 Screen can do Emacs binds? 03:44:13 T3h shweet. 03:45:22 Oh. I rebound screen to the character C-z. 03:45:34 Ah. . . 03:45:44 Because Emacs uses C-a for beginning-of-line. 03:46:09 I've gotten used to doing C-a a. . . 03:46:41 Just too lazy to figure out what to do to my .screenrc. ;) 04:03:40 Raar 04:04:19 EgoBot going down for upgrades. 04:04:45 !reload 04:04:46 -!- EgoBot has quit (Read error: 104 (Connection reset by peer)). 04:04:57 Hmm. . . 04:05:09 No, you can't use !reload 04:05:19 I'm thinking about doing a presentation on esoteric languages for the local LUG. . . 04:12:20 Do the upgrades include a QBF thing? 04:13:26 Yes, but that's the least notable part :P 04:13:34 Is it? 04:13:51 Can you give me the URL so I don't have to dig? :P 04:14:02 The most significant part if I ever get it working is persistent daemons. 04:14:10 http://esoteric.voxelperfect.net/files/qbf/impl/ 04:14:45 But shouldn't you wait for the restart-for-upgrades until you've actually finished them? :-P 04:15:30 I finished it, it just doesn't work. 04:16:06 If it doesn't work, then how is it finished? 04:16:15 OK, lemme put it this way: 04:16:18 I wrote the code, but it's buggy. 04:16:51 Eh, time to go to Sleepyland. 04:17:28 -!- ihope_ has quit ("I don't suppose you're an honorary Sleepyhead too..."). 04:46:05 Almost got it working ... 04:46:59 Working :) 04:47:02 helo 04:47:22 GregorR: qbf! egobot! 04:47:28 Done. 04:47:34 !qbf . 04:47:39 Plus persistent daemons. 04:47:45 Yeah, let's not patiently let it reload. 04:47:59 !qbf . 04:48:00 !qbf . 04:48:00 !qbf . 04:48:00 !qbf . 04:48:00 !qbf . 04:48:23 it doesn't work!!! 04:48:25 -!- EgoBot has joined. 04:48:42 !ps d 04:48:44 1 EgoBot: daemon repeater reload 04:48:46 2 GregorR: ps 04:48:51 Watch this, this is amazing. 04:48:52 !qbf . 04:48:54 1 04:48:58 !qbf . 04:48:58 That daemon was of course killed on the last run. 04:49:02 1 04:49:05 I already told it Line 1 and Line 2. 04:49:06 But look: 04:49:07 !qbf %. 04:49:09 !repeater Line 3 04:49:10 1 04:49:12 Line 1 04:49:14 Line 2 04:49:16 !qbf %. 04:49:18 1 04:49:20 !qbf %. 04:49:24 0 04:49:26 Persistent daemons. 04:49:27 WOOHOO!!!! 04:49:28 Damn right. 04:49:35 !undaemon repeater 04:49:39 Process 1 killed. 04:49:58 !qbf %!!%# 04:50:02 Whoops, one more quickfix. 04:50:05 !reload 04:50:05 -!- EgoBot has quit (Client Quit). 04:50:37 -!- EgoBot has joined. 04:51:18 GregorR: can you do one change to the interpreter 04:51:43 GregorR: in qbf.py on line 89 add a , at the end of the line 04:52:02 so that debug info is shown in one line and displayed in the channel 04:52:15 also delete line 86 04:52:19 for the same reason 04:53:32 but only after you change line 89, or you'll change the wrong line 89 :) 04:54:09 Um 04:54:13 Line 89 is a comment ... 04:54:41 sorry, i guess i changed the interpreter without telling anybody 04:54:48 by line 89 i mean 04:54:49 print '%.2f' % (abs(memory.contents[i])**2), 04:54:59 (note the added comma at the end) 04:55:01 OK, comma is there. 04:55:05 and by line 86 i mean 04:55:06 print 04:55:16 Okidoke, it is done. 04:55:19 thanks 04:55:25 !qbf %!!%# 04:55:28 |00> 0.00 |10> 0.00 |01> 1.00 |11> 0.00 04:55:33 yay 04:55:44 (or something) 04:56:02 So, persistent daemons ^^ 04:56:12 Nobody but me realizes how cool this is. 04:56:16 nope 04:56:28 quantum brainfuck, on the other hand!... 04:56:36 :P 04:56:40 Now we could, for example, implement a daemon to store memos to eachother with no fear of losing them. 04:56:48 Or, at least, much less fear. 04:57:06 !qbf # 04:57:08 |00> 0.00 |10> 0.00 |01> 0.00 |11> 1.00 04:57:14 !qbf %# 04:57:16 |00> 0.00 |10> 0.00 |01> 0.50 |11> 0.50 04:57:28 erk 04:57:33 erk 04:57:34 Erk what? That seems right. 04:57:39 no but 04:58:00 the ordering of the states is the reverse of what it should be 04:58:04 gah 04:58:12 Ah, I see. 04:58:16 Yeah, should be 00 01 10 11 04:58:20 Not 00 10 01 11 04:58:32 it just has the strings reversed 04:58:47 Woahwaitwha? 04:58:50 wait, it doesn't 04:58:56 * lament is an idiot 04:59:00 They seem to be right X-P 04:59:05 well 04:59:15 the problem is 04:59:37 the direction of the memory tape is to the right 04:59:45 but the direction in which binary numbers "grow" is to the left 04:59:53 so when i add a third qubit 05:00:11 it will show up on the wrong side 05:00:20 !qbf >>%# 05:00:24 |000> 0.00 |100> 0.00 |010> 0.00 |110> 0.50 |001> 0.00 |101> 0.00 |011> 0.00 |111> 0.50 05:00:38 Ah, right is left, left is right. 05:00:45 right 05:00:49 Left. 05:00:53 same thing. 05:01:16 so the trick is to think of these |x> things as pieces of Brainfuck memory tape 05:01:19 not binary numbers 05:01:30 011 means 3 memory cells that contain 0,1,1 05:02:11 !qbf %>%>%# 05:02:14 |000> 0.12 |100> 0.12 |010> 0.12 |110> 0.12 |001> 0.12 |101> 0.12 |011> 0.12 |111> 0.12 05:03:02 heh 05:03:16 | could mean "start of tape" and > "the direction in which the tape can grow 05:03:19 |000> 05:04:24 !qbf CNOT %!%# 05:04:28 |00> 0.00 |10> 0.00 |01> 0.50 |11> 0.50 05:05:07 i mean half a cnot 05:05:21 !qbf %!%%# 05:05:24 |00> 0.00 |10> 0.00 |01> 0.50 |11> 0.50 05:05:32 !qbf %!%%%# 05:05:36 |00> 0.00 |10> 0.00 |01> 0.50 |11> 0.50 05:05:40 !qbf %!%%%%# 05:05:44 |00> 0.00 |10> 0.00 |01> 0.50 |11> 0.50 05:06:00 !qbf %!# 05:06:04 |00> 0.00 |10> 0.00 |01> 0.50 |11> 0.50 05:06:15 !qbf %!>%# 05:06:18 |00> 0.25 |10> 0.25 |01> 0.25 |11> 0.25 05:06:35 !qbf %!>%.<.# 05:06:38 1 0 |00> 0.00 |10> 0.00 |01> 1.00 |11> 0.00 05:06:44 !qbf %!>%.<. 05:06:48 1 0 05:06:53 * lament stops spamming 05:12:21 wait, no i don't 05:12:41 !qbf mwahahahahahahahahhaaaaaa>>>>>>>>>>>>>># 05:12:55 |000000000000000> 0.00 |100000000000000> 0.00 |010000000000000> 0.00 |110000000000000> 0.00 |001000000000000> 0.00 |101000000000000> 0.00 |011000000000000> 0.00 |111000000000000> 0.00 |000100000000000> 0.00 |100100000000000> 0.00 |010100000000000> 0.00 |110100000000000> 0.00 |001100000000000> 0.00 |101100000000000> 0.00 |011100000000000> 0.00 |111100000000000> 0.00 |000010000000 05:13:10 aww 05:14:22 the complete output is ~750 KB 05:16:16 Committed latest egobot to files archive. 05:35:31 -!- thematrixeatsyou has joined. 05:37:56 (((((((((())))))))))(()()()()()()()()()()()()()()()()())((()()()()())((())(())(())(())(())(())(())(()))(()()()()()()()))((()()()()()()()()())(())()()()()()()()) 05:38:06 made yet another new esolang 05:38:30 the above says "HI" 05:38:56 it's called RETURN. want it on the wiki? no implementation yet but I'll get onto it. 05:51:46 By far the most exciting part of quantum computing is not that we're advancing science, but the fact that you get to say ``Hadamard'' in your head when thinking about programming. 05:51:55 It's almost as cool a name as ``Backus-Naur''. 05:57:19 Come on. Don't you all agree? 05:57:27 You know you do. 05:58:59 wtf 05:59:13 What? 06:03:59 that was weird what you put before 06:04:18 then again, the (((((((((())))))))))(()()()()()()()()()()()()()()()()())((()()()()())((())(())(())(())(())(())(())(()))(()()()()()()()))((()()()()()()()()())(())()()()()()()()) would ring a wtf 06:07:27 Well, ``Backus-Naur'' is just an awesome cool name. 06:09:35 yah 06:09:59 Mr. Hadamard Backus-Naur would be better 06:12:15 Yeah. 06:12:44 * GregorR considers writing a persistent daemon to manage the contest. 06:13:34 Well, we need a voting mechanism. 06:13:39 In some language or the other. 06:20:40 Glass :P 06:22:10 If we're doing it in Glass, I want to make it look as much like disfigured smilies as possible. 06:22:11 :P. 06:22:27 Although I was thinking of an INTERCAL version. 06:23:30 lol 06:23:37 !help 06:23:41 help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon 06:23:43 1l 2l adjust axo bch bf{8,[16],32,64} funge93 fyb fybs glass glypho kipple lambda lazyk linguine malbolge pbrain qbf rail rhotor sadol sceql trigger udage01 unlambda whirl 06:23:46 * GregorR doesn't recall whether he even has INTERCAL on the bot ... 06:23:54 Apparently not. 06:23:55 INTERCAL is pretty large. 06:24:08 It's not a turing tarpit, unlike most of those. 06:24:38 INTERCAL forces you to think in... interesting ways, so it's fun. 06:24:43 hey gregor 06:25:13 I've been meaning to make a BF interpreter in INTERCAL, but I'm too lazy to do it as of now :P. 06:25:38 I'm not sure if the INTERCAL compiler dynamically allocates arrays either, because dynamic arrays are a total *pain* in INTERCAL. 06:25:41 let me introduce to you this weird-ass language: 06:25:42 http://esoteric.voxelperfect.net/wiki/RETURN 06:27:53 Hm, is there an INTERCAL interpreter? 06:28:09 I'm not sure. 06:28:18 I use the standard C-INTERCAL compiler. 06:28:43 You'll also have to implement the standard library in it. 06:29:19 To work in EgoBot, needs an interpreter. 06:29:35 Mmmm. Maybe I'll make one. 06:29:40 What're the interpreters written in? C++? 06:29:50 I think C and C++ 06:29:56 i know one's in C 06:30:02 Anything. 06:30:05 Oh? 06:30:07 thematrixeatsyou: "The memory allocation is the same as in Brainfuck: 8-bits, planar." - that is wrong 06:30:11 Doesn't matter. 06:30:19 "The only symbols used are the two standard brackets ( and )" ... these aren't brackets. 06:30:19 thematrixeatsyou: brainfuck never specifies what the memory allocation is. 06:30:23 How does it work? VM? 06:30:31 ok lament, what should it read? 06:30:34 GregorR: They are in some countries. 06:30:36 Razor-X: Heww no, fork and exec. 06:30:48 Oh :P. 06:30:52 they are brackets 06:30:57 Hmn 06:31:09 * GregorR never knew they were called brackets anywhere. 06:31:11 In America they're called parentheses. 06:31:38 in new zealand, britain, australia, and virtually all of europe they're called brackets. 06:31:41 Heh, "round brackets" 06:31:49 Well, round brackets. 06:31:53 Because ] are also brackets. 06:32:10 Yes. [ and ] are brackets, ( and ) are parentheses, { and } are braces, < and > are angle brackets, etc. 06:32:26 hey it's eidolos 06:32:31 hay 06:32:35 what i mean by memory allocation is that the memory works the same way 06:32:44 hoy 06:33:03 then change the : to , 06:33:42 your language seems a bit too much like brainfuck 06:34:00 Eidolos: write me a quantum brainfuck program! 06:34:17 I know virtually nothing about quantum mechanics. Sorry. 06:34:18 I should write a QBF program. 06:34:26 Now that I know t3h basics. 06:34:44 So, my list of possible states ... at all accurate? 06:35:20 !qbf ,%. 06:35:24 Oh, whoops. 06:35:26 :P. 06:35:32 !ps 06:35:35 1 Razor-X: qbf 06:35:37 i guess the boring way to do that would be to implement the standard logic gates (you can just solve for them, it's easy) and then you can write any non-quantum program 06:35:37 2 Razor-X: ps 06:35:38 Whoops why? 06:35:42 I asked it for input. 06:35:47 Can you do that in Egobot? 06:35:52 !help i 06:35:55 Use: i Function: send input to a process 06:36:31 !i 1 a 06:36:33 erk i guess solving for them is not _that_ easy, but still doable 06:36:41 !i 1 \n 06:36:41 Hahaha :D. 06:36:46 Aha. 06:36:47 Please enter 1 or 0: Traceback (most recent call last): 06:36:49 File "./qbf/qbf.py", line 55, in ? 06:37:03 lol 06:37:24 !qbf ,%. 06:37:34 !i 1 1 06:37:44 !i 1 \n 06:37:49 Please enter 1 or 0: 1 06:37:59 Alright. that obviously died :D. 06:38:03 no 06:38:10 Looks like it worked... 06:38:11 !ps 06:38:13 "Please enter 1 or 0:" is the input prompt 06:38:15 !ps 06:38:15 1 GregorR: ps 06:38:17 1 thematrixeatsyou: ps 06:38:19 to which i entered 1 06:38:27 and then it happened to also output 1 06:38:31 Well, I got a PM with an error in it. 06:38:43 because you didn't enter 1 or 0 like it asks to. 06:38:43 i = int(i) ValueError: invalid literal for int(): a 06:38:51 Oh 06:38:51 . 06:38:52 !qbf ,%. 06:38:55 !i 1 1\n 06:39:01 Please enter 1 or 0: 0 06:39:11 now i entered 1 again, but it output 0. 06:39:32 !qbf ,%# 06:39:38 !i 1 1\n 06:39:43 Please enter 1 or 0: |00> 0.00 |10> 0.00 |01> 0.50 |11> 0.50 06:39:51 Does it operate on the same tape head? 06:39:58 does what operate on what? 06:40:02 s/head// 06:40:29 who which? 06:40:53 there's only one tape 06:41:02 I mean both of the QBF programs. 06:41:25 you mean if you run two at once? 06:41:44 If you run two, one after the other. 06:42:01 no. 06:42:03 It's two separate instances of the interpreter. 06:42:05 that would be hell. 06:42:14 You'd have to implement multiprocessing in QBF first :P 06:42:14 the tape is always initialized to all 1s 06:42:16 Ok, good. 06:42:27 like this: 06:42:30 !qbf # 06:42:33 |00> 0.00 |10> 0.00 |01> 0.00 |11> 1.00 06:43:07 (the visible part of the tape is 2 qubits long before you start moving the pointer) 06:43:11 When you give it a `0' for input, you're setting the cell to 00 ? 06:43:21 you're setting the cell to 0. 06:43:35 to |0> 06:43:41 |00> is the state of _two_ cells. 06:43:46 Ah. Ok. 06:43:55 It automatically uses two qubits then? 06:44:00 yes. 06:44:18 but you can add more by moving the pointer. 06:44:18 So if you use <, then you could set the previous qubit? 06:44:28 !qbf >># 06:44:31 |000> 0.00 |100> 0.00 |010> 0.00 |110> 0.00 |001> 0.00 |101> 0.00 |011> 0.00 |111> 1.00 06:44:47 if you use <, the program will likely die. 06:44:50 !qbf <# 06:44:53 !qbf < 06:44:53 |00> 0.00 |10> 0.00 |01> 0.00 |11> 1.00 06:45:02 !qbf <0# 06:45:02 !qbf <<<<<<<<<<<<<<<<<<# 06:45:05 |00> 0.00 |10> 0.00 |01> 0.00 |11> 1.00 06:45:07 |00> 0.00 |10> 0.00 |01> 0.00 |11> 1.00 06:45:20 That sounds buggerific. 06:45:26 Conclusion: Don't use < 06:45:38 Well, don't < past the beginning of the tape. 06:45:40 (many brainfuck implementations don't like it either) 06:45:43 Same with BF *shrugs* 06:45:51 (In the general case) 06:45:59 exactly 06:46:14 also don't use too many > because the memory required increases exponentially. 06:46:38 Whoot 06:46:39 I put a hard limit of 20 in the interpreter just in case. 06:47:05 Adding an extra qubit makes all operations run twice as slowly. 06:47:18 On a real quantum computer, there would be no difference in speed. 06:48:00 But this isn't a real quantum computer :P. 06:48:03 (Obviously.) 06:49:23 -!- cmeme has quit (calvino.freenode.net irc.freenode.net). 06:51:05 * GregorR wonders why it is that it needed to slow down that much ... 06:51:19 Do you need to do anything with the rest of the qubits when you're looking at some specific one or two? 06:51:40 GregorR: yes. 06:52:17 Hm, other than entanglement? 06:52:19 GregorR: the operations don't work on qubits, they work on states 06:52:44 GregorR: any operation will potentially update the probabilities of _all_ states 06:52:51 Mm. 06:53:22 -!- cmeme has joined. 06:53:54 because everything could be entangled with everything else 06:54:04 Right, right. 06:54:06 What does ``entangled'' mean? 06:54:12 Non-zero probability of occurring? 06:54:25 Razor-X: the state of one qubit depends on the state of another qubit. 06:54:39 Oh. Makes sense. 06:54:41 If you observe one and it's 1, and observe the other, it will be 1. 06:54:48 And 0-0 06:54:50 For sure? 06:54:55 What determines entanglement, though? 06:55:04 (Scratch out ``For sure''.) 06:55:07 Doesn't one of the operations cause entanglement? 06:55:33 &? 06:55:39 gtg, cya, gonna eat some dinner 06:55:43 Razor-X: here's an example 06:55:45 It just swaps the probabilities, no? 06:55:56 -!- thematrixeatsyou has quit ("I am NOT cooking up some RETURN to print BYE...."). 06:56:09 !qbf >%<%!!%# 06:56:13 |00> 0.00 |10> 0.50 |01> 0.50 |11> 0.00 06:56:17 If & entangled, it'd be problematic ... 06:56:43 Razor-X: observe the final state. 06:56:51 |10> and |01> with equal probability. 06:57:03 So if we observe the first qubit, and find it to be 1, that means the second one has to be 0. 06:57:24 If we output the first qubit and then the second, the output is always either 1 0 or 0 1 06:57:32 !qbf >%<%!!%.>. 06:57:35 1 0 06:57:37 !qbf >%<%!!%.>. 06:57:41 Oh OK, if they have equal probability. 06:57:41 0 1 06:57:55 so the state of one qubit depends on the state of the other. 06:58:11 And if we change the state of one, that could potentially affect the state of the other one. 06:58:14 Only if the probabilities were equal? 06:58:17 No. 06:58:32 This has nothing to do with probabilities. 06:58:49 on the other hand, i have no idea how to make the probabilities be NOT equal. 06:58:59 * lament is still not convinced quantum brainfuck is quantum-complete 06:59:01 Oh I see, ! is the entanglement one. 06:59:08 Yes. 06:59:10 With QBF, I'm not sure you can make them anything but 50/50 06:59:18 GregorR: exactly 06:59:29 and if you can't, that seems to automatically mean it's not quantum-complete 06:59:30 Which sucks :( 06:59:46 What does "Quantum-complete" mean (to you)? 06:59:53 i'm not a big fan of it anyway, because it's brainfuck-based 06:59:58 Heh 07:00:29 it means (to me) that any valid state for the qubit register can be reached from the initial state 07:00:52 and i think the only way to do that is by having a parametrized rotation gate 07:01:08 The parameter would need to be infinitely specifiable ... 07:01:17 That is, specifiable to infinite depth. 07:01:18 right 07:01:26 Yeah, I agree. 07:01:38 it's possible that you don't actually need that for "quantum logic" 07:01:51 I'm gonna say "probable" :) 07:01:57 i haven't looked into what the existing quantum algorithms require 07:02:14 but i doubt they're satisfied with 50-50 splits. 07:02:24 Well, zleep for me. Somebody write a daemon that needs persistence :P 07:02:26 *zzz* 07:04:33 !qbf >%<%!!%>>%<%!!%# 07:04:37 |000> 0.00 |100> 0.25 |010> 0.25 |110> 0.00 |001> 0.25 |101> 0.00 |011> 0.00 |111> 0.25 07:04:54 that's a cute final state 07:05:08 either exactly 1 bit is on, or all three bits are on. 07:06:38 !qbf >%<%!!%>>%<%!!%<.>.>. 07:06:42 1 0 0 07:07:02 !qbf >%<%!!%>>%<%!!%<.# 07:07:05 0 |000> 0.00 |100> 0.00 |010> 0.50 |110> 0.00 |001> 0.50 |101> 0.00 |011> 0.00 |111> 0.00 07:07:38 but observing one does not in itself destroy the entanglement of the other two. 07:07:41 !qbf >%<%!!%>>%<%!!%<.# 07:07:43 0 |000> 0.00 |100> 0.00 |010> 0.50 |110> 0.00 |001> 0.50 |101> 0.00 |011> 0.00 |111> 0.00 07:07:50 -!- CXII has quit ("If you're reading this, it's probably xchat's fault."). 07:07:55 !qbf >%<%!!%>>%<%!!%<.# 07:07:59 0 |000> 0.00 |100> 0.00 |010> 0.50 |110> 0.00 |001> 0.50 |101> 0.00 |011> 0.00 |111> 0.00 07:08:01 !qbf >%<%!!%>>%<%!!%<.# 07:08:03 1 |000> 0.00 |100> 0.50 |010> 0.00 |110> 0.00 |001> 0.00 |101> 0.00 |011> 0.00 |111> 0.50 07:08:21 :D 07:09:17 but if you observe two qubits, you will know for sure what the third one is... 07:11:17 note that if you observe two qubits, the third one will be XNOR of the other two 07:12:07 (or even if you don't observe them...) 07:19:57 So that's an interesting way to make an XNOR gate. 07:26:59 no, it doesn't actually make an XNOR gate. 07:27:27 an XNOR gate would have two inputs, look at them and produce two things one of which is XNOR. 07:28:05 and the second, presumably, one of the original inputs. 07:28:24 (that way the operation is reversible) 07:29:28 eg 07:29:49 00 -> 10 07:30:01 01 -> 11 07:30:15 um, no 07:30:18 typo 07:30:21 00 -> 10 07:30:27 01 -> 01 07:30:33 10 -> 00 07:30:41 11 -> 11 07:30:57 the first bit of the output is XNOR, the second doesnt change 07:31:52 so the matrix that does that is 07:32:17 0 0 1 0 07:32:24 0 1 0 0 07:32:30 1 0 0 0 07:32:34 0 0 0 1 07:33:09 If you can solve for that matrix using combinations of the ones available in QBF, you'll make a xnor gate. 07:33:54 (that matrix probably has to be normalized) 07:38:13 night 07:42:42 Thanks. 07:46:41 -!- CXI has joined. 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:03:31 -!- bsmntbombdood has quit (Read error: 104 (Connection reset by peer)). 08:04:14 -!- bsmntbombdood has joined. 08:13:48 -!- bsmntbombdood has quit (Client Quit). 08:55:49 -!- bsmntbombdood has joined. 09:37:41 -!- bsmntbombdood has quit ("all your basment are belong to bsmntbombdood"). 09:49:10 -!- bdtg has joined. 09:53:37 !help 09:53:41 help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon 09:53:43 1l 2l adjust axo bch bf{8,[16],32,64} funge93 fyb fybs glass glypho kipple lambda lazyk linguine malbolge pbrain qbf rail rhotor sadol sceql trigger udage01 unlambda whirl 09:54:52 !bf >,----------[>,----------]++++++++++++++++++++++<[<]>[++++++++++.[>----------------------]+>]<[[-]<] 09:54:59 !ps 09:55:03 1 bdtg: bf 09:55:05 2 bdtg: ps 09:55:13 !i 1 just testing this thing 09:55:42 !help !i 09:55:45 !help i 09:55:45 To use an interpreter: Note: can be the actual program, an http:// URL, or a file:// URL which refers to my pseudofilesystem. 09:55:49 Use: i Function: send input to a process 09:56:32 what. 09:57:00 !kill 1 09:57:03 Process 1 killed. 10:49:17 -!- bdtg has left (?). 13:42:37 -!- CXI has quit ("If you're reading this, it's probably xchat's fault."). 14:10:34 -!- CXI has joined. 14:52:06 -!- CXI has quit ("If you're reading this, it's probably xchat's fault."). 15:12:48 !ls 15:12:52 bf/, glass/, linguine/ 15:12:59 !ls glass 15:13:02 dice.glass, hangman.glass, urls.glass 15:13:12 !ls glass/dice.glass 15:13:14 /bin/ls: ./files/glass/dice: No such file or directory 15:13:23 Oh. 15:41:31 -!- ihope has joined. 15:41:37 !help 15:41:40 help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon 15:41:42 1l 2l adjust axo bch bf{8,[16],32,64} funge93 fyb fybs glass glypho kipple lambda lazyk linguine malbolge pbrain qbf rail rhotor sadol sceql trigger udage01 unlambda whirl 15:41:47 W00t. 15:42:24 !qbf %!!%<%!!%<%!!%<%!!%<%!!% 15:42:28 Traceback (most recent call last): 15:42:49 File "./qbf/qbf.py", line 40, in ? 15:42:54 qubit.Hadamard.apply(memory, [qubit_positions[mp]]) 15:42:58 IndexError: list index out of range 15:43:10 That's no fun, eh? 15:43:14 !qbf % 15:43:20 !ps 15:43:22 1 ihope: ps 15:43:33 !qbf %>%>%>%>%>%>%>%>% 15:43:41 !ps 15:43:44 1 ihope: ps 15:43:49 Okay, it works. 15:45:33 !qbf . 15:45:36 1 15:45:49 !qbf .%.%.%.%.%.%.%.%. 15:45:54 1 1 0 0 0 0 1 0 1 15:46:24 !qbf [%.[%]%!!%] 15:46:38 !show 1 15:46:42 1 1 0 0 1 1 1 0 0 0 1 1 1 1 0 0 0 0 1 0 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 0 0 1 0 0 1 1 0 1 0 1 0 0 1 1 0 1 0 0 0 0 0 1 1 1 1 0 1 1 1 0 1 0 1 1 1 0 1 1 0 0 0 1 0 0 1 1 1 1 1 0 1 1 1 0 1 0 0 0 0 1 1 1 0 1 1 0 0 1 1 0 1 1 0 1 0 1 1 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 0 0 0 1 1 1 0 0 0 0 0 1 0 0 1 1 0 1 1 0 0 0 0 1 1 0 0 0 0 1 0 0 1 1 1 1 1 1 0 1 1 1 1 1 0 1 1 0 0 15:46:44 !kill 1 15:46:48 Process 1 killed. 15:47:06 It's a random number generator. :-) 15:48:34 Now to implement Shor's algorithm... 15:51:05 First, the random number. 15:51:12 !qbf %.%. 15:51:14 0 1 15:51:31 Okay, the number is 2. The GCD of 2 and 4 is 2, so we're done. 15:52:16 Let's try factoring 6 with a number from 1 to 5. 15:52:23 !qbf %.%.%. 15:52:26 0 0 1 15:53:28 Maybe 1 wasn't supposed to be an option. 2 to 5, then. 15:53:31 !qbf %.%. 15:53:34 0 0 15:54:08 Our number's 4, so the GCD is 2, so 2 is a factor of 6. 15:55:58 Let's factor 9, now. The random number is 5, so the function: f(x) = 5^x mod 9. 16:00:45 But that function isn't reversible... 16:01:07 Oh, I see. 16:04:03 -!- GregorR-W has joined. 16:07:44 So that's |00000000> -> |00000001>; |00010000> -> |00010101>; |00100000> -> |00100111>; |00110000> -> |00111000>; |01000000> -> |01000100>; |01010000> -> |01010010>; |01100000> -> |01100001>; |01110000> -> |01110101>; |10000000> -> |10000111>. 16:08:13 Now we just need a QBF thing that can do that. 16:13:35 I agree with lament. We don't need a QBF thing to do anything, we need a quantum language more flexible than QBF. 16:51:51 Such as ... QGLass >:) 16:51:57 Erm, QGlass 16:52:50 "Quantum INTERCAL" seems quite... well, weird. 17:25:37 what's up 17:25:50 * ihope points up 17:25:53 An old joke! 17:25:58 ihope: You can do irreversible stuff in QBF. 17:26:12 With observation, yeah. 17:26:22 i also added two commands, 1 and 0 17:26:31 Ooh, cool :-) 17:26:32 that destructively set the current qubit 17:26:47 of course, they're for debugging only :) 17:28:31 !qbf 0.1.0.1.0.1.0.1. 17:28:35 1 1 1 1 1 1 1 1 17:28:46 eh 17:28:51 Not in EgoBot? 17:28:54 that doesn't seem right :) 17:28:57 sed 's/1/[%!!%]%!!%/g ; s/0/[%!!%]/g' 17:29:10 mmmmmmmmmm 17:29:20 But that's a controlled... thing. 17:29:20 something's very very wrong :) 17:29:32 Loops containing controlled gates are Bad. 17:29:38 !qbf 0. 17:29:41 1 17:29:44 !qbf 0# 17:29:47 |00> 0.00 |10> 0.00 |01> 0.00 |11> 1.00 17:30:08 this is a horrible horrible bug in the interpreter. 17:31:38 oh, found it 17:33:09 * lament fixes- 17:33:30 http://z3.ca/~lament/qubit.py updated 17:34:27 I still think qubits are boring. 17:34:36 And we need quantum objects with more states. 17:34:52 Possibly infinitely many states. :) 17:35:14 or at least make the states more interesting than 1 and 0 17:35:29 they could be functions of some kind 17:35:43 so you can apply a qubit to another qubit... 17:40:36 Quantum Haskell. 17:41:12 more like quantum unlambda 17:41:37 say |0> = S |1> = K 17:42:07 i suppose that can't work :( 17:42:15 Well... how would it work? 17:42:32 i don't know :) 17:42:39 That just looks like alternate syntax. 17:43:12 Well, time to go... somewhere. 17:43:13 it allows you to turn several different lines of computation at once 17:43:35 But I don't see how to construct new ones, or observe anything. 17:43:45 If you come up with a spec, let me know :-) 17:43:56 -!- ihope has quit (Read error: 104 (Connection reset by peer)). 19:07:27 Quantum Haskell?! 19:07:36 My gods! 19:15:43 We need more committee members! 19:17:32 i'm pretty sure there's already something very much like quantum haskell. 19:18:42 Well, there's already quantum lambda calculus, so I wouldn't doubt it. 19:18:58 I need to do more research into lambda calculus..., anyone have any convenient free sources? 19:19:50 yes, google does. 19:20:21 Thank you for the tip I would never have guessed about. 19:23:14 lol 19:23:33 My fav way to say that is "Yeah, there's a great link page at http://www.google.com/search?q=lambda+calculus " 19:24:01 Yeah. It's quite convenient. 19:28:20 Razor-X: just start by learning Unlambda, it's what I did. 19:30:24 I understand the concept of application and combinators. 19:30:29 But I mean, there must be more. 19:31:03 do you understand the concept of functions that only take other functions as parameters? 19:31:20 Yeah. 19:31:25 You have to understand that to code in Haskell too. 19:31:29 then you're done 19:31:35 time to learn something new 19:31:43 take up piano or something 19:31:49 That's my next thing, yeah. 19:31:51 But.... 19:32:27 The only thing I really don't understand is if you have something like λxyz.zxyx how you expand that. 19:32:40 I can intuitively figure it out, but bleh. 19:33:05 eh 19:33:13 you take the things and apply them to each other in the correct order. 19:34:32 But doesen't it expand to λx(λy(λz((((z)x)y)x))) ? 19:34:49 So wouldn't you need like... 4 arguments? 19:37:05 that's three arguments 19:37:08 x, y and z 19:37:42 Yeah, I know, but it can't magically just bind the first argument to every x, because the x is in different functions. 19:41:09 oh 19:41:26 then you don't understand the scoping rules of lambda calculus. 19:42:01 (lambda x . foo) essentially replaces all instances of 'x' inside foo with the real value of x it got passed. 19:42:13 Well, I can see that intuitively, yeah. 19:42:23 Except when something inside also uses x as a parameter. 19:42:59 (\xyz.zxyx) A = \yz.zAyA 19:43:20 (\yz.zAyA) B = \z.zABA 19:43:41 Well, why does A bind to `x' in that case? 19:43:56 I would think it binds to `y' because that's the closest unbound instance.... 19:44:13 \xyz.zxyx = \x.\yz.zxyx 19:44:13 I mean logically it does, but the definition makes me think otherwise.... 19:44:35 So it bounds to the outermost unbound function first? 19:44:40 *binds 19:45:02 unbound variable- 19:47:41 Mmmkay. 19:49:31 Somebody ban 66.109.17.12 19:49:34 From the wiki 19:50:11 What'd they do? 19:51:18 Spam. 19:51:27 About the OMGSOFTWARE_MONOPOLYOMGWTFBBQ 19:51:47 !qbf %# 19:51:50 |00> 0.00 |10> 0.00 |01> 0.50 |11> 0.50 19:52:30 i guess there's a bug in qbf 19:52:38 !qbf >!# 19:52:40 Traceback (most recent call last): 19:53:15 The probabilities aren't supposed to be equal? 19:53:57 lament: A bug? For shame O_O 19:53:59 :P 19:54:09 So says the author of EgoBot. 19:54:46 the bug is that you can't do ! when you're at the end of the tape 19:54:51 Razor-X: :( 19:55:08 the workaround is to make the tape longer by doing >< first 19:55:14 :P. 19:55:22 !qbf !# 19:55:24 |00> 0.00 |10> 0.00 |01> 0.00 |11> 1.00 19:55:48 !qbf >!# 19:55:53 Traceback (most recent call last): 19:56:40 !bf <- 19:56:52 !bf <-. 19:56:56 !ps 19:56:56 19:57:00 lol 19:57:00 1 Razor-X: ps 19:57:36 !kill ps 19:57:38 No such process! 19:57:40 :P. 19:57:44 (Obviously.) 19:57:44 !qbf !>%# 19:57:48 |00> 0.00 |10> 0.50 |01> 0.00 |11> 0.50 19:58:13 !qbf %!# 19:58:16 |00> 0.00 |10> 0.00 |01> 0.50 |11> 0.50 19:58:29 !qbf %!>%# 19:58:32 |00> 0.25 |10> 0.25 |01> 0.25 |11> 0.25 19:58:44 !qbf ## 19:58:46 Heh. 19:58:46 |00> 0.00 |10> 0.00 |01> 0.00 |11> 1.00 |00> 0.00 |10> 0.00 |01> 0.00 |11> 1.00 19:58:49 !qbf %!>% Woo! 19:58:53 |00> 0.25 |10> 0.25 |01> 0.25 |11> 0.25 19:58:55 !qbf %%# 19:58:58 |00> 0.00 |10> 0.00 |01> 0.00 |11> 1.00 19:59:03 Hmmm.... 19:59:08 Razor-X: Hadamard is its own inverse. 19:59:12 Ah. 20:00:46 !qbf !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!# 20:00:48 |00> 0.00 |10> 0.00 |01> 0.00 |11> 1.00 20:01:02 !qbf !%!%!%!%!%!%!%!%!%!%!%!%!%!%!%# 20:01:04 |00> 0.00 |10> 0.00 |01> 0.00 |11> 1.00 20:01:08 boring! 20:01:28 * Razor-X grabs Octave. 20:03:18 Woo. It uses FORTRAN. 20:03:39 your MOM uses fortran! 20:04:05 Yes my Master of Miracles uses FORTRAN. 20:04:46 Bahahah 20:05:47 Awww. I need to compile GNUPlot first. 20:08:51 It's not GNUPlot, it's Gnuplot or gnuplot. The 'gnu' in it has nothing to do with GNU. 20:09:26 it's just a coincidence. 20:09:28 (gnuplot = one author wanted to name it llamaplot, the other newplot, they agreed on gnuplot, since a gnu is an animal not-very-similar to a llama) 20:12:31 Heh. 20:12:41 I didn't know that. 20:13:08 -!- ihope has joined. 20:13:43 Let's see... split the cursor position in two halves and monitor either the vertical or the horizontal. 20:14:02 o_O 20:14:23 Get the numbers that correspond to how far it goes up, then how far it goes down, then up, then down... 20:14:44 O_o 20:14:55 Then take all those modulo 2. 20:15:32 Then skew transform. 20:15:32 O_o 20:15:35 o_O 20:16:04 O_O 20:16:07 o_o 20:16:17 You should end up with a stream that's reasonably random. 20:16:38 o_Oooooooo 20:16:46 AAH! MUTANT! 20:17:12 O_(o_O)o 20:18:02 Wooh! Broken smilies! 20:18:11 Looks like a Glass program! 20:18:40 Yeah! 20:27:42 Uggh. Octave takes forever to compile. 20:44:13 Grf. 20:44:18 When I get home somebody remind me to update my hats page. 20:44:33 (#esoteric: The world's coolest todo system) 20:46:53 Let's put a BF daemon notice in. 20:47:38 Hey 8-D 20:47:45 Now there's a good idea for a persistent daemon 8-D 20:47:46 ;). 20:48:31 !ps 20:48:35 1 pikhq: ps 20:48:47 !bf +[,.] 20:48:49 Whee. 20:49:02 !i 1 Whee./n 20:49:24 !i 1 \n x_x\n 20:49:29 Whee./n 20:49:31 x_x 20:49:43 !eof 1 20:49:47 !ps d 20:49:51 1 ihope: ps 20:49:54 >:-) 20:50:06 !bf +[,.+] 20:50:20 !eof 1 20:50:23 !ps 20:50:25 1 pikhq: bf 20:50:27 2 pikhq: ps 20:50:32 :) 20:50:49 !bf_txtgen When I get home somebody remind me to update my hats page. 20:51:05 !ps 20:51:07 1 pikhq: bf 20:51:09 2 ihope: bf_txtgen 20:51:11 3 ihope: ps 20:51:31 !kill 1 20:51:33 Process 1 killed. 20:51:41 621 ++++++++++++++[>++++>+++>++++++++>+++++<<<<-]>++++.>>>+.<++.-------------.++.++++++++.+++.>+++++++++++.<<+++.>>+++++.<<<++.>-------------.>>.+++++++++++++++++.---.<----.<.<+++++++++++.>.<++++++++++++++++++++++++++++++.--.>>++++++.<.<+++.+++++++.--.--------.>.>-.----.--.>.---.<++.<<-.>>++++++++++.<.>-------.<++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 20:51:44 Wow. 20:51:51 Horribly unoptimized. 20:51:55 !kill ihope 20:51:57 No such process! 20:52:02 Shit. 20:52:06 # killall ihope 20:52:07 What's with all the +'s at the end. 20:52:14 Stupidity. 20:52:41 !bf ++++++++++++++[>++++>+++>++++++++>+++++<<<<-]>++++.>>>+.<++.-------------.++.++++++++.+++.>+++++++++++.<<+++.>>+++++.<<<++.>-------------.>>.+++++++++++++++++.---.<----.<.<+++++++++++.>.<++++++++++++++++++++++++++++++.--.>>++++++.<.<+++.+++++++.--.--------.>.>-.----.--.>.---.<++.<<-.>>++++++++++.<.>-------.< 20:52:45 When I get home somebody r 20:52:50 Hehehehe. 20:52:51 Ah. 20:52:55 That's why. 20:53:06 !bf_txtgen Gregor! Update Hats! 20:53:07 !bf_txtgen No 20:53:18 Oh, that's much better. 20:53:27 45 +++++++++++[>+++++++>++++++++++>><<<<-]>+.>+. [270] 20:53:35 163 +++++++++++++++[>+++++>++>++++++++>+++++++<<<<-]>----.>>------.>----.++.<---.+++.<+++.-.<++++++++++++++.>>--.>---.---.<++++.>++++.<<.<-------------.>>>----.<.-.<+. [428] 20:53:43 !bf +++++++++++++++[>+++++>++>++++++++>+++++++<<<<-]>----.>>------.>----.++.<---.+++.<+++.-.<++++++++++++++.>>--.>---.---.<++++.>++++.<<.<-------------.>>>----.<.-.<+. 20:53:44 !bf +++++++++++++++[>+++++>++>++++++++>+++++++<<<<-]>----.>>------.>----.++.<---.+++.<+++.-.<++++++++++++++.>>--.>---.---.<++++.>++++.<<.<-------------.>>>----.<.-.<+. 20:53:47 Gregor! Update Hats! 20:53:49 Gregor! Update Hats! 20:53:51 Cool. 20:54:13 !daemon reminder bf +[,]+++++++++++++++[>+++++>++>++++++++>+++++++<<<<-]>----.>>------.>----.++.<---.+++.<+++.-.<++++++++++++++.>>--.>---.---.<++++.>++++.<<.<-------------.>>>----.<.-.<+. 20:54:25 Just !ps d and !eof. 20:54:29 Eh, why the loop? Don't you just want to trigger it once? 20:54:54 Razor-X: It'll trigger when an eof is sent. 20:55:04 Ah. 20:55:10 !i 1 h 20:55:15 !ps d 20:55:17 1 ihope: daemon reminder bf 20:55:19 2 Razor-X: ps 20:55:41 That won't do anything. :-) 20:55:51 Actually... 20:55:53 !eof 1 20:55:57 Gregor! Update Hats! 20:55:58 :P. 20:55:59 !ps d 20:56:03 1 ihope: ps 20:56:15 !daemon reminder bf ,+++++++++++++++[>+++++>++>++++++++>+++++++<<<<-]>----.>>------.>----.++.<---.+++.<+++.-.<++++++++++++++.>>--.>---.---.<++++.>++++.<<.<-------------.>>>----.<.-.<+. 20:56:19 It only terminates the loop on EOF, eh? 20:56:22 Now just don't !reminder. 20:56:26 Razor-X: yep. 20:58:05 Wow. Octave takes longer than even mplayer to compile o_O. 20:58:41 (And thusly the Linux kernel.) 20:58:43 Come sit in my cubicle and compile firefox on Solaris 8. Until you've done at least that compile, shut up. 20:58:45 :P 20:58:52 Firefox *shudder*. 20:59:00 Well, it's been compiling for almost an hour now. 20:59:15 Firefox on Sol8 is a just-leave-it-running-over-night job. 20:59:19 I recommend DistCC. :p 20:59:29 If someone wants to donate me the bandwidth..... 20:59:31 ...... 20:59:32 pikhq: I've tried to get it in :( :( :( 20:59:39 *Makes girly eyes* Pweeeeez? 20:59:59 Try Firefox on a K-6. . . Got fed up after a few days. 21:00:11 Razor-X: Not at my home computer right now. 21:00:20 So donate me its bandwidth! 21:00:24 Can't you SSH into it? 21:00:40 Root on this box would be mightily pissed. 21:00:44 lol 21:00:52 Pfft. 21:00:55 And, since he's a rather close friend of mine, I'd rather not piss him off. ;p 21:00:55 s/Root// 21:01:18 (Note. I could do this on my own SSH shell, but I'm not for the same reason you're not :D.) 21:11:18 How does Lambda Calculus use piecewise functions? 21:12:41 Piecewise functions? Like, curried ones? 21:13:02 Like, if x < 0 f(x) = 3, if x >= 0 f(x) = 4. 21:13:15 Oh. 21:14:11 Well, the Haskell form of that is "f x = if x < 0 then 3 else 4", and that's pretty much how it works in lambda calculus. 21:14:35 So Lambda calculus has if? 21:14:59 Well, you can think of boolean values as having "if" built in. 21:14:59 I know Haskell (I've written some nifty big things, like an IRC bot), but it *is* a programming language after all. 21:15:09 Oh. It uses the Church booleans? 21:15:25 I guess. You can use any booleans you want, as long as they work :-) 21:17:44 Heh. 21:18:19 -!- bsmntbombdood has joined. 21:18:29 Lambda calculus is also a programming language. . . Bit of a Turing tarpit, but most certaintly a programming language. ;) 21:19:43 -!- CXI has joined. 21:21:23 Heh. 21:34:26 ....And Octave is still compiling.... 21:34:42 Damn. 21:35:33 Yeah. 21:35:49 OMG. It's *finally* compiling octave.cc. 21:35:53 .... 21:35:57 Now on builtins.cc..... 21:36:02 GOD >_>. 21:36:19 What's it written in? ORK, compiled to Brainfuck, compiled to C, compiled to C++?!? 21:36:29 It's written in C++ and FORTRAN. 21:36:31 (surely that's got to be inefficient) 21:36:44 I don't think so. 21:36:56 FORTRAN. . . I think I'm going to go vomit for a bit. 21:37:08 It's not that bad, y'know. 21:37:12 And it's pretty fast too. 21:37:30 ORK compiled to brainfuck, wow :P 21:37:45 Hey, I'm writing a BF compiler in INTERCAL. 21:38:01 *interpreter. 21:38:09 I could write a compiler too, I think it would be easier. 21:39:00 ... Not very optimized, but.... 21:50:27 -!- oerjanj has joined. 21:52:42 hi razor-x 21:53:16 Oh I see, nobody else gets hi's :P 21:53:46 Hi, GregorR-W. 21:53:52 you asked about dynamic arrays in INTERCAL, i made a bit of code for growing arrays in my Unlambda interpreter 21:53:57 he's just in it for the chicks 21:54:08 hi gregorR, ihope 21:54:23 ihope: did you see my question about (())? 21:54:30 Growing arrays? Why not just use linked lists? 21:54:58 because the array is the one implementing a heap 21:55:12 -!- CXI has changed nick to Ceiling_Seal. 21:56:46 the main problem in growing is that resizing clears the array, as i recall 21:56:59 -!- Ceiling_Seal has changed nick to CXI. 21:57:04 And yeah, I saw the question :-P 21:57:39 * ihope wonders why he thought of "ships and shoes and ceiling wax" upon seeing that nick change 21:59:08 * oerjanj suggests ze psychoanalysis for ihope 21:59:35 You mean word association? 22:00:10 you win! 22:00:54 * ihope collects the million-dollar prize from oerjanj 22:01:56 perhaps thematrixeatsyou can steal the name for RETURN, now... 22:02:10 * oerjanj is talking about (()) 22:03:11 ah, the language list is now spotless 22:03:56 gotta go 22:04:02 -!- oerjanj has quit ("Leaving"). 22:15:19 He never stays on IRC very long. 22:41:17 -!- Asztal has joined. 22:43:38 When the contest page at http://www.esolangs.org/wiki/2006_Esolang_Contest says Befunge, does it mean Befunge-93 or -98? 22:46:04 I didn't write the page, but I'd say -98 22:48:02 They have to be polyglots. :-P 22:50:36 I don't know -98 since I never finished my interpreter for it :( 22:51:20 Finish your interpreter so I can add it to EgoBot :P 22:51:36 It means -98. 22:51:43 I'm sorry I left it out. 22:51:50 I'll add it right now. 22:52:03 I'm also going to add a clause about licensing. 22:52:39 I will release the code, contestants. I hope that was implied by the rules. 22:52:54 Hmmm. Do you all want it under the GPL or the BSD license? 22:53:19 Or something more strict or less strict? 22:53:47 For this, I'd say BSD. 22:53:57 I'd say MIT minus attribution. 22:54:03 Well, nah, not minus attribution. 22:54:05 Just MIT. 22:54:11 release the contestants' code, you mean? 22:54:19 Yeah, the contestants code. 22:54:33 Public domain! Get rid of it I say :) 22:54:34 Well, BSD without ad clause. 22:54:47 Are you all sure you want something as free as PD or MIT? 22:54:54 How about, it's up to the contestant, but if they say nothing it's assumed to be MIT? 22:54:59 And it has to be OSI-approved. 22:55:03 Sounds good. 22:55:03 Yeah. That's good. 22:55:48 * pikhq would prefer FSF-approved, but. . . 22:55:50 Someone should release it under AFPL and then change it, for kicks :P. 22:56:16 MPL... (in tiny letters: Microsoft Permissive License) 22:57:26 pikhq: OMG ... normally I would've said FSF-approved ... this damn business is rotting my FS brain *sobbles* 22:58:25 Heh. 22:59:05 Reason to hate the term "Open Source" #0: Big business loves it. 23:00:31 Reason #1: Morals > better development methedology. 23:00:47 Indubidably. 23:00:59 Flipside reason: It's Communism (TM). 23:01:04 lol 23:01:20 We all know that Americans are raised from birth to hate the word by assosciation. 23:01:31 ``That's a bad dog, yes it is... COMMUNISM ... yes it is.'' 23:01:32 Flipside reason #2: GOD HATES FAGS. Erm, Free Software. Whatever. 23:02:04 Flipside reason #3: If English is good enough for Jesus, it's good enough for Texas. Open Source too. 23:02:26 Hahahaha. 23:02:48 Flipside reason #4: ESR supports guns. Guns are cool. ESR supports Open Source, too. Therefore, Open Source is too. QED. 23:03:11 Ah. Awesome logical flaws. 23:03:23 :) 23:03:37 That's one my mom labors under, though. 23:03:42 So it's quite prevalent. 23:03:49 Indeed it is. 23:04:05 * pikhq is convinced that man is one of the most illogical things on the face of the planet. . . 23:04:13 ``All Muslims support Hezbollah. Hezbollah is evil. Therefore all muslims are evil.'' 23:04:27 Aside from the great axioms there.... :D. 23:06:16 My favorite axiom comes from #gnu. . . 23:06:19 The axiom of ams: 23:06:24 ams is always right. 23:06:29 ;) 23:06:45 The American Mathematical Society? 23:07:08 No, Alfred M. Szmdit. 23:07:09 Razor-X: Have you known the American Mathematical Society to ever be wrong? 23:07:37 No. 23:07:47 Because even if I thought they were logically wrong, I'd use Doublething to change that. 23:07:47 He's in charge of the gnu-system ATM. 23:07:55 Like Quantum Computing. 23:08:09 *Doublethink. 23:08:21 the man page for clock():http://dark-code.bulix.org/mrh2e6-11342 23:08:48 I should get started writing mah BF CPU. 23:08:59 If anyone has an FPGA, 'twould be nice. 23:10:53 bsmntbombdood: ... so? 23:11:08 wrong window sorry 23:11:32 Heh. 23:20:56 * ihope bends his deck of cards 23:21:01 They're not shuffling. 23:24:26 Wiki page updated for Licensing, specified the preferrable use of C-INTERCAL and Befunge-98, and and requested that the next participants are committee members. 23:25:04 Does my being based in GMT present a problem? 23:25:22 Nah, it's not a everybody-sit-down-at-once-and-write type contest. 23:25:28 ``All times are posted in respect of UTC''. 23:25:37 UTC being GMT. 23:25:44 I missed that bit : 23:25:58 I've tried to make this as professional as I can. 23:26:01 Heh. 23:26:21 *and requested. 23:27:13 It's surprisingly easy to to double those short words ;-) 23:27:18 Yeah-p. 23:27:56 The alt.lang.intercal post brought in some new contestants. 23:28:01 I think we need to expand.... 23:28:05 TO SLASHDOT AND DIGG!!!! 23:28:13 Yes, it maybe a sea of stupidity, but bear with me! 23:28:33 I'm sure gamedev.net would be receptive to it 23:28:48 Spread it wherever you can. 23:28:52 I can spam^inform them for you 23:28:58 Yup. 23:29:02 >_> 23:29:09 I do hope we get more committee members, since we only have 2 now. 23:29:16 But we have a good 10/11 participants. 23:29:45 It seems the languages of choice are INTERCAL, Befunge and Unlambda/LazyK. 23:30:09 I bet Slashdot would frontpage it. 23:30:13 That's why. 23:30:14 Going to need to pick up Befunge, then. 23:31:14 Razor-X: ... plus brainfuck 23:31:19 Eidolos: I doubt it. 23:31:22 Oh, I didn't say BF, did I? 23:31:24 >_>. 23:31:37 They frontpage the NetHack tournament announcements. 23:31:42 Exactly. 23:31:48 That's why I think they'll do it to the Esolang competition. 23:31:59 * Eidolos is confused. 23:32:04 *shrugs* 23:32:06 I'd do it, but they may have blacklisted me after my attempt to spread a paper against the Spread Firefox movement and Google. 23:32:11 Do not put the baby in the esoteric programming competition. 23:32:19 Because it is Anti-Slashdot, of course :P. 23:32:23 Esolang burn baby. 23:33:02 why are unlambda and lazyk grouped together? 23:33:17 Because every contestant who wanted Unlambda also wanted LazyK. 23:33:18 Because they're the same. :-P 23:33:24 heh 23:33:26 And LazyK has Unlambda in it :P. 23:33:36 uhh. 23:33:46 Your MOM has unlambda in it. 23:34:03 Yes, my Master of Miracles does have Unlambda in it. 23:34:28 s/it/her/g 23:35:05 "That's why I think they'll do her to the Esolang competition." <- hmm... 23:36:04 Nah. Mah mom 'aint a Master Of Miracles. 23:36:11 She's a Pain In The Arse, though. 23:38:55 !bf +++++++++++++++++++++++[>++++++++++++++++++++<-]>. 23:38:58 23:39:04 Awesome. 23:39:11 !bf +++++++++++++++++++++++[>++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++<-]>. 23:39:14 J 23:39:26 !! 23:39:28 Huh? 23:39:35 Heh. 23:39:41 !bf txt_gen !! 23:39:52 !i 1 Huh? 23:39:54 ]_\Y]Y 23:40:00 !ps 23:40:02 1 pikhq: ps 23:40:04 . . . 23:40:12 I bork it. Schweet. 23:40:21 !bf_txtgen !! 23:40:24 Hehehehe. 23:40:29 Poor EgoBot. 23:40:30 27 ++++++++[>++++>>><<<<-]>+.. [26] 23:40:32 Abused by everybody. 23:40:48 !bf_txtgen abcdefghijklmnopqrstuvwxyz 23:40:49 Wow. That's horribly ineffecient. 23:41:10 103 ++++++++++++++[>+++++++>+++++++>>++<<<<-]>-.+.+.+.+.>++++.<++.+.>+++.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+. [910] 23:41:14 Razor-X: Heheh, it's a genetic algo. If I let it go more rounds, it would eventually clear that out. 23:41:17 Wow, that sucks too :P 23:41:18 !bf ++++++++[>++++>++++<<-]>.>. 23:41:21 23:41:21 정답! (EgoBot, 21621.000000 초) 23:41:22 -1. 다음을 읽으시오: 融合 23:41:27 ..... ? 23:41:34 Why is there Hangul? 23:41:35 !bf +[.,]++++++++[>++++<-]>+.. 23:41:36 puzzlet: That's very English. 23:41:53 !bf ++++++++[>++++>++++<<-]>.>. 23:41:57 23:42:04 !ps 23:42:07 LOL 23:42:09 1 pikhq: bf 23:42:10 2 pikhq: ps 23:42:14 EgoBot answered a trivia question properly XD 23:42:20 !i 1 Wow. 23:42:33 Right answer! (EgoBot, 21621.000000 seconds) -1. Read afterwords: Hab 23:42:49 !i 1 \nI suck.\n 23:42:52 Wow. 23:42:54 I suck. 23:43:20 !i 1 Indeed I do.\n 23:43:23 Indeed I do. 23:43:44 !i 1 \n\n\n\n 23:43:53 !i 1 PING 23:44:04 !i 1 \nWhee.\n 23:44:08 PING 23:44:10 Whee. 23:44:53 !bf_txtgen wants you to stop harassing him. 23:45:17 Oops, wait ... 23:45:18 224 ++++++++++++[>++++++++>++++++++++>+++++++++>+++<<<<-]>>-.<+.>>++.++++++.-.>----.<<++.<++++++++++++++.>----.>>.<+.-----.>.<<--.+.>.<----.>>.<-------.-------.<<+++.>>.<<+..----------.>--.<--.>>>.<+++++++.+.<-.>>++++++++++++++. [652] 23:45:22 Damn, forgot part of it 8-X 23:45:26 !i 1 /me loves being abused\n 23:45:28 !bf +[,+] 23:45:29 !bf_txtgen ACTION wants you to stop harassing him. 23:45:30 /me loves being abused 23:45:37 !i 1 h 23:45:38 :) 23:45:40 !i 1 h 23:45:41 !i 1 h 23:45:42 !i 1 h 23:45:43 Wooo! 23:45:47 Let's overload the memory! 23:45:49 !i 1 \n 23:45:51 !i 1 h 23:45:52 hhhh 23:45:56 283 +++++++++++[>+++++++>++++++>+++>++++++++++<<<<-]>>-.++.<+++++++.>++++++.++++++.-.>-.<+++++++++++++++++++++++++++++++++++++++++.<+++++++++++++.+++++++++++++.>---.-.>.<++++++.<+.>----.>.<-.<.>>.<-.+.<.+.>>.<<--------.-------.>--.<.>+..<++++++++.>>>.-------.<.>+.+.++++.<++++++++++++++. [983] 23:45:57 Pshhh. 23:46:00 You suck. 23:46:11 !bf +.++++++++++[>+++++++>++++++>+++>++++++++++<<<<-]>>-.++.<+++++++.>++++++.++++++.-.>-.<+++++++++++++++++++++++++++++++++++++++++.<+++++++++++++.+++++++++++++.>---.-.>.<++++++.<+.>----.>.<-.<.>>.<-.+.<.+.>>.<<--------.-------.>--.<.>+..<++++++++.>>>.-------.<.>+.+.++++.<++++++++++++++. 23:46:15 ACTION wants you to stop harassing him. 23:46:19 Hm 23:46:23 Hehehehe. 23:46:23 !i 1 ACTION is getting abused too much.\n 23:46:25 !bf_txtgen aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 23:46:25 Did I restrict its output :P 23:46:27 hACTION is getting abused too much. 23:46:28 I don't remember doing that 23:46:34 !i 1 ACTION is getting abused too much.\n 23:46:36 !bf +[,++++++++++++++++] 23:46:36 ACTION is getting abused too much. 23:46:40 !ps 23:46:41 !glass {M[m(_e)(Emote)!"tests it here."(_e)e.?]} 23:46:42 1 pikhq: bf 23:46:45 2 Razor-X: bf 23:46:47 3 ihope: bf_txtgen 23:46:48 !i 2 h 23:46:49 4 Razor-X: bf 23:46:50 !i 2 h 23:46:51 5 Razor-X: ps 23:46:53 * EgoBot tests it here. 23:46:54 !i 2 h 23:46:56 !i 2 h 23:46:58 !i 2 h 23:47:01 115 ++++++++++++[>++++++++>++++++++>><<<<-]>>+....<+.....>.<.>......<..>.<.>...<.>.....<...>.<......>..<.>....<...>..<. [998] 23:47:03 Overload! 23:47:05 !i 2 h 23:47:07 :D. 23:47:11 Come on everybody! 23:47:15 !i 2 h 23:47:19 -!- Asztal has quit ("Smoke me a kipper, I'll be back for breakfast"). 23:47:22 !i 4 h 23:47:23 !i 4 h 23:47:24 !i 2 z 23:47:26 !i 2 h 23:47:28 !i 2 h 23:47:31 !i 2 h 23:47:31 !i 4 h 23:47:36 !i 4 h 23:47:37 !i 4 h 23:47:39 !i 4 h 23:47:41 !i 4 h 23:47:42 !i 2 h 23:47:44 !i 2 h 23:47:47 !i 4 h 23:47:48 -!- EgoBot has left (?). 23:47:48 !i 3 h 23:47:51 :-P 23:47:53 Awwwww >_>. 23:47:55 Seriously guys. 23:47:58 Stop raping the bot. 23:48:05 I can't do that. I'm a girl. 23:48:07 You're flooding the channel anyway. 23:48:09 * ihope laughs like a maniac 23:48:13 Razor-X: That's what strap-ons are for. 23:48:18 o_O. 23:48:21 My innocence! 23:48:24 lol 23:48:39 !i 1 Lesbians don't have innocence.\n 23:48:42 So uh... strap-on mode off.... I guess? 23:48:47 EgoBot left. 23:48:56 Ah. 23:49:00 Yeh. 23:49:01 It'll be back in a moment, I'm reloading it to drop all your programs. 23:49:07 :D. 23:49:12 -!- EgoBot has joined. 23:49:25 1help 23:49:25 !bf_txtgen Razor-X is sorry for raping you. 23:49:27 !help 23:49:31 Oh, did you get the reminder thingy? 23:49:31 help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon 23:49:33 1l 2l adjust axo bch bf{8,[16],32,64} funge93 fyb fybs glass glypho kipple lambda lazyk linguine malbolge pbrain qbf rail rhotor sadol sceql trigger udage01 unlambda whirl 23:49:35 !ps d 23:49:39 1 EgoBot: daemon reminder reload 23:49:39 Awww. He forgot the reminder. 23:49:41 2 Razor-X: bf_txtgen 23:49:43 3 ihope: ps 23:49:50 Jawesome. 23:49:51 247 ++++++++++++[>+++++++>++++>++++++++>++++++++++<<<<-]>--.>>+.>++.-----------.+++.<<---.<++++++.>-------------.>++++++++.>+.<<.>>.<++++++.+++..>++++++.<<.<++++++++++++++.>>---.+++.<.>.<<-----.>>--.<<++++++++.>>--.<<--.>.>>.<+.>----.<<++++++++++++++. [993] 23:49:52 No it didn't. 23:49:54 It's still there. 23:49:56 Reload? 23:50:01 Um... 23:50:02 !bf ++++++++++++[>+++++++>++++>++++++++>++++++++++<<<<-]>--.>>+.>++.-----------.+++.<<---.<++++++.>-------------.>++++++++.>+.<<.>>.<++++++.+++..>++++++.<<.<++++++++++++++.>>---.+++.<.>.<<-----.>>--.<<++++++++.>>--.<<--.>.>>.<+.>----.<<++++++++++++++. 23:50:03 It reloaded the reminder. 23:50:05 Razor-X is sorry for raping you. 23:50:09 !malbolge This isn't valid, but I don't care. 23:50:11 !reminder 23:50:13 invalid character in source file 23:50:15 y«54ī4z5 23:50:22 ..................... 23:50:27 That's not the reminder... 23:50:27 lol 23:50:28 What happened to the reminder.... ? 23:50:30 Hmmmmmmmmmm 23:50:39 Somethin' done broke X-P 23:50:49 I think EgoBot is going through a Midlife Crisis. 23:50:58 Time for a test... 23:51:06 Egobot: It Works, Sometimes. 23:51:07 !daemon repeater glass {M[m(_i)I!(_o)O!(_s)S!(_x)<1>=(_c)""=/(_x)(_c)(_c)*(_i)l.?(_s)a.?=(_c)*(_o)o.?\]} 23:51:12 !repeater Line 1 23:51:15 Line 1 23:51:19 * Razor-X goes back to the Glass tutorial. 23:51:30 Disfigured smilies! 23:51:32 (must wait 15 minutes before reloading) 23:51:36 Razor-X: wh00t 23:51:47 Razor-X: Feel free to ask me any questions, I am the world's foremost expert. 23:51:58 Yes, hmmm. 23:52:20 Can you make a better tutorial so I don't have to look back at that document again? :P. 23:52:21 !repeater Line 2 23:52:25 Line 1 23:52:27 Line 2 23:52:39 !repeater Sometimes I like to eat mangoes. 23:52:41 Line 1 23:52:42 >_O 23:52:46 Please don't fill up the repeater's buffer 23:52:55 It doesen't flush? 23:52:59 Now it's messaging GregorR 23:53:07 No, it doesn't, it just keeps on adding. 23:53:13 Ah. 23:53:13 That's how it's useful as a persistence test. 23:53:15 !undaemon repeater 23:53:17 Process 1 killed. 23:53:19 That's true! 23:53:24 !daemon repeater glass {M[m(_i)I!(_o)O!(_s)S!(_x)<1>=(_c)""=/(_x)(_c)(_c)*(_i)l.?(_s)a.?=(_c)*(_o)o.?\]} 23:53:29 * Razor-X goes back to the Glass tutorial. 23:53:31 Wait... 23:53:36 !undaemon repeater 23:53:37 Process 1 killed. 23:53:38 Razor-X: The wiki page, or the IRC log? 23:53:44 The log. 23:53:48 Ah. 23:53:57 I suddenly got a very good idea. I'll remove all non-Glass related lines from it! 23:54:05 That way, it won't take up a large amount of RAM! 23:54:10 lol 23:54:18 There, now you can use !repeater to spam me. 23:54:18 I'm just so smart, I scare myself sometimes. 23:54:28 !repeater I like eating banannas too. 23:54:36 !undaemon repeater 23:54:37 X_X 23:54:37 Process 1 killed. 23:54:44 {EgoBot} I like eating banannas too. 23:54:54 Estas TRE BONE!!!! 23:55:16 I got an idea earlier today for a Conlang. 23:55:19 ERrr... 23:55:20 *Esolang. 23:55:26 But, I shall save the fruitition for later. 23:55:28 Same thing. 23:55:38 But I'm not as awesome as ihope yet :(. 23:56:10 In the meantime, I'll continue on my INTERCAL->BF interpreter, some QBF programs, my Verilog BF CPU, and writing some documentation for the Esolangs I like. 23:56:21 !daemon repeater glass {M[m(_i)I!(_o)O!(_x)<1>=(_c)""=/(_x)(_c)*(_c)(_i)l.?=(_o)o.?\]} 23:56:28 !repeater Line 1 23:56:34 !repeater Line 2 23:56:37 Line 1 23:56:45 Hey! 23:56:48 !ps d 23:56:48 Now it'll output the last line you entered when you enter a line. 23:56:49 1 ihope: daemon repeater glass 23:56:51 2 GregorR-W: daemon repeater glass 23:56:53 3 ihope: ps 23:56:54 Oops XD 23:56:56 !kill 1 23:56:57 Process 1 killed. 23:56:58 !undaemon repeater 23:57:01 Process 2 killed. 23:57:03 !daemon repeater glass {M[m(_i)I!(_o)O!(_x)<1>=(_c)""=/(_x)(_c)*(_c)(_i)l.?=(_o)o.?\]} 23:57:08 !repeater Line 1 23:57:10 !repeater Line 2 23:57:13 Line 1 23:57:32 * ihope gets his own repeater 23:58:54 Does ihope still know Glass? 23:59:00 Nope. 23:59:16 !ihope_repeater YOU FAILS! 23:59:48 !ihope_repeater :-(