00:04:47 -!- sebbu has quit ("@+"). 00:15:17 -!- ehird` has quit (Read error: 104 (Connection reset by peer)). 00:26:28 -!- RedDak has quit (Read error: 113 (No route to host)). 00:28:08 zzzzzzzz 01:20:59 -!- calamari has joined. 01:23:22 hi 01:27:31 hello 01:27:37 what's up, calamari? 01:27:57 RodgerTheGreat: working on a FUSE filesystem, it's quite a struggle 01:28:21 I've heard they can be rather tricky. What is it sitting on top of? 01:29:38 any filesystem 01:30:46 the easy part is working fine.. python program that breaks up a file (for example a disk image) into blocks and compresses each one with bzip2 01:31:19 then when mounted, the FUSE fs makes it appear that the original image is there 01:32:13 it works okay with raw blocks (if the bz2 was larger than the block size, I throw it out and just store the raw). But the bz2 randomly crashes 01:32:44 my best guesses are a memory leak or a concurrency problem 01:32:58 yay, exception handling with call/cc 01:34:35 bsmntbombdood: ? 01:34:52 exception handling, implemented with call/cc 01:34:55 it's pretty neat 01:35:31 what is call/cc 01:35:40 call with current continuation 01:36:23 sounds like a fork 01:36:28 http://paste.lisp.org/display/45319 01:37:07 which language is that written in? 01:37:12 lisp? 01:42:13 scheme 03:16:09 yay, it was fine.. I guess FUSE does threads, and my code isn't thread safe 03:17:51 * calamari reworks .. can't write to globals 03:18:39 write mutators to closures, then! 03:19:28 hmm, never mind.. this is fine for reading but it won't work for writing 03:20:43 unless fuse is smart about that 03:21:40 -!- ihope has joined. 03:23:08 Uh oh. 03:23:19 What's the shortest ski form of \a.`k`k``axy? 03:25:05 Hopefully it's not ``s`kk``s`kk``s``si`kx`ky. 03:27:04 -!- Sukoshi has joined. 03:27:07 GregorR: You home? 04:18:17 good night, everyone 04:18:34 -!- RodgerTheGreat has quit. 04:51:42 Sukoshi: NEVAR 04:53:49 GregorR: Can you use sane C pointer syntax in C++ ? 04:57:02 -!- bsmntbombdood has quit (Read error: 104 (Connection reset by peer)). 05:14:19 Um, duh. 05:15:27 Yay. Stupid C++ reference BS. 05:16:44 yay! r/w working 05:17:13 The C++ "&" types don't need to be used if you don't want it; char * is still a perfectly cromulent type. 05:17:18 it's funny because cat /dev/zero > a is actually making it take less space (0's compress well) 05:17:54 Good. 05:18:05 Because I'm not comfortable with that high-level pointer nonsense. 05:19:07 I've not actually *used* it at all. 05:19:25 I might. 05:19:33 Wait, the new-reference stuff you mean? 05:19:59 The C++ reference junk. 05:29:29 Did somebody mention pointers? 05:29:39 * ihope dons a gas mask and heavy gloves 05:36:47 -!- GregorR-L has joined. 05:48:09 -!- calamari has quit ("Leaving"). 06:36:24 -!- ihope has quit (Read error: 110 (Connection timed out)). 06:47:40 -!- bsmntbombdood has joined. 06:50:54 -!- ihope_ has joined. 06:50:56 -!- ihope_ has changed nick to ihope. 06:52:16 -!- bsmntbom1dood has joined. 06:56:47 -!- bsmntbombdood has quit. 06:57:22 -!- bsmntbom1dood has changed nick to bsmntbombdood. 07:17:23 -!- ihope has quit (Read error: 110 (Connection timed out)). 07:44:42 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)). 07:45:47 -!- puzzlet has joined. 07:46:40 -!- cherez has joined. 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:38:36 -!- oerjan has joined. 08:51:22 -!- oerjan has quit ("leaving"). 09:01:19 school is going to start soon :( 09:04:27 -!- cherez has quit ("Leaving."). 09:55:20 -!- helios24 has joined. 09:55:31 -!- helios24 has quit (Client Quit). 09:56:30 -!- helios24 has joined. 09:56:58 -!- helios24 has quit (Client Quit). 09:57:54 -!- helios24 has joined. 09:58:53 -!- helios24 has quit (Client Quit). 09:59:18 -!- helios24 has joined. 11:25:10 -!- ehird` has joined. 13:48:36 -!- ihope_ has joined. 13:48:37 -!- ihope_ has changed nick to ihope. 14:36:43 -!- RedDak has joined. 15:16:15 -!- oerjan has joined. 15:25:40 -!- RodgerTheGreat has joined. 15:25:52 'morning, folks 15:27:51 Morn'. 15:29:01 error : syntax anomaly at 'morning, folks\nMorn'.; 15:29:01 ^ 15:29:01 unexpected ;, expecting id 15:29:02 howdy, pikhq 15:29:30 ERROR - Improperly terminated character constant 15:29:45 well 15:29:57 you're using a stone-age language with ' as the character-marker? :P 15:30:00 ok then 15:30:10 yep, one known as Haskell. 15:30:20 error : syntax anomaly at 'morning, folks\nMorn'.; 15:30:20 ^ 15:30:20 unexpected o, expecting ' 15:36:44 -!- fizzie has quit (Read error: 54 (Connection reset by peer)). 15:38:09 -!- RedDak has quit (Read error: 104 (Connection reset by peer)). 16:08:29 -!- sebbu has joined. 16:15:07 -!- oerjan has quit ("leaving"). 16:36:01 -!- ihope_ has joined. 16:52:45 -!- ihope has quit (Read error: 110 (Connection timed out)). 17:04:19 Sukoshi: You aren't using Schildt as a reference are you? 17:33:14 #\M #\o #\r #\n #\i #\n #\g 18:03:53 bsmntbombdood, surely you mean (#\M . (#\o ... 18:04:21 the abbreviated list syntax should be used whenever possible 18:21:44 -!- cherez has joined. 18:25:32 -!- ihope__ has joined. 18:25:36 -!- ihope__ has changed nick to ihope. 18:37:10 -!- ihope_ has quit (Read error: 110 (Connection timed out)). 18:45:11 -!- aschmack has joined. 18:45:57 !bf ++++++++++++++++++++++++++++++++[>+>+<<-] 18:45:57 >>+++++++++++++++++++++++++<< 18:45:57 ++++++++++[>>.-<.<-] 18:46:03 -!- aschmack has quit (Client Quit). 18:49:57 -!- jix has joined. 18:57:31 Creative. A BF troll. 18:57:42 Except that he can't use copy/paste, obviously. 18:57:44 hunh 18:58:59 wtf is that anyway? Some kind of counter? 18:59:06 * RodgerTheGreat runs it 18:59:20 "9 8 7 6 5 4 3 2 1 0 " 18:59:38 ... 19:12:27 !bf ++++++++++++++++++++++++++++++++[>+>+<<-]>>+++++++++++++++++++++++++<< ++++++++++[>>.-<.<-] 19:12:54 -!- blahbot` has joined. 19:12:55 %bf ++++++++++++++++++++++++++++++++[>+>+<<-]>>+++++++++++++++++++++++++<< ++++++++++[>>.-<.<-] 19:12:55 9 8 7 6 5 4 3 2 1 0 19:13:05 oh, egobot is dead 19:13:09 %cmds 19:13:10 quit, eval, ps, kill, cmds, help, reload, join, part, send, topic, raw, bf, parse, reduce, wapr (use %help for argument information) 19:13:20 %wapr nobody loves wapr! 19:13:21 [72, 73, 60, 73, 62, 83, 70, 73, 80, 63, 77, 81] 19:22:37 %reduce $^xAt 19:22:37 A 19:22:43 %reduce $^xx$^xAt 19:22:44 A 19:22:49 %reduce $^x$xx$^xAt 19:22:50 $AA 19:23:03 %reduce $^x^y$xyAB 19:23:04 ^y$Ay 19:23:10 %reduce $$^x^y$xyAB 19:23:10 $AB 19:23:15 %reduce $$^x^y$xy^xxB 19:23:15 $^xxB 19:23:26 broken already 19:45:39 Broken? 19:46:13 %reduce $^x^xxA 19:46:14 ^xA 19:46:34 May or may not be right, depending on how you look at it. 19:47:01 $^x^yx^yy 19:47:04 %reduce $^x^yx^yy 19:47:05 ^y^yy 19:47:38 %reduce $$^x^yx^yyA 19:47:38 ^yA 19:47:45 I think that's definitely wrong. 19:47:52 %reduce $$^x^yx^zzA 19:47:52 ^zz 19:48:00 Yes, it's wrong. 20:02:37 -!- jix has quit (Nick collision from services.). 20:02:51 -!- jix has joined. 20:23:42 -!- ihope__ has joined. 20:24:23 -!- ihope has quit (Nick collision from services.). 20:24:25 -!- ihope__ has changed nick to ihope. 20:54:54 -!- ihope__ has joined. 21:04:50 -!- ihope has quit (Nick collision from services.). 21:04:53 -!- ihope__ has changed nick to ihope. 21:21:23 Some would say that the worst type of language is that in which given a piece of code, knowing what it actually does requires knowledge of all the rest of the code as well. 21:22:06 12320: goto 11340 21:22:12 Exactly. 21:22:16 a++; 21:22:46 ...though your example is most likely better than mine, seeing as how a++ might be very obvious. 21:23:04 Likewise, that the best type of language is that in which given a piece of code, even a very small one, you can probably tell exactly what it does and why it does it. 21:23:16 And noone likes old BASIC. 21:24:02 Others would argue that an extension of a language must be better than the original. 21:24:39 Only in the hands of someone who knows when to use the extensions. 21:25:02 Perhaps the extension consists of a switch which can be placed at the top of the main file so as to make every built-in function do something completely different. 21:25:16 It seems the focus of Computer Science nowadays is asserting that you must use the extensions whenever possible. 21:25:18 a++ meaning "decrement the value at a", perhaps. 21:25:36 #define a++ a-- 21:25:39 There are all kinds of philosophies you could bring in. 21:25:59 Some philosophies directly contradict each other. 21:26:57 Here, have some philosophy: Every piece should be as small and generally useful as possible. 21:27:37 And being small being more important than being generally useful. 21:28:37 (Do I look like I'm collecting obscure English language constructs and using them whenever I feel like doing so?) 21:28:39 http://www.jwz.org/doc/worse-is-better.html 21:28:53 So the best program immediately returns. 21:30:29 That's not useful. 21:30:46 But smaller. 21:30:57 And being small is more important. 21:31:12 no 21:31:14 Okay. Being useful is more important than being small. Being small is more important than being generally useful. 21:31:14 *simple* 21:31:27 to quote my linked document: "# Simplicity-the design must be simple, both in implementation and interface. It is more important for the implementation to be simple than the interface. Simplicity is the most important consideration in a design. 21:31:40 And being correct is more important than being useful. 21:32:18 Better to give no answer than to give a wrong answer, since if you give no answer, it's obvious that you didn't give the right answer. 21:32:22 "The good news is that in 1995 we will have a good operating system and programming language; the bad news is that they will be Unix and C++." 21:32:25 :-P 21:32:42 There's all kinds of philosophy we could come up with... 21:33:01 c++ ? 21:34:14 Maybe this: know exactly what you're doing and do it. 21:34:50 Know exactly what you want to do. Do exactly what you want to do. 21:35:18 ihope: the ability to give wrong answers is what differentiates humans and AI from dumb machines. 21:36:17 ihope: The waterfall model? 21:36:18 :-) 21:36:23 SimonRC: waterfall model? 21:36:40 yeah, "Know exactly what you want to do. Do exactly what you want to do." == waterfall modle 21:40:02 Hmm. 21:41:42 The waterfall model looks more like "make everything be in the same phase". 21:44:47 the waterfall model falls apart at the first half of your description: requirements 21:45:12 Um... 21:46:30 So the waterfall model is avoiding things like "I want each function to do what the other doesn't" and "I *think* I've handled all the cases I need to"? 21:48:36 The first one isn't knowing exactly what you want to do because you're not specifying just where the dividing line between the functions goes. The second one isn't doing exactly what you want to do because you might easily have missed a case. 21:48:38 The problem is that the user doesn't really know what they *need*. 21:48:54 even if the user thinks they know what they need, they're likely to be wrong in some ways 21:49:23 Mm, I'm not actually sure what this philosophy is for. 21:49:41 Languages, constructs or programs. 21:50:54 Meh... 21:50:56 -!- ihope has left (?). 21:51:56 -!- ihope has joined. 21:52:17 How is that the waterfall model? 21:52:25 ...er, maybe I see. 21:52:40 Both are "know what you do before you do it"? 21:55:48 -!- Sukoshi` has joined. 22:02:54 -!- RedDak has joined. 22:04:06 ihope: or rather, don;t do anything until you know exactly what you are going to do 22:04:14 * ihope nods 22:04:54 Always be simple/consistent, never be wrong. 22:06:37 a very ineffective strategy :) 22:06:57 SimonRC, worse is not better 22:06:59 and better is not better 22:07:13 i propose, instead, that snakes and chickens is better, which is the philosophy i follow 22:07:30 lament: ineffective? 22:07:39 it is a bit like the integers and real numbers versus the complex numbers, two follow the same sort of line and one is completely different 22:08:52 ihope: like i said, the ability to make errors and act on heuristics is one of the differences between humans/strong AI and dumb machines 22:12:03 -!- Sukoshi has quit (Read error: 110 (Connection timed out)). 22:12:20 i guess my metholodogy is like a less-specified agile strategy without the stupid parts and without the hype 22:12:52 it advocates a simple interface whenever possible, though if you can get a great shortage in code size without too much loss of interface quality, do it 22:13:08 hard-to-understand and complex bits of code should be abstracted away in a certain place 22:13:28 you should be able to read the code as a description of "what this does", not "how this does that". abstracting away complex hacks helps immensely 22:14:04 A type system powerful enough to express exactly what a function does would be quite nice. 22:14:26 * pikhq has a simple methodology. . . "Make the program work. Make it readable. Make it beautiful." 22:14:53 Hmm. Oops. 22:14:54 ihope: SortedSequence sort(Sequence);? 22:15:13 I think Unlambda fits the category of languages in which you can take a small piece and tell exactly what it does. 22:15:15 -!- jix has quit ("CommandQ"). 22:15:26 Though it can't tell you why it does it. 22:15:43 cherez: hmm? 22:16:16 A type system that expresses exactly what a function does. 22:16:35 that's... rather difficult 22:16:41 Integer+2 Add2(Integer) 22:16:47 ihope: because it doesn't have any names 22:17:06 MaybeHaltsOrMaybeDoesn't HaltingProblem(void) 22:17:21 Could be very difficult, given all this incompleteness and undecidability. 22:17:29 cherez: I invite *you* to do it. :p 22:18:07 * SimonRC indicates Epigram 22:18:39 Doesn't Epigram restrict recursion for the sake of decidability? 22:18:47 GodKnowsWhatThisCouldPossiblyReturn input(FileStream) 22:18:47 :) 22:19:01 I have written a program to tell you if another program will halt. Unfortunately, it has the nasty tendency of taking forever if the program being tested doesn't halt >_> 22:19:22 FileStreamInput input(FileStream) 22:19:35 ihope, that's just a turing-complete type system 22:19:43 incidentally, we call the signatures in those "code" 22:19:49 GregorR: Run it on itself. . . 22:20:07 Epigram's type system is Turing-complete? 22:20:10 ihope: It seems that you can write any sensible program in Epigram. 22:20:16 Hmm... 22:20:37 * ihope loads up the weird Epigram stuff 22:20:57 pikhq: PERFECT! 22:21:21 okay, how about 22:21:25 Any result is a paradox. ;) 22:21:26 ProbablyAlwaysReturns2 SmallestNumberOfPrimesAddingUpTo(PositiveEvenInteger) 22:21:35 Um... 22:21:38 I suppose you could use that kind of a type system as a cleaner implementation of asserts.... 22:21:48 You know, Epigram has a type that can only hold numbers that are not multiples of 2. 22:22:19 ihope: is that so difficult? 22:22:32 ...er, multiples of 3, I meant. 22:22:49 If you can write any sensible program in Epigram, it probably also has a type that can only hold Turing machines that halt. 22:24:13 does it have a type for all integers except 1,3 and 41893? 22:24:20 Probably. 22:24:33 it's not like it's very hard to implement 22:24:42 Does it have a type for all integers that are not real numbers? 22:24:43 :p 22:24:50 pikhq: what doesn't? 22:25:10 Here it is in Haskell: data NonRealInteger 22:25:10 most languages don't 22:25:26 Most languages don't have types that hold no values at all? 22:25:28 C only has a pointer to it :) 22:25:41 ihope: i sure hope so 22:25:51 ihope: i can't think of any (other than the aforementioned haskell definition) 22:26:45 Hmm. 22:27:01 Of course, most languages probably have only a finite number of types, yes? 22:27:38 no, most languages allow user-defined types 22:28:12 Yes, but can there ever actually be an infinite number of them, or just many many many? 22:28:34 s/many many many/arbitrarily many/, to be a bit more exact 22:28:45 i think there can be an infinite many in most languages 22:28:58 ihope: any language with polymorphic types presumably has infinitely many 22:29:05 ihope: a list, a list of lists, a list of lists of lists.... 22:29:05 * ihope nods 22:29:37 is void a proper type in C++? 22:29:47 It ought to be, for parameterisation purposes. 22:29:58 i don't know if you can define a variable as it 22:30:07 * ihope ponders his piece of Epigram 22:30:18 where? 22:30:46 actually, void would work quite well if sizeof(void) == 0 22:30:54 indexing is pointless, for a start 22:31:19 it takes up no space as a return value... 22:31:20 etc 22:32:54 sizeof(void) == 0 -> sizeof(*voidptr) == 0 -> oh no 22:33:48 um, no 22:33:51 wrong 22:33:58 try again 22:34:19 ah, I see what you mean 22:34:21 it's difficult to have a completely empty type in a language where you have to explicitly create variables and assign a type to them, after which they hold some value (like C++) 22:34:34 but why is that bad? 22:34:37 since you shouldn't be able to do that 22:35:08 it should only work if you can't use the value in any way 22:35:13 nah, you just say that its only value is automatically cast to and from the integer 0, and to and from the null pointer 22:35:21 void v, w; // v and w don't hold anything 22:35:47 if (v == w) // wrong!!! this should result in an error, you can't compare nothing with nothing 22:35:54 erm actually, you can 22:35:58 no, you can't 22:36:05 what would the result be? 22:36:13 The void typ would be analogous to the 90 type in Haskell 22:36:15 oops 22:36:19 "() type" 22:36:21 don't confuse a type with one member with a type with 0 members 22:36:37 the void type should have 1 possible value 22:36:47 it is a 0-bit type 22:36:49 we were talking about the type "integers that aren't real numbers" 22:36:50 2^0 = 1 22:36:55 such a type has no members 22:37:09 I wasn't 22:38:22 * ihope decides to use "specify everything" as his Epigram philosophy for now 22:39:06 ihope: you actually program in that thing? 22:39:11 you got it to work 22:39:12 ? 22:39:13 No. 22:39:17 Er, what? 22:39:22 How many questions am I being asked? 22:39:30 ? 22:39:32 (void question) 22:39:33 I don't actually program in it. I did get it to work. 22:39:37 I mean, did you get the emacs mode to work? 22:39:59 epigram looks pretty ugly. 22:40:01 It seems you can't go back and edit old bits of the program though 22:40:40 "enclose a b f r x : Result a b f r" 22:40:44 You can. It's just difficult. 22:41:42 Or weird or something. 22:41:46 It's not obvious how to do it. 22:42:17 I mean, it's specified in the paper. 23:04:49 * ehird` ought to put his philosophy down in words sometime 23:05:04 i like it 23:06:14 Couldn't be hard. 23:06:37 ohh you're talking about THAT epigram 23:06:47 There's more than one? 23:07:07 umm, i think i know what you're talking about 23:07:41 So what is your philosophy, roughly? 23:08:04 a few main points are: 23:08:29 1. explicit is better than implicit, apart from when explicit is ugly and/or doesn't matter to the reader/hacker of the code 23:08:46 2. hard-to-understand and complex bits of code should be abstracted away into simple terms! 23:09:01 3. because of 2 and 1, code will describe /what/ it does, not /how/ it does it 23:09:24 4. interface simplicity is important, but code simplicity is more important, UNLESS it impacts on interface simplicity greatly 23:09:40 1 seems to imply how rather than what 23:09:42 5. comments are to be used sparingly, to explain algorithms and abstracts, but not code - which, because of 3, should already be self-explanatory 23:09:48 lament, indeed, but just to clarify 23:09:52 wait, 23:09:54 no 23:09:57 how does 1 imply that? 23:10:05 1 is basically "no hidden magic" 23:10:09 -!- Sukoshi` has changed nick to Sukoshi. 23:10:18 explicit better than implicit 23:10:21 don't BRUSH OVER things, sure, but don't make code a recipe... make it a description 23:10:38 doesn't that mean "a hash table with buckets of size 150" instead of "a dictionary"? 23:10:52 Hash tables have buckets? 23:11:02 ehird`: Prolog does that. 23:11:18 Sukoshi, Yes, prolog heads in the right direction for that 23:11:19 lament, no 23:11:33 python follows explicit>implicit in a way, do you see things like that in it? 23:11:33 Hmm... 23:13:14 Stupid limited auxiliary verbs! 23:14:19 I wonder how I would go about removing those limits... 23:14:40 I guess I don't often see people speaking in moods other than the indicative. 23:23:07 aren't you a native speaker? 23:23:34 Yes. 23:23:51 well then.... 23:24:00 learn to speak your own language :) 23:24:04 Heh... 23:24:09 Can't I learn to speak Spanish instead? 23:24:25 There's no English word for "debiendo"! 23:25:32 ...and it seems I am indeed sort of mentally translating into English, seeing as how I'm apparently unable to comprehend anything containing the word "debiendo". 23:25:56 eso tambien seria bueno, pero el espanol tiene los mismos problemas con verbos auxiliares 23:26:05 In Java, is it good practice to assign null to something that's uninitialized, and then check against null to see if it's uninitialized? 23:26:21 Spanish has auxiliary verbs? 23:26:30 si 23:26:36 (Perhaps it's not the "debiendo" that's the problem.) 23:26:38 他の語を話して止めてください。 23:26:53 Well, I don't believe I'm familiar with auxiliary verbs in Spanish... 23:26:59 これは英語ただ話してもいいと思いますし。 23:27:02 Sukoshi: is that _supposed_ to be a bunch of squares? 23:27:06 lament: no. 23:27:09 lament: No :) 23:27:14 Japanese, ayE? 23:27:16 Yup. 23:27:20 * ihope squishes E 23:27:23 s/これ/ここ/ 23:27:43 i assumed it was japanese since it's Sukoshi, but all i see is squares :) 23:28:05 Well, if you're using the right character encoding and other scary things... 23:28:11 ihope: 'haber' is the main one, meaning the same as the english 'to have' 23:28:23 i have talked - he hablado; etc 23:28:27 * ihope nods 23:28:57 I'm not at all experienced with haber apart from its being used to mean "there is". 23:29:02 instead of "would", though, spanish has a separate tense 23:29:09 Je peux aussi parle en francais, mais ce n'est pas une langue interessante. 23:29:18 (would talk - hablaria) 23:29:25 (Que je juste pense.) 23:29:30 Is the problem with things like "I would have talked"? 23:29:36 no 23:29:52 there's a separate tense for 'would X' where X is a verb 23:30:05 in this case, would have - habria 23:30:22 and talked is just the past participle in both languages 23:30:25 so hablado 23:31:21 Sukoshi: all languages are interesting, surely :) 23:32:23 Where's the problem with auxiliary verbs, then? 23:33:56 i think the situation is the same as in english 23:34:08 i thought you just disliked auxiliary verbs in general 23:34:13 I have varying degrees of facillity in 5, and I disagree lament :P 23:34:13 is there a specific problem? 23:34:36 Things like "should" don't have all the forms that "normal" verbs do. 23:34:47 ihope: when is it a problem? 23:35:05 Sukoshi: frankly, "varying degrees of facility" doesn't sound very impressive :) 23:35:22 why doesn't everyone use utf8 23:35:43 ehird`: because everyone SHOULD be using UTF-7! 23:35:55 UTF-pi 23:37:44 lament: well, you might use the present participle instead of other forms when discussing... hypotheticals, I guess. 23:38:15 mmm 23:38:20 present participle of "should"? 23:38:22 "The sky being red would be pretty cool." 23:38:24 Yup. 23:38:25 lament: One of them I have native-level proficiency, the other I have native-high-school level facillity, a third I have somewhat-below native facillity, a fourth I have layman-speech facillity, and a fifth I have layman-peech facillity. 23:38:53 s/-peech/-speech/ 23:38:54 ihope: so... you just said it. What's the problem then? :) 23:38:58 Hey, plain old imperfect subjunctive is iffy. 23:39:44 Plus both of you are complaining about a lack of Western language features :) 23:39:52 I'm not complaining about anything 23:39:58 Well, ihope is. 23:39:59 I love all languages 23:40:32 I guess "should" is sort of equivalent to "has to". 23:41:20 Sukoshi: i just don't understand how a language can be "uninteresting" :) 23:42:08 "The sky is blue, so people should wear red glasses if they don't want to see the light from it. It'd be cool if the sky were red, so people would have to wear blue glasses if they didn't want to see the light from it." 23:42:52 The actual case that rather frustrated me was a hypothetical philosophy. 23:43:15 Rather exceptional, really. 23:43:31 Sukoshi: "Western language" is a rather odd term. Linguists would laugh at you. 23:43:38 (I'd rather not use that word the same way three times in a row.) 23:44:18 "Indo-European language"? 23:44:44 lament: What superfluous derivationally-correct term would they use to refer to it? 23:45:05 Sukoshi: i'm not sure, because i don't know what you meant 23:45:21 (which is exactly the reason for more exact terms) 23:45:34 Hmph. Have you never heard the term ``Western'' in speech before? 23:46:10 The ``Western'' world, for instance? 23:46:29 Used by historians a good deal too, IIRC. 23:46:39 Sukoshi: in that sense, "western language" makes sense, but "western language feature" not really 23:46:53 Sukoshi: since there're so many western languages with all sorts of different features 23:47:34 Unless you refer to the Celtic languages, which I've never really heard being included as part of the ``West'', I don't see the argument there. 23:48:14 Sukoshi: is basque a western language? Is Finnish? 23:48:21 Neither. 23:48:36 then our notions of "western world" are quite a bit different 23:49:24 mine certainly includes western europe. 23:49:41 Well, you cannot exactly call the Moors ``Western''. 23:49:51 And I wouldn't call Finland ``Western Europe''. 23:50:05 see, this is why "western" is a rather unfortuante term :) 23:52:18 it's politically loaded, among other things 23:52:29 for example, http://en.wikipedia.org/wiki/Image:Clash_of_Civilizations_%E2%88%9E.png 23:52:53 Huntington thinks both Spain and Finland are in the "Western Civilization"