00:00:24 <cpressey> I notice a question mark in there
00:00:45 <cpressey> Oh, why must our country die, I see
00:00:48 <aliseiphone> pikhq: How did you do "must the of it"? :P
00:01:08 * oerjan sees only question marks, of course
00:01:10 <pikhq> aliseiphone: "The needing of"
00:01:56 <aliseiphone> Did you translate it as affadavit or affidavit? :P
00:02:19 <pikhq> ... Affidavit is what I transcribed.
00:02:52 <pikhq> Would it make you feel better to know that that was inherently a neologism?
00:02:56 <aliseiphone> I SAID AFFADAVIT. FANCY YOURSELF A POET? SHEESH!
00:03:48 <Sgeo> Ok, one of the closures can stay.
00:04:03 <oerjan> Sgeo: BUT THE OTHER ONE IS DEAD MEAT
00:04:04 <pikhq> It was more "Afidebitto".
00:04:05 <aliseiphone> pikhq: Now a true translator would make "must the of it" and "affadavit" rhyme. Somehow.
00:04:21 <pikhq> aliseiphone: Japanese poetry doesn't rhyme.
00:04:26 <cpressey> "have the of it" almost does it
00:04:32 <Sgeo> I was wrong about the nesting level
00:04:39 <Sgeo> There a closure in a closure, that's it
00:04:44 <Sgeo> Those closures are dead.
00:04:51 <pikhq> Though: "Hitsuyou no/afidebitto" almost does.
00:05:05 <aliseiphone> cpressey: It rhymes in English; not Japanese.
00:05:30 * cpressey wonders who the smeg Casey & Andy are and why they've been mentioned three times in here today
00:05:31 <augur> oerjan you suck at japanification of words.
00:05:39 <Gregor-W> Hello, my name is Afidebitto Kuaku.
00:05:48 <oerjan> augur: i'm just imitating what pikhq uses to do :D
00:06:02 <pikhq> oerjan: Poorly as hell. :P
00:06:12 <oerjan> cpressey: webcomic mad scientists
00:06:23 <pikhq> oerjan: "Ahuxit`eh`ixtuto". :)
00:06:35 <augur> pikhq: stop it, noone here speaks maltese.
00:06:50 <oerjan> pikhq: oh i forgot the x thing
00:07:23 <cpressey> oerjan: ty but that answers only the first half of my wonderment
00:07:41 <pikhq> oerjan: How else to encode small vs. large kana?
00:08:04 <pikhq> aliseiphone: *shudder*
00:08:06 <oerjan> cpressey: well the previous time i saw it was a joke about norwegians afaict
00:08:08 <pikhq> aliseiphone: Or case?
00:08:09 <augur> imma go walk around outside for a bit
00:08:53 <oerjan> cpressey: if it was Phantom_Hoover each time, presumably he's been reading the archive
00:08:59 <pikhq> aliseiphone: ahuit`eh`ituto?
00:09:06 <pikhq> aliseiphone: Prefix.
00:09:31 <pikhq> *ahu*i*t`eh`i*tu*to*?
00:09:39 <Phantom_Hoover> I burnt through it in under a day, and now there's a HOLE where my soul should be.
00:10:25 <oerjan> Phantom_Hoover: go lie on the couch and dream of being king of sweden
00:12:51 <pikhq> ... For the dakuten?!?
00:13:00 <pikhq> (which, BTW, looks like ゙)
00:13:30 <cpressey> Phantom_Hoover: That'll learn ya.
00:13:41 <pikhq> aliseiphone: Now what say you about the handakuten?
00:13:54 <pikhq> Lessee. Example word...
00:14:24 <pikhq> 六百, roxtuh^ixyaku.
00:14:32 <pikhq> In Hepburn, that's "roppyaku".
00:14:33 -!- Phantom_Hoover has quit (Ping timeout: 265 seconds).
00:14:54 <oerjan> handakuten are so handy
00:15:25 <olsner> handakuten => handy :)
00:15:30 <pikhq> oerjan: More like half-y. "han" is "half".
00:15:57 <oerjan> and dy is the other half
00:16:35 <olsner> oh, han-dakuten? I thought you were talking about hand-akuten
00:16:59 <pikhq> What, the hand-evil-mark?
00:17:22 <pikhq> ("aku" is evil and "ten" is mark)
00:17:31 <oerjan> olsner: your hearing is not quite acute, i take
00:17:47 <olsner> that's a grave accusation
00:19:05 <oerjan> olsner: hey i mentioned nothing about your being undead
00:19:42 <pikhq> aliseiphone: Voiced marked.
00:20:05 -!- aliseiphone has quit (Quit: Get Colloquy for iPhone! http://mobile.colloquy.info).
00:35:40 -!- Mathnerd314 has joined.
00:42:18 <Sgeo> Manually testing everything is fun!
00:43:03 <Gregor-W> Never testing anything is fun!
00:44:01 <Sgeo> But enjoying the fruits of your labor is also testing
00:44:19 <Sgeo> Are you saying the most fun to be had is when you write code that you never see do anything?
00:47:43 <Gregor-W> http://codu.org/projects/ suggests so.
00:48:51 <cpressey> Three projects called "My Project"
00:50:59 <Gregor-W> Two aren't mine and one is too stupid to deserve a name.
00:51:05 <oerjan> must be an xkcd reference
00:53:10 -!- cpressey has quit (Quit: Leaving.).
00:54:14 -!- coppro has joined.
01:01:52 -!- calamari has joined.
01:03:11 -!- Gregor-W has quit (Quit: Page closed).
01:03:54 <calamari> re: hackiki... I had a bot that allowed access to a root shell .. channel users kept destroying it for no reason, saying it was not useful for anything else
01:05:10 <calamari> so I imagine your hackiki might suffer a similar fate due to immaturity.. don't waste your time :)
01:05:50 <Sgeo> `run echo Any outpiut?
01:05:54 <HackEgo> babies \ bin \ cube2.base64 \ cube2.jpg \ hack_gregor \ hello.txt \ help.txt \ huh \ netcat-0.7.1 \ netcat-0.7.1.tar.gz \ out.txt \ paste \ poetry.txt \ quotes \ qw.pl \ share \ tmpdir.20778 \ wunderbar_emporium
01:06:21 <Sgeo> `run echo `whoami`
01:06:30 <Sgeo> `run echo `ls`
01:06:31 <HackEgo> babies bin cube2.base64 cube2.jpg hack_gregor hello.txt help.txt huh netcat-0.7.1 netcat-0.7.1.tar.gz out.txt paste poetry.txt quotes qw.pl share tmpdir.21044 wunderbar_emporium
01:06:51 <pikhq> Okay, so clearly, can't demonstrate it.
01:06:58 <pikhq> calamari: HackEgo is root.
01:07:04 <Sgeo> `run echo `who`
01:07:25 <HackEgo> bin \ dev \ etc \ home \ lib \ lib64 \ proc \ tmp \ usr
01:08:00 <calamari> pikhq, are you saying the people on #esoteric have grown up? or was it more of a way that people were disrespecting me?
01:09:12 <Sgeo> I think Hackiki is designed to be recoverable
01:09:33 <calamari> I recovered it like 10 times then gave up due to the idiocy of people
01:09:50 <calamari> they kept saying they had to hack it.. but they were already root so it was completely stupid
01:09:54 <pikhq> calamari: More just that they're idiots. :P
01:10:10 <Sgeo> Maybe they wanted to break it out of its jail
01:10:15 <Sgeo> Hack your system
01:11:14 <calamari> unlikely.. it was running inside a qemu vm
01:11:23 <Sgeo> Did they know that?
01:12:03 <Sgeo> Maybe they knew of some weird qemu exploit
01:12:19 <calamari> I think they said something like that it wasn't useful because they could just run things on their own machine and the only use for my bot was to find clever ways of hacking it
01:25:58 -!- calamari has quit (Quit: Leaving).
01:26:44 -!- calamari has joined.
01:40:06 -!- Wamanuz has quit (Remote host closed the connection).
01:43:30 -!- derdon has joined.
01:49:10 -!- BeholdMyGlory has quit (Remote host closed the connection).
01:51:24 -!- cheater99 has joined.
01:58:47 -!- calamari has quit (Quit: Bye).
01:58:54 -!- calamari has joined.
02:07:38 <derdon> why is a befunge script restricted to 80x25 commands?
02:07:41 <calamari> http://tunes.org/~nef/logs/esoteric/08.04.19
02:07:50 <derdon> why is there a restriction at all?
02:08:45 <coppro> derdon: Befunge-98 is not restricted
02:09:21 <derdon> coppro: oh. I thought befunge-93 was the latest version (I clicked on the links in the wikipedia rticle)
02:09:40 <oerjan> oh no, that's the _oldest_
02:10:06 <oerjan> only those two are used any nowadays, anyway
02:10:09 -!- augur has quit (Remote host closed the connection).
02:10:19 -!- augur has joined.
02:10:47 <Gregor> cpressey isn't on or we'd yell at 'im for you :P
02:10:56 <derdon> BOTOH, 80x25 is very much for an esoteric language :D
02:11:30 <oerjan> also, 80x25 is the "standard" unix terminal size
02:12:02 <oerjan> so it was probably intended to be displayed visually in a terminal window
02:12:43 <derdon> oerjan: 270x71 <- this is my terminal size
02:12:47 <oerjan> (or on a literal terminal, i remember those)
02:13:31 <oerjan> derdon: this was back in '93, remember? i think our university still had standard size physical vt terminals by then
02:13:32 <derdon> well, I'm gonna learn 93 cuz it looks easier to understand
02:13:58 <pikhq> It's also much easier to implement.
02:14:03 <oerjan> fungot: no respect for '98, eh?
02:14:03 <fungot> oerjan: i think it costs money
02:14:15 <oerjan> no, fungot, i'm pretty sure it doesn't
02:14:15 <fungot> oerjan: if you want. i was more angry than any of these return true its true?
02:15:49 <fungot> oerjan: should be less vague. how would i go about telling my wife that i'm secretly shagging the plumber?' sense, but not good.
02:16:15 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher ic irc* jargon lovecraft nethack pa speeches ss wp youtube
02:17:28 <calamari> okay.. so here is a challenge: given 2 buttons, what is an easily memorable way to enter the digits 0-9, requiring 3 or less button presses, but also handling additional button presses in a way that the user can understand?
02:18:14 <oerjan> erm you realize 3 presses of 2 buttons gives you only 8 options?
02:18:47 <calamari> build a binary tree and with up to 3 presses you'll have 15 states
02:18:52 <pikhq> Yeah, that's enough for 2^4-1.
02:19:07 -!- Aquana has joined.
02:19:21 <calamari> so that part of the challenge isn't really a challenge :)
02:19:22 <oerjan> um but then you'll need a timeout for knowing if the user's finished
02:19:50 <calamari> oerjan there is another button for that, but that isn't really important to the challenge
02:20:20 <calamari> mostly, I have been trying to figure out something that makes sense from memory
02:20:47 <calamari> and also that doesn't degenerate if you push the buttons too many times
02:20:48 <oerjan> !haskell import Control.Monad; main = print $ [1..3] >>= flip replicateM "ab"
02:20:51 <EgoBot> ["a","b","aa","ab","ba","bb","aaa","aab","aba","abb","baa","bab","bba","bbb"]
02:21:26 <calamari> yeah started off with that.. not exactly easy to remember how to enter a digit
02:23:12 <oerjan> you can drop the ones with 2, actually
02:24:02 <calamari> but that would mean a waste of presses.. could use simple binary if # presses weren't a concern
02:24:27 -!- coppro has quit (Ping timeout: 264 seconds).
02:24:28 -!- Halph has joined.
02:24:41 -!- Halph has changed nick to coppro.
02:25:06 <Gregor> BTW, with simultaneously pressing both considered different from pressing one then the other, you could have lots more state space.
02:25:49 <calamari> that'd essentially mean I had 3 buttons
02:25:50 <Gregor> Since 3*3 = 9, you only need two presses that way, with every value being two presses.
02:26:14 <calamari> just have that be the default if you don't press anything
02:26:19 <Aquana> to enter the number n, enter n times the first button and then the second
02:26:48 <Gregor> Aquana: You missed the first part, namely the restriction to "3 or less button presses"
02:27:10 <Gregor> Speaking of, who are you? :P
02:27:31 <oerjan> you could also do binary, but with initial zeroes omitted
02:27:37 <Gregor> How could I be so silly.
02:27:56 <calamari> oerjan: how would I enter 8 or 9?
02:28:21 <Gregor> I didn't realize there was a point :P
02:28:38 <calamari> Gregor: not much of one, I admit :)
02:28:54 <oerjan> this _does_ leave 0 a special case, though
02:29:11 <Gregor> Also I once again point to the /topic for your voting plezzure kthx
02:29:51 <oerjan> 0 could be 111, paradoxically
02:30:23 <oerjan> (000 is already taken for 8)
02:31:11 <calamari> wait, I need to go back through and follow your instructions more closely
02:31:21 <oerjan> 111, , 0, 1, 00, 01, 10, 11, 000, 001
02:31:26 <Gregor> Remove all the leading 0s and the first 1. That is the entire instruction :P
02:31:33 <oerjan> (yeah that's no buttons for 1)
02:31:54 <Gregor> oerjan: OK, THAT'S confusing X-D
02:32:09 <Aquana> if more than one number is to be entered, does it need to know when a number ends and when an other one starts?
02:32:25 <oerjan> calamari: i said 0 needed to be a special case
02:32:32 <oerjan> because there's no first 1 to remove
02:32:57 <calamari> yeah 0 and 1 would be identical
02:34:01 <calamari> well still, I think it's a cool solution, thanks
02:36:33 <Aquana> and whats about pressing both buttons at the same time?
02:37:54 <oerjan> well i didn't use that
02:38:20 <oerjan> it would require ternary, which i suspect doesn't come as easily to many :D
02:38:46 <oerjan> oh and then there could be initial 1 _or_ 2, hm
02:39:01 <calamari> so I'm trying to decide how to handle extra button presses.. lets say they entered 0000, what digit does that produce?
02:40:00 <calamari> hmm actually nm.. I was thinking it was ambiguous, but it isn't
02:40:15 <oerjan> discarding digits is easy. 010 and 011 may be more of a problem.
02:40:40 <Aquana> i'd say do some huffman coding and include the possibility of having both buttons pressed at the same time
02:40:49 <calamari> 0000 -> 10000 = 16, 16 mod 10 = 6
02:41:54 <Aquana> then you can enter multiple numbers without having an "next number"-button
02:42:35 <oerjan> well pushing both could _be_ end of number
02:43:15 <derdon> is there a possibility to comment my befunge-scripts? :P
02:43:48 <calamari> derdon: would that really help? :)
02:44:25 <calamari> actually, if you kept the comments separate, you could just enter arbitrary chars, right?
02:44:43 <Aquana> i didn't see those, but hey its a comment :p
02:45:04 <derdon> calamari: what do you mean? creating a seperate file which explains this script?
02:45:44 <calamari> nope, 1 min I need to make sure I don't butcher befunge
02:46:39 <oerjan> derdon: just put the comments somewhere the IP won't touch them
02:46:53 <oerjan> any character is allowed as long as it isn't executed
02:47:05 <derdon> oerjan: I assume IP == Interpreter
02:47:13 <calamari> okay.. so let's say you have code going left to right.. and you have a v then put your comment after that.. shouldn't get there
02:47:20 <oerjan> instruction pointer, actually
02:47:59 <calamari> anyhow.. yeah if it won't be reached you are safe
02:48:17 <fungot> http://git.zem.fi/fungot/blob/HEAD:/fungot.b98
02:48:21 <calamari> that is what I said badly with "keep your comments separate"
02:48:47 <oerjan> that's befunge 98, but same principle
02:49:26 <calamari> from wikipedia: "Similarly, in Befunge, there is no comment syntax: to embed documentation in the code, the programmer simply routes the control flow around the "comment" area, so that the text in that area is never executed."
02:49:27 <oerjan> of course with 93 the problem could be fitting both the comments and the code into the space available
03:03:27 <calamari> oerjan: the more I look at your solution the more awesome it becomes.. it actually turns out that a simple 10-state machine can handle it
03:04:08 <calamari> well I drew it out as a binary tree
03:05:03 <oerjan> actually i don't see how the 0=111 fits
03:05:24 <calamari> the question was, say, when I encountered a digit lower in the tree, would it have the same leaves as one higher up, and it does
03:06:20 <oerjan> so initial state = 1, reading digit d turns state s into 2*s+d (mod 10)
03:06:30 -!- Warrigal has quit (Remote host closed the connection).
03:08:00 <calamari> so the states are (digit-0-1): 001, 123, 245, 367, 489, 501, 623, 745, 867, 989
03:17:40 <oerjan> !haskell import Control.Monad; digs = [0..3] >>= replicateM [0,1]; main = print [(s, (length . nub . sort . map (foldl' (\s d -> (2*s + d) `mod` 10) s)) digs) | s <- [0..9]]
03:17:56 <oerjan> !haskell import Control.Monad; import Data.List; digs = [0..3] >>= replicateM [0,1]; main = print [(s, (length . nub . sort . map (foldl' (\s d -> (2*s + d) `mod` 10) s)) digs) | s <- [0..9]]
03:18:17 <oerjan> !haskell import Control.Monad; import Data.List; digs = [0..3] >>= flip replicateM [0,1]; main = print [(s, (length . nub . sort . map (foldl' (\s d -> (2*s + d) `mod` 10) s)) digs) | s <- [0..9]]
03:18:20 <EgoBot> [(0,8),(1,10),(2,10),(3,10),(4,8),(5,8),(6,10),(7,10),(8,10),(9,8)]
03:19:15 <oerjan> only initial states 1,2,3,6,7,8 gives all possible digits as output
03:21:13 <calamari> if I start in state 0, all I have to do is give 1, then I'm in state 1
03:21:16 <oerjan> if you start with state 0, say (which is the equivalent of not removing the first 1), then you only get 8 possible digits represented
03:21:53 -!- derdon has quit (Ping timeout: 258 seconds).
03:22:49 <oerjan> the rest are a bit more subtle but i _think_ it boils down to state 0 and 9 having digits turning them into themselves, so you don't want those states to be reached early or you lose too many options
03:23:18 <oerjan> (4 and 5 can turn into 9 and 0 respectively)
03:23:28 <calamari> there are no dead ends though, so it is fine
03:23:57 <oerjan> yeah but getting all in 3 presses depends on getting enough branching
03:24:28 <calamari> well basically if I am entering a digit and I mess up then I've forfeited my 3 presses, but I still want to be able to enter it
03:24:45 <calamari> and since that is possible, I'm happy
03:27:08 <calamari> I'll be using this to implement digit entry for my watch calculator program
03:27:54 <calamari> unfortunately the timex data link usb doesn't have a keypad
03:28:18 <calamari> it does have a crown, but the crown gets jumpy with age
03:28:46 <oerjan> so crowns are a royal pain?
03:34:31 -!- Aquana has quit (Quit: Aquana).
03:34:56 -!- BRETTs has joined.
03:39:58 -!- BRETTs has quit (Ping timeout: 240 seconds).
03:50:59 -!- coppro has quit (Quit: I am leaving. You are about to explode.).
04:02:08 -!- BRETTs has joined.
04:02:14 -!- BRETTs has quit (Client Quit).
04:17:08 -!- coppro has joined.
04:31:32 -!- MizardX has quit (Ping timeout: 240 seconds).
05:08:00 <oerjan> ^ul ((/)~*(\)*S)(~:(a~a(:^)**)~a*^^):^
05:08:01 <fungot> /((/)~*(\)*S)(~:(a~a(:^)**)~a*^^):^\
05:10:18 <oerjan> ^ul (((/)~*(\)*S)(~(:^^)*~^)):^^
05:10:18 <fungot> /((/)~*(\)*S)(~(:^^)*~^):^^\
05:10:54 <oerjan> ^ul (((/)~*(\)*S)(~a(:^^)*~^)):^^
05:10:54 <fungot> /(((/)~*(\)*S)(~a(:^^)*~^)):^^\
05:15:55 -!- Gregor-P has joined.
05:42:47 -!- oerjan has quit (Quit: leaving).
05:46:57 -!- oerjan has joined.
06:17:41 <Ilari> Heh... I'm considering defining floating point extension to Pointer B.
06:21:13 <Ilari> And define it in way that's relatively sane w.r.t. numbers, but almost impossible to implement completely.
06:21:55 -!- GreaseMonkey has joined.
06:23:11 <Ilari> Since it would have (subsets of) functions that are well defined, but would be ph.d just to implement properly... :-)
06:26:05 <Ilari> Already operations like "complex double precision floating point divide" would be quite fun (note that defintion of "double precision" is not the same as "IEEE double precision". It could easily be IEEE quadruple precision)...
06:26:32 <oerjan> listZeroes(riemannZeta, range=(RealPart > 1/2))
06:28:11 <Ilari> One wouldn't need more than extensions of several known special functions to complex domain to be very hard to implement.
06:29:19 <Ilari> With the way reference implemnentation chooses word size, "single precision" would be "IEEE double precision".
06:30:03 <Ilari> Reference implementation has 64 bit words (giving 1Zib data memory).
06:30:23 -!- myndzi has joined.
06:30:34 <coppro> Ilari: IIRC it's been proven there are no zeroes with Re(w) > 1/2
06:33:19 <oerjan> "Directly from the functional equation one sees that the non-trivial zeros are symmetric about the axis Re(s) = 1/2."
06:34:08 <Ilari> Number of possible different code memory words in Pointer B: 1 112 030.
06:34:43 <oerjan> so if you can prove there are none with Re(w) > 1/2 you will be quite rich and very famous
06:34:51 -!- Mathnerd314 has quit (Ping timeout: 276 seconds).
06:35:46 <oerjan> which was the point of the above, anyway
06:36:28 <coppro> a friend of a friend put it best... if you prove the Riemann hypothesis, you either tell everybody or nobody
06:36:43 <oerjan> ...i am not aware of anything regarding the riemann hypothesis that would cause the death of people...
06:36:53 <oerjan> now P = NP, on the other hand...
06:38:08 <oerjan> unless someone wants to steal your proof of the riemann hypothesis and take credit, perhaps.
06:38:59 <coppro> oerjan: any solution would likely have profound implications on public-key encryptoin
06:39:23 <oerjan> ...again, i think you are confusing it with P=NP
06:40:07 <coppro> hmm... I could have the quote out of context, but the Riemann hypothesis would have similar implications
06:40:13 <oerjan> at least in so far that most people assume the riemann hypothesis is true, anyway, so _proving_ it won't change much. same with proving P != NP.
06:41:01 <oerjan> the profound implications of proving them in that direction would only be to make people know what they already mostly assume
06:41:14 <oerjan> so wouldn't break anything
06:41:32 <coppro> I'd need to dig up a reference on this one, but IIRC it's expected that the methodology would make finding primes very easy
06:41:35 <Gregor> Proving P!=NP would just make everyone go "*whew*!"
06:41:59 -!- augur has quit (Remote host closed the connection).
06:42:06 -!- augur has joined.
06:42:43 <oerjan> coppro: public key encryption doesn't depend on primes being hard to find. in fact they're already quite easy enough.
06:43:04 <oerjan> it's _factoring_ that's the key.
06:44:31 * Sgeo wonders if DBus makes any sense on Windows
06:44:33 <Ilari> And there's already primality check that runs in deterministic polynomial time.
06:45:31 <pikhq> Yeah, it's only hard to find very *large* primes. And this is only hard in the sense of practicality.
06:45:51 <pikhq> We could certainly produce some gigabyte primes; it'd just be a waste of time.
06:47:24 <Ilari> Other amusing overkill: 2048-bit EC curves.
06:48:41 <oerjan> redundant acronym syndrome
06:49:45 <oerjan> the very large primes are nearly all mersenne primes, since those are the ones that we have an efficient method to test at that size
06:50:53 <Sgeo> oerjan, very large *known primes, I assume
06:51:32 * Sgeo managed to fail to see that
06:51:49 <Ilari> Figure out class of numbers with even easier (nontrivial) primality check. :-)
06:52:42 <oerjan> something with ackermann functions in it would be great
06:53:55 <oerjan> well, an infinite class with entirely trivial check would be even better
06:54:33 <Ilari> Or hyper operators (extra bonus for getting them to nest)...
06:55:15 <Ilari> Also, numbers involving terms with three conway arrows... :-)
06:55:41 -!- Gregor-P has quit (Quit: Bye).
06:55:43 <Ilari> (those terms are usually freaking huge).
06:56:03 <oerjan> hm i guess a problem is that primes _do_ get rarer. at mersenne prime sizes the numbers still can be prime purely by chance, but with ackermanns involved you'd need some cosmic luck
06:56:36 <Ilari> 3 -> 3 -> 65 -> 2 is bigger than Graham's number... :-)
06:57:25 <oerjan> i wonder if it is known whether adding or subtracting a small constant to those can or cannot be a prime
06:58:11 <Ilari> Well, if you have number with n digits, the number you have to add or substract to make it prime is IIRC O(n).
06:58:47 <oerjan> i know. that's not really helpful with hyper operators.
07:00:33 <Ilari> And even if you got some prime, proving it to be prime would likely be freakishly hard.
07:01:18 <oerjan> subtracting 1 is even, subtracting 2 is divisible by 5.
07:02:03 <oerjan> http://en.wikipedia.org/wiki/Graham's_number#Rightmost_decimal_digits_of_Graham.27s_number
07:02:19 -!- Wamanuz has joined.
07:02:44 <Ilari> The size of prime gap Graham's number is in is likely immense.
07:04:04 <oerjan> yeah if other bases destroy other constant adjustments similarly...
07:04:18 <Sgeo> SciFiWritersHaveNoSenseOfScale averted in Cowbirds in Love
07:05:11 <Ilari> Immense meaning you can't even write class number for that number.
07:05:23 <Sgeo> May I spoil up to where we are in this storyline?
07:06:23 <Ilari> 0 => 1-6, 1 => 7-10^6, 2 => 10^6-10^10^6, 3 => 10^10^6+1 - 10^10^10^6, and so on...
07:06:44 -!- calamari has quit (Quit: Leaving).
07:08:08 <Ilari> Alternatively one could define that number is immense if one can't write polylog of it.
07:08:39 <oerjan> well that's essentially the size of n in the 3^^n
07:11:04 <Ilari> So finding prime number with Ackermans in it would likely mean finding explicit expression for infinite sequence of primes....
07:14:32 <Ilari> Searching some stuff I hit page claiming that any prime contains one of the following primes as subsequence: 2, 3, 5, 7, 11, 19, 41, 61, 89, 409, 449, 499, 881, 991, 6469, 6949, 9001, 9049, 9649, 9949, 60649, 666649, 946669, 60000049, 66000049 or 66600049.
07:15:43 <oerjan> well it must end in 1,3,7 or 9 unless it is 2
07:16:04 <oerjan> i guess it's just a matter of prolonging that argument
07:16:59 <oerjan> ah 21, 31, 51, 71 are of course included
07:18:03 <oerjan> so then it's 01, 11, 41, 61, 81, 91, 09, 19, 49, 69, 89, 99
07:18:31 <Ilari> Of course one can have multiple: 194101 has 19 and 41 as subsequences.
07:19:09 <oerjan> i am just assuming we are looking at subsequences of ending subsequences
07:19:39 <Ilari> Subsequences don't have to be of adjacent digits.
07:20:11 <Ilari> E.g. 401 is prime.
07:20:57 <oerjan> should be even easier then
07:24:02 <oerjan> 01, 81, 91, 09, 49, 69, 99
07:24:18 <Ilari> And in base-2 I think similar set would be 10 and 11. Since 2 is the only prime with only one 1 in its binary form.
07:26:35 <oerjan> so naturally everything not of the form {0,8,9}+1|{0,4,6,9}+9 is now taken care of
07:27:16 -!- relet has quit (Quit: Leaving.).
07:27:43 <oerjan> (by just the primes < 100 in that list)
07:28:20 <Ilari> The page also claimed that for any language, one can only have finite set of words where no word is subsequence of other words in set.
07:29:00 <oerjan> hm that reminds me of a graph theorem
07:29:56 <Ilari> Also, "A neat consequence of this result is that, given any language L, the set of all subsequences of strings in L is regular. We can't always easily determine the regular expression or automaton for L, but we know it exists.".
07:33:52 <oerjan> http://en.wikipedia.org/wiki/Robertson%E2%80%93Seymour_theorem i think it was
07:39:15 <oerjan> Ilari: i suspect that your sequence above applies to every odd number as well
07:39:29 <oerjan> well sufficiently large
07:39:40 <oerjan> obviously 1 and 9 are excluded
07:41:31 <Ilari> Isn't there also context free grammar that describes language {0,1}* iff Goldbach conjuncture is true?
07:45:10 <oerjan> or, hm, i recall determining whether a context free grammar gives all strings in the alphabet is undecidable. so quite probably.
07:47:31 <Ilari> IIRC, that problem is co-RE-complete.
07:50:09 <Ilari> IIRC, there are also infinite number of undecidable problems of diffrent difficulty...
07:51:07 <Ilari> The last class of those being RE-complete.
07:52:04 <oerjan> http://en.wikipedia.org/wiki/Arithmetical_hierarchy#Relation_to_Turing_machines
07:53:20 -!- augur has quit (Remote host closed the connection).
07:53:30 -!- augur has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:04:07 * Sgeo wtfs at Boycott Chrome stuff
08:05:14 -!- oerjan has quit (Quit: Good night).
08:08:55 <Quadrescence> bsmntbombdood: we talked in the programming channel before. A long time ago we got into fights, and then things cooled off
08:09:13 <Quadrescence> also i remember talking about lambda abstractions
08:15:00 <Sgeo> I think I'm going to manually work out the answer to SMBC's math question
08:15:08 <Sgeo> Because I just realized it's easier than it looks
08:15:43 <Sgeo> No way I'd solve it without some sort of writing thingy though
08:24:13 <Sgeo> Anyone want to check my math?
08:24:14 <Sgeo> http://codepad.org/r3pth1N3
08:24:30 <Sgeo> My attempted answer for http://www.smbc-comics.com/index.php?db=comics&id=1952 [NSFWish]
08:27:53 <Sgeo> But I certainly would have said the first thing I noticed [It's not actually an integral like x^2 sin x] in less than that
08:27:59 <Sgeo> Maybe she'd be lenient?
08:30:23 <fizzie> The "other thingy" is most likely phi. (And you didn't say p = rho, but I guess that's obvious.) ((Don't have time to actually look at the math now.))
08:30:43 <Sgeo> I didn't realize that that was a greek letter
08:30:48 <Sgeo> I thought it was actually p
08:32:21 <fizzie> It's the radial coordinate in the (ρ, θ, φ) polar coordinates, so it has to be either ρ or r.
08:32:53 <fizzie> Or whatever the 3D variant of polar coordinates are called. Spherical coordinates?
08:33:03 <Sgeo> The thingy was more of an O and I combined
08:33:14 <Sgeo> Wait, no, that's what I called theta
08:33:17 <Sgeo> Possibly mistakenly
08:33:32 * Sgeo isn't so good with his greek letters
08:33:39 <Sgeo> At least I know pi!
08:33:48 <Sgeo> And uppercase sigma!
08:33:49 <fizzie> Phi is written both as φ and as ϕ.
08:34:04 <Sgeo> So what I called theta is really phi, then
08:34:18 <fizzie> Theta's the one that goes horizontally slashed.
08:34:37 <Sgeo> And the "other thingy" is theta, then
08:35:10 <fizzie> Curiously enough, The Standard -- http://en.wikipedia.org/wiki/ISO_31-11#Coordinate_systems -- says it's (ρ, φ, z) for cylindrical coords and (r, θ, φ) for spherical; I don't quite see why ρ → r there, since they do reuse φ.
08:38:57 <Ilari> And it isn't even for the same parameter.
08:39:58 * Sgeo failed to see it in terms of standard formulas
08:43:04 <Sgeo> I should sleep now
09:12:11 -!- tombom has joined.
09:32:44 -!- augur has quit (Remote host closed the connection).
09:32:54 -!- augur has joined.
09:44:27 -!- MigoMipo has joined.
10:23:04 -!- Phantom_Hoover has joined.
10:32:52 -!- MigoMipo has quit (Remote host closed the connection).
10:43:35 <Phantom_Hoover> Is there a limit to how big an array on the stack can be in C?
11:07:37 <Ilari> Phantom_Hoover: Depends on process stack limit.
11:08:07 <Ilari> Phantom_Hoover: On Linux, the default seems to be 8MiB for entiere stack.
11:12:21 -!- GreaseMonkey has quit (Quit: New quit message. Entering 2006 in style.).
11:16:55 <Phantom_Hoover> Wow, I just looked at Conservapedia's article on Enccyclopdia Dramatica.
11:18:43 <Phantom_Hoover> It seems to say that ED is a paragon of modern satire...
11:20:43 <Ilari> Conservapedia... One more proof of that there are hardcore lunatics out there...
11:22:45 <Phantom_Hoover> There aren't enough sane people being persecuted to make it worth watching.
11:23:44 <Ilari> Someone: Anything what Poe's law appies to is stupid.
11:26:04 <fizzie> There may be a size limit for an array in general, no matter whether it's on the stack or elsewhere; C99 guarantees that objects of size up to 65535 bytes are okay, but more than that might not.
11:26:55 <Ilari> Outside "embedded" environments, are you likely to run into that limit?
11:27:28 <fizzie> 16-bit DOS in some memory models? I guess that's pretty obsolete nowadays too.
11:27:55 <Ilari> Actually, all memory models except "huge".
11:28:25 <Ilari> 16-bit DOS memory models: tiny, small, compact, medium, large and huge.
11:29:01 -!- CakeProphet has joined.
11:29:20 <Ilari> Tiny is incedentially memory model of .com executables.
11:30:21 <Ilari> Nowadays memory model used is "flat".
11:31:18 <Ilari> Which is incidentially essentially 32 (or 64) bit version of tiny model.
11:33:48 <fizzie> I have a vague recollection that at least Visual C 6 compiled Windows executables with (reasonably) tiny stacks; at least I've seen the "why doesn't my array work?" "make it a global or malloc it instead" exchange many times, even for not-so-huge arrays.
11:34:33 <fizzie> "The default stack reservation size used by the linker is 1 MB." (random MSDN Google-hit, not sure about context)
11:34:55 <fizzie> Megabyte's perhaps not tiny, but still small-ish.
11:37:34 <fizzie> Oh, and that 65535-byte guarantee is only for hosted systems, so you can have a C99-compliant freestanding implementation that has even smaller objects.
11:38:50 <fizzie> (And a final bit of trivia; C89/C90 has a similar phrase, but there the limit is 32767 bytes.)
11:41:41 <fizzie> In general a lot of limits seem to have been just approximately doubled in the decade. #include nesting depth from 8 to 15, nested parentheses in a full expression from 32 to 63, significant characters in internal identifiers from 31 to 63, etc. (There's several more cases of *4 too.)
11:42:45 -!- yiyus has quit (Ping timeout: 276 seconds).
11:46:10 -!- yiyus has joined.
11:55:57 <Ilari> Tiny: Code and data (and stack) in the same 64k space.
12:03:07 <fizzie> It "uses" segments in the sense that there is one segment, and all the segment regs are initialized with it.
12:05:54 <fizzie> I guess that's as much segment-using that the flat memory model, though.
12:07:04 <Ilari> Flat memory model has CS and DS initialized to different values on x86 (since one can't load CS with data segment nor write to code segment).
12:07:31 <fizzie> That's true; so it uses even more segments, in fact.
12:10:52 -!- sftp has joined.
12:11:51 -!- sftp_ has quit (Ping timeout: 264 seconds).
12:19:04 <fizzie> Leisure Suit Larry? Linden Scripting Language? Logical Shift Left?
12:22:15 -!- derdon has joined.
12:24:11 <Sgeo> You should have guessed
12:24:31 <fizzie> I sort-of did. I didn't quite grasp what the question there was, though.
12:24:32 <Sgeo> 64k memory total for a script and all .. data
12:24:45 <Sgeo> Used to be 16k
12:28:17 -!- CakeProphet has quit (Ping timeout: 240 seconds).
12:29:04 * Phantom_Hoover wants to write a VM, but can't think of a good excuse.
12:29:21 <Sgeo> The reason for the change? They switched to Mono
12:29:31 <Sgeo> Although there is still support for the old VM
12:30:06 <fizzie> The built-in delays in LSL are also a nice touch.
12:30:31 -!- CakeProphet has joined.
12:31:26 <fizzie> Is there anyone advocating LSL for non-second-life general-purpose programming? Or any language reimplementations available?
12:32:37 <Sgeo> There are reimplementations, but those are just so that there are nice external editors
12:33:04 <Sgeo> But I don't think any sane person would advocate LSL for non-SL programming
12:33:35 <Sgeo> Have you seen how it deals with events?
12:34:00 <Sgeo> Or its utter lack of multidimensional lists?
12:35:09 <fizzie> (There's also no shortage for non-sane persons.)
12:35:48 -!- Warrigal has joined.
12:37:02 -!- cheater99 has quit (Ping timeout: 240 seconds).
12:37:50 -!- ais523 has joined.
12:39:09 <fizzie> Heh, the people here have made a "music to make machine learning to" Spotify playlist. I'm not quite sure what any of the contents have to do with machine learning, but...
12:40:22 -!- sftp_ has joined.
12:41:10 -!- sftp has quit (Ping timeout: 258 seconds).
12:44:23 <Phantom_Hoover> fizzie, might be good for that orphaned machine learning project I have.
12:47:49 -!- sftp has joined.
12:48:36 -!- sftp_ has quit (Ping timeout: 276 seconds).
12:49:24 <fizzie> Phantom_Hoover: Well, I make no claims that any of this music is good for anything, and the selection is pretty... eclectic (to put a positive spin on it), but http://www.cis.hut.fi/htkallas/ml.png
12:50:02 <Phantom_Hoover> Do any of them concisely describe the backpropagation of error algorithm?
12:50:16 <fizzie> Maybe if you play them backwards.
12:51:32 <fizzie> That's heavy metal songs backwards, isn't it?
12:51:49 <fizzie> Don't quote me on this, however, I'm no expert.
12:53:17 <Ilari> Then there's black metal which gives satanic messages when played forward...
12:53:26 -!- augur has quit (Ping timeout: 258 seconds).
12:54:02 -!- augur has joined.
12:55:36 <fizzie> Machinae Supremacy's Spotify biography page describes them as "SiD metal"; since all other sorts of "metal" seems to have backwards messages, I'm sure it's got something too.
13:19:05 <Sgeo> I almost wrote (user!=null)?true:false
13:19:33 -!- BeholdMyGlory has joined.
13:20:26 <Warrigal> At least you didn't write (userIsNull!=false)?true:false.
13:20:53 <Warrigal> My older brother used to write Delphi code saying "if someBool = true . . .". It was mildly annoying.
13:21:20 <ais523> comparing bools to true can be dangerous, especially in langs like C where multiple values mean "true"
13:21:25 <ais523> comparing to false is normally safe but silly
13:22:01 <Sgeo> So it's not particularly dangerous to compare with true
13:22:36 <Phantom_Hoover> Time exploded several strips ago, but no-one except the Deaths and the Mythbusters seem to have noticed.
13:25:28 -!- oklopol has joined.
13:26:42 <Sgeo> I think I'm too tired to program
13:26:59 <Sgeo> I was thinking "I need to add this function. If I don't add this function, this won't work"
13:27:04 <Sgeo> I never added the function
13:29:01 <Sgeo> But I also never added the code that was supposed to call it, so it compiled
13:32:46 <Sgeo> Well, laziness can hurt
13:33:22 <Sgeo> A while ago, I decided that I wanted this 2-dimensional list to be 1-indexed, so I put a null at all coords where one was 0
13:33:36 <Sgeo> Now, when writing the new code, I forgot
13:41:06 <Sgeo> Yes, I was awake when I should have been sleeping
13:47:58 * Sgeo vaguely wants to kill VS2010
13:50:06 <Sgeo> I went to sleep for approx. 0 seconds this past night
14:00:11 <Sgeo> A bit about Vala
14:00:28 * Sgeo can be a bit of an Internet addict sometimes
14:00:44 * Sgeo decides to reenable the midnight cutoff
14:04:41 <Sgeo> I got the notion in my head that it's a great language for writing applications
14:04:53 <Sgeo> It's compiled in a non-managed environment and isn't C++
14:09:05 <Sgeo> ...good question
14:12:38 * Sgeo wonders how many paid Vala jobs there are
14:12:43 <Sgeo> Probably close to none
14:21:43 <Sgeo> Phantom_Hoover, why not?
14:21:46 <Sgeo> Hypothetically
14:47:23 -!- sftp_ has joined.
14:48:04 -!- sftp has quit (Ping timeout: 246 seconds).
14:54:03 -!- Phantom_Hoover_ has joined.
14:57:35 -!- Phantom_Hoover has quit (Ping timeout: 265 seconds).
15:23:08 -!- boily has joined.
15:24:41 -!- BeholdMyGlory has quit (Remote host closed the connection).
15:31:28 -!- augur has quit (Ping timeout: 276 seconds).
15:31:54 -!- augur has joined.
15:33:22 -!- derdon has quit (Remote host closed the connection).
15:35:55 * Phantom_Hoover_ wants the image maps that they have in Square Root of Minus Garfield.
15:36:01 -!- Phantom_Hoover_ has changed nick to Phantom_Hoover.
15:36:45 -!- oerjan has joined.
15:37:34 -!- cpressey has joined.
15:41:19 -!- Mathnerd314 has joined.
15:46:17 <oerjan> i refuse to bend to your mind-altering powers
15:48:52 -!- MizardX has joined.
15:50:43 <oerjan> * Phantom_Hoover_ wants the image maps that they have in Square Root of Minus Garfield.
15:50:48 -!- derdon has joined.
15:50:50 <Sgeo> So, was my math decent?
15:50:57 <oerjan> maybe look in the discussion forum?
15:52:42 <Sgeo> Someone else got the answer I got :D
15:56:37 -!- BeholdMyGlory has joined.
15:57:53 <Phantom_Hoover> Random copyright thought: if you can have a number that represents a copyrighted work, you can violate copyright with it.
15:58:15 <Phantom_Hoover> You can also find a map between any two arbitrary pieces of data.
16:01:09 <cpressey> I have a Goedel encoding of the Mona Lisa right here. But I guess that's in the public domain. Or the Louvre.
16:02:28 <Phantom_Hoover> True, but you can easily make a function that maps, say, 3 to the Harry Potter series.
16:02:32 <oklopol> oerjan: may i ask you a math question in pm
16:02:51 <oklopol> the new thing is i ask before i ask
16:03:22 <Phantom_Hoover> You can't let us know what kind of sick calculations you're doing!
16:03:28 <cpressey> Unless it's a personal math question, somehow, I for one wouldn't mind it being in the channel.
16:03:33 <oerjan> a disturbing change. has Phantom_Hoover's mind control got to you too?
16:03:43 <oklopol> well sure i could but i wouldn't like it if a random person knew the answer right away
16:04:07 <oklopol> can *two-directional* AFA's be more powerful than DFA's
16:05:02 <oklopol> two-directional DFA's are easily seen to be the same as DFA's, and AFA's i know are the same as DFA's (in power i mean), but i don't know the proof of the latter (well maybe i do but i haven't given it thought) so i don't know what happens when you have both
16:06:05 <oklopol> the reason is if two-directional AFA's give you the regular languages, then i think i solved an open problem
16:06:21 <oklopol> the answer is very simple so i think the assumption that 2dAFA = DFA must be wrong
16:06:21 <oerjan> well i cannot say i've heard the problem before.
16:06:36 <oerjan> (i knew the thing about 2-directional DFAs though)
16:06:59 <oklopol> i didn't actually know it but it's sort of trivial, just remember what happens if you go left
16:07:06 <oklopol> and you can keep that info inductively
16:07:15 <oklopol> gets harder with alternation (maybe, maybe not)
16:07:44 <cpressey> Why would a two-directional AFA give you the regular languages? Maybe I don't appreciate what "two-directional" means here.
16:07:52 <oklopol> cpressey: it can just go left too
16:08:03 <oklopol> the question is not why it wouldn't give them, but why it does
16:08:32 <cpressey> well - | start by making conservative assumptions
16:08:33 <oklopol> it's just ATM without memory
16:08:45 <cpressey> s/|/I/ ... not sure how *that* happenned
16:09:44 <oerjan> i know that alternating polynomial = PSPACE, that's the essence of quantified boolean formula being PSPACE-complete
16:11:02 -!- augur has quit (Ping timeout: 240 seconds).
16:11:59 -!- augur has joined.
16:12:03 <oklopol> there are fun results linking FSA and complexity theory, but i can't start listing now because i have to eat icecream
16:12:44 <oerjan> "A basic theorem tells that any AFA is equivalent to an non-deterministic finite automaton (NFA) by performing a similar kind of powerset construction as it is used for the transformation of an NFA to a deterministic finite automaton (DFA)."
16:13:10 <oerjan> that sounds fairly simple, NFAs are the case just using existentials...
16:13:16 <cpressey> http://www.springerlink.com/content/y10575485h1uu2u6/
16:13:34 <cpressey> It does sound as if multihead or 2dir AFAs are more powerful than DFAs.
16:14:41 <cpressey> "the languages accepted by two-way alternating multihead finite automata are exactly the same languages accepted by determinstic Turing machines in polynomial time".
16:15:59 <oerjan> hm multihead means it can read at several locations simultaneously, no? that's not obviously the same power.
16:16:32 <cpressey> Agreed. I was wondering how you could reduce that to single-headed.
16:16:38 <oerjan> in fact that obviously allows it to check the (^n)^n language
16:17:17 <oerjan> which doesn't seem obvious with 1 head
16:17:23 <Phantom_Hoover> cpressey, did I ever mention that I hate you for the dead links to CET?
16:17:55 <oerjan> central european time is dead, just deal with it
16:18:31 <cpressey> Phantom_Hoover: Hating me will get them fixed, clearly
16:21:13 <cpressey> What the heck is a "nite automaton"? OH... probably google munging the word "finite" in its PS viewer
16:21:52 <Sgeo> Vala's ownership stuff gives me a headache
16:25:23 <cpressey> oklopol: Good luck on proving AFAs can accept (or not) regular languages -- it sounds like it might be an open problem in and of itself.
16:25:47 <cpressey> AFA is an acronym for "Read The Log"
16:26:30 <ais523> admittedly, I've been reading the entire conversation and I'm still unsure as to what an AFA is
16:26:44 <ais523> as in, I know the expansion of the acronym now
16:26:55 <ais523> but not what the actual automaton architecture is
16:27:00 <cpressey> Best description for me was "Like an ATM but without memory"
16:27:10 <AnMaster> ais523, I was unable to find the expansion of the acronym
16:27:26 <ais523> AnMaster: that's what logs are for
16:27:40 <AnMaster> ais523, how long do I need to go back?
16:27:41 <AnMaster> ATM? Async Transfer Mode? Automated Transaction Machine?
16:27:53 <cpressey> http://en.wikipedia.org/wiki/Alternating_Turing_machine
16:29:13 <cpressey> And when I wished oklopol good luck, I meant to say "2-way AFAs". Plain AFAs can't, they're equivalent to DFAs.
16:30:28 <AnMaster> I found in logs that the first A stands for Alternating, but now what the FA stands for. I guess it is Finite Automaton or such though
16:32:35 <cpressey> Yes. As it does in DFA and NFA.
16:32:38 -!- augur has quit (Ping timeout: 240 seconds).
16:33:04 -!- augur has joined.
16:33:55 <oerjan> oklopol: a 2-way single-head AFA can _also_ obviously check (^n)^n
16:34:15 <cpressey> Proof that AFAs equal DFAs in power: Convert AFA to NFA (the existential choices are universal choices over a universe of one possibility only.) Then convert the NFA to a DFA through the usual means. QED.
16:35:42 <cpressey> Is this that old joke about "Wait, *is* that obvious...? <<five minutes thinking>> Yes, it's obvious."
16:36:01 <oerjan> nope, it's no longer obvious
16:39:09 <cpressey> I think it's "obvious" that it can't check (^n)^n, but I can't explain how. But I think a lot of things are "obvious" in that way. If I could explain why rigorously, I'd be famous and rich.
16:39:40 <ais523> like the whole TCness of Xigxag/Dupdog?
16:39:48 <ais523> or more probable non-TCness?
16:40:02 <cpressey> Yes, I was going to say, non-TCness of Xigxag :)
16:40:05 <ais523> as in, both languages feel obviously non-TC, but it's hard to prove
16:40:13 <cpressey> Had not heard of Dupdog before.
16:40:14 <ais523> and I'd love for Xigxag to be TC
16:40:20 <ais523> cpressey: it was basically just a joke
16:40:27 <ais523> it's rather xigxag-like, though, yet more complex
16:40:40 <ais523> and also has a tendency to blow up into very long programs with only small bits changing
16:41:12 <ais523> cpressey: not really, the HW program assumes that characters are interpreted mod 257
16:41:17 <ais523> and I see no real justification for such an assumption
16:41:48 <ais523> I think it may still be possible mod 256, just a lot harder
16:43:17 -!- oerjan has quit (Quit: Later).
16:47:34 <cpressey> I keep wanting to apply information theory to these problems. I just read http://en.wikipedia.org/wiki/Algorithmic_information_theory . It didn't help.
16:49:58 <oklopol> multihead is always more powerful than nonmultihead, essentially
16:50:54 <oklopol> you can almost never reduce it to single-headed, and for deterministic machines we know DFA with k+1 heads can do languages DFA's with k heads can't
16:51:40 <oklopol> you can prove this with a straightforward diagonalization for k+2 and k by simply accepting the language of all k-head machines that don't accept themselves, you need k heads for simulating the automaton and 2 for bookkeeping
16:52:10 <cpressey> Heads (after the first one) act as a kind of storage, so that makes sense.
16:52:35 <oklopol> "<cpressey> oklopol: Good luck on proving AFAs can accept (or not) regular languages -- it sounds like it might be an open problem in and of itself." <<< well two-way, and why do you say it might be open?
16:53:03 -!- boily has quit (Quit: leaving).
16:53:54 <oklopol> "<oerjan> brain fart" <<< yes, at least the "obvious" part
16:54:16 <oklopol> 've been thinking about that exact example for quite a while, seems obvious you *can't* do it tho
16:54:32 <cpressey> oklopol: Yes, I missed two way. I saw one paper that suggested the "simplest" models that have been proved >DFA so far are multiheaded.
16:55:03 -!- BeholdMyGlory has quit (Ping timeout: 240 seconds).
16:55:04 <cpressey> I didn't see anything about 2way AFAs, either way. Not conclusive of course
16:56:17 -!- Phantom_Hoover has quit (Ping timeout: 245 seconds).
16:56:18 <oklopol> a DFA with two heads is already "trivially" stronger than one with just one head
16:56:26 <oklopol> trivially if you know where to look
16:56:37 <oklopol> or maybe it's trivially no matter what
16:57:27 <oklopol> as for markers (these little stones you can move around the tape) i don't even know if 1-marker is stronger than 0-marker, because i haven't read the article about k+1 heads > k heads so it might be a special case
16:57:50 <oklopol> i don't really see what you could do with just one marker
16:58:04 <cpressey> Someone should totally come out with an automata theory-themed board game.
16:59:05 -!- BeholdMyGlory has joined.
16:59:23 <oklopol> how would that work? i would love it in any case
17:00:54 <cpressey> I dunno -- I mean a lot of board games can probably be reduced to automata of some form...
17:02:20 <cpressey> I did wonder once if you could make a game out of NTMs -- one player tries to choose transitions that will make the machine accept, the other tries to choose transitions that will make it reject
17:03:04 <cpressey> I suspect there is a lot of opportunity for stalemate there though
17:04:31 -!- MizardX has quit (Quit: What are you sinking about?).
17:08:39 -!- augur has quit (Ping timeout: 248 seconds).
17:09:25 -!- augur has joined.
17:09:53 <AnMaster> cpressey, NTM? Not Turing Machines?
17:10:07 <cpressey> Nondeterministic Turing Machines
17:11:39 -!- tombom_ has joined.
17:13:49 <cpressey> Snakes and ladders is really just a kind of probabilistic FA -- there is no state except where your token is. The accept state is at the end of the board. (It would be more interesting if the snakes and ladders could move and/or if you had a hand of cards to play instead of rolling dice.)
17:14:52 -!- tombom has quit (Ping timeout: 258 seconds).
17:15:23 <AnMaster> cpressey, if those could move, wouldn't it be like a self modifying FA?
17:16:09 <cpressey> Correction: Proof that AFAs equal DFAs in power: Convert AFA to NFA (the universal choices are existential choices over a universe of one possibility only -- just like you'd convert a DFA to an NFA.) Then convert the NFA to a DFA through the usual means. QED.
17:16:46 <AnMaster> cpressey, wikipedia claims "As a result, the game can be represented as a state absorbing Markov chain." about that game
17:20:21 <cpressey> I guess they're thinking of the history of dice rolls as the data in the chain
17:33:18 -!- augur has quit (Ping timeout: 276 seconds).
17:33:50 -!- Gregor-W has joined.
17:37:09 -!- Mathnerd314_ has joined.
17:38:13 -!- Mathnerd314 has quit (Ping timeout: 276 seconds).
17:38:23 <cpressey> It occurs to me that very few board games have unbounded storage.
17:38:35 <cpressey> D&D is an exception, but it's not really a board game, of course.
17:38:40 -!- Mathnerd314_ has changed nick to Mathnerd314.
17:38:54 <AnMaster> hm I think one of my drive is starting to fail. Under warranty and part of a RAID 1 array so no worry really.
17:39:20 <cpressey> Also not really a board game, but closer
17:43:53 -!- relet has joined.
17:47:28 -!- Phantom_Hoover has joined.
17:50:22 <oklopol> "<cpressey> I did wonder once if you could make a game out of NTMs -- one player tries to choose transitions that will make the machine accept, the other tries to choose transitions that will make it reject" <<< NTM's are additive in the sense that you can't add anything and make them accept less stuff
17:51:00 <cpressey> Multiple transitions out of a state, but which one is taken, is chosen by the plater
17:51:59 <oklopol> "<cpressey> Correction: Proof that AFAs e..." <<< i don't get this at all, can you give me a link
17:52:25 <cpressey> oklopol: No link, I just made it up? It seems like a really easy proof
17:52:46 <oklopol> well to me it seems like nonsense
17:52:56 <oklopol> do you know what a universal state is
17:53:03 -!- ais523 has quit (Remote host closed the connection).
17:53:07 <cpressey> All paths out of it have to accept, right?
17:53:23 <oklopol> wait you did a powerset thing?
17:53:24 <cpressey> And existential is, at least one path out has to accept
17:54:31 <oklopol> if you take the powerset then yeah actually i guess it's trivial, let me think about it
17:54:40 <oklopol> *i guess it might be trivial
17:55:18 <cpressey> Yeah, putting a powerset in there would make what I was saying explicit, I think
17:56:02 <oklopol> if your state is some set S, that means all those states must accept, nondeterministic steps work normally, just take the cartesian product of guesses, universal steps, well, what you said
17:56:19 <oklopol> the crucial thing is to realize what being in a set of states means
17:57:05 <cpressey> if not obvious, then at least.... non-problematic
17:57:23 <oklopol> so umm does that give us two-way AFA's...
17:57:43 -!- Mathnerd314 has quit (Ping timeout: 248 seconds).
17:58:08 <oklopol> why would it, i don't even see how 2-way NFA is the same as 2-way DFA
17:58:14 -!- Mathnerd314 has joined.
17:58:22 <oklopol> that doesn't really matter
17:58:25 <cpressey> Then a two-way automaton on the string maps to a one-way automaton on a tree
17:58:43 <cpressey> And there is work on AFAs on trees (and graphs) -- I've seen it
17:59:33 <oklopol> but one-way automata on trees don't translate to two-way automata on strings
18:00:14 <oklopol> well anyway, is 2-way NFA the same as 2-way DFA?!?
18:00:23 <oklopol> why don't i know something this simple
18:04:20 <AnMaster> <cpressey> That's a DJTM <-- DJTM standing for?
18:04:38 <oklopol> states are powersets + for all states, information about what happens if you go, from the cell where you are, left in that state, and we can just inductively carry this info with us
18:05:57 <cpressey> Phantom_Hoover: OK, next time I'll let *you* confuse AnMaster.
18:06:32 <oklopol> if the automaton goes left, for all states S in the powerstate, it does whatever it does when going left from states S, if one accepts it accepts, if it goes right it changes S as with the usual powerset construction, and for all states it checks what they do if going left, using the info about what they do when going left from the cell to the left
18:06:44 <oklopol> many details need to be filled, but i don't see why this wouldn't work
18:06:49 <AnMaster> cpressey, oh DJTM as in DJ TM?
18:07:23 <oklopol> for AFA, the automaton can start building a huge boolean function combining the results of going left
18:07:39 <oklopol> "if these two accept and this doesn't, then do this, if on the other hand..."
18:07:45 <cpressey> The state blowup is immense, of course, but irrelevant, of course
18:08:02 <oklopol> well it's only exponential still, because you just need one piece of info for each state in addition to the powerset!
18:08:50 <oklopol> so maybe 2-way AFA is actually stronger, i'll try to come up with a counterexample tomorrow
18:09:00 <oklopol> counterexample to it being just regulars
18:09:23 <oklopol> it can build any boolean function of going-left's, but the inputs are just states...
18:09:36 <oklopol> so actually i think by having another exponential blow-up, you can do it
18:11:07 <oklopol> i'll give this a bit of thought
18:12:26 <cpressey> I'm still thinking about how the C preprocessor might be Turing-complete...
18:15:15 -!- augur has joined.
18:15:22 <Gregor-W> Didn't pikhq post a link to a Game of Life interpreter or something thereabouts in it?
18:15:29 <Gregor-W> Isn't that proof that it is, not just might be?
18:16:12 <cpressey> Gregor-W: yes, but the life playfield in that was finite.
18:16:55 <Gregor-W> Should try with something more fitting, like the lambda calculus.
18:17:59 <cpressey> I was thinking about how you could do a cyclic tag system... the hard part is extracting the tip of the string (or whatever you're using to represent the state)
18:18:28 <cpressey> The rest, namely checking what the tip is, and appending the response to the other end of the string, seems easy.
18:18:54 <cpressey> But, I don't really know, since I'm not a huge cpp jockey.
18:19:23 -!- sebbu has joined.
18:19:25 <Gregor-W> In spite of being a string-rewriting language, I don't think CPP would be great for that ...
18:25:08 <pikhq> Pity there's no string indexing in there at all.
18:26:40 <oklopol> so 2AFA -> 2NFA: you have the usual powerset constr, and for each state s you store all the sets of states S (not containing s) such that there is an accepting run from s going left if there's an accepting run from all states in S. now on each move, go through states s, if s goes left then guess one of its S-sets to replace it, and repeat this until all states go right or you loop (you just hardcode all this), then when you go right
18:27:37 <cpressey> I like how you used the word "hardcode" in a proof
18:28:11 <cpressey> That puts me in a good mood as I go for lunch :)
18:29:16 <oklopol> yeah wanted to remind the reader we're not talking about an algorithm the AFA has to somehow implement
18:37:36 <Gregor-W> Sounds hardcore to me. ... bitches.
18:38:44 -!- myndzi has quit (Ping timeout: 252 seconds).
18:43:57 -!- sshc has quit (Ping timeout: 276 seconds).
18:49:12 -!- tombom_ has quit (Ping timeout: 260 seconds).
18:53:07 -!- CakeProphet has quit (Read error: Operation timed out).
18:57:21 -!- CakeProphet has joined.
19:00:37 <cpressey> And 2NFA -> NFA -> DFA, if I'm not mistaken. I can see "why" more clearly now, but I don't have a proof. The number of "paths back" is always bounded by a function of the size of the transition table. If you get into multiheaded things, the bound depends on the size of table *and* the size of input, so you get into LBA and P territory.
19:07:15 <cpressey> And if the number of "paths back" is bounded that way, you can always do the powerset thing to the states.
19:07:47 -!- Mathnerd314_ has joined.
19:08:26 -!- Mathnerd314 has quit (Ping timeout: 252 seconds).
19:08:39 -!- Mathnerd314_ has changed nick to Mathnerd314.
19:12:32 <cpressey> "It can be shown that the Kolmogorov complexity of any string cannot be more than a few bytes larger than the length of the string itself." Interesting use of the word "byte"...
19:14:30 -!- CakeProphet has quit (Ping timeout: 276 seconds).
19:17:51 -!- sshc has joined.
19:18:14 <Gregor-W> Yeaaaah ... that should really be something more like "a small, fixed amount" .... but then again since it varies by your description language, bleh.
19:23:38 -!- BeholdMyGlory has quit (Ping timeout: 240 seconds).
19:24:35 -!- BeholdMyGlory has joined.
19:27:44 <cpressey> There *has* to be a way to prove P < NP out of this :)
19:40:54 <oklopol> "<cpressey> And 2NFA -> NFA -> DFA, if I'm not mistaken." <<< i reduced directly to NFA
19:41:14 <oklopol> i don't see how to reduce to 2NFA
19:41:40 <cpressey> "<oklopol> so 2AFA -> 2NFA: you have [...]"
19:41:46 <oklopol> i mean, so that you somehow do a simpler reduction
19:42:12 <oklopol> NFA \subset 2NFA, but i definitely meant NFA
19:42:48 <cpressey> Really, NFA < 2NFA? Damn, my intuition was wrong then.
19:43:04 <oklopol> umm a two-way NFA can just never go left
19:43:54 <oklopol> i meant that NFA's are subset of 2NFA in the very concrete sense that for each NFA there's the exact same 2NFA
19:44:16 <cpressey> The structure is a subset. Yeah.
19:44:26 <cpressey> Well, "structure"... you know what I mean
19:44:29 <oklopol> AXX will always be stronger than NXX because you can just not use universals
19:46:45 <oklopol> "<cpressey> There *has* to be a way to prove P < NP out of this :)" <<< from what, kolmo?
19:46:59 <cpressey> oklopol: Yes! I'm not entirely serious though.
19:47:33 <oklopol> P < NP is serious business though, i hear
19:48:11 <cpressey> It's a million-dollar industry, at least.
19:48:22 <cpressey> Actually, that makes it sound like such small potatoes :)
19:49:52 <pikhq> Last I checked, new potatoes (which are small) were a sizable industry. :P
19:54:35 <cpressey> Certainly in NP (assuming a reasonable # of givens I suppose), but I don't see how you could show it NP-complete offhand.
19:55:46 -!- Mathnerd314_ has joined.
19:56:22 <Phantom_Hoover> cpressey, I vaguely remember it from the Scientific American.
19:56:23 <cpressey> The wikipedia article on Sudoku is in the category "NP-complete problems", but mentions nothing about it on the page. Yay Wikipedia
19:57:24 -!- Mathnerd314 has quit (Ping timeout: 276 seconds).
19:57:26 -!- CakeProphet has joined.
19:57:28 -!- Mathnerd314_ has changed nick to Mathnerd314.
19:57:31 <Phantom_Hoover> "It's mildly misleading to say "Sudoku is NP-complete". There is an NP-complete problem related to Sudoku: given a partially completed grid, determine whether it has a solution. But this is a problem that faces the setter, rather than the solver. "
19:57:41 <cpressey> Yeah, I just found that page too.
19:58:46 -!- impomatic has joined.
20:09:19 <oklopol> same thing with minesweeper
20:09:29 <oklopol> the actual game hasn't been proven np-complete
20:09:41 <oklopol> just whether a set of shown numbers is consistent
20:22:12 <Phantom_Hoover> Co-NP means that for a problem X, X is NP, doesn't it?
20:22:54 <cpressey> What does "?X" in "?X is NP" mean?
20:24:56 <coppro> it means your client sucks
20:25:09 <coppro> get a client that understands UTF-8
20:25:29 <cpressey> It does! I can read pikhq's Japanese stuff just fine! Well, mostly.
20:27:13 <cpressey> Exactly. Anyway, let's assume ?X means "complement of X". Then yes. But that doesn't mean NP = Co-NP.
20:27:21 <pikhq> coppro: If his client sucked it'd be multiple characters.
20:27:33 <coppro> then get a better font
20:27:37 <pikhq> cpressey: You need a font with the glyph.
20:27:37 <cpressey> Usually it's a box with 4 digits in it...
20:28:04 <pikhq> Fallback font not working, I guess?
20:29:41 <cpressey> Maybe Phantom_Hoover is not actually sending UTF-8, but something that your clients understand and can turn into ¬, but Pigeon can't?
20:30:31 <pikhq> Hrm. irssi *should* be just treating this as UTF-8.
20:32:10 <fizzie> Irssi's default settings have a fallback for invalid UTF-8, unless I misremember.
20:32:24 <fizzie> /set recode_fallback and so on.
20:32:38 <fizzie> Seems to be CP1252 here, possibly for the benefit of Windows people.
20:32:43 <pikhq> Phantom_Hoover: It meants your IRC client sucks.
20:33:46 <Phantom_Hoover> That was two consecutive "not"s followed by two consecutive sterling signs.
20:33:46 <fizzie> Anyway, XChat's default I think is also character set "IRC (latin/Unicode hybrid)"
20:33:58 <coppro> yeah, that is not UTF-8
20:34:07 <coppro> solution: get a client that uses UTF-8
20:34:15 <pikhq> Phantom_Hoover: Send UTF-8.
20:34:56 <fizzie> I guess XChat's "hybrid" might mean "Use latin1 by default, except UTF-8 if the input text contains something that can't be represented as latin1", and both not and the sterling sign are in there.
20:35:29 <fizzie> You can toggle it to plain "UTF-8 (Unicode)" in the network setup screen thing.
20:35:34 <pikhq> So, XChat is maintaining the brain-damage that is CP1252?
20:35:43 <pikhq> fizzie: Is not Latin1.
20:36:01 <pikhq> fizzie: CP1252 is a superset of Latin1.
20:36:15 <fizzie> Yes, I know. But both those characters he sent are in latin1.
20:39:27 -!- sebbu has quit (Ping timeout: 264 seconds).
20:40:11 <coppro> I think this wins the award for "worst code I've ever seen in ##C++", and that's saying somehting: http://pastebin.com/V3jWjXtg
20:40:39 <fizzie> That looked like 0xac 0xac 0xa3 0xa3 in my logs; that'd be either latin1 or the windowsy thing.
20:41:15 <Sgeo> Even I'm not that unlazy enough.
20:41:46 <fizzie> (XChat's network settings probably won't take effect before reconnecting with the edited configuration.)
20:41:50 <Sgeo> How... bought in do you have to be to "Work harder, not smarter" to even think of that
20:41:52 <cpressey> Wow, it's the superset construction applied to a C++ program!
20:42:12 <pikhq> coppro: That's... stunningly stupid.
20:42:58 <fizzie> That "one-case switch" pattern is also pretty nice.
20:42:59 <oklopol> "<cpressey> Does Co-NP = NP?" <<< if P = NP then yes, if P != NP then i don't know if that implies co-np and np are different as well
20:42:59 <pikhq> ARRAYS MAN, ARRAYS!
20:44:19 <pikhq> Kinda impressive how it doesn't have... Any abstraction at all.
20:44:29 <oklopol> "<Phantom_Hoover> Co-NP means that for a problem X, X is NP, doesn't it?" <<< yes it's just the set theoretic complements of sets in NP, although it's also characterized by tm's that have universal states (just universal ones, no existential ones)
20:44:56 <pikhq> Also: God, I feel the urge to write a similar program just so I stop crying.
20:44:58 <coppro> well, it's actually a C program
20:44:58 <fizzie> pikhq: On the other hand, it allows spreading your air craft carrier squares all over the map. You can't do that in inferior battleship implementations.
20:45:04 <coppro> I'm surprised he's still in ##C
20:45:17 <fizzie> Sorry, "air craft carier".
20:45:20 <coppro> I would have expected them to have kickbanned him by now
20:45:57 <pikhq> Hmm. Demands Curses.
20:46:35 <oklopol> Phantom_Hoover: how does it?
20:46:38 <Phantom_Hoover> Surely a problem and its complement can each be deduced from the other?
20:47:09 <oklopol> maybe, humankind just doesn't know how.
20:47:10 <coppro> man, this guy's an idiot
20:47:16 <coppro> I wish he was just a troll
20:47:53 -!- tombom_ has joined.
20:47:59 <fizzie> Hey, an appropriate interrobang.
20:48:15 <cpressey> And my IRC client rendered it correctly, too. Sweet!
20:48:37 <oklopol> Phantom_Hoover: a nondeterministic TM makes guesses, and accepts if one guess works; you can't solve the complement problem because you need to check that *not one* of the choices works
20:48:43 <oklopol> and nondeterminism doesn't let you do that
20:49:24 <Phantom_Hoover> But surely you can solve X by solving X and inverting the answer?
20:49:42 <oklopol> sure, but that won't be an algorithm a NTM can run
20:49:54 <oklopol> you will have to call an NTM program from a TM
20:49:58 <oklopol> and then invert its answer
20:50:37 <oklopol> in fact P^NP is complementable for this reason (polynomial time with oracle that does nondeterministic polynomial queries in one step)
20:51:25 <coppro> Sgeo: he's smarter than you because he's in college.
20:51:31 <oklopol> or, you can call it from a nondeterministic program and then invert the answer
20:52:12 <oklopol> this may all be a bit confusing still, you should just read the formal definitions reeeally well.
20:54:38 <cpressey> Phantom_Hoover: Compare: boolean satisfiability (is there an assignment of varibles that makes this statement true) to tautology (do *all* assignments of variables make this statement true)
20:54:47 <cpressey> sat is in NP, but taut is in co-NP
20:55:15 <oklopol> what was that an answer to?
20:56:25 <fizzie> There's also that other way to define NP: the decision problems for which you can verify the proof for a "yes" answer in polynomial time with a deterministic TM; and for co-NP, the same but verifiable proofs for the "no" answers. Though perhaps I shouldn't be trying to add to the confusion any more.
20:56:53 <oklopol> nothing wrong with adding to confusing
20:56:56 <oklopol> language L is in NP iff there is a nondeterministic turing machine that accepts exactly the words in L, and always runs in polynomial time. a nondeterministic turing machine is a turing machine that can have multiple next steps from each configuration, and it accepts iff there is one sequence of guesses that leads to acceptance
20:58:08 <cpressey> Complete guess: SAT with monotonic sentences (no NOT) is in P. Maybe even a greedy algorithm
20:59:04 <cpressey> Is monotonic the word? AND and OR, but no NOT
20:59:05 <oklopol> and what do you mean complete guess
20:59:22 <cpressey> I mean I have no proof, going entirely on intuition and similar sounding problems
20:59:27 <oklopol> oh okay monotonic is a good words
20:59:43 <oklopol> oh complete guess as in info from ass
20:59:51 <cpressey> "monotonic circuits" come up sometimes in circuit complexity
20:59:53 <Gregor-W> So anybody written an interpreter in CPP yet? :P
20:59:53 <oklopol> i thought complete as in np complete ...
21:01:13 <oklopol> assign all variables to true
21:01:26 <oklopol> you can prove by induction that this algorithm eventually finds the answer
21:01:51 <oklopol> you could call it a greedy algorithm
21:02:43 <oklopol> maybe every set of boolean functions is either trivial or np-complete
21:04:14 <oklopol> maybe that's trivial if you know your boolean algebras, what kinds of stuff can a set of functions generate if it doesn't generate all boolean functions
21:05:01 <oklopol> also what does trivial or NP-complete even mean
21:05:14 <oklopol> that there's a linear time algo?
21:06:38 <oklopol> if every 3-head NFA M can be replaced by a k-head DFA for some k that depends on M, then the nondeterministic context-sensitive languages are the same as deterministic context-sensitive languages
21:12:42 <AnMaster> oklopol, isn't NP-complete pretty well defined
21:16:41 <fizzie> 1. (4) fiddling, footling, lilliputian, little, niggling, piddling, piffling, petty, picayune, trivial -- ((informal) small and of little importance; "a fiddling sum of money"; "a footling gesture"; "our worries are lilliputian compared with those of countries that are at war"; "a little (or small) matter"; "a dispute over niggling details"; "limited to petty enterprises"; "piffling efforts"; "giving a police officer a free meal may be against the law, but it s
21:16:41 <fizzie> eems to be a picayune infraction")
21:19:03 <oklopol> AnMaster: yes, "trivial or NP-complete" is only informal because "trivial" is.
21:19:26 <oklopol> in this case trivial couldn't really mean "I can't be bothered doing it"
21:19:36 <oklopol> because it would be the algorithm that does it
21:23:05 -!- MigoMipo has joined.
21:30:26 * Sgeo holds a preemptive memorial for Phantom_Hoover
21:31:10 <Phantom_Hoover> I have better things to do, but they're not as immediately interesting.
21:32:21 <fizzie> oklopol: So "I can't be bothered doing an algorithm to do it" for trivial, then?
21:54:53 <fungot> CakeProphet: you don't really need more ram please donate! cool
21:55:57 <CakeProphet> though, fags don't really have feet. They're mostly for getting cancer and/or burning witches(?)
21:57:50 <oklopol> fizzie: something like that
21:59:52 <CakeProphet> vowels do not correspond to more possible words
22:00:28 <CakeProphet> most words begin with consonants, but only certain ones. Feel free to hack the source of simpleacro to add weighting. oerjan made a weighting algorithm but didn't produce a full list of weighted words
22:00:59 <pikhq> Quebecois Communists Wantonly Attack My Not-Zero'd Zabutons
22:01:57 <pikhq> Phantom_Hoover: When sitting in seiza (kneeling before a table), one sits upon a zabuton.
22:02:56 <pikhq> Pied Zen Geek Xmas Viewed Hong Kong
22:04:17 <pikhq> Phantom_Hoover: BTW, it's a 'sitting futon'.
22:04:20 <Phantom_Hoover> If I were doing any kind of intelligent mathematics in school this year I'd bring them up.
22:05:47 <CakeProphet> ...you guys know way too many obscure words.
22:06:22 <CakeProphet> you know I was thinking of taking the challenge of writing a poem-friendly programming language
22:06:23 <Sgeo> Vala can be so...
22:06:39 <Sgeo> Sometimes I'll learn something about it that's great, sometimes something that's horrible
22:06:58 <CakeProphet> you could try to give meaning to syllables, but that might constrain your poem. Basically I need to find an acceptable set of constraints for a given input, that would make writing poetry fun.
22:07:04 <Phantom_Hoover> CakeProphet, I made those set names up. *coughaskmewhattheyare*
22:07:05 <cpressey> Sgeo: Wondering if I should bother looking at it
22:07:54 <CakeProphet> I think basing instructions off of starting letter would be an acceptable constraint.
22:07:59 <cpressey> I rarely get past "looking at it" for most "alternative mainstream" languages
22:08:13 <CakeProphet> another possibility is to have a number of different selection mechanisms... that you can set with pragmas at the top of the poem.
22:08:40 <CakeProphet> so the constraint is dependent on the kind of poem you want to write. Could be syllable-based, rhyme-based, letter-based, word-length-based, etc
22:08:48 <fizzie> There's the good old Shakespeare for that.
22:08:50 <cpressey> CakeProphet: Tracking measure (syllables) would be appropriate, but hard
22:09:25 <cpressey> Or cheat by insisting it be notated
22:09:44 <CakeProphet> rhyme could be done via database. bug would be possible though, so any kind of interpreter should have good debuggin output. Like showing what rhymes with what, etc.
22:09:52 <CakeProphet> in case the database doesn't match something it technically should.
22:09:54 <Sgeo> Vala has no bounds checking
22:10:01 <Sgeo> erm, automatic bound checking, I guess
22:10:57 <pikhq> CakeProphet: Mora-based?
22:11:02 <Sgeo> frederik> Sgeo_: use an ArrayList
22:11:04 <fizzie> (Okay, so Shakespeare is play- and not poem-oriented.)
22:11:22 <cpressey> http://www.rhymezone.com/rhyme-help.html -- you could use this as a web service to find rhymes
22:11:43 <CakeProphet> yeah. I'd rather have an on-site database, but I have a feeling those are all proprietary/locked-away
22:12:08 <pikhq> CakeProphet: Morae are a basic unit of sound; a syllable is generally composed of one or two morae.
22:12:10 <CakeProphet> do dictionary databases have data on syllables? they should.
22:12:29 -!- impomatic has quit (Quit: ChatZilla 0.9.86 [Firefox 3.5.11/20100701023340]).
22:12:30 <fizzie> There are freely available reasonably comprehensive English pronunciation dictionaries, you could base heuristics on those.
22:12:31 <CakeProphet> pikhq: aha. that could be interesting. Again, I need databases because I am surely not going to compile that information myself.
22:12:41 <pikhq> CakeProphet: Trivial in Japanese. :P
22:13:37 <Phantom_Hoover> Why not just fetch the IPA and match the last few phonemes?
22:15:02 <CakeProphet> fetch implies net dependence. I suppose you could compile with that information and then have it local for the program in question?
22:15:27 <fizzie> BEEP has about 250k English word in it.
22:15:40 <CakeProphet> I've noticed rhymezone is kind of subpar at finding rhymes. So I'd rather use a better service or do it myself via IPA
22:15:57 <fizzie> ("British English example pronounciation" dictionary, that is.)
22:16:06 <CakeProphet> Phantom_Hoover: for the words in question. the words in the poem are static information.
22:16:40 <Phantom_Hoover> Well, you'd need the IPA for any words that would need rhyme-matching.
22:17:20 <pikhq> Phantom_Hoover: OED should have the IPA for all of English.
22:17:47 <augur> Phantom_Hoover: yes?
22:17:59 <Phantom_Hoover> To what extent does the OED/whatever give information on stresses?
22:18:20 <fizzie> OED is commercial, though. You can find BEEP at http://svr-www.eng.cam.ac.uk/~ajr/wsjcam0/node8.html -- it's not exactly IPA, but phonemes anyway.
22:19:01 <fizzie> (I think there was some primary-stress markers in it too.)
22:19:30 <cpressey> but you can grep for "IPA: /.*/" and sometimes get the pronunciation
22:20:04 <fizzie> There's also cmudict: http://www.speech.cs.cmu.edu/cgi-bin/cmudict
22:20:12 <fizzie> It has some stress info in it.
22:20:31 <cpressey> actually wiktionary seems passable based on some random anecdotal queries
22:20:55 <fizzie> 127k words in cmudict 0.6, maybe more in 0.7.
22:21:49 <Phantom_Hoover> Yes, but for rhyme matching I think we'll need to know where the stress falls.
22:21:51 <fizzie> The digits are stress-markers, ISTR.
22:22:30 * CakeProphet will need to go through this conversation in logs for when he actually goes about this project.
22:22:45 <CakeProphet> I write poems, so I am very much interested in writing poems that compute. I actually write poems in Python and Perl sometimes.
22:22:55 <fizzie> 0 = no stress, 1 = primary stress, 2 = secondary stress. I'm sure they have better descriptions of their data there too.
22:23:21 <cpressey> i guess you'd still need a heuristic if you wanted to extract syllable information for measure from that
22:23:48 <cpressey> shouldnt be a terribly complex one, though
22:24:09 <fizzie> I've seen some syllable-level metadata somewhere, but I don't remember where, and it probably wasn't a public source.
22:24:50 <fizzie> It also might've been for Finnish morphological analysis, which would be less than helpful.
22:25:01 <cpressey> (AW0 T) (R EY1 JH) (AH0 S) versus (AW0 T) (R EY1) (JH AH0 S)
22:25:31 <cpressey> For rhyming, the eager variant would probably be better anyway
22:25:50 <fizzie> The stress numbers were from CMU's description, but I think BEEP had something very similar.
22:26:11 <fizzie> CMU might be better documented; the phoneme set is a standard one etc.
22:26:39 -!- MigoMipo has quit (Quit: Page closed).
22:26:39 <fizzie> Or at least better documented on the website; the BEEP tarball has some docs too.
22:26:42 <cpressey> Outrageous, contagious. That's precisely what this phage is.
22:30:14 -!- Gregor-W has quit (Ping timeout: 252 seconds).
22:30:51 <fizzie> There are also more or less simple rulesets for English hyphenation. They're not exactly exact, but could help in separating syllables.
22:32:02 <fizzie> Remember to build algorithms to rank the poems on how meaningful and moving they are; you'll put literary critics out of work.
22:32:28 <fizzie> Then they can do something useful with their lives.</burn>
22:32:29 <CakeProphet> Phantom_Hoover: haven't even considered that yet. Still working on the syntatical structures.
22:34:11 <coppro> hahaha gcc's having licensing problems
22:34:27 <coppro> they can't legally copy examples from source into documentation
22:38:55 -!- GreaseMonkey has joined.
22:45:59 <Phantom_Hoover> Oh. BEEP is British English, which I assume isn't your accent.
22:46:13 -!- aliseiphone has joined.
22:46:24 <aliseiphone> Bjorn stood in accusation against the masked blind man.
22:46:35 -!- oerjan has joined.
22:47:29 <Sgeo> errordomain IRCError { ALISE, SGEO, PHANTOM_HOOVER }
22:47:48 <oerjan> <CakeProphet> most words begin with consonants, but only certain ones. Feel free to hack the source of simpleacro to add weighting. oerjan made a weighting algorithm but didn't produce a full list of weighted words
22:48:30 <oerjan> btw it could be changed to use a Map instead of a list, if you have so many things to choose from that you want binary search
22:49:16 <oerjan> actually given the probabilistic nature, you'd probably want the tree to be balanced not by letters, but by probability
22:49:59 <oerjan> (so left and right subtrees have approx same probability rather than number of letters)
22:50:22 <oerjan> would probably be a bit long for an EgoBot hack though :D
22:52:25 <oerjan> 08:56:18 <oklopol> a DFA with two heads is already "trivially" stronger than one with just one head
22:52:28 <oerjan> 08:56:26 <oklopol> trivially if you know where to look
22:52:43 -!- tombom__ has joined.
22:53:01 <oerjan> well yeah that was what (^n)^n does
22:54:30 -!- tombom_ has quit (Ping timeout: 252 seconds).
22:55:08 <AnMaster> I wonder how hard it would be to add scroll wheel support to it?
22:55:26 <oerjan> <oklopol> multihead is always more powerful than nonmultihead, essentially
22:55:47 <AnMaster> oerjan, talking about monitor setup?
22:56:35 <oerjan> well for DFAs. for higher classes not so much (once you have logspace memory you can do pointers and all the seeking you want)
22:56:45 <oerjan> it can reduce time though.
22:58:33 <AnMaster> oerjan, doesn't an UTM have just one head?
22:58:52 <oerjan> AnMaster: this is a generalization
22:59:24 <oerjan> i recently read somewhere (perhaps the Godel's Lost Letter archive) that for NP, 2 tapes can simulate any higher number with linear overhead
23:01:52 <oerjan> (basically you use the power of the nondeterministic TM to _guess_ what the simulated TM will do, write the entire guessed history on one tape and then afterwards use the other tape to go through each simulated tape in turn, checking that the guess is consistent)
23:04:58 -!- Gregor-W has joined.
23:05:10 <Gregor-W> <cpressey> Outrageous, contagious. That's precisely what this phage is.
23:05:16 <Gregor-W> I give you three props for that.
23:05:44 <Gregor-W> This first prop is a lamp. The second prop is a stool, and the third prop is an umbrella.
23:07:04 <oerjan> not sure how much weaker extra heads are than extra tapes
23:07:35 <oerjan> hm or are they obviously weaker at all...
23:07:51 <oerjan> (strictly weaker, that is)
23:07:57 <Gregor-W> Infinite hotel rooms. They're not weaker.
23:08:41 <Gregor-W> I love using "infinite hotel rooms" as an argument :P
23:09:29 <oerjan> the amazing thing is that i think i got what you meant :D
23:09:43 <Gregor-W> I forget what the actual name of the relevant theory is :P
23:09:47 <Gregor-W> But hey! Infinite hotel rooms!
23:10:32 <oerjan> (for n tapes, you simulate them with n heads by interleaving the tapes in the single one)
23:11:07 -!- tombom__ has quit (Quit: Leaving).
23:11:46 <oerjan> Gregor-W: well infinite hotel rooms is usually about set theory cardinals
23:12:46 <Gregor-W> Sure sure, but it's all infinities :P
23:13:45 <Slereah> Infinities have different properties, though
23:14:14 <oerjan> Gregor-W: also when i say weaker/stronger here, i mean within the same O() complexity class, so just placing all the tapes inside one is _not_ a proof - but the heads allow you to remove the extra overhead except for a constant n
23:15:08 <Phantom_Hoover> aliseiphone, there *aren't* any theorems about infinite hotels.
23:17:11 <Gregor-W> oerjan: Right, the complexity class is what breaks it, but it still proves it if we're talking about simulating a 2-tape on a 2-head, just not vice-versa.
23:17:23 <Gregor-W> oerjan: Since you can trivially show that it's just going to multiply the time by a constant 2.
23:18:01 <cpressey> oerjan: With NP you can DO MAGIC
23:18:04 <Phantom_Hoover> Looking at that Battleships code has turned sizeable parts of my brain into mush.
23:18:17 <Gregor-W> Phantom_Hoover: 's OK, you didn't need those parts anyway.
23:18:27 <Gregor-W> Sgeo: So where did that come from, I missed it X-P
23:18:36 <aliseiphone> Phantom_Hoover: Can you paste it elsewhere? It isn't loading for me.
23:18:44 <Sgeo> Gregor-W, Phantom_Hoover
23:18:50 * cpressey tries to find a good rhyme for "infinite hotel rooms"
23:18:56 <Gregor-W> Phantom_Hoover: So where did that come from, I missed it X-P
23:19:10 <Gregor-W> cpressey: Infinite maids' brooms
23:19:52 <cpressey> A sound of startlement and such
23:20:06 <Gregor-W> ... not one used by humans, but OK.
23:20:49 <Phantom_Hoover> http://pastebin.com/V3jWjXtg doesn't work for you, aliseiphone?
23:21:10 <aliseiphone> oerjan: http://esoteric.voxelperfect.net/w/index.php?title=You_are_Reading_the_Name_of_this_Esolang&curid=2331&diff=18244&oldid=10210
23:22:25 <Phantom_Hoover> I can't really copy and paste directly, because that thing is probably 300K.
23:22:26 <cpressey> I'm so honoured the spammers chose an article on *my* language to deface.
23:23:06 -!- augur has quit (Ping timeout: 252 seconds).
23:23:06 <Gregor-W> Phantom_Hoover: I saw the link, I'm just wondering where it came from.
23:23:37 <Phantom_Hoover> Gregor-W, Sgeo mentioned someone who was either a troll or an idiot on ##C++.
23:24:18 <Sgeo> Phantom_Hoover, you're the one who mentioned it
23:24:29 -!- GreaseMonkey has quit (Quit: New quit message. Entering 2006 in style.).
23:24:39 <Gregor-W> http://googleads.g.doubleclick.net/pagead/imgad?id=CPDL4O3w3qyrngEQ2AUYTzIIBjvYkGk7we0 Why is this woman looking at a reversed computer screen with totally pointless language and technology names written all over it ...
23:24:46 <Sgeo> Oh, you mean to Gregor-W?
23:25:01 * Sgeo is slowly going insane
23:25:08 <oerjan> aliseiphone: i assume you have trouble editing yourself, but in case that's not why you're asking i should point out i am _not_ a wiki administrator, so i can do no more than an ordinary user
23:25:10 <coppro> Phantom_Hoover: I pasted it originally, yes
23:25:30 <cpressey> Gregor-W: It's a diabolical mind-control thing. She's actually strapped in a chair...
23:25:31 <coppro> Gregor-W: Someone wanted help with it in ##c++
23:25:34 <Gregor-W> I just have to know what subhuman monster initiated this.
23:25:42 <Gregor-W> coppro: I assume he got kickbanned :P
23:26:08 <oerjan> aliseiphone: um someone else got their edit in before mine, even
23:26:13 <coppro> he wasn't even kbed from ##c, which is bizzarre
23:26:15 <Phantom_Hoover> We all had a go at him, and he sodded off after a while.
23:26:28 <coppro> ##c++ usually doesn't have ops around
23:26:53 <oerjan> the wiki doesn't report an edit conflict if you are trying to do the exact same edit as someone else...
23:27:08 <oerjan> (i guess that makes sense)
23:27:12 <Phantom_Hoover> My money's still on "troll", or possibly "lying egomaniac".
23:27:27 <Gregor-W> Phantom_Hoover: It's a lot of effort just for trolling ...
23:27:53 <cpressey> My money is on "very much newbie programmer", maybe "newbie thinker".
23:28:12 <oerjan> Phantom_Hoover: oh it was you?
23:28:13 <Phantom_Hoover> OTOH, the code is all so similar that anyone who could actually program could have used an automatic generator.
23:29:08 <Phantom_Hoover> aliseiphone, I have a wgotten version which I could email, but I don't want to crash Firefox again.
23:29:15 <Gregor-W> ... oh my god ... the only loop in the whole thing is one for loop restricted to 64 iterations ...
23:30:01 <cpressey> money definitely on "new at using brain"
23:30:31 <cpressey> Phantom_Hoover: ah, i haven't read his msgs
23:30:45 <cpressey> still, they go together quite often, I find
23:30:47 <Gregor-W> cpressey: You mean "incapable of using brain"
23:31:11 <oerjan> Gregor-W: um is your nose talking about the wiki spam editing?
23:34:19 <Phantom_Hoover> aliseiphone, that is at least 80% of the code, with slightly different numbers.
23:34:54 <cpressey> I love the one-case-switch-as-if-without-else idiom.
23:35:09 <Gregor-W> cpressey: Yes. Not somebody who knows about the == operator :P
23:35:11 <oerjan> <cpressey> I did wonder once if you could make a game out of NTMs -- one player tries to choose transitions that will make the machine accept, the other tries to choose transitions that will make it reject
23:35:15 <Phantom_Hoover> Actually, can I post the other thing it's almost entirely made of.
23:35:23 <oerjan> that would seem to fit better with an ATM actually...
23:35:31 <Gregor-W> OMG that's the best game idea ever.
23:35:47 <Phantom_Hoover> While using arrays for strings, but not realising such.
23:35:51 <Gregor-W> Make it a card game, sell it for billions.
23:36:08 <oerjan> (ATMs are afaiu essentially the Minimax algorithm turned into a TM concept)
23:36:09 <Phantom_Hoover> Best part: he claimed to have a master's in CS and 3 years of C++ experience.
23:36:47 <Gregor-W> Phantom_Hoover: My mind. It is boggled.
23:37:41 <Phantom_Hoover> I want to print it out at some point and hang it on a wall.
23:37:47 <Gregor-W> CakeProphet: Pure, unadulterated fail.
23:38:18 <CakeProphet> is there a paste I can see of the rest of this code?
23:38:30 <Gregor-W> CakeProphet: http://pastebin.com/V3jWjXtg
23:38:31 <Sgeo> I now feel more comfortable with the idea of others seeing my code.
23:38:42 <Sgeo> Because no matter how bad it is, it is not as bad as that.
23:39:38 <Phantom_Hoover> Quite what he learned C++ from is one of those things I want to know, but will probably regret finding the answer.
23:40:04 <Sgeo> He claimed that his professor liked his style
23:40:19 <Phantom_Hoover> And that he was the only person to get an A in his year.
23:40:48 <Gregor-W> He never claimed that the professor wasn't piss-drunk 24 hours a day, did he?
23:42:00 <oerjan> cpressey: or to put it differently, if an alternating turing machine is played as a game where one player does all the universal transitions and tries to make it reject, and the other player does all the existensial transitions and tries to make it accept, then perfect play gives exactly the same result as the usual ATM interpretation
23:42:28 <cpressey> Phantom_Hoover: Well, once you've lied once, the cost of additional lies goes right down
23:42:40 <CakeProphet> nevermind. I've seen worse code in an /actual/ piece of software
23:43:12 <Phantom_Hoover> I saw some terrible code by my fellow Computing students, but that's incidental.
23:43:34 <CakeProphet> hmmm.... I'll need to dig around. It's thousands of lines. I want the best example of why it is bad code.
23:43:55 <CakeProphet> the main flaw it commits is the lack of abstraction. Rather than, you know, using functions... they decide instead to use copy and paste for everything.
23:44:00 <Gregor-W> CakeProphet: If it takes that much digging, then it's not as bad :P
23:44:12 <CakeProphet> Gregor-W: I mean, what it does is /functional/. but it's terrible design.
23:44:20 <Gregor-W> WHICH REMINDS ME hey guys where's my lambda calculus in CPP?
23:44:41 <Gregor-W> Anything Turing-complete in CPP.
23:44:46 <cpressey> I've heard stories of similarly bad code, but never seen it. Like, where the author used a loop every time he accessed an element of an array -- even if it was a single element.
23:44:53 -!- aliseiphone has quit (Quit: Get Colloquy for iPhone! http://mobile.colloquy.info).
23:45:08 <cpressey> And then the planes shall land with supplies!
23:45:25 <Phantom_Hoover> Somehow it took some people in my class months to write an input validation program.
23:45:50 <Phantom_Hoover> Although that class in general was so idiotic I'm glad I dropped it.
23:46:08 <CakeProphet> yeah my programming class peers have been... dismal at programming
23:46:28 <Phantom_Hoover> THEY HAD FIREFOX AND SAFARI INSTALLED, BUT WHICH ONE WERE WE TOLD TO USE?
23:46:41 <CakeProphet> so I'm not complaining. I encourage them to be stupidity so I can show them how it's done.
23:47:42 <Phantom_Hoover> I.e. it would tell you if you piped /dev/random into <script> tags.
23:48:22 <AnMaster> <Phantom_Hoover> I want to print it out at some point and hang it on a wall. <--- where is it from? daily wtf?
23:50:22 <oerjan> maybe he is using simplicity in the algebraic sense :D
23:51:04 <oerjan> (THIS CODE IS ISOMORPHIC TO THE MONSTER GROUP)
23:51:04 <Phantom_Hoover> Somehow he knew that the compiled code was as efficient whether he used a 10 element array or 10 variables.
23:52:17 <AnMaster> Phantom_Hoover, it seems possible to put a non-continuous ship on there
23:52:25 <AnMaster> since it asks for all positions
23:53:35 <Gregor-W> Is ##c++ logged? This needs to be maintained for infamy sake :P
23:53:49 <AnMaster> printf("Player 2 is the winner!!!\nType somthing to quit: ");
23:55:52 <Gregor-W> The truth is, when you play Battleship using this software, no one wins.
23:55:53 <Phantom_Hoover> When has Player 1 ever one when you've played Battleships?
23:57:02 <oerjan> <cpressey> The wikipedia article on Sudoku is in the category "NP-complete problems", but mentions nothing about it on the page. Yay Wikipedia
23:57:05 <Gregor-W> Phantom_Hoover: Your compiler would never forgive you.
23:57:13 <oerjan> hm i'm pretty sure i edited the NP part of that once
23:57:51 <Phantom_Hoover> Although that program is canonical C in its entirety, AFAIK.
23:59:08 <oerjan> cpressey: oh they've split things out into a Mathematics of Sudoku article