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