00:08:05 I am writing some C program and Famicom program to make a slideshow of name tables, pattern tables, and .NSF musics, at request of someone who ask me to do this. 00:09:46 8:08 play drum machines every day 00:10:05 * Sgeo is pondering how to best fake return-type polymorphism in a dynamically typed language 00:10:40 I'm trying to figure out what's the optimal kind of cpu design for when your system is 32 bits but you don't have cache 00:10:54 starting to look suspiciously a lot like an ARM :D 00:11:30 If you don't have cash, you can't afford any kind of CPU design. 00:11:36 Those things are expensive. 00:13:42 ahah 00:14:12 well if you have cache the optimal design turns into something like a POWER 00:14:26 madbr: what about ARM is optimized for no cache in particular? 00:14:36 or some other monstruous out of order risc design with some huge ass vector processing unit 00:15:09 kmc: thumb mode (16 bit opcode mode) 00:15:21 ah yeah 00:16:09 register file not too small not too large 00:16:24 1 or 2 instructions per cycle 00:16:34 another reason for 16 bit instructions is that some small embedded ARM chips have only 16-bit data bus 00:16:42 (or had, anyway) 00:19:24 as far as i can tell, the main design criterion for ARM was basically "okay, RISC is pretty cool, now how can we be clever to work around the drawbacks" 00:20:06 in particular arbitrary conditional instructions + selective update of condition codes 00:20:24 to avoid pipeline stalls caused by branching 00:20:39 sadly Thumb does away with the arbitrary conditionals :/ 00:20:43 Thumb-2 has them in a jankier way 00:21:31 also having the program counter accessible like any other register is pretty cool 00:21:48 yeah dunno about having PC as a register 00:22:11 doesn't work well with my current design at least 00:22:57 I've also considered a miniature vliw, with 32 bits instructions but 2 operations per instruction 00:23:42 Yes, ARM and VAX both have PC in R15; RogueVM has PC in R0. I would like to make up some CPU architecture too, but it would cost a lot to make the chip. 00:23:53 but I'm not sure there's much gain over a 1 op/16bit instruction design if you have to load instructions at the same time 00:24:17 zzo: you could do something that could run in a FPGA 00:24:22 zzo38: Should I write my programs for RogueVM instead of x86? 00:24:25 Put instructions on a separate bus if you want to load instruction and data at the same time. 00:24:44 zzo: that's why most CPUs have cache 00:24:46 shachaf: It depends what programs you are trying to write. For some cases, neither is best. 00:25:00 zzo38: What if I want to write Web 2.0 applications? 00:25:17 zzo: 2 internal buses... without having a gazillion pins (which would be expensive) 00:26:14 shachaf: In that case I recommend quitting. But if you want to do anyways, perhaps don't use a machine code; use an interpreted or compiled programming language. 00:26:35 the problem with a PC register is that it gets complicated once you start doing out of order and stuff 00:26:47 the ARM PC is barely a register at all anymore 00:26:56 zzo38: But it's gotta scale, though. 00:27:04 has all sorts of occasions where using it as a register is forbidden 00:27:07 you need json encoding as an instruction 00:27:28 so in the end you kinda get cheated out of a register 00:27:44 madbr: Yes I think it can gets complicated, but I can make one that is different. 00:28:26 the interest of having a PC register is probably doing PC relative addressing 00:29:15 -!- Jafet has quit (Quit: Leaving.). 00:29:19 it could be useful for uhh 00:29:27 bonghits 00:29:40 yes.. 00:30:07 RogueVM is never meant to be hardware (it is software only), so it does not have those problems when PC is R0. If you use R15 as a stack pointer, you may return from a subroutine using the (single-byte) instruction: MTR R0 R15+1 00:30:26 yeah for software VMs the design considerations are different 00:30:35 With hardware CPU, the best way to do may depend to use least gate and most speeds. 00:30:53 presumably you want to use as few opcodes as possible and as many parameters/addresses/etc as possible with a vm 00:30:57 Even though it may make it strange, I think. 00:31:11 so turning flow execution into a memory location you write to probably makes sense 00:31:48 zzo: yeah for hardware cpus... RISC tends to win 00:32:15 except maybe before cache where everybody was CISC 00:32:22 because denser code = faster code 00:32:41 (not true anymore once your loop is in code cache) 00:33:18 for VMs it helps to have complicated instructions because you reduce the interpretive overhead 00:33:32 that's assuming you are doing a straight up interpreter and not something fancier 00:33:37 right 00:33:41 For hardware CPU, I want one with self-modifying microcodes. 00:33:47 oho 00:33:51 I miss Cybertown 00:33:58 zzo: that's an interesting idea 00:34:15 i have ideas about VMs. one such idea was to just build a VM on top of an API 00:34:54 well i didnt think of it that way before entirely 00:35:01 the interpreter for LuaJIT decodes the next instruction just before dispatching the previous instruction 00:35:14 in hopes of keeping the ALU busy through a mispredicted indirect jump 00:35:17 I have many other ideas for designing CPU hardware, too. 00:35:36 i think i also have an idea of a nes vm 00:35:37 The interpreter for LuaJIT does all sorts of nifty things. 00:36:21 also i was reading http://wiki.luajit.org/New-Garbage-Collector today 00:36:23 good stuff 00:36:29 the luajit guy is some kind of wizard 00:36:53 zzo: the problem is making it all worth it 00:38:30 afaik the optimal circuit design is to fill it with a whole bunch of slow but efficient pipelined ALUs, but you'll never be able to write a program for that 00:38:44 Well, it would be worth it if: * It is for sale * GCC and/or LLVM can target it * Patent-free * Fast * Not too expensive * Not too much power use * A few other things too. 00:39:19 http://wiki.luajit.org/New-Garbage-Collector#Bitmap-Tricks 00:39:37 I should write a JIT-thing sometime. It sounds like fun. 00:39:38 madbr: But you would need some way to read instructions too, and then you will be able to write a program for that, I think. 00:40:20 like, supposed you doubled down on adders 00:40:53 and made something like a 1024bit SIMD or something crazy like that 00:41:18 but every pipelined addition takes 10 cycles to execute 00:41:32 so you'd need 10 things going on at the same time to be efficient 00:41:40 no compiler could target that 00:41:50 how long before x86 SIMD registers are extended to 1024 bits 00:42:10 I think ALU and instruction reading is not good enough; also have multiplexing (like Muxcomp esolang), self-modifying LFSR-based PC microcodes, and a few more. And then, make multi-core, and then you would have enough. 00:42:20 What are they at now, 256? 00:42:23 kmc: they're being extended to 256 atm 00:42:43 yep 00:42:47 Haswell will let you do integer operations on them. 00:42:53 Right now you can only do some kind of boring floating point thing. 00:43:10 8 x float isn't boring :D 00:43:20 8 floats isn't cool 00:43:30 you know what's cool? 8192 floats 00:43:39 ahah 00:43:47 that would never fit on any chip ever :D 00:44:19 * itidus21 . o O ( that would never fit on any chip ever :D ) 00:44:46 madbr: What if they were 2-bit floats? 00:44:57 How many bits do you need for a float to be meaningful? 00:45:05 0, 1, 0.5, NaN 00:45:05 1 00:45:06 what, so you get to chose between 0, 0.5, 1, and 2? 00:45:11 ahahah nan 00:45:15 gotta have NaN 00:45:18 No sign bit? 00:45:26 only a sign bit! 00:45:33 +0, +Nan, -0, -Nan 00:45:44 -N, +N 00:46:04 but yeah 32bit floats are kind of a sweet spots 00:46:17 there's support for 16bit floats here and there but it's kinda specialized 00:46:21 (gfx stuff) 00:46:47 Can you write a fast inverse square root for 2-bit floats? 00:46:55 yes, it's called a lookup table 00:47:18 More of a look-out table. 00:47:21 today i spent an hour looking at profiler output and learned nothing 00:47:28 What are you profiling? 00:47:32 then i spent five minutes adding 'print time.time()' to my code and found the slow bits 00:47:39 shachaf: a django app 00:47:55 Ah, one of those secret things. 00:48:00 is there some trick to using profilers 00:48:02 Since when do people profile django apps? 00:48:07 i've never had a really enlightening experience with one 00:48:18 kmc: I've derived some useful information from instruction-level profiling before. 00:48:18 int a=5; sign x=+,y=-; a*=y; 00:48:32 floats are really nice for sound processing 00:48:44 madbr: There is nothing sound about floats. 00:48:55 shachaf: what kind of information? 00:49:05 I've taken to calling them "floating-point values" instead of "floating-point numbers". 00:49:23 floating point-values 00:49:27 If some CPU is made by FPGA, use some FPGA with a open specification, so that it can be dynamically reprogrammed with exactly what it decide by itself to need for some computations at some time. 00:49:32 everything's made up and the points don't matter 00:49:42 kmc: I don't remember the details. 00:49:50 zzo: except there are no open specification FPGAs afaik 00:50:01 In some cases it was as simple as "this is the slow part", which is useful enough. 00:50:19 today python cProfile + kcachegrind failed to give me that basic information 00:50:31 madbr: Some have been reverse-engineered partially, I think. 00:50:34 instead it gave me a lot of confusing bullshit 00:50:42 functions which take a lot of time and seemingly have no callers 00:50:44 If I remember correctly it involved dividing one CPU hardware counter value by another. 00:50:52 all buried within the std lib 00:51:05 * shachaf doesn't know about profiling Python. 00:51:17 I thought the rule of thumb about Python was "it's all slow". 00:51:38 but yeah the big problem with cpu design is latency 00:51:39 If I could make a open specification FPGA then I think a lot of people would buy it; some people because they like open source, some because they like dynamic programming, and some for both reasons. 00:51:57 but some bits are slower than others 00:52:09 kmc: I've never gotten useful information from GHC's profiler, but I've never tried very hard. 00:52:13 in a web app it's often that you're making too many SQL queries in some particular place 00:52:23 which is not the host language's fault 00:52:31 And in addition, if we can use a same format instead of changing it too often, they can even replace the FPGA chip with a newer model and it will still work OK. 00:52:36 Presumably if you add all the cost centres by hand or something it can work out, but I've never gotten information from it "easily". 00:53:17 zzo: probablem is that, what if the new model has 4x more gates but they had to add in 1.2x more latency? 00:56:18 yeah, i've never had good success with ghc's profiler either 00:56:38 madbr: If it was like that, there are a few possibilities: One is to include one smaller area with 1x latency. Another is to continue producing the older model too. Third is to have to rewrite the program anyways. Regardless, though, the bitstream format should be kept the same as much as possible. 00:56:46 i guess i have successfully profiled c code in the past but i don't really remember the story 00:56:51 This way you can use all the same software to program it with. 00:56:55 oftentimes manual sampling in gdb is all you need 00:57:23 zzo: ah yeah perhaps 00:57:46 kmc: Yep, that's my experience too. :-) 00:57:59 There are so many little things you do while trying to optimize C code, and profiling can be one of them. 00:58:57 So even if the latency does change, you would not need an entirely new computer program to program the FPGA (you only need to change the setting), also if using dynamic programming you would only need to take into account the different latency and otherwise work the same. 00:59:09 kmc: Have you used "perf"? 00:59:14 a little 00:59:26 i find that the internet optimizes my music access rates 01:00:06 Oh for fuck's sake 01:00:28 eg youtube 01:00:38 Sgeo: What did those Clojure people do this time? 01:01:35 No, it's me being weird this time 01:02:13 were you on worlds.com again? 01:02:35 I now appear to think that my idea of a type to hold a value of a type to be determined later is possibly an applicative functor, and at the very least a functor... wait, hmm 01:03:19 What do you mean, how to hold a value of a type to be determined later? Wouldn't it be something with a class constraint? 01:03:58 How else are you supposed to determine the type after the value is written? 01:04:07 instead of before 01:04:20 I want to replicate return-value polymorphism in a dynamically typed language. My idea comes down to just returning a type that holds a function and that function is called with the desired type, producing the result value 01:05:38 zzo: I guess it could be a workable platform for stuff like games and synths 01:06:07 games: game defines its own "sound chip" and "video chip" dedicated to its own specific needs 01:06:38 synth: obviously defines its own custom targetted pipeline too 01:08:25 perl has return-value ad-hoc polymorphism 01:08:38 a function can determine whether it is being called in scalar or array context 01:08:42 madbr: Yes it could be good for those things, and perhaps find other use too. 01:08:42 Limited to three types, though. 01:08:55 Which is pretty different from type classes. 01:09:28 In Haskell it would be the equivalent (sort of) of returning (Scalar,Array,Hash) 01:09:42 zzo: hm, you'd need something that's not IO-limited or memory-bandwidth-limited 01:09:53 zzo: or calculation-latency limited 01:10:11 data T x y = T (forall y. x y -> y); Would something like this to do something? 01:10:49 ? 01:11:00 zzo38: No. 01:11:31 Don't shadow in data type declarations, man. It's not polite. 01:11:33 shachaf: You are right; it might not do something. 01:11:48 What does "shadow in data type declarations" mean? 01:12:10 -!- copumpkin has quit (Ping timeout: 268 seconds). 01:12:15 I made a mistake anyways. 01:12:17 zzo: essentially it would be good for the kind of stuff the CELL is used for 01:12:22 I meant: data T x = T (forall y. x y -> y); 01:12:43 -!- copumpkin has joined. 01:13:27 madbr: OK 01:14:00 that's kinda why AVX (new x86 SIMD) did float first 01:14:13 that's where most of the bigtime usage is 01:14:31 zzo38: That y inside the parentheses isn't the same as the y outside. 01:14:33 zzo38: Oh. 01:14:35 (games, multimedia) 01:14:42 other usages tend to be IO-limited 01:14:50 shachaf: That was a mistake. I didn't mean to put the y outside. 01:15:02 zzo38: That might be useful... I don't know for that. 01:15:04 madbr: OK 01:15:15 shachaf: I don't know for sure either. 01:15:38 It's like class Extract f where extract :: f a -> a 01:16:08 Am I insane? 01:16:25 Yes it would be something like that, but not quite, because it is a data type instead of a class. 01:16:36 Right. 01:16:40 Sgeo: In what way? That way, or the other way? 01:16:57 Sgeo: no its only code and math... it's not a reflection on you personally 01:18:59 what i mean by that is, you can't be insane simply by choice of programming languages, or by choice of engineering problems 01:25:00 I think Yin Wang (the guy explaining the Yin-Yang call/cc problem) also hates layout syntax too. 01:27:58 one neat idea I've had is to have, say, 32 ALUs, with 32 registers and 64 multiplexers 01:28:36 each instruction is simply the OP for each alu and which register each multiplexer reads from 01:29:43 so you could do a routine where each alu keeps the same op every cycle and it's just values trickling down the pipeline 01:44:09 -!- ais523 has quit. 01:52:43 i think that the linux community should plan for the release of windows8 with a plan for converting windows users 01:54:59 who cares 01:55:02 with a slogan like "we don't completely hate you" 01:55:41 microsoft is no longer the evil empire 01:55:46 they are rapidly becoming completely irrelevant 01:55:51 oh... 01:56:01 if you care about Software Freedom or whatever, then worry about converting iphone users 01:56:12 but iphones are stupid :P 01:56:20 iphone users all the time, telling them to convert. They never listen. 01:57:31 i admit i don't care about the fate of people using mobile devices 01:58:02 you don't understand 01:58:13 in another 10 years the majority of people will only own iphone-like devices 01:58:20 they will have a small iphone that fits in their pocket 01:58:27 and a tablet one with a detachable keyboard 01:58:30 and one that's part of their car 01:58:31 etc. 01:58:39 but none of these will be user-controlled general purpose computers 01:59:26 i sort of see what you're saying. 01:59:51 focusing on converting windows desktop users is hilariously '90's 02:00:14 im worried about the welfare of the code written by desktop users 02:00:42 huh? 02:00:44 written? 02:00:49 most users don't write any code 02:00:59 good point 02:01:05 humm 02:01:10 most users don't care about software freedom 02:01:14 and i'm not saying they should care 02:01:24 aparently they tried to switch to ipads in some schools and it didn't work 02:01:25 but the kind of people who worry about "converting windows users" usually think they should 02:02:06 if someone writes code and the code no longer works on anyones computer a few years later, then the users are missing out :D 02:02:29 It is one reason I am going to make up the computer, which should have simplicity and people who know how can learn to make up their own compatible computer, or if they don't want to do that, purchase it from my company. It can also use emulators. 02:02:31 i dont know if code does stop working though 02:02:56 i have no idea what you're talking about 02:03:01 it is not exactly the first time 02:03:34 itidus21: I don't know either; if require you could try to use an emulator. But in some cases the code will always work, for example TeX can be updated to work on a new computer, and any Plain TeX document will continue to work exactly the same way 100 years in future as they do now (but possibly compiles faster). 02:06:15 each time an API is updated, a bunch of new books are published, articles and tutorials are written, and forums probably fill up discussing it.. but the cycle begins again on the next update 02:07:16 it would be nice if API hosts could be honest and predict when the client code would stop working 02:07:58 sort of an expiry date system on APIs 02:08:02 Fuck C++. 02:08:19 C++ IO is the worst IO of any language I have seen. 02:09:03 so Plain TeX basically doesn't expire :D 02:09:07 in this metric 02:11:00 Is Java's IO considered decent? 02:11:39 (not that I want to use Java, but Clojure tends not to wrap Java stuff like that) 02:11:40 I'unno. It can't be worse than C++ IO. 02:11:50 C++ IO is *actually worse than C's*. 02:11:55 kmc: so i was set off by accidently clicking a win8 article, and at the end i realized the product is expiry dates on software. 02:12:05 You have to god-damned work at that. 02:13:24 pikhq: http://tinyurl.com/6m6ent2 02:14:00 itidus21 : sounds like same thing as apple does 02:14:36 madbr: hmm.... i dont see how such dates would actually help people... but it could motivate people to code on the VM level more 02:14:53 itidus21 : it doesn't help people 02:14:57 or platform independant languages 02:15:22 it helps microsoft not compete itself to death with old, well designed versions of windows (XP and 7 in particular) 02:15:43 im still on xp :D 02:15:50 yeah exactly 02:17:34 what you end up doing is that you keep your core features in portable C++ then keep doing interface for each crap platform/bunch of libraries du jour as they come and go 02:17:50 I should not have to go down to C just to tell if "read an int from text" actually errored or not. 02:18:54 I'm always under the impression the text file IO in C/C++ is crap 02:19:15 madbr: C++'s is worse. 02:19:28 C is anemic, but it is possible to write correct programs in it. 02:20:05 -!- JaBoJa has quit (Read error: Connection reset by peer). 02:20:14 something like "C sucks at strings" and "text files = bunch of strings" 02:20:15 C++ is full-featured, but the only types of errors you have are "bad", "fail" and "eof". And they don't even get used well... 02:20:33 For instance, sometimes, an EOF will set the fail error condition. 02:20:59 -!- JaBoJa has joined. 02:21:19 At least in C, it is possible to handle certain types of errors. 02:21:50 Say, you try to read an integer, from text, in... 02:21:50 what about all the stuff like XML and JSON 02:22:00 In C, you'll get told there was a parse error. 02:22:10 In C++, you'll get told there was an error, which could be one of many things. 02:22:37 Not to mention, the syntax for C++ IO is itself terrible. 02:22:52 YOU ARE GOD DAMNED BITSHIFTING IN AND OUT OF THE IO STREAMS 02:23:00 ahaha yeah 02:23:14 And so, they set an example for everyone that improper use of operator overloading is proper. 02:23:25 are there better text file IO libs? 02:24:05 at least they didn't mess up the vectors and maps 02:25:52 i will invent a language where the only conditions are "awesome" and "fail" 02:26:11 i will call it... the internet 02:26:15 C++ IO is *really damned close* to that. :( 02:26:34 nah, C++ only has "good" 02:26:35 BTW, whoever made the fail() method return true if the failbit *or* the badbit were set, is a dick. 02:26:48 these days, to call something merely "good" instead of "awesome" is a serious insult 02:27:21 Sorry for the ranting, but I'm having to do an assignment in C++ again. 02:27:39 And finding myself actually wishing for the sanity of C. 02:27:57 (I feel wrong writing C-in-C++) 02:29:41 This makes me think that Maybe is a bad idea, and that Either is probably better. 02:29:52 ap : (Box a -> b -> c) -> (a -> b) -> a -> c; ap x y z = x {z} (y z) 02:30:20 Sgeo: Maybe's alright for some things. 02:30:29 Esoteric set theory. 02:30:56 read_and_parse_and_everything_else :: IO (Maybe [String]) -- is god damned retarded. 02:31:20 The issue is conflating multiple kinds of errors into one, without *any* way of telling otherwise. 02:31:21 pikhq, in a dynamically typed language, I don't think having the distinction is useful, because if you want a Left that doesn't contain information, it's easy to just stuff it with nil 02:31:42 Sgeo: Ah. 02:31:44 Kay, yeah. 02:32:06 Yeah, that should clearly be ListT (ListT (MaybeT IO)) Char. 02:32:31 Is ListT any good? 02:33:03 Remember kids: in C++, "no such file", "ran out of disk space", and "parse error" are *basically* the same thing! 02:33:16 how come they didn't use exceptions 02:35:48 kmc: Oh, you can turn on exceptions. 02:35:57 However, there are 3 types of exceptions it'll throw. 02:36:00 fail, bad, and eof. 02:36:20 And some things set fail on eof. 02:38:26 -!- Phantom_Hoover has quit (Quit: Leaving). 02:38:51 -_- 02:39:04 sigh 02:45:45 -!- JaBoJa has quit (Read error: Connection reset by peer). 02:46:52 -!- JaBoJa has joined. 02:50:44 what was that idea i had.. oh yeah.. after the profile topic it occured to me that another type of programming game genre aside from soccer and battling to the death might be racing 02:51:53 or metajousting! 02:52:17 bfjoust is a sort of race, after all 02:53:01 oh i forgot, golf is racing 02:53:10 just a more boring name 02:53:19 how is golf racing 02:53:32 -!- Arc_Koen has quit (Quit: Arc_Koen). 02:53:36 thats why im not normal! 02:53:40 i make such analogies 02:53:40 To make few strokes? 02:53:52 the goal in golf is usually to do something in less code, not to do it in fewer cycles 02:54:00 but.. if you consider a game like snakes and ladders without the snakes and ladders 02:54:10 then it is boring 02:54:32 where.. the uhhh 02:54:43 of course 02:54:55 being a strategyless game already 02:54:56 it is the inverse of how many hits it takes you to sink the balls 02:54:59 it already is boring 02:55:16 whether that actually makes real sense i don't know 02:56:42 if the board is 100 tiles, starting at the first "tile" 02:56:59 and.. thinks to myself.. i really have to go out.. 02:57:14 That is why you are not normal! Do you expect people of this channel are very normal? I think not. 02:57:23 are you trying to invent a programming game 02:57:26 smell you later 02:57:29 itidus21: If the board is 100 tiles and there are no teleports, the game ends in at most 99 moves. 02:57:55 and on average, what, a third of that? 02:57:56 (Assuming a standard six-sided dice) 02:58:07 Probably, yes. 02:58:09 i forget what numbers are on the spinner 02:58:39 I don't know the game with the spinner, or the slice ratios. 02:59:31 But if you have spinner with different numbers and slice ratios and teleports, then it would be more complicated to determine the mean, median, standard deviation, and so on, as well as the probability of winning from a given position. 02:59:45 -!- JaBoJa has quit (Quit: KVIrc 4.0.4 Insomnia http://www.kvirc.net/). 03:00:18 you're right 03:00:21 it usually uses dice 03:00:23 but still 03:00:32 there is no strategy in it 03:00:37 Especially if you add slices which have multiple numbers on them to the spinner, in which case the player selects the best choice. 03:00:43 quintopia: Yes, you are correct about that. 03:00:56 I was thinking not of strategy but of probability and statistics. 03:01:18 With teleports it may be possible that higher numbered positions are not always better. 03:01:55 is there a way to make snakes and ladders better, so that it is not completely determined by dice rolls? 03:02:25 The Milton Bradley version of Chutes and Ladders has 100 squares, with 19 chutes and ladders. A player will need an average of 39.6 spins to move from the starting point, which is off the board, to square 100. 03:02:29 Perhaps; I have some ideas: Add cards, and add some ability for the players to use these cards not only to make moves but also to manipulate the teleports. 03:02:59 And then the cards are hidden information; also add the backgammon doubling cube. And add multiple pieces per player. 03:03:07 That might improve the game. 03:03:07 with you, it's always about adding cards! is there a way to do it just changing the board? 03:04:13 Haunting House does a lot of what you say. 03:04:24 It has no dice. 03:04:29 It's a racing game. 03:04:43 It has no chutes or ladders, but it does have forced movement 03:04:52 I believe the standard game prohibits teleports with another teleport at the destination. However, you could generalize the rules to allow it; if you teleport to a teleport, the second teleport is not active (it is only active if you get there by a dice roll). 03:05:31 I guess I would consider Haunting House a massive rewrite of chutes and ladders 03:05:45 Maybe. 03:06:23 but I can think of middle ground: what if a player had cards to let them choose between moving their own piece, or moving the start or end of a ladder or chute to an adjacent (Moore neighborhood) square. 03:06:45 and no dice. Just cards. 03:07:12 Yes, that is an idea. I don't know quite how well it works, but it is an idea. And then perhaps improvements can be made from that too 03:07:46 like what 03:08:42 I didn't think of it right now. But one possibility is the backgammon doubling cube (although you don't have to actually use a cube; you could mark it on paper or whatever). 03:08:54 what does it do 03:09:42 On your turn, if you are not the last player to double, you can offer to double the score of the winner. The opponent may accept, in which case the game continues and whoever wins earns double points, or resign, in which case it is not doubled. 03:10:08 there is no score in chutes and ladders? 03:10:30 I know; when no score is used, a game is worth 1 point. 03:10:40 ah 03:11:44 With your idea of moving the teleports, you could use tiles which are placed on the board and have letters on them so they are paired, and then you have two possibilities to make the game: [1] Snakes remain snakes and ladders remain ladders. [2] Sources remain sources and destinations remain destinations. 03:12:27 i like the latter 03:14:00 There is also a third possibility, where both conditions must hold (and you are not allowed to make a move which results in this changing) 03:14:19 ehhhh 03:15:31 I happen to like possibility [2], though, like you do. 03:16:57 I am just enumerating some of the possibilities. 03:17:16 I think Haunting House pretty much makes all the changes I would make. It's ALMOST everything I would want in a racing game. 03:17:41 OK 03:18:27 i'll play you next time i'm in your neighborhood 03:19:03 In the book Winning Ways the authors show how to treat Snakes and Ladders as an impartial game in combinatorial game theory even though it is very far from a natural fit to this category. To this end they make a few rule changes such as allowing players to move any counter any number of spaces, and declaring the winner as the player who gets the last counter home. Unlike the original game, this version, which they call Adders-and-Ladders, inv 03:19:54 http://www.braingames247.com/playgame/4059/adders-and-ladders.html 03:20:50 -!- kinoSi has quit (Read error: Connection reset by peer). 03:21:20 -!- kinoSi has joined. 03:26:09 Moving up the snakes and down the ladders is like making a chess variant which is FIDE except the bishops move like FIDE knights and the knights move as FIDE bishops. It is better to simply make the variant modifying the initial position, isn't it? 03:29:18 i couldn't get the game to run 03:29:20 (Of course, with snakes and ladders, you generally use a fixed board, so you could use the same game to play the variant where you move up the snakes and down the ladders, instead of using a second board where they are transposed.) 03:29:38 but it does make a large difference in amount of time the game takes if you move the snakes and ladders 03:29:40 quintopia: I can't either, but that isn't important. I just read the description. 03:30:12 which tells me that just adding a rule that lets you move the sources and destinations would significantly increase the strategy 03:30:32 quintopia: Yes, that is true. Depending on the teleports it does change the average number of moves (like I said, with no teleports at all, the game ends in at most 99 moves) 03:31:08 And, yes, adding such a rule could work if done correctly. Using cards that allow it, held in your hand and hidden from the other player, may work. 03:31:24 zzo38: but the interesting thing is how you can lengthen the game by adding ladders and shorten a game by adding chutes 03:31:28 I happen to like games that involve skill, chance, and hidden information, together. 03:31:54 yes 03:32:04 but you can have a lot of chaos 03:32:06 quintopia: Yes. Like I said before: In the presence of teleports, higher numbered spaces are not always better. 03:32:10 even if you remove chance 03:32:43 for instance, you like MTG or at least pokemon 03:32:49 which does not usually involve chance 03:32:54 I like both Magic: the Gathering and Pokemon. 03:33:10 i guess 03:33:13 they have some chance 03:33:21 because of initial deck order 03:33:30 In both games there is chance in shuffling the cards. If playing Limited, there is also chance in what cards you manage to get. 03:34:00 Also in both games there are some cards involving coin tosses (a lot more in Pokemon card, but Magic: the Gathering has a few, too) 03:34:12 it seems like 03:34:40 you could craft a card game where the players intentionally pick the order of the cards 03:34:48 and it would be very strategic 03:36:07 actually 03:36:22 i know a game with hidden information, skill, and no chance. 03:36:22 I have once read about a variant of Magic: the Gathering (it works with Pokemon and other similar card games too) where both players are given equivalent decks but each can choose the initial order of the cards (the opponent won't see them) instead of shuffling. 03:36:33 yes exactly! 03:37:03 http://boardgamegeek.com/boardgame/34887/revolution there is this game 03:37:05 it is a betting game 03:37:14 no chance 03:37:30 it's essentially a complex rock-paper-scissors 03:37:51 or 03:37:55 a complex minority game 03:38:05 a mix of the two 03:38:15 -!- augur has joined. 03:38:16 OK 03:40:23 At some anime convention (many years ago, not this year) I have played a game where the board consists of a few areas which are initially set up at random, each player is dealt a single card (from a shuffled deck) which is kept secret, and the rest of game involves no chance and no hidden information. 03:41:48 You could win either by accumulating a number of points or by owning properties equal to what your card says (they always total the same ammount). 04:05:44 sounds a lot like the discworld game 04:06:01 although that may have randomness? i dont remember 04:13:53 nsfslideshow.asm is written. Now I need to write nsfslideshow.c and then I think my job is finished. 04:57:05 I don't know discworld game. 04:57:49 hah I've invented the worst set of sounds for a constructed language 04:59:04 pzeirrvzqmziqwmiqudhuodjaniewudbuiqnwiubewybeuibiwuniusbqwiusqysvwqtysvtwqysgiewhdoiwehiownxioqmmzxiohdknuhfdshkjehlirwmcilwhmcuilrwemcljcfhuwhclmefhumcghiwmr 05:00:27 it's got like everything :o 05:10:51 i didn't mean to interrupt 05:10:59 so to spaek 05:12:25 like an 8 tone system :D 05:13:30 a¯ a- ah a_ a´ a/ a` a\ (hi, med, med-low-breathy, low, high-rising, low-rising-creaky, high-falling, low-falling) 05:18:46 and 16 vowels : (front) i é è ê a (front rounded) eu u (central) e ù (back rounded) ò o ou (back pharyngeal/wide) êu û (back pharyngeal/wide lax rounded) â ôu 05:18:53 plus nasal vowels ofc 05:21:52 29 consonants: p t ts tch k b d g mb nd ng hm hn hgn hrn m n gn rn f s ch h hr v z j gh r 05:22:07 (not counting semi-vowels like y, w) 05:22:33 OK, then, make a file describing what you have. 05:23:18 I'm at the grammar step... I have all sorts of interesting ideas but it's hard to tie it all together 05:23:56 at least your language will be nicer than esperanto and lojban, but not klingon 05:24:26 the idea is that the rich inventory of sounds makes it possible to keep the words short 05:25:52 humm 05:26:16 so it takes more time to go though a syllable but you have less syllables in words 05:27:38 like, the most complicated a syllable can get is consonant + diphthong 05:27:43 .. thinking aloud: natural language io is based on the ear and the mouth. despite each ear and each mouth being unique, they are sufficiently alike to communicate with a common set of rules 05:28:46 compared to english where you can get consonant + consonant + consonant + diphthong + consonant + consonant + consonant :D 05:29:14 i suppose that audio communication of natural language is limited to things common to all ears and mouths 05:29:45 yeah tends to use the sounds that are easy to pronounce and easy to recognise 05:29:51 like if some mutant human was able to hear ultrasound, then too bad.. noone will be exploiting his ability to hear ultrasound 05:30:11 or if some mutant human was able to speak in ultrasound then too bad 05:30:13 but there's surprising diversity in what is easy to pronuonce 05:30:37 like, different languages have different strategies 05:31:37 some languages concentrate on a few easy, fast sounds, so that lots of syllables isn't a problem 05:31:40 like japanese 05:33:02 others let syllables have a zillion elements so that the information content ramps up quickly 05:33:06 english is like that 05:35:41 yet others have like 6 different sources information per syllable, each of which can vary more or less independantly, for a huge number of combinations 05:37:36 best example is chinanteco where each syllable has consonant, vowel, nasalisation, length, tone, accent, ending glottal stop 05:38:17 itidus: well, you're not going to play chords on a flute :D 05:38:32 madbr: I suggest you mandate that all strings in it are gzip'd. 05:38:33 :P 05:38:54 heh 05:39:23 actually natural language kinda does that a bit 05:39:53 repeats of same information are compressed by being replaced by pronouns 05:40:32 or by nothing at all! 05:40:41 more common words are shortened down by slurring, abbreviation, etc 05:41:41 madbr: also you can get CCCC codas not just CCC 05:42:24 texts and stuff like that yeah 05:43:38 the big one in english is that most short words are CVC instead of CV 05:43:46 that's a huge boost in number of combinations 05:46:55 madbr: Yeah, but still, natural languages have quite low entropy; you should try and reduce that, to make it the worst language. 05:46:58 :) 05:49:00 it already exists 05:49:01 or existed 05:49:05 called Ubykh 05:49:16 that one's a huge cheat 05:49:21 lies! 05:49:40 reanalyse dee as "dyuh" 05:49:49 and doo as "dwuh" 05:49:57 and day as "dya" 05:50:05 and doh as "dwa" 05:50:10 i was just thinking about their uvular shit 05:50:14 fuckin 16 different versions of q 05:50:39 repeat for all consonants and you divide your vowels by 3 and multiply your consonants by 3 05:50:45 ahahah 05:50:59 but theres also georgian 05:50:59 augur: *wince* 05:51:05 well, you can definitely get... at least 8 05:51:07 gvrtskpvnis! 05:52:58 q qh q' * q qw qj... 05:53:31 more if you allow pharyngeals 05:53:48 q' is really hard for me tho 05:55:20 really? huh. its quite easy for me 05:56:20 uvular fricatives are much easier to me than stops 05:57:48 q' and G are really hard imho 06:03:05 order of difficulty for me: R > X > N > q > qh > NG > G > q' 06:05:13 kmc: Did you know DMSO is a panacea that the FDA is keeping from the people because it's too good for healing injuries? 06:05:43 heard that kinda story before 06:05:45 ah, that makes so much sense 06:06:22 A page on angelfire.com with a yellow backgroudn and animated GIFs taught me this. 06:07:45 augur : might depend on the variety of q... seems to me that there's the "kinda like a velarized k" version and the "german ch turned into a stop" version 06:08:28 * shachaf wonders whether dhmo.org was modeled after dmso.org 06:09:47 -!- Jafet has joined. 06:17:36 Do you know the "Grotesque" chess game where all the black pieces are on the board, but white only has a king and a pawn (still on its initial square)? 06:25:48 -!- impomatic has joined. 06:30:47 -!- madbr has quit (Quit: Radiateur). 07:04:39 -!- zzo38 has quit (Remote host closed the connection). 07:14:45 kmc: Do you know that edwardk uses a type class to make error messages less scary? 07:17:40 tswett, anyone else who cares but I forget who that is: update 07:17:51 @ask elliott UPDATE 07:17:51 Consider it noted. 07:21:25 -!- Jafet has quit (Ping timeout: 252 seconds). 07:22:19 -!- Jafet has joined. 07:34:14 -!- ztirf has joined. 07:43:14 -!- FireFly has quit (*.net *.split). 07:43:14 -!- HackEgo has quit (*.net *.split). 07:43:14 -!- Sanqui has quit (*.net *.split). 07:54:22 -!- Sanqui has joined. 07:54:22 -!- FireFly has joined. 07:54:22 -!- HackEgo has joined. 08:09:22 -!- Jafet has quit (Quit: Leaving.). 08:12:40 -!- nooga has joined. 08:13:35 -!- oerjan has joined. 09:28:59 -!- ais523 has joined. 09:35:38 -!- ais523 has quit (Remote host closed the connection). 09:35:49 -!- ais523 has joined. 09:40:15 -!- ais523 has quit (Client Quit). 09:40:25 -!- ais523 has joined. 10:17:11 -!- ais523 has quit (Read error: Connection reset by peer). 10:17:23 -!- ais523 has joined. 10:27:17 -!- oerjan has set topic: I HAVE NOW, ARRR | Official channel of ESME | ESME is the best programming language. Why have you abandoned ESME? | Do not fret, ESME can forgive you. Give yourself freely to ESME. | PT6TRPA6PM6K | http://codu.org/logs/_esoteric/ | http://esolangs.org/wiki. 10:30:12 -!- oerjan has set topic: I HAVE NOW, ARRR | Happy birthday to :-) | Official channel of ESME | ESME is the best programming language. Why have you abandoned ESME? | Do not fret, ESME can forgive you. Give yourself freely to ESME. | PT6TRPA6PM6K | http://codu.org/logs/_esoteric/ | http://esolangs.org/wiki. 10:32:13 -!- ais523_ has joined. 10:32:14 -!- ais523 has quit. 10:32:28 -!- Yonkie has joined. 10:34:39 -!- ais523_ has quit (Read error: Connection reset by peer). 10:45:41 -!- Phantom_Hoover has joined. 11:06:06 fine mr. munroe, i give up. 11:08:29 i cannot get to the end of that thing without exhausting my creaky old laptop's swap. _and_ getting my rsi recharged for days. 11:09:49 oerjan: You quitter. It's just 165888x79872 pixels. 11:11:08 ...and i was only following the landscape, too; who might know what's deep in the isolated sky or earth? 11:11:26 fizzie does, doubtless. 11:11:32 OKAY 11:11:39 There's floating whales all the way up there, for example. 11:11:53 As well as things you'd more normally expect to find in air. 11:11:57 i found a jellyfish, although that was close to the ground 11:12:15 Yes, there's that too. 11:12:30 There are a couple of "minimaps" around the interwebs. 11:12:37 naturally. 11:12:48 Not a very large percentage of the whole space is used. 11:12:56 shocking! 11:13:06 http://iclub.site40.net/xkcd.html 11:13:36 -!- Arc_Koen has joined. 11:13:51 Sgeo: That one seems to be one of the rather memory-unfriendly ones, seeing that it loads all of the images. 11:14:09 http://www.mrphlip.com/xkcd1110/ has clickable separate thumbnails. 11:14:50 You know, sometimes I think Munroe only writes the crap xkcds as a front for making the cool ones. 11:15:42 It's curious that 11n11w, 11n11e, 11s11w and 11s11e all exist, but seem to be just all-black/all-white squares. 11:17:06 Phantom_Hoover: wait, is this a crap or a cool one? 11:17:40 It's a cool one with crap elements. 11:20:11 * oerjan finds the small part he actually managed to explore 11:20:14 Would it be a terribly bad idea to use Notepad++ to edit a Lisp 11:20:26 * Sgeo assumes probably 11:20:51 why? 11:21:10 Because I'd be missing out on tight access to a REPL 11:21:33 Modifying code while it runs is one of the things that draws me to Lisps 11:21:42 Although in Clojure's case it's kind of iffy, really 11:28:14 Of the comic, I like how it's all more or less in scale. The big building is clearly Burj Khalifa of Dubai, and comparing to that, the radio mast (KVLY-TV mast of Blanchard, North Dakota) looks to be approximately the right size. (The cave-pyramid doesn't seem to be the Great Pyramid of Giza, though it could be one of the smaller ones.) 11:42:58 -!- oerjan has quit (Quit: leaving). 12:12:32 so I have a question about thue 12:12:50 if there are multiple ways to apply a rule, what happens? 12:13:14 -!- ais523 has joined. 12:13:36 for instance with the program "aa::=x \n ::= \n aaaa" 12:14:06 the first time the rule is applied, will we get xaa, aax, axa, or xx? 12:19:36 My *guess* would be "any one of the three first options", since the rule selection itself is explicitly nondeterministic, but the documentation doesn't exactly seem to say it out loud. 12:20:53 IIRC it was specified that behaviour in that case is nondeterministic. 12:21:26 The reference Python interpreter seems to first make a list of all matches of all rules, and then pick a single match to replace; either the leftmost, rightmost or random, depending on mode. 12:21:52 oh 12:22:16 I was gonna go with "pick a rule at random, try to apply it; if you can't, pick another rule instead" 12:41:26 yeah, that works 12:42:35 -!- boily has joined. 12:46:10 -!- copumpkin has quit (*.net *.split). 12:51:06 -!- copumpkin has joined. 13:01:32 -!- Phantom__Hoover has joined. 13:04:59 -!- Phantom_Hoover has quit (Ping timeout: 252 seconds). 13:08:44 -!- ztirf has quit (Quit: Nettalk6 - www.ntalk.de). 13:11:59 -!- ais523_ has joined. 13:12:25 -!- ais523 has quit (Ping timeout: 260 seconds). 13:14:34 -!- ais523_ has changed nick to ais523. 13:14:59 -!- cuttlefish has joined. 13:22:04 -!- kinoSi has quit (Read error: Connection reset by peer). 13:22:31 -!- kinoSi has joined. 13:35:08 -!- ais523 has quit (Read error: Connection reset by peer). 13:35:21 -!- ais523 has joined. 13:36:10 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 13:45:45 -!- ais523 has quit (Read error: Connection reset by peer). 13:45:59 -!- ais523 has joined. 13:56:31 -!- copumpkin has joined. 14:09:46 -!- kallisti has quit (Quit: Changing server). 14:10:05 -!- kallisti has joined. 14:10:07 -!- kallisti has quit (Changing host). 14:10:07 -!- kallisti has joined. 14:32:02 -!- FreeFull has joined. 14:34:04 nice, i found some code that looks like: switch (x) { case FOO: ... lbl: ... break; case BAR: ... goto lbl; } 14:34:17 .... 14:34:23 why? 14:35:13 because they have four or five case branches with a common suffix of code 14:35:22 it's... not necessarily how i would write that 14:40:51 -!- ais523 has quit (Ping timeout: 256 seconds). 14:41:16 -!- Nisstyre has quit (Ping timeout: 245 seconds). 14:42:38 -!- AnotherTest has joined. 14:42:45 Hello 14:43:43 good morning. 14:46:30 -!- ais523 has joined. 14:58:09 -!- impomatic has quit (Quit: impomatic). 14:59:56 hi boily 15:04:13 -!- ogrom has joined. 15:05:17 -!- ogrom has quit (Client Quit). 15:08:49 -!- augur has quit (Remote host closed the connection). 15:14:46 quintopia: hi. 15:16:53 Betelgeuse is 1000 times larger than our sun, but it's only 15-20 solar masses 15:17:00 so it's density must be much lower? 15:17:12 yet it should produce heavier elements? 15:33:58 AnotherTest: The density of a star isn't uniform 15:34:36 FreeFull: oh yes of cousre 15:34:38 *course 15:35:00 The heat is making the outer layer expand a lot more 15:39:08 -!- Phantom_Hoover has joined. 15:41:10 -!- Phantom___Hoover has joined. 15:41:11 -!- Phantom___Hoover has quit (Client Quit). 15:41:29 -!- Phantom___Hoover has joined. 15:41:55 -!- Phantom__Hoover has quit (Ping timeout: 252 seconds). 15:44:39 -!- Phantom_Hoover has quit (Ping timeout: 244 seconds). 15:46:33 -!- Phantom_Hoover has joined. 15:49:18 -!- Phantom___Hoover has quit (Ping timeout: 244 seconds). 15:50:51 -!- Phantom_Hoover has quit (Ping timeout: 244 seconds). 15:51:13 -!- Phantom_Hoover has joined. 15:52:25 and even outer to the outer layer, the density is 0!! 16:00:30 -!- Slereah_ has joined. 16:03:23 > 6.67 * 26 16:03:24 173.42 16:04:24 -!- Slereah has quit (Ping timeout: 276 seconds). 16:05:21 -!- ais523 has quit (Ping timeout: 246 seconds). 16:29:57 -!- Nisstyre has joined. 16:35:57 -!- Nisstyre has quit (Max SendQ exceeded). 16:52:10 -!- JaBoJa has joined. 16:54:53 -!- sivoais has quit (Quit: Lost terminal). 16:54:58 -!- JaBoJa has quit (Read error: Connection reset by peer). 16:55:45 -!- sivoais has joined. 16:56:53 -!- Nisstyre has joined. 16:58:50 -!- Vorpal has joined. 16:59:49 -!- JaBoJa has joined. 17:02:43 -!- zzo38 has joined. 17:19:04 -!- augur has joined. 17:35:02 -!- aloril has quit (Read error: Connection reset by peer). 17:43:36 -!- aloril has joined. 17:44:43 -!- zzo38 has quit (Remote host closed the connection). 17:56:24 -!- aloril has quit (Ping timeout: 244 seconds). 17:57:07 -!- augur has quit (Remote host closed the connection). 18:04:05 -!- atriq has joined. 18:04:45 -!- aloril has joined. 18:04:45 -!- atriq has quit (Client Quit). 18:05:05 -!- atriq has joined. 18:05:12 -!- aloril has quit (Remote host closed the connection). 18:05:56 -!- ais523 has joined. 18:06:29 -!- augur has joined. 18:08:04 @messages? 18:08:05 Sorry, no messages today. 18:10:36 -!- aloril has joined. 18:13:10 -!- augur has quit (Remote host closed the connection). 18:20:51 @ping 18:20:51 pong 18:21:12 -!- aloril has quit (Ping timeout: 244 seconds). 18:26:45 It's so quiet. 18:26:58 `quote 18:26:58 `quote 18:26:58 `quote 18:26:59 `quote 18:26:59 `quote 18:27:02 Nah, me and lambdabot are livin' it up 18:27:02 @brain 18:27:03 Wuh, I think so, Brain, but isn't Regis Philbin already married? 18:27:05 `shachaf 18:27:06 @protontorpedo 18:27:07 or does it become a mishmash of code? 18:27:25 845) elliott___: we have been calling a book new for 2000 years and it took einstein to figure out relativity 18:28:09 92) I don't know that I've ever heard apocalypi described in terms of depth ... 18:28:14 338) Yeah, I went through a whole series of existential crises when I was 8 or so. 18:28:14 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: shachaf: not found 18:28:16 297) [After a long monologue] i think i have to escape this heated discussion before it becomes a flamewar 18:28:16 451) rest in peace lambdabot???? monqy: it'll probably be back later nap in peace 18:29:29 -!- atrapado has joined. 18:30:17 ion: Are you the ion in http://bash.org/?152037 ? 18:31:38 shachaf: I don’t think so. 18:31:48 I don’t remember a “dm” from anywhere. 18:34:49 -!- carado has joined. 18:39:33 -!- AnotherTest has quit (Quit: Leaving.). 18:44:38 -!- augur has joined. 18:45:26 -!- augur has quit (Remote host closed the connection). 18:49:46 -!- aloril has joined. 19:26:59 -!- augur has joined. 19:27:02 -!- augur has quit (Remote host closed the connection). 19:29:37 -!- atriq has quit (Ping timeout: 240 seconds). 19:30:01 -!- atriq has joined. 19:35:29 The trials of an obfuscated Haskell author... 19:35:30 Occurs check: cannot construct the infinite type: 19:35:30 t10 19:35:30 = 19:35:30 (((t10 -> t0) -> (t0 -> t0) -> t0) 19:35:30 -> (t10 -> t0) -> (t0 -> t0) -> t0) 19:43:36 -!- augur has joined. 19:46:10 -!- augur has quit (Remote host closed the connection). 19:46:23 -!- oerjan has joined. 19:51:26 and even outer to the outer layer, the density is 0!! 19:51:37 hello 19:52:16 i would expect density 0 doesn't really exist anywhere 19:52:46 ok, approximately 0 19:53:15 i vaguely think i read that the outer parts of betelgeuse are less dense than the solar atmosphere around earth's distance 19:53:54 * oerjan checks wikipedia 19:53:57 doesn't that just solely depend on the definition of where the outer parts stop? 19:54:20 well you'd say they stop when they stop radiating? 19:55:08 (my knowledge of physics is far too thin to answer that question) 19:55:15 i may remember wrong, though 19:56:09 -!- augur has joined. 19:56:22 -!- Lara has joined. 19:56:43 -!- Lara has left. 19:58:47 'Consequently, the average density of this stellar mystery is less than twelve parts-per-billion (1.119 × 10−8) that of the Sun. Such star matter is so tenuous, in fact, that Betelgeuse has often been called a "red-hot vacuum".' 20:00:34 doesn't give a comparison with the solar wind, though 20:08:31 atriq: insufficient unsafeCoerce? 20:09:00 oerjan, nah, I made a legitimate mistake 20:09:16 ok, as long as it wasn't illegitimate 20:19:00 -!- nooga has quit (Ping timeout: 244 seconds). 20:25:53 -!- nooga has joined. 20:26:19 > chr . read <$> words " 0 33 100 108 114 111 87 32 44 111 108 108 101 72" 20:26:21 "\NUL!dlroW ,olleH" 20:27:41 Nuldlrow. 20:38:33 -!- Vorpal has quit (Ping timeout: 260 seconds). 20:39:35 is that a Ftack program? 20:43:11 super stack! 20:43:24 well part of one 20:43:49 Well, goodnight! 20:44:00 -!- atriq has quit (Quit: Leaving). 20:50:44 -!- Tod-Autojoined has joined. 20:51:20 -!- TodPunk has quit (Read error: Connection reset by peer). 21:06:32 * Arc_Koen watches Oerjan as he goes on his daily tablifying spree 21:09:36 >_> 21:09:58 tablifting? 21:10:26 * oerjan lifts three tabs at once 21:13:06 -!- atrapado has quit (Quit: Leaving). 21:18:48 it doesn't sound like a very threatening illicit act, but maybe oerjan is a pro tablifter. 21:26:57 -!- boily has quit (Quit: Poulet!). 21:27:10 -!- cuttlefish has quit (Remote host closed the connection). 21:29:53 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 21:40:20 -!- FreeFull has quit (Quit: Seelp). 21:48:16 * oerjan finds that :.,$g/^/.,$s/^/ / in vim actually works to turn vertical lines diagonal :P 21:51:54 -!- copumpkin has joined. 21:58:31 -!- hagb4rd has joined. 22:03:30 * Sgeo needs to destress somehow 22:04:21 why destress when you can distress? 22:04:37 -!- nooga has quit (Ping timeout: 240 seconds). 22:13:37 -!- Yonkie has quit (Ping timeout: 256 seconds). 22:24:12 sudden terrifying insight: Javascript's 'this' is less like C++ or Java 'this' and more like Perl's $_ 22:24:47 It's not a whole lot like $_, is it? 22:25:46 well for example, jQuery.each(collection, function () { this.foo(); }) 22:25:59 you can also use an explicit argument if you like 22:27:02 jQuery does f.call(elem, elem) or something like that? 22:27:07 i don't know 22:27:14 this is how you set 'this'? 22:27:33 Normally when you call object.method() it's set automatically to object. 22:27:48 You can override it with fn.call(thisval, ...) or fn.apply(thisval, args) 22:27:56 right 22:28:32 If jQuery does that, I'd call that a jQuery quirk more than a JavaScript thing. 22:29:07 jQuery conventions are pretty different from JavaScript "conventions". 22:29:12 fair enough 22:29:18 i had the impression this kind of thing was common in javascript 22:29:19 perhaps not 22:37:22 I HATE INTEGRATED VIRTUAL NETWORKS 22:37:49 you really need to lead into it more than that 22:37:58 that just sounds crazy 22:38:10 what's an integrated virtual network anyway? 22:38:15 It's a company 22:38:56 They bought Cybertown back in 2003 and put it on a subscription model. Late last year, they decided to make it free again. January of this year, it went down for a supposed server move, and never came back up. 22:38:58 olsner, the inverse of a derivative neural network 22:39:04 *virtual 22:39:08 We're stull officially waiting for news, I think. 23:38:48 -!- ais523 has quit. 23:56:43 -!- DHeadshot has joined.