devyn changed the topic of #elliottcable to: #alexgordon-ranting
Sgeo has joined #elliottcable
yorick has quit [Remote host closed the connection]
niggler has quit [Ping timeout: 272 seconds]
alexgordon has quit [Quit: Computer has gone to sleep.]
niggler has joined #elliottcable
<whitequark> ELLIOTTCABLE: ^ the paragraph on HCI people is spot on ;)
niggler has quit [Quit: Textual IRC Client: www.textualapp.com]
eligrey has quit [Quit: Leaving]
<whitequark> and other articles on his blog, they're excellent
<whitequark> I just realized that the textbook notion of 'particle-wave duality' is probably the most moronic explanation ever which actively inhibits any kind of understanding
<whitequark> this guy's (and modern physics' in general) explanation is what really made it click for me:
<whitequark> so, an electron (for example) is a wave, period. so there's absolutely nothing surprising that it can pass through two slits simultaneously, then interfere with itself and hit the detector: after all, waves totally do that
<whitequark> however, that wave can only exist in certain configurations. there's no "half an electron" configuration: there's only an "electron" or "nothing" ones. that's what makes it a quantum, and also what gives it particle-like properties.
sharkbot has quit [Remote host closed the connection]
sharkbot has joined #elliottcable
yorick has joined #elliottcable
fwg has joined #elliottcable
alexgordon has joined #elliottcable
PragCypher has quit [Quit: Leaving]
fwg has quit [Ping timeout: 264 seconds]
PragCypher has joined #elliottcable
<alexgordon> hm where's cloudhead when you need him
PragCypher has quit [Ping timeout: 245 seconds]
PragCypher has joined #elliottcable
Sgeo has quit [Read error: Connection reset by peer]
Sgeo has joined #elliottcable
Sgeo has quit [Read error: Connection reset by peer]
Sgeo has joined #elliottcable
niggler has joined #elliottcable
<cuttle> whitequark: right, yeah
<cuttle> whitequark: it's way cool
<joelteon> the beatles are really good
<cuttle> joelteon: hell yeah
<cuttle> :p
<cuttle> was listening to white album yesterday
<joelteon> it's just pop rock
<joelteon> but it's really good pop rock
<cuttle> yeah
<cuttle> very groundbreaking pop rock
<cuttle> lots of their one-offs are now genres
<cuttle> alexgordon: hi
<alexgordon> hi cuttle
<alexgordon> cuttle: let's talk about proglangs
brr has quit [Ping timeout: 240 seconds]
PragCypher has quit [Quit: Leaving]
<cuttle> alexgordon: yeah definitely
<alexgordon> cuttle: my dream is to one day be rich enough that I can just sit on a tropical island writing compilers
<cuttle> haha :p
<alexgordon> actually probably rich enough to do that now
<alexgordon> tropical islands aren't expensive to live on!
<cuttle> haha
<alexgordon> but yeah, SPJ is my idol
<alexgordon> I'd love to have his job, except for the working for microsoft bit
<cuttle> he's not my idol because he has a lot of dumb ideas
<cuttle> but yeah
<alexgordon> cuttle: everybody has dumb ideas
<alexgordon> even steve jobs!
<alexgordon> remember the itunes boombox?
<cuttle> lol
<purr> lol
<cuttle> ihomes are everywhere
<cuttle> so i mean a similar thing is everywhere
<cuttle> but yeah steve jobs did have dumb ideas
<cuttle> but yeah spj ruined haskell
<cuttle> couldve been good
<alexgordon> lol
<alexgordon> yeah, damn that lazy eval
<cuttle> no, that conception of side effects
<alexgordon> cuttle: ok if not SPJ, why not sqlite gyu?
<cuttle> not familiar with him
<alexgordon> he even DOES live on a tropical island
<cuttle> SPJ perpetuates the stupid "pure programs can only make a computer hot" misunderstanding
<cuttle> when you have expressions you can evaluate, having communications happen upon the event they are evfaluated is not the only fucking way to communicate
<alexgordon> oh actually he doesn't, I thought he lived on hawaii
<cuttle> and, he reeeaaallly loves monads
<cuttle> haha
<cuttle> north carolina
<cuttle> used to be where ec lived
<alexgordon> cuttle: haha ironically SPJ writes a compiler which is 99% pure
<cuttle> yeah i know he's not all dumb
<cuttle> obviously
<cuttle> just mean
<cuttle> his interpreation of "reactive"
<cuttle> is a bunch of IO programs having side effects
<alexgordon> I do think people make too much of pure vs impure
<alexgordon> it's like
<alexgordon> it's like erm
<alexgordon> east/west germany
<alexgordon> or actually east/west berlin
<alexgordon> sure, there are differences, but there's no need to build a fucking wall
<cuttle> and see your statement just now rests on the assumption that the *only* way whatsoever is to have side effects
<alexgordon> aren't side effects what we're talking about?
<cuttle> no
<cuttle> communication with the outside world
<cuttle> is what we're talking about
<alexgordon> oh ok
<alexgordon> yeah that's different
<cuttle> like suppose your "main" is a value that represents a string of events
<cuttle> or something
<cuttle> there are more ways
<cuttle> semantics in which "side effect" is not meaningful
<alexgordon> personally I think function application/calling should be the universal interface
<cuttle> i've said this probably too many times but
<alexgordon> with only syntactic sugar built on top of it
<alexgordon> from there I say that impure function are the most elegant way of implementing I/O
<alexgordon> *functions
eligrey has joined #elliottcable
<cuttle> i would say that it's far from the most elegant
<alexgordon> it's elegant because it has functions as the universal interface
<cuttle> but it's a *massive* extension to the concept of a funtion
<alexgordon> once you accept the full implication of that, then it's worth it
<cuttle> you have functions that transform values
<cuttle> or you have functions that transform values and...
<alexgordon> of course most languages don't have function calling as the universal interface, AND they have impure functions, so worst of both worlds
<cuttle> also have all these semantics about *when* they're evaluated, and they can affect this particular set of things in the world
<cuttle> i'd say most do have function calling as the universal interface
<cuttle> what are you talking about?
<alexgordon> cuttle: I mean the only way of doing something "functiony" is with a function
<alexgordon> e.g. in C you have functions AND macros, so it's not universal (and functions aren't first class either)
<alexgordon> in C++ you have functions and macros, plus member functions, "functors", virtual member functions...
<alexgordon> oh and std::function
<alexgordon> in ObjC you have C functions, macros, methods and blocks
<alexgordon> in JS you have functions, plus prototype functions
<cuttle> well there's no lazy evaluation or homoiconicity or not-incredibly-painful higher order functions in C
<alexgordon> in Ruby you don't have functions at all, you just have methods
<cuttle> and you don't always *want* those things
<alexgordon> point is, what I want is there to be ONLY functions. everything is a function
<alexgordon> e.g. when I do
<alexgordon> arr[0]
<alexgordon> that should syntactic sugar for a function
<alexgordon> get_item(arr, 0) or whatever
<cuttle> so you want everything to be extensionally opaque
<alexgordon> erm, I have no idea what you just said, but fine
<cuttle> and also, that doesn't make sense in C, because a function call is a particular thing
<cuttle> a push and a jump
<cuttle> that indexing an array is *definitely* not
<alexgordon> it could be
<alexgordon> look
<alexgordon> actually, can't do it in C. Can do it with C++
<cuttle> also you're saying it's simple and elegant to huuugely expand what a function is
<alexgordon> template<typename T> static inline T* get_item(T* ptr, size_t offset) { return ptr + offset; }
<cuttle> a pure function is a mapping
<cuttle> an impure "function" is a not
<cuttle> s/a//
<cuttle> it's something way more complicated and ill defined
<alexgordon> cuttle: in a perfect world people don't use a lot of impure functions
<cuttle> that affects practice, but not the semantic model
<cuttle> of a function
<alexgordon> sure
<cuttle> when you're talking about elegant
<alexgordon> cuttle: look, some people think megan fox is hot
<cuttle> ...
<alexgordon> personally I don't, but I don't doubt that THEY think she's hot
<cuttle> i'm just arguing
<cuttle> that your personal opinion that adding side effects is elegant
<cuttle> relies on the fact that you swim in the soup of side effects
<cuttle> you don't see them
<cuttle> you're looking at them from the inside
<alexgordon> nah, my personal opinion is that having everything be a function is elegant
<cuttle> so they don't appear to add much to the conceptual model
<cuttle> but step outside
<cuttle> look down from above
<trolling> open your eyes
<trolling> i see
<alexgordon> maybe it's because I'm a C(++) programmer, I don't mind
<cuttle> step in my helicopter
<trolling> your eyes are open
<alexgordon> hi trolling
<trolling> o/
<alexgordon> it isn't offensive to me that side effects get in there
<alexgordon> or impurity, whatever
<cuttle> it's not offensive to me
<cuttle> i feel like you've formed this conception of religious purely functional programmers
<cuttle> and have lumped me into it
<cuttle> and haven't listened to a word i've said
<alexgordon> it's kind of offensive to me to have to split the world up into different things though
<cuttle> this is a fucking impossible conversation
<alexgordon> yeah
<cuttle> i'm not talking about offensiveness
<alexgordon> let's talk about megan fox again
<cuttle> why the fuck are we bringing offensiveness into it
<cuttle> are you interested in discussing proglangs at all
<cuttle> because now i'm not
<cuttle> not available in my country
<alexgordon> I think cuttle needs a spliff
<trolling> cuttle: there there, lie back and think of categories
<trolling> monads everywhere
<cuttle> alexgordon: you start the conversation wanting to genuinely talk about languages, and then transition to saying stupid shit to make me mad
<cuttle> which, actually, is literally every fucking time you've said you want to learn paws
<cuttle> etc.
<alexgordon> cuttle: you said it yourself, in C a function is just a push and a jump
<alexgordon> somewhere along the line we started adding more meaning to it
<alexgordon> I feel like we lost something there
<cuttle> *you* wanted it to be something different and more abstract
<cuttle> when you wanted array indexing to be a function
<cuttle> because in C you don't want array indexing to be a push and a jump
<cuttle> you want it to be a pointer dereference
<alexgordon> well... it can be both
<alexgordon> in fact in C the compiler will inline stuff
<alexgordon> so the example works (it just needs templates)
<alexgordon> I do like that in haskell you can do (+1) and do partial application on "built in" operators
<cuttle> then even in c, a function is not just a push and a jump
<alexgordon> it's a push and a jump or less
<cuttle> the thing is though, from a denotational point of view, that's not at all simple or elegant
<cuttle> it's simple or elegant given that you have this massively complicated x86 machine in your assumptions
<alexgordon> lol ok but I think you're missing the pigeon from the trees
<purr> lol
<cuttle> ...is that an expression?
<alexgordon> cuttle: nope
<cuttle> then do you mean that i'm looking down from too high of an abstraction
<cuttle> or not seeing the forest for the trees
<alexgordon> not sure, this was 10 minutes ago
<cuttle> lol
<purr> lol
<alexgordon> look I just really like functions - so much that I want to make whole programs out of them, and I like functions to be pushes and jumps like in C -- nothing super complex
<cuttle> all right
<cuttle> the problem is that that is super complex
<cuttle> x86 is super complex
<cuttle> even arm is super complex
<alexgordon> yeah but it's not complex for me because I'm not involved in that stuff
<alexgordon> it's the opposite of a leaky abstraction
<cuttle> and basically, that's how you already write progrmas
<cuttle> in c or python or anything
<alexgordon> yeah but the difference between C and Python is that in Python people worry about having "too many function calls"
<alexgordon> whereas in C people don't give a shit. that's freedom, man
<cuttle> anyway
<cuttle> going back to your straw man of me
<cuttle> getting offended at side effects
<cuttle> actually
<cuttle> i have to go do things
<cuttle> bye
<alexgordon> lol I didn't mean offended as in "you write a strongly worded letter about it"
<purr> lol
fwg has joined #elliottcable
<whitequark> cuttle: in C function call, or array indexing, is not a push and a jump or a dereference
<whitequark> it's an operation which has the semantics defined by the C abstract machine. it can be translated in any way the compiler wants.
<whitequark> and it frequently will be, duh
<alexgordon> that's a mathematician's answer if I ever saw one ;)
<whitequark> alexgordon: but it's practically significant
<alexgordon> maybe
<whitequark> C can and will inline functions. Or partially inline functions. Or eliminate subexpressions. Or...
<alexgordon> there's semantics, implementation details, then there's the implementation details that leak through into semantics
<whitequark> and it will try to access arrays with vector operations, and so on
<whitequark> it's not that you're fundamentally wrong, C is just a shitty example
<alexgordon> the precise code that a C program compiles to is irrelevant to me (most of the time), but the fact that it's not say... a ruby message send is relevant a lot of the time
<whitequark> if you compile ruby with a proper vm (jvm, pypy, ...) it stops being relevant too
<alexgordon> lol I knew you'd say that
<purr> lol
<alexgordon> nah
<alexgordon> because I'm a cheap bastard
<alexgordon> and impatient
<alexgordon> so I want to get the max out of my code
<alexgordon> to run on the measly hardware I ahve
<whitequark> that's more due to static/dynamic distinction
<alexgordon> it's not any one thing really
<alexgordon> e.g. having unsigned helps a lot, even though I hate it
<alexgordon> plus being able to write my own allocators
<whitequark> unsigned?
<alexgordon> no unsigned ints on the jvm
<whitequark> so?
<alexgordon> it's useful
* alexgordon shrugs
<purr> ¯\(º_o)/¯
<whitequark> not sure how it makes your code faster
<alexgordon> well, try writing a chess engine without unsigned and report back ;)
<alexgordon> I remember the jgit developer said that unsigned is the main reason it's slower than git
<whitequark> tl;dr: java has a shitty object model. not news really
<whitequark> the cost you pay in C is that it's an incredibly leaky abstraction. you pretend to write for the C abstract machine, because otherwise the compiler will fuck you over, but actually you write for a certain architecture (or worse, several ones at once)
<whitequark> that's also a reason most projects trying to be "as fast as C" are doomed to remain in the same place
<joelteon> sooooooo
<joelteon> resolving dependencies is pretty hard
<joelteon> at least if you're dumb like me
<ELLIOTTCABLE> hi
<purr> ELLIOTTCABLE: hi!
<ELLIOTTCABLE> alexgordon: I've gotta say: if you haven't already worked with your bank and arranged for that transfer, I can easily sell the rest of my inventory in five seconds, here. For more than twice what you've offered me. /=
<ELLIOTTCABLE> It's been a couple days, and I haven't heard from my bank, sooooo …
<alexgordon> ELLIOTTCABLE: errrrrr, didn't you get my email?
<alexgordon> do you EVER check your emails elliott?
<ELLIOTTCABLE> ahhh, haven't been online in days. I'll go look.
<alexgordon> LOL
<purr> LOL
<alexgordon> ELLIOTTCABLE: well I'm willing to buy them at $242 if you want ;)
* ELLIOTTCABLE laughs
<ELLIOTTCABLE> yeah, no. I'm gonna just trade them off right now, then.
<ELLIOTTCABLE> related:
<ELLIOTTCABLE> my bank shat itself, at the large transfer.
<alexgordon> LOL
<yorick> alexgordon: it's totally a good deal :D
<ELLIOTTCABLE> (the rest of the inventory, not you)
<alexgordon> ELLIOTTCABLE: looks like I made you $8k then ;)
<ELLIOTTCABLE> AHHHH, I see
<ELLIOTTCABLE> -bitcoin
<purr> ELLIOTTCABLE: Did you mean `-BTC`?
<ELLIOTTCABLE> -how's the bitcoin doing?
<purr> ELLIOTTCABLE: Did you mean `-BTC`?
<ELLIOTTCABLE> -BTC
<ELLIOTTCABLE> hm
<ELLIOTTCABLE> -BTC watch
<purr> ฿ ($US): 34.01 @ Bitstamp, 42.27 @ Coinbase
<ELLIOTTCABLE> alexgordon: how's life?
<alexgordon> ELLIOTTCABLE: I was telling micah earlier. I want to go live on a tropical island and write compilers
* ELLIOTTCABLE laughs
<ELLIOTTCABLE> hi, cuttle
<alexgordon> ...also project BOAT which I'm not allowed to talk about :P
<ELLIOTTCABLE> and all
<ELLIOTTCABLE> lost my debit card
<ELLIOTTCABLE> sucks
<ELLIOTTCABLE> especially-much because it currently has ALL of my bitcoin spoils on it >,>
<alexgordon> .... have you cancelled it?
<ELLIOTTCABLE> got on the line with my favourite investment advisor the other day. I'm opening a new investment account, specifically for my profits from the 2013 Bitcoin Wobbles™.
<ELLIOTTCABLE> Gonna call it my Wobble Account.
<ELLIOTTCABLE> see how much I can accrue in total from that endeavor.
<alexgordon> I think you've accrued plenty
<ELLIOTTCABLE> oh, it's Simple, it took two tap on my phone, literally.
<ELLIOTTCABLE> nah, I want to accrue plenty more. There's no such thing as enough money.
<alexgordon> ...can I marry you?
* alexgordon is trying a new line of work as a gold digger
<alexgordon> ELLIOTTCABLE: when did you buy your bitcoins, out of interest?
<ELLIOTTCABLE> I bought in for the first time *right* before the big bubble in April. Whenever they were around $70-90
<alexgordon> I got mine for nothing, so my % return so far has been infinite ;)
<alexgordon> ELLIOTTCABLE: oh cool
<ELLIOTTCABLE> I didn't buy many, at all. But I sold them at 300-something, I forgot exactly how much, and made a huge profit. Bought back in at 90.
<ELLIOTTCABLE> I can't remember exactly, but I've invested less than a couple thousand, total.
<alexgordon> I'm kicking myself for not buying any in 2012. I just can't work out how I managed to let a whole year go by o_O
<ELLIOTTCABLE> as in, *originally*. I bought back in probably 8,000 worth, but all of that (I think? Would have to sit down and check exact history and numbers) was profits from the original bubble
<ELLIOTTCABLE> I think I'm going to pull out *entirely*. I mean, 400$ apiece is just to juicy to sit out.
<ELLIOTTCABLE> which would net me … well, a fuckton *more*.
<alexgordon> you won't be saying that in 10 years when it's at $1m ;)
<ELLIOTTCABLE> LOL
<purr> LOL
<ELLIOTTCABLE> when we're trading satoshis for hundos?
<alexgordon> yeeeeeep
<alexgordon> I'm just going to hold mine forever
<alexgordon> so in that respect they're worth nothing!
<ELLIOTTCABLE> lol!
<ELLIOTTCABLE> yep.
<ELLIOTTCABLE> well, I've reduced mine to a liquid asset, now. Time to make use of that.
<ELLIOTTCABLE> brb san francisco.
<ELLIOTTCABLE> cool
<ELLIOTTCABLE> depart at 8:15 tomorrow
<alexgordon> oh cool
<alexgordon> going to meet any irc people?
<ELLIOTTCABLE> in sanfran. no
<alexgordon> I SEE WHAT THIS IS
<alexgordon> I think I should be happy with what I've got
<alexgordon> I hate money really, it makes you unhappy for no reason
<purr> ฿ ($US): 35.16 @ Bitstamp, 43.43 @ Coinbase
irclogger_com has quit [Ping timeout: 245 seconds]
irclogger_com has joined #elliottcable
<purr> ฿ ($US): 35.02 @ Bitstamp, 43.29 @ Coinbase
<alexgordon> ELLIOTTCABLE: YOU JUST LOST $7.28 :O
<purr> ฿ ($US): 36.51 @ Bitstamp, 44.80 @ Coinbase