←2010-06-24 2010-06-25 2010-06-26→ ↑2010 ↑all
00:01:55 <ehirdiphone> Good night
00:02:14 -!- ehirdiphone has quit (Quit: Get Colloquy for iPhone! http://mobile.colloquy.info).
00:09:21 <CakeProphet> the implications are huge
00:09:45 <CakeProphet> think of all the time you'll save hacking together adhoc computation systems... and the efficiency boost from all that compile-time computation!
00:11:59 -!- GreaseMonkey has quit (Quit: I'm using NO SCRIPT WHATSOEVER - Download it at file:///dev/null).
00:12:35 <Sgeo_> Every decent compiler does compile-time computation
00:12:48 <Sgeo_> Recomputing, say, 60 * 5 each execution is idiotic
00:13:01 <Sgeo_> Note that I do not consider the LSL compiler to be "decent"
00:13:26 <pikhq> It's software from Linden Labs. "Decent" is not something they do.
00:13:28 <ais523> Sgeo_: what if the definitions of 60 and 5 change? or *?
00:13:32 <ais523> I have to go home, anyway
00:13:35 -!- ais523 has quit (Remote host closed the connection).
00:13:47 <pikhq> Also: hi people. I can has had slept now
00:25:04 -!- jix has joined.
00:32:27 <CakeProphet> In a note posted on the Free Software Foundation's news website in June 2009, Richard Stallman warned that he believes "Microsoft is probably planning to force all free C# implementations underground some day using software patents" and recommended that developers avoid taking what he described as the "gratuitous risk" associated with "depend[ing] on the free C# implementations", including Mono
00:33:19 <pikhq> RMS warns about dangers of software patents. In other news, Linus Torvalds continues to maintain Linux.
00:33:51 <CakeProphet> haha.
00:34:33 <CakeProphet> Subsequently, the Free Software Foundation reiterated its warnings,[36] claiming that the extension of Microsoft Community Promise to the C# and the CLI ECMA specifications[37] would not prevent Microsoft from harming open source implementations of C#, because many specific Windows libraries included with .NET or Mono were not covered by this promise, examples include regular expressions and XML which the FSF considers now dangero
00:34:43 <CakeProphet> hahaha... I can see XML being dangerous. but regular expressions? Come on.
00:36:32 <CakeProphet> These warnings, however, were countered by Miguel de Icaza on the GNOME Foundation mailing-list[39], saying That article now leads us to believe that there is something "magical" about the way that Microsoft implements regular expressions or how they implemented XSLT and XPath. If you cant find prior art for that, you probably should leave the software industry while you are still ahead.
00:36:44 <CakeProphet> I bet there /is/ something magical about the way Microsoft implements regex.
00:36:47 <CakeProphet> very magical.
00:39:05 <CakeProphet> has anyone used F#. I kind of looks awful to me but I don't much about it.
00:39:09 <CakeProphet> *it
00:39:10 -!- coppro has quit (Remote host closed the connection).
00:40:38 -!- Rafajafar has joined.
00:41:34 <Rafajafar> I've been directed here from #math
00:41:41 <oerjan> ah
00:41:57 <Rafajafar> they said you guys would understand more of what I'm saying, that you're all really bright, and very snarky :-)
00:42:23 <oerjan> snark? here? what lying scum told you that?
00:42:31 <Rafajafar> is there anyone here willing to discuss something I figured out about the nature of the Nth prime problem?
00:42:41 <oerjan> oh wait. someone hide the topic, QUICKLY
00:42:54 <oerjan> _possibly_
00:43:01 <Rafajafar> I basically have shown that the problem is essentially a "circular square"
00:43:07 <oerjan> what's the Nth prime problem...
00:43:18 <Rafajafar> that its very definition undermines its existence
00:43:29 <Rafajafar> wonderful! Allow me to explain that problem
00:43:57 <Rafajafar> the Nth prime problem is as such... is there a formula which will map all natural numbers to a corresponding prime
00:43:58 <oerjan> hm that reminds me of something i read on a blog just the other day
00:44:09 <oerjan> in order?
00:44:19 <Rafajafar> in other words, is there a function Mu(n) where n is a naturual number and its out put is the Nth prime in the number line
00:44:26 <Rafajafar> yes in order
00:44:48 <oerjan> ah it was http://scienceblogs.com/goodmath/
00:44:54 <oerjan> (ulam spiral)
00:45:17 <pikhq> I am pretty darned certain that there exists such a function, yes.
00:45:23 <Rafajafar> it's one of the oldest as most difficult unsolved problems in mathematics
00:45:26 <Rafajafar> well I was too
00:45:30 <Rafajafar> for 8 years I looked of it
00:45:39 <Rafajafar> I looked *for it
00:45:54 <oerjan> there definitely is a _function_. whether there's any formula/algorithm for quickly calculating it, is a different matter.
00:46:11 <Rafajafar> why do you say there definitely is a function
00:46:21 <Rafajafar> b/c there isnt at this time
00:46:22 <pikhq> Just a sec while I write it in Haskell.
00:46:29 <Rafajafar> that's not the Nth prime formula
00:46:42 <Rafajafar> you're talking about the sieve solutions
00:46:46 <Rafajafar> that's not the same
00:47:04 <Rafajafar> that is to find all primes under X, then you build a list of primes
00:47:15 <Rafajafar> then pick the Nth prime from that list
00:47:35 <Rafajafar> the Nth prime formula is you're given the number n and it returns the corresponding prime
00:48:06 <oerjan> Rafajafar: yes. that is a completely permissible function _and_ algorithm for computing that function, by all relevant mathematical definitions. it's just not very efficient.
00:48:11 <Rafajafar> very different, apples and oranges (and your haskell implementation of the sieve will be very inefficient if you used functional programming... just food for thought)
00:48:53 <Rafajafar> oerjan: wrong, that is a completely different function and algorithm and it is not the problem I'm discussing
00:49:26 <pikhq> mu = let primes = sieve [2..];sieve (p:xs) = p : sieve (filter ((/=0).(`mod`p)) xs in (primes!!)
00:49:57 <pikhq> Rafajafar: You asked for a function from a natural to the Nth prime.
00:50:01 <pikhq> I have implemented such a function.
00:50:06 <CakeProphet> pikhq: I always prefer where over let. Looks so much clearer.
00:50:29 <Gregor-P> Moo
00:50:33 <oerjan> Rafajafar: it appears that you are not well acquainted with what mathematics considers a function to be.
00:50:41 <pikhq> Now, I *strongly* believe that you need to clarify your definition of the Nth prime problem, as, as it stands, it is trivially given.
00:51:59 <oerjan> Rafajafar: of course there can be _many_ algorithms for computing a given function, but all ways of computing the nth prime compute the same function
00:52:00 <Rafajafar> oerjan: actually, I think you are at this point
00:52:03 <Rafajafar> but anyway
00:52:31 <Rafajafar> to clarify the problem, we're not looking for the output to be a list of primes
00:52:36 <CakeProphet> btw... shits about to get intense.
00:52:43 <oerjan> Rafajafar: i'm sorry, but i think you are trolling. also, i have a math phd.
00:52:43 <pikhq> And my implementation of "mu" does not have this.
00:52:47 <CakeProphet> "inb4"
00:52:57 <pikhq> !haskell let mu = let primes = sieve [2..];sieve (p:xs) = p : sieve (filter ((/=0).(`mod`p)) xs in (primes!!) in mu 0
00:53:09 <pikhq> FUCK YOU EGOBOT
00:53:18 <oerjan> !help
00:53:19 <EgoBot> help: General commands: !help, !info, !bf_txtgen. See also !help languages, !help userinterps. You can get help on some commands by typing !help <command>.
00:53:42 <Rafajafar> I'm trying to figure out how to phrase this without getting reamed at this point
00:53:44 <Rafajafar> give me a moment
00:53:58 <pikhq> !haskell let primes = sieve [2..];sieve (p:xs) = p : sieve (filter ((/=0).(`mod`p)) xs;mu = (primes!!)in mu 0
00:54:08 <CakeProphet> From what I can tell, you just want to do the same thing without computing it recursively/iteratively/whatever
00:54:15 <pikhq> !haskell let primes = sieve [2..];sieve (p:xs) = p : sieve (filter ((/=0).(`mod`p)) xs;mu = (primes!!) in mu 0
00:54:16 <CakeProphet> like a magical formula or something?
00:54:23 <Rafajafar> that is the problem, correct
00:54:38 <Rafajafar> we're trying to find a "connection" from one prime to the next
00:54:50 <Rafajafar> w/o scanning all numbers to figure out if something is prime
00:54:56 <CakeProphet> that sounds much more challenging then.
00:55:06 <Rafajafar> yes, I'm very sorry I did not explain it well
00:55:18 <pikhq> !haskell let primes = sieve [2..];sieve (p:xs) = p : sieve (filter ((/=0).(`mod`p))) xs;mu = (primes!!) in mu 0
00:55:32 <Rafajafar> the input is a natural number, the out put is that number's corresponding prime
00:55:38 <Rafajafar> *output
00:56:01 <Rafajafar> so Mu(1) = 2, Mu(2) = 3 Mu(4) = 5... etc
00:56:05 <pikhq> !haskell let {primes = sieve [2..];sieve (p:xs) = p : sieve (filter ((/=0).(`mod`p))) xs; mu = (primes!!)} in mu 0
00:56:05 <CakeProphet> right.
00:56:22 <Rafajafar> if you have to scan all primes, you must "know" all primes before you can find the Nth prime
00:56:23 <pikhq> ... Egobot just told me fungot.
00:56:23 <fungot> pikhq: me badly needs sleep to complete it properly ( yet).
00:56:41 <CakeProphet> pikhq: hmmm, maybe it would be easier to switch the let to a where?
00:56:53 <CakeProphet> and that would fix some kind of syntax problem that I currently cannot identify?
00:56:56 <pikhq> CakeProphet: No.
00:57:06 <pikhq> CakeProphet: I cannot type the requisite newline for where.
00:57:22 <pikhq> Rafajafar: No.
00:57:32 <Rafajafar> and oerjan: I'm sorry, I just re-read, I think we had a miscommunication on my part
00:57:44 <pikhq> Rafajafar: In this version, one need know the first N primes.
00:57:45 <CakeProphet> Rafajafar: well, by that description alone such a thing can already be done. But that's not /all/ you seem to be asking for. You are looking for a different method of finding primes that relies on an intrinsic, incremental property rather than a test.
00:57:56 <CakeProphet> pikhq: requisite newline?
00:58:27 <CakeProphet> !haskell putStrLn src ++ (show src) where src = "putStrLn src ++ (show src) where"
00:58:28 <Rafajafar> correct CakeProphet
00:58:40 <CakeProphet> Rafajafar: but I can't think of a way to describe that formally.
00:58:43 <Rafajafar> if we were to find a "pattern in primes"
00:59:01 <CakeProphet> !haskell putStrLn $ src ++ (show src) where src = "putStrLn $ src ++ (show src) where "
00:59:05 <Rafajafar> then well, all encryption would break overnight lol
00:59:07 <CakeProphet> :(
00:59:11 <CakeProphet> !haskell print "test"
00:59:13 <EgoBot> "test"
00:59:16 <CakeProphet> okay. haha.
01:00:32 <Rafajafar> *sigh* so I really want to have a discussion, because I think I've shown that either A) there is no such pattern or B) if that pattern were to exist, it could not be defined using multiplication or any multiplication-derived operation
01:01:22 -!- augur has quit (Ping timeout: 245 seconds).
01:01:25 <Rafajafar> I *really* want to have someone poke holes in the idea too
01:01:39 <oerjan> Rafajafar: it is quite likely that you are correct that this is a hard, possibly impossible function to calculate effectively. it's inverse function is essentially the one at http://en.wikipedia.org/wiki/Prime-counting_function. moreover approximating it well is connected with the riemann hypothesis, one of the most famous unsolved problems in all of mathematics.
01:02:06 <CakeProphet> !haskell putStrLn (src ++ (show src)) where src = "putStrLn (src ++ (show src)) where src = "
01:02:06 <Rafajafar> oerjan: yes!
01:02:15 -!- coppro has joined.
01:02:17 <CakeProphet> ....I don't understand why that program is not working.
01:02:39 <Sgeo_> Isn't src already a string?
01:02:47 <CakeProphet> show would give it the quotes
01:02:53 <CakeProphet> for a quine.
01:03:07 <CakeProphet> I could have sworn I typed in the exact same thing just a while ago and it worked.
01:03:08 <Sgeo_> Ah
01:03:11 <CakeProphet> lemme check my original.
01:03:23 <Rafajafar> !haskell iterate (*2) 1
01:03:35 <CakeProphet> oh... duh. I know why
01:03:36 <Sgeo_> !haskell putStrLn "If you can't see this, the bot is down"
01:03:41 <EgoBot> If you can't see this, the bot is down
01:03:58 <CakeProphet> !haskell main = putStrLn (src ++ (show src)) where src = "main = putStrLn (src ++ (show src)) where src = "
01:04:01 <EgoBot> main = putStrLn (src ++ (show src)) where src = "main = putStrLn (src ++ (show src)) where src = "
01:04:03 <CakeProphet> there we go
01:04:11 <CakeProphet> forgot you can't have a where binding outside of a function definition. :)
01:04:43 <Rafajafar> !haskell pascal = iterate (\row -> zipWith (+) ([0] ++ row) (row ++ [0])) [1]
01:05:01 <CakeProphet> !haskell :t iterate
01:05:03 <EgoBot> iterate :: (a -> a) -> a -> [a]
01:05:17 <CakeProphet> !haskell take 10 $ iterate (+3) 2
01:05:18 <EgoBot> [2,5,8,11,14,17,20,23,26,29]
01:05:24 <oerjan> CakeProphet: EgoBot doesn't deal with infinite output well, you need to use take to cut it off somewhere.
01:05:33 <CakeProphet> Rafajafar: your program will never terminate because iterate constructs an infinite list.
01:05:54 <CakeProphet> oerjan: you are too late. :P
01:05:55 <Rafajafar> yah
01:06:17 <Rafajafar> wanted to see what would happen, I got an error msged to me
01:06:23 <pikhq> CakeProphet: His program will never do anything because the act of just defining something has no side effects.
01:06:23 <CakeProphet> Rafajafar: LambdaBot over in #haskell is fancy and will terminate it for you, I believe.
01:06:26 <pikhq> :P
01:06:43 <CakeProphet> pikhq: well... there's an implied print.
01:06:46 <CakeProphet> in this case.
01:06:53 <CakeProphet> pikhq: WAY TO BE PEDANTIC
01:07:24 <CakeProphet> (I think)
01:08:00 <Rafajafar> haskell is a goofy language, a bit too obfuscated for production stuff... I'll stick with perl (LMAO)
01:08:42 <Rafajafar> sooo, any brilliant logicians with a math background want to listen to the ramblings of a computer scientist, oerjan?
01:09:04 <CakeProphet> !haskell main = (\src -> putStrLn ( src ++ (show src))) $ "main = (\src -> putStrLn (src ++ (show src))) $ "
01:09:27 * oerjan isn't sure if he is brilliant enough for this, but shoot
01:10:24 <CakeProphet> Rafajafar: ha. Perl for production stuff. Surely you're joking. :D
01:10:36 <Rafajafar> not really at all
01:10:43 <Rafajafar> it's come a long way since 1994
01:10:48 <Rafajafar> ;-)
01:10:51 <oerjan> i note that that the algorithms on that wp page improve on the sieve somewhat, but that it still doesn't seem _fast_
01:10:51 <CakeProphet> sort of.
01:11:05 <Rafajafar> I pay the bills with Web Development
01:11:15 <Rafajafar> look into the Catalyst Framework
01:11:30 <CakeProphet> I think proving the impossibility of such a thing would be the route to take.
01:12:10 <Rafajafar> oerjan: there's known problems with functional programming being able to write efficient sieves ... you can write one, it just will not be as fast as procedural languages
01:12:39 <Sgeo_> You can write imperative code in Haskell, iirc
01:12:44 <Rafajafar> if they solve some parrelel programming issues, then it'll be fixed with a quickness
01:12:46 <Rafajafar> you can
01:13:10 <CakeProphet> I actually don't know the sieve algorithm so I can't really discuss this.
01:14:11 <CakeProphet> a look at the little animated graphic on the wikipedia page was /not/ helpful.
01:14:19 <CakeProphet> colors, circles, and x's EVERYWHERE
01:14:39 <oerjan> Rafajafar: well i've read that naive functional implementations of the sieve aren't really like the sieve, at least (do far too much)
01:14:52 <oerjan> *much work
01:15:30 <Sgeo_> Are there languages where most "naive" implementations are actually ok ones?
01:15:34 <Rafajafar> I've read a few papers where they knock a couple orders out, but it still doesnt come close... you have to either sacrifice runtime memory or speed... it's a direct tradeoff
01:15:46 <CakeProphet> In 2008, Melissa O'Neill showed that the complexity of Turner's algorithm is significantly worse than the complexity of the classic imperative renditions of the sieve.[7] O'Neill demonstrated a priority queue based rendition of the sieve of Eratosthenes in Haskell with complexity similar to that of the classic imperative implementations.
01:15:55 <CakeProphet> lol I cun lurk wp
01:19:48 <Rafajafar> ok so I have my explanation of what I'm talking about dealing with the Nth prime issue stuck up online
01:19:53 <Rafajafar> it's an IRC chat
01:19:54 <CakeProphet> !haskell primes = sieve [2..] where sieve (p : xs) = p : sieve [x | x <- xs, x `mod` p > 0]; main = print $ take 10 $ primes
01:19:58 <Rafajafar> scroll down
01:19:59 <Rafajafar> http://onlinekarma.net/primes.html
01:22:08 <CakeProphet> !haskell main = putStrLn $ take 10 $ primes where primes = sieve [2..]; sieve [] = undefined; sieve (p : xs) = p : sieve [x | x <- xs, x `mod` p > 0]
01:22:17 <CakeProphet> !haskell main = print $ take 10 $ primes where primes = sieve [2..]; sieve [] = undefined; sieve (p : xs) = p : sieve [x | x <- xs, x `mod` p > 0]
01:22:20 <EgoBot> [2,3,5,7,11,13,17,19,23,29]
01:22:24 <CakeProphet> there we go.
01:22:28 * CakeProphet is pleased.
01:25:58 <CakeProphet> !haskell main = print $ f 5 where f n = do {x <- [1..n]; y <- [1..n]; [x*y]}
01:26:01 <EgoBot> [1,2,3,4,5,2,4,6,8,10,3,6,9,12,15,4,8,12,16,20,5,10,15,20,25]
01:26:50 <CakeProphet> list-the-monad would be so much better if concatMap weren't terrible.
01:29:11 -!- AnMaster_ has joined.
01:29:21 -!- AnMaster has quit (Read error: Operation timed out).
01:29:34 -!- jix has quit (Quit: Lost terminal).
01:30:08 <CakeProphet> !haskell :t (>>=)
01:30:10 <EgoBot> (>>=) :: (Monad m) => m a -> (a -> m b) -> m b
01:31:05 <Rafajafar> I also have some notes I took
01:31:07 <Rafajafar> http://onlinekarma.net/Prime%20Number%20Independence%20Theorem.pdf
01:31:47 <CakeProphet> isn't there a particular form of (->) that is an instance of monad?
01:31:48 <Rafajafar> oerjan: still there?
01:32:37 -!- pikhq_ has joined.
01:33:24 -!- oerjan_ has joined.
01:35:20 -!- oerjan has quit (*.net *.split).
01:35:20 -!- pikhq has quit (*.net *.split).
01:35:20 -!- Deewiant has quit (*.net *.split).
01:35:21 -!- Adrian^L has quit (*.net *.split).
01:35:33 -!- Adrian^L has joined.
01:35:55 -!- oerjan_ has changed nick to oerjan.
01:36:29 -!- pikhq_ has changed nick to pikhq.
01:36:51 <oerjan> CakeProphet: (->) e is a monad if you import Control.Monad.Reader
01:37:52 <CakeProphet> oerjan: ah.
01:39:43 <CakeProphet> oerjan: hmmm... how does one get a value of type (->) e?
01:41:07 <oerjan> you don't, it has kind * -> * so you need a final type to it (as for all monads)
01:41:39 <CakeProphet> oh right. I forgot how that works exactly.
01:41:40 <CakeProphet> hmmm...
01:41:45 <CakeProphet> so basically
01:41:49 <CakeProphet> only the input type is concerned
01:41:53 <CakeProphet> with the monad operators.
01:42:18 <CakeProphet> or am I missing something about how instances work?
01:42:57 <CakeProphet> oh... nevermind I've got it.
01:43:06 <CakeProphet> you just substitue in (->) e for "m"
01:43:47 <oerjan> yeah
01:44:02 <CakeProphet> the type parameters were confusing me. :P
01:45:18 <CakeProphet> hmmm so....
01:47:56 <CakeProphet> f >>= g = (\k -> g (f k) k) -- ???
01:48:29 <CakeProphet> that's what it's doing for (+3)>>=(+) at least
01:48:42 -!- AnMaster_ has quit (Read error: Operation timed out).
01:49:50 <CakeProphet> hmmm... no
01:50:26 <oerjan> that is correct iirc
01:50:58 -!- Sgeo_ has quit (*.net *.split).
01:50:58 -!- Gregor-P has quit (*.net *.split).
01:50:59 -!- Mathnerd314 has quit (*.net *.split).
01:50:59 -!- olsner has quit (*.net *.split).
01:51:20 <CakeProphet> Prelude Control.Monad.Reader> (head>>=(:)) [3]
01:51:20 <CakeProphet> [3,3]
01:51:48 <CakeProphet> interesting.
01:52:13 -!- augur has joined.
01:52:13 -!- Sgeo_ has joined.
01:52:13 -!- Gregor-P has joined.
01:52:13 -!- Mathnerd314 has joined.
01:52:13 -!- olsner has joined.
01:52:15 -!- yiyus has quit (Ping timeout: 240 seconds).
01:53:10 -!- augur has changed nick to Guest59384.
01:53:38 <CakeProphet> so it's kind of like a partial application monad
01:56:54 <CakeProphet> actually.. no
01:56:57 <CakeProphet> it's just really weird. :P
01:57:06 <CakeProphet> I assume it has some use in Reader.
02:00:40 <CakeProphet> Prelude Control.Monad.Reader> (do {f <- head; (f:)}) [3]
02:00:41 <CakeProphet> [3,3]
02:00:43 <CakeProphet> weird
02:01:27 <CakeProphet> so [3] is applied to both f and the function returned by the do-block
02:03:57 <CakeProphet> .....why
02:04:19 -!- Guest59384 has changed nick to augur_.
02:13:00 -!- augur_ has changed nick to augur.
02:13:24 <oerjan> CakeProphet: it's in reader because it's really isomorphic to the Reader monad which is also defined there
02:14:02 <oerjan> it's also "useful" for doing point-free programming tricks
02:14:28 <oerjan> (lambdabot uses it a lot in its @free command)
02:14:29 -!- yiyus has joined.
02:14:44 <oerjan> (not sure i recall the name correctly)
02:15:00 <oerjan> oh @pl iirc
02:15:06 -!- coppro has quit (Read error: Operation timed out).
02:16:46 -!- coppro has joined.
02:20:42 -!- maedhros777 has joined.
02:22:28 <maedhros777> Anyone know if there's something wrong with this compiler? http://esoteric.voxelperfect.net/wiki/Fugue_Compiler
02:22:55 <maedhros777> I tried running the binary it generated and the result I got was "bash: ./hworld.obj: cannot execute binary file"
02:24:19 <maedhros777> So I tried generating the disassembly, but it's in CSV
02:24:22 <maedhros777> I can't run it
02:24:44 -!- pikhq has quit (Read error: Connection reset by peer).
02:25:53 -!- pikhq has joined.
02:34:34 -!- Rafajafar has quit (Quit: ChatZilla 0.9.86 [Firefox 3.6.3/20100401080539]).
02:41:27 <maedhros777> Any ideas?
02:43:01 -!- CakeProphet has quit (Ping timeout: 264 seconds).
02:43:44 <maedhros777> Actually, I might just try http://esoteric.voxelperfect.net/wiki/Velato instead
02:43:57 <maedhros777> I like its "Hello, world" :D
02:45:21 -!- augur has quit (Ping timeout: 265 seconds).
02:45:21 -!- wareya has quit (Read error: Connection reset by peer).
02:46:08 -!- wareya has joined.
02:46:59 -!- maedhros777 has quit (Remote host closed the connection).
02:54:58 -!- CakeProphet has joined.
02:55:42 -!- Rafajafar has joined.
02:55:50 <Rafajafar> hello!
02:57:37 -!- SgeoN1 has joined.
03:06:39 <CakeProphet> Rafajafar: howdy.
03:06:45 <CakeProphet> interested in esoteric languages?
03:06:56 <Rafajafar> yes
03:07:01 <Rafajafar> I'm interested in all languages
03:07:24 <CakeProphet> have you seen FRACTRAN?
03:07:30 <Rafajafar> nope
03:07:32 <CakeProphet> it involved primes so I believe it is up your alley.
03:07:38 <Rafajafar> learned brainf*ck a while back
03:07:56 <CakeProphet> http://esoteric.voxelperfect.net/wiki/Fractran
03:08:36 <Rafajafar> oh I've read this on reddit
03:11:24 <oerjan> heh fractran does indeed depend on primes and multiplication
03:12:22 <Gregor> AnMaster: You're not online, but I guess you know that.
03:17:58 -!- coppro has quit (Ping timeout: 252 seconds).
03:20:07 * uorygl tests this connection's lag, by typing.
03:20:10 <uorygl> Acceptable.
03:20:27 * uorygl tests it some more, by typing some more.
03:20:32 <uorygl> Barely acceptable.
03:21:04 <uorygl> I can type faster than the packets can get to the destination and back!
03:21:06 <uorygl> </type error>
03:26:32 -!- augur has joined.
03:40:56 -!- GreaseMonkey has joined.
03:45:41 -!- GreaseMonkey has quit (Client Quit).
03:45:41 -!- AnMaster has joined.
03:49:03 <Rafajafar> hmm sorry CakeProphet
03:49:22 <Rafajafar> I had to go help my girl make a menu for a big job offer she just got
03:50:05 <Rafajafar> Fractran is interest
03:59:47 -!- augur has quit (Ping timeout: 265 seconds).
04:09:48 -!- GreaseMonkey has joined.
04:11:43 -!- zzo38 has joined.
04:14:18 <zzo38> Now I want to invent a feat called "MERCIFUL TO GIBBERING MOUTHERS", and a spell of the same name (but not necessarily the same effect). (Note: There is a power and a feat both called "Animal Affinity" but they are unrelated to eachother)
04:16:42 -!- SgeoN1 has quit (Ping timeout: 265 seconds).
04:17:29 -!- GreaseMonkey has quit (Remote host closed the connection).
04:18:08 -!- GreaseMonkey has joined.
04:21:15 <zzo38> But I don't know what to write
04:33:21 -!- Gregor has quit (Remote host closed the connection).
04:33:27 -!- augur has joined.
04:33:52 -!- yiyus has quit (Ping timeout: 252 seconds).
04:34:45 -!- Gregor has joined.
04:35:59 -!- yiyus has joined.
04:36:23 <Gregor> AnMaster: http://codu.org/tmp/pianopano3.jpeg
04:46:13 <uorygl> Gregor: say, you said once that you're in a closed time loop.
04:46:26 <uorygl> So, assuming you were telling the truth...
04:46:35 <Gregor> Which of course I am.
04:46:42 <uorygl> Do you generally remember what's about to happen to you?
04:47:04 <Gregor> Nope. 's been too long.
04:47:14 * uorygl nods.
04:47:18 <uorygl> How long is the loop, anyway?
04:49:00 <zzo38> I want to know, has anyone in here written any music using non-standard notes?
04:49:01 <Gregor> I seem to recall there being some very good reason not to divulge that information, although I don't remember exactly why ... to be safe, I'll just keep it to myself.
04:49:12 <uorygl> Mmkay.
04:49:21 <uorygl> Do you remember any events that are nearer in the future than in the past?
04:49:49 <Gregor> Only really major things, and there's nothing major that will happen for a while, so no.
04:49:52 <uorygl> zzo38: I think Gregor has written music containing C flats. :P But that's not what you meant.
04:50:02 <Gregor> zzo38: What do you mean?
04:50:23 <zzo38> uorygl: Yes, that isn't what I meant. I meant notes that are not in a 12-TET scale (2^(1/12))
04:50:31 <uorygl> Gregor: do you ever muse about doing something other than what you actually will do?
04:50:55 <uorygl> "I'm about to buy this car. I think I'll buy a different car instead."
04:50:59 <Gregor> uorygl: Nope, I already proved that my entire loop is predetermined and unchangeable a few years from now.
04:51:35 <uorygl> Well, I use the word "muse" for a reason. I muse about what the world would be like if 2 + 2 were 5.
04:51:58 <Gregor> Ah. Not much *shrugs*
04:52:03 <zzo38> uorygl: Do you need a subjunctive television set to do that?
04:52:05 <uorygl> Mmkay.
04:52:21 <uorygl> zzo38: what does television have to do with it?
04:52:41 <uorygl> Anyway, if I actually wrote music, I'm sure I would write music with notes not in a 12-TET scale. :P
04:53:21 <zzo38> uorygl: It has nothing to do with television at all. I just made a comment based on what Hofstadter wrote. Of course it doesn't exist
04:53:41 <uorygl> I'm not familiar with what Hodstadter wrote about subjunctive television.
04:53:54 <zzo38> uorygl: If you wrote music, what notes would you use, then?
04:54:53 <uorygl> Notes like "B flat, 31 cents down".
04:55:45 <zzo38> So, you are just going to put the cents in yourself without being part of any scale?
04:56:12 <uorygl> Well, I might come up with some accidental that means "31 cents down".
04:56:22 <pikhq> Gregor: Stable time loop, eh?
04:56:23 <pikhq> How curious.
04:56:37 <zzo38> uorygl: O, OK.
04:56:42 <uorygl> I might also be more vague, saying stuff like "a little bit flat", "a little bit sharp".
04:57:00 <uorygl> pikhq: what would an unstable time loop look like?
04:57:42 <zzo38> uorygl: So, you are going to write music that is not even in tune! Is that what you are going to do?
04:57:55 <uorygl> 12-TET is not in tune. :)
04:58:34 <pikhq> uorygl: Chaotic.
04:59:09 <uorygl> Orchestras are tuned kind of randomly anyway. There are lots of instruments that have a continuum of pitches instead of a discrete set.
04:59:50 <Gregor> Yup
04:59:57 <Gregor> Equal temperament is not in tune.
05:00:41 <zzo38> uorygl: Do you mean for example like a guitar where you can push the string anywhere, and does not have to be on one of the lines?
05:01:09 <uorygl> Well, a guitar isn't usually an example of one of these instruments. But if you can find a fretless guitar, then yes.
05:01:42 <uorygl> There's also the trombone. The kazoo. :P
05:01:55 <zzo38> uorygl: Yes, I forgot about those ones too
05:01:58 <pikhq> Indeed, equal temperament is simply not *too* far out of tune most of the time.
05:02:03 <Gregor> Viol{in,ola,oncello}
05:03:47 <zzo38> But, is equal temperament is in tune for equal temperament?
05:03:57 <Gregor> That's ... sort of meaningless :P
05:04:16 <Gregor> By "in tune" I meant that major intervals are proper intervals.
05:05:13 <pikhq> Which of course equal temperament is not.
05:05:40 <Gregor> And by "major" I don't mean the musical sense of "major" :P
05:05:55 <zzo38> Gregor: OK, that's what you meant by "in tune". What I meant by "in tune" was that it matches the tuning of the scale, which is something different.
05:05:56 <pikhq> Yes, I kinda assumed that. :P
05:05:58 <uorygl> Oh, I was wondering why major intervals were so much more important than minor ones.
05:06:11 <uorygl> After all, major intervals are just the inversions of minor intervals.
05:07:33 <zzo38> Do you mean proper proper intervals like rational numbers, like just intonation, is that what you meant?
05:08:23 <zzo38> Did Pythagoras invent music theory?
05:09:14 <Gregor> I doubt it, at the time they probably didn't know about frequencies.
05:10:40 <Gregor> http://www.youtube.com/watch?v=CccaGaKOlSI <-- this is awesome
05:16:20 -!- kar8nga has joined.
05:20:59 -!- augur has quit (Ping timeout: 265 seconds).
05:30:09 -!- GreaseMonkey has quit (Quit: I'm using NO SCRIPT WHATSOEVER - Download it at file:///dev/null).
05:34:09 -!- Gracenotes has quit (Ping timeout: 240 seconds).
05:38:55 -!- CakeProphet has quit (Ping timeout: 276 seconds).
05:44:48 -!- GreaseMonkey has joined.
05:44:52 -!- augur has joined.
05:48:03 -!- Gregor-P has quit (Ping timeout: 265 seconds).
05:57:12 -!- jcp has quit (Ping timeout: 245 seconds).
06:00:00 -!- jcp has joined.
06:10:17 -!- Mathnerd314 has quit (Ping timeout: 265 seconds).
06:17:12 -!- Mathnerd314 has joined.
06:20:32 -!- Rafajafar has quit (Quit: ChatZilla 0.9.86 [Firefox 3.6/20100115144158]).
06:32:44 -!- zzo38 has quit (Remote host closed the connection).
06:41:03 -!- tombom has joined.
06:41:16 <oklopol> "<Rafajafar> oerjan: actually, I think you are at this point" <<< i would've banned him at this point
06:43:52 <oklopol> i guess you could make it well-defined to calculate the Nth prime without finding any prime before it
06:44:01 <oerjan> oklopol: erm in afterthought, that would have been a bad idea
06:44:47 * oerjan now suspects he just left out a word in that sentence, or something
06:46:57 <oklopol> along the lines of whether there exists a program that extracts smaller primes from an ID at some point during program run
06:47:08 <oklopol> that does it in say L
06:47:37 <oklopol> (look oerjan you taught me a new character.)
06:48:14 <oerjan> hm the nth prime can be calculated in L, anyhow.
06:48:49 <oerjan> or wait
06:49:08 <oerjan> no
06:49:38 <oerjan> in linear space
06:51:32 <oerjan> it was calculating enough primes to write a number in chinese remainder form that could be done in L
06:51:55 <oerjan> but those primes only need to have logarithmic size compared to the number
06:52:26 <oklopol> "<Gregor> I seem to recall there being some very good reason not to divulge that information, although I don't remember exactly why ... to be safe, I'll just keep it to myself." <<< because that's worked so well for the past infinite number of iterations of the loop?
06:52:37 <oklopol> oh wait
06:52:48 <oklopol> maybe i misunderstood what your point was
06:52:51 <oerjan> (this was a step in the division proof)
06:55:15 <oklopol> "<uorygl> 12-TET is not in tune. :)" <<< yes it is, it's the definition of in tune
06:58:20 <oklopol> oerjan: right, shit
06:58:38 <oklopol> yeah defining something like that always runs into problems
07:00:33 <oklopol> while music started with retarded scales that use ratios, we realized at some point that the only thing that matters is we can map notes to numbers mentally, and that the important thing is symmetry of the scale, not how it sounds.
07:01:01 <oklopol> the most beautiful intervals don't have a nice integer ratio on any scale
07:01:08 <oklopol> 6 and 11 that is
07:01:30 <oklopol> 0+6 and 0+11 i mean
07:02:37 <oklopol> umm
07:02:53 <oklopol> my ramblings are really hard to read
07:03:19 <oklopol> i just wrote this a minute ago and already i'm wondering what topic each sentence is on
07:03:38 <oklopol> well not wondering but confusing myself momentarily
07:03:46 <oklopol> well see ya ->
07:08:43 -!- oerjan has quit (Quit: Good night).
07:12:59 -!- Mathnerd314_ has joined.
07:13:36 -!- augur has quit (Remote host closed the connection).
07:15:04 -!- MigoMipo has joined.
07:15:32 -!- Mathnerd314 has quit (Ping timeout: 265 seconds).
07:15:32 -!- Mathnerd314_ has changed nick to Mathnerd314.
07:40:11 <oklopol> is today special in some way
07:40:25 <oklopol> i mean
07:40:35 <oklopol> do people work normally tady
07:40:37 <oklopol> *today
07:43:59 <oklopol> okay so turns out it's one of the biggest holidays of the year
07:44:37 <oklopol> uni was closed, it was scary
07:45:26 -!- wareya has quit (Ping timeout: 240 seconds).
07:49:50 -!- tombom has quit (Quit: Leaving).
07:49:52 -!- wareya has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:13:00 <fizzie> oklopol: Today's not such a big deal everywhere, us Finns just seem to take it so.
08:18:03 <oklopol> yes i did mean locally
08:25:27 -!- Deewiant has joined.
08:35:08 <oklopol> "words are equivalent to millipictures"
08:36:05 <wareya> I'm rewrite something I wrote in C
08:36:13 <wareya> to not use if, while, or switch
08:45:49 <fizzie> What about for?
08:51:17 -!- kar8nga has quit (Remote host closed the connection).
09:04:43 <wareya> I can use for.
09:06:13 <fizzie> Is there an actual reason?
09:06:37 <wareya> For looks the worse.
09:06:54 <wareya> I don't use it for the intended purpose, though.
09:07:55 <wareya> http://pastebin.com/ec6JJYtJ
09:12:01 -!- Deewiant has quit (*.net *.split).
09:14:18 -!- Deewiant has joined.
09:23:26 -!- MigoMipo has quit (Remote host closed the connection).
10:00:48 -!- augur has joined.
10:01:45 -!- SevenInchBread has joined.
10:01:45 -!- SevenInchBread has quit (Client Quit).
10:02:01 -!- SevenInchBread has joined.
10:02:26 -!- SevenInchBread has changed nick to CakeProphet.
10:02:32 -!- CakeProphet has quit (Changing host).
10:02:32 -!- CakeProphet has joined.
10:02:37 <CakeProphet> :o
10:02:42 <CakeProphet> here's a pretty esoteric language idea:
10:02:48 <CakeProphet> a language that is perfect in every way.
10:05:55 -!- ais523 has joined.
10:06:58 <oklopol> do you have a fetish for paradoCes
10:09:26 <CakeProphet> no. I merely ponder them.
10:22:57 <oklopol> that's not good for you
10:24:10 -!- augur has quit (Ping timeout: 264 seconds).
11:07:32 <wareya> I am saddened that C doesn't have dynamic or function containing structures.
11:08:48 <AnMaster> <Gregor> AnMaster: http://codu.org/tmp/pianopano3.jpeg <-- loading
11:09:31 <AnMaster> Gregor, nice pano. Needs more enfusing to reduce noise even mroe
11:09:33 <AnMaster> more*
11:20:42 <oklopol> Gregor: i bet have more pianos than you
11:22:15 <oklopol> Gregor: also i'm thinking about buying a monkey
11:38:09 -!- uorygl has quit (Ping timeout: 240 seconds).
11:43:31 -!- jix has joined.
11:43:32 -!- jix has quit (Client Quit).
11:43:56 -!- jix has joined.
11:48:49 -!- GreaseMonkey has quit (Quit: I'm using NO SCRIPT WHATSOEVER - Download it at file:///dev/null).
12:30:07 <AnMaster> oklopol, that sounds like slavery!
13:01:40 -!- Phantom_Hoover has joined.
13:03:25 <Phantom_Hoover> What is the canonical behaviour of INTERCAL's mingle operator?
13:03:44 <Phantom_Hoover> Does the LSB of the first or second operand become the LSB of the result?
13:03:48 <ais523> Phantom_Hoover: takes two 16-bit arguments and interleaves bits in them to produce a 32-bit result
13:03:55 <ais523> the LSB of the second operand is the LSB of the result
13:04:02 <Phantom_Hoover> Ah, OK.
13:04:39 <ais523> now I'm curious as to why you asked
13:04:54 <ais523> not that there has to be a reason
13:15:09 <oklopol> m(p,q) = xp(x^2)+q(x)
13:15:11 <oklopol> argh
13:15:13 <oklopol> m(p,q) = xp(x^2)+q(x^2)
13:18:24 <oklopol> what were the others
13:21:17 <Phantom_Hoover> ais523, In the C-INTERCAL manual it has #256~#0 to make 65536, but in other places it has #0~#256
13:21:54 <Phantom_Hoover> s/~/$/
13:21:54 <oklopol> ~?
13:22:04 <oklopol> oh wait
13:22:06 <oklopol> is that mingle
13:22:45 <oklopol> 256~0 should give you 2*65536 imo
13:22:51 <ais523> #0~#256 makes 131072
13:22:54 <ais523> umm
13:22:59 <ais523> #256$#0 makes 131072
13:23:07 <ais523> #0$#256 makes 65536
13:23:10 <oklopol> yeah
13:23:11 <ais523> (just checked on intercalc)
13:23:24 <oklopol> what, not 132072?
13:23:29 <oklopol> weererere
13:23:32 <ais523> oklopol: you fail at powers of 2
13:23:34 <oklopol> yeah numbers are hard.
13:23:45 <ais523> Phantom_Hoover: that sounds like it may be a bug in the manual
13:23:51 <ais523> which section has the #256$#0?
13:23:53 <Phantom_Hoover> I think so.
13:23:56 <oklopol> i don't remember that one, so yes, but i also failed at arithmetic
13:24:00 <Phantom_Hoover> The section on mingle, of course.
13:24:54 <ais523> thanks for the bug report, fixed in dev version
13:25:27 <Phantom_Hoover> Are the select, mingle and unary binary operators universal?
13:25:29 <ais523> how should I credit you in the credits?
13:25:36 <ais523> and yes, they are
13:25:47 <oklopol> select was?
13:25:58 <oklopol> i was googling but for some reason i'm back here
13:26:09 <ais523> oklopol: ?
13:26:19 <oklopol> what was select again?
13:26:21 <Phantom_Hoover> ais523, just put "Phantom Hoover".
13:26:35 <oklopol> i want to compile that into an expression on generating sequences
13:26:40 <oklopol> err functions
13:26:49 <ais523> oklopol: sort bits in (first arg AND second arg) using bits of second arg as keys
13:26:56 <oklopol> oh hmm
13:27:04 <ais523> there's lots of ways to define it, but that one works in bases other than 2 (using digits rather than bits)
13:27:15 <oklopol> stably?
13:27:17 <Phantom_Hoover> So 0b11~0b10 is 1.
13:27:20 <ais523> yes, stable sort
13:27:29 <oklopol> ascending
13:27:38 <ais523> lower keys end up more significant in the result
13:27:48 <oklopol> so ascending
13:28:02 <ais523> well, depends on whether you look at it as a bigendian or littleendian
13:28:07 <oklopol> oh true sorry
13:28:19 <oklopol> i always do bigendian
13:28:38 <ais523> most people think about INTERCAL bigendian
13:28:51 <ais523> the definition of mingle feels more natural with a bigendian interpretation
13:30:05 <oklopol> okay i took the second it takes to understand what select does, and the name makes sense
13:30:13 <oklopol> also i recall hearing the definition at least twice
13:30:27 <oklopol> so umm
13:30:41 <oklopol> that can't be defined for polynomials
13:30:52 <oklopol> in a simple way that is
13:31:08 <oklopol> i guess you can't even do and
13:31:53 <ais523> generalisation of AND to arbitrary bases in INTERCAL is "if either input is 0, return 0; otherwise, return the larger input"
13:32:23 <ais523> yes, that doesn't really make a whole lot of sense, but it's the one that's used
13:32:32 <oklopol> It is a well-known and oft-demonstrated fact that a person whose work is incomprehensible is held in high esteem. For example, if one were to state that the simplest way to store a value of 65536 in a 32-bit INTERCAL
13:32:33 <oklopol> variable is:
13:32:33 <oklopol> DO :1 <- #0#256
13:32:33 <oklopol> Any sensible programmer would say that that was absurd.
13:32:46 <oklopol> if you ask me, there's no reason it should be easy to have that big a constant
13:32:59 <oklopol> where could you ever need it
13:33:10 <Phantom_Hoover> Bitmasks?
13:33:13 <oklopol> if you need a bit mask, that's different, but sort of an outdated concept
13:33:15 <ais523> large constants come up quite a lot in INTERCAL, for bitmasks
13:33:23 <ais523> especially #65535$#0 and #0$#65535
13:33:35 <oklopol> any sensible compiler will let you use a high level construct that's compiled into a bitmask
13:33:37 <ais523> which are ironically more readable in the INTERCAL form than they would be as a single constant
13:33:54 <oklopol> err language
13:33:58 <oklopol> but also compiler
13:34:00 <Phantom_Hoover> Surely #'#0$256'$#0?
13:34:13 <ais523> Phantom_Hoover: 6553/5/, not 6553/6/
13:34:19 <Phantom_Hoover> Ah.
13:34:26 <ais523> also, that first # is wrong
13:34:31 <Phantom_Hoover> And the first hash is unnecessary.
13:34:33 <ais523> and the answer would overflow anyway the way you wrote it
13:34:37 <Phantom_Hoover> And wrong, yes.
13:34:57 <Phantom_Hoover> ais523, takes the type of the second operand?
13:35:28 <ais523> Phantom_Hoover: no, select takes the type onespot if the second operand has no more than 16 bits set, twospot otherwise
13:35:47 <ais523> although, that's so screwy that most compilers just ignore it and take the type of the second operand
13:35:59 <Phantom_Hoover> ais523, that was mingle, not select.
13:36:09 <ais523> Phantom_Hoover: oh, mingle always returns twospot
13:36:19 <Phantom_Hoover> So why an overflow
13:36:25 <Phantom_Hoover> Oh, I see why.
13:38:08 <oklopol> then was the third one not where you not adjacent bits
13:38:11 <oklopol> errr
13:38:12 <Phantom_Hoover> Is INTERCAL meant to be difficult or different?
13:38:15 <oklopol> that makes no sense xD
13:38:21 <oklopol> but do something to adjacent bits
13:38:39 <ais523> Phantom_Hoover: different
13:38:48 <ais523> it often ends up difficult as a result, because most of the easy things have been done already
13:38:57 <ais523> but whenever I spot an opportunity to do different but easier, Ido
13:38:58 <ais523> *I do
13:39:09 <Phantom_Hoover> So why no easy 32-bit constants?
13:39:21 <ais523> sometimes it is just obstructive
13:39:25 <Phantom_Hoover> And why decimal, come to think of it?
13:39:37 <ais523> INTERCAL-72 didn't fulfil its mission too well
13:40:21 <Phantom_Hoover> Why not dodecimal or tetradecimal?
13:42:54 <ais523> don't ask me, I didn't invent INTERCAL-72
13:51:54 <oklopol> not yet
13:52:18 -!- KingOfKarlsruhe has joined.
13:57:20 <Phantom_Hoover> ais523, maybe you can if you invent Feather?
13:57:45 <ais523> Phantom_Hoover: Feather programs can't retroactively change events outside the program
13:57:47 <ais523> only their memory of them
13:57:55 <Phantom_Hoover> Bah.
13:58:26 <Phantom_Hoover> Although that's a pretty elegant system.
14:04:48 -!- Gracenotes has joined.
14:04:57 <oklopol> what's elegant?
14:05:10 <Phantom_Hoover> I think I misunderstood.
14:05:13 <oklopol> yes
14:05:42 <oklopol> "only their memory of them" is not a feature, just a description what would happen
14:05:45 <oklopol> wlel
14:05:49 <oklopol> *well
14:05:55 <oklopol> assuming i'm understanding what's going on
14:05:58 <oklopol> i tend to extrapolate
14:06:39 <ais523> oklopol: yes, just a description
14:06:57 <ais523> although if I ever get around to writing a Feather standard library, a memory of input is definitely one of the things that would be useful
14:07:20 <oklopol> oh i was sure i understood that, i wasn't sure i guessed what happened in Phantom_Hoover's head
14:07:38 <Phantom_Hoover> That's unsurprising.
14:12:57 <oklopol> well to be more precise, i'm always sure, i'm not always right
14:27:29 -!- relet has joined.
14:53:18 -!- random222 has joined.
14:53:23 -!- random222 has left (?).
14:53:25 -!- KingOfKarlsruhe has quit (Remote host closed the connection).
14:58:12 -!- BeholdMyGlory has quit (Read error: Connection reset by peer).
15:07:33 -!- kar8nga has joined.
15:39:10 -!- cpressey has joined.
15:46:20 -!- cheater99 has quit (Ping timeout: 260 seconds).
15:49:03 -!- oklopol has quit.
15:52:41 -!- Phantom_Hoover has quit (Ping timeout: 265 seconds).
16:03:25 -!- cheater99 has joined.
16:06:56 -!- Phantom_Hoover has joined.
16:10:30 <AnMaster> hi ais523 (yes I did just notice you but that was because I just got back
16:10:31 <AnMaster> )
16:19:50 <Gregor> AnMaster: A lot of what appears to be noise in that picture I've verified to be dust on the piano.
16:20:23 <Gregor> Though there is still some noise, yes
16:33:53 <Phantom_Hoover> AND NOT is universal, isn't it?
16:34:19 <cpressey> Phantom_Hoover: If you mean NAND, and you mean universal for digital circuits, yes.
16:34:41 <cpressey> I don't know about "AND NOT" - I would interpret that as "x AND NOT y"
16:34:42 <Phantom_Hoover> OK.
16:34:44 <Deewiant> I think he meant x && !y
16:34:53 <Phantom_Hoover> Wait, what Deewiant said.
16:34:59 <cpressey> If so, I'm not sure. It could be.
16:35:00 <Deewiant> NAND is !(x && y)
16:35:48 <Deewiant> I don't think that's universal
16:36:00 <cpressey> I was leaning towards non-universal myself.
16:36:10 <Phantom_Hoover> OK.
16:36:25 <cpressey> Trying to build NAND out of it, in my head, and failing -- of course, that means very little :)
16:36:41 <Phantom_Hoover> <wareya> I am saddened that C doesn't have dynamic or function containing structures.
16:36:46 <Phantom_Hoover> Why?
16:37:13 <Phantom_Hoover> Dynamic presumably refers to being able to add or remove entries, which is stupid for C structs.
16:37:26 <cpressey> I'm not particularly saddened by that -- it means that C doesn't have to deal with garbage collection.
16:37:29 <Deewiant> ! can be built but it requires adding a new variable: is that allowed?
16:37:42 <Phantom_Hoover> And you can always put function pointers into structs.
16:37:43 <Deewiant> !x = (y && !x) && !y
16:37:54 <Deewiant> Except that that actually makes no sense
16:37:57 <Deewiant> NEVER MIND
16:38:03 <Phantom_Hoover> Why doesn't it make sense?
16:38:07 <Deewiant> Leaning even more towards non-universal
16:38:11 <Phantom_Hoover> Oh, because y is stupid.
16:38:11 <Deewiant> y && !y is false, they don't cancel
16:39:46 <Phantom_Hoover> Yes, that does make it look bad.
16:39:53 <Phantom_Hoover> Wait, are we allowed to use constants?
16:40:10 <Phantom_Hoover> !x = 1 && !x, so we can construct NAND.
16:40:56 <Phantom_Hoover> !(x && y) = 1 && !(x && !(1 && !y))
16:41:13 <Deewiant> Yeah, I was just doing that
16:41:26 <Deewiant> And you have to be allowed to be, or you couldn't make ! with nand
16:41:37 <Phantom_Hoover> Yes you could.
16:41:46 <Phantom_Hoover> You just tie both inputs together.
16:41:50 <Deewiant> Oh, true.
16:42:04 <Phantom_Hoover> But in any case, constants are reasonable.
16:42:05 <Deewiant> Hmm. Not sure, then.
16:42:17 <Deewiant> But yeah, it seems sensible.
16:42:33 <Phantom_Hoover> In any circuit being constructed, you will be able to make a wire that is always on.
16:43:43 <cpressey> I always wanted to design a language with boolean operators, but no boolean constants. You'd have to derive true and false with expressions like 'x or x'.
16:43:53 <Deewiant> x && y = x && !(1 && !(y && !0)) was mine, btw
16:44:43 <Deewiant> cpressey: Do it for the numbers, too
16:44:50 <cpressey> Oh, such language was also supposed to have a half-dozen different distinct types that were all effectively booleans - "bool", "bit", "truthvalue", etc - but made you do type conversions all over the place to get your expressions right
16:45:15 <cpressey> I guess "different distinct" is redundant, huh.
16:47:52 <Deewiant> x/x-x/x is a nice way of writing 0
16:47:52 * Sgeo_ learns the hard way why you should revoke an rss 2 twitter service's access if you stop using it
16:48:11 <Sgeo_> Deewiant, no, it's not
16:48:11 <cpressey> If you tie both inputs together for the and-not gate, you get constant zero, don't you? Then you can invert that
16:48:28 <Sgeo_> x=0 breask it.. unless I'm missing somethibng
16:48:38 <Sgeo_> Hm, I'm going to guess that I'm missing context
16:52:38 <Deewiant> Hmm, you're right; I guess it has to be x-x
16:52:59 -!- oerjan has joined.
16:53:49 <Phantom_Hoover> Deewiant, you can get rid of the y &&
16:53:59 <Phantom_Hoover> !0 in your implementation of &&.
16:54:35 <Deewiant> True enough
17:00:47 <Phantom_Hoover> What's #0$#65535
17:01:35 <Deewiant> Can't you use an INTERCAL compiler and find out?
17:01:47 -!- Gregor-P has joined.
17:02:11 <Phantom_Hoover> Deewiant, too easy.
17:02:26 <Phantom_Hoover> Ah, it's every other bit on.
17:02:35 <Phantom_Hoover> Useful for selects.
17:05:52 <CakeProphet> oh sweetness
17:06:06 <CakeProphet> we're studying Alan Turing in philosophy apparently.
17:06:07 <CakeProphet> don't ask me why.
17:07:37 <ais523> Deewiant: compiler? you could install intercalc and use that
17:07:40 <ais523> it comes with CLC-INTERCAL
17:08:14 <Deewiant> I figured that one is more likely to have an INTERCAL compiler than an INTERCAL programming tool
17:20:48 <Phantom_Hoover> ais523, intercalc?
17:20:59 <ais523> Phantom_Hoover: an INTERCAL calculator
17:21:06 <Phantom_Hoover> Wait, isn't CLC-INTERCAL your competitor?
17:21:18 <ais523> more my cooperator
17:21:35 <ais523> Claudio and I are both working on different impls, but we help each other out every now and then
17:21:50 <Phantom_Hoover> So why isn't there and intercalc for C-INTERCAL?
17:21:57 <Phantom_Hoover> I don't want to keep both!
17:22:01 <ais523> because the two programs work completely different ways
17:22:26 <ais523> I use both; you'll find some things work much better in C-INTERCAL, and some work much better in CLC-INTERCAL
17:22:31 <ais523> due to completely different philosophies
17:22:43 <Phantom_Hoover> What are the differences?
17:23:59 <Phantom_Hoover> In the philosophies?
17:27:40 <CakeProphet> so
17:27:48 <CakeProphet> are sets an axiomatic notion in the philosophy of mathematics?
17:27:57 <cpressey> They should both be called C*-INTERCAL, to help prospective programmers choose between them.
17:28:02 <CakeProphet> they do seem quite fundamental.
17:28:15 <cpressey> "you'll find some things work much better in C*-INTERCAL, and some work much better in C*-INTERCAL"
17:28:34 <ais523> Phantom_Hoover: CLC-INTERCAL is a very dynamic implementation
17:28:47 <ais523> even the compiler used ends up in the resulting bytecode
17:28:48 <CakeProphet> cpressey: but wait, what about C*-INTERCAL?
17:29:00 <cpressey> CakeProphet: I forgot about that one!
17:29:12 <ais523> and it thinks of inventing commands like ABSTAIN FROM COMPILER BUG which I never even considered
17:29:13 <CakeProphet> meh. but that one runs on Parrot. fuck that.
17:29:18 <ais523> C-INTERCAL is a lot more static
17:29:33 <ais523> it tries to compile things into sane code
17:29:37 <ais523> rather than using an insane bytecode
17:30:00 <ais523> as a result, the compiled version is often clearer than the original, and it can run programs very fast (after the initial slow compile)
17:30:00 <CakeProphet> In low-level terms, I always interpret "static" to more or less mean "lol I don't use pointer hacks internally"
17:30:47 <oerjan> CakeProphet: so haskell is not static, then :D
17:30:54 <CakeProphet> ais523: there's that unresolved pesky compiler bug that just so happens to be a feature of the language.
17:31:09 <ais523> CakeProphet: two such bugs in CLC-INTERCAL
17:31:13 <CakeProphet> oerjan: I would say no, Haskell is not static. I don't know, perhaps there is a distinction between static and static typing.
17:31:44 <cpressey> I would agree that Haskell is not "static" in a sense that I think CakeProphet means.
17:31:56 <oerjan> CakeProphet: well yeah, at least haskellites tend to claim there is when assaulted by dynamic typing advocates :D
17:31:59 <Phantom_Hoover> CakeProphet, which bug?
17:32:02 <CakeProphet> it's a very vague notion. Akin to a "dynamic language"
17:32:18 <CakeProphet> Phantom_Hoover: someone was talking about an ABSTAIN FROM COMPILER BUG thing in one implementation of C-intercal
17:32:38 <cpressey> the "static" in "static typing" is really more like "lexical" or "early"
17:32:38 <CakeProphet> that reminds me... how on earth does Dynamic work in Haskell?
17:32:51 <CakeProphet> cpressey: yeah
17:32:55 <CakeProphet> it's a compile-time thing.
17:33:01 <CakeProphet> thus, static.
17:33:31 <cpressey> Thinking about it, it's a horrible word. Like my source source never changes? Well, from the compiler's perspective, maybe.
17:33:38 <CakeProphet> haha.
17:33:41 <CakeProphet> yeah.
17:33:58 <Phantom_Hoover> Are there any programs which alter their executable at runtime?
17:34:08 <cpressey> My "source source" -- that was not meant to be meta. It's just that my brain is going.
17:34:32 <cpressey> Phantom_Hoover: Self-modifying binary code? I'm sure.
17:34:33 <CakeProphet> so with things like type inference nowadays, is there even a benefit to dynamic typing? The only benefit I can see is that your runtime system might be more extensible.
17:34:50 <cpressey> CakeProphet: Yes, there is. Meeting deadlines.
17:34:55 <CakeProphet> haha.
17:35:04 <cpressey> I'm serious - there's a reason Python and Ruby are so popular in web development.
17:35:05 <ais523> Phantom_Hoover: it's been done, it normally isn't very useful
17:35:09 <CakeProphet> I don't know. I find debugging to be an issue in dynamic typed languages.
17:35:16 <CakeProphet> cpressey: but it's true. they have fast development time.
17:35:18 <ais523> I did it once trying to write a .COM file entirely in printable ASCII
17:35:32 <ais523> because it turns out that none of the flow-control commands in x86 machine code correspond to printable characters
17:35:40 <ais523> so I had to do a bit of selfmod to insert a loop
17:36:06 -!- Phantom_Hoover_ has joined.
17:36:07 <CakeProphet> Haskell is ridiculous. There's been very few semantically incorrect programs that I've written in Haskell that would compile.
17:36:16 <CakeProphet> it... knows.
17:36:25 -!- tombom has joined.
17:36:32 <cpressey> CakeProphet: Proponents of dynamic languages usually say things like, well, who needs static typing when we have unit tests? And I can see that point, but I think it's a bit weak.
17:36:33 <oerjan> CakeProphet: Dynamic does unsafe typecasting under the hood, making it safe by using a Typerep value (from the type's Typeable instance) to check whether the original value actually comes from the type cast to
17:36:55 <CakeProphet> cpressey: bleh. unit tests are probably more work than maintaing type signatures.
17:36:56 <Sgeo_> Can Haskell fix the issue where I deleted all of my tweets, EXCEPT the ones I wanted deleted?
17:37:03 <pikhq> cpressey: Testing and typing are kinda tangential.
17:37:28 <CakeProphet> oerjan: hmmm, right. I believe this is more or less what Python does, except the vocabulary is a bit different.
17:37:33 <oerjan> data Dynamic = Typerep -> Obj -> Dynamic
17:37:36 <pikhq> One can (and may well want to) do unit testing on Haskell, after all.
17:37:39 <AnMaster> Gregor, ah
17:37:40 <CakeProphet> oerjan: oh. you meant Haskell. :P
17:38:01 <cpressey> Typing is an incomplete form of unit testing via set inclusion proofs :)
17:38:10 <oerjan> CakeProphet: that's what you asked :)
17:38:17 <CakeProphet> cpressey: would the inclusion of constraints make it more complete? I've been thinking about constraint-based type systems.
17:38:30 <CakeProphet> oerjan: right. :D
17:38:50 <AnMaster> bbl
17:39:01 -!- Phantom_Hoover has quit (Ping timeout: 265 seconds).
17:39:20 <cpressey> CakeProphet: Yes, constraints are attractive. Dependent types and all that.
17:39:20 <Sgeo_> I have no clue how to fit unit testing into my project :/
17:39:45 <CakeProphet> like... there are compile errors you could catch via constraints that you wouldn't otherwise catch. Consider having a function that returns type (Int x. x > 0) and apply the value to a function that accepts (Int x. x < 0)
17:39:45 <Phantom_Hoover_> Wait, so we don't like Lisp?
17:40:03 <CakeProphet> since there intersection is the empty set, you can infer that they are incompatible types.
17:40:12 <CakeProphet> *their
17:40:22 <CakeProphet> Phantom_Hoover_: lisp is fine.
17:40:39 <Phantom_Hoover_> It uses dynamic typing, doesn't it?
17:40:47 <Phantom_Hoover_> Or are you talking about weak typing?
17:40:51 <CakeProphet> cpressey: I don't quite understand dependent types. Only the notion of their first-classness, but not how they work in practice.
17:40:58 <CakeProphet> Phantom_Hoover_: dynamic typing vs static typing.
17:41:27 <CakeProphet> Phantom_Hoover_: just comparing really. You could argue that a lot of Lisp's flexibility stems from its "type system"
17:41:27 <Phantom_Hoover_> Wait, how are we defining "dynamic typing"?
17:41:35 <cpressey> The problem as I see it "in the field" is that any program, once written, grows, and any large program has huge "maintenance momentum." W/static typing, if you want to change something, you might need to change a type, or God forbid, a monad, and the repercussions might ripple throughout your codebase. Having latent types means it's basically easier to hack, which in production is, sadly, invaluable.
17:41:45 <CakeProphet> types aren't known at compile time. Variable aren't given type constraints.
17:42:02 <Phantom_Hoover_> That's how Lisp does things, though/
17:42:12 <CakeProphet> cpressey: right. duck typing is a benefit there. It's very easy to throw in arbitrary objects in place of the original.
17:42:22 <CakeProphet> such as for unit testing.
17:42:36 <oerjan> CakeProphet: um, i meant data Dynamic = Dynamic Typerep Obj. i'm confused by hugs not giving the actual definition for data types, just the constructor types
17:42:38 <cpressey> CakeProphet: I can't say I really get them either. But basically, types are proofs that your value is always in some set, like integers. Dependent typing makes the sets more sophisticated, like prime numbers.
17:43:01 <CakeProphet> oerjan: hmmm, weird. I didn't even know Hugs had a command like that. Does GHC do that?
17:43:33 <CakeProphet> cpressey: hmmm, ah okay. So you could potentially compute their values with code that runs at compile-time?
17:43:43 <CakeProphet> like a type representing only prime numbers.
17:43:55 -!- Phantom_Hoover_ has changed nick to Phantom_Hoover.
17:44:16 <CakeProphet> hmmm, well, compute is a bad word. specify. declare.
17:44:22 <oerjan> CakeProphet: i think so. let's see.
17:44:27 <CakeProphet> with constraints or whatever.
17:44:28 <pikhq> cpressey: The thing with static typing is that *when you change a type*, you actually have to take care of the repercussions.
17:44:32 <oerjan> !haskell :i Data.Dynamic.Dynamic
17:44:42 <EgoBot> data Data.Dynamic.Dynamic
17:44:50 <pikhq> cpressey: With dynamic typing, you change a type *and your first notion that something is handling it wrong* is a program crash.
17:45:01 <cpressey> CakeProphet: Basically yes. Of course the drawback is that you can build types that have all the weaknesses of programs. Or C++ templates.
17:45:42 <cpressey> pikhq: Which is why you probably shouldn't use dynamic typing for air traffic control systems.
17:45:44 <CakeProphet> cpressey: ah. Hmmm, so what does no type safety imply? For example, if Haskell included undecidable type system elements how would that affect the whole system?
17:45:57 <oerjan> CakeProphet: it delivered the rest in DCC. (also ghci gave less information than hugs)
17:45:58 <CakeProphet> fewer posible compile errors?
17:46:30 <pikhq> cpressey: I find that ~90% of bugs in Haskell are caught by the type checker.
17:46:35 <pikhq> :P
17:46:41 <CakeProphet> oerjan: I think the major Haskell compilers should include features like @instances from lambdabot. I actually use #haskell when developing Haskell for that very reason.
17:46:53 <pikhq> CakeProphet: GHCi does.
17:46:54 <Phantom_Hoover> !haskell :i Data.Dynamic.Dynamic
17:46:56 <EgoBot> data Data.Dynamic.Dynamic
17:46:58 <oerjan> CakeProphet: :i _does_ give instances
17:47:03 <CakeProphet> oh?
17:47:07 <CakeProphet> well.. hmmm.
17:47:09 <oerjan> only those already imported, though
17:47:10 <cpressey> pikhq: So do I. Are you trying to make an argument "for" static typing?
17:47:12 <CakeProphet> I guess I've never used i then. :P
17:47:23 <pikhq> cpressey: Minor argument in favor.
17:47:34 <pikhq> Though, of course, dynamic typing does have its own benefits.
17:47:42 <CakeProphet> I see arguments either way really. The more experience I've accumulated with both the more I've concluded that both have benefits.
17:47:59 <CakeProphet> I'm interested in learning about dependent types though. What is a good language for that?
17:48:18 * CakeProphet is interested in language type systems, and would possibly be interested in researching them via language designs.
17:48:18 <pikhq> Granting you certain kinds of flexibility in exchange for fewer correctness guarantees.
17:48:58 <CakeProphet> pikhq: you could argue that things like typeclasses give you similar flexibility in an "environment of good design". :P
17:49:03 <cpressey> CakeProphet: ehird kept mentioning Agda. I think it's fairly standard for dependent type stuff.
17:49:11 <pikhq> CakeProphet: Indeed.
17:49:17 <CakeProphet> cpressey: I'll check it out then.
17:49:28 <pikhq> If you really really want dynamic typing in Haskell, there *is* Data.Dynamic.
17:49:30 <pikhq> >:D
17:49:42 <CakeProphet> ...I'm just wondering when you would ever need dynamic typing.
17:49:47 <CakeProphet> dynamic dispatch maybe?
17:49:55 <CakeProphet> language interpreters?
17:50:03 <pikhq> Strictly *need* it?
17:50:06 <CakeProphet> yes.
17:50:06 <pikhq> Never ever ever.
17:50:08 <CakeProphet> no other alternative.
17:50:15 <pikhq> Never ever ever.
17:50:21 <CakeProphet> hmmm, then why? Just to have?
17:50:25 <pikhq> Because you are TC without dynamic types.
17:50:26 <Phantom_Hoover> Yes.
17:50:39 <pikhq> In fact, you are TC without *multiple types*.
17:50:47 <Phantom_Hoover> pikhq, you are TC with Brainfuck, but you don't write anything serious in it.
17:50:56 <pikhq> All type systems exist to make programming easier, not to make it possible.
17:51:02 <pikhq> Phantom_Hoover: Indeed.
17:51:09 <CakeProphet> hmmm... so if I wanted to use Haskell to make a dynamic environment with its own scripting language (like the MOO codebase for text-based games, where you can dynamically add command scripts to arbitrary objects) I would potentially be interested in Dynamic?
17:51:28 <pikhq> Yes, that is a quite reasonable use-case for Data.Dynamic.
17:51:53 <CakeProphet> now... would it be craz to add concurrency to this model?
17:51:55 <Phantom_Hoover> Can you use algebraic data types for quasi-dynamicness?
17:52:00 <CakeProphet> because I might use Haskell to implement my MUD codebase. :)
17:52:08 <CakeProphet> instead of Erlang.
17:52:14 <Phantom_Hoover> (I haven't Haskelled in ages, so I don't know)
17:52:31 <CakeProphet> Phantom_Hoover: sort of. You can use existentials to get heterogenous container types and such.
17:52:37 <CakeProphet> using typeclass constraints.
17:52:49 <pikhq> Phantom_Hoover: Yes.
17:52:53 <CakeProphet> that's a certain degree of dynamic typing with static type safety.
17:53:00 <Phantom_Hoover> Well, if you were scripting, you wouldn't need completely dynamic typing.
17:53:06 <pikhq> CakeProphet: Not particularly. Haskell has decent concurrency libraries.
17:53:15 <Phantom_Hoover> You'd just need some general object which can be used in-script.
17:53:15 <pikhq> It just doesn't have support for running on multiple systems.
17:53:25 <CakeProphet> pikhq: is STM the way to go or is there message-pasing libraries?
17:53:26 <oerjan> CakeProphet: i think it is more recommended to make typeclasses for the things you actually need to do with several types, and possibly use existential data types if you really _need_ to pass around such a value without knowing its type
17:53:41 <CakeProphet> oerjan: right.
17:53:41 <pikhq> CakeProphet: There are message-passing libraries.
17:53:49 <CakeProphet> pikhq: Know any by name?
17:53:54 <pikhq> No, I don't.
17:53:55 <CakeProphet> any in std lib even?
17:53:56 <CakeProphet> oh
17:54:00 <CakeProphet> well nevermind then.
17:54:03 <pikhq> I could probably write one up in a few hours though.
17:54:05 <pikhq> :P
17:54:10 <cpressey> I've implemented my latest esolang in -- get this -- Java, but only because it's got a graphical aspect, and JRE is the only platform that I've found that can display graphics portably without too much pain.
17:54:24 <cpressey> Everything else is like, ew.
17:54:27 <cpressey> Sadly.
17:54:30 <Phantom_Hoover> I was thinking along the lines of data scriptValue = ScriptInt Int | ScriptChar Char
17:54:36 <Phantom_Hoover> But that might be totally crazy.
17:54:37 <CakeProphet> hmmm.. Haskell threads are soft right? How lightweight are they compared to Erlang?
17:54:45 <pikhq> Comparable.
17:54:48 <CakeProphet> excellent.
17:55:16 <pikhq> Different implementation details, but *essentially* the same. Feel free to spawn billions.
17:55:30 <CakeProphet> obviously no code hotswapping, but I think I can get around that. There's an old-as-fuck C codebase that implements effective hot swapping. I'm not entirely sure how it works though.
17:55:39 <CakeProphet> it basically restarts the codebase... but somehow maintains all state.
17:55:47 <cpressey> Phantom_Hoover: No, that's fairly reasonable.
17:55:47 <CakeProphet> including socket connections. Not sure how that works.
17:56:02 <Phantom_Hoover> cpressey, yay, I had a reasonable idea!
17:56:11 <Phantom_Hoover> Now I need to aspire for a good one!
17:56:17 <pikhq> CakeProphet: It forks into the new code.
17:56:19 <Phantom_Hoover> s/for/to/
17:56:28 <pikhq> And passes the old state on the CLI.
17:56:30 <CakeProphet> pikhq: hmmm? I'm new to this kind of stuff, apparently. Can you explain further?
17:56:36 <oerjan> CakeProphet: Control.Concurrent.Chan comes to mind
17:56:53 <pikhq> The socket connections just go to the new process directly, because file descriptors are carried across forks.
17:57:02 <pikhq> Oh, yeah. Control.Concurrent.Chan was it.
17:57:32 <CakeProphet> hmmm okay...
17:57:48 <pikhq> BTW, Haskell's most common concurrency primative, mvar, can be considered the building block of message passing.
17:57:58 <pikhq> It's basically a message passing queue of size 1.
17:58:03 <CakeProphet> what would be the benefits of STM over message-passing or vice versa? If they're suited to specific things then I could always use both.
17:58:27 <CakeProphet> pikhq: ah. How would you construct a queue of greater size?
17:58:42 <pikhq> STM is more useful for actually modifying shared state.
17:59:20 <pikhq> CakeProphet: Minorly complex, and I don't recall the details.
17:59:35 <CakeProphet> -nod- I'll research it with time I'm sure.
17:59:55 <CakeProphet> ha. I think I've sold myself on Haskell as my language of choice for this project. :)
18:00:41 <oerjan> CakeProphet: Control.Concurrent.Chan has done the work of constructing a queue of greater size for you. i'm pretty sure it's based on MVar under the hood
18:00:50 <pikhq> It is.
18:01:03 <CakeProphet> ah okay.
18:01:20 <CakeProphet> and there's STM for IO right, thus allowing me to mix both in the same code yes?
18:01:42 <pikhq> No. However, one can return an IO value from STM.
18:01:54 <CakeProphet> ah okay.
18:02:12 <oerjan> CakeProphet: there's no way to undo a real IO action, so STM cannot directly help with that :|
18:02:12 <pikhq> So, you can compute your IO value and non-atomically execute it. :P
18:02:29 <CakeProphet> oh right. Because STM relies on overloading the monad operatings. You can merely dump it into IO as read/writes implicitly like that.
18:02:37 <CakeProphet> *operators
18:02:39 <CakeProphet> *can't
18:02:40 <CakeProphet> bleh
18:02:56 <cpressey> Here's where I start to dislike Haskell. It's great for executable semantics... but for writing networked, concurrent programs... ehhh. But maybe I just haven't given it a chance.
18:03:15 <pikhq> cpressey: Concurrency is one thing it does very, very well.
18:03:49 <oerjan> *an
18:03:53 <CakeProphet> yeah I don't see concurrency as being an issue
18:04:03 <CakeProphet> in fact it will be quite similar if not easier than writing an equivalent Erlang program.
18:04:16 <CakeProphet> comparable, at least.
18:04:21 <pikhq> With Control.Concurrent.Chan, it is *effectively* the same.
18:04:25 <CakeProphet> yes.
18:04:44 <CakeProphet> though not strictly dynamic.
18:04:57 <CakeProphet> unless, of course, you use Dynamic. :)
18:05:00 -!- Sgeo__ has joined.
18:05:15 <pikhq> However, you also have threading primitives, locks, STM, and some actual *parallelism* primitives to work with.
18:05:27 <Phantom_Hoover> We're presumably using Dynamic to perform implementee-side dynamicness?
18:06:22 <CakeProphet> yes.
18:06:23 <cpressey> Can you pattern-match-receive with C.C.C?
18:06:35 <pikhq> Yes.
18:06:42 <CakeProphet> yeah it would just be a case expression.
18:06:54 <cpressey> And if no cases match?
18:07:03 <CakeProphet> hmmm, I don't recall the exact semantics.
18:07:17 <Phantom_Hoover> How would you do functions?
18:07:21 <pikhq> patternMatchGoesHere <- readChan yourChannelHere
18:07:28 <Phantom_Hoover> Can you even define runtime functions in Haskell?
18:07:32 -!- Sgeo_ has quit (Ping timeout: 265 seconds).
18:07:35 <CakeProphet> Phantom_Hoover: what do you mean. Are you asking how one does functions in Haskell? All the time. :P
18:07:43 <pikhq> (readChan is in IO)
18:07:49 <Phantom_Hoover> No, I mean for the implementee.
18:08:01 <CakeProphet> Phantom_Hoover: I don't believe so. I don't think it will be necessary though.
18:08:22 <pikhq> cpressey: If you're from within do notation, then you get an failed pattern match error. Otherwise, depends on what you wrote for the case statement.
18:08:32 <CakeProphet> Phantom_Hoover: I'm not sure I understand the question. -_-
18:08:33 <cpressey> Small difference would be, I think, that Erlang leaves any messages in the queue if there's no match. There was some design reason for that (not sure what atm.) I'm sure you could emulate it somehow with C.C.C., but it might be a bit roundabout
18:08:36 <pikhq> s/an/a/
18:08:46 <Phantom_Hoover> How would you do functions for the language being implemented?
18:08:56 <CakeProphet> cpressey: you could, but I'll just incorporate the semantic change. Make sure every message is handled.
18:09:44 <oerjan> !haskell import Data.Dynamic; dynlist = [toDyn (3::Int), toDyn ("hi"::String)]; main = print (map fromDynamic dynList :: [Maybe String])
18:09:45 <CakeProphet> Phantom_Hoover: ah. you're asking about interpreter design. You could have Haskell objects to represent executable script code, possibly pre-process/compiled to a bytecode of some kind, and then simply interpret it.
18:09:55 <pikhq> The idea for Erlang is to have multiple queues being read from a single process or *something*...
18:10:02 <oerjan> !haskell import Data.Dynamic; dynList = [toDyn (3::Int), toDyn ("hi"::String)]; main = print (map fromDynamic dynList :: [Maybe String])
18:10:05 <EgoBot> [Nothing,Just "hi"]
18:10:08 <pikhq> Whereas with C.C.C., you tee the channel for the multiple readers.
18:11:02 <CakeProphet> Phantom_Hoover: you would need a) a general way to execute script code b) an interface to the primitive Haskell objects being manipulated.
18:12:25 <Phantom_Hoover> Well, the obvious way to do basic things like addition and I/O is to have a Haskell function do it.
18:13:09 <Phantom_Hoover> So it would be nice if you could have user-defined functions as Haskell ones.
18:13:10 <CakeProphet> there are different approaches. I've seen scheme interpreters that implement dynamic typing through Haskell allowing multiple type constructors for a single type. data SchemeVal = Number DoubleVal | StringVal String | ListVal [SchemeVal] | PrimitiveFunc (...) | SchemeFunc (...) | ...
18:13:16 <Phantom_Hoover> Oh, wait.
18:13:29 <cpressey> interpret (AddCommand a b) = (IntResult (a + b))
18:13:38 <cpressey> or, rather
18:13:42 <Phantom_Hoover> You can have an interpret function.
18:14:03 <cpressey> (AddCommand (IntVal a) (IntVal b)) = (IntVal (a + b))
18:14:07 <CakeProphet> well. if I do make a scripting language. It will be a /language/. That generally includes procedure abstraction. :D
18:14:46 <CakeProphet> but it will be very simple. The idea is to be easy to write.
18:14:58 -!- coppro has joined.
18:14:59 <Phantom_Hoover> Something along the lines of interpret :: SchemeFunc -> [SchemeVal] -> SchemeVal
18:14:59 <cpressey> Embed lua!
18:15:02 <cpressey> Heh.
18:15:07 <cpressey> Easy for C, not so much for Haskell.
18:15:07 <CakeProphet> Phantom_Hoover: well, not quite
18:15:15 <CakeProphet> Phantom_Hoover: you have to remember SchemeFunc is not a type but a constructor
18:15:18 <CakeProphet> the only type defined is SchemeVal
18:15:19 <Phantom_Hoover> Yes, perhaps.
18:15:22 <oerjan> cpressey: i see Chan as an unGetChan function which you could presumably use to put the value back if the case doesn't match
18:15:23 <CakeProphet> which is where the dynamic typing comes in.
18:15:24 <pikhq> cpressey: Haskell can link against C, so bamf.
18:15:27 <oerjan> *has
18:15:36 <Phantom_Hoover> Well, make SchemeFunc part of SchemeVal.
18:15:45 <CakeProphet> Phantom_Hoover: right, it was in my example.
18:16:37 <Phantom_Hoover> Ah, yep.
18:16:46 <Phantom_Hoover> I missed that, sorry.
18:16:48 <CakeProphet> Phantom_Hoover: so that's where dynamic type checking comes in. The interpret function would ask "is this a scheme function? okay then I should run it. Is it a primitive function? I should delegate to the internal Haskell function? Is it anything else? Then this is a runtime error".
18:16:59 <Phantom_Hoover> Yes.
18:17:14 <Phantom_Hoover> Although that isn't really dynamic, is it?
18:17:27 <Phantom_Hoover> It's more pattern matching on algebraic data types.
18:17:36 <CakeProphet> Phantom_Hoover: have you read Structure and Interpretation of Computer Programs? There's a whole chapter in which they write a scheme interpreter in scheme. Gives you a good idea of how the basic design for an interpreter works.
18:17:36 <Phantom_Hoover> Well, they both do the same thing.
18:17:46 <Phantom_Hoover> CakeProphet, I have not.
18:17:53 <CakeProphet> Phantom_Hoover: it's not dynamic in Haskell no. But your Scheme language that you create will have dynamic typing, yes.
18:18:01 <Phantom_Hoover> Yes.
18:18:09 <Phantom_Hoover> Oh, is it Scheme-based?
18:18:30 <cpressey> I think there could be two meaning of "dynamic" floating around now, too :)
18:18:56 <Phantom_Hoover> I am talking about Haskell-side dynamicity.
18:19:09 <Phantom_Hoover> CakeProphet is talking about Scheme-side.
18:19:26 <CakeProphet> ah.
18:19:31 <Phantom_Hoover> Wait, Scheme doesn't let you define your own types, does it?
18:19:41 <CakeProphet> the only way to do dynamic typing in Haskell is with Dynamic. Which I don't understand completely yet.
18:19:57 <CakeProphet> Phantom_Hoover: hmmm, not sure about Scheme. I know CLisp does but not scheme.
18:20:12 <cpressey> Scheme itself does not.
18:20:22 <Phantom_Hoover> Well, there goes that problem
18:20:37 <CakeProphet> ah... yes. finite number of types = easy runtime type checking. :)
18:20:38 <Phantom_Hoover> How much of Scheme is being implemented?
18:20:46 <Phantom_Hoover> All of it?
18:21:05 <CakeProphet> -shrug- none. I don't even plan on using Scheme. Scheme is always a good example to start with for language design though. It's the first steps. :)
18:21:32 <Phantom_Hoover> Ah.
18:21:51 <Phantom_Hoover> I was terrified that continuations might turn up.
18:21:54 * cpressey had awful visions of MUD-programming-meets-EMACS
18:22:00 <CakeProphet> Phantom_Hoover: http://mitpress.mit.edu/sicp/full-text/book/book.html very good book. It's all in Scheme. I read this book when I first started learning programming, and it helped a lot.
18:22:25 <CakeProphet> cpressey: that's not to say I won't consider /a/ Lisp as a scripting lang.
18:22:41 <CakeProphet> at the moment I am designing no scripting language. I want a working Haskell codebase and then I will decide from there.
18:23:27 <Phantom_Hoover> Codebase for what?
18:23:32 <CakeProphet> MUD server.
18:24:01 <CakeProphet> "codebase" is the idiomatic term in MUD communities for a paticular server implementation. They don't use the word "server" to describe games.
18:24:10 <oerjan> CakeProphet: btw there are things you can do with existential types that you cannot do with Dynamic. for example you cannot find the Show instance for a value of unknown type in Dynamic even it has one (Dynamic only allows you to extract known types, essentially)
18:24:31 <CakeProphet> oerjan: ah. I see.
18:24:47 <CakeProphet> oerjan: that makes sense. If the type is not known how can you find the proper instance?
18:25:00 <oerjan> yeah
18:25:38 <CakeProphet> I would probably use typeclasses in a "complete" Lisp implementation.
18:25:51 <CakeProphet> for heterogenous containers I would use an existential.
18:29:52 <CakeProphet> for a MUD though I would seriously consider creating a custom language though. Probably based on tables like Lua.
18:30:18 <CakeProphet> it's only natural for a MUD... you're essentially just manipulating big tables of associated data.
18:32:59 -!- oerjan has quit (Quit: Later).
18:36:16 <AnMaster> CakeProphet, erlang?
18:36:22 <CakeProphet> AnMaster: what about it?
18:36:34 <AnMaster> CakeProphet, I thought you were doing your MUD in it
18:36:43 <AnMaster> * cpressey had awful visions of MUD-programming-meets-EMACS <-- sounds awesome
18:36:52 <CakeProphet> well, I haven't started yet. Still in planning, so the possibility of a different language still exists.
18:37:11 <CakeProphet> AnMaster: and yeah, I agree. A lisp scripter would be pretty swanky.
18:37:44 <AnMaster> CakeProphet, you could do erlang scripting in erlang though. Anyway if you want to parse with yacc and such erlang has yecc
18:37:51 <AnMaster> which is yacc for erlang
18:38:01 <AnMaster> CakeProphet, might be worth considering
18:38:22 <CakeProphet> hmmm, maybe. Scripting is really a later concern.
18:39:08 <CakeProphet> I think Haskell would have real benefits in this kind of project.
18:39:14 <CakeProphet> there's a lot of strong points.
18:39:44 <CakeProphet> and it would be fun. I've yet to put anything complex in a Haskell program. :)
18:40:14 <Phantom_Hoover> I implemented Dawkins' weasel in Haskell once.
18:40:28 <Phantom_Hoover> It had options and everything.
18:41:12 <AnMaster> CakeProphet, you haven't done anything complex in erlang either! ;P
18:41:33 <AnMaster> and erlang has a lot of strong points for this
18:42:13 <CakeProphet> that's also true.
18:42:51 <CakeProphet> but... I vastly prefer Haskell to Erlang, based on my study of their libraries and semantics.
18:43:07 <CakeProphet> and I think most of Erlang's strong-points are available in Haskell as well.
18:43:14 <AnMaster> Phantom_Hoover, Dawkins' weasel?
18:43:14 <CakeProphet> some are different, yes.
18:43:31 <pikhq> AnMaster: Parsec is significantly better than Yacc.
18:43:39 <Phantom_Hoover> AnMaster, weasel program?
18:43:39 <AnMaster> pikhq, probably
18:43:47 <pikhq> It is, in fact, lightyears beyond the competition.
18:43:47 <AnMaster> CakeProphet, concurrency would be harder in haskell as far as I understood?
18:43:52 <Phantom_Hoover> It evolves a string towards another
18:43:55 <AnMaster> Phantom_Hoover, I have no idea what it is, thus I'm asking
18:44:00 <AnMaster> ah
18:44:10 <pikhq> AnMaster: Haskell concurrency is *easy*.
18:44:32 <AnMaster> pikhq, isn't it mostly parallel computation, rather than message passing
18:44:33 <Phantom_Hoover> It's called a weasel program because the original string was "METHINKS IT IS LIKE A WEASEL"
18:44:40 <AnMaster> pikhq, making it good for very very different things
18:44:51 <AnMaster> pikhq, number crunching rather than server/client
18:44:52 <pikhq> No, that's Haskell parallelism.
18:45:17 <CakeProphet> Haskell has messaging passing and parallelism
18:45:17 <AnMaster> pikhq, and reloading code on the fly?
18:45:21 <AnMaster> pikhq, what about that bit?
18:45:22 <pikhq> Haskell concurrency has message passing, (fairly normal) threading, and software transactional memory.
18:45:27 <AnMaster> which would be _very_ useful in a MUD
18:45:30 <CakeProphet> yes.
18:45:36 <pikhq> AnMaster: That's not concurrency.
18:45:39 <AnMaster> pikhq, true
18:45:43 <AnMaster> pikhq, did I claim it was?
18:45:46 <AnMaster> pikhq, no I didn't
18:45:50 <pikhq> You seemed to be.
18:45:54 <CakeProphet> AnMaster: I think hot swapping can be achieved by other means. There are codebases in C that do it, so I think I can just do what they do.
18:45:55 <AnMaster> pikhq, I'm just asking if haskell have it
18:46:01 <pikhq> "What about concurrency? And reloading code on the fly?"⇧
18:46:10 <CakeProphet> The extensional definition of function equality, discussed above, is commonly used in mathematics. Sometimes additional information is attached to a function, such as an explicit codomain, in which case two functions must not only agree on all values, but must also have the same codomain, in order to be equal.
18:46:12 <AnMaster> pikhq, yes seems clear to me,
18:46:17 <CakeProphet> so, question about this wp paragraph.
18:46:21 <AnMaster> CakeProphet, in C you do dlopen() and such stuff. It isn't easy though
18:46:27 <pikhq> Hot swapping code is rather *annoying* to do in Haskell.
18:46:33 <AnMaster> CakeProphet, and swapping the core program is hard
18:46:33 <pikhq> It's possible, but a pain.
18:46:45 <AnMaster> pikhq, see that is a good reason for CakeProphet to use erlang
18:46:52 <AnMaster> since it will be very useful in a MUD
18:46:55 <CakeProphet> if two functions agrees on all values, wouldn't they have the same codomain.
18:47:14 <CakeProphet> the two statements seem redundant because they overlap.
18:47:26 <pikhq> AnMaster: The simplest way is to pass the state as a command line argument when fork/exec'ing.
18:47:28 <CakeProphet> unless I misunderstand codomain.
18:47:51 <AnMaster> pikhq, that could be larger than the cmdline length limit
18:47:51 <pikhq> And relying on how file descriptors will go across that.
18:48:02 <CakeProphet> pikhq: if I recall that's essentially what the C server do. They save state to a file of some kind and then load it via command line argument.
18:48:17 <pikhq> Or you can save the state to a tmp file.
18:48:22 <AnMaster> yes that works
18:48:42 <pikhq> Basically, though, this is a feature very peculiar to Erlang.
18:48:49 <AnMaster> anyway, that is not free from interruptions. And depending on how large your state is it could take some time
18:48:51 <CakeProphet> in any hot swapping is something that can be implemented to a degree and I'm not terribly concerned with it.
18:48:53 <pikhq> Allowed by its VM.
18:48:57 <AnMaster> pikhq, indeed
18:49:01 <AnMaster> pikhq, what about jvm?
18:49:06 <CakeProphet> *in any case
18:49:12 <AnMaster> shouldn't it allow that too?
18:49:14 <pikhq> JVM doesn't allow for it, though it would be a fairly simple addition.
18:49:22 <AnMaster> pikhq, .NET?
18:49:28 <pikhq> No.
18:49:33 <CakeProphet> I think dynamic typing is why hotswapping is easy for Erlang.
18:49:44 <CakeProphet> I've implemented "degrees" of hot-swappability in Python code before.
18:49:50 <AnMaster> pikhq, anyway there are other ways to do it in C: mprotect() and loading new code then jumping to it
18:49:59 <pikhq> Mmm.
18:50:03 <AnMaster> you need some code elsewhere to do that of course
18:50:08 <Phantom_Hoover> AnMaster, not portable.
18:50:10 <AnMaster> and it would be quite painful and brittle
18:50:12 <AnMaster> Phantom_Hoover, I know
18:50:25 <CakeProphet> I'm still not entirely sure which I want to use. I'm considering.
18:50:36 <AnMaster> CakeProphet, python has some issues with reloading code. I tried.
18:50:42 <AnMaster> CakeProphet, buggy results sometimes
18:50:43 <Phantom_Hoover> And you'd need to put a compiler into your program to make the swapping usable.
18:50:57 <CakeProphet> but I've certainly looked into Erlang. I've actually research just about every library I would be using to my advantage in Erlang. I intend to do the same for Haskell and then determine which I'd prefer.
18:51:00 <cpressey> You can hotswap .so's if you're really into that sort of thing.
18:51:03 <Phantom_Hoover> And any swappable functions would have to be copied from .text
18:51:05 <AnMaster> Phantom_Hoover, it could compile the code first then hot swap the object files into the program
18:51:21 <Phantom_Hoover> Hence it needs a compiler somewher.e
18:51:28 <AnMaster> Phantom_Hoover, no
18:51:32 <AnMaster> Phantom_Hoover, it needs a _linker_
18:51:36 <AnMaster> not a compiler
18:51:50 <AnMaster> very very different
18:51:56 <Phantom_Hoover> So the swapped code would be created at compile-time?
18:52:07 <AnMaster> what?
18:52:13 <AnMaster> you could compile new object files
18:52:29 <AnMaster> then load them into your program, jump to the new ones, unload the old
18:52:48 <Phantom_Hoover> So you need a compiler to compile the new object files.
18:52:51 <AnMaster> Phantom_Hoover, depending on details you need either a dynamic linker or a linker
18:53:03 <AnMaster> Phantom_Hoover, yes but it wouldn't be inside your program
18:53:05 <AnMaster> that is my point
18:53:48 <Phantom_Hoover> AnMaster, you'd need a compiler somewhere, and the resulting code would be pretty non-portable.
18:54:09 <AnMaster> Phantom_Hoover, yes it would rely on linux allowing mprotect() on non-mmaped pages
18:54:22 <CakeProphet> I think STM would be potentially worth using Haskell.
18:54:30 <AnMaster> CakeProphet, STM?
18:54:33 <Phantom_Hoover> And knowing the object format. And knowing where the compiler is kept.
18:54:39 <fizzie> AnMaster: you can (IIRC) have a POSIX shared memory segment that'll survive an exec() call; you can use that to pass as much state as you want (within reasonable limits).
18:54:43 <AnMaster> Phantom_Hoover, or you could just use a wrapper binary that loads *.so with all the code except what is needed to hotswap
18:54:56 <CakeProphet> Software Transactional Memory. It is a method of manipulating shared state in Haskell. Of course, I can combine it with message passing as well.
18:54:58 <AnMaster> fizzie, 2 GB? probably not ;P
18:55:22 <fizzie> You could use serialization-to-a-file for that, but...
18:55:47 <AnMaster> CakeProphet, does haskell allow you to do symbolic debugging at runtime?
18:56:01 <CakeProphet> hmmm... dunno.
18:56:31 <AnMaster> CakeProphet, like, you can just attach a debugger and inspect variables and so on. Possibly just dumping complete state without pausing the thread
18:56:37 <AnMaster> erlang allows that just fine
18:56:48 <ais523> mind boggles: not only was WINE ported to Windows, it also turns out that DosBox was ported to DOS
18:57:04 <AnMaster> ais523, why would wine be ported to windows
18:57:17 <AnMaster> ais523, and dosbox is basically eval() on DOS?
18:57:19 <ais523> AnMaster: some Windows programs actually run better under WINE than they do native
18:57:27 <Phantom_Hoover> Huh?
18:57:27 <AnMaster> ais523, wait, dosbox isn't the one using vm86() is it?
18:57:33 <AnMaster> it is dosemu that does that?
18:57:35 <ais523> and no, DosBox still emulates, whether on DOS or not
18:57:51 <AnMaster> ais523, which windows programs?
18:57:57 <ais523> not sure offhand
18:58:00 <Phantom_Hoover> AnMaster, why the brackets in vm86()?
18:58:12 <Phantom_Hoover> Ah.
18:58:24 <AnMaster> Phantom_Hoover, parentheses you mean?
18:58:35 <Phantom_Hoover> Yes.
18:58:37 <AnMaster> Phantom_Hoover, and it is because it is a syscall on linux that I refer to
18:58:52 <Phantom_Hoover> I know, hence the "ah".
18:58:58 <AnMaster> ah I see
18:59:16 <AnMaster> why did you ask then? Or did you check man pages in between?
18:59:46 <Phantom_Hoover> Yes.
19:01:40 -!- MizardX has quit (Ping timeout: 276 seconds).
19:25:47 <CakeProphet> anyone have experience with debuggers in Haskell?
19:26:29 <Phantom_Hoover> GHCi probably has something.
19:27:59 <CakeProphet> ha. to #haskell !
19:35:37 <AnMaster> http://en.wikipedia.org/wiki/File:Surstroemmngsklaemma.png <-- yes it is traditionally eaten with milk. No idea why. And no idea why it is eaten at all either.
19:35:50 <AnMaster> since it is basically sour fermented fish
19:35:56 <AnMaster> wait, wrong channel
19:35:57 <AnMaster> XD
19:38:19 <Phantom_Hoover> What on earth is that?
19:38:27 <Deewiant> Surströmming
19:39:03 <cpressey> MMMMmmmmm.
19:39:56 <Deewiant> Or the bit on the left is, anyway
19:40:10 <cpressey> "These bacteria produce carbon dioxide and a number of compounds that account for the unique odour: pungent (propionic acid), rotten-egg (hydrogen sulfide), rancid-butter (butyric acid), and vinegary (acetic acid)."
19:40:16 <Deewiant> The other bits appear to be potato, onion, and bread
19:40:20 <Deewiant> And a glass of milk
19:40:40 <cpressey> Rotten egg AND rancid butter, together at last.
19:40:58 <AnMaster> Phantom_Hoover, a local speciality in some parts of north Sweden
19:41:05 <AnMaster> Phantom_Hoover, luckily I don't live there
19:41:28 <Deewiant> cpressey: Just smells resembling them
19:41:32 <AnMaster> Deewiant, the bread is tunnbröd
19:41:39 <AnMaster> I don't know if it is local to Sweden?
19:41:46 <AnMaster> tunnbröd is very tastey though
19:41:51 <Deewiant> Not lefse?
19:41:51 <AnMaster> soft very thin bread
19:41:57 <AnMaster> tunnbröd means "thin bread"
19:42:02 <AnMaster> Deewiant, wtf is "lefse"?
19:42:10 <Deewiant> Hmm, maybe I'm confusing with Norway
19:42:20 <Deewiant> Yeah, I am
19:42:23 <Deewiant> fi:rieska anyway
19:42:55 <cpressey> Deewiant: Yes, well you can't have evrything I suppose.
19:42:57 <AnMaster> http://en.wikipedia.org/wiki/Tunnbr%C3%B6d <-- well on that image I only tried the left version
19:43:02 <AnMaster> no idea about the one on right
19:43:33 <AnMaster> wait actually, I might have tried it once
19:43:36 <AnMaster> if so it was very good
19:43:45 <AnMaster> was ages ago I had some strange sort of tunnbröd
19:43:57 <Deewiant> The English term is flatbread
19:44:17 <AnMaster> Deewiant, not the same though
19:44:19 <Deewiant> Although the variants are different enough that I suppose they're all correct (as names) in any language
19:44:38 <AnMaster> Deewiant, English flatbread tastes quite differently iirc
19:44:40 <Deewiant> Flatbread is the all-encompassing term
19:44:46 <AnMaster> ah right
19:45:21 <cpressey> And, i dont think english cuisine has its own flatbread.
19:45:46 <Deewiant> I'll leave informing about that to the English
19:45:58 <cpressey> Tortillas, bannock...
19:46:25 <AnMaster> hm okay
19:47:42 <AnMaster> cpressey, anyway all parts except the fish in that image are eatable (though not very well together). The fish is claimed by some to be eatable but I strongly disagree from the smell. Never tasted it
19:48:03 <Deewiant> They're edible enough together — minus the fish, like you say
19:48:52 <AnMaster> Deewiant, I don't like potato on bread, but maybe that is just me
19:49:04 <AnMaster> garlic on bread I like. But definitely not on tunnbröd
19:49:14 <AnMaster> tunnbröd has a rather special taste in itself
19:49:25 <AnMaster> and yeah that is onions not garlic
19:49:38 <Deewiant> I don't particularly like garlic
19:49:49 <AnMaster> I _love_ garlic.
19:50:21 <AnMaster> Deewiant, sometimes during late evenings I take pressed garlic on buttered hot bread.
19:50:34 <AnMaster> should be hot enough that the butter melts
19:50:40 <AnMaster> so heat the bread in the oven
19:50:44 <AnMaster> apply butter
19:50:52 <AnMaster> then quickly into the oven again for about half a minute
19:51:12 <AnMaster> then take it out, use the garlic pressed and yum
19:51:53 <Deewiant> Is an oven superior to a toaster?
19:52:06 <AnMaster> Deewiant, well less burnt when you heat it a lot
19:52:12 <AnMaster> Deewiant, that is the main reason
19:52:17 <CakeProphet> anyone know a combination IRC client and IM client?
19:52:25 <AnMaster> CakeProphet, they all suck
19:52:27 <AnMaster> for irc
19:52:28 <CakeProphet> key stipulation: a good one
19:52:29 <AnMaster> or for im
19:52:41 <CakeProphet> ah... okay. So I guess I'll just stick to seperate clients.
19:52:41 <AnMaster> CakeProphet, pidgin can do it but it sucks for irc
19:52:46 <Deewiant> You can just heat it for a short time, I find it hot enough
19:52:51 <CakeProphet> AnMaster: yeah, I've noticed. pidgin is my current IM client
19:53:12 <AnMaster> Deewiant, nah then you aren't using proper butter. As in pure butter, not butter mixed up with stuff to make it easier to put on bread
19:53:15 <Deewiant> Depends on the bread type, though
19:53:24 <AnMaster> and yeah depends on bread type a lot
19:53:47 <Deewiant> There's butter like that? I thought there's only pure butter and margarine
19:53:51 <AnMaster> now I'm going to eat some "fenugreek" flavoured cheese. This might not be correct. It is from interwiki on "bockhornsklöver" in Swedish
19:54:05 <Phantom_Hoover> Does Finland count as part of Scandinavia?
19:54:29 <AnMaster> Phantom_Hoover, either that or Nordic that it isn't part of. Never remember which
19:54:31 <Deewiant> Depends on whether you define Scandinavia as including Finland
19:54:43 <Phantom_Hoover> Ah, well.
19:54:59 <CakeProphet> you know... I sincerely believe there is a better way to organize desktop environments / UIs
19:55:14 <Phantom_Hoover> In any case, an inordinate number of people here are from Scandinavia \/ Finland.
19:55:16 <CakeProphet> than the current standard.
19:55:28 <Phantom_Hoover> (That was meant to be a union operator)
19:55:33 <Deewiant> Heh: "[Finland] has shifted from being a province in the Swedish Empire to an autonomous unit in 'Eastern' Europe, then to an independent state in 'Northern' Europe or 'Scandinavia'. After joining the European Union, Finland has recently been included in 'Western Europe'."
19:55:36 <Phantom_Hoover> CakeProphet, what's the current standard?
19:55:45 <Deewiant> Gotta love political terminology
19:58:58 -!- sebbu has quit (Ping timeout: 264 seconds).
20:00:34 <pikhq> Deewiant: All of that seems like arbitrary definitions.
20:00:45 <Deewiant> No shit?
20:07:17 <CakeProphet> I believe the "Western Europe" definition implies a particular state of development.
20:08:29 <pikhq> Rather than, as its name implies, a particular geographic region
20:12:26 <Gregor-P> "Western Europe" = snooty Europe
20:12:41 <Gregor-P> "Eastern Europe" = poor Europe
20:18:36 -!- cheater109 has joined.
20:22:02 -!- cheater99 has quit (Ping timeout: 240 seconds).
20:24:44 -!- cheater109 has quit (Quit: Leaving).
20:25:01 -!- cheater109 has joined.
20:25:49 <AnMaster> pikhq, the "province in the Swedish Empire" I believe was arbitrary at a sword point though.
20:25:52 <AnMaster> ;P
20:26:38 <Deewiant> As was that "autonomous unit in 'Eastern' Europe"
20:34:20 <AnMaster> Deewiant, no that was more likely at a gunpoint
20:34:33 <AnMaster> ;)
20:34:55 <AnMaster> or pistolpoint
20:35:07 <AnMaster> hm actually I guess the Swedish one would have been that too
20:35:14 -!- kar8nga has quit (Remote host closed the connection).
20:36:55 <Deewiant> No, that was really more swordpoint
20:37:48 <Deewiant> Or crosspoint (crusades and all that)
20:38:15 <AnMaster> Deewiant, I thought it was a bit later than that hm
20:38:26 <AnMaster> but probably you are right
20:38:33 <Deewiant> http://en.wikipedia.org/wiki/Treaty_of_N%C3%B6teborg
20:42:13 <Deewiant> Or maybe more relevantly http://en.wikipedia.org/wiki/Second_Swedish_Crusade
20:42:33 <AnMaster> gn
20:42:40 <Deewiant> hm*
20:42:45 <AnMaster> thanks
20:42:53 <AnMaster> didn't notice it myself
20:42:56 -!- sebbu has joined.
20:47:29 <cpressey> Man, virtualbox's shared folders are so much worse than vmware's.
20:51:00 <AnMaster> cpressey, I don't use them. However it is a lot nicer in many other aspects
20:51:18 <AnMaster> cpressey, anyway the shared folders work don't they?
20:51:25 <AnMaster> cpressey, I fail to see what more they could do
20:51:37 <cpressey> They /barely/ work.
20:51:42 <AnMaster> cpressey, ?
20:51:50 <AnMaster> cpressey, I tend to use nfs or samba anyway
20:52:22 <cpressey> I've been waiting for 5 minutes for my virtualenv to come back up after killing it. All it's doing is writing a couple of files to the shared folder.
20:52:54 <cpressey> Also, writing a file to a shared folder sometimes collides with its own lock. I have no idea what's going on there.
20:53:42 <AnMaster> cpressey, I used them very rarely but when I did they worked perfectly
20:53:47 <AnMaster> cpressey, linux host and windows guest
20:54:04 <AnMaster> windows xp 64bit, linux 2.6.x 64-bit
20:54:05 <cpressey> Ah, well. Swap those and see what happens :)
20:54:07 <AnMaster> to be specific
20:54:13 <AnMaster> cpressey, no clue at all about that
20:54:38 <cpressey> It's still better than VMWare periodically forgetting what a NIC is.
20:54:48 <AnMaster> huh it does that?
20:54:56 <AnMaster> cpressey, anyway you could use samba to share the files
20:56:11 <pikhq> Better than dealing with VMware's *horrible* UIs.
20:56:21 <cpressey> It does that with Turnkey Linux, about once a month. No idea how to get it back, have to start over from a backup image basically.
20:57:42 <AnMaster> cpressey, turn key linux?
20:57:48 <AnMaster> cpressey, never heard of that distro
20:58:05 <cpressey> I was thinking about ais523's comments on DOSBox-in-DOS and WINE-in-Windows... I actually think that would be a good property for an OS to have inherently.
20:58:18 <cpressey> AnMaster: It's nothing special.
20:58:22 <AnMaster> cpressey, how do you mean
20:58:37 <cpressey> AnMaster: Well, sandboxing, basically.
20:58:44 <AnMaster> cpressey, like jails on *bsd?
20:58:49 <cpressey> But in the style of "Scheme-interpreter-written-in-Scheme" :)
20:58:49 <AnMaster> well, freebsd at least
20:58:59 <AnMaster> ah not like jails I guess
20:59:18 <cpressey> Metacircular jail sandbox bootstrap!
20:59:29 <Phantom_Hoover> CakeProphet, still working on that MUD?
20:59:34 <AnMaster> cpressey, so nothing like freebsd jails or such
20:59:44 <cpressey> No, FreeBSD cheats ;)
20:59:53 <AnMaster> cpressey, well yes but it works rather well
20:59:57 <cpressey> Plash cheats too
21:00:04 <cpressey> Pfah works
21:00:09 <AnMaster> cpressey, yes but in quite a different way
21:00:12 <AnMaster> pfah?
21:00:20 <cpressey> "ffs", as you would say.
21:00:23 <AnMaster> ah
21:00:54 <Phantom_Hoover> cpressey, would CPU emulation be needeD?
21:00:55 <AnMaster> cpressey, "ffs works" still makes no sense there
21:00:58 <cpressey> I meant, "Pfah! 'Works'!"
21:01:03 <AnMaster> ah
21:01:18 <cpressey> Phantom_Hoover: Need to do it on a LISP machine for full effect, and in that case, no :)
21:01:36 <AnMaster> cpressey, you thinks it works badly? Or "works is not enough here"?
21:01:39 <Phantom_Hoover> I wish Lisp machines were still around.
21:01:51 <Phantom_Hoover> Everyone thinks they were so good...
21:02:16 <AnMaster> there should he haskell machines
21:02:39 <AnMaster> except that doesn't work as well as a concept I think. Maybe
21:02:46 <AnMaster> erlang machines sound more reasonable
21:02:48 <cpressey> I mean, "Who cares about 'works'? This is purity of design we're talking about here." Of course, in the recent context of a complaint that virtualbox is taking ages, I suppose this is somewhat hypocritical.
21:02:52 <AnMaster> it has more of the "closed system" feeling
21:03:07 <cpressey> AnMaster: Was it you who told me about the ECOMP chip?
21:03:16 <AnMaster> cpressey, probably not. What is ECOMP
21:03:28 <cpressey> ECOMP is Erlang-in-hardware.
21:03:33 <AnMaster> cpressey, link?
21:03:55 <AnMaster> cpressey, google gives me useless stuff
21:03:56 <CakeProphet> Phantom_Hoover: yes. Sort of. Doing schoolwork right now but I'll always be working on it. :)
21:04:04 <cpressey> www.erlang.org/euc/00/processor.ppt (warning: powerpoint)
21:04:23 <AnMaster> cpressey, ah googling that url gives me "show as html" :)
21:04:44 <cpressey> Oh, this is where I learned about it: http://prog21.dadgum.com/64.html
21:07:31 <AnMaster> wait what? ETS in hardware!?
21:07:49 <cpressey> Why not?
21:07:55 <AnMaster> cpressey, hm
21:08:13 <AnMaster> cpressey, well since a summer project of mine is befunge93 in VHDL...
21:08:45 <AnMaster> I guess I shouldn't be surprised
21:09:34 -!- Tessste has joined.
21:10:51 <AnMaster> cpressey, I guess nothing became of ECOMP though?
21:11:22 -!- Tessste has left (?).
21:11:50 -!- cheater109 has quit (Quit: Leaving).
21:14:33 <cpressey> AnMaster: Well, it was experimental.
21:14:46 <AnMaster> true
21:15:11 <AnMaster> cpressey, they could have published the VHDL code at that point to let people have some fun
21:17:13 -!- cal153 has quit (Ping timeout: 264 seconds).
21:18:06 <fizzie> AnMaster: Are you this same [your real name here] that has once written to the supertux-devel list about a yeti?-)
21:22:02 -!- cheater99 has joined.
21:22:05 <cheater99> hello sweeties
21:22:41 -!- ais523 has quit (Remote host closed the connection).
21:47:05 <coppro> what's the language called where the only valid program is an empty file?
21:47:06 <AnMaster> <fizzie> AnMaster: Are you this same [your real name here] that has once written to the supertux-devel list about a yeti?-) <-- I don't think I wrote that. But I was/still am a supertux developer
21:47:10 <AnMaster> nowdays inactive
21:47:27 <AnMaster> fizzie, I probably edited that level at some point
21:47:38 <AnMaster> I blame stupid level editor if my name is listed as author
21:48:19 <fizzie> I don't know about that; I just saw the email list posting in google.
21:48:28 <AnMaster> fizzie, huh, how comes you saw that
21:48:50 <AnMaster> fizzie, I mean you googled me or what?
21:50:42 <fizzie> I googled the level name.
21:51:02 <fizzie> Well, "a" level name.
21:51:16 <fizzie> I wanted to know if the game was supposed to continue from that final-battle-like yeti thing.
21:53:28 -!- sebbu has quit (Quit: reboot).
21:56:17 <AnMaster> fizzie, yes it is
21:56:36 <AnMaster> fizzie, well in svn at least
21:56:44 <AnMaster> fizzie, not sure which release you are playing
21:59:37 -!- zzo38 has joined.
22:00:41 -!- zzo38 has set topic: Snarkiness tolerated and encouraged | Well, except for that | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
22:02:11 <zzo38> Now I fixed the topic message, why was there ] at the end before?
22:04:22 -!- cpressey has left (?).
22:05:04 <fizzie> It says 0.3.3-2 in the package version field; I just grabbed what was in Ubuntu lucid.
22:05:07 <zzo38> (The only thing I changed is removing ] at the end)
22:06:01 -!- alise has joined.
22:06:14 <alise> Good evening.
22:06:46 <pikhq> Good evening, sir/ma'am alise.
22:07:31 <alise> I'm captain of #esoteric now?
22:07:44 <pikhq> Nope.
22:08:10 <alise> Aww...
22:09:28 <zzo38> Good day
22:09:56 <zzo38> (In my location, which is the same timezone as the log, it is not evening yet)
22:10:22 <alise> The log should *really* be in UTC, though.
22:10:28 <alise> And, in fact, botte's log will be.
22:10:51 <zzo38> I have idea (I don't know how well it would work), that some program in Linux can run another program with override system call
22:11:07 <zzo38> The log should be SIRCL, in my opinion
22:11:37 <alise> zzo38: it can do that
22:11:40 <alise> anagolf does it
22:11:46 <alise> zzo38: what, botte's or clog's?
22:11:53 <alise> If botte's, show me SIRCL and I'll consider it.
22:11:59 <zzo38> About the system call, this is called "overcall" interface, and then it overrides some or all system calls for a child program, but that means the overcall has to emulate switch user ID's and stuff
22:12:13 <AnMaster> fizzie, hm not sure then
22:12:24 -!- Warrigal has joined.
22:12:24 <AnMaster> fizzie, there are bonus worlds elsewhere
22:12:34 <AnMaster> fizzie, contrib or whatever it is called in your locale
22:12:40 <alise> AnMaster: SuperTux.
22:12:42 <fizzie> Yes, I saw those.
22:12:43 <alise> (Just guessing.)
22:12:48 <alise> Warrigal: Back to the old name?
22:12:51 <AnMaster> fizzie, very varying quality
22:13:00 <pikhq> zzo38: That would be quite nice to have. Make for a nice sandboxing scheme.
22:13:00 <Warrigal> No, it's always this when I connect.
22:13:00 <AnMaster> fizzie, some bad, some near unplayable IMO
22:13:10 <Sgeo__> Hi alise
22:13:10 <AnMaster> Warrigal, always what?
22:13:16 <Warrigal> But yeah, I don't think I'll return to "uorygl".
22:13:18 <Warrigal> AnMaster: "Warrigal".
22:13:22 <AnMaster> Warrigal, ah
22:13:26 <alise> Warrigal is a much nicer name than uorygl, really.
22:13:35 <alise> One thing Lojban is not is pretty when you transliterate.
22:13:54 <zzo38> alise: SIRCL: http://zzo38computer.cjb.net/textfile/miscellaneous/SIRCL http://zzo38computer.cjb.net/irc_log/ADMIN/1275700304
22:14:05 <AnMaster> <zzo38> I have idea (I don't know how well it would work), that some program in Linux can run another program with override system call <-- you could do that with ptrace iirc
22:14:08 <pikhq> Wait, *that's* where "uorygl" comes from?
22:14:12 <alise> pikhq: Indeed.
22:14:16 <Deewiant> Warrigal is Lojban?
22:14:31 <AnMaster> <pikhq> Wait, *that's* where "uorygl" comes from? <-- where?
22:14:35 <Warrigal> "Warrigal" is English; "uorygl" is "Warrigal" transcribed into Lojban.
22:14:35 <alise> uorygl is "Warrigal" transliterated into Lojban.
22:15:01 <alise> "Warrigal" is technically Australian English, isn't it?
22:15:05 <AnMaster> zzo38, it should use LF not CRLF
22:15:07 <AnMaster> zzo38, IMO
22:15:09 <Deewiant> One letter away from Finnish :-P
22:15:15 <zzo38> Note: For the overcall interface, my other idea is, you have to also program in how PIDs outside the overcall interface appear inside it and also how PIDs inside it appear outside, and so on
22:15:21 -!- Phantom_Hoover has quit (Quit: Leaving).
22:15:31 <alise> zzo38: Respectfully, I dislike the inconsistent format, and also Unix timestamps.
22:15:44 <pikhq> That's like me changing my nick to ピケッチキュー or something.
22:15:54 <alise> I think I will likely store it as S-Expressions or something similar.
22:16:00 <Warrigal> Deewiant: what is?
22:16:04 <Deewiant> uorygl
22:16:11 <alise> pikhq: So should I work on Flinix, a coreutils, or botte?
22:16:24 <AnMaster> uorygl is lojban!?
22:16:24 <pikhq> alise: Coreutils or botte.
22:16:34 <pikhq> I think I can manage Flinix on my own.
22:16:45 <zzo38> AnMaster: It uses CRLF because that is because the IRC protocol must use CRLF at the end of every line.
22:17:00 <zzo38> SIRCL is not inconsistent.
22:17:05 <Warrigal> uorugl would be much more valid Finnish, aye?
22:17:06 <AnMaster> pikhq, botte? Flinix?
22:17:22 <AnMaster> zzo38, SIRCL is not the IRC protocol though
22:17:31 <alise> pikhq: But I was having such fun.
22:17:35 <alise> And don't tell AnMaster.
22:17:40 <alise> Let him suffer for ignoring me! >:)
22:17:45 <Warrigal> AnMaster: it's not a Lojban word; it's a word usable in Lojban.
22:17:45 <zzo38> AnMaster: You are right, it isn't, but it is based on it
22:17:52 <alise> pikhq: My Flinix is better than your Flinix >_>
22:17:57 <Deewiant> Warrigal: Like said, a letter away. I'd've gone with "uorigl" as the approximation
22:17:59 <pikhq> (btw, "pikecchikyuu" in Hepburn, "pikettikyuu" in Nihon-shiki, and "h^ikextutikixyuu" in my-bizarre-romanisation)
22:18:02 <pikhq> alise: :P
22:18:05 <AnMaster> Warrigal, ah I see
22:18:14 <Warrigal> Deewiant: mm, okay.
22:18:29 <alise> pikhq: Pike ecchi: kyuu
22:18:32 <Deewiant> pikhq: Doesn't Hepburn use those annoying macrons, making it pikecchikyū
22:18:35 <zzo38> In addition, all * commands are even optional in SIRCL, which means that, it is completely valid to just copy a raw protocol transcript to a file and then prefix the UNIX timestamps.
22:18:39 <AnMaster> pikhq, and the usual English name?
22:18:39 <alise> You have a pike fetish you are not telling us about.
22:18:41 <pikhq> Deewiant: Ah, yes.
22:18:54 <zzo38> Although usually you want only channel messages, but a complete log is still a valid SIRCL log.
22:18:55 <alise> Tōkyō <-- STUPID HEPBURN
22:18:58 <pikhq> AnMaster: "pikhq"?
22:19:08 <AnMaster> pikhq, oh I thought it was the name of that pokemon
22:19:09 <AnMaster> nvm
22:19:15 <alise> It is that too.
22:19:26 <alise> pikhq: So, coreutils or botte? :P
22:19:33 <pikhq> alise: Dude, "Toukyou" and "tokyo" are two completely different words. :P
22:19:50 <alise> Well, Wikipedia claims it's Tōkyō :-)
22:19:56 <pikhq> For instance, "tokyo" isn't a word in Japanese, but Toukyou is.
22:20:01 <alise> "Tokyo (東京, Tōkyō; "Eastern Capital"?)"
22:20:27 <alise> So what's 東京 in your crazy unprononuncable romanisation?
22:20:28 <AnMaster> pikhq, what is the capital of Japan called then?
22:20:35 <pikhq> alise: I tend to romanise using the kana rules for noting long vowels just because it's easier to type than a freaking macron.
22:20:35 <zzo38> With the bar over the "o" is more correct romaji
22:20:38 <alise> AnMaster: Tōkyō.
22:20:40 <zzo38> But to be accurate you use kana
22:20:41 <alise> And you can't read this la la la
22:20:41 <pikhq> AnMaster: Toukyou.
22:20:44 <alise> *unpronounceable
22:20:45 <AnMaster> pikhq, ah
22:20:54 <pikhq> Erm.
22:21:06 <pikhq> alise: Toukixyou
22:21:17 <alise> pikhq: wrong, it's called Toukyou-to
22:21:19 <pikhq> My romanisation is an encoding of kana. :P
22:21:27 <alise> or, more accurately, Tōkyō-to
22:21:35 <alise> or, perfectly, 東京都
22:22:09 <pikhq> alise: Dude, that's "The City of Tokyo", not just "Tokyo".
22:22:16 <alise> *ahem*
22:22:19 <zzo38> I also have my own romaji format with is also an encoding of kana, the city Tokyo is named "To.uKiyo.u" which is the encoding of the hiragana for the city name
22:22:25 <alise> "Tokyo (東京, Tōkyō; "Eastern Capital"?), officially Tokyo Metropolis (東京都, Tōkyō-to?),[2] is one of the 47 prefectures of Japan."
22:22:37 <alise> So, the capital of Japan is actually called 東京都.
22:22:40 <pikhq> Sorry, the Metropolis of Tokyo.
22:22:49 <zzo38> My format is meant only for one thing though, only for encoding kana inside of ASCII text
22:22:50 <alise> And these are showing as boxes how can I get a Japanese font on Arch.
22:22:53 <alise> (A nice one preferably)
22:23:18 <pikhq> Yes, and the capital of the US is the City of Washington in the District of Columbia, and the capital of the UK is the City of London. But *who the hell calls it that*?
22:23:49 <pikhq> zzo38: Capitalisation to indicate the start of a syllable or something?
22:23:56 <zzo38> This kind of encoding I made is two ASCII characters per each kana. tsu is "Tu" and small tsu is "tu"
22:24:00 <alise> pikhq: If we'll insist on Toukyou, not Tokyo, we can go all the way.
22:24:16 <pikhq> Oh, wait. To indicate full-sized characters. Duh.
22:24:51 <zzo38> The ".u" is the u with no consonant, so put a period in place of the consonant letter
22:25:01 <pikhq> alise: When discussing the actual word in Japanese, I feel perfectly justified in noting the difference between "Toukyou" and "tokyo".
22:25:12 <alise> 東京都, bitch.
22:25:38 <pikhq> Next time you do that I am using all place names transcribed to Japanese and back.
22:25:53 <zzo38> The "o" is supposed to be long many English people do not understand that it is not "To ki o"
22:26:04 <AnMaster> Gregor, idea: Chopin on SID chipset. I wonder what the heck it will sound like.
22:26:42 <Gregor-P> "SID chipset" is meaningless to me
22:26:59 <AnMaster> <pikhq> Yes, and the capital of the US is the City of Washington in the District of Columbia, and the capital of the UK is the City of London. But *who the hell calls it that*? <-- what about City of Paris?
22:27:00 <alise> Gregor-P: Atari 8-bit music chip.
22:27:04 <alise> Gregor-P: err, no
22:27:07 <alise> Gregor-P: C64
22:27:11 <AnMaster> nop
22:27:14 <alise> Gregor-P: Analogue and awesome
22:27:21 <alise> pikhq: Hey, what's that nice Japanese font you recommended? Mincho Gothic or something?
22:27:34 <alise> Serifèd and all.
22:27:45 <AnMaster> not afaik at least
22:28:33 -!- augur has joined.
22:29:00 <AnMaster> Gregor-P, think C64
22:29:08 <AnMaster> Gregor-P, that is what had the SID chipset for the sound
22:29:18 <AnMaster> Gregor-P, not get it?
22:29:21 <AnMaster> now*
22:29:27 <zzo38> alise: I like the Gothic but if you want serif you use Mincho instead
22:29:30 <alise> Wow, what a condescending way to explain something.
22:29:38 <alise> "Think of this! And this! NOW do you get it?"
22:29:51 <alise> zzo38: I definitely want some hawt serify action.
22:29:56 <Gregor-P> "C64 sound chip" would have been wildly sufficient :P
22:30:13 <alise> pikhq: Wait... Japanese is going to look like shit with full hinting, isn't it?
22:30:52 <fizzie> SID is the powerful indeed. Just imagine: three voices *at the same time*, and not just two, three or four waveforms: instead, *five* different waveforms.
22:31:06 <AnMaster> fizzie, :D
22:31:12 <zzo38> alise: Use Mincho if you want serifs on Japanese text
22:31:19 <AnMaster> Gregor-P, ah anyway I think you should render some of your music that way too. Why not a combination of that and your usual high quality sound fonts
22:31:35 <zzo38> Gothic is for Japanese texts without serif
22:31:41 -!- pikhq has quit (Read error: Connection reset by peer).
22:32:28 <alise> Kanji is so wonderfully ornate; it's a crime to render it sans serif!
22:32:44 -!- cpressey has joined.
22:33:07 -!- pikhq has joined.
22:33:21 <zzo38> I invented a format for module musics, like MOD/S3M/IT/XM but this is a new format: http://zzo38computer.cjb.net/textfile/miscellaneous/amm/amm.txt Do you think it is complete? I think it might be incomplete? Please make comment of it?
22:34:46 <zzo38> alise: It is *not* crime to render it sans serif; I have some Japanese books and they use both serifs and sans serifs writing in these books. (But if you don't like sans serif kanji, just use only serifs kanji yourself, is OK!)
22:35:02 <alise> zzo38: CRIME.
22:35:46 <fizzie> It probably depends on how "high-end" you want it to be. IT (and I guess XM too) does things like multiple different samples per instrument, so that you can provide different samples for different notes for better-quality instruments.
22:35:55 <zzo38> O, it is a CRIME to render it sans serif. I thought you meant crime, because that is what you wrote. Why did you write crime if you meant CRIME?
22:36:12 <fizzie> Oh, and the ping-pong loop is pretty typical thing to support, though you can of course just mirror the bit in the wave data and loop that.
22:37:17 <CakeProphet> ah. I've just found a something Haskell will definitely have an advantage in over Erlang for the MUD server: parsing.
22:37:25 <CakeProphet> and string handling in general.
22:37:50 <fizzie> I like the general-purpose-programmingy things, but that goes without saying.
22:38:31 <AnMaster> zzo38, what is the difference between crime and CRIME apart from the case?
22:39:12 <zzo38> fizzie: Maybe I can add ping-pong loop in this document? Or maybe, as you said, it is not needed because you can mirror it in the sample data. (If ping-pong is supported, perhaps it can be specified by making the loop start number greater than loop end number?)
22:39:16 <zzo38> AnMaster: There is no difference.
22:39:29 <AnMaster> zzo38, then explain "<zzo38> O, it is a CRIME to render it sans serif. I thought you meant crime, because that is what you wrote. Why did you write crime if you meant CRIME?"
22:39:48 <zzo38> AnMaster: I cannot explain.
22:39:55 <AnMaster> zzo38, uh okay
22:39:59 <zzo38> It is like a joke
22:40:00 <pikhq> alise: Mincho ~= serif, Gothic ~= sans serif.
22:40:01 <AnMaster> right
22:40:23 <alise> pikhq: And hinting ~= makes ugly, prseumably.
22:40:40 <AnMaster> alise, can you even real Japanese in the first place?
22:40:41 <pikhq> Kochi Mincho and Kochi Gothic are two common free fonts for Japanese...
22:40:43 <AnMaster> err
22:40:44 <AnMaster> read*
22:40:45 <AnMaster> not real
22:40:58 -!- coppro has quit (Quit: FNM time).
22:41:13 <alise> AnMaster: No, but it looks pretty.
22:41:27 <AnMaster> alise, and why do you care so much about serif/sans-serif for it
22:41:28 <AnMaster> -_
22:41:30 <AnMaster> -_-
22:41:33 <alise> aur/ttf-kochi-substitute 20030809-4 (116)
22:41:33 <alise> High quality Japanese TrueType fonts
22:41:35 <alise> Substitute, what.
22:41:48 <alise> AnMaster: because kanji is beautiful, and sans-serif kanji looks like comic sans!
22:41:54 <AnMaster> alise, XD
22:42:08 <AnMaster> alise, what is hand written kanji like?
22:42:19 <AnMaster> alise, I doubt it uses serifs very often
22:42:21 <alise> Anything from "almost like printed kanji" to "unreadable", according to pikhq.
22:42:22 <pikhq> Substitute for MSMincho and MSGothic. Which are shitty.
22:42:41 <pikhq> Anything from "almost like printed kanji" to "unreadable by most".
22:42:45 <alise> AnMaster: Consider calligraphy.
22:42:54 <alise> They make up for the lack of serifs by making the characters awesome. :P
22:42:59 -!- sebbu has joined.
22:43:01 <AnMaster> alise, right
22:43:06 <pikhq> The "unreadable by most" thing is a few particular styles of calligraphy.
22:43:39 <pikhq> Grass script is absolutely unreadable, seal script is just hard to read because it is fairly archaic...
22:44:06 <pikhq> (it is, nowadays, only commonly used on seals. Hence the name.)
22:44:11 <alise> pikhq: So I want that substitute package, right?
22:44:16 <pikhq> Right.
22:44:21 <AnMaster> pikhq, and the grass is only common on grass?
22:44:37 <alise> AnMaster: http://upload.wikimedia.org/wikipedia/en/7/73/Cur_eg.svg On right: grass script. On left: normal kanji.
22:44:38 <alise> Discuss.
22:44:47 <zzo38> fizzie: Perhaps I can add a instrument mapping type if needed, maybe also does it need any additional synthesis types? Should it support FLAC encoding of samples? Should it have support for just intonation?
22:44:56 <pikhq> AnMaster: The "grass script" is called that because it looked like grass to someone.
22:44:59 * AnMaster has a vision of grass genetically altered to display Japanese letters
22:45:27 <AnMaster> pikhq, grass like the drug or like the thing on your lawn (hopefully not the same!)
22:45:28 <pikhq> The SVG alise linked reads "grass script" in Chinese and Japanese.
22:45:29 <AnMaster> ;)
22:45:45 <pikhq> (using the Chinese variant of 草)
22:45:49 <pikhq> AnMaster: The thing on your lawn.
22:45:53 <alise> Yeah, "grass, the drug".
22:45:55 <zzo38> alise: The thing like the grass script on right, I see script looking something like that in some of the pieces in my shogi board?
22:45:57 <AnMaster> pikhq, which one is which there?
22:46:05 <alise> People say that. This is an accurate imitation of people who use HARD DRUGS like "'"grass"'".
22:46:22 <pikhq> zzo38: Yes, shogi pieces are usually written using grass script or semi-cursive script.
22:46:53 <pikhq> AnMaster: Hmm? The Japanese variant has the top portion written using a single horizontal line, rather than two horizontal lines.
22:47:19 <AnMaster> pikhq, I mean which side is of that is the grass script
22:47:21 <AnMaster> in the svg
22:47:37 <pikhq> Left side is "grass script" written in grass script.
22:47:45 <AnMaster> fizzie, right side is?
22:47:52 <AnMaster> err
22:47:53 <AnMaster> pikhq, ^
22:47:55 <AnMaster> weird mistab
22:48:02 <AnMaster> might be due to typing in the dark
22:48:04 <pikhq> Regular script.
22:48:11 <pikhq> Erm.
22:48:11 <AnMaster> ah
22:48:12 <alise> The right, like I said.
22:48:13 <alise> pikhq: No...
22:48:14 <alise> Other way around.
22:48:15 <pikhq> Sorry, I fucked that up.
22:48:17 <alise> Left: normal.
22:48:20 <pikhq> Swap my directions.
22:48:23 <alise> Right: poop^Wgrass.
22:48:28 <pikhq> Left is regular script, right is grass script.
22:49:01 <AnMaster> alise, the grass script looks like stenography
22:49:08 -!- relet has quit (Quit: Leaving.).
22:49:12 <alise> No, it does not.
22:49:19 <fizzie> zzo38: It looks pretty complete, though of course you could want something where an effect's parameters (or just some other parameters, like the channel note) are controlled by the value of some other channel. Unless of course the indirection already works so that if you play note with the value of register X and then change the register while the note is playing, it'd also change the note.
22:49:21 <pikhq> http://upload.wikimedia.org/wikipedia/en/0/09/Semi-Cur_Eg.png And here's a comparison of regular and semi-cursive script.
22:49:25 <zzo38> The promoted side looks like more messy than the unpromoted side
22:49:39 <AnMaster> alise, well no, but like what japanese stenography would look like
22:49:54 <AnMaster> it also looks faster to type
22:49:57 <AnMaster> fewer strokes
22:49:59 <pikhq> Though a bit harder to read, you can at least tell *what the hell is written*.
22:50:13 <alise> AnMaster: Type?
22:50:15 <pikhq> AnMaster: Uh, nobody in Japan types based off of character strokes.
22:50:18 <alise> That... isn't how you type Japanese.
22:50:21 <AnMaster> alise, err write
22:50:22 <AnMaster> ...
22:50:27 <AnMaster> alise, thinko
22:50:30 <alise> Bah, you write in Japanese, you accept the consequences :P
22:50:35 <pikhq> And people in China type based off of the structure of the character, not the strokes.
22:50:52 <zzo38> fizzie: I have not intended the indirection to work that way...
22:51:05 <pikhq> Typical hand-writing in Japanese is somewhere between regular and semi-cursive script most of the time.
22:51:13 <AnMaster> alise, you know like hand writing flowing together or separate chars. In Latin alphabets
22:51:20 <AnMaster> the former is faster to write
22:51:22 <alise> I know what cursive is, AnMaster.
22:51:29 <alise> But thank you for the lesson.
22:51:33 <pikhq> With a small handful of things ending up with bizarre glyph variants.
22:51:41 <AnMaster> alise, well I meant that the grass script looks a LOT faster to write than the normal script
22:51:54 <pikhq> Yes, grass script is much faster to write.
22:51:55 <alise> AnMaster: Japanese requires much fewer Kanji to do the job than English needs letters.
22:52:01 <alise> Besides, the left is serifed.
22:52:03 <AnMaster> alise, true
22:52:05 <alise> Nobody writes Japanese /serifed/.
22:52:05 <pikhq> But *AGH*
22:52:20 <alise> http://upload.wikimedia.org/wikipedia/en/0/09/Semi-Cur_Eg.png ;; this is what people would actually write
22:52:31 <pikhq> alise: The left is hand-written with a brush.
22:52:40 <AnMaster> alise, it is serifed? Huh?
22:52:44 <pikhq> By a particularly neat scribe.
22:52:50 <alise> pikhq: No, the left is computer-rendered. :P
22:52:55 <alise> AnMaster: The left side is, yeah...
22:53:16 <pikhq> alise: Still, plausible hand-writing.
22:53:17 <AnMaster> alise, looks nothing like serifs in Latin alphabet
22:53:21 <alise> Yes it does.
22:53:27 <pikhq> By a calligrapher.
22:53:42 <AnMaster> alise, wait, both sides use svg paths
22:53:44 <alise> "In typography, serifs are semi-structural details on the ends of some of the strokes that make up letters and symbols."
22:53:54 <zzo38> Yes the semi cursive is more easier to read than the grass script
22:53:58 <alise> AnMaster: Your point?
22:54:07 <alise> http://upload.wikimedia.org/wikipedia/commons/a/af/Ming_serif.svg ;; Demonstration of Japanese serifs.
22:54:09 <AnMaster> just trying to figure out what the hell you mean
22:54:19 <zzo38> Is the unpromoted side semi cursive and the promoted side is grass script?
22:54:25 <alise> zzo38: Promoted??
22:54:31 <pikhq> zzo38: Likely.
22:54:31 <AnMaster> alise, ah
22:54:36 <pikhq> alise: He's discussing shogi pieces.
22:54:40 <alise> Ah.
22:54:47 <alise> (Shogi? :P)
22:54:55 <pikhq> Shogi is Japanese chess.
22:54:57 <cpressey> http://catseye.tc/lab/whothm/doc/applet.html
22:55:24 <pikhq> Pieces can be promoted (much like pawns in regular chess), and they flip when this happens.
22:55:33 <alise> I had the most awesome idea for a Star Trek dub, and those words are not truthfully uttered often.
22:55:44 <AnMaster> cpressey, cool
22:55:49 <alise> cpressey: Your browser is completely ignoring the applet tag!
22:56:02 <AnMaster> alise, ?
22:56:15 <alise> AnMaster: "?" about what? The Star Trek dub?
22:56:27 <AnMaster> alise, no the "ignoring the applet tag"
22:56:33 <alise> It's what cpressey's page said to me. :)
22:56:40 <AnMaster> alise, ah
22:56:57 <AnMaster> alise, you use a browser needing <object> crap I bet
22:57:11 <AnMaster> alise, works in firefox
22:57:12 <alise> I use Firefox.
22:57:18 <AnMaster> alise, it works for me in firefox
22:57:22 <alise> I never denied that.
22:57:24 <alise> Did I ever deny that?
22:57:28 <AnMaster> nop
22:57:40 <zzo38> The promoted side is also written in red. You know which player's piece by which direction it is facing, not by color. You can take opponent's pieces to use as your own in shogi, that is why it is done this way.
22:57:41 <AnMaster> never claimed you denied it either
22:57:48 <AnMaster> alise, okay now about the dub: ?
22:57:50 <alise> I don't have Java, which is probably why it is showing the alternate text as it is supposed to.
22:57:53 <cpressey> alise: ORACLE TOLD ME TO SAY THAT
22:58:03 <AnMaster> alise, ah
22:58:10 <pikhq> Also, the pieces have their names in Japanese written on them.
22:58:33 <alise> AnMaster: The dub idea:
22:58:34 <zzo38> pikhq: Yes.
22:58:36 <alise> First, read this: http://pastie.org/1019373.txt?key=exy7yicjgvonc7i4brrzza
22:58:52 <alise> Now, the dub idea: Dub over all the Trek-nobabble with "tech".
22:59:00 <alise> Hilarity ensues.
22:59:35 <AnMaster> alise, hah
22:59:40 <alise> (That quote is, incidentally, why Charles Stross hates Star Trek.)
22:59:47 <pikhq> Well, some of them have different variants of 金 instead, noting that they move the same as a gold general (金将).
22:59:50 <alise> (I can't really blame him, him being someone who actually writes science fiction.)
22:59:54 <AnMaster> alise, who is Stross?
23:00:04 <pikhq> (promoted pieces that move the same as a gold general, that is)
23:00:09 <alise> AnMaster: a very good sci-fi author and awesome nerd
23:00:15 <AnMaster> alise, ah
23:00:24 <alise> (he used to work at an isp, is a linux fan, wrote two novels about the singularity, etc.)
23:01:29 <alise> at least iirc it was an isp he used to work at :P
23:01:39 <AnMaster> alise, I kind of enjoy Star Trek for 1) either terrible special effects (much of TOS) or rather passable ones (some later series) 2) technobable is fun to laugh at
23:02:00 -!- oerjan has joined.
23:02:01 <alise> I like Star Trek because it's entertaining. I make no apologies for its scientific content being non-existent.
23:02:08 <alise> It's better than a soap opera...
23:02:15 <AnMaster> alise, oh yes that too
23:02:25 <AnMaster> alise, actually it is quite like soap opera IN SPACE!
23:02:26 <pikhq> Sometimes Star Trek almost approaches hard science fiction.
23:02:31 <alise> Also, Voyager is great to watch because it's unintentionally The Captain Psychopath and Wooden Commander Show
23:02:35 <alise> s/$/./
23:02:36 <AnMaster> pikhq, only by accident
23:02:39 <alise> Set on the HMS Reset Button.
23:02:40 <pikhq> It then, of course, runs the hell away as fast as it can by the next episode. :P
23:02:51 <alise> AnMaster: It's not a soap opera. Star Trek always resets at the end of the episode.
23:02:59 <alise> Much moreso in Voyager, less so in Deep Space Nine.
23:03:10 <AnMaster> alise, seven of nine? What about that in voyager?
23:03:18 <pikhq> Cast change.
23:03:18 <AnMaster> or her rather
23:03:28 <alise> Yes, Seven of Nine was the ONLY enduring change of 1995-2001.
23:03:30 <alise> Oh wait, not quite:
23:03:30 * Sgeo__ is a Stargate SG-1/Atlantis fan
23:03:34 <alise> - Janeway let down her hair.
23:03:35 <AnMaster> pikhq, ? I only watched a few episodes of voyager iirc
23:03:37 <alise> - The couple
23:03:44 <alise> - Janeway gave up coffee (in like the third episode)
23:03:50 <alise> - Also the Doctor became a bit less of a jerk
23:03:51 <alise> That's it.
23:03:55 <alise> Seven seasons. Six years.
23:03:58 <AnMaster> alise, I only watched some of the latter episodes
23:03:59 <Sgeo__> Hey, they did make contact with Earth at some point
23:03:59 <alise> The only changes.
23:04:12 <AnMaster> Sgeo__, yes near the end
23:04:17 <alise> No, early on.
23:04:22 <AnMaster> oh? hm okay
23:04:23 <alise> But that failed, no?
23:04:24 <cpressey> I'm surprised such crap lasted so long.
23:04:28 <AnMaster> alise, ah right
23:04:32 <alise> The Kardassian or however you spell it -- he died before he could pass on their messages.
23:04:38 <Sgeo__> alise, not that one
23:04:38 <AnMaster> cpressey, better than ds9
23:04:40 <alise> cpressey: It may have been crap, but it was entertaining.
23:04:49 <alise> AnMaster: Deep Space Nine is better from a story point of view... but it was so DULL.
23:04:52 <Sgeo__> THe one where the Doctor manages to get to the Apha quadrant
23:05:00 <AnMaster> alise, only watched a few episodes of it
23:05:03 <alise> Sgeo__: Huh, I have't seen that one.
23:05:05 <pikhq> AnMaster: DS9 wasn't crap, it was just very, very different stylistically from other Star Trek.
23:05:11 <Sgeo__> "Message in a Bottle"
23:05:13 <AnMaster> alise, I like TNG though
23:05:30 <pikhq> TNG is fairly universally liked.
23:05:35 <AnMaster> pikhq, hm. maybe
23:05:43 <alise> TNG is good, but I hate the people who try and formalise it all into a consistent, scientific universe (see: Memory Alpha).
23:05:55 <pikhq> Once TNG got going, it was actually quite good.
23:05:56 <alise> But yeah, only the DS9ers dislike TNG. And they're a terribly boring lot.
23:05:59 <AnMaster> pikhq, yep
23:06:08 <alise> Although Wesley and beardless Riker are unbearable.
23:06:15 <pikhq> alise: It would take a major retcon to make a consistent Star Trek universe.
23:06:18 <AnMaster> weasly was a pain yes
23:06:24 <pikhq> alise: Yes, first season was awful.
23:06:24 <alise> pikhq: Or, just Memory Alpha.
23:06:29 <alise> Seriously, they have a theory for... everything.
23:06:32 <AnMaster> alise, beardless riker? hm?
23:06:35 <alise> I think they seriously believe this stuff will happen one day.
23:06:40 <AnMaster> again I haven't watched all episodes
23:06:43 <pikhq> alise: ... Even "Threshold"?
23:06:44 <alise> AnMaster: In the first series of TNG, Commander William Riker had no beard.
23:06:46 <alise> He looked like a kid.
23:06:50 <pikhq> AnMaster: First season Riker did not have a beard.
23:06:55 <AnMaster> alise, ah. I didn't notice that change
23:07:02 <alise> AnMaster: Then his actor grew one, and when he came back Roddenberry said "NO! Keep it! Srsly."
23:07:09 <alise> AnMaster: More likely you just didn't see the first series.
23:07:11 <AnMaster> ah
23:07:17 <AnMaster> alise, I saw a few of the first series
23:07:19 <alise> http://static.tvtropes.org/pmwiki/pub/images/William_Riker_Growing_The_Beard_4.jpg
23:07:21 <pikhq> He has kept the beard ever since.
23:07:21 <alise> Note: Just an image.
23:07:25 <AnMaster> alise, I remember the one were Q was introduced
23:07:27 <alise> These are the same actor and character.
23:07:51 <AnMaster> alise, hm there are age lines or such on the second I would say
23:07:55 <alise> pikhq: Threshold has been officially striked from canon.
23:08:07 <alise> (Paris mentions in a later episode that he has never flown at transwarp speeds.)
23:08:08 <pikhq> alise: Still.
23:08:09 <zzo38> I like to watch Star Trek sometimes
23:08:14 <alise> (This was done because THRESHOLD IS AWFUL.)
23:08:22 <alise> They should just burn every copy of it they can get their hands on.
23:08:24 <alise> Including the master tapes.
23:08:43 <pikhq> Threshold is, without a doubt, the worst episode of Star Trek ever.
23:08:45 <AnMaster> alise, no, I'm against destruction of any published data like that.
23:08:55 <alise> AnMaster: I somehow knew you would be: and I usually am.
23:08:55 <AnMaster> even if horrible
23:08:59 <pikhq> And probably among the worst things produced for TV.
23:09:01 <alise> But I am 100% sure that destroying Threshold would improve the universe.
23:09:03 <AnMaster> alise, touche
23:09:05 <alise> It is my utilitarian imperative.
23:09:27 <alise> ...wait, how is "Warp 10" even "transwarp"?
23:09:32 <alise> They couldn't even NAME THE SPEED right.
23:09:37 <pikhq> alise: They went past warp 10.
23:09:47 <pikhq> Which is the maximum value in the warp scale.
23:09:55 <pikhq> Warp 10 being, of course, *infinity*.
23:09:56 <alise> "A specially-outfitted warp-capable shuttlecraft piloted by Tom Paris successfully reaches Warp 10, breaking the transwarp barrier."
23:10:00 <alise> Not according to Memory Alpha.
23:10:06 <alise> Reaches, not passes.
23:10:11 <pikhq> The episode said "past".
23:10:14 <alise> Fair enough.
23:10:23 <alise> AN ERROR! SOMEONE FIX IT! I don't want my IP address on that page.
23:10:28 <zzo38> This user likes to use redundant userboxes that are redundant.
23:10:30 <AnMaster> alise, :DDD
23:10:45 <pikhq> Past. Infinite. Speed.
23:10:53 <alise> pikhq: He was travelling back in time... INFINITELY.
23:10:55 <AnMaster> zzo38, the entire idea of userboxes is idiotic IMO
23:11:12 <AnMaster> pikhq, well it could be going to uncountable infinite then </technobable>
23:11:18 <alise> You know how if you have a game with naive gravity and a wrapping field and you step off, it does the thing rotating things like fans often do, and seems to slow down and speed up in a loop?
23:11:20 * oerjan swats AnMaster -----###
23:11:25 <alise> That happened, but with TIME.
23:11:30 <AnMaster> oerjan, of course it made no sense!
23:11:42 <alise> I am pretty sure speed is an ORDINAL number!
23:11:43 <AnMaster> oerjan, also do you highlight on uncountable or something?
23:11:44 * oerjan has a very few userboxes on his page
23:11:49 <alise> It went to \omega^\omega!
23:11:55 -!- augur has quit (Ping timeout: 276 seconds).
23:11:56 <oerjan> AnMaster: oh that wasn't actually what i swatted you for :D
23:11:59 <pikhq> AnMaster: Oh, and he moved a few day's travel.
23:12:05 <pikhq> And started to evolve.
23:12:09 <alise> No, devolve!
23:12:12 <AnMaster> oerjan, what did you swat me for then?
23:12:14 <oerjan> *wikipedia user page
23:12:19 <alise> Then he mated with the Captain :hawt:
23:12:20 <AnMaster> pikhq, XD
23:12:27 <alise> [[Kim downloads the shuttle's data into the computer core – over five billion gigaquads of information – including detailed information on "literally every square meter" of the sector. Janeway orders the data sent to stellar cartography for analysis and creation of a star chart.]]
23:12:28 <oerjan> AnMaster: for hating on userboxes
23:12:32 <alise> How big is the ship's hard drive exactly???
23:12:36 <AnMaster> oerjan, ...
23:12:48 <alise> "While Federation computers still use binary code in some capacity, they also are known to use trinary code."
23:12:49 <AnMaster> pikhq, anyway didn't they go back in time by warping in some TOS motion picture?
23:12:49 <pikhq> alise: They had a biological computer.
23:12:50 <alise> ...why????
23:12:50 <zzo38> Some of the userboxes I put are now different than it was from when I first put them on
23:12:57 <alise> pikhq: Yes, but that'd just make it forgetful.
23:13:00 <pikhq> BECAUSE STUPID.
23:13:16 <pikhq> It was an "experimental system".
23:13:28 <alise> pikhq: Hey, remember when Janeway wanted coffee, so she ordered them to get some omicron particles (you just won Particle of the Day bingo) from a potentially dangerous nebula?
23:13:30 <pikhq> And the Federation apparently likes putting its experimental systems on the frontier.
23:13:45 <alise> And then it turned out to be SENTIENT, and they had to sit there in its wound to help it heal? Because they RIPPED UP A SENTIENT NEBULA?
23:13:54 <alise> 'Cuz I do. And then Janeway just gave up coffee! Why the fuck did you go into the nebula in the first place!
23:13:58 <pikhq> It's a surprise the Federation hasn't just killed itself with how stupid it is.
23:14:13 <AnMaster> alise, "omicron"?
23:14:21 <alise> pikhq: that would be 21st century prejudice against stupid ships.
23:14:24 <oerjan> AnMaster: also i only highlight on my nick which is the default irssi setup, and even that is slightly broken (doesn't work with punctuation)
23:14:27 <alise> AnMaster: Ding ding ding BINGOOOOO
23:14:45 <oerjan> (well setup here, which may not be the default default everywhere)
23:14:48 <AnMaster> alise, it doesn't exist I assume
23:14:58 <alise> Of course not, you fool :)
23:15:08 <oerjan> hm or maybe it also depends on the skin
23:15:10 <AnMaster> alise, well I don't remember all those particle names
23:15:25 <alise> It was in STAR TREK.
23:15:29 <AnMaster> alise, true
23:15:35 <AnMaster> alise, they do use real ones sometimes
23:15:40 <Sgeo__> My phone's finally useful as a phone!
23:15:47 <AnMaster> Sgeo__, ...?
23:16:01 <alise> [["You're not going anywhere. At least not for a few hours. I have some tests I'd like to run on Your Majesty before I release you back into the realm of ordinary Humans."
23:16:01 <alise> "You may proceed."
23:16:01 <alise> - The Doctor and Paris, after Paris returns from his mission]] -- Memory Alpha, "Threshold (episode)", section "Memorable Quotes".
23:16:03 <alise> That sure is memorable.
23:16:21 <AnMaster> alise, looks like a bug
23:16:25 <Sgeo__> My dad let me put the SIM card in my N1
23:16:30 <AnMaster> Sgeo__, I see
23:16:32 <alise> "What if we've been looking in the wrong place? What if the nacelles aren't being torn from the ship; what if the ship is being torn from the nacelles?"
23:16:33 <alise> "The hull of the shuttle is made from a tritanium alloy. At the speeds we're talking about, that alloy could depolarize..."
23:16:33 <alise> "And create a velocity differential! The fuselage would be traveling at a different rate of speed than the nacelles!"
23:16:33 <alise> "Then all we have to do is create a depolarization matrix around the fuselage!"
23:16:34 <alise> "That's it! Neelix, you're a genius!"
23:16:38 <Sgeo__> alise, Threshold is apparently the most hated episode
23:16:54 <alise> The hull of the shuttle is made from a tech alloy. At the speeds we're talking about, that alloy could tech...
23:16:55 <pikhq> Sgeo__: No shit.
23:17:02 <AnMaster> alise, "rate of speed" -_-
23:17:05 <alise> And create a tech! The fuselage would be traveling at a different rate of speed than the tech!
23:17:11 <alise> Then all we have to do is create a tech around the fuselage!
23:17:15 <alise> That's it! Neelix, you're a tech!
23:17:17 <oerjan> <alise> No, devolve! <-- you know that distinguishing devolve and evolve is a human-centered view that has no basis in evolution's fundamentals, right? (not that that episode would care)
23:17:29 <alise> oerjan: just have to point out
23:17:32 <pikhq> oerjan: The episode said "evolve".
23:17:39 <alise> oerjan: http://images1.wikia.nocookie.net/__cb20061210190442/memoryalpha/en/images/3/33/Transwarp_humans.jpg
23:17:42 <alise> they devolved into this
23:17:43 <pikhq> And had him "evolve" to be less fit for his environment.
23:17:43 <alise> then mated
23:17:45 <alise> then turned back into humans
23:17:48 <AnMaster> alise, I feel that "rate of speed" should be "tech speed" and that "genius" should not be "tech"
23:17:56 <pikhq> At one point he ceased being able to breath oxygen-containing air.
23:17:59 <alise> oerjan: so clearly this universe runs on a kind of evolution powered by bullshit
23:18:01 <zzo38> There is no "devolve".....?
23:18:08 <alise> zzo38: There is in Voyager!
23:18:11 <alise> AnMaster: that last tech was a joke :P
23:18:26 -!- SevenInchBread has joined.
23:18:27 <AnMaster> alise, ah
23:18:43 <pikhq> I hate how Star Trek actually wrote scripts by asking for technobabble to be inserted.
23:18:52 <alise> I think it's hilarious.
23:18:54 <alise> Thus my dub idea.
23:19:05 <alise> (Which, if you missed it, was "dub all the technobabble with the word they used for it: 'tech'".)
23:19:07 <pikhq> It is the single weakest chunk of the series, as far as taking it seriously goes.
23:19:09 <zzo38> I have multiple copies of "This user likes to use redundant userboxes that are redundant." in my Wikipedia user page
23:19:16 <alise> Name?
23:19:18 <alise> Star Tech.
23:19:24 <pikhq> Taking it humorously, though? Wonderful.
23:19:34 <alise> [[ There is an apparent contradiction as to which starship was the first to have an EMH. Although it is specifically stated in "Relativity" that Voyager was the first starship to be equipped with an EMH, it was later revealed that the Equinox, which had been launched months prior to Voyager, also had an EMH program. There is no canon explanation for this discrepancy, although it may be that Voyager received their EMH during construction while the one abo
23:19:34 <alise> ard Equinox was installed just prior to that ship's launch.]]
23:19:36 <AnMaster> pikhq, sound in space too
23:19:40 <alise> ^ Contrived explanations FTW
23:19:51 <alise> AnMaster: Firefly had no sound in space, which was a rather odd feature for a western.
23:19:53 <alise> Sorry, SPACE western.
23:19:55 <AnMaster> alise, EMH?
23:20:08 <alise> Emergency Medical Hologram, AKA Asshole Doctor.
23:20:15 <pikhq> AnMaster: Much less of a weak point than the technobabble.
23:20:23 <AnMaster> alise, ah
23:20:30 <pikhq> alise: AKA the only competent character on the entire SHIP.
23:20:31 <AnMaster> pikhq, well true.
23:20:42 <AnMaster> pikhq, depends on how much you know of the words they use
23:20:47 -!- CakeProphet has quit (Ping timeout: 276 seconds).
23:20:51 <AnMaster> pikhq, I can't imagine a physicist liking it
23:21:13 <alise> Funnily enough, most physicists have suspension of disbelief for purposes of light entertainment.
23:21:25 <pikhq> AnMaster: Stephen Hawking loves it.
23:21:25 <alise> Quantum singularities.
23:21:30 <AnMaster> alise, enough even for star trek?
23:21:37 <alise> AnMaster: Sure.
23:21:38 <AnMaster> pikhq, huh
23:21:45 <AnMaster> alise, wow they have a lot then
23:21:52 <alise> Most physicists are relatively normal people. :P
23:21:59 <pikhq> And is, as such, the only person to have played himself on Star Trek.
23:22:00 <AnMaster> alise, you mean, unlike us?
23:22:02 <oerjan> alise: i'm not defending "threshold", i'm just quibbling with your use of "devolve"
23:22:12 <alise> btw, why are the cardassians so damn ugly? Because they're bad? :P
23:22:17 <alise> AnMaster: unlike us.
23:22:23 <AnMaster> :P
23:22:29 <alise> oerjan: well it clearly isn't our natural selection, since it wasn't natural or selected
23:22:44 <AnMaster> alise, actually I'm willing to use suspension of disbelief a lot for star trek
23:22:45 <AnMaster> I have to
23:23:08 <pikhq> Without suspension of disbelief, you really cannot take more than a handful of episodes seriously.
23:23:16 <AnMaster> pikhq, :P
23:23:30 <pikhq> Every time they use a freaking teleporter you need a heaping dose.
23:23:46 <AnMaster> pikhq, though that TNG one when they met that alien that modified the ship engine to end up in another galaxy...
23:24:02 <AnMaster> well that put my suspension of disbelief at an edge, especially considering the place they ended up after that
23:24:19 <alise> I watched "Masks" today.
23:24:26 <alise> It... was so un-sciency I could not believe it.
23:24:27 <AnMaster> alise, which generation?
23:24:30 <alise> Would have made a good movie, mind.
23:24:32 <alise> AnMaster: The next one.
23:24:40 <AnMaster> alise, which was? I don't remember
23:24:51 <alise> Which generation? The next [generation].
23:24:54 <AnMaster> ah
23:24:54 <cpressey> I watched "M.A.S.K." today.
23:24:57 <cpressey> Ha! I wish.
23:25:00 <pikhq> 'Many forces including Creative Commons, Public Knowledge, Electronic Frontier Foundation and technology companies with deep pockets are mobilizing to promote "Copyleft" in order to undermine our "Copyright." They say they are advocates of consumer rights, but the truth is these groups simply do not want to pay for the use of our music. Their mission is to spread the word that our music should be free.' -- ASCAP.
23:25:02 <AnMaster> alise, I thought you meant the next one after TNG
23:25:03 <AnMaster> :P
23:25:17 <alise> That would be DS9, then Voyager.
23:25:18 <pikhq> ... Tech companies with deep pockets?
23:25:20 <alise> Then Enterprise.
23:25:22 <AnMaster> alise, oh yeah I remember Masks. That one was bad
23:25:24 <Sgeo__> Chrome annoys me sometimes
23:25:26 <pikhq> Y'mean compared to the *entertainment industry*?
23:25:34 <pikhq> Short of Microsoft, hahahahah.
23:25:38 <alise> pikhq: Wait...
23:25:41 <AnMaster> pikhq, ASCAP?
23:25:44 <alise> Even /our/ pro-copyright agencies aren't that stupid.
23:25:56 <alise> You're... your country is bullshit. Nuke it. Please.
23:25:58 <pikhq> AnMaster: American Society of Composers, Authors, and Publishers.
23:26:05 <AnMaster> oh my
23:26:07 <alise> Please.
23:26:10 <AnMaster> but copyleft is not that...
23:26:12 <alise> I know, I know, you will die. It's for the best.
23:26:17 <alise> It really must be done. Sorry.
23:26:19 <oerjan> pikhq: in other words they don't comprehend that copyleft is a choice made by the _authors_?
23:26:22 <alise> Nice knowing you.
23:26:25 <pikhq> alise: Just nuke California.
23:26:31 <pikhq> That'll take care of most of it.
23:26:44 <alise> pikhq: But then you lose some of the cool people from CA.
23:26:45 <pikhq> Actually, while you're at it, murder Congress.
23:26:52 <cpressey> Copyleft undermines copyright!
23:26:55 <pikhq> Yes, but you also lose Hollywood.
23:26:57 <AnMaster> night
23:27:10 <alise> pikhq: Just... nuke everything but the Bay Area, that should be a good heuristic.
23:28:08 <pikhq> alise: Hollywood is also in the Bay Area, isn't it?
23:28:18 <cpressey> pikhq: No.
23:28:19 <oerjan> well i suppose that copyleft _does_ somewhat undermine copyright, by competition
23:28:22 <cpressey> Hollywood is in LA.
23:28:24 <pikhq> No, it's south of that.
23:28:30 <pikhq> Very well then. Sounds good!
23:28:31 <alise> LA is the cancer, really.
23:28:38 <alise> CA is mostly pretty cool as far as states go.
23:28:38 <pikhq> Actually, we could keep all but LA.
23:28:42 <alise> Yeah.
23:28:54 <cpressey> I don't see why the Bay Area should be spared. Is there some reason we need Yahoo! and Google? Srsly.
23:29:09 <alise> cpressey: No, but... come on. There is some cool stuff there.
23:29:19 <pikhq> cpressey: Purging idiots who feel that copyright is THE BEST THING EVER.
23:29:32 <alise> pikhq: In fact... how about Massachusetts, California sans LA, a few other states and all the tiny Democrat states just secede to Canada?
23:29:37 <alise> Then just nuke the rest.
23:29:53 <fizzie> Copyleft turns copyright into copystraight, which means everyone will just STRAIGHTaway proceed to COPY everything, and then the apocalypse.
23:29:57 <pikhq> alise: So, get rid of Jesusland.
23:30:16 <cpressey> Well, as long as it includes Seattle, I'm fine with whatever subset you pick.
23:30:26 <alise> cpressey: Uh... you can move.
23:30:26 <pikhq> Keep the Democrat counties in the Republican states and I'm down with that.
23:30:37 <pikhq> cpressey: Seattle is well outside of Jesusland.
23:30:42 <alise> I think to be safe, we need to nuke Washington.
23:30:44 <alise> Why? REDMOND.
23:30:51 <alise> If a place can support a Redmond, it must not exist.
23:31:06 <cpressey> Oh, no worries. If you hit Seattle, Redmond will be within the blast radius.
23:31:20 <alise> Well... Seattle can come.
23:31:30 <cpressey> Or vice versa.
23:31:34 <alise> Mind, every state must completely hand over all power to the Canadian government.
23:31:41 <alise> (to become a province)
23:31:48 <pikhq> How's about we just give Jesusland to Mexico?
23:31:55 <pikhq> Y'know, so their heads explode.
23:31:59 <alise> Think we should keep Oregon?
23:32:15 <alise> I mean, on one hand, Portland; on the other hand... Oregon.
23:32:33 <alise> Maybe we could just keep Portland.
23:32:45 <cpressey> Portland, the birthplace of Haskell.
23:32:54 <alise> New York has to go, because it just does.
23:32:55 <pikhq> alise: The South of the US is where most of the stupidity is.
23:32:59 <cpressey> Pretty much the only redeeming quality that I can see.
23:33:00 <alise> Don't question my decisions.
23:33:12 <alise> cpressey: As far as I can tell Portland isn't a bad city.
23:33:31 <alise> Portland, Oregon and Portland, Maine would have to battle it out to the death.
23:33:48 <Sgeo__> I live in New York...
23:33:52 <alise> You can move.
23:37:16 -!- BeholdMyGlory has joined.
23:37:59 -!- tombom has quit (Quit: Leaving).
23:37:59 <alise> Anyone want to name botte something nicer?
23:38:24 <oerjan> but but, it's traditional!
23:38:24 <pikhq> ボッテ
23:38:33 <cpressey> What is botte?
23:38:44 <oerjan> and otherwise, how can it be the botte of our jokes
23:38:55 -!- SgeoN1 has joined.
23:38:58 <oerjan> (i think i recycled that one)
23:39:08 <cpressey> A bot, I assume.
23:39:18 <oerjan> ye olde botte
23:39:37 <alise> cpressey: botte is the be-all, end-all of all bots, to be created by me
23:39:48 <alise> initially ehirdbot or something lame like that, then Endeavour, then botte, then rice, then botte.
23:40:11 <alise> basically, it was planned when EgoBot was still version "sucky" 1, hackego didn't exist
23:40:19 <alise> and fungot was just a little babbling twinkle in fizzie's eye
23:40:20 <fungot> alise: she does. she talks to me quite a while; my fnord speed is the only one
23:40:27 <alise> In fact /I/ invented the tradition of babbling bots here with optbot.
23:40:34 <alise> Although it just repeated random lines from old logs.
23:40:47 <alise> Set our topic too, though. That was convenient.
23:42:06 -!- SevenInchBread has quit (Ping timeout: 240 seconds).
23:43:58 <alise> Contravarsal opinion: Star Trek (the original series) sucked a bit.
23:44:22 -!- CakeProphet has joined.
23:45:18 <cpressey> Once they went to a planet full of gangsters.
23:45:41 <cpressey> Hm.
23:45:45 <cpressey> I don't know about bots.
23:46:05 <alise> They're nice things, if friendly enough.
23:46:14 <alise> Nice little digital helpers. Not servants. They should always be happy.
23:46:56 <cpressey> I don't think it's exactly my medium. I wrote a bot for a MUD once. Actually a MUSE. In C.
23:47:09 <alise> <AnMaster> alise, I remember the one were Q was introduced <-- that's just the first TNG episode (Encounter at Farpoint)
23:47:18 <alise> cpressey: IRC is comfy, though.
23:47:33 <AnMaster> comex, Multi User Source Environment?
23:47:35 <AnMaster> err
23:47:36 <AnMaster> cpressey, ^
23:47:41 <AnMaster> sorry for the mistab
23:47:59 <cpressey> Programming it to interact with the virtual world was more interesting than I imagine interacting with plain old IRC to be.
23:48:06 <AnMaster> cpressey, or what is a MUSE?
23:48:11 <cpressey> AnMaster: s/Source/Social/
23:48:15 <AnMaster> cpressey, ah
23:48:18 <cpressey> A MUD with no fighting, basically.
23:48:23 <AnMaster> ah I see
23:48:31 <AnMaster> cpressey, irc with objects?
23:48:40 <cpressey> Basically, yes.
23:48:40 <AnMaster> and not being in several rooms at once
23:49:13 <alise> IRC is nice though, it's stupid and dinky and you can talk in text all the time.
23:49:17 <alise> It's like a hug.
23:49:24 <AnMaster> dinky?!
23:50:56 <AnMaster> oh wait
23:50:57 <AnMaster> # small and insignificant; "we stayed in a dinky old hotel"
23:50:57 <AnMaster> # a small locomotive
23:50:57 <AnMaster> # (British informal) pretty and neat; "what a dinky little hat"
23:50:58 <AnMaster> wordnetweb.princeton.edu/perl/webwn
23:51:03 <AnMaster> alise, which of those meanings
23:51:07 <AnMaster> I thought the first
23:51:12 <AnMaster> but I guess you may mean the third
23:51:13 <alise> Um... first and last.
23:51:22 <AnMaster> alise, ah both of them?
23:51:27 <alise> Yeah.
23:51:27 <cpressey> What, you mean IRC is *not* a small locomotive??
23:51:32 * cpressey demands his money back!
23:51:32 <alise> It is also that.
23:51:40 <cpressey> Oh, alright then.
23:51:40 <AnMaster> cpressey, well obviously I didn't think he meant that one
23:51:46 <AnMaster> just too lazy to copy it in two blocks
23:52:22 <AnMaster> Tiny and cute; small and charmful; Tiny and insignificant; small and undesirable; Double income, no kids yet. Said of a relationship
23:52:23 <AnMaster> en.wiktionary.org/wiki/dinky
23:52:28 <AnMaster> that is a nice list of possible meanings
23:52:29 <AnMaster> :D
23:52:44 <alise> IRC: Double income, no kids yet.
23:52:46 <AnMaster> I guess the last one implies the one just before it
23:52:48 <AnMaster> alise, ^
23:53:01 <alise> I would rather call kids small and undesirable!
23:53:13 <AnMaster> "Double income, no kids yet." -> parents think kids are "small and undesirable"
23:53:24 <AnMaster> alise, yes exactly
23:53:55 <AnMaster> alise, it is quite amazing a word can mean both "small and charmful" and "small and undesirable"
23:54:12 <AnMaster> would say it makes the word rather useless
23:54:29 <AnMaster> if you don't know which the speaker implies
23:54:48 <pikhq> No.
23:54:51 <alise> It's obvious from the dinky context, usually.
23:54:58 <alise> Dinky dinky dinky dinky desu dinky.
23:55:07 <alise> So, someone name botte!
23:55:49 <pikhq> T`EXINKI
23:55:49 <cpressey> Bealzebot.
23:56:00 <zzo38> I have idea, I want to make some spells in D&D that deal with prime numbers and fibonaci number, and check if the number of your current hit-points is odd or even, etc.
23:56:38 <zzo38> In addition, I also want to make a feat called "MERCIFUL TO GIBBERING MOUTHERS" (and also a spell with the same name, but different effect), but I don't know what to write! Do you have idea?
23:56:47 * pikhq enjoys writing things that cannot be romanised with normal romanisation schemes. ;P
23:57:14 <alise> DAIYEN FOOELS
23:57:24 <pikhq> zzo38: You, romanise ディンキ.
23:57:39 <alise> 30c730a330f330ad
23:57:41 <alise> Or, for short,
23:57:43 <alise> c7a3f3ad
23:57:44 <alise> Done!
23:57:51 <pikhq> alise: Win.
23:58:06 <alise> It's nice not having the correct fonts. Makes it easy to romanise using HEX.
23:58:25 <cpressey> zzo38: Errrrr... you could summon monsters, each with an HP which is a prime factorization of your HP. So, if you have 20 HP, you summon 4 giant rats, each with 5 HP.
23:58:28 <zzo38> pikhq: You can write "deinki" I guess, but that isn't perfect (because of the small "i")
23:58:40 <cpressey> No, wait. 4 isn't prime.
23:58:47 <pikhq> There does not exist a Hepburn for that. I could do keyboard-shiki...
23:59:01 <cpressey> I mean: Summon 3 monsters, two with 2 HP and one with 5 HP.
23:59:06 <pikhq> Making that into "dliki". Which is absolutely bizarre.
23:59:11 <pikhq> Erm.
23:59:13 <pikhq> "dlinki".
23:59:43 <alise> ... Why isn't there a good language that's like rc but with better abilities?
23:59:54 <alise> Like, not Python because Python is kind of crap. Just like rc with ... a library.
23:59:57 <alise> Not Lua, Lua's naff.
←2010-06-24 2010-06-25 2010-06-26→ ↑2010 ↑all