00:00:14 I'm going to rigidly hold the belief that I held for a few seconds there that Sanskrit-the-language was originally designed by one guy, who gave it a BNF-style syntax, millennia ago. 00:00:29 05:18:02: why is this channel so sleepy of late 00:00:29 05:18:12: only a few hours activity each day 00:00:38 quintopia: you're awake at the wrong times (the times I'm not awake) 00:00:52 elliott_ talks a lot. the life of the party. 00:00:58 05:32:44: Or otherwise i'd have banned Nthern for not responding to my messages. Grmle. 00:00:59 05:32:52: *Grmble. 00:00:59 tried to email him via the wiki? 00:01:21 monqy: yes i am the life. of the party 00:01:31 (diff) (hist) . . User talk:Billlam‎; 06:18 . . (-724) . . Billlam (Talk | contribs) (Removing all content from page) 00:01:38 STOP HARASSING MY LANGUAGE 00:01:44 my point exactly elliott 00:01:46 i dont like abcd 00:01:47 --Billliam, two thousand and eleven 00:01:55 youve only been active a few hours a day 00:01:59 monqy: it was revolver architect 00:01:59 and i didnt like revolver architect 00:02:02 am i ab ad person 00:02:05 so bad you told him about it 00:02:06 as opposed to all night 00:02:16 quintopia: You just have the wrong definition of "night" 00:02:36 http://esolangs.org/w/index.php?title=Subleq&curid=2021&diff=24073&oldid=22220 00:02:39 umm, this is wrong, right? 00:04:09 ian is still editing the elip page but hasn't replied on the talk page :( 00:04:10 -!- madbr has quit (Read error: Connection reset by peer). 00:05:41 07:39:28: and, for instance, almost all "regular" mathematical functions are computable by languages that only have loops that always terminate. Ackermann's function is not one of them. :) 00:05:43 atehwa: false 00:05:54 Ackermann's function is primitive-recursive if you have higher-order functions 00:06:05 atehwa: Computation in Coq always terminates, but you can define Ackermann easily in it 00:06:20 It's just not primitive recursive in the traditional sense, but primitive recursive is by no means the most powerful "always-terminating" class. 00:06:32 elliott_: if yoj arent up til 8am, you didnt talk all night 00:06:47 elliott_: Do all @ programs terminate? 00:07:21 evincar: Defiiiiiiiiiine proooooooooograaaaaaaaaaaaaaaaaaaaam ;D 00:07:28 -!- madbr has joined. 00:07:35 wow 00:07:36 quintopia: Oh. Well I have to sleep _sometimes_. 00:07:52 quintopia: Try being here on the other every other day as opposed to the current every other day you're here. 00:07:56 madbr: wow 00:08:15 The vfp (floating point unit) on the arm Cortex A8 (cpu used on a lot of iphones etc) isn't pipelined 00:08:24 ais523: http://irregularwebcomic.net/3105.html do you have one of the explanations for this, being an electronics engineer? 00:08:27 ais523: (annotation) 00:08:33 It's probably the worst FPU in the last 15 years :D 00:08:40 madbr: Well, yeah. Pipelining takes power. 00:08:45 madbr: Performance is not a priority. 00:08:52 (re 15:14:52: "EDIT: Thanks to everyone who wrote with an explanation, especially the electronics engineers. I now have about 11 different plausible explanations for this behaviour. Only 3 of which involve actual time warps. :-)) 00:09:13 elliott_: Something reducible to a Turing program or a lambda calculus expression? :| 00:09:19 -!- elliott_ has left ("Leaving"). 00:09:24 -!- elliott_ has joined. 00:09:25 oops 00:09:38 evincar: Would "evaluation of an expression" suit you? 00:09:49 elliott_: even though it's digital, the oscillator that actually keeps the time is analog 00:09:56 elliott_: Sure, whatever floats your semantic boat. 00:10:12 can you express an ion 00:10:14 elliott_, I have a elliottcraft suggestion 00:10:15 because all oscillator designs use analog information somewhere to get the time dependency in (digital has no time dependency, in theory) 00:10:23 evincar: Then no, they can fail to terminate. But maybe only inside a Partial monad? That is probably way too restrictive. So I think _|_ is still around. FOR NOW. 00:10:29 and it's obviously a design that's affected by being given the wrong voltage 00:10:40 ais523: Can't you just make a signal busyloop for a while to keep time? 00:10:50 That sounds like time-dependence to me. 00:10:50 elliott_, allow halfsteps and stairs out of almost any material. Set a flat for those where it is forbidden (like water or lava) 00:11:05 elliott_: that relies on analog information (to be precise, the slew rate of the signals, which is how long they take to change from something that reads as 0 to something that reads as 1 or vice versa) 00:11:08 Vorpal: Why not just cut the block in half 00:11:20 ais523: which can change? darn 00:11:37 elliott_: depending on voltage and temperature and a bunch of other things 00:11:38 elliott_, hm true, so you suggest using 1x1x0.5 blocks? 00:12:11 the usual way to get a stable oscillator is to use a quartz crystal's resonant frequency as something to count against 00:12:13 pikhq: it's like 10 cycles for an addition 00:12:16 Vorpal: No 00:12:22 Vorpal: Don't stack them, just cut less and less 00:12:25 because it'll tend to force any oscillation near its resonant frequency to that frequency 00:12:33 For instance you can have a zero point one slope by having a zero point one height block, zero point two, ... 00:12:48 elliott_, heh 00:12:50 pikhq: though tbh the A8 also has a SIMD unit that does floating point a lot faster 00:12:56 madbr: floating point is slow, news at eleven 00:12:57 elliott_, nice 00:13:19 elliot: I <3 floating point 00:13:20 elliott_, plan on doing that? 00:13:28 madbr: we all have our personal issues. 00:13:33 `addquote Speaking of the CiSRA puzzles, anyone want to form a team i avoid my duties by carefully never registering to anything new 00:13:36 Vorpal: Maybe :-P 00:13:37 546) Speaking of the CiSRA puzzles, anyone want to form a team i avoid my duties by carefully never registering to anything new 00:13:56 `addquote aibohphobia The fear of palindromes 00:13:58 547) aibohphobia The fear of palindromes 00:14:08 elliot: also floating point is still faster than spending all your cycles bitshifting and saturating your results 00:14:24 17:21:21: Dwarf Fortress science seems to be along the lines of "how can we trick the game into letting us do X implausible thing?" 00:14:24 17:21:47: If real-world science was like that I would be happy. 00:14:24 It isn't? 00:14:32 madbr: I don't talk to people who like floating point and spell my name incorrectly :( 00:14:42 Are there other programs that can do things similar to how rulebooks work in Inform 7? 00:14:48 how can you mistype elliott_ when tabcomplete exists? 00:14:59 also, I just tried to tabcomplete elliott_'s name with tab, no letters before it 00:14:59 elliot. Bam. 00:15:01 that must be a first 00:15:03 I don't like floating point much 00:15:08 ais523: and tried to emphasise with <>, too 00:15:10 (it didn't work, incidentally) 00:15:13 elliott_: err, good point 00:15:15 how did I do that/ 00:15:20 and used / to end a question 00:15:29 ais523: also, I talk often enough that just tabbing to complete my name might actually work 00:15:31 / to end a question is common for me, that's just missing shift 00:15:34 elliott_: heheh, you probably don't do sound code :D 00:15:41 zzo38: It's one of those things that, IMO, requires justification for. 00:15:42 it only works at the start of a line in this client 00:15:50 madbr: wow lol are you actually taking that personally 00:16:00 I generally do not use floating point. 00:16:06 but I don't know why I used <> for emphasis, I have no reason to do that and it makes no sense for me 00:16:16 floating point killed my family 00:16:16 zzo38: I use floating point on GPUs, because they're most efficient at it 00:16:19 Especially because it doesn't *quite* follow all the axioms people don't expect. 00:16:20 (single-precision float, that is) 00:16:37 I think even TeX uses floating point too much. 00:16:57 madbr: oh wait "sound" code 00:17:05 madbr: say audio :P 00:17:13 I thought you were accusing me of the heinous crime of inaccuracy 00:17:24 which is hilarious from someone defending floating point, which violates mathematical laws 00:17:27 well, unsoundness, not inaccuracy 00:17:47 madbr: Anyway, don't DSPs use fixed point? 00:18:23 DSPs are silly 00:18:29 but yeah 00:18:36 :o 00:18:40 DSPs are silly 00:18:43 really tempted to say "heheh, you probably don't do sound code :D"? 00:19:09 are you a dsp clown 00:19:42 who doesn't do sound code 00:19:47 17:27:34: " The concept of things smaller than monarch butterflies, however, has led to enormous controversy. Although, obviously, it would be hard to see something smaller than a butterfly, it should be possible to show that it exists because, just like butterflies, it would sometimes get stuck in doors and prevent them from closing." 00:19:47 best thing 00:19:48 well, yeah ok DSPs are nice but they're not on many platforms 00:20:01 17:29:43: Us lot, doing a bloodline game! 00:20:06 hmm, that was bizarre, terminal window froze for over a minute 00:20:09 I've never played DF for more than ten seconds. 00:20:11 So I'm in, naturally. 00:20:12 I clicked the close button, and it unfroze, without closing 00:20:20 I've never played for more than 2 seconds 00:20:23 elliott_, is there any system of storing numbers on a computer that _doesn't_ violate some mathematical laws? Although hmm, I guess limiting yourself to integers, and only doing operations that make sense on integers, or limiting yourself to rationals, and only doing operations... "closed"? on rationals, would work 00:20:25 I dunno if I'm in 00:20:38 What sort of IRL hardware has DSPs in them 00:20:38 Sgeo_: wjw 00:20:42 i guess i could learn through ruining your game 00:20:46 "wjw"? 00:20:58 Sgeo_: Actually, it's only really floats that fuck things up heavily. 00:20:59 madbr: maybe dsps? idk 00:21:12 Sgeo_: I was also considering "I...". 00:21:25 Is any other programs exists that does something similar to Inform 7 rulebooks? 00:21:32 I mean, unless you really think binary violates the laws of integers. 00:21:50 Surely, if you square root and then square some numbers represented as integer over integer, you might not get the same result back in all circumstances 00:21:51 Unsigned integers are nothing more than modular arithmetic, for instance. 00:21:52 madbr: anything that would plausibly need an ADC quite possibly uses a DSP as well 00:22:22 because it makes more sense to have a dedicated processor analyse its output than trying to get an ordinary processor to 00:22:23 ais: some soundcards etc do have them yes 00:22:26 Sgeo_: ... The same is true of the rationals. 00:22:50 Um.. wasn't I just talking about the rationals? 00:22:55 ais: most of the time they are walled from the user code or non standard so you have to do everything in software anyways 00:22:55 Surely, if you square root and then square some numbers represented as integer over integer, you might not get the same result back in all circumstances 00:23:02 how can you sqrt 00:23:04 what would it return 00:23:18 madbr: I've actually written DSP code 00:23:29 :o 00:23:29 Erm, but in math, you get a result that's not a rational sometimes. But in a computer system, you'd get an approximation, presumably 00:23:30 Ah, yeah, true, obvious issue is that sqrt is not defined on the rationals. Well. Typically. 00:23:36 in a project that followed the waterfall model almost to the letter, and it almost worked, too 00:23:49 One could define a sqrt function that is only defined on the rationals with a rational square root. 00:23:56 ais: for what sort of HW 00:24:05 the code worked fine in unit testing, but the entire project broke in integration testing 00:24:08 Sgeo_: you mean that if you approximate something, it isn't the same as the actual result? 00:24:10 /application 00:24:11 Sgeo_: sqrt :: Real -> Real. 00:24:12 Sgeo_: wow! 00:24:15 and it was something in the dsPIC line by Microchip 00:24:19 How would you represent Fermat's Last Theorem by using Typographical Number Theory? 00:24:19 Sgeo_: The Real type DNE on computers. 00:24:22 Any further question? 00:24:24 s 00:24:30 Sgeo_: sqrt :: Real -> Real. 00:24:31 we bought it for the ADC, and because it needed to do processing before passing the info to a computer for bandwidth reasons 00:24:42 pikhq: sqrt(-1) = ? :: Real 00:24:45 elliott_, what's the difference between that sort of approximation and the kind of junk that floating-point produces? 00:24:45 elliott_: Oversimplification. Sorry. 00:24:48 but really, we bought the one with the best ADC we could afford, and the DSP stuff there was less of a binding issue 00:24:59 elliott_: sqrt :: Complex -> Complex. Better? 00:25:18 (well. There's probably some notion of sqrt that's defined on some superset of the complex numbers, too...) 00:25:21 it was a pretty interesting approach to the project; instead of going superheterodyne, we used a fixed intermediate frequency and drove the filtering work onto the DSP 00:25:34 hm 00:25:45 there were three people who were meant to write the DSP code, but none of them did any work for half the project, so I had to do it by myself in the other half 00:25:51 `addphrasequote "instead of going superheterodyne" 00:25:52 No output. 00:26:10 "addphrasequote"? 00:26:10 `phrasequote 00:26:12 No output. 00:26:18 and how did it fail? 00:26:23 ais523: it doesn't exist, but I needed it 00:26:25 pikhq: But square root of a complex number still result in a complex number, so sqrt :: Complex -> Complex is still OK, I think. But there might be others as well 00:26:28 madbr: basically, all the individual parts worked 00:26:34 but when we connected them together, they didn't 00:26:41 crazy 00:26:47 in fact, I think any combination of two individual parts worked too 00:26:51 17:36:55: Actually, a good way to make a fort invasion-proof is to make the entrance be a "magma elevator", a 1-tile shaft filled with magma, that is kept from falling all the way down by a set of pumps. Since dwarves are not subject to temperature while falling, as it was proved on the Last Stand thread, your dorfs would fall through several levels of magma unharmed, while any flying foe that attempted to do the same would be burned 00:26:52 to a crisp 00:26:52 17:36:56: instantly. 00:26:52 :DDD 00:26:53 i love df 00:27:03 until we connected them all together at once, from then on the parts only worked individually and wouldn't work even in pairs 00:27:06 `addquote Sgeo_, the origin of suffering is desire for e-book readers. 00:27:08 548) Sgeo_, the origin of suffering is desire for e-book readers. 00:27:11 Maybe you can have sqrt :: Real -> Real too even though there is not always answer, it depends what kind of equations and stuff you are using, is the types! 00:27:23 I personally blame it all on a circuit board that the University manufactured for it itself 00:27:32 Property of something is a prime number or not, is for natural numbers only! 00:27:34 while I was at secondary school, I was allowed to make circuit boards myself without supervision 00:27:42 at University, I wasn't, and they did a shoddy and slow job of doing it themselves 00:28:09 ais523: why'd you capitalise University 00:28:17 abbreviation for its actual name? 00:28:26 rather than being used generically? 00:28:30 yep 00:28:31 University university 00:28:33 I was referring to one in particular 00:29:01 18:06:35: Imagine an unlit e-ink laptop, and one of those "shake and it produces enough energy for the LED" flashlights that you hold with the other hand. That thing would be so user-friendly, it's not even a thing. 00:29:02 18:07:24: fizzie, well, your average redditor wouldn't have a problem with the hand movement. 00:29:02 but we're better than them, and would _never_ descend to their level 00:29:14 18:09:55: * ais523 chirps in real life 00:29:14 18:10:06: charp 00:29:14 18:10:08: I actually got quite good at doing chirps, and I'm not entirely sure why 00:29:14 are you a bird irl 00:29:17 (no lying) 00:29:32 i'm now imagining a bird wondering why it got so good at chirps 00:29:39 heh 00:29:43 it does not know much about birds, it just happens to be one. 00:29:48 bird chirps don't quite fit the technical meaning, although they're close 00:29:52 isnects chyrp toor ight 00:29:57 monqy: osdjif 00:30:09 ais523, what is the technical meaning 00:30:10 Anyways, these days I'm doing Arm SIMD and it mostly obviates the need for any sort of DSP hardware 00:30:19 Vorpal: it's a sound that changes in frequency at a constant rate 00:30:20 19:15:45: I'm still reading that DF submarine thread 00:30:21 I think /r/dwarffortress is more fun to read than DF is to play 00:30:41 I still have it open and still haven't finished reading it 00:30:46 Afaik only the 3DS has a DSP and even then you can't program it 00:30:48 Vorpal: "sweep signal", apparently 00:30:56 ais523: oh, was that /r/df too? 00:31:01 Iphone's sound hardware is "fill this buffer" :D 00:31:03 elliott_: it's bay12forums 00:31:05 someone linked it earlier 00:31:21 19:50:07: ais523, if someone were to make a haskell based dsl for describing FPGA programs, would the clock skew through a circuit belong in the function type? 00:31:21 they already have. 00:32:55 ais523, ah 00:32:55 -!- madbr has quit (Read error: Connection reset by peer). 00:33:14 I think /r/dwarffortress is more fun to read than DF is to play <-- aww come on 00:33:15 :P 00:33:29 Vorpal: it's very fun to read 00:33:34 elliott_, hm okay 00:33:35 will check 00:34:49 21:12:03: Gah one thing about the client I use can't go back and see things I missed. Bah. 00:34:49 21:12:35: If I missit the first time it's gone. Meh, screen reader. 00:34:49 21:13:00: that sounds like the shittiest client ever 00:34:58 VORPAL YOU ARE FOOLING NOBOD- 00:35:01 21:13:34: it sounds like Vorpal's client 00:35:02 ...Y 00:35:35 21:14:44: you could look at the logs. 00:35:35 21:15:06: oh, I see, it's an accessibility problem 00:35:35 21:15:06: I don't think this one makes them and if it does not sure where... But good itea there. 00:35:39 elliott_, I like the "Urist Mc" touch to the nicks 00:35:39 Adaria: this channel has public logs available online 00:35:43 21:15:20: this channel is publicly logged. 00:35:43 21:15:24: link in the topic 00:35:43 oh 00:36:12 21:29:56: So, this room had a cunfusing room desc on it, what usually goes on in here? 00:36:26 I am glad that at least one person has had the experience of having our current topic read out to them by a computer 00:36:41 elliott_: It must have been a sublime experience. 00:36:45 the artform of the topic has been elevated to even greater heights; now they are causing computers to confuse their users verbally 00:36:54 elliott_: I had a dream 00:37:10 In this dream, you and I worked together to create the ultimate esoteric programming language 00:37:18 Like having Douglas Adams read to you by a schizophrenic while you are on acid. 00:37:27 "We shall call it... Haskell." 00:37:30 where esoteric is defined as 'no person in their right mind would ever use this for real code' 00:37:40 It was an unholy fusion of PHP and Java 00:37:44 Is there landline telephone service with extra features such as: tell your telephone number in voice, tell your telephone number in DTMF, change session parameters, turn on/off single call mode, require red box tones to call out, add annotations to the telephone bill, etc 00:37:47 I know those languages more than I want to 00:37:53 s/Haskell/$any_research_language/e 00:37:56 21:31:28: This server has SO many rooms though it's insane. 00:37:57 please tell me you did /list on freenode 00:38:03 evincar: Haskell's not a research language :P 00:38:07 elliott_: It was. 00:38:08 please tell me you did /list on freenode 00:38:10 while using a screen reader 00:38:11 evincar: true 00:38:26 elliott_: wow, I hadn't even realised that implication 00:38:34 Such as, you can push something it makes it act like a payphone until you hang up your end 00:38:35 and /list only actually lists a small fraction, because most channels are +s 00:38:45 please tell me you at least used alis 00:38:46 ais523: it was probably a GUI list control that you can scroll through and search, I imagine 00:38:49 but it would still be amazing 00:39:02 * elliott_ does /list for the fun of it 00:39:35 21:36:16: Adaria: So are you visually impaired, or do you just feel like using a screen reader? 00:39:50 that's the most awesome question I've seen in here for a while 00:39:56 I have occasionally felt jealous of blind people for being able to use edbrowse without getting sick of it and switching to more graphical programs 00:40:05 -!- madbr has joined. 00:40:29 21:35:23: Female here but I use guy as androgenous too. 00:40:29 21:36:55: Imagine an adrogenous specific pronoun 00:40:29 YOU'RE MAKING IT EVEN LESS OF A WORD THAN THE ORIGINAL TYPO 00:40:50 21:37:31: To me, "it" is that's more of non-human 00:40:51 Also this isn't a sentence, but I note that some people's preferred pronoun is "it" 00:41:14 21:39:30: May be getting an IRC client for my phone. iPhone, some love it, others hate it but to me it is truly a lifeline. 00:41:14 Man, I don't want to sound insensitive or an idiot... but how the hell do you use an iPhone blind? 00:41:44 Is there some mode that says what you just tapped and you have to double-tap them to really activate it or someting? 00:41:47 something 00:42:06 oh, I caught up already 00:42:22 elliott_: Haha, inadvertent Pidgin. :P 00:42:30 evincar: wat? 00:42:44 chirp 00:42:48 elliott_: "someting". But I imagine the mobile accessibility experience is universally shitty. 00:42:48 ais523: btw, the reason I pinged you was that I often wake my laptop up from sleep and have to reconnect my IRC client 00:42:55 since the network connection dropped 00:43:03 evincar: oh, I thought you meant the IM client because of the capitalisation... 00:43:05 yep, it's just that I thought a /ctcp ping would work well enough 00:43:15 it's what I do on flaky connections 00:43:16 all the time 00:43:17 ais523: I usually use /topic 00:43:18 but nobody else notices 00:43:31 if I did elliott_: ping every time, you'd get annoyed very quickly 00:43:42 ais523: but I was disoriented since I'd just got on my computer (THIS TOTALLY HAPPENS TO ME OK) so I just decided to panic and resort to a real person 00:43:53 also, please do, I'm going to be paranoid about whether you're pinging me or not all the time now :D 00:44:13 elliott_: pong 00:44:22 monqy: pang 00:44:23 If I need to check the connection usually I will just do PING ME although sometimes I want to check the connection with other servers too, the PING command can do that. 00:44:31 if I remember, and you're online (which is rare when I'm on a flaky connection, as that's normally during normal person hours), I will 00:44:55 The server responds PONG. 00:45:06 thanks server 00:45:29 ais523: I am offended by this "normal person hours" remark as it is upsettingly accurate 00:45:43 zzo38: my client doesn't show PONGs from the server 00:45:54 i wish my hours were weirder 00:46:02 I hate afternoons and want them to vanish 00:46:29 ais523: O, then, OK. Why is that? My client does show PONGs from the server. It doesn't, however, show PINGs from the server (unless AUTOPONG is turned off) 00:46:36 monqy: wtf 00:46:40 monqy: but you like mornings? 00:46:47 mornings are less bad 00:46:49 ais523: I can just do /ping and it appears in the server tab 00:46:51 monqy: r u srs 00:46:55 What is the reason for not showing PONGs from the server? 00:47:07 monqy: try waking up in the afternoons, it is the best way to realise how awesome afternoons are 00:47:15 afternoons are hot and awful. sometimes mornings are nice and foggy. 00:47:19 ais523: do you _still_ use Konversation? 00:47:19 elliott_: doing /ping on Konversation attempts to CTCP PING the null string (which obviously doesn't work, but I do get an error message back that's usable as a pong) 00:47:25 monqy: do you live in texas or something... wait no fog 00:47:28 and doing /quote ping gives no visible response 00:47:30 and yes 00:47:36 in England, early afternoon is the nicest weather of the day 00:47:37 i have trouble thinking in afternoons. mornings are better. 00:47:37 IMO 00:47:43 why, has it suddenly become worse over time or something? 00:47:47 nights are best though 00:47:47 or do you just expect me to experiment more? 00:47:50 monqy: that's just because you're meant to have a siesta at midday 00:48:03 I suppose the various IRC clients are different in many ways, some do one thing different and others do problem to different thing 00:48:07 monqy: if you wake up at midday, there's no problem :P 00:48:11 monqy: (wrt not being able to think) 00:48:12 ais523: well, KDE four... 00:48:13 Which is one reason why Free Software is good idea. 00:48:13 elliott_: I seriously dislike heat 00:48:27 ais523: like, any sort of heat at all? 00:48:31 elliott_: Konversation's only visible response to that was getting confused and spouting errors about SQL 00:48:37 I find the summer mornings to be way too hot, but afternoon summer weather is nice 00:48:39 elliott_: I dislike the temperature being above average 00:48:44 Define average 00:48:46 which it is quite a lot, unfortunately 00:48:56 and, it's an approximate average which is somewhere near both the median and mean 00:49:06 Celsius value = 00:49:08 (~=) 00:49:15 probably about 20 00:49:20 probably less 00:49:32 meanwhile, I don't start feeling cold until about -6 or so 00:49:38 you may be a lizard 00:49:41 also, even outside? 00:49:45 yes 00:49:50 i may be a lizared too.//? 00:49:54 I once went out in only a T-shirt at -15 00:50:00 although I did notice I'd done so afterwards 00:50:03 ais523: that's probably bad for you... 00:50:05 (T-shirt and suitable other clothes, that is) 00:50:08 elliott_: yes 00:50:20 in future, I shall probably have to make sure it at least has long sleeves 00:50:33 ais523: you may want to consider starting a wonderful career in Finland. somewhere north of Helsinki, say. 00:50:33 also, I bought a fleece for that sort of occasion, and wear it when the temperature goes much below -5 nowadays 00:50:34 :p 00:50:35 Or Russia. 00:50:36 which is, umm, not very often 00:51:03 -!- Adaria has quit (Quit: Miranda IM! Smaller, Faster, Easier. http://miranda-im.org). 00:51:12 I have trouble with about twenty-five Celsius and above 00:51:21 but I suspect that's mostly lack of familiarity with the temperature 00:51:38 I really dislike rain and snow, though, plus any temperature cold enough to need more than a tshirt to be comfortable in 00:51:47 which is a much higher value than ais523's 00:51:50 whenever the temperature is higher than I'd like it I get headaches and dizziness and can't think 00:51:56 I like some sorts of rain, and dislike others 00:52:02 monqy: are you in lizard texas 00:52:12 and am mostly OK with snow on the ground, but it's annoying while it's falling 00:52:21 texas would be hell for me 00:52:31 apparenlty i live in nice weather land but I'd prefer it colder 00:52:45 by apparently I mean 00:52:48 monqy: are you avoiding letting me know where you live because i'm stalker 00:52:49 according to peo;le who are not me 00:52:54 because im probably not stalker (maybe) 00:52:55 perhaps 00:53:38 hey, fizzie probably knows this, but other people might too: if a program segfaults due to trying to write to readonly memory, and you handle the segfault with a signal handler and return from it, what happens on Linux? (i.e. does it attempt to repeat the write or move onto the next command or what?) 00:54:08 lol, Fox News are still calling the Norway terrorist attack islamic 00:54:19 elliott_: seriously? 00:54:23 it was anti-islamic 00:54:34 ais523: well, they're saying that Scandinavia is, umm, turning a blind eye to "Islamic terrorism" or something 00:54:48 it's Fox News via translated Norwegian, so it makes slightly less sense than fungot 00:54:48 also, random fact I discovered from the whole thing (that I've said in-channel before but you weren't in here): Norway has a smaller population than London 00:54:49 elliott_: for the material being stored does not exceed 50%, unless another rule specifies that the entity in 00:54:49 elliott_: That's surprising for the least 00:55:10 ais: A few million right? 00:55:10 madbr: hmm, what's your native language? I suspect that's an idiom that sounds really weird in English 00:55:13 ais523: I don't think there's any kind of repeating in signal handlers 00:55:27 eliott: french 00:55:28 elliott_: yep, but it depends on where the IP ends up after all that 00:55:31 ais523: as in, I'm pretty sure if you just carry on, you just carry on, not restart everything 00:55:32 and there's nowhere obvious for it to be 00:55:35 madbr: does your client honestly not have tab completion? :-P 00:55:40 it does 00:55:45 but I don't use it :o 00:55:50 ais523: ON ERROR RESUME NEXT? 00:55:52 :o 00:55:55 evincar: heh 00:55:55 ais523: well, ... TIAS? 00:56:00 ON ERROR RETURN -516 00:56:02 ais523: I know you can use segfaults to allocate memory 00:56:04 e.g. for brainfuck 00:56:06 elliott_: I might, I was just wondering if someone knew 00:56:11 But I suspect that involves manually jumping to the right place 00:56:16 it's a little complex to set up a test case and even more complex to work out what the results mean 00:56:29 and it's undefined behaviour, so the docs don't help 00:56:41 elliott: haha wow that's an interesting allocation scheme 00:56:56 int [ast]foo = gimmereadonly(); printf("abc\n"); foo[0] = 9; printf("def [percent]d\n", foo[0]); 00:56:59 ais523: caret 00:56:59 and also batshit insane :D 00:57:00 it's similar to what the kernel does, just more manual 00:57:11 madbr: it's not really, it's exactly how the kernel/MMU does paging 00:57:30 elliott_: you need the signal handler too, which would need to, umm, unprotect the memory in question? 00:57:42 ais523: mprotect 00:57:46 yep 00:57:53 is that even signal-safe, incidentally? (/me checks) 00:58:04 sighandler(){mprotect(foo, size_of_data, PROT_READ|PROT_WRITE);} 00:58:13 ais523: but I'm not sure how interpreting the results is hard 00:58:17 if you get 00:58:18 although this is me, deliberately invoking UB with a signal handler and checking if everything I call in it is signal-safe anyway 00:58:20 abc 00:58:21 def 9 00:58:26 then it retries the memory access 00:58:27 if you get 00:58:28 abc 00:58:31 def 0 00:58:35 then it doesn't 00:58:38 assuming the memory starts out zeroed 00:58:39 (just use mmap) 00:58:48 mmap /dev/zero ensures it starts out zeroed 00:58:48 if you get something else, your test case is broken 00:58:55 ais523: well, UB is perfectly OK in the context of a known compiler and OS 00:59:01 you're just not coding C any more, that's all 00:59:02 and luckily, /dev/zero is writable, although writes to it don't do anything 00:59:11 I have known OS and arch, but I'm trying to avoid known compiler 00:59:17 ais523: umm, heard of MAP_PRIVATE? 00:59:18 that's COW 00:59:35 avoiding known compiler is impossible with UB 00:59:35 ais523: It's UB for the SIG_SEGV handler to return. 00:59:36 I know 00:59:46 pikhq: It's not UB 00:59:48 This isn't C 00:59:50 pikhq: I know, I was just wondering if it actually did something useful in practice 00:59:53 Well 00:59:56 I suppose it's POSIX, so fair enough 01:00:03 "If and when the function returns, if the value of sig was SIGFPE, SIGILL, or SIGSEGV or any other implementation-defined value corresponding to a computational exception, the behavior is undefined." 01:00:03 ais523: Useful enough that there exists a brainfuck interpreter doing it, at least 01:00:08 ais523: Want me to dig up its source code? 01:00:13 does it return or longjmp? 01:00:15 but yes, anyway 01:00:27 So, yes, it is undefined behavior. 01:00:36 ais523: http://cvs.savannah.gnu.org/viewvc/libbf/?root=libbf... it's one of these (from http://savannah.nongnu.org/projects/libbf) 01:00:41 One of the interpreters 01:00:42 * ais523 looks 01:00:51 http://cvs.savannah.gnu.org/viewvc/libbf/libbf_interpreter_dynalloc.c?revision=1.3&root=libbf&view=markup 01:00:52 this looks like it 01:01:01 EXCEPTION_DISPOSITION libbf_interpreter_dynalloc_handler_win32(struct _EXCEPTION_RECORD *exception_record, 01:01:01 /* If the exception is an access violation */ 01:01:01 if (exception_record->ExceptionCode == EXCEPTION_ACCESS_VIOLATION && 01:01:01 exception_record->NumberParameters >= 2) 01:01:04 there's a POSIX version too 01:01:05 in that file 01:01:15 bleh, if I was using @, I could just grep that repo 01:01:23 ais523: if you were using CVS, you could too 01:01:26 -!- TeruFSX has quit (Ping timeout: 250 seconds). 01:01:30 cvs -z3 -d:pserver:anonymous@cvs.savannah.nongnu.org:/sources/libbf co 01:01:46 but that requires a local copy of the code 01:02:00 I suppose I could do it in /tmp or somewhere 01:02:00 ais523: who says another @ machine will perform a search for you? 01:02:07 your browser is downloading the pages, too :P 01:02:14 only the pages I actually look at 01:02:18 Just make a ~/tmp or something 01:02:42 why would that be better than /tmp? 01:02:53 ais523: not world-readable 01:02:56 /tmp is all mine on this system, there are only two loginable users and only one corresponds to a human 01:02:57 assuming your home directory isn't 01:03:02 heh, what is the other? 01:03:04 and my home dir is world-readable 01:03:07 the other's nhadmin 01:03:17 because /dev/null's code requires a user to exist with that name 01:03:22 and having it loginable was useful for testing its code 01:03:41 elliott_: Oh yeah, how does an @ machine treat non-@ machines? Are they whole opaque objects? Moreover, are objects turtles all the way down? 01:03:44 on my previous laptop, I also had a few user accounts for running specific programs I didn't trust 01:03:52 evincar: what's a machine 01:04:04 relying on the permissions system to mostly-sandbox them from doing anything too crazy 01:04:13 elliott_: A machine is an opaque thingamajig that DO NOT WANT to talk to @. Go. 01:04:23 evincar: i mean if you mean "can i make raw tcp/ip connections", then sure, if you have the permissions for it 01:05:00 ais523: if I'm an IP, how do I find my user page on Wikipedia? 01:05:05 or, my contributions will do 01:05:07 Special:Mytalk 01:05:10 is the user talk page 01:05:15 thanks 01:05:20 then you can find contributions or user page from there 01:05:29 it's what I use to quickly check what my externally visible IP is 01:05:54 I also use Wikipedia talkpages to do things like reverse DNS checks and to check to see if IPs are on known blacklists 01:06:15 they're meant for gauging rangeblocks on Wikipedia, but it works just as well for gauging rangeblocks on Esolang 01:06:37 -!- MDude has quit (Ping timeout: 250 seconds). 01:06:50 I also use Wikipedia talkpages to do things like reverse DNS checks and to check to see if IPs are on known blacklists <-- huh? 01:07:07 oh you mean spam 01:07:18 mostly useful for spam, but not always 01:07:35 ais523, have you bought the indie bundle 3 btw? 01:07:37 I've been known to rDNS and geoIP people I talk to over IRC when they left their IP visible 01:07:41 Vorpal: no, but I'm wondering about it 01:07:47 there are pretty few commercial games for Linux 01:07:50 ais523, I quite like it. 01:08:02 mostly interesting physics games 01:08:18 I've seen enough of VVVVVV, at least, to know I wouldn't pay full price for it, but might pay a smallish amount of money 01:08:18 ais523: here's my datapoint for you: 01:08:29 I blame cogs and hammerfight not working on ATI graphics 01:08:31 I think if I do buy the bundle, I'll pay about £5 for it 01:08:44 ais523: some of them are only .tar.gz with .bin installers (shell scripts or executables, presumably), but a lot of them are offered as .debs, and some for sixty-four bit, too 01:08:45 because that's about what it's worth to me 01:08:48 ais523: there are also some .rpms 01:08:56 ais523: well 01:09:00 ais523: that's the second bundle 01:09:06 what about just installing to homedir? 01:09:08 I haven't downloaded the third but presumably it's similar 01:09:15 ais523: that involves using the .bin installer, presumably 01:09:18 did you pay for it, btw? 01:09:20 possibly in a chroot 01:09:25 ais523: I was gifted it 01:09:28 it's hard to tell what a random executable file installer will do 01:09:31 ais523: I am considering buying the third 01:09:32 elliott_, all are .tar.gz except two which are .bin installers. One is available as 64-bit and also as deb 01:09:34 iirc 01:09:39 ais523: Yes, it is, but Humble Bundle is a pretty good mark of assurance 01:09:45 I know 01:09:52 I mean, what sort of settings does it take to tell it where to install? 01:10:02 is there even a command line option that gives help on options rather than installing, and if so, what is it? 01:10:08 ais523: well, run it in a chroot and see 01:10:08 ais523, only two needed installing, those installed just fine to home dir 01:10:09 or as a different user 01:10:21 as non-root would make sense, I didn't think of that for some reason 01:10:22 ais523, and they use graphical installers 01:10:26 I suspect it wouldn't work inside fakeroot 01:10:38 ais523, I bought this bundle, so I know more about it than elliott_ 01:10:39 :P 01:10:43 also, DRM-free implies you can install as many times as you want on your own computer, presumably 01:10:43 I played one iteration of Crayon Physics at one point and found it amusing but not that fun; fizzie likes VVVVVVVVVVVVVVvvvvvvvvvvvVVVVVVVVvvvvv so it's OBVIOUSLY AWESOME BY DEFINITION 01:10:48 ais523, indeed 01:10:53 ais523, on all your computers 01:10:56 Deewiant likes Hammerfight so it PROBABLY SUCKS and I haven't heard of And Yet it Moves or Cogs. 01:10:58 elliott_: VVVVVV is mildly awesome, and fun to watch, but a little short 01:11:05 also a little unpronounceable 01:11:11 ais523: The downloads are also available in BitTorrent form 01:11:16 elliott_, VVVVVV is utterly hard, require lightning reflexes 01:11:20 meh, I'd prefer HTTP 01:11:22 Vorpal: So easy, then 01:11:26 ais523: And you can download them any number of times, you get a special download link in an email 01:11:31 elliott_, if you have them, sure 01:11:41 ais523: They also have Steam codes and stuff that you can press a button to get, but you probably don't care about that 01:11:43 elliott_, And Yet It Moves is quite fun. You rotate the the world around you basically 01:11:56 Vorpal: I have terrible reflexes but come on, you probably think that about every platformer game 01:12:14 elliott_, no. This is early-nintendo hard 01:12:14 elliott_: VVVVVV is pretty reflexy as platformers go, when it isn't pixel-pefect-jumpy instead 01:12:20 elliott_, NES era nintendo or so 01:12:29 ais523, yes indeed 01:12:36 ais523: oh well, it sounds fun 01:12:41 Vorpal, hmm, I think I played a flash game once that involved rotating the world around you 01:12:43 I suspect it is 01:12:48 * Sgeo_ goes to download And Yet It Moves 01:13:00 Sgeo_, you bought bundle 3? 01:13:00 ais523: haha, it comes with a demo of Minecraft until August 01:13:02 the thing is, it doesn't feel unfinished, but it feels like they should have been developing it longer before finishing it 01:13:07 Vorpal, yes 01:13:11 elliott_, yes that appeared like yesterday 01:13:15 elliott_: perhaps I should wait until August before downloading it, then 01:13:24 ais523: you sure do hate Minecraft 01:13:29 Vorpal, hmm, I think I played a flash game once that involved rotating the world around you 01:13:30 Dot Action [two] 01:13:36 the green blocks did that 01:13:36 elliott_: I do 01:13:41 all games are basically pale imitations of Dot Action 01:13:42 ais523, it is until August 14 iirc 01:13:45 elliott_, that's not the one I was thinking of, but sure 01:13:47 ais523, and the bundle ends before that 01:13:51 bleh 01:13:56 ais523: I can't really tell why, is it just the Inception effect? 01:14:08 when does the bundle end? I sort-of assumed I'd be able to buy it indefinitely 01:14:14 ten days 01:14:34 elliott_: partly that, partly the reason that I don't get why people should like it, it feels rather deficient as a game 01:14:34 ais523, then you can download it forever, but you can't buy it after that 01:14:43 Vorpal: legally? 01:15:00 ais523: It's a flawed game in and of itself, Notch is incompetent, and the auth pseudo-DRM system is inefficient, but it's a fun game, and a creative one, certainly worth the twenty bucks it currently costs (but not the forty bucks it will cost, unless it improves massively) 01:15:04 ais523, yes you get a code that you can use whenever you like as far as I understood to download it 01:15:31 ais523: It's true that it gives you no "goal" to play for, but then you could argue that any game where people play for something other than to complete it at all costs is like that 01:15:33 elliott_, bucks being? 01:15:36 oh, I thought you meant people who hadn't bought it could download it 01:15:41 elliott_: I have nothing against games that don't have a goal 01:15:44 Vorpal: Seriously? 01:15:50 elliott_, is it GBP? 01:15:53 Vorpal: slang name for US dollars 01:15:54 elliott_, I like games with no goals. But you should know that already. 01:16:13 =P=P 01:16:13 elliott_, so 13 EUR? 01:16:15 hm 01:16:19 I think minecraft is more a "toy" than a "game" 01:16:21 although I think puzzle-creation is probably my favourite sort of gameplay 01:16:21 ais523: Well, why should anyone like Minecraft? Because it's fun and dissimilar to almost every other game. 01:16:33 I often enjoy creating levels for games more than playing them 01:16:34 ais523, then you will probably like the bundle 01:16:36 madbr: that just sounds like gamer posturing 01:16:40 lots of puzzles 01:16:41 is Bejeweled a game? 01:16:44 (It's a bad game, but is it a game?) 01:16:50 elliott_: I'd say yes 01:16:52 ais523, and crayon is puzzle creation 01:16:56 elliott: Well, actually I like minecraft 01:16:56 ais523: with Minecraft, creating the levels is over half of the game 01:17:02 elliott_: indeed 01:17:02 elliott_: No it isn't a game, it is a computer game 01:17:10 zzo38: computer games aren't games? 01:17:12 elliott_, well, we will see where adventure mode goes 01:17:20 madbr: Me too. But it feels like a toy/game division is artificial. 01:17:21 but I don't think any part of the game works as well as a game specifically designed for it would 01:17:25 Vorpal: Adventure mode will suck, I'm sure of that. 01:17:30 elliott_: Actually I don't know I just made up that 01:17:31 elliott: Hmm, probably is 01:17:35 elliott_, oh certainly 01:17:36 much like, say, adventure mode in Dwarf Fortress sucks compared to most roguelikes 01:17:37 `addquote elliott_: No it isn't a game, it is a computer game 01:17:38 549) elliott_: No it isn't a game, it is a computer game 01:17:44 but fortress mode doesn't, and is the good part of the game 01:17:48 ais523: It's bad to think of redstone as, like... an awkward circuit system, or anything 01:17:50 elliott_, people have done some great adventure maps before hm 01:17:57 ais523: The thing with Minecraft is, specialising it by taking one part of the game and doing it really well would ruin it. 01:18:08 elliott_: it might make a better game overall, though 01:18:15 ais523: It feels like a universe; the fact that every component is loosely coupled but can interact marginally is the charm. 01:18:16 ais523, I thought you didn't play df? 01:18:19 Vorpal: no 01:18:20 I don't 01:18:26 I can have opinions on games even if I don't play them 01:18:33 You can build a house (one game), and you can give it circuits (another game). Neither of those games would be as good as that combined experience. 01:18:36 ais523, ah 01:18:44 I think I like reading stories about df more than I like df 01:18:45 elliott_, indeed 01:18:46 You can build a rail network (one game), to connect your houses with circuits (two games). 01:18:57 elliott_: Of course. The game isn't about any of its elements. It's about the emergent behaviour that arises from the interaction of those elements. 01:19:01 ais523: Minecraft isn't a good game because any of its parts are an amazing game and the rest is just a lot of fluff. 01:19:03 elliott_, and you can control a rail network with circuits 01:19:05 * Sgeo_ wonders if he can get Boatmurdered in epub form 01:19:07 in terms of actual games, I've been playing Meteos a lot recently 01:19:13 trying to hit the score cap 01:19:15 ais523: It's good because it's basically a bunch of games that, by themselves, would be really boring, but when combined, form a compelling sandbox. 01:19:17 elliott_, is that 3 or 4 games in total now? 01:19:22 It's not nearly a diverse enough sandbox. 01:19:26 I got over 9 million on Smogor (the score cap is 10 million - 1) 01:19:27 Vorpal: Ten, probably. :p 01:19:35 ais523: But while it's not a perfect game, it's good enough to be very compelling. 01:19:36 elliott_, I meant the ones we listed 01:19:41 elliott_, not all the ones in total 01:19:47 Vorpal: Well, it's ambiguous. That's kind of the point. 01:19:51 and it's strange that I like Meteos, because it has basically none of the properties I like in a game 01:19:54 elliott_, hm true 01:20:00 ais523: I sure hope this tl;dr enlightened you a bit as to why people like Minecraft. 01:20:04 If not my fingers hate you. 01:20:07 hmm, I suppose so 01:20:23 ais523: I have a feeling MC is impossible to understand without playing it 01:20:24 I still feel free to disagree with them, though, even if I understand their point of view a bit better 01:20:36 well, you can hardly claim that liking a game is wrong 01:20:43 ais523: I have a feeling MC is impossible to understand without playing it <-- very true 01:20:50 elliott_, watching videos will be useless too 01:20:58 It seems weird to go beyond "diffrn't strokes for diffrn't folks" into "I hate Minecraft and would like to buy a bundle specifically without an offer about it if I could" 01:20:59 Did you like any of the computer game I made up? 01:21:04 elliott_: indeed, but I can claim that liking a game annoys me 01:21:08 Vorpal: Nah, watching videos and reading Towards Dawn made me buy Minecraft 01:21:09 which is different from being wrong 01:21:26 elliott_, I meant useless in making you understand it 01:21:27 ais523: Well... do people who like [insert music you don't like] annoy you? 01:21:35 ais523: Or do you just mean you don't like them ... publicly liking it? 01:21:38 As in saying "MC is great" etc. 01:21:54 it's public liking I don't like 01:22:05 ais523: fair enough; I'm not sure how that ties into the bundle though 01:22:07 and, I suppose, dedicating time to it that they could be dedicating towards things that would benefit me 01:22:13 is giving you a few weeks of playing a game publicly liking it? 01:22:16 oh, the bundle thing is probably just mostly bandwidth 01:22:20 ais523, how egoistic :P 01:22:21 ais523: umm, you don't have to buy it 01:22:24 ais523: they're separate downloads 01:22:28 s/buy/download/g 01:22:28 oh, good 01:22:36 then I can retract my objection 01:22:40 ais523: and, anyway, Minecraft's download is just a small .jar file 01:22:41 ais523, each game is a separate download indeed 01:22:52 elliott_: small .jar files exist? 01:22:57 ais523: it downloads the real thing post-authentication from an Amazon S3 server with no protection on the files 01:22:57 ais523, minecraft uses a tiny .jar that launches and download the rest of the game 01:23:01 ah, I see 01:23:01 yes, this means that anyone can download Minecraft's fails 01:23:04 because Notch 01:23:04 Did you like any of the computer game I made up, or any of my ideas related to computer games? 01:23:13 ais523: -rw-r--r-- 1 elliott elliott 88K 2011-02-23 14:07 launcher.jar 01:23:15 elliott_, does that STILL work? 01:23:17 Tiny enough in comparison to the other games 01:23:22 Vorpal: Last I checked, yes 01:23:23 elliott_: you consider 88K small? 01:23:28 ais523: you don't? 01:23:29 ais523, for a .jar 01:23:31 it is small 01:23:33 * Sgeo_ wonders if Boatmurdered looks acceptable on a black and white screen 01:23:34 Vorpal: indeed 01:23:39 ais523: let me tell you how big the humble bundle two games are... 01:23:46 $ du -sh /usr/bin/emacs 01:23:46 11M/usr/bin/emacs 01:23:50 ais523, much smaller than emacs 01:23:59 (yes yes, I know it is a memory image of a running emacs) 01:24:01 ais523: Braid: 114 Mio; Cortex Command: 48.6 Mio; Machinarium: 344 Mio 01:24:12 Vorpal: Emacs is huge, and that doesn't surprise me in the least 01:24:12 these are all compressed, I think 01:24:20 elliott_: most of which is going to be images and similar content 01:24:21 and music 01:24:29 those are always huge 01:24:36 Osmos: 19.3 Mio; Revenge of the Titans: 60.6 Mio 01:24:40 World of Goo: 66.5 01:24:42 Mio 01:24:46 Aquaria: 209.5 Mio 01:24:46 -rwxr-xr-x 1 ais523 ais523 582406 2011-07-22 00:09 staticcat 01:24:47 elliott_, 302Mtotal for the files you download for all the bundle 3 games 01:24:48 blah blah blah 01:24:59 77MAndYetItMoves-1.2.0_x86_64.tar.gz 01:24:59 59MVVVVVV_2.0_Linux3.tar.gz 01:24:59 38Mcrayon_release55_2.tar.gz 01:24:59 104Mcogs-linux-bin 01:24:59 25Mhf-linux-07172011-bin 01:25:00 302Mtotal 01:25:00 hmm, 582K for cat 01:25:04 that's actually quite impressive 01:25:08 ais523: that's terrible 01:25:11 but that's glibc for you 01:25:15 indeed 01:25:17 ais523, I think you would LOVE crayon 01:25:21 ais523: it's more like ten kibioctets with a saner thing 01:25:23 I still haven't figured out exactly why it's calling uname 01:25:31 Vorpal: crayon physics is boring, at least the version I played years ago :P 01:25:41 elliott_, well, I find it fun. 01:25:49 in particular, whether it's trying to establish whether it's running on Linux (using a Linux-specific system call number), or whether it's trying to find out what Linux version it has 01:25:53 Vorpal: description of the game? 01:25:59 ais523: surely Linux version 01:26:04 glibc warns for some versions, I think 01:26:05 or something 01:26:10 elliott_: ah, perhaps 01:26:13 ais523: crayon physics: you can draw arbitrary polygons 01:26:19 and they become two-dimensional objects subject to the physics engine 01:26:24 ais523, you draw objects on the screen, they react to physics. You use this to push around and make path for a small ball that has to pick up a number of stars on the screen 01:26:24 you have to help a ball roll around properly 01:26:34 -!- lament has joined. 01:26:40 ah, hmm, it is the sort of thing I generally like 01:26:47 isn't crayon physics now the subject of Every Flash Game Ever 01:26:52 Vorpal: is there anything that could make e.g. objects drop down and move other objects you created? 01:26:52 ais523, all drawn a crayony way 01:26:54 that might make it interesting 01:26:54 e.g. Transformice 01:26:58 but it wasn't in the game I played 01:27:06 hmm, I'm not sure I've ever played a flash game 01:27:06 i.e., if you actually had to create rudimentary mechanisms 01:27:09 or that one flash game that was something Inventions 01:27:12 elliott_, sure, I dropped things on other things and had them push things 01:27:16 you can draw rope too btw 01:27:20 quite useful 01:27:27 there were some people playing Slime Games at school and I joined in sometimes, but I'm not sure if it was a flash game 01:27:27 http://fantasticcontraption.com/ this one 01:27:43 oh right, I did occasionally join in in games that were definitely flash games 01:27:47 "Click here to play Minecraft for free during the Bundle" 01:27:49 ais those would be flash since they predated webgl 01:27:51 I don't think I've played one since, though 01:27:52 and html5 01:28:07 ais523: it pains me greatly that you have not experienced Dot Action 2 01:28:07 elliott_, draw a shape around the ball, draw a counterweight, add some "pins" to these, and a rope, now you can hoist the ball up! 01:28:08 Patashu: something as simple as slime games is entirely doable in html4 or even 3, plus javascript 01:28:11 Sgeo_: oh, I bet it's the applet version 01:28:25 (after pushing away the counterweight) 01:28:26 they don't need anything introduced in html5 01:28:33 ais523: Hmm I suppose you're right 01:28:35 ais523: excuse me, paining 01:28:40 why has the entire world decided that what used to be called DHTML only existed as of HTML5? 01:28:42 It'd be html objects being moved around? 01:28:50 ais523: canvas 01:28:56 I wrote a program that used a huge number of overlapping
s for rendering years ago 01:28:56 "Play Minecraft for free until August 14th! 01:28:56 Create a key below and then apply it to your Minecraft account by clicking the red link." 01:28:58 ais523: "DHTML" doesn't scale at all 01:29:00 and just changed their background colors 01:29:01 because DOM = shit 01:29:15 it actually worked, and faster than using Excel for rendering 01:29:23 lol 01:29:26 (look, I hadn't heard of proper programming languages back then) 01:29:31 `addquote it actually worked, and faster than using Excel for rendering 01:29:32 550) it actually worked, and faster than using Excel for rendering 01:29:39 it was also possibly the only program ever to be written in Microsoft JScript 01:29:47 because I found the documentation for that lying around 01:29:55 ais523, as opposed to javascript? 01:29:59 what were the differences 01:30:01 although it turned out to be almost valid JavaScript too, I only had to change a few lines to get it working in Firefox 01:30:21 mostly, that document.x was equivalent to document.getElementById("x") in JScript 01:30:28 ah 01:30:32 (I hope they've fixed that now, it's almost as bad as PHP's register_globals) 01:30:46 ais523: to expand on what I said about @ and the internet: as far as I'm concerned, if the Internet isn't universally recognised as a human right in a few years, something went wrong; and internet outages will, or at least should be, considered as serious as power outages 01:31:00 or perhaps moreso, considering how common laptops are 01:31:03 can avoiding the Internet be a human right too? 01:31:17 ais523: probably, but is avoiding taxes? 01:31:25 you can be a hermit if you want, but you'll still have to pay 'em 01:31:31 and you might even need to fill out a form on the internet 01:31:32 I'm not sure of the relevant 01:31:35 *relevance 01:31:43 elliott_, that is hard for old people who never used computers 01:31:46 ais523: it's relevant because you might have to use the internet 01:31:48 I suspect the tax office will for at least the next 3/4 decades allow forms to be done by post 01:31:48 I don't think that is realistic thus 01:31:55 until many years into the future 01:31:57 Vorpal: no it isn't, teaching people how to use computers is easy, teaching them how to use Windows is hard 01:32:06 elliott_, fair enough 01:32:13 or at least, most people are bad at teaching them Windows 01:32:17 and practically the definition of old people involves them dying soon anyway :-P 01:32:24 ais523: and? 01:32:27 elliott_, my blind grandmother would have problems with any computer though 01:32:28 elliott_: it'll be much more than 30/40 years into the future before the government can be persuaded to not mandate Windows for everything computer-related they do 01:32:28 ais523: would it be a human rights violation if they stopped doing so? 01:32:35 if the internet was considered a right 01:32:39 elliott_: possibly, depending on the circumstances 01:32:51 why? why isn't avoiding post a human right? 01:32:55 something being considered a right doesn't necessarily mean that you can assume that people will exercise that righgt 01:32:58 *right 01:33:03 that would be like feeding children only if they played 01:33:16 ais523, indeed 01:33:16 and saying it wasn't a violation of human rights because playing is a human right for children 01:33:25 why isn't avoiding post a human right? 01:33:45 elliott_, since when is getting post a human right 01:33:56 internationally I mean 01:33:57 note that in the UK, you don't have to do tax returns at all unless there's something complex about your tax situation 01:34:04 you just have to fill in a form when you get a job or change jobs 01:34:10 and hand it to your employer 01:34:17 Vorpal: we're talking about forms 01:34:24 ais523: I wasn't talking about forms just for taxes 01:34:40 in fact, I have surprisingly few forms to fill in, overall 01:34:50 you still have to fill them in, and send them via post, right? 01:34:57 how do you inform the government of your tax deductions? 01:34:57 well, why isn't avoiding post a human right? 01:35:03 I know this, because I use pencil and paper sufficiently rarely that whenever I fill in a paper form, I first have to remember how to use a pen 01:35:35 * elliott_ wonders if ais523 is operating this conversation by replying to every message up until I make my actual point, and then repeating 01:35:46 quintopia: there are very few tax deductions in the UK; the main one is for donations to charity, and you let the charity know tax details and they claim the deduction on your behalf 01:36:13 apparently 01:36:17 huh...that's not a good way to attract business 01:36:21 elliott_: I'm trying to think of a situation in which post is actually necessary 01:36:31 quintopia: tax deductions for business exist, and there are a lot more of them 01:36:31 taxes r bad gold is good 01:36:40 if a company can't write off their expenses, what reason do they have not to move operations to the netherlands... 01:36:41 ais523: well, how do you send in forms? 01:36:45 but it's the business that's concerned with them, not the people who interact with them 01:36:45 and why can't avoiding that be a human right? 01:36:46 oh okay 01:36:53 so as a business owner 01:36:57 you have to submit returns? 01:36:58 elliott_: the main form I have to fill out atm is the university registration form 01:37:04 which can be done over the internet or in person 01:37:30 * elliott_ tries to think of something absolutely unavoidable, legally, for living in the UK 01:37:33 in fact, in person is how the majority of forms I fill in work out 01:37:38 so I can ask why avoiding that shouldn't be a human right 01:37:53 avoiding paperwork is the stupidest idea for a human right i've ever heard 01:38:17 quintopia: nah, paperwork is horrible, that's a decent idea 01:38:30 avoiding the internet is the stupidest one I've heard 01:38:46 elliott_: the student finances form was legally unavoidable, but that one I /didn't/ do by hand, I went to the education office and gave them the form in person 01:39:01 yes, but you're talking to someone who thinks that there is no right to convenience 01:39:24 quintopia: I suspect you don't think there's a right to many things that there are rights for. 01:39:27 ais523: it was perfectly avoidable, just don't be a student 01:39:30 they were a little surprised that I'd bothered, but the post service is a bit unreliable here 01:39:31 elliott_: well, OK 01:39:46 my parents suggested the census is possibly post- and Internet-only, I have to look that one up 01:39:53 furthermore, there is no such thing as unalienable rights... 01:39:58 ais523: basically as far as I'm concerned, a right to avoid the internet is unnecessary; it's already the easiest way, by far, to do things, and if you want to be stubborn I don't really think society has a right to make your crusade easy 01:40:04 but you can always become a hermit, I suppose 01:40:05 any right can be taken away in the wrong situation 01:41:02 but you're probably right that there are things others consider human rights that i don't 01:41:28 yes. are you planning to try and gain political power anywhere, and if so, where? 01:41:31 and when? 01:42:08 no, but if i do, i'll make sure you don't hear about it 01:42:33 so voting against you is another right you don't believe in 01:42:55 bleh, it's hard to find the exact rules for census replies, as they aren't in law; there are just laws allowing the rules to be made (by the Chancellor of the Exchequer with parlimentary approval) 01:43:07 eh, if i'm gonna get anything worthwhile done, i might as well dispatch with democracy right off the bat 01:43:10 This all reminds me that the Special Rapporteur to the UN officially recommended that Internet access be considered a basic human right. 01:43:13 Wikipedia implies that it was Internet-or-post only, though 01:43:33 evincar: governments will find loopholes in that 01:43:45 like only allowing access to government approved websites at libraries 01:44:13 evincar: umm, I was just talking about that 01:44:18 ais523: Of course, but it is still kinda cool that *something* has made it into the lore of a group that's that high-profile. 01:44:23 quintopia: see, the thing is, I don't even know that you're joking. 01:44:26 evincar: that's how all this started 01:44:28 If not actually very useful. :P 01:44:33 well, I was talking about the internet being a right 01:44:35 elliott_: Ah, was briefly away. 01:44:40 I don't really care about a gesture like that that will be completely ignored 01:44:42 elliott_: aha, I found a loophole: people who don't have addresses (like the homeless and travelers) were given the forms by hand, and handed them back in person 01:44:44 IIRC France recognised the internet as a right though 01:44:46 and Finland are? 01:44:47 I forget 01:44:59 -!- bsmntbombdood has joined. 01:44:59 ais523: they're just not hermit enough 01:45:11 actually, dying is the easiest way to avoid forms 01:45:18 elliott_: if i become dictator of a small island nation, i will wholeheartedly support your right not to live there. 01:46:21 also, 2011 was the first year you even could do the census online 01:46:49 hmm, I conclude that the requirement to respond to official posted documents, maybe including reply by prepaid post, is incurred by having your own address 01:46:58 notably, with multiple people in a house, only one of them has to reply to the census 01:47:03 listing the information of the others 01:50:11 edit: Actually, what would be best is to tell yourself to buy Cisco and sell it at the height of the dot-com bubble. Then use the proceeds to buy Apple immediately. You'd be looking well over a 1,000,000% return there. 01:50:15 * elliott_ writes down 01:50:18 actually, dying is the easiest way to avoid forms 01:50:23 disappointed nobody addquoted this 01:50:38 elliott_, it isn't very funny 01:50:45 dying's easy, eh? 01:50:57 Vorpal: said Vorpal 01:52:07 elliott_: I was going to respond to it, but it's too simple to be very entertaining. :P 01:52:49 Honestly, I'm way less afraid of death than I am of others I know dying. 01:53:20 I don't like meeting people that are significantly older than me because I have a reasonable assurance that they'll be dead within my lifetime. 01:54:01 "There tends to be a pretty direct correspondence between "GHC features" and "papers listing SPJ as an author"." 01:54:13 evincar: I take it you dislike meeting your parents 01:54:15 elliott_: The man is a machine. 01:54:27 Also I never technically met them. 01:54:33 Because of how babies' memories work. 01:54:59 Also because of how mating works. 01:55:09 poor babies 01:55:12 poor mating 01:56:25 -!- copumpkin has quit (Ping timeout: 258 seconds). 01:56:50 -!- copumpkin has joined. 01:57:28 NB: My parents aren't dead or missing. They're right here in the room with me at the moment. 01:57:35 (Thought I'd clarify.) 01:57:45 hi evincar's parents 01:57:58 They're currently watching a Netflix progress bar. 01:58:05 exciting 01:58:20 why'd you even need to pay for movies if the progress bar is that interesting? 01:58:49 to get the progress bar of course 01:59:20 ais523: Beats me. The damn thing doesn't even move very fast. You could replace it with a photo of said bar, stuck terminally at just over 50% to give the illusion of progress. 01:59:37 monqy: there is some logic to that 01:59:49 would videoing the progress bar and sending the video to someone else count as movie piracy? 02:00:56 -!- cheater_ has quit (Ping timeout: 255 seconds). 02:01:23 heh 02:03:58 Internet should not be considered a basic right. A lot of people don't even know much about internet. 02:04:37 zzo38: Free speech should not be considered a basic right. A lot of people don't even know about free speech. 02:04:59 INTERCAL should not be considered a basic right. A lot of people don't even know about INTERCAL. 02:05:34 No free speech should be considered. Whether or not you know about it is not the point. I was simply mentioning it. INTERCAL is not a basic right either. However, note that some thing might be "derived" rights I suppose in certain circumstances, maybe..... 02:08:10 -!- madbr has quit (Read error: Connection reset by peer). 02:09:42 zzo38: My point is that many people not knowing (much) about a right isn't justification for not considering it a right. 02:09:50 In case that wasn't obvious. 02:10:15 evincar: I actually happen to agree with you. Free speech is a right. 02:10:21 Even if people don't know 02:10:31 Besides, the internet helps promote globalism and fight xenophobia, which is a primary tool in causing unnecessary wars. 02:10:34 If some people don't want free speech they can be quiet 02:14:46 -!- aloril has quit (*.net *.split). 02:15:29 -!- cheater_ has joined. 02:15:34 -!- madbr has joined. 02:15:36 -!- madbr has quit (Write error: Connection reset by peer). 02:15:36 evincar: I do agree that internet can help good thing, so can other thing; people can be have a computer, if they have computer, can get internet connection, etc. However, in my opinion it should not be considered a *basic* right. 02:17:22 -!- aloril has joined. 02:21:07 -!- BeholdMyGlory has joined. 02:22:49 -!- madbr has joined. 02:24:15 -!- madbr has quit (Read error: Connection reset by peer). 02:26:54 ais523: So I finally decided to do the obvious and pursue a doctorate in computer science. 02:27:16 evincar: I'm pursuing it too, and think I have something of a head start 02:27:25 I don't know if you were one of the people who was privy to my school troubles a few months back. 02:27:28 I hope there's enough for all of us when we catch it 02:27:36 also, I don't remember that, so I guess I wasn't 02:27:40 or that I have a bad memory 02:27:58 Meh. Long story short, school sucks as usual for people like me. 02:29:05 what nationality are you? and what do you mean by "school"? the word refers to slightly different educational institutions in different countries 02:29:17 Specifically, the fact that I'm skilled and consequently have a huge sense of entitlement, I'm a maverick who can't stand working with others, I don't care about classes that don't teach me anything, etc., etc. 02:29:36 Uh, American, college. Rochester Institute of Technology, specifically. 02:29:46 I'm entering my fourth year. 02:30:00 is there anyone who self-identifies as a maverick who isn't a huge egotist, i ask this devoid of any context 02:30:16 elliott_: I'm not sure 02:30:32 although people who self-identify as mavericks are split upon whether they believe themselevs to be huge egotists, I imagine 02:30:34 *themselves 02:31:21 -!- madbr has joined. 02:31:46 elliott_: I am a huge egotist, but I'm also demonstrably a maverick. I really don't work well with others and I don't think like most of the people around me. 02:32:24 you'll need to work with others occasionally even in a PhD 02:32:30 I know I've had to 02:32:38 part of the problem is finding a good supervisor who fits you well 02:32:41 Then again, saying I'm an egotist probably calls into question whether I actually am, according to elliott_ logic. 02:32:52 maverick to me has connotations of being a brilliant jerk 02:32:56 which is a questionable self-identification 02:33:32 ais523: Well, I have a good advisor and someone I could work with, and hopefully none of us would find any of the others insufferable jerks. 02:33:52 that's a good start 02:33:53 elliott_: I'm using it in its literal sense of an unorthodox person. 02:33:55 do you have a thesis, too? 02:33:59 It's mostly that I'm contrary. 02:34:10 as in, something to study towards? 02:34:12 Especially in the face of what I percieve to be arbitrary authority. 02:34:25 meh, you're not that unorthodox if you've managed three years of university 02:34:30 either you or your supervisor needs to come up with one 02:34:35 ais523: Oh yeah, I'm interested in dependent typing for imperative languages. 02:34:47 OK, that's possibly niche enough to work 02:34:48 There's more to it than that, but that's the gist. 02:34:48 now there's a terrible idea 02:34:59 elliott_: I expect you're going to tell me why. 02:35:12 probably not, but it seems like adding any kind of mutability breaks the type system immediately 02:35:17 although computer scientists will probably push you into doing it for ML because it's about the most imperative they're willing to consider 02:35:19 without encapsulating it somehow 02:35:21 which stops it being imperative 02:35:27 elliott_: that's what makes it an interesting problem 02:35:36 also, imperative languages are a bad idea in general, being a subset of functional ones 02:35:40 and leaving out the most expressive parts 02:35:52 ais523: well, I'd question whether the result could be called dependently-typed. or maybe imperative. 02:36:05 There are imperative languages out there with rudimentary dependent type systems, but they're very "researchy" and I want to make something more accessible. 02:36:27 Because I consider dependent typing too useful to frame in a language that scares real programmers off. 02:36:29 "I'm going to do a PhD in taking some research and making it friendly to the masses" 02:36:39 evincar: by real programmers, you mean bad programmers, right? 02:36:46 (right) 02:36:47 elliott_: Yes. 02:36:49 do you mean real programmers as in Mel? 02:36:59 or as in undergraduate Java users? 02:37:22 evincar: so you've chosen academia as the vehicle to make a piece of academic research accessible to idiots who dismiss anything from academia as useless? 02:37:23 ais523: No, I mean average programmers, the everyday variety. 02:37:24 lemme know how that goes 02:37:26 http://www.reddit.com/r/DebateReligion/comments/j2d1x/to_all_religion_vs_morality_an_experimental/ Oh come on, I'd have to argue the viewpoint I agree with? That's boring 02:37:32 who the fuck is an average programmer 02:37:45 Sgeo_: the mere existence of /r/DebateReligion worries me 02:37:47 is it someone who has to use java anyway because they're writing a CRUD database interface and it isn't up to them 02:37:56 elliott_: Let me know how else to get funding to make what I want. 02:38:00 it's like it's a honey pot reddit designed to contain trolls 02:38:02 nobody can give a satisfactory definition of average programmer that doesn't preclude them choosing the tools 02:38:13 evincar: what funding do you need beyond enough to live? 02:38:18 typing doesn't cost money 02:38:53 ais523: it's terrible, it has little tags so you can assure people that you don't REALLY think this, you're just explaining the other side 02:39:05 haha, beautiful 02:39:06 elliott_: That is the amount of funding that I need. If I get a job, I will have money. Quite a bit, in fact. But I won't have as much time, and time is far more important to me than money. 02:39:13 actually implemented in, or just conventional character sequences? 02:39:18 ais523: with CSS formatting 02:39:22 by conventional, I mean "have a meaning by convention" 02:39:23 elliott_: haha 02:39:45 ais523: "now debates will have much fewer personal insults because we bring your personal views into the discussion!" 02:39:52 evincar: I have a job as well as the PhD, 25%/75% 02:39:57 evincar: so how does this imperative dependent typing exactly work 02:40:14 elliott_: I think it's so that you can persuade people who share your personal viewpoint that you aren't betraying them 02:40:20 and how long will it take you to realise that the "average programmer" can't actually choose to use your language 02:40:29 ais523: yep, so it makes debates personal 02:40:36 elliott_: never ask a PhD student something directly on topic to the subject of their PhD 02:40:42 [](/da)are playing devil's advocate 02:40:42 [](/nmv)are giving information that does not agree with your personal views 02:40:44 the answer will continue for years and you won't understand it 02:40:46 Christianity is a religion. [NMV] 02:40:50 ais523: he's not a Ph.D. student 02:40:56 not yet, I suppose 02:41:02 so you might have a chance at getting out alive 02:41:25 ais523: my secret weapon is knowing I'm the only right-thinking person in any discussion 02:41:54 elliott_: but sometimes you change your mind as the result of a discussion 02:42:33 ais523: yes, but only if it's with you 02:42:35 :-P 02:42:49 ais523: anyway, that just means it took a while for my rightness to kick in 02:42:56 elliott_: The simplest way to explain it is that the type system is a complete, purely functional, lazy language with no mutability, and the value system is an imperative, eager one with mutability. 02:43:12 wow, an image on prog21; I forgot it existed in the same universe as HTML pages with images on them 02:43:24 evincar: umm, what dependently typed languages do you know, so I can express what I'm about to 02:43:38 elliott_: Only Agda. 02:43:41 please don't say none, the force of my facepalm will cause actual devastation to many north-eastern English populations 02:43:49 evincar: ugh 02:43:54 elliott_: you're going to shout at me now for not knowing what prog21 is 02:43:54 Just wing it. 02:43:58 evincar: can you learn Coq so that I can talk to you without bringing up my character map? 02:44:27 ais523: Programming in the 21st Century; it's a Good Blog About Programming(tm) 02:44:30 elliott_: I may end up knowing more Agda than Coq because I'm apparently to work with an Agda fanatic 02:44:40 ais523: you have one more not knowing what prog21 is, then the shouting begins 02:44:45 elliott_: I can pick up what's relevant to the discussion. 02:44:46 and that has a tendency to rub off on you 02:44:57 but then, I doubt you'd be surprised at me not knowing what X is for more or less any X 02:45:02 ais523: you'll hate Agda, I suspect 02:45:11 and even when I do know what the X is, I often don't know what it's called 02:45:15 because it uses Unicode everywhere 02:45:18 I find it difficult to take a language seriously whose name is "cock". 02:45:20 even for basic syntax 02:45:28 evincar: you realise Agda means that too? 02:45:31 elliott_: that seems to be to do with the libraries not the lang itself, but fair enough 02:45:50 I think it's a mutation of Swedish "rooster" or something 02:45:51 Unicode everywhere is not that problematic, the difficulty is characters-not-on-my-keyboard everywhere 02:45:52 because of Coq 02:46:03 ais523: umm, unless you consider the function arrow the library 02:46:14 oh, haha, it's not ->? 02:46:18 ais523: it's → 02:46:26 elliott_: I didn't know that. But I stand by it. I don't take Agda seriously. :P 02:46:27 ais523: and it uses a two-colon char instead of :: 02:46:27 anyway, → is on my keyboard 02:46:34 ais523: also forall 02:46:40 → is on my compose key... 02:46:41 also lambda 02:46:51 it comes with an emacs mode, though, so you can say \to for → 02:46:53 and the like 02:46:54 but still 02:47:00 I know I have to keep explaining what all the backslashes mean in my ICA programs 02:47:08 because I'm using \ for lambda Haskell-style 02:47:15 (but \a.b not \a -> b) 02:47:16 evincar: anyway 02:48:09 evincar: forall A (xs:List A), is_empty xs -> forall (x:A), ~(list_elem x xs) 02:48:13 now if we say 02:48:21 hmm wait 02:48:25 evincar: vacuous_empty_list : forall A (xs:List A), is_empty xs -> forall (x:A), ~(list_elem x xs) 02:48:26 now if we say 02:48:29 xs := empty_list; 02:48:32 Coq is french for rooster 02:48:34 proof := vacuous_empty_list xs; 02:48:44 insert 9 xs; 02:48:52 ermm, list here is mutable 02:49:03 evincar: ...then we can prove ~True, since (list_elem 9 xs) 02:49:49 \to is also the Plain TeX (and maybe also LaTeX and ConTeXt) command for the right arrow in math mode, too 02:50:21 evincar: no? 02:50:46 elliott_: You're thinking immutably. In my language, a mutating operation of any kind may change type as well as value. 02:50:49 evincar: And if you can't prove that the vacuous property on all elements of an empty (mutable) list, then you can't prove almost anything about mutable structures 02:51:09 Which means that you just have... a functional language where an IO monad is baked in for no reason 02:51:18 zzo38: I think \rightarrow is more common 02:51:27 or maybe it's just a case of me not knowing the LaTeX for something 02:51:29 Yes \rightarrow also does that. 02:51:41 I used to actually write $a^{\prime}$ rather than $a'$ 02:51:44 ais523: yep, but \to is quicker to type in emacs 02:51:46 because I didn't know of the abbreviation 02:51:51 and those aren't identical AFAIK 02:51:59 no, but they're close enough 02:52:07 and the latter is correct 02:52:08 \to and \rightarrow are identical commands; I just checked. 02:52:13 And ' in math mode is a prime. 02:52:18 evincar: Because I'm sure you can encode mutable variables that can change type upon mutation in Coq 02:52:29 And then build a mutable list with that 02:52:37 Since, math code 0 means treat as an active character in math mode. 02:52:46 evincar: Also: How do you avoid this? 02:52:49 oh no, I think evincar's trying to add dependent typing to Visual Basic 02:52:55 So, ' has some special macro to check how many prime it is. 02:52:58 evincar: oops : _|_; oops = while true {} 02:53:09 elliott_: But of course the point is that mutability is only there if you want it, not encouraged. Values and types are both immutable by default, and there are significant gains to going with the flow. 02:53:12 (the first imperative language I could think of offhand with a Variant type) 02:53:23 Since you can do more than one prime, but ^{\prime} multiple times doesn't work. 02:53:25 evincar: OK, so why is the language imperative? 02:53:42 (Really I think it should have been designed so that it works; but it doesn't.) 02:53:44 ais523: Ugh. Don't get me started on variants. 02:53:48 evincar: You can encode such mutable variables in any functional, dependently-typed language 02:53:55 evincar: do you know of the standard formalization of imperative languages in computer science? 02:54:02 evincar: So IDGI. 02:54:05 -!- TeruFSX has joined. 02:54:06 elliott_: The point isn't purity, though. It's utility and accessibility. 02:54:11 "the simple imperative language" is the usual name 02:54:20 evincar: FFS, the IO monad is impure. 02:54:35 Do you think THE ROCKET'S TRAP is a stupid card and ROCKET'S SNEAK ATTACK is much better? 02:54:37 You're basically choosing to make the language more complicated because it lets you call it "imperative" and get backs on the back from idiots who are afraid of lambdas. 02:54:42 elliott_: I think it can be implemented in a pure way, given the way laziness works 02:55:15 evincar: The interesting part is a dependently-typed language where the values can fail to terminate without making the type system unsound. 02:55:15 elliott_: also, would you consider ICA imperative? 02:55:29 evincar: Don't burden it with something you can encode, with no loss at all, into a pure version. 02:55:31 it has lots of lambdas, and uses a Y-like fixing operator for recursion, but it also has if, while, and assignable variables 02:55:42 (although they have fixed types) 02:55:50 evincar: There is literally no advantage of baking mutable variables in, especially if there are proving-related gains to using immutable values. 02:56:07 But lambdas is very useful things in many programming languages, whether functional or imperative 02:56:18 ais523: imperative is practically impossible to define; it's a non-compositional, impure language 02:56:19 zzo: really? 02:56:25 elliott_: fair enough 02:56:26 ais523: but only the IO is non-compositional 02:56:31 ais523: OTOH, in ICA, I suspect IO is rather a lot of the program 02:56:44 madbr: Yes, sometimes. 02:56:52 elliott_: Why do you think I want dependent typing for its proving capabilities? I simply think it's a useful abstraction for how to organise a type system. 02:57:08 atm, the way IO works is that the program is given a function as argument, which, when forced, takes a number as argument and outputs it 02:57:14 elliott_: And making an imperative language with a functional type system burdens neither. 02:57:17 and there's no input, but it could be implemented in an analogous way 02:57:20 There's a false dichotomy here. 02:57:39 the language is about as strict as call-by-name gets, which is still pretty lazy 02:57:43 -!- Kerber0s has joined. 02:57:50 Is it ever the case in Haskell sometimes someone will write a program and compile it but what the program does is unimportant, only whether it will compile successfully? 02:58:03 zzo38: people normally use Coq or Agda for that 02:58:09 Or in any other programming language? 02:58:31 evincar: Unless you can respond to my true statement that your language would lose absolutely nothing from implementing mutable variables inside the language itself and not having them as a burdensome axiom, I can't continue. 02:58:36 in fact, I was wondering why my coworker was bothering to implement Agda at all 02:58:41 I thought programming was more for many-to-many problems, rather than many-to-few 02:59:01 elliott_: actually, there are advantages to having mutable variables as an axiom, but I can't remember offhand what they are 02:59:16 but there's some technical advantage involved 02:59:23 probably in operational semantics 02:59:32 -!- Kerber0s has left. 02:59:51 whether this is relevant at all in evincar's situation, I don't know 02:59:51 ais523: the burden is on evincar to tell me why baking them in as an axiom that introduces unchecked side-effects is beneficial 02:59:58 elliott_: The language wouldn't lose anything, but it wouldn't gain anything either. If a programmer wants to implement a function with local mutable variables because it's the simplest way for the problem to be decomposed, they can go for it. 03:00:19 evincar: You can do that without making it unchecked! You can do that without making it an axiom! 03:00:30 evincar: I think you're missing elliott_'s point, which is asking whether mutable variables can more easily be implemented within the language itself rather than as part of it 03:00:34 elliott_: And a pure function can do all the mutation it wants to locals and still be referentially transparent. 03:00:41 evincar: have you ever heard of ST? 03:00:43 e.g. like State in Haskell 03:00:43 that's EXACTLY that 03:01:18 You are being a broken record; "oh, it's nice to use mutable variables sometimes in localised parts of the program" is such a fucking common argument against "functional languages" vs. "imperative languages" but it's utter rubbish; functional languages _have those things_, the only difference is that imperative languages have unchecked IO 03:01:32 elliott_: you might be interested in how variables work in ICA, they're referentially transparent because there's no way to return the equivalent-of-address of a variable from a function (because call-by-name), and are scoped 03:01:41 and that cannot possibly be an advantage, because it is a subset that _omits the most expressive parts of a language_ 03:01:57 ais523: heh 03:02:19 as in, you can write a function of type, say, exp->var just fine, but what happens is that each time you try to access the variable it asks for the matching expression, then carries out whatever operation you were trying to do to the variable in a lazy way 03:02:34 elliott_: So if I were to say that I'm going to implement my nominally imperative language in a purely functional fashion, such that mutating operations are emulated, what does that gain me? 03:02:55 elliott_: Other than complicating the implementation. 03:02:58 and you can't achieve the same thing with equivalent-of-ST/State, incidentally, because it wouldn't handle parallel computation correctly 03:03:24 there's no way in a monad to carry out two monad actions in that monad simultaneously, in general 03:03:35 evincar: Question is dishonest; there is no "emulation" going on, and you have already told me enough to know that your language is not nominally imperative; and it cannot complicate implementation, because the function arrows, etc. that you need for a dependently-typed system like Agda already involve you implementing a functional language, so it can only simplify. 03:04:13 new a in (a := 1 || a:= 2); print a 03:04:17 umm, that's wrong 03:04:18 new a in (a := 1 || a:= 2); print !a 03:04:27 always remember to dereference your variables, folks! 03:04:42 I don't think that translates into Haskell at all 03:04:52 what is that 03:05:01 so that's one potential use for evincar's language, assuming it works 03:05:13 madbr: declare a variable a, assign 1 and 2 simultaneously to it, print the resulting value 03:05:19 which will be either 1 or 2, based on timing 03:05:31 || means parallel here, not or 03:05:38 mhm 03:05:57 (which is | because C operators have too much of a hold on the world's conciousness by now) 03:06:11 eh 03:06:15 ais523: so you're breaking it by being unlike C? 03:06:19 or do you actually use bitwise or in C :-) 03:06:24 ais523: "||" makes so much more visual sense for "parallel". :( 03:06:24 elliott_: heh 03:06:27 well, booleans are one-bit values 03:06:37 so logical and bitwise or are the same thing 03:06:50 ais523: Now *that* sounds like Basic. 03:06:52 there's no autocasting of >1-bit integers to booleans, you have to manually compare to 0 03:06:53 (which is | because C operators have too much of a hold on the world's conciousness by now) 03:06:56 I still don't understand this 03:07:07 elliott_: I mean, I couldn't live with having or as anything but | and || 03:07:11 and || was already taken 03:07:19 xor and and are ^ and & 03:07:52 ais523: quick, what's gcd(0,0) 03:07:59 elliott_: I don't know 03:08:05 I assume +INF 03:08:16 ais523: Euclid's algorithm says 0 03:08:26 it couldn't really say anything else, could it? 03:08:42 * elliott_ says because of http://www.haskell.org/pipermail/libraries/2011-June/016450.html 03:08:46 evincar: very well 03:09:03 CWEB also uses | to include C codes in text, the reason is that WEB uses it for Pascal codes in text, because | is not used in Pascal, and then they put the same thing for C and sometimes it doesn't work in case you want to use "or" in C codes in text. But you can still do in other ways. Even many other programming language including Javascript, AWK, etc also uses || for logical or 03:09:03 lcm(0,0) is uncontroversially 0, and gcd(a,b)*lcm(a,b) normally equals a*b 03:09:07 which gives further evidence for +INF 03:09:28 ais523: umm, it does? 03:09:30 that suggests 0 to me 03:09:34 oh, right 03:09:43 Yeah, was gonna say, no it does not. 03:09:44 wait, no, err, I'm confused 03:09:46 it doesn't suggest anything 03:09:52 it sets it equal to 0/0 03:09:56 evincar: I take it I should stop expecting a response 03:09:59 which is not a useful thing to do 03:10:08 ais523: lcm(0,0) = 0; lcm(0,0)*gcd(0,0) = 0*0 = 0 03:10:09 for some reason I calculated it as 1/0 03:10:14 so gcd(0,0) can be anything 03:10:15 elliott_: I'm losing track of what the current attack is. 03:10:21 evincar: "Attack"? Seriously? 03:10:31 yep, it doesn't force any particular value on gcd(0,0) 03:10:41 elliott_: Your style of conversation is notoriously aggressive. ;) 03:10:42 elliott_: actually, when your PhD is actually marked, the final stage is a viva 03:10:55 where you have to sit in a group with a bunch of professors who try to attack your thesis, and you have to defend it 03:11:07 and you pass if they couldn't invalidate your last four years of work 03:11:11 evincar: How am I supposed to respond to a "when-did-you-stop-beating-your-wife" question aside from explaining that it's dishonest? I'm a bit exasperated, I admit, but that's mostly because it's annoying to see someone who knows Agda spout what is essentially the party line on anti-functionalism. 03:11:15 (they mark the written part first, I think) 03:11:18 elliott_: So if I were to say that I'm going to implement my nominally imperative language in a purely functional fashion, such that mutating operations are emulated, what does that gain me? 03:11:18 elliott_: Other than complicating the implementation. 03:11:18 evincar: Question is dishonest; there is no "emulation" going on, and you have already told me enough to know that your language is not nominally imperative; and it cannot complicate implementation, because the function arrows, etc. that you need for a dependently-typed system like Agda already involve you implementing a functional language, so it can only simplify. 03:11:20 is the latest context. 03:11:23 "Attack"? Yes it is attack. Now you are playing pokemon card but you forgot which attack you want, in case there is 2 attack or in case you want to pass even if you can attack 03:11:27 ais523: I know 03:11:40 zzo38: it's kind-of rare to pass in that game 03:11:50 although I can just-about imagine situations where it might be useful 03:11:52 ais523: See also http://www.mcsweeneys.net/articles/faq-the-snake-fight-portion-of-your-thesis-defense 03:12:00 (you probably won't click that, but the URL is funny enough) 03:12:13 ais523: Actually I find it very useful to pass in many situations 03:12:19 elliott_: I did click it, in case it was useful 03:12:24 ais523: haha 03:12:26 also, I'd hate to have you marking my PhD 03:12:42 ais523: I'm only angry on the internet 03:13:00 elliott_: I do consider it emulation. Just like I can write an interpreter for an imperative language with mutating operations in a language without mutating operations, so too can I write an interpreter for a language with only immutable values on hardware that is fundamentally (though not trivially) imperative. 03:13:28 evincar: If you think your hardware follows a fundamental ordered imperative model, you're stuck in the 90s 03:13:29 hmm, it makes a decent metaphor even if it claims not to be 03:13:33 it _emulates_ one 03:13:35 elliott_: That aside, I'll ultimately go with whatever implementation strategy seems simplest and best. Ideally the language will be small and implemented largely in terms of itself. 03:13:55 elliott_: hardware doesn't follow a functional model either, admittedly 03:13:59 ais523: the part about fighting a snake instead of actually writing a thesis is the best 03:14:02 ais523: Of course it doesn't 03:14:05 look at Checkout if you want to know what it actually does 03:14:09 elliott_: I don't. That's why I qualified my statement a bit. :P 03:14:10 But who the hell picks programming model based on their hardware model 03:14:19 elliott_: That aside, I'll ultimately go with whatever implementation strategy seems simplest and best. Ideally the language will be small and implemented largely in terms of itself. 03:14:28 elliott_: me, but admittedly that's a special case 03:14:30 and only sometimes 03:14:33 elliott: yeah but it emulates one for a good reason 03:14:35 evincar: I don't think you really want this, because you weren't interested in a change to simplify the language incredibly and make implementing it easier, and have it defined more in itself than it was 03:14:50 elliott_: I'm not arguing that it's a good idea to pick a programming model based on the hardware. In fact, I'd argue the opposite so long as the hardware doesn't serve the abstractions of the problem domain perfectly. 03:15:02 madbr: please, talking to both evincar and ais523 at once is hard enough, I can't have an anti-functionalism argument with someone whose positions I don't even know at the same time 03:15:07 elliott_: part of the reason I haven't started writing Anarchy yet is that I'd really want to implement it in itself 03:15:17 elliott_: and I'm not even disagreeing with you! 03:15:24 mostly, at least 03:15:34 elliott_: I'm just reserving judgement, I guess. 03:15:38 I want to write Democracy. How any function works is determined by all coders of that language voting on its behaviour 03:15:49 Patashu: see: php 03:15:52 LOL 03:16:08 elliott_: I am trying to make a language that's highly usable and easy to understand. 03:16:09 elliott_: that's a worryingly accurate joke 03:16:23 http://www.econugenics.com/t-our-products.aspx?affiliateID=10100 <-- I read this as "neoEugenics" rather than "ecoNugenics" 03:16:28 thought you all should know 03:16:30 elliott_: Not because I'm pursuing some misguided "non-programmers should be able to program" goal. 03:16:42 evincar: Easy to understand for who 03:16:48 evincar: it sounds like you're pursuing some misguided "programmers should be able to program" goal 03:16:58 But because I don't like using languages that make me conform to them rather than the other way around. 03:17:01 evincar: And really: understanding dependent type systems is not easy for any "average imperative programmer". 03:17:17 You can't go from Java to that without some resistance. That's just a fact. 03:17:36 ideally, a dependent type system would not require any input from the programmer at all 03:17:44 and just give you really good warning messages 03:17:52 elliott_: Sure, but you can tease people in with nifty examples. 03:18:07 like "this branch of this if statement is unreachable because the variable never gets the number 4", or whatever 03:18:08 evincar: Anyway if you're a maverick who dislikes working for others and rejects false authority why the hell are you devoting yourself to the false authority of the Average Programmer(tm), why the hell are you watering down your language so that it's easy for the mythical Average Programmer(tm)??? 03:18:13 but I suspect that isn't what evincar isn't aiming for 03:18:36 err, s/n't(.*)n't/n't$1/ 03:18:37 elliott_: Even trivial ones like defining sequence joining as `+`[a:T[n], b:T[m]]:T[n+m]={...} 03:18:46 there's a shorter way to write that regex, but I forget what it is to start with 03:18:57 evincar: that's the least enticing example ever 03:19:05 you're not winning any Java programmers with that syntax, dude 03:19:08 aha 03:19:19 s/.*\Kn't// 03:19:23 thanks, man perlre 03:19:51 I must say I'm agreeing with elliott_ here 03:19:54 evincar: is the {...} literal, or representing omitted code? 03:20:13 ais523: I think parametricity actually guarantees that function to only have one implementation 03:20:13 (shut up this is #esoteric I have to ask that sort of question) 03:20:25 ais523: so a Sufficiently Smart Compiler could actually accept {...} there :-P 03:20:26 oh wait no 03:20:27 elliott_: The majority of programmers are not the best programmers out there. I think doing a public service by making power available (conceptually) to people isn't submitting to authority at all, it's doing what all people ought. 03:20:27 then why do you need to write the implementation at all? 03:20:30 hmm wait yes 03:20:35 although it needs a type variable 03:20:35 also, it could reverse the lists before joining them, couldn't it? 03:20:40 ais523: oh, right 03:20:42 and still obey the type signature? 03:20:43 damn 03:20:48 ais523: It's a placeholder for an implementation, but it's probably unnecessary in that example. 03:20:50 evincar: so you're making a bad language because of socialism, OK 03:21:04 (bad language = not as good a language as it could be) 03:21:28 elliott_: do you live in a country where you can make arbitrary things bad by accusing them of being socialism? 03:21:31 elliott_: In your opinion. And I am a socialist, but that's not really the point. 03:21:42 evincar: that's literally what you just said 03:21:44 ais523: Nope 03:21:45 elliott_: I simply like making stuff that helps people make stuff, because I like making stuff. 03:21:54 (also, does that actually /work/ in the US? might be the easiest way to win arguments ever) 03:21:59 ais523: but I do think "for the good of the people" is the stupidest reason to make a language I can think of 03:22:17 elliott_: there have to be even stupider reasons, surely? 03:22:25 ais523: And yeah, you could add more type information to make it more correct. :P 03:22:30 evincar: So you'd make a thing that's worse than another thing you could also make, because more closed-minded idiots would like it, and fewer open-minded clever people would like it? 03:22:43 If yes, your priorities need checking. 03:22:56 elliott_: well, I care somewhat about people being able to use my stuff as well 03:23:12 ais523: not what I said 03:23:14 but I'm doing it along the lines of "this language is pretty easy to use anyway, and you can always compile into it) 03:23:21 err, s/\)/"/ 03:23:29 elliott_: You're assuming that the majority of people are closed-minded idiots, which I challenge. 03:23:34 ais523: presumably, you wouldn't make [generic FPS 999] rather than AceHack just because more people with bad taste would like the former 03:23:35 I wasn't looking at what I was typing and forgot what sort of delimeter I had to close 03:23:37 evincar: Nope. 03:23:43 further evidence that I'm thinking in stack-based form 03:23:53 elliott_: AceHack was actually a response to popular demand 03:24:03 evincar: hey evincar is your language going to have goto 03:24:05 elliott_: "more closed-minded idiots...fewer open-minded clever people..." 03:24:08 and also, there's less competition; probably fewer people would play generic FPS 999 because it would have so much competition 03:24:19 evincar: I'm assuming that the (mythical) Average Programmer who will dismiss a language because it's pure (but not for having a really advanced type system that is a purely-functional language in itself??) is a closed-minded idiot. 03:24:27 Which is true by definition. 03:24:46 elliott_: but mostly, I suppose I just like programming, and producing something that other people like out of that is a useful side-effect 03:25:01 elliott_: won't Average Programmers dismiss languages for not being Java? 03:25:10 evincar: goto is very expressive, you see, and shouldn't an expressive language have it? Average Programmers understand it too! 03:25:10 evincar: let me type something 03:25:16 ais523: yep 03:25:41 evincar: your new PhD thesis: retrofitting dependent typing onto Java 03:25:55 (gah now I can't decide whether that idea is horrible or awesome) 03:25:59 evincar: you want people to learn a purely-functional programming language (which can already encode all the mutability and IO you want, with no loss in convenience or expressivity, which is simpler, has fewer errors because of unchecked non-local side-efects, and which has more language features described in itself rather than primitive) 03:26:07 evincar: PLUS an impure language which doesn't have those advantages 03:26:10 evincar: ...rather than just both. 03:26:12 erm 03:26:14 evincar: ...rather than just the pure one. 03:26:29 Before you say you don't, 03:26:31 yes you do: 03:26:31 elliott_: The simplest way to explain it is that the type system is a complete, purely functional, lazy language with no mutability, and the value system is an imperative, eager one with mutability. 03:26:36 monqy: You could make something that is goto in all appearances, but implemented more sanely. I'm not sure what card you're trying to play. 03:26:55 elliott_: The simplest way to explain it is not necessarily the best way. 03:26:58 Oh, and you know how you said youcould use functions which had local mutable state but didn't leak it outside? Congratulations, now you can't use those functions in types. 03:27:13 With the ST monad, you can, and it acts identically. And it enforces, with the type system, that you don't leak anything out, rather than leaving it up to not making mistakes. 03:27:18 i'm trying to play the demonstrating how it's stupid to add things for the sake of average programmers being expressive with them card 03:27:22 if thats ok with you 03:27:23 elliott_: Besides, the C++ type system is a complete functional language with no mutability. 03:27:32 lol 03:27:46 elliott_: There's an example of my madness working in practice, with a far poorer design. 03:27:53 C++ is also shit 03:27:56 your defence 03:27:57 is C++ 03:28:04 I think that means I've won... 03:28:07 elliott_: It is a language that exists? 03:28:13 That it is. 03:28:15 elliott_: did he ever explain how Average Programmers are supposed to use dependant types? I'm afraid I might have accidentally skipped over it 03:28:21 One of the worse things about Magic Set Editor is they lie. They say it is pure but actually it isn't, because of the random number functions, and the export functions. It is possible to make pure versions of these functions, which can be helpful in some cases. 03:28:22 and that lots of ppl use? 03:28:25 monqy: he's going to entice them with a list append function 03:28:35 monqy: I did not. 03:28:36 very clever 03:28:41 evincar: just a note, appealing to C++ in programming forums, unless they're dedicated to games or old-fashioned Windows development, will generally make everyone laugh at you 03:28:43 monqy: then they'll just go to their bosses and say "hey let me stop using java, there's this great language in this thesis..." 03:28:48 in fact, it may even Godwin the thread 03:28:50 and the bosses will be all "ok" 03:28:55 ais523: I'm well aware. I try not to touch the thing, honestly. 03:28:58 although it's not quite the same thing 03:29:22 elliott_: okay, well, it doesn't surprise me that there is a language that is more expressive than primitive recursive functions and less expressive than a TM. 03:29:24 zzo38: how do you make a pure version of a random number function? get it to take the seed as argument and return another seed along with the result? 03:29:32 atehwa: right 03:29:41 (note, "you" here = "zzo38") 03:29:45 atehwa: you seemed to imply such a language couldn't express Ackermann, though 03:30:09 elliott_: I was going to write an Ackermann-bounded-automaton as an esolang at one point 03:30:11 but got sidetracked 03:30:13 yes, well, I wasn't aware of such a language. 03:30:20 atehwa: right 03:30:25 monqy: The point of having a dependent type system in an imperative language is merely to offer fine control over the contracts that can be expressed over values, to help enforce program correctness. 03:30:41 evincar: oh, so you do want proving? 03:30:42 ais523: Yes. Or, just add to the seed each time, call it with seed=x+1, seed=x+2, seed=x+3, etc 03:30:46 I thought you just wanted it because it was a good way to organise a type system. 03:30:47 all I remember is that you had a finite number of values to work with and all operations consumed a value, except finitely many times, you could ackermann two values and get that many values 03:30:49 Well... that's what you said. 03:30:50 Make the interface to it pleasant to look at, and the battle is basically won. 03:30:55 zzo38: how do you make a pure version of a random number function? get it to take the seed as argument and return another seed along with the result? 03:30:59 see RandomGen 03:31:05 evincar: creating your language won't make me think it's any more of a good idea. 03:31:20 I do hope you realise how difficult it is to prove type systems correct, though 03:31:20 elliott_: I was interested in the zzo38 answer in particular, I know about, say, RandomRIO 03:31:20 elliott_: Formal correctness, practical correctness, different things. 03:31:23 especially dependent ones 03:31:29 where you have to mingle in the value normalisation proof 03:31:44 elliott_: If you write enough type information to make your program a formal proof, bully. But you don't have to. 03:31:56 evincar: what is practical correctness 03:32:01 elliott_: way easier than it is to prove hardware implementations of type systems correct (in that after compiling to hardware, the thing still types properly and doesn't end up disobeying the protocol) 03:32:03 trust me on this one 03:32:03 elliott_: The damn thing works? 03:32:51 elliott_: Average Programmers, remember 03:33:24 evincar: how does that respond to anything i say 03:33:27 -!- TeruFSX has quit (Ping timeout: 260 seconds). 03:34:31 MSE has a few functions using random, so whatever way is used you can do it. For certain things (not all things), the script can be called with a random "seed" variable and then there are various ways in which you can have it do different random numbers. For export functions, just have them return lists of export records. If the return value is a list it indicates exporting many files 03:34:31 -!- madbr has quit (Read error: Connection reset by peer). 03:38:55 elliott_: And yes, I do realise that type systems aren't simple beasts by any means. 03:39:04 At least not the monster I'm getting myself into a fight with. 03:41:48 -!- madbr has joined. 03:44:46 I love how thoroughly I get pounced on in here. 03:45:11 so uh 03:45:12 Even a fairly casual mention of something is going to provoke intense questioning. 03:45:19 that sequence joining example or whatever it was 03:45:21 what does it mean 03:45:32 monqy: it's just length-indexed vectors 03:46:11 im probably just not getting the syntax 03:46:18 monqy: Yeah, it's nothing exciting. It just says that the result of joining two vectors of lengths m and n is a vector of length m+n. 03:46:31 oh that's the type 03:46:38 I wrote the birdstyle.tex program, it is useful not only for Haskell but can be used with any program that uses Bird style (if any others exists). However, it makes error if the first command in a paragraph is outer command, but you can work around by putting \relax at first 03:47:11 you should totally make the type system imperative too 03:47:44 monqy: You would need an implementation, obviously, but you could put enough information in the type signature to obviate the need for one. 03:47:59 wait 03:48:07 you're actually planning to make it automatically generate functions based on the type? 03:48:09 haha 03:48:19 elliott_: No? 03:48:28 "you could put enough information in the type signature to obviate the need for one" 03:48:37 elliott_: then just add good enough type inference, and you don't need to write anything at all! 03:48:38 "obviate the need for one" is a bit bizarre of a thing to say 03:48:42 elliott_: Yes, because you could express the implementation in the type system, functionally. 03:48:49 (oh please let that be possible in some esolangish way) 03:48:52 evincar: show me an Agda function without any implementation 03:48:57 elliott_: Poor choice of words, that's all. 03:48:58 just defined in the type system 03:49:02 because what you said makes no sense at all 03:49:28 so uh 03:49:39 elliott_: more commonly, Agda functions don't have a return value (or well, they return something that's commonly called ), and exist only to make the thing type 03:49:42 is this thing actually going to infer implementation from the type? 03:49:45 elliott_: There is a functional subset and an imperative subset. You can implement a particular function in a mix of either. 03:49:56 elliott_: The functional subset happens to be the type system. 03:50:11 evincar: that doesn't mean you can define a function and just give it a cool enough type that you can leave out the value 03:50:35 elliott_: Not in those terms, no. 03:50:43 so what are your terms 03:50:50 and not those ones 03:51:16 evincar: how is what you said possible, give me an example of a function where you put enough information in the type system and express the implementation in the type system, functionally, thus obviating the need of an implementation 03:51:35 You can declare a detailed relationship between types, rather than declaring a simple relationship between types that includes an imperative implementation. 03:51:46 In fact you can make any program use Bird style with a simple AWK program: /^> /&&sub(/> /,"") 03:52:01 You could also remove types from the signature entirely and perform no type checking, or perform type checking manually within the imperative part. 03:52:13 evincar: that's not an example 03:52:45 elliott_: I know, I'm just offering more explanation. But what do you want? I'll just be pulling syntax out of my arse. 03:53:05 Do you like AWK? 03:53:19 evincar: wait so you can not only infer implementation from type, but also just bypass type checking? 03:53:29 Do you like AWK programming? 03:53:38 evincar: an example of 03:53:40 evincar: how is what you said possible, give me an example of a function where you put enough information in the type system and express the implementation in the type system, functionally, thus obviating the need of an implementation 03:53:46 monqy: You can't infer implementation from type. You can implement a function as a type relation. 03:53:48 which I have carefully constructed using only quotes from you 03:53:59 evincar: and how does that work? 03:56:59 monqy: The type system is a language in which you can express functions. If I pass 3 and 5 to such a function, I can treat them as "int", I can treat them as ">0", or I can treat them as instances of the types "3" and "5" whose only instances are those values. 03:57:08 I really don't know how to explain it any more clearly. 03:57:21 evincar: subtyping is not in any standard dependently-typed language that I know of 03:57:24 it _vastly_ complicates such things 03:58:03 elliott_: That's why I have a set of fundamental types that have representations, to keep things moderately sane. 03:58:09 what? 03:58:13 elliott_: From there, everything else is relations and predicates. 03:58:28 out of curiosity how much of the literature on dependent typing have you read 03:58:39 elliott_: Some types in the type system have concrete representations, for the sake of sanity. 03:59:10 elliott_: A few papers, not terribly much. 03:59:18 evincar: I think you may need a type system /for/ your type system 03:59:38 nothing you said about fundamental types with representations actually made any sense, but ok 03:59:44 I'm going to go code mcmap 04:00:44 ais523: Maybe so? I hate to bring up C++ again, but templates do distinguish between "typename", "int", etc. as parameters. 04:01:06 Is it a terrible idea to have rudimentary introspection or whatever you want to call it? 04:01:28 you've stopped actually making sense 04:01:46 what are concrete representations, what is a fundamental type, how is your subtyping done, how is this related to introspection, and how is C++ relevant 04:02:30 and pardon my ignorance but what does subtyping have to do with obviating the need of implementing sequence sticktogethering 04:02:45 -!- MSleep has joined. 04:03:49 elliott_: A concrete representation (though there could be a better term for it) would be something naturally serialised in memory. A 32-bit unsigned integer. A 64-bit IEEE-754 float. 04:03:50 -!- madbr has quit (Read error: Connection reset by peer). 04:04:36 elliott_: Fundamental types consist of all such directly representable types, plus their natural extensions such as tuples/arrays. 04:04:50 or do you mean that you can implement sequencesticktogethering in the type system and then magically have it in the object language too? 04:05:14 elliott_: They aren't special except in the sense that they provide a basis from which to derive other types in a finite way. 04:05:23 monqy: I'm not sure what you mean. 04:05:48 evincar: help i'm confused because of what you said about need obviation 04:06:19 monqy: If I write a function "foo" with an implementation but no type signature, no type checking is performed and the implementation is evaluated. 04:06:29 :( 04:07:12 veering on a tangent here but how does foo mingle with typed things then, and how is letting people get away with untyped stuff a good idea 04:07:14 If I write that same function with a type signature but no implementation, it's a declaration of a type relation which may or may not be fully evaluable. If I try to evaluate it, I find out. 04:08:05 If I write both, then type checking and conversion *as well as* evaluation are performed. 04:08:07 mingleingle 04:09:34 monqy: You can say there are basically two classes of types: those you care about and those you don't. If I write a function which takes arguments of any type and returns a value of any type, it's entirely up to the types involved to make sure that the operations performed on their instances are legal. 04:09:46 If they're not, it's just a type error. 04:09:56 Duck-typing. 04:10:01 im dead 04:11:03 and so is this ever a good thing or is it just 04:11:06 -!- madbr has joined. 04:11:11 how is this dependently-typed exactly, i've been making all my statements under the assumption that it was a strongly-typed language with a dependent type system, but it appears you just said dependent because it's a nice word 04:11:12 Average Programmer laziness 04:11:24 oh right and what elliott_ said 04:12:33 elliott_: Types depend on values and other types, and there isn't any real distinction between a type and a value. 04:12:53 except that values can do io and change variables 04:13:36 No, imperative portions can. You can use types imperatively and you can use values declaratively. 04:14:44 ???? 04:14:48 I could easily say x = int; if (y) x = float; z = x(); # Create an instance of whatever x is. 04:15:28 this sounds like a total mess 04:15:34 I agree with elliott_ 04:15:46 it uh 04:16:05 why is mutability a good thing? 04:16:06 why don't you just pick one idea and run with it rather than making a language that gels five thousand concepts together in a way you cannot explain in a satisfactory manner 04:16:09 it just looks like a 04:16:10 huge mess 04:16:31 ?_? 04:16:35 Invent the INTERCAL card game. 04:16:37 what is the easiest way to wipe an ssd so that it is, say, one tenth scrambled/overwritten 04:16:45 in a laptop 04:16:52 elliott_: By five thousand, you mean two? 04:17:02 evincar: nope 04:17:08 oh no there are more than two concepts in there 04:17:13 at least three 04:17:19 and uh 04:17:25 what does the () in x() mean 04:17:26 Also, I'm not explaining myself well because I've been awake for a while. 04:17:34 monqy: Instantiation. 04:17:47 Invent the INTERCAL card game, please. Do you know how? 04:17:48 x contains a type, so you can instantiate that type. 04:18:15 zzo38: It sounds like UNO but with a COME FROM card. 04:18:33 and what does instantiation do 04:18:49 hahaha a 'come from' card 04:18:50 monqy: Produces a value of a given type... 04:19:09 MINGLE: shuffle the deck and the playing field into each other 04:19:20 hmm, surely at least in /this/ channel an INTERCAL discussion can manage to avoid devolving into "hahaha COME FROM" 04:19:50 evincar: It does? I don't know about UNO but maybe figure out how to make something like that, type the rules or whatever else you would do instead. Including, MINGLE card, and so on 04:20:18 evincar: so you just assign z to a value of x? Doesn't it do anything else? 04:20:51 up to now it sounds feasible in like, javascript, no? 04:20:53 evincar: for example, what happens if i then try to, say, z = float(); 04:21:31 evincar: are you conflating type declaration with instantiation? are you asking for trouble? 04:22:56 -!- madbr has quit (Read error: Connection reset by peer). 04:24:26 -!- madbr has joined. 04:24:28 is there a use for bool variable types in non performance related stuff btw? 04:25:16 bool variable types? 04:25:42 bools for performance? 04:25:49 the "bool" type 04:25:51 monqy: Saying z = float() is the same as saying z = or possibly z = 0.0. 04:26:02 is it useful 04:26:13 And given x = float, z = x() is the same as z = float(). 04:26:18 bool is useful 04:26:19 ?_? 04:26:31 you don't need it for performance though 04:26:36 since it's using 1 bit every 32/64 04:26:40 you use it for understanding 04:26:57 then it's syntactic sugar 04:27:04 Everything is syntactic sugar 04:27:06 What's your point 04:27:15 evincar: any reason why you don't declare the types of stuff in one place and then provide them with values (without this uninitialized value nonsense) in another? 04:28:29 then unless your system is performance oriented there's no point to types other than double, strings and agregates/arrays/objects/hashes/etc... of those 04:28:53 you did that with your sequence mush together thing right? put the type over in one place and the value in another? 04:28:57 and I guess functions 04:29:14 rather than initailizing and then reassigning 04:29:16 madbr: If I'm not after performance I can code everything I want in just brainfuck, but I don't because brainfuck is difficult to understand 04:29:19 because ew ew ew e we w e w e we we ew 04:29:22 monqy: It's essentially the same thing though. If I say "x is a float", what value does "x" have before I give it a value? 04:29:25 Similarly, bools are used over ints because bools provide understanding 04:30:01 evincar: it doesn't have one. it's an error to use it before you give it a value. you could even force giving an initial value in the declaration syntax. 04:30:21 patashu: I'm not convinced it's a big gain 04:30:47 not only understanding, but type checking 04:30:54 madbr: what's the point of using structures, let's just use lists 04:31:00 yes that 04:31:02 i don't see the relevance of performance 04:31:10 madbr: in fact, let's just use a brainfuck tape 04:31:11 monqy: Then there's no point to having a declaration. Saying "x = 0.0" or "x = float()" is no more or less clear than "float x = 0.0", and the latter is redundant. 04:31:40 madbr: and why have types at all. just make everything byte arrays. 04:32:27 evincar: the "x = float()" one is just full of bad ideas 04:32:42 monqy: You wouldn't typically do that, of course. 04:32:50 make it illegal 04:32:50 well, there's no point to char and short except for specifically saving RAM and specific arrays 04:32:55 it's just clutter 04:33:05 bool is sugar 04:33:15 madbr: what isn't sugar 04:33:25 sugar makes things sweeter 04:33:28 bool conveys your intentions 04:33:31 madbr: are type systems sugar 04:33:32 "this is a boolean, false or true" 04:33:35 int doesn't convey this 04:33:39 madbr: bool is not an integer in all languages 04:33:40 monqy: Also I fail to see the difference between "float x;" (x is of type float but is either uninitialised or zero) and "x = float();". 04:33:47 in Haskell, False and True are booleans; 0 isn't a boolean 04:34:08 evincar: the former is not what I said at all 04:34:11 wow, you're reminding me that I got into an argument about whether boolean should be sugar for 1-bit integer in my compiler, or a different type 04:34:29 int has no point either except as an array index 04:34:31 I was arguing that people rarely used 1-bit integers for arithmetic purposes, so that they may as well be the same as booleans 04:35:09 monqy: What do you mean, then? What value does an explicit declaration have? 04:35:44 madbr: you realise types exist to make the programmer's life easier, right? 04:35:51 it isn't all about performance, and types don't affect performance at all 04:35:55 well, mostly 04:36:09 madbr: knowing information about what a function wants to receive, and what it returns, is useful. 04:36:16 knowing what type of data a variable is, is useful. 04:36:21 having the compiler tell you when you mix that up, is useful. 04:36:24 bool conveys a useful intention. 04:36:55 What elliott_ said. 04:37:08 in particular, you can have a type like bool or SQLEscapedString to convey an intention, then erase it into int or string respectively after you've done typechecking 04:37:23 but then you could just declare your variable as whateverFlag instead of just whatever 04:37:49 madbr: That's Hungarian, and even its good uses are now frowned upon. 04:37:59 madbr: seriously? 04:38:02 But renaming the variable won't make the compiler (or runtime) catch mistakes 04:38:05 madbr: what advantages does that have over bool? 04:38:08 If you have a type system to check things for you, why rely on convention? 04:38:13 madbr: the compiler doesn't stop you putting the wrong type of value in 04:38:17 I can do int myFlag = 2; but I can't do bool my = 2; 04:38:18 madbr: you have to type Flag each time you use it 04:38:21 instead of taht being encoded in the type 04:38:25 Patashu: you can in C, but that's C's fault 04:38:26 so what, it's a bool 04:38:34 awful eso idea: (good) hungarian notation enforced by the compiler 04:38:35 it's not like you're going to mess that up 04:38:39 elliott ssh! 04:38:44 evincar: it's not that an explicit declaration is good; it's that initializers are bad 04:38:45 madbr: "So what if my system is more painful to use, and causes more errors?" 04:38:47 it's like a good type system, but with annoying boilerplaye enforced for no reason 04:38:51 madbr, you only have approximately 7 slots for short term memory 04:38:56 madbr: Yours has negative advantages over a bool type. 04:38:57 Negative. 04:38:58 You WILL forget things even if you think they're trivial 04:39:02 *boilerplate 04:40:27 eh 04:40:39 madbr: but seriously, so what if you wouldn't mess it up? 04:40:47 your solution is still inferior: more typing. 04:41:04 why be inconsistent, and leave bools able to be messed up, when you wouldn't for a more complicated structure which you /can/ mess up? 04:41:36 monqy: Could you elaborate? If a type is instantiable with no arguments (such as float might be), then why is it bad to instantiate it as such? I know you'd be more likely to say "x = 0.0" than "x = float()", but having the "T()" syntax (or whatever it turns out to be) for instantiation seems wholly innocuous to me. 04:42:22 It's fine for things like list() or dict() since those have a 'natural' state, empty 04:42:24 elliott_: I think we can sum this up as "typing is not a replacement for typing". 04:42:25 What is the 'natural' state of a number? 04:42:29 evincar: (1) bloat (2) reassignment is icky (3) giving something a value but hiding that value is icky (4) weird 04:42:53 evincar: ++... to that one statement, your language is still gross. 04:42:56 elliott_: very minor advantage for boolish ints over bools: you can retrofit a third value onto your booleans without breaking memory layout compatibility 04:42:57 WE ARE STILL AT WAR. 04:43:07 ais523: you have a strange definition of advantage 04:43:21 what's the third value of booleans? 04:43:23 FILE_NOT_FOUND? 04:43:31 Patashu: "not created by the player in a bones file" 04:43:38 Patashu: So you're saying numeric types should not be instantiable without an explicit value. 04:43:41 so you want an enum then 04:43:43 evincar yes 04:43:46 it was how they retrofitted a bugfix onto NetHack without changing the bones file layout 04:44:06 ais aah 04:44:07 Okay, that's fair. It also doesn't play terribly nicely with generic programming, but it's sensible. 04:44:11 so it's like the empty fields in ip packets 04:44:13 future expansion space 04:44:30 Patashu: it's also an awful fix to the problem in general 04:44:33 evincar: why doesn't it 04:44:40 Haskell has plenty of generic libraries, and no "default value" because not every type has a value 04:44:44 and not every type has a sensible default value 04:44:46 if you need future expansion space, add it separately rather than randomly fitting it into booleans and only booleans 04:45:58 oh right (3) on my list of ick should also include something about default values being icky :) 04:46:36 I'm not sure about that 04:46:49 elliott_: Alright, fair enough. I just like zero-initialisation, for immutable values anyway, because, well, you've got to initialise them to something. 04:47:10 not everything has a zero. 04:47:17 evincar: you make initial value explicit 04:47:30 evincar: want 0-initialization? thing = 0. bam. 04:47:35 No, not everything does, but ints and floats do, which is what I'm talking about. :P 04:47:49 why have ints 04:47:52 monqy: And that is what you would do in almost all circumstances. 04:47:55 wouldn't NaN make a more sensible default for floats? 04:48:00 evincar: what about the other ones? 04:48:01 ais: no 04:48:04 everything has a zero 04:48:05 madbr: what, exactly, do you use instead of ints 04:48:06 evincar: why even have syntax for those other ones? 04:48:11 depending on how you define everything 04:48:13 signalling NaN, at that 04:48:16 ais: NaN propagates and turns more values into NaN 04:48:18 so you get an error if you try to use it 04:48:26 madbr: what do you use instead of ints 04:48:26 madbr: that's exactly what you want, isn't it? 04:48:43 VHDL initialises signals to U, which propagates and turns other things into Us 04:48:43 ais: you want to keep NaNs out of your floating point system 04:48:56 madbr: yes, you do, which means that it'd be obvious if you failed to initialise properly 04:49:06 madbr: you want to keep uninitialized values out of your programs 04:49:52 it's like arguing over whether /0 should explode or not I guess 04:50:29 ais: NaNs are also particularly slow to process ofc 04:50:46 just force programmers to supply an initial value 04:50:52 everything solved 04:51:23 half of the time it's going to be 0 04:51:40 then people can make it 0 half the time :) 04:51:53 it's not like it's even more typing than float() 04:51:59 madbr: you don't _want_ to process uninitialised values 04:52:26 true, they could end up being NaNs 04:53:08 umm, as in not explicitly initialised 04:53:15 so signalling NaN is a good default value for a float 04:53:19 so that it complains if you use it 04:54:13 I'm a firm believer in not paying for things you don't use, though. If a programmer wants to create an uninitialised (mutable) value of some type, I think they should be allowed. 04:54:31 then it should be undefined 04:54:40 That counts as initialisation. 04:54:43 rather than 0-initialized or what-have-you 04:54:48 I think normally you either want to initialize to 0, or it doesn't matter cause you're going to overwrite it, or you want to initialize to a specific value and you're going to remember to initialize it 04:54:52 It is undefined in the sense of "could be anything". 04:54:56 yes 04:55:07 It's not undefined in the sense of "this is a special undef value that will trap if you use it". 04:55:16 yes I know 04:55:19 int x; return x // RNG in evincar's language 04:55:24 in my philosophy I want to keep NaNs and other "exploding values" out of my program as much as possible 04:56:02 so I'm not sold on "default to NaN" 04:56:02 madbr: even if it makes them incorrect? 04:56:13 madbr: it would only be NaN if you made an error 04:56:15 madbr: do you prefer programs to fail noisily, or try to recover? 04:56:25 it should be a compile time error to use something not yet initialized 04:56:31 evincar: actually, there are two sorts of NaN, one (which is often unimplemented) does indeed trap if you use it 04:56:34 monqy: how could it be more incorrect than exploding the whole program 04:56:48 Patashu: if so, I hope the compiler's better at inferring it than gcc 04:56:51 madbr: by giving bad values to things that quietly ruin everything 04:56:57 guess they could be NaN in debug and 0 in release 04:57:00 I have to add =0 on declarations quite a bit just because gcc doesn't realise it's always initialised before use 04:57:10 Patashu: you should not be able to create something initialised, it is by definition useless 04:57:11 I know it can't infer it in general, but it could do quite a lot better than it currently does 04:57:16 ais523: I was going to add "...at the language level, of course, not like signalling NaN." 04:57:23 madbr: say, a bad 0 somewhere cleared all your favourite files. wouldn't exploding be better? 04:57:32 But then I was like "nah, no one'll care". 04:57:47 I was talking about signalling NaN 04:58:11 monqy: but exploding will clear the current thing you were working on 100% time 04:58:21 monqy: if it exploded, it'd probably take out not all your files, but the disk they were on, most of the computer, and possibly even some of the table it was resting on 04:58:42 why are we using exploding and not exceptions? 04:59:05 at work they turn off exceptions 04:59:14 wat 04:59:17 is this why you're crazy 04:59:41 -!- lament has quit (Ping timeout: 276 seconds). 04:59:51 patashu: I don't know the reason, but it's probably performance on shoddy Arm platforms 05:00:30 at least use them during development if not during production :o 05:02:12 -!- madbr has quit (Read error: Connection reset by peer). 05:04:21 -!- madbr has joined. 05:04:21 the system they have is based on warnings 05:04:26 the system they have is based on warnings 05:04:42 it sets a global variable to an error code, right? 05:04:47 evincar: on the thing again, I may be confused but, in the case of not assigning a value to something (just declaring it), you're using the var = type() syntax? If that's the case, why use assignment syntax for something that's really just a declaration (not entirely a rhetorical question) 05:04:56 prints to an error console 05:05:09 aah 05:06:19 monqy: No, it'd be something like "v = mutable T()" if you didn't want initialisation. The point of assignment syntax in the general case is that things are immutable by default and everything is single-assignment, so declaration and assignment can be the same thing. 05:06:20 -!- madbr has quit (Read error: Connection reset by peer). 05:06:51 why does everyone think that ignoring exceptions except you print them to stderr / some other error log is at all helpful? 05:06:57 evincar: ok, so in what case would you use the =whatever() syntax? 05:07:20 ais523: Average Programmer 05:07:31 I don't even see why one of those would think it was useful 05:07:35 except that NetBeans does it by default 05:07:36 ais523: because they're bad 05:07:42 err, what 05:07:44 I seem to spend half my life deleting Logger imports 05:07:51 bad netbeans, bad 05:08:05 monqy: If you wanted a default instance of some specific type that's default-constructible (e.g., dict/list) or if you wanted a default instance of some unknown type that is. 05:08:08 elliott_: NetBeans can surround something with a try/catch block for every exception it could throw, which is useful 05:08:12 as often you'll want to catch all of them 05:08:21 but the default impl it puts in for what to do when caught is to log it 05:08:28 and it adds imports for Logger as a result 05:08:37 so you have to go and delete the import if you're not using the default impl 05:08:46 Say "instantiate(T) = { return T() }". 05:08:53 (I'd much prefer a throw NotImplementedException as the default, like it does for methods) 05:10:53 evincar: in the former case, I'd think it'd be more useful for each of them to force explicit usage of said value (e.g. 0, empty). In the case of the latter, I guess it's a bit better, but having instantiations working like that is still icky. There was something else I was going to say but I forgot it. 05:12:08 evincar: oh right. I can't think of any usages of generic instantiation unless you use something like typeclasses/interfaces 05:12:24 -!- madbr has joined. 05:12:25 evincar: e.g. Monoids 05:12:28 damn 05:12:34 evincar: how does default initialisation help write generic code again 05:12:42 I guess it's really an application thing anyways 05:12:48 madbr: eh? 05:13:15 elliott_: It really depends on the types involved, and I can't come up with a good example at the moment. 05:13:19 if you're writing for databases, you'd probably rather have your client app explode than corrupt the database 05:13:37 elliott_: I just like uniformity and not violating the principle of least surprise. 05:13:51 being able to conjure up a value violates my POLS 05:13:54 POLS is code for "I like it" 05:14:01 how is it uniform? 05:14:08 any more than forcing all types to have exactly one value is uniform 05:14:12 sure, it is, but ... that sucks 05:14:35 -!- TeruFSX has joined. 05:14:37 I write sound code and having the app explode is much worse than any wrong sound I could be outputting 05:16:02 Like for divide by zero, I don't care if it generates a wrong value, that's much better to me than stopping the whole application, which is pretty much the worst thing that can happen 05:16:11 I'm just saying, 0 is a reasonable default for the numeric types I'm providing. It doesn't hurt anything to throw it in. 05:16:20 it hurts me 05:16:27 For something that just makes sound I suppose that's alright 05:16:28 it hurts people like me 05:16:30 I'm fine with default to 0< 05:16:31 For something handling data you don't want it to happen 05:16:33 Like for divide by zero, I don't care if it generates a wrong value, that's much better to me than stopping the whole application, which is pretty much the worst thing that can happen 05:16:39 madbr: i don't suppose you write any mission-critical financial applications 05:16:40 who see something like float() and don't know if it's 0 05:16:42 and have to look it up 05:16:45 please, god, don't say you do 05:16:50 and it's needless bloat 05:16:51 elliott: I don't! 05:16:53 It doesn't sound like it lol 05:16:54 and ughhhh 05:16:58 madbr: ok 05:16:59 then do whateve 05:17:00 r 05:17:04 I don't ordinarily go for 0-initialisation, but obviously immutable values are different. 05:17:17 I write sound plugins and games 05:17:22 this is the what second time you brought up immutable values 05:17:23 why is 0 a good default value evincar 05:17:27 but 05:17:27 when is 0 ever a useful value 05:17:30 without giving it explicitly 05:17:32 what does 0 have to do with immutable values 05:17:57 elliott_: dunno, in megazeux variables default to 0 and it's pretty practical that way 05:18:18 what is your favourite language 05:18:23 i am curious 05:18:28 monqy: When I write "x = mutable T()", I expect an uninitialised mutable T. When I write "x = T()", should I reasonable expect an error or a default? 05:18:32 *reasonably 05:18:46 haven't used high level languages so atm it's C++ 05:18:58 -!- olsner has quit (Ping timeout: 240 seconds). 05:19:01 sound code is almost always C++ 05:19:22 i keep reading "sound" as "correct" and i start lunging for your throat with a knife 05:19:25 but then I just sit in my hole 05:19:29 madbr: heh.. it's almost like you chose the most mission non-critical things 05:19:38 wow i was just about to say what elliott_ said but then elliott_ said it so i said this instead 05:19:49 i mean sounds and games 05:19:50 iti: I don't want to work in a fucking bank :D 05:20:16 fucking bank eh 05:20:21 madbr: i made an image the other day... which perhaps expresses the non-mission-criticality of music :D 05:20:21 I thought all the talk about indie gamers being universally terrible programmers was hyperbole 05:21:12 It's in the nature of the problem 05:21:20 madbr: i highly advise learning a nice high-level language 05:21:23 madbr: http://oi56.tinypic.com/xc7kes.jpg 05:21:41 madbr: im worry for your programmer mind health 05:22:14 monqy: atm I'm programming assembler :o 05:22:39 elliott_: you mean people who make indie games, or who play them? 05:22:41 itidus20: what does it mean 05:22:54 monqy: it means music isn't mission critical :D 05:23:22 itidus20: quite an odd analogy 05:23:30 itidus20: in some ways it is 05:23:40 ok well.. the blue thread.. represents the music and represents the programming 05:23:45 lol 05:23:49 so if the thread is in one piece then it has no mistakes 05:24:15 musician is using a laptop in a gig 05:24:21 the laptop cannot crash 05:24:25 hmm 05:24:29 well... 05:24:33 elliott_: you mean people who make indie games, or who play them? 05:24:33 make 05:24:41 when i made that image i had actual music in mind 05:24:51 not sound plugins. 05:24:52 if you code a synthesizer plugin for music making programs 05:24:54 so you're right 05:25:05 itidus20: for an extreme example, making a minor programming mistake isn't as bad as making tons and tons and tons of musical errors when the mission cares at all about the music 05:25:10 if your plugin crashes, it crashes the whole music making program and the musician loses his song 05:25:19 corollary: your plugin cannot crash 05:25:28 monqy: the mission never cares about music! 05:25:35 itidus20: weird mission there 05:25:55 "music isn't mission critical when missions don't care about music": tautological?!?!?!?!?? 05:26:01 uhmm 05:26:04 can it generate wrong output? sure, whatever 05:26:07 ok lets say a guitar 05:26:15 a guitar can afford to make mistakes 05:26:26 what if you make a really big mistake 05:26:29 or lots of them 05:26:35 monqy: http://ompldr.org/vOW9wcg me irl in my hole 05:26:37 then you suck.. 05:26:38 the string can snap 05:26:49 if your plugin crashes, it crashes the whole music making program and the musician loses his song 05:26:55 programs crash when the VSTs do? 05:26:57 i think not 05:27:07 elliott_: not anymore 05:27:24 monqy: image remains relevant, topical 05:27:25 but some early programs did 05:27:32 its like uhh.. video can recover too 05:27:35 monqy: took me whole minutes 05:27:46 elliott_: nice hole 05:27:56 monqy: thanks 05:28:19 its an idea i am really curious about... 05:28:30 what is? 05:28:44 in programming it is usually the case you need to get every instruction right 05:28:50 not really 05:28:54 and that one mistake throws out the whole system 05:28:59 not really 05:29:07 ever heard of minor bugs? 05:29:12 I have. 05:29:14 they exist. 05:29:20 they wreak minor havoc. 05:29:39 but don't throw out the whole system. 05:29:53 just a very tiny minor little bit perhaps nobody even cares about 05:30:01 ok.. my postulates are wrong >:) 05:30:33 In music, mistakes don't take whe whole thing down no 05:30:39 They just stand by themselves 05:30:40 monqy: I coloured it: http://ompldr.org/vOW9wdg 05:30:57 squares 05:31:20 it looks sadder now 05:31:21 somehow 05:32:59 -!- madbr has quit (Read error: Connection reset by peer). 05:33:34 monqy: http://ompldr.org/vOW9weA 05:33:53 ashes? 05:33:58 to ashes 05:33:59 is that blood 05:34:03 -!- derrik has joined. 05:34:05 are you dead 05:34:12 is that a statue 05:34:14 http://ompldr.org/vOW9weQ 05:34:16 so mjuch mysterys... 05:34:17 -!- madbr has joined. 05:34:24 its staring at me 05:34:27 and crying 05:34:30 tears 05:35:09 oh jesus cufcking christ i made it disturbing 05:35:29 monqy: 05:35:38 monqy: http://ompldr.org/vOW9weg 05:35:45 im disturbed 05:35:46 jesus 05:35:51 its like chocolate 05:35:51 tell me this makes you scream 05:35:55 lmao 05:35:56 what 05:36:01 the uh 05:36:02 brown stuff 05:36:05 reminded me of chocolate 05:36:09 or is that black 05:36:11 uhh 05:36:15 dark chocolate 05:36:29 and the tan stuff looks real creamy and swirly 05:37:01 do you hate chocolate or something 05:37:16 the face is disturbing though. maybe dark chocolate chips or currants in some sort of cream or white chocolate filling? 05:37:27 elliott_: i did an edit of it: http://oi51.tinypic.com/34h0z.jpg 05:37:40 elliott_ sure looks mad there 05:37:44 itidus20: i... 05:38:33 Well, it's about that time. 05:38:45 I'll be back tomorrow, I guess. 05:39:15 -!- evincar has quit (Quit: leaving). 05:39:20 http://ompldr.org/vOW9xMQ 05:39:24 monqy: deepness of soul edition 05:39:27 w/ lens flare 05:39:34 is that lens flare 05:39:37 oh 05:39:39 ok 05:39:50 its deep 05:39:51 and soul 05:39:56 monqy: i call it sweet elliott_ and hella hole 05:40:22 wheres your knife is it in the wole too 05:40:37 its inside my heart 05:41:53 monqy: http://i.imgur.com/3brEm.jpg 05:42:25 its a maze 05:42:30 ing 05:42:33 a soulcrishung maze 05:42:36 ing 05:43:47 -!- madbr has quit (Read error: Connection reset by peer). 05:44:15 monqy: http://i.imgur.com/P5iCf.gif 05:44:36 whoa a ball 05:44:50 cool... animation 05:45:06 "delay inserted to prevent evil cpu-sucking animation" oh come on gif 05:45:09 erm 05:45:10 gimp 05:45:16 subliminal deepness of soul with lens flare messaging 05:46:56 i am seeking a good gif editor on windows 05:47:12 theres not enough i tells ya 05:47:20 gimp 05:47:26 gimp "good inough mfor pme" 05:47:35 erxcept i use linux.... 05:48:17 i recently downloaded gimp but havent really tried it 05:48:28 its good inough mfor pme 05:50:55 -!- madbr has joined. 05:53:04 -!- madbr has quit (Read error: Connection reset by peer). 05:56:23 -!- Sgeo has joined. 05:56:33 hi Sgeo 05:56:37 you missed some good discussion 05:56:41 about type systems and uh 05:56:42 other stuff 05:57:11 -!- Sgeo_ has quit (Ping timeout: 255 seconds). 05:57:16 oh 05:57:24 sgeo :( 05:57:32 -!- TeruFSX has quit (Ping timeout: 276 seconds). 05:57:50 whens sgeo coming back i miss sgeo 05:59:17 -!- madbr has joined. 06:00:21 lol 06:02:07 Hi 06:03:15 hi 06:03:23 i missed you 06:04:45 .. 06:05:04 * Sgeo has no coherent response other than this one 06:05:09 -!- TeruFSX has joined. 06:07:05 -!- madbr has quit (Read error: Connection reset by peer). 06:07:12 To all flamers: this is my first real texture pack, if you flame, I will report you. 06:07:43 whatf slaming 06:07:56 flsaingubdgmg 06:08:07 is not praising it.....flaming? 06:08:13 or is that trolling 06:08:42 flammable 06:09:30 itidus20: i made you a persent http://ompldr.org/vOW9xNQ 06:10:36 heh 06:10:53 bible.gif 06:11:03 all this and more is possible with gimp 06:11:05 tm 06:12:38 I think ImageMagick is much better than GIMP 06:13:00 sometimes I use imagemagick for things. 06:13:06 i imagine itidus20 wants a graphical interface 06:13:25 ;_; 06:13:31 -!- madbr has joined. 06:13:31 the most insulting insult 06:13:46 offensive offense? 06:13:48 actually I'm wondering if you can make games with gimp 06:13:52 wat 06:13:54 what 06:14:10 as in.. opening gimp.. and using no other software... produce some sort of game =)) 06:14:19 itidus20: well there's ais523's ms paint tic tac toe 06:14:28 nice 06:14:40 I also happen to like METAFONT and I have made a program to combine METAFONT with ImageMagick. 06:14:52 itidus20: but um that's just using the flood tool's algorithm 06:14:59 there's not really any other algorithms to do :P 06:15:24 make gimp scripts 06:15:31 turn them into games 06:15:36 im being silly for the most part 06:16:00 but... back in the old days i used spreadsheet macros to try to make interactive fiction 06:16:06 lol 06:16:25 I made RPGs with spreadsheet macros 06:16:27 not very good ones, though 06:16:51 this is what drove me to support open standards 06:16:57 because they kept breaking with every new version of Excel 06:17:08 lmao 06:17:11 oh i was using lotus123 06:17:57 elliott_: it even removed all the UI elements, to prevent cheating 06:18:07 although it was probably possible anyway, say by holding down shift on load 06:18:26 also, removing the entire UI gave more screen space for gamy stuff and hid the fact it was Excel, although I suspect it was obvious anyway 06:20:51 -!- madbr has quit (Read error: Connection reset by peer). 06:23:57 i wonder what this java bug thing is 06:24:02 Java 7 GA was released today, but as noted by Uwe Schindler, there are some very frightening bugs in HotSpot Loop optimizations that are enabled by default. In the best case scenario, these bugs cause the JVM to crash. In the worst case scenario, they cause incorrect execution of loops. 06:24:03 haha 06:24:06 good job oracle 06:24:22 "These problems were detected only 5 days before the official Java 7 release, 06:24:23 so Oracle had no time to fix those bugs, affecting also many more 06:24:23 applications." 06:24:23 hmm, Java puts crash > incorrect execution 06:24:23 wow 06:24:31 YOU MEAN LOOPS ARE BAD?? SORRY 06:24:33 ONLY FIVE DAYS 06:24:35 CAN'T CHANGE IT 06:24:36 /Java/, one of the most enterprisey languages in existence 06:24:48 ais523: umm, isn't that fairly Javay? 06:24:55 Java doesn't let you do ANYTHING loosely 06:25:10 is java still cool with typecasting 06:25:13 or what have it 06:25:19 elliott_: I know, I was taking a potshot at the crashing-is-worse-than-returning-a-random-number opinion 06:25:37 monqy: it throws ClassCastException if you try to cast something into a class that can't describe it 06:25:59 snazy 06:26:48 -!- madbr has joined. 06:28:18 ais523: now just do it a few seconds later... 06:28:35 meh, scrollback exists 06:31:29 -!- madbr has quit (Read error: Connection reset by peer). 06:34:41 Although METAFONT is designed for font making, you can use it to draw other things too. 06:37:30 -!- madbr has joined. 06:39:44 -!- madbr has quit (Read error: Connection reset by peer). 06:42:14 ais523: how long will fib 99999 take to compute naively? 06:42:32 elliott_: you mean via the recursive algorithm that's O(2^n)? 06:42:37 :-P 06:42:39 O(2^n) where n is 99999 06:42:49 * elliott_ tries 999 instead :-D 06:42:55 even that'll take far too long 06:43:10 bah 06:43:16 stupid exponentials 06:43:20 99 should terminate within my lifetime, right? 06:43:58 that's about an octillion 06:44:01 so probably not 06:44:13 * elliott_ is trying to test memoisation... 06:44:13 I was using 10 to test may naive fibonacci impl 06:44:18 and even that took far too long 06:44:18 I'm not sure it's actually memoising 06:44:31 I need a value that the naive fib goes slowly at, but not too slowly :-P 06:44:57 memoised 100 is faster than unmemoized 10 06:45:10 err, what is up with -ise vs. -ize in that line? 06:45:25 unmemoisation is so american 06:45:49 *Data.Memoization.StableName> fib 19 06:45:49 4181 06:45:49 *Data.Memoization.StableName> fib' 19 06:45:49 34 06:45:57 umm, memoisation shouldn't change behaviour, right? 06:46:02 no 06:46:14 and fib(19) is not 34 06:46:24 I don't know offhand if it's 4181, but it wouldn't surprise me 06:46:24 * elliott_ has no idea what happened there 06:46:29 -!- madbr has joined. 06:47:40 well, _something_ is wrong 06:47:55 coincidentally, I implemented memoized fibonacci in ICA (and thus VHDL) a few days ago 06:48:05 to celebrate the addition of RAM-like arrays 06:48:14 (as opposed to tuple-like arrays) 06:48:18 * elliott_ celebrates, can i have the compiler source code now 06:48:34 or at least a picture of the synthesisation result :D 06:48:35 heh, it's not ready for release yet, and I don't have permission to release it either 06:48:56 and FPGAs look the same no matter what program is on them 06:49:23 -!- zzo38 has quit (Remote host closed the connection). 06:50:51 ais523: surely a synthesiser can draw some kind of graph for you 06:51:15 it can, but it basically just always looks like a splodge on the page 06:51:19 no matter what the actual circuit 06:51:38 -!- Nisstyre has quit (Ping timeout: 255 seconds). 06:54:15 ais523: hmm, random @ thought: I don't think it can have a "native machine word" type 06:54:42 no, but such a type isn't very useful unless you're doing low-level stuff anyway 06:54:53 well, it's useful for smallish integers 06:55:36 nah, in practice, (smallest type that holds the integer) will be fastest unless the processor has no instructions for manipulating it 06:55:40 ais523: anyway, you were meant to ask me why; we are no longer friends 06:55:46 also, sure, I guess so 06:55:48 elliott_: no, it's obvious 06:55:53 ais523: what's the reason? 06:55:58 because it was non-obvious to me 06:55:58 network transparency 06:56:04 :/ 06:56:07 you know more about @ than I do 06:56:09 the type's size might be different on different computers 06:56:14 ais523: well, that's not the problem 06:56:17 that's perfectly okay 06:56:25 yep, you could translate at the boundary, I suppose 06:56:26 ais523: the problem is that the type could change underneath you mid-function 06:56:40 because a program might migrate to another system 06:56:45 note: this is great for writing viruses 06:57:07 just make it 64 bits 06:57:19 Patashu: gross 06:57:33 I'll just offer a few fixed-sized types and pretend they don't exist and tell everyone to use bignums 06:57:37 haha 06:58:11 a large part of @'s core design is me having a weapon sufficient to make people code @ objects however I want 06:58:15 currently, the stern glare will suffice. 06:58:20 if CakeProphet starts using @, I may have to purchase firearms. 06:58:37 if Microsoft starts promoting it, then it's time for tactical nukes 06:58:58 -!- TeruFSX has quit (Ping timeout: 240 seconds). 06:58:59 please don't hurt anybody 06:59:37 ais523: i'll just be you from now on 06:59:57 heh 07:01:43 I wonder if this "introspection box" model actually makes any sense 07:01:44 -!- madbr has quit (Read error: Connection reset by peer). 07:01:55 hmm, you can't have 07:01:57 box :: a -> Box a 07:02:07 because you can break parametricity like so: 07:02:27 ohNo :: (a -> b) -> (a -> b) -> Bool 07:02:32 ohNo f g = box f == box g 07:02:41 (assuming the box on code compares the ast) 07:02:58 but like 07:03:04 you also can't have 07:03:09 lolGimmeABox :: Box a 07:03:12 because WHAT DOES THE BOX CONTAIN... 07:03:16 what is this Box? 07:03:24 the rule is something like... if you create an object you can box it 07:03:28 but it's hard to define create 07:03:31 really hard 07:03:40 coppro: umm, do you know what @ is 07:03:40 elliott_: are you sure you can == on boxes like that? 07:03:50 ais523: do you remember what a box is :D 07:03:57 elliott_: in what context 07:04:01 you look like you're acting like boxing is a monad (perhaps subconciously), and it isn't 07:04:06 coppro: there's only one context 07:04:13 also, no, I don't 07:04:22 ais523: ok, well, that's not what a box is in this context 07:04:33 ais523: I was thinking: in @, I want to be able to do things like examine the ASTs of running programs 07:04:37 ais523: and inspect arbitrary objects 07:04:40 and all that jazz 07:04:51 ais523: BUT I don't want code to be able to, say, look at the AST of a function it's passed willy-nilly 07:04:56 because that breaks parametricity, security, and all sorts of things 07:05:04 So a box is like a security checkpoint? 07:05:10 ais523: so I was thinking that (Box a) represents something you can fetch an a out of, and that also encodes... meta-information about it 07:05:14 it's actually an Antibox 07:05:18 it lets you look inside a value 07:05:21 hmm, yes 07:05:25 so e.g. 07:05:28 elliott_: ok. It's a simple with unknown historical origin often rendered as a letter "a" where the upright protion of the letter extends down and around until it is a near-complete circle, and that is generally taken to mean "at", and is called a "whirlpool" by the INTERCAL manual 07:05:30 ast :: Box a -> LolAST 07:05:33 unbox :: Box a -> a 07:05:33 -!- oerjan has joined. 07:05:34 Feather actually has a rebox operation, that you can apply to an unboxed value 07:05:38 please don't ask me how it works 07:05:44 that unbox could also be called eval 07:05:45 I suppose 07:05:59 ais523: anyway, the question is just -- how do you actually create a box? 07:06:03 talking about comonads? 07:06:07 coppro: when elliott_ refers to @ treating it as a proper noun, it's a placeholder for the eventual name of an as-yet-unnamed OS he's working on 07:06:09 oerjan: not quite 07:06:31 I think he's going to retroactively go over glogbot's logs and substitute the name once it's actually decided 07:06:40 which will make my last-but-two line seem very confusing 07:06:49 (note: I may have been lying) 07:06:50 how do you knowm y s,ecret 07:06:57 it wasprivate,, with Gregor,, 07:06:59 he would create the logbot,,, 07:07:04 ais523: so the suspicion it will involve feather as an essential part is well-founded? 07:07:05 and force tunes to archive all their old logs by emailing them,,,,, 07:07:07 and i would get the sed,,,,,,, 07:07:09 -!- Nisstyre has joined. 07:07:10 WHO 07:07:11 BETRAYED ME 07:07:20 RGAGAARGAUREWIGEIWRIEWRGAWGRIAEWRWIERGAW\ 07:07:20 elliott_: nobody, I just guessed 07:07:25 oerjan: no 07:07:29 * elliott_ smashes individual things to pieces 07:07:32 Feather and @ are fundamentally incompatible, as far as I can tell 07:07:33 now everything dies 07:07:37 which doesn't surprise me, or even worry me 07:07:38 ais523: really? 07:07:47 in fact, I'd be more worried if they meshed together well 07:07:58 elliott_: it's the network transparency that really kills it 07:08:01 Feather doesn't like I/O 07:08:07 even more than Smalltalk doesn't like it 07:08:17 ais523: well, you can model @ as just one big happy machine with way too much computing power 07:08:23 and slow wires, I suppose, but who cares about speed 07:08:32 and even if you abstract away the I/O, it'd have to be able to return to a continuation 07:08:37 ais523: hmm, shades of scapegoat (in that every repository could fit together) 07:08:37 across the entire network 07:08:43 haha 07:08:45 yep, @ reminds me of scapegoat a bit 07:08:45 -!- madbr has joined. 07:09:00 I think you've been injecting similar ideas into both projects 07:09:12 I'm not sure how versioning in @ will work, if it'll have a separate VCS for "documents" and just regular objects, or what 07:09:14 the two would coexist quite well, at least 07:09:18 I'm trying to avoid thinking about it right now 07:09:23 546) Speaking of the CiSRA puzzles, anyone want to form a team i avoid my duties by carefully never registering to anything new 07:09:24 it feels like another Can of Worms 07:09:26 yep, versioning is a much more minor problem 07:09:39 you missed the point where someone else mentioned the word "duty" 07:09:41 then getting the thing working in the first place 07:09:50 oerjan: fix it :P 07:09:56 ais523: I was about to say "but versioning is a _huge_ problem", but then I realised that there are even bigger problems... 07:10:08 indeed 07:10:10 ...you realize that would be inconsistent with the quote, right? 07:10:12 anyway, yes, I'm really unsure how to construct boxes... 07:10:18 hmm, well 07:10:28 obviously if you have a boxed module 07:10:35 you can get a boxed value out of it 07:11:07 elliott_: i know they have, that wasn't the point though. 07:11:18 ais523: moduleLookup :: (m :: Box Module) -> Key m a -> a 07:11:20 ais523: or something. 07:11:30 erm 07:11:32 ais523: moduleLookup :: (m :: Box Module) -> Key m a -> Box a 07:11:35 but that's just another way to refine a box 07:11:42 I suppose that's all you really can do 07:11:46 but it feels like if you have 07:11:49 let f x = ... in ... 07:11:50 in a bit ofcode 07:11:54 I think you can't get a box unless you have one to start with 07:11:56 you have the "right" to box it right there and then 07:12:00 ais523: yes, that may be true 07:12:00 and that they should be originally created by the compiler 07:12:05 uh oh,boxes are starting to feel fundamental 07:12:12 [asterisk], boxes 07:12:25 and comonadic 07:12:32 oerjan: you really like comonads ;D 07:13:04 i don't actually know comonads, i just know they are easy to unwrap but not wrap 07:13:16 ok, so i know maybe the base definition 07:13:27 ais523: also that moduleLookup frightened me, when did dependent types happen? 07:13:32 but they are probably inevitable... 07:13:56 I have a feeling the design would be impossible to realise without them; as in, it'd turn out to be impossible for the user to create a function, or something 07:14:50 ais523: ah, hmm, there's a problem 07:14:57 ais523: in that, every boxed type has a different API 07:15:03 so it's actually a typeclass of some kind 07:15:26 class Boxable a where { data Box a; unbox :: Box a -> a } 07:15:35 hmm, I need a better name than box 07:15:41 I think you may be thinking too Haskell 07:15:42 it's sort of like an xray 07:15:51 elliott_: I'm dubbing you King Vaporware 07:15:57 ais523: well, it's obviously not a single unified Box type for every single type 07:15:58 coppro: k 07:16:14 elliott_: what did you call those (executable, source) pairs that you used in your Underload compiler? 07:16:15 ais523: so it's a type family of some kind 07:16:21 umm, I didn't 07:16:25 bleh 07:16:26 I called the flattened quotations blimps 07:16:30 but that's a separate thing 07:16:30 well, give this the same name as those 07:16:34 because it's the same concept 07:16:38 let's go all Prolog-style with naming 07:16:47 and agree that we can unify two names even if we don't know what they are yet 07:16:50 it's more like just source 07:16:52 and unbox is kind of like eva 07:16:54 l 07:17:03 meanwhile, I suppose we have to call them _1, _2, etc 07:17:05 ais523: isn't @ already pretty prolog style with naming? 07:17:07 or maybe @, @1, @2, etc 07:17:09 elliott_: yes 07:17:11 name_of_@(X) 07:17:15 well 07:17:16 name_of_@(@) 07:17:38 that's like writing name_of_X(X) 07:17:44 yep :D 07:17:55 it should be name_of_future_operating_system(@) 07:18:16 hmm, xray would be a good name if it weren't such an ugly name 07:18:59 what's a nice name for an xray 07:19:14 hmm, it's also like stripping the debug info (unxraying, that is) 07:19:16 "millennia" -- are we talking about a programming language called Sanskrit, or Sanskrit itself? :D 07:19:20 ais523: haha 07:19:27 but I'm not sure there's a standard name for something with debug info in 07:19:33 we are talking about the closest thing sanskrit has to an official spec 07:19:34 GDB a 07:19:45 oerjan: umm, really? not some programming language based on sanskrit? 07:19:56 contrary to what sys/user.h says, GDB is not the only debugger in existence 07:19:56 yes, real sanskrit. 07:19:57 -!- Taneb has joined. 07:20:14 people write official specs for non-programming languages? 07:20:17 too much into it. Don't use it for anything other than GDB unless 07:20:17 you know what you are doing. */ 07:20:18 heh 07:20:19 umm 07:20:19 other than Lojban, I mean? 07:20:22 /* The whole purpose of this file is for GDB and GDB only. Don't read 07:20:22 too much into it. Don't use it for anything other than GDB unless 07:20:22 you know what you are doing. */ 07:20:29 ais523: well, French is "strictly controlled" (ha ha) 07:20:30 -!- nisstyre_ has joined. 07:20:31 Hello! 07:20:39 hi Taneb, we're discussing @, run while you still can 07:20:43 -!- Nisstyre has quit (Ping timeout: 258 seconds). 07:20:50 I still don't know what @ is! 07:20:58 lucky 07:21:37 ais523: 400 B.C. at least one person did. mind you iiuc he ignored many parts of the language, concentrating on morphology and inflection. 07:22:16 elliott_: call it heatvision 07:22:34 Isn't that just computational linguistics? 07:22:35 defrost :: Heatvision a -> a 07:22:49 Lol 07:23:55 ais523: hmm, this is definitely getting moe confusing 07:24:05 SO MOE 07:24:17 But what's @! 07:24:29 Taneb: stop it stop it stop it 07:24:43 Either you tell me or I install Haiku 07:24:56 where's it @ 07:26:05 -!- nisstyre_ has quit (Quit: Leaving). 07:26:09 Taneb: ok 07:26:45 From an SD card! 07:26:46 -!- Nisstyre has joined. 07:28:05 this is one of the less usual threats I've seen 07:28:05 -!- madbr has quit (Read error: Connection reset by peer). 07:28:20 I'm mildly sleep deprived! 07:32:08 ais523: boxes seem to describe the nature of description itself 07:32:17 hmm, interpretation brackets are this 07:32:21 Syn <-> Sem 07:32:27 but more Syn -> Sem than the other way 07:32:35 oh, I can't type them, and are not sure if they're in Unicode 07:32:42 but they look like [[ ]] but squished-together a bit 07:32:45 yep 07:32:51 but more Syn -> Sem than the other way 07:32:58 \llbracket \rrbracket in LaTeX, I think 07:33:00 by that I'm just saying that Sem -> Syn doesn't get back all the information 07:33:01 as I've typed them too much 07:33:04 Okay, I need to find a larger memory device 07:33:06 hmm, ah 07:33:13 ais523: there actually _is_ a function (a -> Box a) 07:33:15 for all a 07:33:25 ais523: it simply constructs a pathological box, one consisting of a single object reference 07:33:28 and that reference being the argument 07:34:07 ais523: oh, umm, I suppose not all objects are comparable, as they might contain references to non-comparable objects 07:34:09 that's problematic 07:34:26 but I don't see why you _shouldn't_ be able to do that pathological version 07:34:32 ais523: the analogy being, Sem -> Syn 07:34:35 Syn -> Sem does the actual evaluation 07:34:39 but you can always construct the simple lambda result back 07:35:26 -!- madbr has joined. 07:35:54 ais523: help what does a box do 07:36:03 elliott_: haha at the reference 07:38:35 ais523: what have I done :( 07:41:33 -!- madbr has quit (Read error: Connection reset by peer). 07:42:30 ais523: I think you _do_ create boxes by composing them from scratch: that's called programming 07:42:44 I suppose so 07:42:56 ais523: it's just manipulating an AST with "more info" 07:43:04 in fact, you probably end up with a sort of lazy compile, don't you? 07:43:24 I'm beginning to wonder if a box is just the AST, and unboxing it compiles one step 07:43:36 well, you can certainly convert a box to an AST 07:43:43 I'm not sure what differs it 07:43:52 but... the box of, say, a key-value table, isn't an AST 07:43:58 or, hmm 07:43:59 better analogy 07:44:07 the box of a record (Haskell-style) isn't an AST 07:44:11 well, it sort of is, but it's simpler than that 07:44:19 it's just a mapping from boxes of keys to boxes of values 07:44:23 where key is a name 07:44:28 so actually not boxed, just the name 07:44:30 -- 07:44:30 +-+- 07:44:57 I've been up and down my house and finally found a bigger memory device 07:46:15 ais523: you've now thoroughly confused me 07:46:21 with only a few lines 07:47:01 "Å ÒÝ Ö 07:47:01 Ö× ̧ ÓÙÖ× ÐÚ × Ò 07:47:01 ÐÙ ̧ Û ÐÐ Ú ÕÙ ×Ý Ð1 07:47:01 Ò Ý Ø × ×Ø o Ï Ø × Ð Ø Ó Ø 07:47:01 ÙØÝ Ó ÙÒ 07:47:02 1 07:47:04 Ø ÓÒ Ð ÔÖÓ Ö ÑÑ Ò Ý Ø Ø Ñ ÐÐ Ø × ÔÖ Ñ Ø Ú × Ú 07:47:06 Ò 07:47:08 ÀÓÛ 07:47:10 Ò Ø ÙÒ×Ô 07:47:12 ¬ 07:47:14 ÔÖÓÓ Ó Ð Ø ÓÒ× 07:47:16 Ó ÙÒ× È Ö ÓÖÑÁÇ 07:47:18 Ö 07:47:20 Ø Ö × 07:47:22 Ò ÔÖÓÚ 07:47:24 À ×Ø 07:47:28 Ý 07:47:30 Ò Ø ÖÓÛÒ ÓÙØ Û Ø Ø 07:47:32 Ø Û Ø Ö Ì × Ö Ù×1 07:47:34 Ø ¬ Ð 07:47:36 Ö Ø 07:47:38 ×Ñ×o Ì 07:47:40 Ý × Ò 07:47:42 Ò Ò Öo 07:47:44 " 07:47:46 argh 07:47:48 that's not helpful, Evince 07:47:50 if you can't copy it, don't pretend to 07:48:09 -!- madbr has joined. 07:48:46 How do I un-write-protect an SD card? 07:50:07 there's normally a little plastic tab on one of the edges 07:50:10 you move it to the other position 07:50:11 But if you could un-write-protect it you could write to it and so it wouldn't be very well write protected 07:50:17 very small, normally about a millimetre square 07:50:29 Tomorrow's computer viruses will extend robotic arms from your computer to fiddle with the SD card to infect it!! 07:50:33 Got it 07:51:43 -!- madbr has quit (Read error: Connection reset by peer). 07:51:51 Thanks 07:51:58 So, that's what that does 07:53:17 brb, installing Haiku 07:53:48 -!- Taneb has quit (Read error: Connection reset by peer). 07:55:01 what happens next??? 07:55:07 haiku 07:55:08 an operating system 07:55:10 i can't do haikus 07:55:41 `addquote Tomorrow's computer viruses will extend robotic arms from your computer to fiddle with the SD card to infect it!! 07:55:44 551) Tomorrow's computer viruses will extend robotic arms from your computer to fiddle with the SD card to infect it!! 07:55:44 275 07:55:53 elliott_: only 12 syllables 07:56:00 haiku syllable 07:56:02 an operating system 07:56:05 i can do haikus?? 07:56:15 wow is that actually right haha wow 07:56:19 i didn't even try first time 07:56:21 or second time 07:56:29 it also technically needs to mention the name of a season to be a haiku 07:56:31 I'm pretty sure the syllables are a necessary, not sufficient, metric for a haiku 07:56:33 but people keep disregarding that 07:56:36 Yeah 07:56:44 I think 5/7/5 + season name is sufficient 07:56:48 but it might not be a very /good/ haiku 07:57:15 you could start off "haiku in summer", then it'd work 07:57:18 haiku syllable 07:57:20 an operating system 07:57:22 i can do haikus?? 07:57:24 summer i think 07:57:24 just not make whole lot of sense 07:57:28 ais523: yw 07:57:29 beautiful summer / fuck fuck fuck fuck fuck fuck fuck / fuck fuck fuck fuck fuck 07:57:37 damnit I laughted 07:57:38 monqy: i laughed, but I'm not sure why 07:57:41 lol you too 07:57:43 Patashu: I did too 07:57:57 `addquote beautiful summer / fuck fuck fuck fuck fuck fuck fuck / fuck fuck fuck fuck fuck 07:57:58 552) beautiful summer / fuck fuck fuck fuck fuck fuck fuck / fuck fuck fuck fuck fuck 07:58:04 three people laughed at it, so by definition it's funny 07:58:27 It's very close to being a skit 07:58:29 and probably carries enough context in just that quote for other people to get the joke, too 07:58:57 -!- madbr has joined. 07:59:27 Start book at 8. Finish book and realise it's 2. 07:59:37 I seem to have issues with "sleep". 08:00:02 you read for eighteen hours 08:00:08 wait, which 8? 08:00:14 or minus six hours 08:00:47 6 works fine for me 08:00:48 -!- Nisstyre has quit (Ping timeout: 260 seconds). 08:00:51 what's your problem with it 08:01:05 Patashu: what 08:01:12 8 pm, 2 am 08:01:18 just ruin the joke :( 08:01:20 ;_; 08:01:26 obviously pikhq meant twenty four hour times 08:02:49 monqy will now never speak again after that haiku because he can never top it 08:02:50 -!- madbr has quit (Read error: Connection reset by peer). 08:05:29 ais523: you should play EVE Online; you've already mastered the playing of Excel as a game, so EVE can only be a step up in fun from that 08:05:37 if a minor one 08:05:41 elliott_: haha 08:05:57 I think you have it the wrong way round, though 08:06:09 what I wrote was trying to implement a game engine using Excel 08:06:11 you mean experienced EVE players should go for the raw multiplayer Excel experience? 08:06:14 that too 08:06:19 whereas EVE Online is trying to implement a spreadsheet in a game engine 08:06:29 you'd expect someone who enjoyed one to dislike the other 08:06:41 What is playing EVE Online really like 08:06:48 I gave up on EVE roughly when I realised that not only do you attack ships by right clicking them and choosing an item from a context menu, but you also do everything else by popping up windows and interacting with GUI widgets 08:06:54 it even has a browser window you can use 08:07:00 you could probably use EVE as your only oS 08:07:01 OS 08:07:03 ...in space 08:07:12 elliott_: you played it at all? 08:07:19 that surprises me and I'm not sure why 08:07:25 ais523: it has a free trial, so I played about five minutes of it 08:07:34 I think you just don't strike me as the sort of person to play MMOs, even free trials of them 08:07:44 no, but I do like my spreadsheets 08:07:53 also, apparently EVE has a huge bias towards players who joined early 08:08:01 anyway, I /did/ play an MMO regularly a few years ago, I'm too embarrassed to tell you which, though 08:08:06 [asterisk]ago; 08:08:08 -!- cheater_ has quit (Ping timeout: 255 seconds). 08:08:35 it's either going to be World of Warcraft or some crazy tie-in to a TV series 08:08:37 -!- cheater_ has joined. 08:08:44 ais523: nope 08:08:52 hmm 08:09:02 in that case, I probably won't even try to guess 08:09:57 -!- madbr has joined. 08:11:33 Patashu: 20:00 to 02:00. Happy? 08:11:33 -!- madbr has quit (Read error: Connection reset by peer). 08:11:58 You have not given me any new information 08:12:32 elliott_: ^ 08:12:33 Sorry. 08:12:39 pikhq: NO 08:12:44 And I *really* should disambiguate — I mean, I'm about as likely to use 24 hour time as 12 hour time, TBH... 08:16:38 elliott_: neopets 08:17:07 coppro: does neopets even count as an MMO 08:17:11 yes 08:17:13 I should start playing Neopets ironically 08:17:24 you can't play neopets ironically 08:17:25 I never even knew it existed until I was far too old to be in the target market 08:17:26 you'd get super bored 08:17:34 Patashu: that's just super ironic 08:17:38 oh 08:17:43 note: sufficiently good irony is indistinguishable from sincerity 08:18:20 I actually had a Neopets account. I later gained a second digit in my age. 08:18:55 I have an account 08:19:23 I had an account 08:19:24 might still do 08:19:26 dunno 08:19:26 `addquote I actually had a Neopets account. I later gained a second digit in my age. 08:19:28 553) I actually had a Neopets account. I later gained a second digit in my age. 08:19:29 cba to find out 08:19:42 what is Neopets, anyway 08:19:56 ais523: oh you'll love this 08:19:57 ais523: it's Neopets (do you actually not know?) 08:19:57 google it 08:20:11 * ais523 tries Wikipedia 08:20:11 -!- madbr has joined. 08:20:20 ais523: they're like pet rocks, except instead of rocks, they're bits. also you can buy them accessories with rockcaret W bit money? 08:20:26 also there are games to win money? 08:20:27 i think. 08:20:28 also it is old. 08:20:32 and i think a scientologist runs it? 08:20:38 Revenue$30 million USD+ 08:20:43 that is too much money for pet rocks 08:21:03 and you can pay them for a webmail address/ 08:21:13 this is a pretty random combination of things 08:22:21 yeah old is a pretty significant quality 08:22:22 -!- madbr has quit (Read error: Connection reset by peer). 08:22:31 When it got started Tamagotchi was a fresh memory. 08:22:53 "I always knew having a mad wizard design our water distribution plant was a bad idea." (From a Neopets-related "walkthrough"-style thing I hit a week ago while googling for something really completely different.) 08:23:33 ais523: It was the friggin' 90s. 08:23:48 Well. Nearing on 2000. 08:23:50 Still. 08:24:03 that'd be before I really knew about the Internet 08:24:05 These were primitive days, and Geocities was still vibrant. 08:24:10 tamagotchis are so great, i had one, i remember fuck all about it 08:24:28 At the time I had been on the Internet for a handful of years. 08:24:40 November 15, '99 08:24:43 three people laughed at it, so by definition it's funny <-- make that four 08:24:44 what was the internet like in 98, i was on then but i don't recall it 08:24:55 according to Our Lord Wikipedia 08:25:03 elliott_: Comically simple. 08:25:08 elliott_: heh, you were probably consistently online before me, then 08:25:16 ais523: I'm not exactly surprised 08:25:19 I knew of its existence back then, and would even find a way to use it if I needed it 08:25:25 but that was rare 08:25:27 ais523: when did you discover the internet, five minutes ago? 08:25:34 elliott_: This predates *CSS*. 08:25:34 and mostly, I'd be doing email via someone else's account 08:25:49 (with permission, obviously) 08:26:00 elliott_: I'm still not entirely convinced it exists 08:26:17 I mean, technology that lets you communicate instantly with people in a huge range of places around the world, that's science fiction stuff, right? 08:26:25 elliott_: *Google was not The Search Engine*. 08:26:35 (no telephones do not count have you ever tried to make an international phone call that crosses continent boundaries?) 08:26:42 can i have an asterisk? 08:26:47 ***** 08:26:49 ais523: what's it like (I haven't ever) 08:26:49 Does Neopets still look like a lesson in horrid web design? 08:26:50 Here, have 5. 08:27:04 coppro: Yes. 08:27:11 k 08:27:13 elliott_: when I tried to phone home from Canada, it took the phone over two minutes to even work out how much a call to the UK would cost 08:27:18 coppro: Also, at the time it was just normal web design. 08:27:33 and then quoted an amount that was sufficiently large it'd have been inconvenient to pay with just coins 08:27:34 so I had to give up 08:27:47 oh my god what did i do 08:27:51 not just because affording it would have been tricky, but because I had no real prospect of finding change 08:28:01 yeah international calls suck 08:28:11 The phone network sucks. 08:28:11 I'm not sure if that's the fault of Canada in particular, though 08:28:23 It was perfectly sane and well-designed. In 1950. 08:28:26 from Hungary, it took about five seconds longer than normal to connect 08:28:32 and the price was noticeable but not insane 08:28:59 but that's within the EU, that's practically no distance at all 08:28:59 Or 30-odd exponential increases in computing power ago. 08:29:49 dontaddquote but that's within the EU, that's practically no distance at all 08:30:29 Really, circuit switching is just sad. 08:31:14 hmm, what are international calls from the US like? 08:31:17 similar to Canada? 08:31:40 ais523: I literally do not know. 08:31:55 I don't blame you for never having tried 08:31:56 I have never had cause to call internationally. 08:32:04 I have rarely had cause to even call long-distance. 08:32:11 I suppose you could use a payphone then not put money in it, that would be a relatively simple way to discover the time and cost 08:32:20 also, wow, I forgot that long-distance calls existed 08:32:27 I was in the single digits when I started using the Internet. 08:32:42 in the UK, they're now sufficiently similar to short-distance calls that most phone companies don't bother to distinguish between them 08:32:56 because the UK's quite small in terms of landmass, as countries go 08:32:58 the cell phone companies still love doing them 08:33:12 In the US, the phone company believes that you should bend over and take it up the ass without lube. 08:33:23 free calling within the continent is not too uncommon in Canadian plans now 08:33:28 (landline, of course) 08:33:35 pikhq: You think your cell phone companies are bad? 08:33:53 coppro: Okay, yeah, Canada also has that policy. 08:33:56 wait, you can make a short distance call on a cellphone? 08:34:09 all mobile phone calls are long-distance in the UK 08:34:26 pikhq: No. Our companies insist on at least one more hole at the same time. 08:34:37 All mobile phone calls to landlines are "same-distance" in Finland. I don't know if it's a long or short. 08:34:41 In the US, cell phones are assigned entirely normal phone numbers within the area code for where you live in. 08:34:51 typically, you get a cheaper price contacting a landline or another mobile phone on the same operator, and a more expensive price contacting a mobile phone with a different operator 08:35:28 (no telephones do not count have you ever tried to make an international phone call that crosses continent boundaries?) <-- i phoned in my agora votes once (sadly through an answering machine) in the 90s. it was surprisingly easy. 08:35:42 :D 08:35:45 :D 08:35:50 oerjan: that's Norway to... New Zealand? 08:36:00 oh man 08:36:04 I assume Agora doesn't have a international dialling prefix of its own 08:36:05 I should try to conference call all agoran players 08:36:07 but we should definitely get it one 08:36:14 coppro: you live in /Canada/ 08:36:27 ais523: so? 08:36:39 which has crazy telecom companies 08:36:56 ais523: I'll call a foreign carrier who does cheap conference calling first :{ 08:37:31 pikhq: you lied about Neopets and web design btw 08:37:37 it's not an example of bad web design 08:37:42 it's an example of horrible web design 08:37:48 Probably the worst part about the telephone network is that they have the audacity to charge even *trivial* costs per minute. 08:38:09 pikhq: Do landline carriers still do that in the US? 08:38:11 pikhq: you think they should charge just line rental? 08:38:16 coppro: Long-distance. 08:38:24 pikhq: How far is long-distance, typically 08:38:41 the phone situation in the UK, both landline and mobile, is that the tariffs are really complicated and have loads of exceptions 08:38:45 making them very hard to compare 08:38:50 coppro: I have no idea. I call maybe 10 times a year. 08:38:59 pikhq: well it matters 08:39:07 I actually use landlines quite a lot 08:39:09 I am ignorant! 08:39:17 ais523: by the way, not only do cell phones have area codes, you get charged extra for being outside your home zone typically 08:39:20 relative to most of the people in this channel, anyway, I expect 08:39:28 ais523: But, yes, they really should just charge line rental. 08:39:32 whatar ephones 08:39:36 monqy: help 08:39:50 ais523: The phone call *itself* is just a 56kbps stream over the Internet. 08:39:55 whats hapeneng 08:40:00 I haven't been paying attention 08:40:08 coppro: I'm beginning to wonder if North America's attitude to cellphones is "let's make these work as much like landlines as possible" 08:40:10 something about phones and web design? 08:40:10 monqy: whateis a phone 08:40:16 i hate hpoens 08:40:22 i have one but i keep it off all the time 08:40:27 ais523: wherever steve gardner lived at the time 08:40:29 a man after ais523 08:40:39 oerjan: wat 08:40:49 ais523: North America's attitude to international callling is also "let's make these work as much like intranational callling as possible." 08:40:58 ais523: North America has a unified numbering scheme. 08:41:01 ais523: It's moneygrab 08:41:12 elliott_: in response to my question about whether he phoned New Zealand from Norway 08:41:28 pikhq: international calling from Europe is very like intranational, too 08:41:30 ais523: There's not country prefixes in the North American dialing plan. There's the North America prefix, and area codes. 08:41:40 you just dial double 0 then country code then number 08:41:46 And then 7 digit numbers. 08:41:47 ais523: People were used to phone service working like X, so they just kept that when cell phones arrived 08:41:51 For all of North America. 08:41:52 which was good for them since they made money 08:41:52 just like you dial single 0, area code, number for long distance 08:41:56 or just number for short distance 08:42:00 and there has been insufficient consumer pressure to switch 08:42:02 i love how stupidly close inter and intra are 08:42:04 0's like the ../ of the phone system 08:42:06 although in Canada some new pressure is emerging 08:42:12 (from foreign companies, no less) 08:42:44 hmm, if I phoned myself starting with 0044, I wonder if I'd be charged more? 08:43:06 I know you aren't on a mobile, starting UK numbers with +44 is common there 08:43:12 just in case you happen to move the phone outside the UK 08:43:19 so it doesn't call the number in the wrong country 08:43:27 we now actually have a mobile provider that offers unlimited tethering 08:43:40 which of the three possible definitions of unlimited are you using? 08:43:50 in particular, does it become limited again if you use too much bandwidth? 08:44:02 haha 08:44:02 not AFAICT 08:44:04 (ah, the joys of phone advertising in the UK) 08:44:20 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 08:44:24 elliott_: that's what "fair usage policy" typically means in the small print of communciations advertising 08:44:30 it's not cheap, but it doesn't appear to be one-dimensionally unlimited 08:44:47 another variation is unlimited except if you do certain things 08:44:58 like, say, use Skype 08:45:02 oerjan: wat <-- my agora phone vote 08:45:46 They do say they'll throttle you after 5GB/mo though, for the rest of the month, to 256 Kb/s up and 128 down, and you'll get a notice telling you they're doing that 08:46:00 coppro: aha 08:46:03 5GB on a mobile connection is a lot though 08:46:04 oerjan: ok 08:46:12 that's the "unlimited except if you use too much bandwidth" I was referring to 08:46:19 a massive throttle is similar to a cutoff 08:46:28 256 Kb/s is still plenty 08:46:32 zero, one, infinity is so passe. the new thing is: zero, one, five million 08:46:40 for simple stuff 08:47:16 but that's just 56k 08:47:19 with a 2 in front 08:47:24 X-D 08:47:32 which only makes a difference of a factor of 5 or so 08:47:39 "So it's just like two dialup modems." 08:47:42 -!- Nisstyre has joined. 08:47:53 fizzie: more like five of them, mathematically 08:47:59 Yes, but textually. 08:48:09 Two of fifty-six kay. 08:48:15 ais523: I don't know the exact numbers, but I don't expect that's a ridiculously evil slowdown relative to normal 08:48:24 oh, and they do throttle P2P traffic 08:48:39 but this is semi-normal here, and to be expected on a limited bandwidth network 08:49:01 bleh, why is INVISIBLE MULTIPLICATION SIGN not in my Unicode character map thing? 08:49:10 I wanted to write 256 08:49:11 and still way better than you'll get from the major networks 08:49:23 ais523: Some only do the BMP 08:49:29 this one does more than the BMP 08:49:35 but I'm not sure how far beyond it goes 08:49:47 ais523: you're just not seeing it 08:49:58 a quick google doesn't show such a symbol at all 08:50:02 There's no INVISIBLE MULTIPLICATION SIGN even in my UnicodeData.txt. 08:50:04 also, I perhaps forgot what the symbol's called 08:50:13 I'm pretty sure it exists, but I'm not convinced I got the name right 08:50:28 lol 'invisible multiplication sign' 08:50:28 hahaha 08:50:30 Well, the name does not contain the substring "multipli". 08:50:54 Or at least 'grep -i multipli' on UnicodeData.txt gives a lot but nothing that sounds very invisible. 08:51:01 U+2062 INVISIBLE TIMES 08:51:07 what about grep -i invisible 08:51:08 Ah, there. 08:51:30 Patashu: e.g. for placing between the π and the r in πr² 08:51:30 it was the best of times, it was the of times 08:51:38 yeah I figured but 08:51:38 lmao 08:51:42 also U+2061 FUNCTION APPLICATION, U+2063 INVISIBLE SEPARATOR, and U+2064 INVISIBLE PLUS 08:51:49 aren't invisible characters a huge huge threat? 08:51:51 U+2061 FUNCTION APPLICATION? amazing 08:51:55 you can disguise strings as being something else 08:52:02 heh, Haskell definitely needs U+2061 between all uses of function and argument 08:52:05 even better, /Agda/ needs it 08:52:32 overloaded space defaulting to U+2061 08:52:44 but sometimes you need to disambiguate... 08:53:04 2⁢56kb/s 08:53:05 wasn't there an april fools joke about overloaded space 08:53:07 there we go 08:53:18 ais523: Also the telecom's site doesn't try too hard to hide the cap 08:53:31 http://shop.windmobile.ca/productcatalog/dataplans/plandetails.aspx?id=infinite+laptop+q2+2011+promo(WINDCA) "See our Fair Usage Policy" is pretty highlighted 08:53:35 they generally hide it on their street adverts and not anywhere else 08:53:48 on the principle that once people start buying something, they generally don't stop 08:53:57 budget airlines operate on the same principle 08:55:12 also I like this company's approach to terms of service. the words "Make sense?" actually appear in a ToS 08:55:44 and I like their "get-a-phone" incentive 08:56:05 they'll give you some part of the phone price off, and 10% of your bill goes towards it 08:56:12 -!- elliott_ has quit (Remote host closed the connection). 08:56:13 So they don't need to lock you in with a multi-year contract 08:56:17 hmm, I wonder why MEDIUM MATHEMATICAL SPACE is defined as 4/18em 08:56:18 which is fairly standard among other providers 08:56:21 and why the fraction isn't written as 2/9 08:56:35 coppro: in the US (and presumably Canada too) 08:56:37 -!- elliott has joined. 08:56:40 08:55:12: also I like this company's approach to terms of service. the words "Make sense?" actually appear in a ToS 08:56:45 good to know that marketing still works on people 08:56:46 it's very far from the norm in the UK, and has only started becoming popular recently 08:57:11 multi-year contract in exchange for phone, that is 08:57:17 ais523: yeah 08:57:18 I know 08:57:20 in fact, no contract is more common in the UK 08:57:24 elliott: These ones aren'a a hideous mess of legalese 08:57:36 ais523: yeah. It's becoming a powerful marketing tool though 08:57:37 (instead, the prices go ridiculously high if you don't pay $10 a month, and you have to pay in advance) 08:57:45 umm, £10 08:58:00 "no contract" is becoming common in some ads 08:58:30 just wait until they catch up with some of the gimmicks UK ads have come up with 08:58:45 e.g. realising that prepaid credit on a mobile phone was an arbitrary currency separate from real money 08:58:55 The only problem is that this particular carrier has rather low coverage 08:58:57 and so just advertising that you could pay £10 for £30 credit 08:59:04 and people thinking that it gave an advantage 08:59:13 because they have to fight tooth and nail for infrastructure 08:59:17 wow, I just realised how little sense that makes just now 08:59:29 elliott: you saw the adverts too, presumably 08:59:33 and the other carriers don't want to rent it out at anything close to reasonable 08:59:43 yep, but I turn my brain off for adverts, and usually concentrate on their aesthetic aspects 08:59:49 the products are quite irrelevant 08:59:52 heh 09:00:09 I get bored on the bus sometimes, so I often look at adverts while commuting 09:00:19 I'm not sure if any has changed my buying preferences, though 09:00:21 oh, I saw them on TV 09:00:27 television ads are so weird 09:00:37 in either direction; all the adverts bad enough to make me boycott something have been for something I didn't want to buy anyway 09:01:27 when WIND actually covers Waterloo, I will like get a phone with them 09:01:49 partially just to provide them money, partially just to avoid providing the competitors with money, and partially to get service 09:02:00 coppro: how much are you being paid? 09:02:09 elliott: At Google? lots 09:02:14 whoosh 09:02:21 elliott: Of course it all has a mysterious habit of vanishing when I go back to school 09:02:30 elliott: I think Tesco Mobile more or less won the advertising war there, because they managed to produce a great-sounding advert to advertise something that didn't cost them anything at all, nor give any advantage to their customers 09:02:57 whereas the other mobile phone providers all had to actually provide complicated price breaks that nobody could work out the exact effect of 09:03:05 which presumably cost them something 09:03:17 but mobile phone network adverts seem to have reduced recently 09:03:34 the last big campaign I remember was Orange/T-Mobile each advertising that their customers could use the others' signal 09:04:15 What was that something? 09:04:37 -!- ais523 has quit (Remote host closed the connection). 09:05:11 -!- Nisstyre has quit (Ping timeout: 276 seconds). 09:06:57 http://lists.gnu.org/archive/html/emacs-devel/2011-07/msg01155.html 09:07:01 RMS PANIC 09:08:04 oh no 09:09:47 -!- monqy has quit (Quit: hello). 09:09:50 what's going on 09:09:53 in that link 09:10:47 Patashu: see http://lists.gnu.org/archive/html/emacs-devel/2011-07/msg01085.html onwards 09:10:49 A TRAGEDY is what's going on. 09:11:37 The problem is that they're not releasing source code to emacs or something? 09:11:43 fizzie: It is a GPL violation that you are not currently FIXING THOSE COORD MACROS. Or, uh, ADDING THE WATER COLOURING. BASICALLY ANY WAY YOU SLICE IT YOU ARE BAD 09:11:48 Patashu: a few source files are missing 09:11:53 which ones? 09:12:10 Patashu: read the thread 09:12:21 Some files that apparently themselves generate C (I think) code 09:12:31 I tried to it's too boring :( 09:13:05 Oh it's some parser thing not having source code 09:13:10 That is, you can fully compile emacs from what they distributed as is, but it's not as easy to modify... certain things 09:14:03 Sgeo: it's a gpl violation for anyone to redistribute 09:19:38 buy essays online said... 09:19:38 real life is more interesting than virtual 09:19:38 10:00 AM 09:20:25 Warning.. warning.. GNU violation in sector 12 09:20:53 -!- copumpkin has joined. 09:21:12 the gnus are rampaging 09:22:18 -!- Taneb has joined. 09:22:55 Well, I gave up trying to install Haiku 09:23:56 Is brainfuck Turing Complete with unbounced cell size but a tape size of 2? 09:24:18 Sure 09:24:25 You can prime number encode an infinite number of numbers 09:24:28 *prime factor 09:24:32 Taneb: see minsky machine 09:24:34 no, i don't think 2 is enough 09:24:37 oh wait no 09:24:39 bf isn't enough 09:24:40 And use the other cell for condutional constructs 09:24:42 Patashu: no 09:24:45 no? 09:24:48 bf's operations aren't good enough for that 09:24:51 probably 09:24:57 hmm 09:25:10 It's been shown to be turing complete with a tape size of 5 09:25:10 4 or 5 is enough iirc. it's somewhere on the wiki... 09:25:11 oerjan: hmm, can't a minsky machine's registers be done by brainfuck? 09:25:12 for every function you nest you need another for-conditional cell I think 09:25:21 hmm, no 09:25:25 elliott: yes, but you need more than one bf cell for one minsky register 09:25:38 right 09:25:39 @__ You tried well. But then met failure. Try again. __@ 09:26:33 Why are wiki pages caps sensitive 09:26:42 basically you cannot use a bf cell much without clearing it, so you sometimes need to copy information elsewhere 09:26:55 i got the syllable counts wrong 09:28:11 -!- derrik_ has joined. 09:29:08 -!- derrik has quit (Ping timeout: 258 seconds). 09:29:09 -!- derrik_ has changed nick to derrik. 09:29:10 Frans Faase gives a procedure for translating 5-register Universal Register Machines into brainfuck programs using five cells [1]. 09:29:11 this? 09:29:11 or hm maybe it's actually the problem of doing conditionals 09:29:16 http://www.iwriteiam.nl/Ha_bf_Turing.html 09:29:27 because you always need to end [...] on a 0 09:29:42 _and_ be in a consistent state 09:30:56 Patashu: mind you you only need 2-register (this is proved by a prime encoding), maybe something more efficient than 5 bf cells can do it. 09:31:15 3 might be too tricky 09:31:39 Start with "Frans". Swap n with s "Frasn". Change r to a "Faasn". Change n to e "Faase". 09:33:06 ^scramble frans 09:33:06 fasnr 09:35:54 the 2-register thing was mentioned in wikipedia's articles on counter machines 09:36:44 -!- derrik has quit (Quit: ChatZilla 0.9.87-rdmsoft [XULRunner 1.9.0.17/2009122204]). 09:36:48 or in other words 09:36:55 "Frans". Swap cell 4 with cell 5. Load "a" into cell 2. Load "e" into cell 5. "Faase". 09:37:21 itidus20: you're just a few steps from a Smetana derivative there. 09:39:23 maybe you _could_ do it with only 3, hm. 09:40:02 another take on it is 09:40:41 "Frans". Copy cell 5 into cell 4. Copy cell 3 into cell 2. Load "e" into cell 5. "Faase". 09:41:47 by using that one-register with constant multiplication/division that is part of the proof that 2 with inc/dec suffice 09:44:24 -!- derrik has joined. 09:47:44 in other words, doing this with 3 bf cells instead of 2 minsky registers: http://en.wikipedia.org/wiki/Counter_machine#Step_3:_Four_counters_can_be_simulated_by_two_counters. 09:48:10 Taneb: ^ 09:48:25 So, the answer's... yes? 09:48:52 no, it's "maybe". i haven't worked out if it actually works... 09:48:58 Okay 09:49:04 I'll stick to five cells for now 09:49:06 also, i don't think 2 bf cells is enough. 09:51:40 because there is simply not enough room then to leave the essential data unscathed, extract the conditional information you need _and_ end a [...] at the same time. 09:52:12 unless, hm... 09:53:43 -!- MigoMipo has joined. 09:54:10 perhaps if you did it as an enormously branching tree of []'s, where you only end a loop after packing all the information _back_ into the main register, so you can keep the second register 0 while returning to top level of the bf program... 09:55:10 -!- derrik has quit (Quit: ChatZilla 0.9.87-rdmsoft [XULRunner 1.9.0.17/2009122204]). 09:55:48 this is like :caret() :D 09:55:59 MAYBE :P 09:59:02 the "make a conjecture that something is impossible, then get an idea why it's possible after all, repeatedly" part certainly seems familiar. 10:09:06 Stupid Python lambda 10:09:12 Not doing what I want it ot 10:09:14 *to 10:09:32 try not using python 10:11:31 doing if (n % const == 0) { n /= const; ... } else { ... } with just 2 registers _does_ seem rather hard 10:11:54 darn, asi523 is gone 10:12:03 you need at least one more register for that 10:12:08 however many register mult, div and mod require... 10:12:55 *2 cells 10:13:33 I think you could do it with an infinite AST :-) 10:14:06 elliott: yeah, the tricky part is doing unbounded subtraction looping without that :P 10:16:33 oerjan: maybe aim for four cells to start with? :P 10:16:48 or three. 10:16:59 oerjan: UNDERLOAD MINIMALISATION WASN'T BUILT IN A DAY 10:17:04 indeed. 10:18:17 with three you should have somewhere to put both the quotient and the remainder, and then you can clean things up afterward, maybe. 10:18:36 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 10:19:00 for a minsky machine 2 registers is no problem because the remainder can be incorporated into the state. 10:19:07 oerjan: three or four wouldbe an upsetting number. 10:19:09 why three. why four. 10:19:11 why not two. 10:19:16 (as the minmum) 10:20:37 well as i said, with two you have the trouble that whenever you exit a loop, all your information beyond program position has to be in just one cell. 10:20:51 *as i implied, 10:21:56 WHY SO FAR NOT THOU. 10:23:20 which means you cannot really use a loop for calculating divmod, unless you manage to somehow avoid exiting it before making some computational progress. 10:24:21 three would be okay i guess 10:24:22 cuz like 10:24:22 two minksy 10:24:24 one scratch 10:24:30 but FOUR is unholy against god as a minimum, 10:24:38 i seem to have a disturbing tendency to split infinitives 10:34:53 oerjan: *I seem to disturbingly have a tendency to split infinitives 10:34:53 oerjan: splitting infinitives is not illegal 10:35:23 Unless you weaponize it 10:35:45 agree with itidus20 10:35:47 i was on the split infinitives wikipedia page once 10:35:52 splitting infinitives is fine 10:36:03 apparen't theres a big mix up about it 10:36:16 ^apparently 10:36:43 yes but i seem to be doing it all the time recently. 10:37:15 you're just winning... it's fine 10:37:25 Oerjan desires to boldly split infitives where no infinitives have been split before 10:37:44 -!- Lymee has quit (Ping timeout: 240 seconds). 10:38:10 -!- oerjan has quit (Quit: Yes, you should.). 10:44:33 -!- elliott has quit (Ping timeout: 260 seconds). 11:08:09 -!- olsner has joined. 11:13:11 -!- immibis has joined. 11:29:49 -!- olsner has quit (Quit: Leaving). 11:35:44 -!- olsner has joined. 11:38:04 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .). 11:43:25 Are there any good reasons that I should _not_ return the Nook and get a Kindle? 11:43:35 I like the idea of the synced annotations 11:44:36 -!- cheater_ has quit (Ping timeout: 255 seconds). 11:44:40 I've kind of been excludng "Kindle" mentally from my "What ereaders am I checking out" list before 11:50:07 Well, hmm, I wouldn't be able to buy from most online ebookstores 11:57:12 -!- cheater_ has joined. 12:06:08 -!- FireFly has joined. 12:06:41 Well, that's just great. Just taught a creepy idiot in #jesus about the existence of notice, now he's asking me how I did it 12:06:57 notice? 12:07:24 You've never used IRC notice? 12:07:30 No 12:07:35 Looks like this to the channel 12:07:48 elliott: yes 12:08:36 Hmm. 12:08:39 Interesting. 12:09:03 gayest. 12:09:39 Sgeo: why are you in #jesus teaching people about notice? 12:09:54 Because he's that awesome 12:10:18 Because creepy dude was talking about some "hacker" sending messages to him, and that's why he always seemed to talk to himself in channel 12:10:30 I was curious if the "hacker" was just using notice 12:10:51 oklopol, you missed the awesome context for that line 12:16:28 umm, so if someone tells me "please pay to our paypal account: paypal@(ourcompany).com", am i supposed to send another email in that address to ask for their paypal account stuff, or are paypal accounts just somehow registered to email addresses 12:16:56 The second one 12:17:28 Must stop accidentally fuelling paranoid guy's paranoia 12:17:44 thanks, now if only i knew how to actually pay to one 12:18:09 ordering a mail order bride/secretary/assassin 12:18:26 Like in Kill Bill? 12:18:47 i haven't seen kill bill 12:18:52 Neither have I 12:18:54 https://www.paypal-marketing.co.uk/sendmoney/index.htm 12:18:55 i know there's a girl 12:18:59 I think that's it 12:19:07 no i think there's more than a girl 12:19:08 hahaha 12:19:29 so err does anyone know latin here 12:19:35 I know a little 12:19:46 or wait which languages are philias in 12:19:55 i need to know what the term is for people who like to fuck houses 12:20:04 Hippophile 12:20:08 It's Greek 12:20:18 hippo as in... hippo? 12:20:28 Yes 12:20:40 why 12:20:48 Hippopotamus litteraly means horse of the river 12:20:56 ... 12:20:59 not horses 12:21:04 who the fuck would want to fuck a horse 12:21:11 Oh 12:21:15 Misread, sorry 12:21:17 pervert 12:21:17 Hang on 12:21:49 i thought you meant because hippos are really big 12:22:07 oikiaphile 12:25:24 thank you 12:25:43 I think I also misread "horses", but maybe it was just the context when reading the lines backwards. 12:26:17 do i need to make a gaypal account to be able to pay to one? 12:26:29 I don't think so 12:26:34 I don't think so either. 12:26:47 blah 12:26:49 too hard 12:27:13 "How much does this house weigh?" is a traditional obligatory question asked after presentations on all CS student body organized company excursion visit sort of things. 12:27:24 Or "paljonko tämä talo painaa?" in Finnish. 12:27:35 It's some sort of a nonsense-joke. 12:36:29 -!- olsner has quit (Ping timeout: 240 seconds). 12:39:51 how much do houses weigh? 12:39:57 i have absolutely no idea 12:40:08 Depends on their size and material 12:40:14 it does?!? 12:40:38 i've never fucked a house 12:41:16 some people fuck cars but i haven't heard of a house lover 12:44:12 "house lover": About 250,000 results (0.23 seconds) 12:44:21 Rather irrelevant results. 12:44:38 There's a "Tiny House Lover", but I doubt it's about fucking tiny houses. 12:44:43 At least when "fucking" is a verb. 12:44:59 It could be a dwarf oikiaphile 12:45:12 It could be when it's an adverb or something. 12:45:28 i wouldn't fuck a house that was bigger than me 12:45:30 maybe like a doghouse 12:46:05 I've heard that the whole "tiny house" is a sort of a trendy thing; the new iteration of the "minimalism" stuff. 12:46:42 well as long as they are big on the inside 12:46:48 http://www.tumbleweedhouses.com/houses/ 12:46:59 I'm not sure there's any that are smaller than you. 12:47:45 Somebody had parked a modern-looking glass-wall on-wheels sauna on a grass field in Otaniemi. 12:48:06 i guess i have to build one myself or i'm gonna be alone forever 12:48:36 Not the old well-known "made out of a car" one -- http://farm2.static.flickr.com/1171/1433982857_c28fbee6fe.jpg -- but a more stylish affair. 12:48:57 that thing 12:49:03 is possibly the best 12:49:13 oklopol: It appeals both to the car fuckers and the house fuckers. 12:49:35 well i don't know which side of me it's appealing to, but i'm very appealed 12:49:41 -!- olsner has joined. 12:49:51 http://www.saunasessions.ca/mobilesaunas/index.php?n=MobileSaunas.Lehti <- some rather more smutty pictures of it, doors open and all. 12:50:43 Kuvaaja ylltt heidt takaluukun kautta. Milt tuntuu? 12:50:58 Yes. 12:54:03 -!- derrik has joined. 13:16:44 finns are weird 13:19:32 -!- cheater_ has quit (Ping timeout: 255 seconds). 13:20:01 -!- copumpkin has joined. 13:20:02 -!- copumpkin has quit (Changing host). 13:20:02 -!- copumpkin has joined. 13:50:09 Now to wait 12-24 working days! 13:54:17 -!- Lymee has joined. 14:03:53 -!- immibis2 has joined. 14:03:54 -!- immibis has quit (Read error: Connection reset by peer). 14:09:22 -!- immibis2 has quit (Ping timeout: 246 seconds). 14:11:25 brb 14:11:35 -!- Taneb has changed nick to TanebIsAWay47. 14:14:18 what is a cirno-chan 14:14:57 i know what a cirno is...she is stupidest 14:16:18 -!- TanebIsAWay47 has quit (Ping timeout: 260 seconds). 14:29:14 -!- invariable has joined. 14:33:58 -!- TeruFSX has joined. 14:36:22 -!- lament has joined. 14:38:50 -!- MigoMipo has quit (Read error: Connection reset by peer). 14:39:26 -!- olsner has quit (Quit: Leaving). 14:49:25 I found an answer: The library books will be Kindle format, so I still wouldn't be able to purchase DRM ebooks from other sellers 14:51:42 so I just had another idea 14:52:54 this ones sort of playful and hopefully fun 14:54:12 There is a genre of video games about creating. Crayon physics, MineCraft, Terraria, Lemmings, Sim City.. i don't have an exhaustive list 14:58:41 just as I typed this I looked in wikipedia on SimCity and found an amusing comment "In Space Quest IV, in the Software Excess Store, a game called Sim Sim is available. It is described as a "simulated simulator specially designed for creating simulated simulators" and that "you can create a simulated environment in which you can create any simulated environment you want"." 15:05:47 -!- Nisstyre has joined. 15:05:47 -!- Nisstyre has quit (Excess Flood). 15:06:31 -!- Nisstyre has joined. 15:07:11 -!- Taneb has joined. 15:07:24 Hello 15:07:34 wow... .. my creative juices are really flowing now 15:08:04 In what way? 15:08:27 i'll go make a coffee and return with an answer of this fucking sweet idea i just had 15:08:35 Write it down first 15:08:42 So you don't forget 15:08:49 you can't forget an idea 15:12:42 wow .. oklo is right 15:12:45 anyway ok 15:12:50 back with coffee 15:13:02 Idea? 15:13:08 the idea is directed towards game development.. but let me explain in the context of say, visual basic 15:13:24 suppose you are editing a visual basic thing right? 15:13:31 Okay 15:13:57 you make a form.. you throw some buttons on it, ok? 15:14:05 Okay 15:14:15 then you "run" it.. following so far? 15:14:19 Yeah 15:14:21 Hang on 15:14:30 Am I supposed to be doing this as you talk 15:14:35 hahahaha no no 15:14:38 only in your head 15:14:43 Okay 15:14:52 now, what happens if you click on one of these buttons? 15:15:00 Not much 15:15:18 essentially nothing, right? 15:15:23 Yeah 15:15:55 -!- MSleep has changed nick to MDude. 15:16:01 now, my idea is... that.. if you right click on one of these buttons... a box pops up for you to enter a script on how to react to a right button click 15:16:34 oops i mean left click i think 15:17:27 or... (and now we are reminded of a spell checker) whether it should ignore the right click 15:17:44 ^left click 15:19:03 so basically, reacting to events by prompting for some code of how to react to the event 15:19:17 -!- BeholdMyGlory has quit (Remote host closed the connection). 15:19:21 So like, 15:19:21 or perhaps some kind of dialog box with checkboxes 15:19:40 Interesting 15:20:14 yeah.. although some crazy guy out there is probably already doing it, what matters is that it's low key and we haven't really heard ofit 15:21:27 maybe it's already being done.. but it probably still exists only in white papers and expensive apps 15:21:55 but i've never heard of it 15:22:40 ok so.. suppose theres a game right? 15:22:45 -!- Taneb has quit (Read error: Connection reset by peer). 15:23:26 ok so.. suppose theres a game right? now.. when 2 objects in the game collide.. it could prompt for you to create an event handler (either a script or a dialog box with checkboxes etc) 15:23:37 (i know he's gone) 15:25:23 -!- soupe has joined. 15:29:10 i like the idea 15:29:59 but maybe you could have something like ctrl+whatever = prompt for what to do when whatever is done, so you could test and program at the same time, and correct mistakes easily 15:30:11 but yeah i would certainly like to do gui programming that way 15:30:20 -!- soupe has quit (Quit: ~{AtlanTis-Script}~ par Jack Disponible sur http://Atlantisteam.xooit.fr). 15:30:32 oklopol: hmm so you mean like a toggle :D 15:30:35 -!- soupe has joined. 15:30:46 -!- soupe has left. 15:30:55 oh maybe ctrl + foo would be better 15:31:05 one of the big problems with this idea is the event flood 15:31:14 and how exactly to filter it 15:31:27 THE MOUSE JUST MOVED TO (620, 39), WOULD YOU LIKE TO ADD AN EVENT FOR THIS 15:31:51 so then i got the idea of being like a spell checker.. the way it lets you ignoer something, or add it to dictionary etc 15:32:22 oklopol: i have a harsh internal critic who expects nothing but the very best ideas 15:32:37 slowly working on my neuroses 15:32:50 WOuld it check the mouse at all times, or would it be just specific object checking if the mosue is over them? 15:33:06 -!- olsner has joined. 15:33:34 Since even if you wanted an invisible spot that reacts to being hovered over, you could still make that with an invisible object. 15:34:37 itidus20: i think ctrl+whatever mostly solves the event flood problem as well, just press ctrl just before whatever event you want to catch 15:34:41 -!- Taneb has joined. 15:34:47 plus what MDude said 15:35:35 It would probably be nice to have a timer so you can have things just perform an action periodically. 15:35:36 i have a harsh internal critic that usually tells me i suck and shouldn't even try when i try to solve a problem 15:36:26 Sorry I lost connection 15:39:12 -!- sebbu2 has changed nick to sebbu. 15:41:41 oklopol: you suck 15:43:43 MDude: well good point.. it could be configured to look for "mouse over object" 15:43:49 rather than "mouse at x,y" 15:44:13 because the kinds of events that it catches are supposed to be generalized ones 15:44:56 Taneb: ill pastebin what you missed 15:45:05 No need 15:45:07 I read the log 15:45:11 oh ahh ok 15:45:25 so nice little idea i had eh 15:46:14 one benefit is you don't have to "think" of which events will occur 15:46:19 only have to wait for them 15:46:28 that would seem to be the idea 15:46:33 sorry *external 15:47:09 MDude: hmm the details are sketchy 15:47:23 the seed of the idea was.. 15:47:49 " There is a genre of video games about creating. Crayon physics, MineCraft, Terraria, Lemmings, Sim City.. i don't have an exhaustive list" 15:48:02 just as I typed this I looked in wikipedia on SimCity and found an amusing comment "In Space Quest IV, in the Software Excess Store, a game called Sim Sim is available. It is described as a "simulated simulator specially designed for creating simulated simulators" and that "you can create a simulated environment in which you can create any simulated environment you want"." 15:48:31 now with all these games about creating i thought, what about if you had a game about creating that could bootstrap itself. 15:49:09 I.... suppose thats what secondlife does >.< 15:49:21 Well not really. 15:49:24 but secondlife doesn't really do it in a pure way 15:49:26 hehehe 15:49:31 MDude: thanks 15:49:43 so this is oneupmanship on secondlife 15:49:56 It's not like you can script a little room with avatars in it. 15:50:06 yeah.. this is like secondlife++ 15:50:27 minecraft was on my mind when i thought of it 15:50:49 but secondlife is also related in that people sort of make stuff in the game 15:51:22 I was actually tihnking of WarioWare: D.I.Y. 15:51:26 g2g 15:51:33 ya see... i downloaded a whole bunch of game makers the other day 15:51:47 and so i have their limitations in my mind 15:51:53 cool.. i haven't tried warioware 15:51:59 i have heard of it though 15:52:15 I didn't know there were that many. 15:52:16 i may have subconciously got the idea from warioware 15:52:38 The scripting in it is a bit simple. 15:52:59 Since it's made for making games that only last a few seconds. 15:53:34 GameMaker, M.U.G.E.N, IndieGame-Maker, RPGMaker2003, FighterMaker 95, FighterMaker 2002, Construct, Construct 2 15:53:57 most of them are by ASCII/Enterbrain 15:54:11 with dodgy levels of legality 15:54:42 oh and I downloaded BYOB 15:55:00 Build Your Own Bear? 15:55:48 Build your own blocks 15:56:00 someone here mentioned it to me 15:56:03 -!- Taneb has quit (Ping timeout: 260 seconds). 15:57:21 So yeah.. I was thinking, what if I could build the game from within the game 15:57:22 -!- Taneb has joined. 15:57:52 Back 15:57:52 It wouldn't surprise me if whatever you see in warioware is a hint at how nintendo operates internally 15:58:23 Taneb: back for your g2g? 15:58:31 Indeed 15:58:41 I sorta have g2g and brb backward in my mind 15:58:51 oh now im confused 15:59:11 Like, to me, a g2g is shorter than a brb 15:59:13 i used to play with games factory 15:59:30 I tried to learn Inform 7 15:59:57 -!- Nisstyre has quit (Ping timeout: 252 seconds). 16:00:00 the nice thing about games factory is you don't need to learn it 16:00:16 So I stole indie game maker 16:00:18 you just have to not be a blind retard 16:00:19 i admit it 16:00:33 but i had to work hard at it 16:00:44 -!- Taneb has quit (Read error: Connection reset by peer). 16:01:06 oklopol: i should get that too then if its free 16:01:13 -!- Taneb has joined. 16:01:33 i'm not sure i'd enjoy it as much nowadays 16:01:35 I really need a better internet connection 16:01:38 making that sorta games i mean 16:02:07 you can't really do anything that interesting with those things 16:02:54 so, I have a big ego.. (always an awkward statement) .. but i do.. so I like to think up these grandoise ideas 16:03:00 i like to keep ahead of the game 16:03:43 theres this new phenomenon in game AI called behaviour trees someone recently told me about 16:04:15 my programming related ideas are usually so gradoise they could never actually be implemented 16:04:34 and what are behavior trees 16:04:54 uhmm.. sort of a tree with scripts attached to it 16:05:32 Is it basically case statements within case statements? 16:05:55 i don't know much about them... its more the structure which makes them special 16:06:16 to me, behavior tree sounds like a fancy way to say prescripted stuff with a few branches 16:06:16 -!- zzo38 has joined. 16:06:19 MDude: apparently they can be linked together in a useful way to build up complex behaviours 16:07:22 i dunno what they are exactly 16:07:23 SOunds a bit like a more controlled version of subsumption then. 16:08:50 anyway, i am great at independant discovery 16:09:08 but I can't seem to actually think of anything which hasn't been thought of before 16:09:17 That's fine, really. 16:09:46 I just have a 1% divergence from how everyone else would do it 16:10:12 Well sometimes that small divergance can make a big difference. 16:10:28 so its a bitter moment whenever i google an idea i got to find out who else has it 16:10:35 But that's chaos theory 16:10:44 have you considered having more detailed ideas 16:10:48 Also, form what I know, msot experts are too concened with purity to even want to understand more than one method. 16:10:58 specific i mean 16:10:59 itidus20: I have heard that being called the "Bob Proffitt Principle" 16:11:11 Not really chaos. 16:11:34 Well, maybe. 16:11:57 If you scale up data structures enough, the problems with them tend to compound themselves a lot. 16:12:25 It depends onw hat you call a small difference, I guess. 16:12:27 yeah.. ideas are like trees a bit.. so .. when i get independant discoveries its like passing checkpoints 16:12:30 -!- olsner has quit (Remote host closed the connection). 16:12:34 telling me that i'm on the right path 16:13:32 great 16:13:40 by independant discovery i mean something i thought up on my own that someone else has gone to the effort of writing about on the web 16:13:48 And I too have sometimes came up with ideas similar to others that I did not know of yet. 16:15:16 most of my ideas are unprecedented 16:15:24 because they are so great no one else could've come up with them 16:15:29 Most of my ideas are stupid 16:15:34 And probably been done before 16:16:03 I have different kind of ideas. Some are good and some are stupid, some are new, some are independent but same as others, some are very similar to others I don't know of but is still a bit different. 16:16:29 yeah.. theres always a kind of unique tack you can have on an idea that the other person didn't 16:17:46 -!- olsner has joined. 16:19:44 theres always someone who would either... love to be your boss and control your genius.. or who would like to have you serving them at mcdonalds 16:20:48 uh.. which is good cos it balances things 16:21:05 -!- Nisstyre has joined. 16:23:16 -!- derrik has quit (Ping timeout: 264 seconds). 16:23:29 -!- pikhq has quit (Ping timeout: 240 seconds). 16:23:34 -!- pikhq has joined. 16:23:57 talk is cheap.. it all comes down to whether i can deliver 16:24:18 what do you mean 16:24:36 Well.. if i didnt get any ideas then this speech of mine would be kind of hollow 16:25:19 if you were talking about an idea of yours but it didn't exist, then yeah i suppose that would be kind of hollow 16:25:52 i independantly discovered the idea of fairy chess pieces 16:26:05 but you could also talk about something else and have neither ideas nor hollowness 16:26:07 and what are those 16:26:18 non-standard chess pieces 16:26:31 you had the idea of adding other pieces to chess? 16:26:40 yup 16:26:44 yeah i liked doing that when i was 7 16:26:56 fun little activity 16:27:13 i worked out that each piece was defined by vectors 16:27:24 defined by vectors? 16:27:32 you mean a set of allowed movements? 16:27:36 yup 16:27:52 and i realized on my own that i could define a set of alternative allowed movements 16:27:57 Some of fairy chess pieces are more complicated than that, though 16:28:03 based on these vectors 16:28:15 i probably didn't know the term vector when i was seven 16:28:31 i created a set of rules sufficient to explain all the pieces in regular chess 16:28:39 i had to come up with the idea independently 16:29:00 you made some kind of formal language in which you described the rules or what? 16:29:09 i liked doing that stuff in elementary school 16:29:14 uhmm.. well i used a spreadsheet 16:29:32 and found the variables necessary to describe a piece 16:29:51 isn't that called learning the rules of chess 16:30:02 i learned them when i was 4 16:30:11 :P 16:30:17 There are many classes of chess pieces and some combine different ones, some in normal chess, or in others. Knight = (1,2) leaper. Rook = (1,0) rider. Queen = Rook + Bishop. 16:30:38 * oklopol tries to set a record in being an annoying asshole 16:30:40 anyway.. i was quite happy with my achievement.. but kinda "oh..." when i actually googled it 16:30:45 *fpr 16:30:47 *for 16:31:00 but... chess for me.. itself.. is not enough 16:31:15 i never wanted to play such a chess.. 16:31:32 i want to make it realtime 16:31:52 and not just by using timers on a chessboard 16:32:11 it needs another layer of complexity 16:32:16 " but... chess for me.. itself.. is not enough" <<< maybe because it sucks ass? 16:32:30 just a guess 16:32:56 i noticed that those games called tactical rpgs are going in htat direction kinda 16:34:29 chess is kinda like go, but sucky 16:35:21 taking an abstract thing like chess and making it into something realtime is the opposite of an intelligent idea, chess is already way too complicated to be interesting, why would you complicate it further 16:35:34 And it's been done 16:35:42 As I said last time you brought this up 16:35:45 yeah we've all read harry potter 16:35:48 another idea i had is a piece whose movement space is defined by axis-aligned lines intersecting the enemy pieces 16:36:03 lemme try to understand that 16:36:35 so err you move like a queen, but starting from any enemy piece you like? 16:36:48 i worded it kinda bad 16:37:02 suppose that you drew a vertical and horizontal line through each enemy piece 16:37:06 crossing the board 16:37:07 okay 16:37:14 and that.. these lines formed walls 16:37:18 oaky 16:37:39 and a piece who could move anywhere within the 'rooms' created by these walls 16:37:47 lament: is chess really like go? 16:37:57 because i'm not sure i want to learn go if chess is anything like it 16:39:25 so 1 enemy piece in the middle of the board would divide the board into 4 rooms 16:40:03 and these other pieces could teleport around within these 'rooms' 16:40:10 Chess has some similarities to go but it is a different game with many differences 16:40:24 oklopol: it's like go in that you have to use the brain a lot to win 16:40:41 its an idea i had when waiting at a busstop feeling overtired 16:40:44 and there's a board and pieces and turns 16:40:56 i guess i just never saw how one could apply the brain to chess 16:41:01 (Go does not even have a well-defined ending condition, actually. But once you know when to end, you can easily count points who wins is well defined) 16:41:11 oklopol: You just beat your opponents with the chessboard, right? 16:41:17 oklopol: it's called 'minimax' 16:41:24 (in both go and chess) 16:41:31 lament: i can't do that in my head 16:41:37 not to any relevant depth 16:41:55 Have you learned any of the Gipf Project games? 16:42:16 oklopol: relevant depth = deeper than your opponent 16:42:22 so just find a stupid enough opponent 16:42:28 which may be difficult of course 16:42:30 in go, i never found it useful to minimax 16:42:37 but then again i suck at it so maybe i should. 16:43:46 i suppose if you were really really smart you could formulate some kind of plans in chess and it might become interesting 16:44:22 chess is a trivial subset of reality though ------ or... is.. it? :P 16:44:25 but i'm hundreds and hundreds of hours away from that and since playing is about as much fun as mental calculation, i don't really want to spend those hours 16:44:53 I like chess 16:45:04 maybe you're just really really smart 16:45:11 i hate chess and go 16:45:17 too much thinking 16:45:21 I never figured out go 16:45:25 turn coal into gold if you want a tough game :P 16:45:26 and too competitive 16:45:32 it's all about proving you're better than your opponent 16:45:55 i like competing but only if i can cheat 16:46:02 There are also variants that involve chance and/or hidden information too 16:47:06 lament: what do you like? 16:47:48 * Sgeo likes Go, but I'm bad at it 16:50:05 i've only played go against a computer on easy 16:50:11 but that was kind of pointless 16:50:18 because it was way too hard 16:52:56 oklopol: lying on a couch doing nothing 16:57:01 ditto 16:57:25 one of my favorites 16:57:38 I was never much good at the endgame 16:58:57 hey ditto again 16:59:32 but what i'm really bad at is the rest of the game, especially the endgame and the other parts 17:00:34 I also know Xiangqi and Shogi. 17:01:12 I know Rummy 17:02:05 * Sgeo likes Barbu 17:02:14 I'm not good at it, but I like it 17:02:28 This may be a common theme with me 17:02:56 Do you know Mahjong? 17:03:02 No 17:06:18 Mahjong is played with 4 players. Each player gets 13 tiles. On your turn you pick one from the wall, so you have 14. If you have a complete hand (four sets of three tiles, either a sequence or three of a kind, and one pair) you win, and can count points. Otherwise you must discard one. 17:06:46 So it's like... Rummy mixed with... breakout? 17:07:01 Any time one is discarded, another player can pick it up to make a set or complete their hand. Sequences can be taken only from the previous player unless you win. If you make a set by taking a discarded tile, you must reveal it. 17:07:18 If you have three of a kind and one more tile, you can make "kan" and pick up a spare tile. 17:07:46 Taneb: It is a bit like Rummy. But the tiles are really just used like cards. Nothing to do with breakout. 17:08:13 But there are many significant differences from Rummy. 17:08:25 Just like with baseball. 17:08:58 Is baseball anything like rummy? I don't think so. 17:09:08 There are many significant differences 17:09:12 Baseball is played with ball, not with cards! 17:09:34 But if you imagine the cards are like players 17:09:58 It makes perfect sense 17:10:32 I don't know how to play baseball but still it doesn't seem like the cards are like players to me 17:10:49 Also in mahjong, at the start you flip a dora tile. If you have the next number after that one, and you win, then you earn extra points. 17:11:24 If you win by self draw, all other three players pay you. If you win by someone else's discard, they have to pay you three times and the other players pay you nothing. 17:12:02 If you want, you can bet 1000 points to call riichi. If you called riichi, then you cannot adjust your hand anymore. But, if you win, you win extra points. 17:12:35 You also earn points depending on the patterns of your hand, such as all concealed, no sequences, all same suit, etc 17:13:49 -!- derrik has joined. 17:23:26 Or, maybe, you want to play pokemon card. 17:23:44 -!- myndzi\ has joined. 17:27:00 -!- myndzi has quit (Ping timeout: 276 seconds). 17:27:29 -!- oerjan has joined. 17:33:45 06:55:30 what is a cirno-chan 17:33:45 06:56:09 i know what a cirno is...she is stupidest 17:34:05 i think -chan is the female japanese honorific suffix similar to -san 17:34:21 I thought chan is diminuative 17:34:27 to emphasize cuteness 17:34:41 hm maybe. or perhaps both. pikhq? 17:36:52 While we're waiting for a proper human reply, here's the MACHINE GOD answer from 'pedia: "Chan (ちゃん?) is a diminutive suffix; it expresses that the speaker finds a person endearing. Thus, using chan with a superior's name would be condescending and rude. In general, chan is used for babies, young children, grandparents and teenage girls. It may also be used towards cute animals, lovers, close friends, or any youthful woman." 17:37:00 "In general, chan is used for babies, young children, grandparents and teenage girls. It may also be used towards cute animals, lovers, close friends, or any youthful woman. 17:37:06 TOO LATE 17:37:08 darn 17:37:21 So, I was rightish? 17:37:28 NEVAR 17:37:37 well, POSSIBLY 17:39:26 Taneb: Pretty much. 17:39:32 and certain numbers 17:39:38 erm 17:39:52 to what fizzie said, seems my pagedown key is wrongative atm 17:45:15 the wrongative case 17:46:24 The wrongative of servus, -i is serves 17:49:49 serves you wrong? 17:50:05 Quite. 17:53:39 Imagine something like Minecraft as a text adventure 17:54:24 >You are on a beach. You can see far out to see. To the north, there is a forest. To the east, there is a cave. 17:54:29 >>North 17:54:35 Make up like a text adventure 17:55:29 What? 18:01:51 I don't recognize that, try "help" for help 18:01:53 I like text adventure game 18:02:12 I also like to use the rule of "overmate" when playing pokemon card 18:08:04 -!- CakeProphet has quit (Ping timeout: 246 seconds). 18:09:34 -!- CakeProphet has joined. 18:09:34 -!- CakeProphet has quit (Changing host). 18:09:34 -!- CakeProphet has joined. 18:13:36 Can you make a chess variant that as well as the normal chess pieces, there are also hourglasses (with different lengths of time) movable on the board? 18:14:19 -!- MigoMipo has joined. 18:14:31 Possibly 18:14:56 The hourglasses move like queens until they run out, when they are taken off the board 18:15:29 Checking your opponent turns all their hourglasses over 18:15:36 With that idea I dissappear 18:15:41 -!- Taneb has quit (Quit: He's a big quitter he is.). 18:21:05 -!- CakeProphet has quit (Ping timeout: 240 seconds). 18:23:14 -!- CakeProphet has joined. 18:23:14 -!- CakeProphet has quit (Changing host). 18:23:14 -!- CakeProphet has joined. 18:28:06 -!- Taneb has joined. 18:28:38 That vowels language that has been mysteriously added to the language list from an anonymous user seems kind of boring 18:32:41 how do you add a language mysteriously? 18:34:05 you need to follow the untrodden path of the lost elders 18:34:25 Or add a link that goes to a blank page. 18:35:53 -!- Taneb has quit (Ping timeout: 260 seconds). 18:37:22 -!- pumpkin has joined. 18:37:56 -!- pumpkin has changed nick to copumpkin_. 18:38:05 -!- CakeProphet has quit (Ping timeout: 258 seconds). 18:40:00 -!- copumpkin has quit (Ping timeout: 258 seconds). 18:40:08 -!- copumpkin_ has changed nick to copumpkin. 18:52:39 -!- derrik has quit (Quit: gone). 18:57:29 -!- pumpkin has joined. 18:58:28 -!- pikhq_ has joined. 18:58:40 -!- pikhq has quit (Ping timeout: 264 seconds). 18:59:16 -!- copumpkin has quit (Ping timeout: 264 seconds). 19:17:39 -!- pikhq has joined. 19:19:03 -!- pikhq_ has quit (Ping timeout: 252 seconds). 19:19:23 -!- monqy has joined. 19:23:28 -!- copumpkin has joined. 19:25:28 -!- pumpkin has quit (Ping timeout: 260 seconds). 19:44:21 -!- evincar has joined. 19:47:11 -!- evincar has quit (Client Quit). 20:03:30 -!- BeholdMyGlory has joined. 20:03:33 -!- pumpkin has joined. 20:06:54 -!- copumpkin has quit (Ping timeout: 250 seconds). 20:08:43 how do you add a language mysteriously? 20:08:46 ... 20:08:49 oooooopsie 20:09:51 How do you shot web, isn't that what they ask? 20:19:02 -!- Taneb has joined. 20:19:19 Hello 20:20:12 Who's talking? 20:20:28 You. 20:20:33 fizzie as well 20:20:45 And okokokoklopol. 20:20:56 Crazy 20:20:59 and another line from fizzie 20:21:07 Taneb joining in with an insult 20:22:15 You sound like one of those sports announcers. 20:29:08 Is there any program I can learn how to make compiling rulebooks like Inform 7 does? 20:30:42 Not as far as I know 20:40:06 Do you know anything about compiling rulebooks like that? 20:40:24 No 20:40:35 I have a vague idea how they work 20:41:45 How much idea do you have? 20:41:57 Very little 20:42:11 They're a series of translations 20:44:10 Like "Go north" becomes "change state to current state(x), current state(y)+1 20:44:41 There are also procedural rulebooks (a feature which is marked as deprecated) 20:50:02 I read the document, you can use procedural rulebooks to have conditions to ignore or override other rules, and so on. 20:50:07 How would such things be implemented? 20:50:30 I do not know 20:51:10 are you asking how to make a programming language 20:51:23 that's not very hard, but it's rather hard to explain how to do it 20:53:30 Not quite. I am asking about other specific things, such as procedural rulebooks. And, some way of converting them to imperative form. 20:54:00 i would imagine zzo38 knows how to make a programming language... 20:55:01 I know how to make programming language, in various ways. I even have books about it. But it is not quite what I am asking. 20:55:06 otherwise large parts of the wiki would seem rather unexplainable. 20:55:15 (I even invented many programming languages for various uses) 20:57:38 well yeah i guess if you want to make a rule programming language in a specific genre, it's not that obvious how to do it. 21:00:14 That is why I ask. 21:03:20 Is there a word for a language that is of a lower computational class to another, but has more features such as networking or file I/O 21:03:21 I would like to figure out how to make one that has not only rulebooks but other features too, and also can be used as a module in a larger program with other programming languages, and has templates and preprocessor, and is also a format that TeXnicard can produce as output. 21:04:45 Taneb: SQL 21:04:48 * oerjan runs away 21:05:04 That's an example rather than a word 21:21:13 the word is 'fragnlium' 21:21:25 'Tis a good word 21:27:35 -!- copumpkin has joined. 21:29:13 -!- pumpkin has quit (Ping timeout: 252 seconds). 21:38:54 -!- BeholdMyGlory has quit (Remote host closed the connection). 21:47:26 -!- Taneb has quit (Read error: Connection reset by peer). 22:24:40 -!- pumpkin has joined. 22:27:28 -!- copumpkin has quit (Ping timeout: 264 seconds). 22:29:27 -!- MigoMipo has quit (Read error: Connection reset by peer). 22:34:40 -!- copumpkin has joined. 22:37:15 -!- pumpkin has quit (Ping timeout: 276 seconds). 23:09:54 Is there a word for a language that is of a lower computational class to another, but has more features such as networking or file I/O <-- C vs. P'', C is not TC 23:10:05 no idea about a name for it 23:12:23 A feature request I made is getting attention 23:12:29 But... I made it in 2004 23:12:30 http://sourceforge.net/tracker/?func=detail&atid=353248&aid=930097&group_id=3248 23:13:07 hah 23:13:59 conclusion: Sgeo lives not only in the past, but sometimes in the future 23:15:26 -!- GreaseMonkey has joined. 23:27:59 -!- oerjan has quit (Quit: Good night). 23:32:32 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 23:49:59 -!- CakeProphet has joined. 23:50:03 -!- CakeProphet has quit (Changing host). 23:50:03 -!- CakeProphet has joined. 23:59:50 -!- FireFly has quit (Quit: swatted to death).