00:02:09 -!- ais523 has quit (Remote closed the connection). 00:35:49 back 00:35:59 GregorR: It worked, actually 00:36:29 I moved the whole system to a subdirectory and migrated debian outwards 00:36:49 and everything worked instantly, but now it won't boot due to a seemingly unsolvable without a lot more work problem 00:36:54 I'll need to get at the HD to rest it 00:36:55 reset 00:39:23 GregorR: but who says you can't totally move a linux system while it runs? 00:40:04 If you move /lib, you will no longer be able to run new dynamically linked programs. 00:40:14 s/new // 00:40:35 (By new I mean you won't be able to load new ones, not that you won't be able to load ones you haven't loaded before or something) 00:41:10 Because dynamically-linked programs depend on the existence and location of /lib/ld-linux.so.foo 00:41:42 So if mv still worked, it was probably statically linked (busybox?) 00:52:09 -!- puzzlet_ has quit (Remote closed the connection). 00:52:12 -!- puzzlet has joined. 00:54:17 -!- coppro has joined. 00:56:59 GregorR: Busybox, yeah. 00:57:13 GregorR: Also, as soon as I moved debian in, that file existed, of course. 01:00:20 -!- Asztal has quit (Read error: 110 (Connection timed out)). 01:04:12 GregorR: So I migrated it pretty much perfectly modulo bootup. 01:04:25 (It is initramfs, btw.) 01:04:34 (It uses squashfs as well as /linuxrc) 01:09:06 -!- coppro has quit (Remote closed the connection). 01:09:37 Yeah, but you still need to run 'mv' to move debian in, and was mv not statically linked, you'd be all "oh shiiiiiiiiiiiiiiiiiiiiiiiiii" 01:12:01 -!- coppro has joined. 01:14:13 GregorR: Hooray for busybox 01:32:57 Future civilisations will develop whole theories of psychology as to why we have bugs in all our systems due to an oversight that could only be a cognitive defect: a few keypresses giving full access. 01:33:03 They come up with nothing, and never explain the mystery of: 01:33:09 ↑ ↑ ↓ ↓ ← → ← → B A 01:33:10 THE END 01:36:46 -!- puzzlet has quit (Remote closed the connection). 01:45:06 -!- puzzlet has joined. 01:55:07 -!- puzzlet has quit (Remote closed the connection). 01:55:11 -!- puzzlet has joined. 02:13:45 -!- Pthing has quit (Remote closed the connection). 03:24:06 * GregorR is trying to make peppermint soda. 03:42:31 -!- ehird has quit. 04:08:18 -!- ehird has joined. 04:17:57 "Sometimes you may want to do the opposite of abs(): turn a positive number into a negative." 04:17:57 http://us.php.net/manual/en/function.abs.php#58508 04:18:19 lol 04:18:23 How difficult! 04:19:26 ...wtf 04:19:27 WTF 04:19:28 WTFWTFWTF 04:19:30 THAT CODE IS SO STUPID 04:20:46 :P 04:27:20 GregorR: Go one comment ↑ up 04:27:23 Just one 04:27:28 You will jump off a bridge 04:27:46 Bahahaha 04:27:48 WTF 04:27:51 How are people so stupid. 04:28:06 With great difficulty! 04:28:44 GregorR: Also, just keep scrolling up. 04:28:47 They argue about it. 04:29:21 I scrolled up one more to see the not-retarded response (although I'd just use -abs($x), there's no reason to put that in a function) 04:29:29 Just as a note to the post below, you could join that function into one line instead of two as follows: 04:29:29 function change_pol($integer){ 04:29:30 return ((!is_numeric($integer)?false:(0 - $integer)); 04:29:30 } 04:29:30 ?> 04:29:36 GregorR: It continues right up to the top 04:30:50 * GregorR stabs himself in the face. 04:30:56 Ahh, much better. 04:31:12 -!- coppro has quit (Read error: 104 (Connection reset by peer)). 04:31:50 "What a relief!" 04:37:09 -!- coppro has joined. 04:40:46 -!- coppro has quit (Remote closed the connection). 04:41:06 huh, the original unix ran on a machine with less than 64k of memory 04:41:09 of course that's obvious in retrospect 04:41:11 but cooooool 04:42:14 -!- coppro has joined. 05:03:27 GregorR: make some swig ingest drink 05:13:29 I couldn't find all the ingredients. 05:15:12 GregorR: like, the list, or literally? 05:15:27 Uhh, I have a log, I can find the list :P 05:15:34 The only ones that are even slightly non-trivial are lavender and caffeine... and maybe brown sugar if you live in crazytown. 05:15:49 (But, you know, brown sugar was ON THE CARDS. It was not mandatory. :P) 05:15:56 I couldn't find lavender. 05:16:05 Want me to ship you some? 05:16:14 Uhhh ... only if I don't have to pay for it :P 05:16:35 GregorR: I'm sure the costs of shipping a tiny, tiny bottle overseas are exorbitant :P 05:16:38 of course, I could just make it myself. 05:48:29 Wow, doing a bidirectional process pipe in C is ... awkward. 05:49:24 Like, ridiculously so. 05:53:07 Who the fuck designed this shit? 05:57:00 ... Awkward in Unix? Definitely not original. The original design was at least *consistent*. ;) 05:57:26 (that is to say, if it's K&R, I shall murder someone. I'm not sure who.) 05:57:55 It's just... holy fuck, you need to do a bunch of pipe calls with 2-element arrays and dup2 and aaaaaaaaaaaaaaaaaaaaaaaaaaa 05:58:06 Why can't you just do "rw" on popen and get two files x_x 05:59:02 * ehird writes scandalous_popen 05:59:05 *bipopen 06:01:21 You now what? 06:01:32 I need to use a temporary file on one end anyway. 06:01:33 XD 06:02:49 ...mktemp() modifies its argument. 06:02:55 it is hard to express how much I hate C 06:05:07 ehird: try and express it! 06:05:30 I'll try and express how much I hate every C function operating on strings and the environment. 06:05:31 Ahem. 06:07:01 Yeah, the string functions are *really* bad. 06:07:59 ironically, when i learned C i was impressed with the string handling, because my expectations were set by Apple ][ BASIC 06:08:08 the secret to happiness in life: low expectations 06:08:55 The string and environment functions in C are a festering pile of teeming little bugs, except the bugs are actually made of excrement, and you discover that so's the floor; and it's all over your face, except now you're eating it, and vomiting on it, and eating that, and soon you're shitting out bugs 06:08:55 and more faeces and contributing to the general mess; meanwhile, the bugs, including the ones of your own creation, painfully detach every single limb in your body, keeping nervous signals connected wirelessly so you still feel the pain. They bore into your brain, where they give you the simultaneous 06:08:55 feeling of the worst possible horror and the worst possible pain, but keep you alive for longer than it takes for A(g64,g64) suns to die out just so you can keep experiencing it. At the end, you are buried alive in the pile of shitvomitbugs, and suffocate to death while inhaling in the putrid 06:08:57 vapours and indeed the shit, vomit and bugs themselves, along with the rotted remains of your limbs. You expire with this feeling. 06:09:11 That is what they are. 06:09:40 text clipping saved 06:09:49 You are most welcome. 06:11:03 Now I have to go and work out the length of some character buffers to allocate, to avoid my computer spending a nanosecond on it at runtime. 06:11:12 See you in a few years. 06:12:11 Okay, jesus christ; is there a popen that takes an array of arguments instead? 06:12:23 I would very much like that. 06:13:10 i do plan 9 C which handles it all a bit differently, so im useless for old-fashioned unix standard library stuff 06:13:43 Plan 9's string support is marginally more bearable. 06:13:53 eh, its still the same stuff really 06:14:00 definitely a pain 06:14:09 Something like Python's is the goddamn panacea because it just damn works. 06:14:18 In fact, I am going to write it, right now. 06:14:33 It'll in fact be easier than figuring this out. 06:15:34 yeah the thing about C string handling is that you are really supposed to write your own personal C string libraries of stuff and then take them with you for the rest of your life 06:16:34 I'm a crazy computer socialist, I want most things to be in the hardware and the rest to be in the closely-related language/OS. 06:17:07 (Basically I just don't like stopping my own head from hitting a brick wall as opposed to stopping everyone's, which I guess applies to real-life socialism too.) 06:17:20 i like your vision but i dont have the same dislike of building layers of abstraction out of disparate components 06:17:36 to me layered abstractions mean that it doesnt matter what the hardware is or does as long as you can get a UTM out of it 06:17:42 I like abstraction, I dislike unneeded disbtraction 06:18:11 i agree that in practice the 'layers' often fall apart, which is where the problems happen imo 06:18:13 take current hardware architectures, they have a huge disparity from our high level languages, the concepts they use (garbage collection, tagged pointers, ...) - yet it's our fault 06:18:40 it's perfectly possible to abolish that layer of "abstraction", and the result is a more coherent, faster, less roundabout system 06:18:43 and I think that's always a good thing 06:18:50 Because Intel makes great C machines. 06:18:56 (they can throw money at it!) 06:19:04 pikhq: do they, though? modern x86 differs quite a lot from C 06:19:09 ... Actually, x86 is not *that* much of a C machine. 06:19:10 I think they make great windows machines. 06:19:30 In fact their design philosophy is basically that of windows; pile shit on top if it saves us time and money to design. 06:19:36 It's more of an assembly machine -- it was originally designed assuming assembly programs. 06:19:42 ... With a lot of shit added on. 06:19:48 (ok, no offence to the intel guys, they're great; it's the climate that forces this) 06:20:14 i still dont understand how the chip architecture matters, once you have written an implementation of a given language - thats where my brain fails to make the connection 06:20:24 mycroftiv: Sure, you can ignore it, *but* 06:20:30 how is fortran on powerpc different from fortran on x86? 06:20:36 Ah, that's not the thing though. 06:20:45 All "general purpose" architectures aren't really and pretty much suck. 06:20:47 mycroftiv: The architecture limits efficient compilation techniques, for one. 06:20:55 I'm talking Lisp on an x86 vs Lisp on a good lisp machine. 06:21:08 The latter does checking of tagged pointers in hardware and automatically upgrades to bignums. 06:21:13 pikhq: hmm, how is that important? stuff is so fast nowadays compiling is always trivial, isnt it? 06:21:15 It handles concurrent, generational garbage collection - in hardware. 06:21:23 To compile most languages to x86, you pretty much compile it to something vaguely like C and then compile C. 06:21:31 mycroftiv: The problem is that "good enough" only seems alright because we haven't seen better. 06:21:44 We're blinded to what hardware designed for the top-level could do for us. 06:22:04 i just dont hear any specifics, and i think that its not theoretically compatible with the reality that everything is a utm 06:22:10 Massive, MASSIVE speed increases; Cheaper chips due to a less convoluted design; 06:22:21 Energy and therefore money saved by running less cycles - running instead *better* cycles 06:22:30 mycroftiv: Yes, everything is *theoretically equivalent in what it can do*. 06:22:32 It's about HOW you do it. 06:22:36 mycroftiv: Just because everything in practical use is a UTM doesn't mean that we should be using Brainfuck machine. 06:22:42 exactly 06:22:45 using *a* Brainfuck machine, rather. 06:22:52 where is a source that demonstrates massive efficiency gains of the type you are talking about? 06:22:53 I don't think it's a "real-world" kind of thing either 06:22:58 I think it's a correct type of abstraction 06:23:03 mycroftiv: nowhere because nobody does this kind of shit 06:23:09 I arrive at it through pure reason 06:23:17 so why am i supposed to believe your claims, without evidence? 06:23:20 mycroftiv: None, because the last Lisp machine was designed before I was born. 06:23:27 mycroftiv: Here is some pure logic to attempt to justify it: 06:23:27 ... Logic? 06:23:44 If we do 50 x86 instructions to shuffle memory and registers, making conditional branches, ... — just to add two bignums together. 06:23:45 ehird: Hmm. Actually, there has been some of "this kind of shit". 06:23:45 vs 06:24:01 as i said, to me logic seems to lie in the direction of 'you make a UTM, then you build abstractions on top, the low level doesnt matter' 06:24:02 We do ONE lisp machine instruction, which concurrently does a fixnum addition and checks the tag on the value, 06:24:05 sees that it's a bignum 06:24:07 discards that result 06:24:11 The JVM was designed to be implementable in hardware, and Sun has actually made Java machines that run Java rather efficiently. 06:24:12 and goes into a MICROCODE tight loop 06:24:14 to add it 06:24:19 that's (a) much faster 06:24:24 (b) much, much less pointless shuffling 06:24:31 and those are what lead to less power consumption 06:26:15 thats a good rationale, but somehow i never got the sense your motivation was really ecological 06:26:23 it's not 06:26:40 but, for instance 06:26:42 if we use less power 06:26:50 we can afford more power of the computational kind 06:26:56 at the same $ cost 06:26:56 but 06:27:00 it's a combination of a BETTER result (faster, less power, etc) 06:27:00 and 06:27:09 omitting needless "abstractions" that aren't 06:27:10 i guess to me the big issue is that we have spare computational power already that we need to find something useful to do with 06:27:14 they're anti-abstractions; they confuse nd obscure the high-level 06:27:17 instead of harmonising with it 06:27:26 and if we can destroy such silly things, whyever would we not? 06:27:39 of course my OS won't run on such chips by default 06:27:45 but we CAN'T destroy such silly things at the moment 06:27:48 due to how the market is 06:27:55 if we were in a position to, absolutely 06:27:56 no brainer 06:27:59 it should be done 06:28:07 and, I do hope that one day it will be done, and I'd like to work on it 06:28:47 i personally feel you are making arguments that are like claiming the fonts used in a document determine the quality of the content, but i remain very interested and supportive on the meta level :) 06:29:10 mycroftiv: theoretically, this buys you nothing in expressivity 06:29:31 mycroftiv: but would you use a 3ghz zilog processor in lieu of, e.g. a modern Intel Xeon? 06:29:41 there IS such a thing as a better architecture 06:29:50 absolutely 06:29:58 which absolutely was that to 06:29:59 my question? 06:30:10 i was agreeing about better architecture 06:30:13 right 06:30:23 it's sort of like, mycroftiv, 06:30:26 i just see the chips that we have today as perfectly capable and adequate for implementing any abstractions whatsoever 06:30:27 I could build my lisp os on top of windows 06:30:31 I really could 06:30:34 I could do it and it would work 06:30:52 the code would be god-awful, windows' overhead that concentrates on things that don't matter to my OS would slow it down, 06:30:57 theoretically, the abstractions would be totally mismatched 06:31:03 (and this would also lead to more bugs) 06:31:09 (in the translation of the abstractions) 06:31:10 etc...... 06:31:23 now, if running it on top of windows was the only way to feasibly do it on modern computers? 06:31:28 you bet i'd do it that way. 06:31:37 same justification as why I'm using a regular platform 06:31:44 instead of a superior high-level chip 06:31:53 mycroftiv: "Perfectly adequate", sure. So's Brainfuck. 06:32:01 the fact is that our chips, internally, are fucking awful 06:32:08 That doesn't make it good, that just makes it Turing-complete. 06:32:11 bloated piles of non-orthogonal shit, no coherent design philosophy, 06:32:14 a bunch of 80s relics, 06:32:22 and designed to run code from an imaginary language 06:32:22 pikhq: if someone had done the incredible amount of work to build a high level environment ON TOP of brainfuck, then brainfuck would be just fine - and isnt that the situation with our current chips? 06:32:26 sort of a hybrid of C and crazy 06:32:35 they really aren't "adequate", abstraction wise 06:32:40 you seem to be a software guy 06:32:43 so you might just not know this 06:32:48 mycroftiv: ... Someone has. 06:32:58 mycroftiv: see, those layers are only required BECAUSE of the underlying system 06:33:04 with a high-level chip, there would be far less layers 06:33:12 How's GCCBF going, anyways? 06:33:13 yup im 100% a software guy, thats why im kinda baffled by your perspective, because ive never had the hardware seem to interfere with anything i wanted to do 06:33:14 and the only layers would be consistent, logical, sane ones directly related to the abstraction as hand 06:33:17 *at hand 06:33:30 not a leaning tower of pisa of mismatching abstractions and doing shit pointlessly in software 06:33:37 mycroftiv: It's primarily an issue for OS and compiler authors. 06:33:47 see, i guess i see software as *about* building abstractions 06:33:48 But it's a *very* important issue there. 06:33:57 i honestly want very little done *for* me - i want to build the abstractions myself! 06:33:59 mycroftiv: see, we're using different definitions of abstraction 06:34:08 When I refer to abstraction in a bad sense, I mean a pointless layer over something 06:34:13 ehird: that may well be true, abstraction is a pretty abstract concept 06:34:18 as in, we have a perfectly good possibility for a layer X 06:34:24 but instead, we take a distinctly inferior one X0 06:34:28 and layer on top of it, X1 06:34:31 (other authors can build on top of the software that abstracts away most shitty things about the system) 06:34:34 the combined system works basically as well as X 06:34:40 but is klunky, distinctly inferior, almost certainly slower, ... 06:34:53 that's the kind of bad "dystraction" we have in today's chips 06:35:36 pikhq: yes, and since we have done that work, and we have lots of compilers and languages available - havent we gotten past the 'hard part', so to speak? 06:35:44 mycroftiv: look, same argument: 06:35:47 why not build things on windows 06:35:53 a lot of people have worked to build a whole system on top of it 06:35:57 and there's a lot of stuff on it 06:36:13 mycroftiv: let me know when you've switched to developing on windows. 06:36:34 ehird: well, im perfectly happy running plan 9 in qemu on windows, or using windows drawterm...so in that sense, im already there 06:36:46 mycroftiv: You don't *need* to care because of that work, but that doesn't make what you're using any better. 06:36:59 It just makes it more tolerable because you can pretend the bad shit isn't there. 06:37:02 pikhq: but the improvements can all be done at the upper layer 06:37:03 i have a feeling there's no way I could demonstrate why chips are really really shitty without you turning into a lower level guy, mycroftiv 06:37:12 ... No, you can pretend that they have been done. 06:37:20 and probably only with a better lisp chip in my hand, unless you get really serious about that sort of stuff 06:37:25 alas that will not happen any time soon 06:37:28 ASICs are expensive and such 06:37:31 ehird: i dont disagree that chips are shitty - but other people have done the hard work of making environments that allow *anything* to happen on top of them, without worrying about those layers 06:37:49 mycroftiv: So fucking what? Why are these pointless layers so sacred? 06:37:54 mycroftiv, that *doesn't make the status quo any better*. 06:37:57 If we don't need them, if we can do without them, 06:38:00 It just makes it tolerable. 06:38:03 ehird: they arent sacred, they just dont interfere with anything so far as i can tell 06:38:04 If we can run faster, cooler running, 06:38:09 Less power-using, 06:38:13 More theoretically elegant chips, 06:38:15 WITHOUT these layers 06:38:22 then WHY do we see them as an argument in favour of the platform that has them? 06:38:24 "Don't interfere with anything"? 06:38:37 mycroftiv: let me just tell you, they do interfere 06:38:40 I'm dreading writing my OS 06:38:43 pikhq: well, i love this channel because normally im the critic of the status quo, advocating use of an OS most people cant stand 06:39:04 x86_64 is like a personal vendetta against everything I want my OS to do 06:39:16 and I have to fight it 06:39:17 ehird: how does the chip im using prevent me from writing whatever software i want? thats what i dont understand 06:39:22 ... If you'll note, C is still in use, because it's the best language for interacting directly with the hardware *we have* (... modulo the bloody string library). 06:39:28 It doesn't, theoretically, mycroftiv. 06:39:32 mycroftiv: stop using C 06:39:35 start using machine language, directly 06:39:42 It doesn't prevent you from writing whatever software you want 06:39:45 why would i want to throw away those layers? 06:39:46 so why are you proposing this mystical... "C"? 06:39:50 mycroftiv: It doesn't prevent you, it just makes it a royal fucking pain to do certain things. 06:40:03 Like... Any operating system at all. 06:40:36 x86 OS development is significantly worse than Brainfuck coding. Brainfuck is at least consistent. 06:40:45 if mycroftiv says the same thing again this conversation is officially killed by the hardware-based Stupid Looping Conversation Killer 06:41:14 x86 has pointers packed in structs by splitting the damned things into three chunks of different size. 06:41:15 (the SL(a)CK) 06:41:35 * ehird resists the temptation to call his string type Bs for bytestring 06:41:36 (that is one of the *less* awful examples; dealing with that is at least a short function of bit twiddling) 06:41:41 (str prefix is taken by stdlib :-P) 06:41:56 well, the whole conversation was based on a misunderstanding i guess - i thought we were talking about new chips enabling benefits for end users, by allowing for better software to be developed 06:42:04 -!- pingveno has joined. 06:42:12 if the only question is the benefits to OS writers and compilers, i never would have had any questions or disagreements 06:42:17 mycroftiv: I think that the end result is, perhaps not the actual software is better, 06:42:18 BUT 06:42:19 it runs better 06:42:21 mycroftiv: It allows for better *operating systems* to be developed. 06:42:36 well, i believe better OSes == better software 06:42:41 And that has a tendency to make everything else run better because the OS is less bad. 06:42:55 Runs better = smoother, with less crashes, less pointless layers, faster, ... AND IS MORE THEORETICALLY ELEGANT 06:43:04 you say that "well, that's irrelevant because the other platform has extra layers" 06:43:13 the point is that the alternative doesn't REQUIRE those layers 06:43:19 so, you think the reason modern OSes pretty much all suck is that the chips force them to, by forcing them to push C style semantics up into layers it doesnt belong? 06:43:20 so that's not valid 06:43:26 then add up theoretical elegance + the benefits? 06:43:28 mycroftiv: no 06:43:31 to a degree, yes 06:43:34 not entirely, though 06:43:47 (did we ever say that?.) 06:43:54 no, im trying to understand what you mean 06:43:59 thats why i asked the question 06:44:06 because im trying to formulate an expression of your thesis 06:44:14 which i have yet to really understand, hence all the questions 06:44:15 IRC seems to me to be a fundamentally bad medium for debate. 06:44:31 bring on the broken beer bottles and spiked baseball bats in an alley! 06:44:43 You have to rush to state your arguments, debate quickly goes off track with rapid-fire messages, it can get emotional due to the real-time nature, etc... 06:44:47 im ready for the procedural vs. functional rumble 06:44:56 nobody likes procedural. :) 06:44:59 i do 06:45:05 you don't count as a person, then. 06:45:07 its the only model i actually have ever been able to learn to think in 06:45:15 everything else i have to 'force' my brain into 06:45:17 fix your brain 06:45:29 but 'follow a set of instructions in order, like following a recipe' - ive understood that since age 5 06:45:59 it's a model suitable for trivial recipes 06:46:05 and instructions to 5 year olds. 06:47:20 i actually started to learn church's lambda stuff at around that age also, because my grandfather taught math and he had a game called T U F that was a proof-making game you played with dice 06:47:32 and in retrospect, i realize it was actually teaching that 06:47:54 this conversation is kinda going nowhere 06:48:20 sorry for trying to understand your ideas, my friend 06:48:25 not trying to be offensive about it 06:48:39 umm 06:48:43 when did I say anything about that 06:49:00 I was just saying that, based on my whole-lifetime experience of this conversation, it's unlikely to lead anywhere 06:49:37 well, any time that you feel you have wasted, i offer to refund to you in whatever form you like 06:49:42 mycroftiv: Do you know Haskell? 06:49:55 If not, learn it. 06:50:08 pikhq: ive studied it and played with it a bit, i wouldnt presume to claim i 'know' it the same way i know the languages i do say i know 06:50:35 i just find it difficult to convert from the algorithms in my head to a haskell formulation 06:50:40 Though it's hard to pick up (simply due to being markedly different from everything else you likely know), it makes it rather easy (compared to just about anything else) to grok functional programming. 06:51:35 i study math as much as i can, and sadly my brain handles f(g(x)) ok, but then e(f(g(x))) - and its gone 06:52:15 and i find that it seems like you are supposed to be able to track even more x of y of z of alpha of beta..than that 06:52:29 so its a bit of a cognitive wall for me 06:52:35 mycroftiv: Instead of saying "int sum (int *array; int size) {int sum;for (int i = 0; i < size; i++) sum += array[i]; return sum;}", you just do "sum = map (+)" 06:52:51 mycroftiv: maybe you should augment your memory :) 06:52:52 That is to say, you don't say *how* you do something, but rather *what you want done*. 06:52:55 oh yeah i love map! 06:53:11 i have my own library of that kind of stuff i wrote for myself in C 06:53:12 mycroftiv: Figure this out: 06:53:27 Incidentally, "e . f . g" is not much harder than "f . g" ;) 06:53:31 sum xs = fold (+) xs 06:53:41 foldr, you mean? 06:53:42 So, we have a list [1,2,3] right? 06:53:46 pikhq: No. 06:53:47 I mean fold. 06:53:50 Okay, then. 06:54:20 mycroftiv: given the list [1,2,3], and addition, what syntactic change can we make to it to sum it? 06:54:26 like, [1,2,3]; you have a + sign 06:54:31 how do you turn it into the sum of [1,2,3]? 06:54:42 ... Also, "map (+)" is made of fail. That makes a list of functions, and... Yeah. Totally wrong. 06:54:53 pikhq: Shutup :P 06:55:21 are you just talking about fold (+) [1, 2, 3] ? 06:55:39 mycroftiv: I'm trying to explain folding in terms of functional languages 06:55:48 as in, how you model operations non-iteratively 06:55:51 you have [1,2,3] 06:55:56 you can make syntactic changes to it 06:55:59 you have + 06:56:14 what transformation do you do to [1,2,3] using + to turn it into the sum? 06:56:23 you get rid of the brackets 06:56:26 and replace , by + 06:56:30 [1,2,3] → 1+2+3 06:56:34 that's, basically, what fold does 06:56:42 product is fold (*), then 06:56:44 [1,2,3] → 1*2*3 06:57:00 fold itself is built as a recursive function 06:57:06 but in high level haskell, you don't generall recurse 06:57:13 why are you explaining these basics to me? im not ignorant, i just said my brain doesnt seem to naturally think in functional terms 06:57:17 you use simple combinators like that to build up a transformation of data 06:57:24 mycroftiv: It's not what fold is itself 06:57:29 That's not what I'm trying to get across 06:57:36 I'm trying to get across how to apply the functional mindset to it all 06:58:42 do you know the borges story "Tlon, Uqbar, Orbit Tertius" ? 06:58:51 nope. 06:58:54 this is *not* a tangent ;) 06:59:16 well, to cut directly to the point - alternate universe where people dont think in nouns, they only think in verbs/perceptions 06:59:41 when i learned about functional programming it was like that story had come to life and i was amazed 06:59:44 that's the opposite of functional programming, really 06:59:51 functional programming is all about the data 07:00:06 b-b-b-ut... 07:00:26 Imperative programming is a series of verbs. 07:00:38 The internet is a series of verbs. 07:01:27 Functional programming is, ultimately, a piece of data, and what you write is transformations on other pieces of data in order to arrive at your final piece of data. 07:01:37 Oh, and functions themselves are data. 07:01:50 yes, i do love lisp 07:01:50 (which, of course, means you can do transformations on your functions) 07:02:03 i absolutely believe lisp has the best and clearest model of programming 07:02:51 he never said lisp 07:02:54 ... Lisp is a hacky and low-level language, in my estimation. 07:02:55 i didnt say he did 07:02:56 :P 07:02:58 common lisp in fact is not a functional programming language in the slightest. 07:03:01 i was speaking for myself 07:03:09 "yes," doesn't follow then 07:03:13 anyway 07:03:16 i'm doing fun stuff! 07:03:19 you will see soon. 07:03:54 'functions themselves are data' was the sole referent of 'yes, i do love lisp' - by which i meant 'i agree that the model where functions are data is the best, based on my appreciation of lisp' 07:04:06 ah 07:04:45 I am warming more to lisp lately 07:04:50 see i dont want you guys to think that i dont *agree* with you - im just more skeptical that the Data Paradise can actually be brought about 07:04:52 a bastardised, ehird lisp 07:05:00 but a lisp nonetheless 07:05:13 mycroftiv, it was done a few decades ago. 07:05:18 mycroftiv: I have modelled actions successfully in my domain 07:05:19 i *agree* with all the stuff you say, but i think that even if you make better chips and OSes and everything...software will still probably mostly suck 07:05:20 Are you familiar with Lisp machines? 07:05:24 they have turned out succ— 07:05:28 pikhq: allllmost 07:05:30 they still had filesystems 07:05:35 -!- kar8nga has joined. 07:05:39 (which stored the code files) 07:05:42 ehird: True. Still... 07:05:43 but pretty close 07:05:43 pikhq: not personally, ive just read about them, i grew up on the home computers of the 80s starting in 1980 and i never had any access to anything else 07:06:01 mycroftiv: the whole point of my OS is that I think I know how to make software not suck 07:06:10 as a fundamental model 07:06:13 mycroftiv: Less suck than modern OSes. 07:06:56 pikhq: since i hate all modern OSes except plan 9, no argument from me on that. 07:07:07 plan 9 is still loatheful 07:07:27 ehird: no way, it has namespaces, which are Just Exactly Right, imo 07:07:38 disk/ram namespaces are separate 07:07:40 'nuff said. 07:07:48 what? no they arent... 07:07:56 you can build your namespace however you want 07:07:57 if you think they aren't 07:08:01 That's kinda the C model. 07:08:02 you misunderstood my comment entirely., 07:08:16 in plan 9 your namespace knows nothing about ram vs disk 07:08:17 also, the functions in the OS are distinctly inferior to the functions in the language 07:08:20 being untyped affairs 07:08:23 mycroftiv: no, no, listen 07:08:34 it has in-memory addresses 07:08:40 foo->bar->baz in C 07:08:43 and it has filesystem addresses 07:08:45 /foo/bar/baz 07:08:52 these two concepts being distinct is evil 07:09:05 and a cause of many, many woes present in computing today 07:09:13 oh sure, i agree with that 07:09:26 thats not what namespaces are in plan 9 though, we are at different layers, as usual 07:09:30 no 07:09:32 we're at same layers 07:09:36 you are just using different definitions 07:09:47 and trying to rebut the arguments I made with my definitions, with yours... 07:09:57 im using namespace as defined/used in the context of the plan 9 operating system and its manpages, thats all 07:10:29 simply talking about its implementation of per-process namespaces, which is a great feature - i totally agree that ultimately the different modes of addressing data between filesystem and programming languages is Bad 07:10:29 And he's discussing from a programming perspective, not from the perspective of someone using, say, rc. 07:10:38 -!- coppro has quit (Remote closed the connection). 07:10:46 if plan 9 just had rc and C i could respect it 07:10:55 though it'd be shit, as all it'd have would be weakling string types. 07:11:04 ...there's a reason c has a richer type system :) 07:11:12 pikhq: i program plan 9 in C, i understand the point he is making 07:11:15 ehird: Weakling string types doesn't necessarily make for a bad language. See Tcl. 07:11:18 :P 07:11:24 pikhq: we will have to strongly disagree. 07:11:57 (... Though, Tcl does it via magic, so it's not exactly a *grand* language. And that's probably about as good as you can get while retaining "everything is a string".) 07:12:16 rc is a nice language. for scripting. 07:12:22 uh, wouldn't want to program a whole system in it. 07:12:33 yet the "language" of plan 9 has exactly the same semantics, and it still has C 07:12:37 its certainly nicer than bash 07:12:41 ... no coincidence: C's semantics are, in fact, nicer to code in 07:12:45 than the language of Plan 9's 07:12:51 and its separate namespace hierarchy 07:12:58 with silly, untyped strings 07:13:38 ehird: you arent using vocabulary in the way plan 9 does, so its very hard for me to parse your statement... 07:13:53 i wasn't aware plan 9 brainwashed its adherents :) 07:14:04 namespace: a space containing identifiers 07:14:04 sigh. 07:14:11 e.g. in C, a->b->c is a member of its namespace 07:14:19 He's using it the way anyone sane (and most insane people) use it. 07:14:25 in Plan 9, /a/b/c would be an example 07:14:25 all along, i was trying to talk about namespaces in the specific plan 9 sense, that is all 07:14:26 a space of names 07:14:28 simple 07:14:38 Plan 9's is distinctly inferior because: 07:14:41 pikhq: yes, but in plan 9, 'namespaces' have a much more OS context specific meaning, which is what i was trying to talk about 07:14:52 the names can only identify typeless strings of bytes 07:15:02 C's namespace can identify all sorts of richer things 07:15:12 rc is an example of a language built around the semantics of Plan 9's namespaces 07:15:20 C is an example of a language built around the semantics of C's namespaces 07:15:32 there's a reason why most of plan 9 is written in C, not rc: C is nicer for non-scripting things 07:15:38 and this is because of its richer namespace. 07:15:53 in my OS, there is only one namespace, and it is a rich, object-based one, like Smalltalk 07:17:46 (exception: Forth. (but there be dragons there, and you can pretend that that is entirely imaginary)) 07:18:08 pikhq: I'm not referring to the languages 07:18:18 Oh, fair enough. 07:18:18 and forth is basically a bootloader in my os :P 07:18:29 the thing is that most languages are both a namespace and a language based on that namespace 07:18:29 Tiny bit more complicated than a bootloader. 07:18:38 with plan 9 it's separate: namespace:plan 9, language:rc 07:18:42 so it's harder to discuss it 07:18:44 I guess the closest thing it would be (and it's not exactly *close*) is a kernel? 07:18:47 because people don't see it as a language 07:18:50 pikhq: nah 07:18:52 it's not centralised anything 07:18:56 it just executes the upper code 07:19:07 no hardware or anything 07:19:09 eh 07:19:19 it doesn't have a name in the common vernacular. :) 07:19:42 Like I said, it's not exactly close. 07:19:46 yah 07:21:03 pikhq: my secret project, by the way, is an IRC bot scriptable in C 07:21:05 that is, 07:21:21 you can do !eval say(channels[0], "hello world") 07:21:23 and the like 07:21:27 it turns out that gcc -c is fast 07:21:37 so kinda-JITting C is perfectly possible 07:21:40 as long as you don't link 07:21:48 so, dlopen :) 07:21:59 ...but also some fun other stuff. 07:27:15 ofc, I have to somehow open this object file without linking it 07:27:21 which could be uh tricky 07:28:34 ooh, linking a shared lib is actually fast 07:29:02 [ehird:~/Code/cbot] % time ./dynamic '2' >/dev/null 07:29:02 ./dynamic '2' > /dev/null 0.02s user 0.02s system 94% cpu 0.048 total 07:29:56 now all I have to do is implement a dlopen that latches on to another process so I can access the bot from the snippet... 07:29:58 :P 07:48:10 % ./dynamic 'int j;for(int i=0;i<1000;i+=3)j+=i;j' 07:48:12 166833 07:48:14 yep, that... works 07:57:59 -!- oerjan has joined. 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:13:01 -!- pingveno has quit (Read error: 104 (Connection reset by peer)). 08:23:36 -!- M0ny has joined. 08:24:22 hi 08:25:18 -!- kar8nga has quit (Remote closed the connection). 08:25:37 ho 08:32:35 ha 08:44:01 -!- oerjan has quit ("It's no laughing matter!"). 09:03:43 -!- ehird has quit. 09:41:33 -!- Gracenotes has quit (Read error: 60 (Operation timed out)). 10:38:32 -!- FireFly has joined. 10:41:42 -!- MigoMipo has joined. 11:01:29 -!- BeholdMyGlory has joined. 11:05:16 -!- M0ny has quit. 11:18:04 -!- MigoMipo has quit. 11:31:56 -!- BeholdMyGlory has quit (Remote closed the connection). 11:32:12 -!- BeholdMyGlory has joined. 12:14:50 -!- Pthing has joined. 12:27:28 -!- MigoMipo has joined. 13:16:50 -!- MigoMipo has quit. 14:10:11 -!- ais523 has joined. 14:11:21 -!- MigoMipo has joined. 14:25:11 -!- puzzlet_ has joined. 14:25:12 -!- puzzlet has quit (Remote closed the connection). 15:07:09 -!- Asztal has joined. 15:20:50 -!- MigoMipo has quit ("fe'o rodo"). 15:35:51 -!- kar8nga has joined. 16:19:23 -!- puzzlet_ has quit (Read error: 104 (Connection reset by peer)). 16:51:59 -!- puzzlet has joined. 17:03:12 -!- kar8nga has quit (Remote closed the connection). 17:06:33 -!- lifthrasiir has quit (Read error: 145 (Connection timed out)). 17:21:35 -!- oerjan has joined. 17:35:07 -!- lifthrasiir has joined. 17:36:40 -!- lifthrasiir has quit (Remote closed the connection). 17:42:34 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)). 17:51:50 -!- lifthrasiir has joined. 17:58:21 -!- puzzlet has joined. 18:01:02 -!- Gracenotes has joined. 18:01:56 -!- Gracenotes has quit (Remote closed the connection). 18:02:42 -!- Gracenotes has joined. 18:29:47 -!- ehird has joined. 18:29:51 -!- ais523 has quit (Remote closed the connection). 18:33:42 yawn 18:34:05 yet another weariness noun 18:41:51 -!- ehird has quit. 18:44:52 -!- pingveno has joined. 19:09:25 -!- M0ny has joined. 19:28:25 -!- Gracenotes_ has joined. 19:31:24 -!- coppro has joined. 19:43:32 -!- Gracenotes has quit (Nick collision from services.). 19:43:37 -!- Gracenotes_ has changed nick to gracenotes. 19:51:44 ding, dong, the channel's dead 19:52:38 * coppro ding's the channel's don 19:52:40 *dong 19:53:16 you donna wanna messa with the channel's don 20:14:23 -!- coppro has quit (Remote closed the connection). 20:31:13 -!- coppro has joined. 20:39:09 -!- pingveno has quit (Remote closed the connection). 20:49:18 -!- CESSMASTER has quit (wolfe.freenode.net irc.freenode.net). 20:49:18 -!- SimonRC has quit (wolfe.freenode.net irc.freenode.net). 20:50:56 -!- CESSMASTER has joined. 20:50:56 -!- SimonRC has joined. 20:51:00 -!- CESSMASTER has quit (Connection reset by peer). 20:52:05 -!- SimonRC has quit (Read error: 54 (Connection reset by peer)). 20:52:06 -!- SimonRC_ has joined. 20:53:54 -!- CESSMASTER has joined. 21:17:59 -!- GreaseMonkey has joined. 21:37:17 -!- M0ny has quit. 21:51:34 -!- GregorR_ has joined. 21:56:53 -!- BeholdMyGlory has quit (Remote closed the connection). 21:57:13 -!- GregorR has quit (Read error: 110 (Connection timed out)). 22:52:46 -!- sebbu2 has joined. 23:03:59 -!- gracenotes has changed nick to Gracenotes. 23:04:12 -!- FireFly has quit ("Later"). 23:07:06 -!- nescience has quit (Read error: 60 (Operation timed out)). 23:10:05 -!- sebbu has quit (Read error: 110 (Connection timed out)). 23:11:31 -!- poiuy_qwert has joined. 23:54:00 I think I just noticed the subletest joke I've ever noticed in a Discworld book