ELLIOTTCABLE changed the topic of #elliottcable to: #ELLIOTTCABLE — “do something cool, shove it into throats, everyone thinks it's crap, then it's all amazing.” “everything else is just details.”
Sgeo has joined #elliottcable
<whitequark> heyyyy ELLIOTTCABLE
<whitequark> r u here?
yorick has quit [Read error: Connection reset by peer]
joelteon has quit [Quit: I'm out]
joelteon has joined #elliottcable
alexgordon has quit [Quit: Computer has gone to sleep.]
<cuttle> this channel is so depressing
<joelteon> why
eligrey has quit [Quit: Leaving]
sharkbot has quit [Remote host closed the connection]
sharkbot has joined #elliottcable
cuttlebone has joined #elliottcable
dskuza has quit [Quit: Connection closed for inactivity]
<cuttle> joelteon: nobody says shit :p
KillerX has quit [Quit: Connection closed for inactivity]
rckts has quit [Quit: Connection closed for inactivity]
fwg has joined #elliottcable
yorick has joined #elliottcable
gozala has quit [Ping timeout: 252 seconds]
gozala has joined #elliottcable
Sorella_ has joined #elliottcable
Sorella_ has quit [Read error: Connection reset by peer]
Sgeo has quit [Read error: Connection reset by peer]
* whitequark pokes ec
fwg has quit [Ping timeout: 248 seconds]
<whitequark> this dude has some dedication
niggler has joined #elliottcable
fwg has joined #elliottcable
<devyn> fucking Apple doesn't include GCC on OS X anymore :'(
<devyn> /usr/bin/gcc is clang, /usr/bin/llvm-gcc is clang...
<whitequark> try installing gcc instead of fucking apples
<devyn> which worked except compiling binutils for the crosscompiler failed
<devyn> and the Googles don't know of my error
<niggler> devyn is that a surprise
<cuttle> whitequark: results look to be within margin of error :p
alexgordon has joined #elliottcable
<cuttle> alexgordon:
<alexgordon> hi cuttle
<cuttle> how is
<alexgordon> cuttle: what is
<cuttle> alexgordon: how are you doing
<alexgordon> cuttle: badly
<alexgordon> very busy right now
<alexgordon> for once... :P
<alexgordon> cuttle: how's college?
<cuttle> alexgordon: pretty sweet
<cuttle> math classes are great
<cuttle> cs classes are a little frustrating but good
<alexgordon> haha yeah, as expected
<cuttle> probably going to do some molecular/cellular bio
<alexgordon> cuttle: have you learnt what a loop is?
<cuttle> neurobiology shit
<cuttle> alexgordon: haha i did ap computer science so i skipped that shit
<cuttle> doing like
<cuttle> first order logic and prolog and set theory and shit right now
<alexgordon> so what're you doing in maths?
<cuttle> calc iii
<cuttle> gradient
<cuttle> generalized chain rule
<cuttle> that type of thing
<alexgordon> ah
<alexgordon> cool
<alexgordon> cuttle: so I don't know much about the american system, what happens after calc iii?
<joelteon> omfg
<joelteon> this takes forever
<joelteon> you know what takes foreverer
<joelteon> the california DMV
<joelteon> that takes forever
<cuttle> alexgordon: diff eqs, then linear algebra
<cuttle> I believe
<alexgordon> interesting
<alexgordon> boo linear algebra :P
<cuttle> aw why boo :p
<cuttle> oh here it is
eligrey has joined #elliottcable
<cuttle> major requirements
<cuttle> hey, I'm in CS 2100 right now, so I'm fulfilling that math requirement
<cuttle> so yeah then after that, a bunch of analysis
<cuttle> my mathy friend is going through analysis right now and hates it :p
<cuttle> wait though
<cuttle> non-applied requirements
<cuttle> calc, linear algebra, diff eqs, analysis, and then whatever the hell you want
<cuttle> I gtg walk to CS
<cuttle> be back in a bit
<alexgordon> cuttle: linear algebra is... boring
<cuttle> alexgordon: haha what do you spend most of your time doing?
<cuttle> coffeeeeeeee
* cuttle is having trouble shifting his sleep schedule back to real life
<alexgordon> cuttle: in linear algebra?
<cuttle> alexgordon: yeah
<alexgordon> I dunno it's very theoretical
<alexgordon> seems a lot like mathematical masturbation
<whitequark> alexgordon: linear algebra?
<alexgordon> yah
<whitequark> that's incredibly practical
<alexgordon> I think if you're a programmer you're expecting it to be applicable to stuff like games programming
<whitequark> I mean, look at your GPU drawing your 3D porn
<alexgordon> but it really ...isn't
<cuttle> "good" coffee seems to taste like it's a fruit
<cuttle> alexgordon: haha aight
<whitequark> hm, interesting
<cuttle> i like the masturbatory algebra shit
<cuttle> that's not applicable
<cuttle> :p
<alexgordon> yeah algebra is nice
<alexgordon> linear algebra... eh
<alexgordon> but it's a big subject so maybe you'll get a different view of it
<alexgordon> HUGE subject
<cuttle> :p
<cuttle> like, some of the best moments for me are when
<cuttle> it really clicked what it means that matrices are linear transformations
<alexgordon> right
<cuttle> "often countably infinite dimensional"
<cuttle> holy shit
<alexgordon> I really like the abstract algebra stuff though
<alexgordon> not sure how useful it is, but it's *fun*
<alexgordon> being able to build stuff up from scratch
<cuttle> yeah definitely
<alexgordon> mathematics without numbers
<cuttle> aw man there are so many things we can optimize
<cuttle> and solve
<cuttle> i want to learn all of this math
<cuttle> alexgordon: i mentioned matroid theory as a joke obscure field, like you did one time, to a mathy-friend
<cuttle> and she got super excited when she figured out what it was from the wikipedia article
<alexgordon> xD
<cuttle> xD
<alexgordon> hahaha
<alexgordon> yeah it's definitely the least well known major branch of mathematics
<cuttle> i was sitting in calc iii
<cuttle> and really wanted to make a programming language that was vectors and matrices and functions
<cuttle> yknow
<joelteon> 116.6GB of hard drive space on this laptop is taken up by godaddy-installed administration tools and data
<cuttle> like haskell is very much not that
<alexgordon> cuttle: ...matlab?
<cuttle> joelteon: oh god
<cuttle> alexgordon: hm prolly yeah
<joelteon> out of a total 256GB
<alexgordon> or mathematica actually
<alexgordon> <3
<cuttle> yeah mathematica
<cuttle> I want it
<joelteon> good thing I have no music, movies, or games on here
<joelteon> or any personal data
<alexgordon> cuttle: pirate it yo
<cuttle> haha
<cuttle> same mathy friend often rants about
<cuttle> how icky r is
<joelteon> it's a work laptop
<cuttle> or matlab
<cuttle> or something :p
<joelteon> and i have a home laptop
<joelteon> and I need a display for home
<cuttle> alexgordon: yeah good idea
<alexgordon> cuttle: seriously, mathematica will make eeeeeverything go smoother :P
<joelteon> apple displays cost like $900 don't they
<alexgordon> mathematica is lube for math classes
<cuttle> though i have to do it not on the school network
<cuttle> because if you get caught doing it you can get kicked out of the residence halls etc.
<cuttle> alexgordon: haha
<cuttle> alexgordon: sounds like wolfram alpha but way more precise and general
<alexgordon> also just... faster
<cuttle> but yeah before moving up i pirated ableton live and logic x
<joelteon> mathematica is what wolfram alpha uses
<alexgordon> wolfram alpha is so slow
<cuttle> joelteon: right
<alexgordon> cuttle: get a VPN
<cuttle> my roommate has a seedbox
<cuttle> and hard drives and hard drives full of shows and movies and music and porn
<cuttle> but
<alexgordon> cuttle: or ask elly if you can SOCKS through his server
<cuttle> doesn't like downloading things for people :p
<cuttle> alexgordon: I already can :p
<joelteon> i never thought of torrenting mathematica
<cuttle> i'm currently using irssi in tmux via ssh
<joelteon> but i really want to try now
<joelteon> i've never used it
<joelteon> it sounds neato
<cuttle> just haven't bothered to set up transmission or w/e on his linode
<alexgordon> I'm a few versions behind
<alexgordon> they added loads of new stats stuff to it
<alexgordon> trying to compete with R
<joelteon> mathematica?
<alexgordon> which wouldn't be a bad thing, since R does not deserve the respect it gets
<alexgordon> yeah
<joelteon> i see
<whitequark> does it not?
<cuttle> yeah R is a *mess*
<alexgordon> R is a really shitty language
<alexgordon> it has good batteries
<cuttle> haha yeah
<cuttle> it seems really easy to do things quickly
<cuttle> but very ugly
<joelteon> what providers allow seedboxes?
<alexgordon> mathematica is not quite as shitty, but the batteries in the stats department are not as good
<joelteon> digitalocean doesn't
<cuttle> joelteon: don't aws and linode not give a shit what you do?
<cuttle> as long as it's not child porn
<joelteon> that must be it
<alexgordon> heh I think they'll ban you if you get a letter about it
<joelteon> i'll probably check linode
<alexgordon> just get a VPN if you want to be safe
<alexgordon> or you know... usenet
<joelteon> how will a vpn help
<joelteon> i really don't get what they do
<alexgordon> joelteon: it's anonymous
<joelteon> oh
<joelteon> so what exactly do I use the VPN for
<alexgordon> if it's a good VPN, they don't record who is online when
<cuttle> holy shit godel systematically destroyed every logician's dream
<alexgordon> you have to research though, look at torrentfreak
<joelteon> for administrating the box
<cuttle> look at this shist
<joelteon> or do i use it on the box
<cuttle> shit*
<cuttle> alexgordon: is usenet in some way an equivalent to a vpn?
<alexgordon> cuttle: nope completely different
<alexgordon> cuttle: but same end result
<cuttle> thought so, just wondered why it was mentioned as an alternative :p
<joelteon> do I use the VPN when i'm administrating the box or do I use it on the box itself
<alexgordon> cuttle: usenet is monolithic. you buy access to a server, they store all the stuff (via peering agreements with other servers)
<alexgordon> cuttle: then you connect straight to the server and pull off the files you want
<alexgordon> (essentially speaking)
<cuttle> wow
<alexgordon> cuttle: it's much faster than torrenting
<joelteon> am i still connected?
<cuttle> joelteon: yeah
<joelteon> ok
<cuttle> alexgordon: but what about all that peer to peer shit
<joelteon> and you guys can see what i'm typing
<alexgordon> cuttle: usenet isn't peer to peer
<joelteon> well, ok
<joelteon> guess i'll come back later
<alexgordon> joelteon: hello
<joelteon> brb
<cuttle> alexgordon: yeah i mean, i thought peer to peer made stuff all concurrent and fast
<cuttle> and stuff
<cuttle> lol
<purr> lol
<alexgordon> cuttle: nah
<alexgordon> cuttle: each usenet server has a REALLY fat pipe
<cuttle> oh ok :p
<alexgordon> it's very rare that I can get faster times through torrents
<cuttle> i love how much money people spend to not spend lots more money
<alexgordon> cuttle: and you know about sickbeard right?
<cuttle> on media
<cuttle> alexgordon: nope
<alexgordon> TELL ME YOU KNOW ABOUT SICKBEARD
<cuttle> what's that
<alexgordon> only the best piece of software ever written
<joelteon> wot
<joelteon> amazing
<alexgordon> you set it up, tell it which shows you want, it downloads them when they become available
<alexgordon> then you watch them
<alexgordon> ;)
<cuttle> oh sweet
<cuttle> haha i'll have to do that
<cuttle> so it seems usenet is much less about hoarding and more about getting content as it's released?
<alexgordon> I don't want you getting evicted for this though :P
<alexgordon> cuttle: yeah, in recent times the copyright owners have started to DMCA the usenet servers
<alexgordon> so you're better off using something that downloads the shit immediately
<alexgordon> that said usually stuff is reupped eventually
<cuttle> oh ok
<cuttle> alexgordon: have you gotten into private trackers?
<alexgordon> yeah, I generally did not like the experience
<cuttle> just wondering if usenet is really faster than those, or just like plebeian pirate bay stuff
<cuttle> ok
<alexgordon> too many rules
<alexgordon> I don't like rules
<cuttle> yeah
* cuttle nods
<alexgordon> usenet is anarchistic xD
<cuttle> aha
<cuttle> haha
<cuttle> roommate is on what.cd, BTN, and a bunch of others
<alexgordon> yeah, there's certainly more choice on private trackers
<alexgordon> but, I can't be arsed to spend time tending to my upload ratio
<alexgordon> and I don't want to risk myself by uploading stuff either
<cuttle> :p
<cuttle> yeah he spent *hours* when he first got on them upping his ratio
<alexgordon> since usenet is download only, anonymous and encrypted, it's much safer
<cuttle> now he basically just downloads what he wants when he wants
<cuttle> but it took some investment
<alexgordon> yeah I just plop down $50 on astraweb
<alexgordon> 1TB of download
<alexgordon> done
<cuttle> every time something was freeleech he'd grab it, and he even upped some shit from the library
<cuttle> per mo?
<cuttle> or yr
<whitequark> go to rutracker.org
<whitequark> it's completely freeleech and the library is beyond extensive
<alexgordon> oh cool
<whitequark> I think I got most of my quality *english* content from there
<alexgordon> cuttle: indefinite
<cuttle> alexgordon: oh shit cool
<alexgordon> cuttle: I bought $50 about 18 months ago
<cuttle> oh so it's per amount downloaded?
<alexgordon> probably not even half way
<alexgordon> yeah, 1TB
<cuttle> sweet
<cuttle> WHAT IS HOMOTOPY
<alexgordon> SOUNDS GAY
<cuttle> alexgordon: lul
<cuttle> i really want to see a different foundation than set theory
<cuttle> because set theory is ugly
<prophile> learn category theory
<prophile> all the rest is just special cases
<cuttle> prophile: :p
<cuttle> well i mean the less structure you have the more deep truth and generality you have
<cuttle> :p
<cuttle> alexgordon: HoTT is apparently about modeling types as spaces rather than sets
<prophile> "the universe is all... stuff"
<cuttle> alexgordon: not starting from sets
<prophile> WHOOOOAH
<cuttle> prophile: hahahahah
<prophile> "and it does... stuff"
<cuttle> alexgordon: i want to make AI based on this
<prophile> *THUNDEROUS APPLAUSE*
<cuttle> ha
<cuttle> i like spaces better than sets
<cuttle> so this seems like something my brain will like
<prophile> I like space
<cuttle> haha
<cuttle> WHAT IS A SHEAF
<alexgordon> cuttle: "The penis sheath of a male axis deer is elongated and urine-stained. When rubbing trees with their horns, chital stags sometimes move the penis back and forth rapidly inside its sheath.[8] Male bison and fallow deer have tufts of fur at the end of their penis sheaths."
<cuttle> alexgordon: omg
<alexgordon> I ANSWERED YOUR QUESTION FOR YOU
<whitequark> alexgordon: wat.
<purr> beep.
<alexgordon> TOO LATE WHITEQUARK
<whitequark> fuck.
<cuttle> alexgordon: "The penis sheath of a male axis deer is elongated and urine-stained. When rubbing trees with their horns, chital stags sometimes move the penis back and forth rapidly inside its sheath.[8] Male bison and fallow deer have tufts of fur at the end of their penis sheaths."
<cuttle> whoops
<whitequark> alexgordon: "The penis sheath of a male axis deer is elongated and urine-stained. When rubbing trees with their horns, chital stags sometimes move the penis back and forth rapidly inside its sheath.[8] Male bison and fallow deer have tufts of fur at the end of their penis sheaths." wat.
<purr> beep.
<cuttle> beat me to it
<cuttle> :p
<alexgordon> I don't understand the significance of "urine stained"
<cuttle> prophile: Indeed, higher-dimensional category theory (particularly the
<cuttle> theory of weak ¥-groupoids) is now known to be intimately connected to homotopy theory, as
<cuttle> proposed by Grothendieck and now being studied intensely by mathematicians of both sorts.
<cuttle> The original semantic models of Awodey–Warren and Voevodsky use well-known notions and
<cuttle> techniques from homotopy theory which are now also in use in higher category theory, such as
<cuttle> Quillen model categories and Kan simplicial sets
<cuttle> oh thanks PDF
<cuttle> PDFs are great at *looking* how you want
<alexgordon> fuck this is getting technical
<yorick> I know people who would understand that
<cuttle> but they are a small step above images in terms of HTML5-style semanticity
<yorick> actually I think they're all listed http://homotopytypetheory.org/people/
<cuttle> heeh sementicity deer sheafs
<cuttle> yorick: oh you have connections?
<yorick> cuttle: heh, my guy-who-would-understand-that is not on that list :D
<yorickpeterse> plenty
<cuttle> haha
<whitequark> alexgordon: well, the smell?
<yorick> just ask yorickpeterse he knows all about homotopy type theory
<cuttle> yorick: is this true
<yorick> no.
<yorick> my guy-who-would-understand-that is rarely on irc :/
<cuttle> I love the way this book talks using a lot of impressions and mental images for intuition http://hottheory.files.wordpress.com/2013/03/hott-online-323-g28e4374.pdf
<cuttle> math is so fucking great
<cuttle> alexgordon: i want to talk about an idea iwth you
<cuttle> for PL syntax
<yorickpeterse> homotopy what?
<cuttle> what i was trying to say by saying "shape-oriented"
<yorick> yorickpeterse: homotopy from topology
<cuttle> alexgordon: a way to describe many-one/one-many/etc. relationships in a points-free way
<cuttle> alexgordon: and that replaces recursion and looping
<yorick> cuttle: ooh the book describes an alternative to ZF, at last.
<cuttle> yorick: yeah :D
<yorick> there'll be some pesky godel guy proving some kind of independence for ugly choice axioms coming along within 20 years or so
<cuttle> hahaha
<cuttle> godel, destroying mathematical dreams since 1906
<yorick> him and cohen.
<cuttle> what did cohen do?
<cuttle> oh continuum?
<cuttle> cool
<cuttle> i really like the way HoTT seems to be more about like shapes and shit
<cuttle> than Truth™
<cuttle> takes the morality out of it
<cuttle> makes it just fun
<yorick> cuttle: godel proved you can't disprove CH, cohen proved you can't prove it either
<yorick> so ehm, cuttle, I like you, you seem ahead of me, tell me what you know.
<yorick> tell me your secrets, tell me what to study
<cuttle> heh
<cuttle> you seem ahead of me too
<cuttle> we are putting our best feet forward :p
<yorick> I just read like 3 chapters from Quantum Computing Since Democritus :P
<cuttle> my mathematical education consists of:
<cuttle> going up to calc II in high school
<cuttle> doing calc III right now in college
<cuttle> and reading a whole ton of blogs and wikipedia about haskell and category theory
<cuttle> and talking to my dad about the linear algebra type of stuff he's done in his work on computer graphics in video games
<yorick> I did calc II and linear algebra II
<cuttle> :P
<yorick> working on haskell, I did one of those "make your own scheme interpreter" tutorials, but they're like "okay, now use IORef" and I'm like "NO I WILL LEARN ABOUT STATE MONADS"
<cuttle> HELL YES my midterm bumped me up to ~95
<cuttle> yorick: hahaha
<cuttle> yeah fuck IO
<cuttle> such a phoning-it-in
<cuttle> of an I/O system
<yorick> my scheme won't need to talk to anyone anyways.
<whitequark> my preciousssss
<cuttle> alexgordon: i feel like you'd be interested in what i want to make right now
<cuttle> alexgordon: heavy, heavy emphasis on C interop
<cuttle> alexgordon: A4-size spec
<whitequark> cuttle: so, more or less C?
<cuttle> alexgordon: immediately useful for real life applications, reactive, really concise but not opaque syntax
* yorick uses sick beard with BTN, but it doesn't work as well as it does with usenet and I had to configure rtorrent *shudder*
<cuttle> whitequark: no, like Lua in its interop
<cuttle> can immediately start integrating it
<yorick> show us your spec, cuttle
<cuttle> yorick: very vague in my head right now
<cuttle> i need to make some decision
<cuttle> s
<cuttle> but basically it's like, FRP without stick up its ass
<cuttle> and without recursion and all that
<cuttle> very aware that it's on a machine
<cuttle> i mean, with recursion probably but not treated as the fundamental looping construct
<yorick> ohhh, I wanted to add elm to my todo list but it was already on it.
<cuttle> haha
<cuttle> elm seems cool
<cuttle> but too haskelly for me
<cuttle> I want to have an algebraic data types meets multimethods thing
<cuttle> like Atomo
<cuttle> and also a manyness/oneness thing deeply ingrained in the syntax, to function as looping constructs/mapping/etc.
<joelteon> ok i'm back
<joelteon> alexgordon:
<cuttle> not sure what exactly it'll look like
<joelteon> never mind
<joelteon> no matter
<alexgordon> cuttle: yeah for sure
<joelteon> i just realized i have page up/down keys on this keyboard
* whitequark . o O ( can you run a relocatable file? )
<joelteon> which is probably
<joelteon> the greatest invention of modern times
<joelteon> now i can fucking scroll with weechat
fwg has quit [Ping timeout: 272 seconds]
fwg has joined #elliottcable
<cuttle> alexgordon: let's hash it out! :D
<cuttle> joelteon: haha
<cuttle> I have to use fn-ctrl-up/down
<joelteon> yeah :|
<cuttle> not bad at all really
<cuttle> alexgordon: i want that uniformity of access shit
<cuttle> alexgordon: and that shape oriented shit
<cuttle> nahm sayin
<alexgordon> wat
<alexgordon> cuttle: what's uniformity of access?
<joelteon> i'd like to uniformly access your mother
<cuttle> alexgordon: like, think ruby's no difference between method call and property access
<cuttle> alexgordon: but don't think of ruby as a whole :P
<cuttle> alexgordon: i guess think more of smalltalk
<cuttle> and it'd be multimethod stuff
<alexgordon> cuttle: yeah
<alexgordon> well that's what I did with furrow
<alexgordon> everything is a function
<cuttle> so like, defining algebraic data types
<alexgordon> except for members
<cuttle> that way
<cuttle> well even members are functions in this
<cuttle> but not haskell's ugly pseudorecores
<cuttle> pseudorecords*
<joelteon> think of javascript's no difference between method call and property access
<joelteon> LOL
<purr> LOL
<cuttle> joelteon: well in fact it's the exact opposite of that
<alexgordon> trolololol
<cuttle> joelteon: JS is very much not a uniformity of access language
<cuttle> think
<cuttle> a.x and a.x = vs a.getX() and a.setX()
<joelteon> i know, that's why i hate javascript so fucking much
<cuttle> haha aight
<alexgordon> cuttle: don't forget a.x() in jquery
<cuttle> how's that?
<alexgordon> jquery has getter: foo.html()
<alexgordon> setter: foo.html(blah)
<cuttle> haha
<cuttle> aight
<cuttle> I have avoided jquery
<cuttle> the hassle of getting it into my namespace seems more trouble than the lots of things it brings into my namespace are worth
<alexgordon> eh
<alexgordon> it's useful
<alexgordon> there's not much that doesn't use it nowadays
<cuttle> sure
<cuttle> :p
<cuttle> alexgordon: but look at this cool thing:
<cuttle> suppose you have constructor
<cuttle> a(1, 2, 3)
<cuttle> that is indistinguishable from a function call
<cuttle> so you can change the impl behind it
<cuttle> or you can leave it atomic
<cuttle> all up to you, uniformity of access
<cuttle> no capitalized constructors requirement
<alexgordon> cuttle: right
<alexgordon> cuttle: well that's how it works in furrow
<alexgordon> :P
<cuttle> oh neat
<alexgordon> I never understood why haskell has separate constructors and functions
<alexgordon> seems like duplication
<alexgordon> I think the only real reason is pattern matching?
<alexgordon> but eh, it's more elegant to have them as one and the same
<joelteon> separate constructors and functions?
<alexgordon> function application
<joelteon> namespacing
<alexgordon> sure but they're separate at a very low level
<alexgordon> even in core
<joelteon> oh i mean yeah
<cuttle> enforced capitalization for namespacing is the grossest kind of namespacing
<joelteon> it's pattern matching
<joelteon> that's the reason
<alexgordon> right
<joelteon> you can't pattern match on function application (anymore)
<alexgordon> but it's rather short sighted IMO
<cuttle> hm how do you handle pattern matching, alexgordon ?
<joelteon> well, we have view patterns now though
<joelteon> which is sort of similar I guess
<alexgordon> it would be more elegant to get rid of constructors, then allow function application in pattern matches, but restricted
<alexgordon> then you're not creating a new entity with the same semantics
* alexgordon shrugs
<purr> ¯\(º_o)/¯
<joelteon> >
<joelteon> >_>
<alexgordon> cuttle: gimme an example
<cuttle> alexgordon: i mean like
<cuttle> suppose you make a type that can either be
<cuttle> a(int) or b(string)
<cuttle> then you want to case..of on it
<cuttle> but a and b could just be function calls making some other data type behind the curtain
<alexgordon> cuttle: well that's beyond what haskell can do
<alexgordon> but if you had A, then its "constructor" function would be a() right?
<alexgordon> I don't think you can go backwards without like inverse functions
<alexgordon> though it's an interesting idea
<cuttle> right, you need inverse functions
<cuttle> but i mean with uniformity of access you *have* to have that to do pattern matching
<alexgordon> well yeah, but I'm just talking about making constructors into functions, not making functions into constructors :P
<alexgordon> then pattern matching works like normal
<cuttle> can you make a type
<cuttle> in furrow
<cuttle> with two constructors
<cuttle> that you pattern match
<whitequark> you can have functional constructors
<whitequark> eg sml has those
<alexgordon> cuttle: hm no I don't think so
<alexgordon> cuttle: the constructor functions are generated automatically
<alexgordon> you can of course add more
<alexgordon> but you can't pattern match on those because there's no way to specify inverses
<cuttle> whitequark: tell me more
<whitequark> cuttle: well
<whitequark> they can be used in pattern matching and you can curry them like functions
<whitequark> unlike eg ocaml
<alexgordon> can you map over a constructor in haskell?
<alexgordon> map SomeType xs ?
<whitequark> you can in sml
<cuttle> alexgordon: if it implements functor
<cuttle> wait no
<cuttle> alexgordon: yeah they're identical to functions
<cuttle> in haskell
<cuttle> except they're capitalized and you can pattern match
<cuttle> data A = B Int
<cuttle> B :: Int -> A
<alexgordon> that's nice
<cuttle> yeah
<alexgordon> cuttle: a year or so ago I did some thinking on the uniformity of access thing
<alexgordon> trying to merge everything
<alexgordon> a language can be *too* uniform
<cuttle> that is true
<alexgordon> you start to get problems with namespacing, as joelteon said
<cuttle> but i feel that uniformity of access can make things actually very non-uniform in the good way that lisp isn't
<alexgordon> lisp is a funny one
<alexgordon> it works much better than it should
<alexgordon> :P
<cuttle> haha
<cuttle> I don't like lisp's data structures at allll
<alexgordon> yeah yeah
<cuttle> also paul graham is a big stupid dumb head
<alexgordon> but somehow it manages to be a lot less fragile than say ruby and python
<alexgordon> even though it's no less dynamic
<cuttle> hm idk about that
<cuttle> what do you mean by fragile?
<alexgordon> maybe it's just different problem domains
<alexgordon> cuttle: well like, often ruby and python code gets into a mess
<alexgordon> because dynamic typing stabs you in the back
<cuttle> idk i feel like lisp can just as easily or more get into a mess
<alexgordon> no compiler is there to help
<cuttle> python doesn't very much i feel
<alexgordon> entropy wins out
<cuttle> python and ruby are both *much* less messy than JS, no thanks to static typing
<cuttle> though it is earlier failure
<alexgordon> true
<cuttle> just not that early
<cuttle> jesus i love python's comprehensions
<cuttle> generators should be *way* more common in every language than they are
<alexgordon> yeah for sure
<alexgordon> that's something I was investigating with uniformity of access
<whitequark> cuttle: i think cl has a hybrid system
<alexgordon> turning lists into iterables
<whitequark> like it's dynamically typed
<whitequark> but there's very good static analysis
<alexgordon> cuttle: wherever you see [a] that means a generic iterable (generator)
<cuttle> oh interesting
<alexgordon> instead of a concrete list
<alexgordon> since most of the time I just want to iterate over lists, either directly or with map/filter/etc
<whitequark> the trouble with representing everything with iterables is that general-purpose iterators are incredibly limited
<whitequark> since it's one-way moving only
<whitequark> no indexes, no mutation, no back-up-one-element
<alexgordon> not necessarily
<alexgordon> C++ and D have "ranges"
<alexgordon> which various levels of listiness
<alexgordon> *with
<alexgordon> there's a spectrum
<cuttle> jesus this is the last time i buy snacks for my dorm room
<whitequark> that tends to complicate your code
<cuttle> ended up snarfing them down in 2 days
<alexgordon> on the one side you have "once-only generators" like in python
<alexgordon> on the other side you have contiguous arrays
<whitequark> I don't think generators should be a language feature
<whitequark> closures and delimited continuations totally should
<alexgordon> HERESY!
<whitequark> which is basically
<whitequark> how ruby solves it
<alexgordon> nah I totally disagree
<whitequark> because you can build your iterators with those primitives
<alexgordon> itertools is so damn useful
<whitequark> you do understand I emphasize *language* ?
<whitequark> features
<alexgordon> surely generators can't be a library feature?
<whitequark> they can, they are in ruby
<alexgordon> and nobody uses them ;)
<whitequark> wat?
<alexgordon> I dunno. I dunno what you're talking about, I don't ruby :P
<whitequark> there's plenty of usage for them
<whitequark> but!
<alexgordon> all I know is that in ruby everybody does foo.each do |x| blah end
<whitequark> most of the time you're ok with just #each/#map/etc
<whitequark> because you don't *need* generators most of the time if you're working with collections
<cuttle> you only need blub
<alexgordon> this is going to end up with me enumerating all the things I hate about ruby
<alexgordon> so let's stop now :P
<whitequark> why stop?
<alexgordon> it depends a lot on your object model I think
<alexgordon> if you have indirect method calls, then you can get away with combining the two
<whitequark> indirect method calls as in?
<alexgordon> like Java
<whitequark> still no idea what you mean
<alexgordon> virtual function calls
<whitequark> ok
<alexgordon> ...because you can make List implement Iterable
<alexgordon> then you can check if the Iterable you got is a List or not
<alexgordon> and if it is, you don't need to do anything, otherwise you might want to scoop it all up into a List if you're going to be doing a lot of index operations on it
<whitequark> that sounds like incredibly bad design
<whitequark> if you want a List, ask for a List
<whitequark> see, that's exactly what I'm talking about
<whitequark> you have a method which abstracts over the storage passed to it
<alexgordon> yeah probably but I'm making the assumption that [a] is an iterable
<whitequark> ... but actually it does not! its signature says it accepts an Iterable but it actually wants a List
<whitequark> [a]?
<alexgordon> the type [a]
<alexgordon> foo :: [a] -> b
<alexgordon> imagining if [a] meant iterable instead of list
<whitequark> ok
<alexgordon> actually in haskell you don't have O(1) subscripting anyway...
<alexgordon> but that's just stupid ;)
<whitequark> for lists?
<whitequark> obviously
<alexgordon> right
<whitequark> how much do you care about efficiency?
<alexgordon> that's what I was getting to... you're right about the storage thing
<alexgordon> this is about the point where functional programming begins to fall apart
<alexgordon> because in C you would use pointers, in C++ you could pick a data structure
<alexgordon> in haskell you have this hammer...
<whitequark> hm, haskell's lazy lists are almost the same thing as generators
<whitequark> was that how you got the idea?
<cuttle> what i like about lazy lists is that they don't make using map all over the place use a lot of copying
<alexgordon> when I'm writing haskell I find I get rather distressed at the *lack* of control I have
<whitequark> alexgordon: that's a feature :]
<whitequark> cuttle: they don't?
<whitequark> you still are going through all your data and creating all those cells
<whitequark> except not at the same time
<devyn> god I love erhu music
<alexgordon> personally, C++11 is where it's at
<whitequark> C++14?
<whitequark> C++17?
<whitequark> clang has complete 14 support
<alexgordon> it's a miracle!
<devyn> C++11 music?
<devyn> I don't know of any
<whitequark> guys guys
<cuttle> whitequark: well it does it on demand
<alexgordon> I just wish I could delete features from C++
<whitequark> look at the band I found recently
<cuttle> whitequark: so it's like you have it all written as a central loop
<whitequark> cuttle: same amount of allocation, done at different time
<cuttle> whitequark: no
<devyn> whitequark: that's an awesome name
<cuttle> whitequark: not at all
<cuttle> whitequark: often you want a supply of primes for some algorithm
<cuttle> well
<cuttle> "often"
<alexgordon> xD
<cuttle> so you can either make a lazy infinite list of them
<alexgordon> we language designers live on another planet
<alexgordon> this is why languages are all so FUCKED UP
<cuttle> and exactly the amount you need is generated
<alexgordon> because we use these toy problems
<whitequark> cuttle: yeah I know haskell excels at math textbook examples
<cuttle> alexgordon: no, in my cs class i was writing an algorithm
<alexgordon> and design everything around a reality that doesn't exist
<whitequark> cuttle: >cs class
<cuttle> alexgordon: and i needed the right amount of primes
<whitequark> lol
<purr> lol
<whitequark> devyn: word.
<cuttle> it was a godel hashing function
<whitequark> unfortunately the music is crap
<cuttle> unhashing
<alexgordon> xD whitequark
<cuttle> which is prime factorization
<cuttle> which is a common task
<whitequark> what?
<cuttle> probably was an inefficient algorithm for it
<whitequark> cuttle: "prime factorization, which is a common task" wat.
<purr> beep.
<alexgordon> cuttle: to be honest, in the real world people just make websites with rails
<alexgordon> cuttle: any improvement to languages is pointless
<alexgordon> yay. we can all go home now
<joelteon> RIP
<alexgordon> so I just say fuck it, design a language to make the stuff *we* write easier
<alexgordon> fuck everybody else's needs
<alexgordon> because what everybody else really needs is a better PHP
<alexgordon> but who wants to build that
<cuttle> just saying, laziness makes it hundreds of times easier to allocate exactly how much you need and calculate it on the go
<whitequark> alexgordon: my friend
<cuttle> like, for input buffering
<whitequark> slash-lang.org
<alexgordon> whitequark: ha I saw that
<alexgordon> but just no
<whitequark> he's competent
<whitequark> and does a right thing
<alexgordon> it's a small step, it's not a giant leap
<whitequark> giant leaps don't work
<alexgordon> IMO the web dev world needs a giant leap
<whitequark> never, ever.
<alexgordon> because a small step is like using Python and Flask
<joelteon> slash looks cool
<cuttle> imo the web world needs a giant
<cuttle> bottle of sleeping pills
<alexgordon> hahaha
<joelteon> i want to try using slash
<alexgordon> ok ok let me propose something
<whitequark> cuttle: more like botulinum toxin
<alexgordon> what the web dev world really needs, is Java-like performance
<alexgordon> because they're using all these slow languages
<whitequark> alexgordon: J2EE?
<alexgordon> PHP, Ruby, Python
<whitequark> just use it
<whitequark> btw
<alexgordon> and they're SO FUCKING SLOW
<whitequark> JRuby
<whitequark> on webdev tasks it's on par with java
<alexgordon> and websites go down all the time, BECAUSE EVERYTHING IS SO FUCKING SLOW
<joelteon> our bottleneck is database performance, not language performance
<joelteon> if we were bottlenecked by ruby that would be awesome
<cuttle> yeah, we could have much faster but just as easy languages
<whitequark> joelteon: dude
<alexgordon> if everything was written with C++, linode and rackspace would go BUST
<devyn> alexgordon: everything I've ever done in Ruby, pages load in like, 50 ms... when I do PHP things take a lot longer, so
<whitequark> just a year ago I had a rails app
<alexgordon> devyn: 50ms is a long time
<whitequark> it generated a main page for...
<whitequark> wait for it...
<whitequark> 40 seconds
<whitequark> forty seconds, yes
<joelteon> .....
<joelteon> why?
<alexgordon> devyn: my computer can run crysis at 60fps
<joelteon> what was it doing
<whitequark> homemade templating engine spewing out about 10MB of HTML
<joelteon> LOL
<purr> LOL
<whitequark> it like, didn't have separate parsing and execution steps
<whitequark> so each time it executed a for loop body
<devyn> o_o
<whitequark> it reparsed it
<alexgordon> devyn: that's what, 16ms per frame
<whitequark> with regexps
<whitequark> google for "liquid"
<whitequark> I rewrote that with a proper lexer, parser, ast, compiler so it outputs ruby code
<devyn> alexgordon: well only the physics really matter there; GPU performance isn't really applicable to web development
<alexgordon> my computer can render a whole frame of crysis, faster than a computer can shit out a fucking HTTP response
<devyn> Crysis also isn't doing disk access all the time
<alexgordon> why'd you need disk access?
<whitequark> db
<whitequark> fsync
<alexgordon> why does the response have to wait for that
<cuttle> alexgordon: haha when you put it that way jesus christ
<cuttle> i mean it does have shit alreayd going
<cuttle> startup is slower
<whitequark> alexgordon: because ruby is impure
<cuttle> but like a website theoretically has shit already going
<whitequark> and so it can't stream responses by default
<whitequark> so it has to generate entire html before returning
<devyn> whitequark: sinatra streaming is actually quite nice, btw; I use it a lot
<whitequark> devyn: rails can do it too
<alexgordon> web developers have their conceptions of how fast computers are set WAY too low, because all they ever do is web dev with these slow languages
<devyn> oh boy, I don't have time for this rant
<alexgordon> I've written enough python to know how fast things get when you rewrite python -> C++
<devyn> lol
<purr> lol
<whitequark> /rename #alexgordon-ranting
<alexgordon> XD
devyn changed the topic of #elliottcable to: #alexgordon-ranting
<whitequark> we have #yorickpeterse-ranting (ex #ruby-lang)
<whitequark> now we have #alexgordon-ranting.
<alexgordon> ok so trying to be constructive...
<alexgordon> the most important thing in web dev is security
<whitequark> be classical instead
<alexgordon> the reason people don't use C is because everything would get hacked
<whitequark> the reason people don't use C is because it's a shitty language
<whitequark> that stuff would get hacked is a corollary
<alexgordon> haha
<alexgordon> maybe
<whitequark> it's shitty even for its intended domain
<whitequark> which is extra funny
<cuttle> after my 3-day fling with rust
<cuttle> i don't think it's the answer
<cuttle> type system gets all up in your grill
<alexgordon> cuttle: orly?
<cuttle> way harder to satsify than haskell is
<whitequark> cuttle: some examples maybe?
<whitequark> rust is basically ml+regions, no?
<alexgordon> whitequark: if you ignore all the details that make it interesting, yeah
<whitequark> alexgordon: well he complained about type system
<whitequark> and that's what matters for it
<cuttle> whitequark: shit about like
<cuttle> the linear types
<alexgordon> doesn't it have linear types
<alexgordon> right
<whitequark> linear types are fucking awesome
<cuttle> like there are all these restrctions
<cuttle> you can't pass a clojure wiht a ref to a linear type because it may be called more than once
<cuttle> shit like that
<cuttle> gets in your way *all* the fucking time
<whitequark> because that's how you get deterministic destruction in a safe lang
<whitequark> hmmm
<whitequark> interesting
<alexgordon> cuttle: that seems to be where everybody has problems
<alexgordon> closures
<alexgordon> each language has fucked them up in a slightly different way
<alexgordon> (the award goes to Objective-C++ though where everything is const and so you have to make a new temp variable if you want to modify an outer argument inside a closure)
<alexgordon> ...if I've remember that right
<whitequark> alexgordon: it's sorta same for C++
<devyn> fffff there's no way I can do this assignment in an hour
<whitequark> which is understandable
<alexgordon> whitequark: yeah but C++ lambdas can specify it IN the lambda, whereas in Objective-C it goes with the variable declaration
<alexgordon> __block int foo; (and then) ^{ foo = 10; }
<devyn> why __
<devyn> that's retarded
<alexgordon> devyn: no C identifier may include __ or start with _ then a capital letter
<cuttle> devyn: it's objc's policy
<cuttle> devyn: don't trample on c
<alexgordon> yeah
<whitequark> devyn: you'll like python
<alexgordon> EXCEPT for in, out, inout, etc ;)
<devyn> my mistake, C is obviously perfect
<cuttle> alexgordon: wait what are those
<cuttle> devyn: in no way
<alexgordon> cuttle: DO
<cuttle> devyn: c is fucking awful
<alexgordon> distributed objects
<devyn> cuttle: :p
<cuttle> devyn: but objc is supposed to be 100% backwards compatible
<cuttle> devyn: jesus
<cuttle> passive agress much
<devyn> haha
<devyn> no you
<cuttle> :p
<alexgordon> though it actually ISN'T because to use objc you need objc_runtime
<cuttle> no u
<alexgordon> which defines a bunch of stuff like YES and NO
<cuttle> haha
<alexgordon> which has tripped me up in the past
<cuttle> yes and no are so cute
<alexgordon> trying to turn .c files into .m
<alexgordon> if the .c file does #define YES 1
<devyn> cuttle: I appreciate C a lot more since starting on some low level stuff...
<whitequark> #define YES NO // fuck you
<cuttle> devyn: yeah C is sure quite useful, but it could be equally useful
<cuttle> however, defining something equally useful but actually better seems hard
<cuttle> rust makes me want to kill myself in practice thanks to the linear types
<cuttle> go is not useful for kernel
<cuttle> s
<cuttle> etc.
<cuttle> basically, x86 is fucking braindead
<whitequark> devyn: I prefer to say "I hate everything except C a lot more since starting on some low-level stuff"
<cuttle> x86 needs a great big
<devyn> haha
<cuttle> bottle of sleeping pills
<whitequark> that's really the only sane way to think about languages
<cuttle> whitequark: no it's very insane
<whitequark> you use the language you hate the least
<cuttle> c doesn't match asm which doesn't match x86
<cuttle> and they're all fucking braindead on their own anyway
<alexgordon> seems apple has excised the distributed objects stuff from The Objective-C Programming Language book
<whitequark> you still fucking hate it and want to strangle its fucking braindead committee
<whitequark> or lack thereof
<devyn> C isn't too far off of x86 asm... it's just more two dimensional instead of completely linear
<whitequark> doesn't matter, strangling
<cuttle> alexgordon: wait i thought you were referring to python :p
<cuttle> nvm
<alexgordon> devyn: like befunge?
<whitequark> devyn: common misconception
<cuttle> alexgordon: hahahaha
<devyn> whitequark: I've been writing lots of x86 asm too...
<cuttle> devyn: c is *incredicbly* off and asm is *incredibly* off the actual processor
<whitequark> devyn: sure
<alexgordon> I wonder if you could do a 3D befunge, a la keccak
<whitequark> keccak?
<whitequark> isn't that
<whitequark> a cypher?
<devyn> cuttle: well... no, asm is just a deconstruction of the x86 machine code. the funny part is that processors don't actually use that directly anymore; their decoders basically reassemble it as something more sane
<whitequark> sha3
<cuttle> devyn: that's what I'm saying
<cuttle> devyn: *machine* code is a huge mismatch
<whitequark> well, the sane subset of x86 is almost 1:1 match for the uops
<alexgordon> whitequark: a 3D hash function
<cuttle> and we have huge fucking amounts of transistors dedicated to running one instruction at a time more quickly
<cuttle> so fucking dumb
<whitequark> and the insane is microcoded
<whitequark> cuttle: superscalarity
<cuttle> whitequark: piddling scraps of optimization
<cuttle> ekeing out what you can when structural reform would give you orders of magnitute of improvement
<devyn> cuttle: and huge fucking amounts of transistors basically functioning as a recompiler for microcode...
<cuttle> devyn: yeah it's awful
<cuttle> haha there's *actually* a different machine code in there
<whitequark> devyn: do you know why mips (supposedly without that 'recompiler') failed?
<cuttle> that it literally compiles to, in hardware
<cuttle> that is so fucking ridiculous
<whitequark> cuttle: no it isn't, there's a lot of reasons you may want to execute and store different ISAs
<whitequark> for example
<cuttle> whitequark: backwards compatibility and market inertia?
<whitequark> do you know that Thumb is immediately expanded to ARM in ARMs?
<devyn> whitequark: oh no, even ARM has microcode; I understand
<devyn> whitequark: but ARM has to do a lot less than x86
<whitequark> because code density is a thing
<whitequark> devyn: most simple opcodes and all opcodes later than SSE expand into one uop
<whitequark> on contemporary intel chips
* alexgordon zones out while the grownups talk about their hardware
<cuttle> alexgordon: haha
<cuttle> alexgordon: let's make actually good hardware pls
<whitequark> cuttle: huge-ass parallelism works well for embarrassingly parallel processors
<whitequark> *processes
<cuttle> low power consumption huge ass parallelism
<whitequark> of which there is
<alexgordon> cuttle: I wish I knew anything about hardware
<whitequark> not a lot.
<alexgordon> ONE THING I WILL SAY
<alexgordon> is that bitcoin miners are unbelievable
<devyn> whitequark: really? well.
<cuttle> whitequark: so let's execute maybe 8 instructions at once.
<whitequark> devyn: uops thing or something else?
<devyn> whitequark: uops
<whitequark> cuttle: intel does something like that
<alexgordon> 4 quadrillion operations per second
<whitequark> need proof?
<devyn> whitequark: rather, μops
<whitequark> µµµ
<cuttle> µµµµµµµµµµµ
* whitequark slaps cuttle around a bit with a large trout
* cuttle µµµµµµ whitequark
<devyn> μ μ μ μ μ how to mu
<whitequark> cuttle: yes thinking along those lines
<cuttle> whitequark: why
<cuttle> for like really fault tolerant shit
<cuttle> and really high scale shit
<alexgordon> that is 10^23 operations per year
<cuttle> you end up splitting across lots of machines
<cuttle> and sending messages anyway
<alexgordon> erm no
<cuttle> why not make organizing programs that way the natural way
<whitequark> cuttle: look at for example
<whitequark> z/96 arch
<whitequark> z/196 rather
<cuttle> rather than having an awkward shift between the two levels in the hierarchy
<alexgordon> no it is 10^23. fuck that's a lot
<alexgordon> what's that base 2
* devyn µµµµµµµ cuttle @)(*&#!(*@&$(*%&@(#*&$#()$*&(*&# <3 )&ý¿Jsã┴Ý♣│«W¼░░░ÇÝÇa"│◙♣ ff \W│a©☼◙│«♣Ä▼@Ä♠MU↨- ♣♣T╔◘◘ (flixya.com)
<cuttle> e´´´´´´´
<alexgordon> 2^76 operations per year
<whitequark> also
<alexgordon> jesus CHRIST
<whitequark> *H��H��H��̀H��H��̀Hello, world!
<whitequark> load this to RAM and jump to it
<cuttle> ȩ̧̧̧̧̧̧̧̧̧̧̧̧̧̧̧̧̧̧̧̧̧́́́́́́́́́́́́́́́́́́́́́́́́́́́́̌̌̌́́̌̌́̌́̌̀̀́̀̌́̀̌́
<whitequark> hmmm no, won't work
<whitequark> evil u+fffd
<whitequark> é
<cuttle> ‰ ̰̊Р̱̑̋̆̋̆ ̰̇ ̛̏́̇ ̏̇́ ̰̈̇̌́ ̰̈ ̏Œ́̌ ̰̈ ̏̌̇́̈ ̏ ̰̌̈̇́ ̏ ̰̌̇̈́ ̏ ̰̌̈̇ ̏́̌ ̰
<cuttle> how about that
<whitequark> where's that osx crashbug string when you need it
<cuttle> whitequark: what is that picture demonstrating to me
<whitequark> سمَـَّوُوُحخ ̷̴̐خ ̷̴̐خ ̷̴̐خ امارتيخ ̷̴̐خ
<whitequark> pity
alexgordon has quit [Remote host closed the connection]
<whitequark> hahahahaha
<devyn> I'm on OS X... still here
<devyn> how about File:/// hahaha
<whitequark> devyn: go ahead
<whitequark> cuttle: well
<whitequark> each port is an execution unit
<cuttle> wait what was the thing about File:///
<whitequark> so in ideal circumstances (no memory deps for example) it can execute 6 instructions in parallel
<whitequark> this works best when you have sse-heavy code
<devyn> it caused any application that tried to use it with the builtin URL lib to crash
<cuttle> devyn: haha
<devyn> cuttle: so if you sent an iMessage with it, iMessage wouldn't open anymore ever
<cuttle> whitequark: ooh that's a lot of instructions
<devyn> until you cleared your log
alexgordon has joined #elliottcable
<devyn> lol
<purr> lol
<alexgordon> ok WHO DID THAT
<cuttle> haha that's great
<cuttle> alexgordon: wait did it crash you?
<whitequark> alexgordon: me
<alexgordon> cuttle: yeah
<whitequark> why do you ask?
<alexgordon> running 10.8 here
<cuttle> omg that's great
<whitequark> you could look at logs
<joelteon> ok tiem to try running slash
<whitequark> oh wait
<whitequark> HAHAHA
<alexgordon> xD
<cuttle> alexgordon: want to make a cute fun c interop reactive shape oriented uniformity of access langauge
<cuttle> :3
<alexgordon> LOL
<purr> LOL
<joelteon> god damn the office network is so slow
<alexgordon> cuttle: I have no idea what that is
<cuttle> alexgordon: just like, frp but not in a haskell type system
<joelteon> yeah fuck haskell
<cuttle> alexgordon: like the whole thing about a = b + c and a updates and b and c do
<cuttle> as b and c do *
<alexgordon> cuttle: oh right
<devyn> cuttle: lol
<purr> lol
<devyn> joelteon: I feel like so many IT departments just don't know how to scale WiFi networks properly...
<devyn> at school, I easily get like 50 Mbps or so
<devyn> at work, it's a struggle to get a consistent 2 Mbps
<devyn> and work has fewer people
<whitequark> shitty uplink?
<joelteon> >_>
<joelteon> i don't get it
<devyn> whitequark: I don't think it's that, because the wired computers have no problem
<whitequark> perhaps
<joelteon> god
<joelteon> the california DMV is AWFUL
<joelteon> and i appear to be closest to the worst one
<joelteon> 115 minute wait time without an appointment
<devyn> joelteon: yeah, and I hear if even one thing is “wrong” compared to their unwritten policies, you have to wait all over again, generally
<joelteon> i.e., having a credit card rather than cash
<devyn> heh
<joelteon> also, we still do pen and paper tests here
<devyn> how the fuck do they manage to take that long
<devyn> there can't be that many people there at any one time
<joelteon> that's what i want to know
<joelteon> any day you go there, there will be a line extending around the side of the building
<devyn> probably all except one of the staff are on a permanent coffee break, and the one person who actually does work does it so slowly
<joelteon> no
<devyn> :p
<joelteon> there's at least 30 people working at any one time
<joelteon> well
<joelteon> probably more like 20
<joelteon> i'm trying to get my roommate to let me use her car to drive to the one in san jose
<joelteon> which is 13 miles away
<joelteon> not biking that far
<devyn> noo, Joel Teon, don't do it
<joelteon> it's only a 24 minute wait over there
<joelteon> that's how long appointments take in santa clara
<devyn> idk I can never parse your name as Joelteon on IRC
<joelteon> really
<devyn> always looks like Joel Teon to me
<devyn> think it might just be the kerning between l and t
<joelteon> >___________>
<devyn> whitequark: anyway, as before, much of C isn't really that huge an abstraction of x86 asm...
<devyn> but it's enough to make a huge difference
<whitequark> devyn: write me an add with overflow in C which maps to proper x86 asm
<whitequark> write me an access to address 0
<whitequark> or actually, write me an access to an aribitrary memory address
<whitequark> write me a function to walk the stack
<whitequark> write me an efficient memory copy routine
<whitequark> (all of that without using inline asm or intrinsics, of course)
<whitequark> do I need to go on?
<whitequark> you could say that Java is not a huge abstraction of x86 asm because basic Java arithmetics maps to the same opcodes
<whitequark> x86's lea was ostensibly designed to map to array/struct access in C/Pascal/etc, but in reality common subexpression elimination completely screws all of your assumptions, if loop strength reduction didn't do it earlier, or if the scheduler didn't decide that add+mul utilizes the pipeline better than lea, or...
<whitequark> all C guarantees you is asymptotic complexity of all its basic operations being O(1) basically
<whitequark> which *is* important but has absolutely nothing to do with it being low-level (lisp can do that) or close to x86 (sigh)
<whitequark> I mean, null pointer can have not a numeric value of zero specifically *because* of x86
<whitequark> there's also some other fun, for example unsigned i; i++ can *trap* (yes, trap, segfault, name it) on architecture X
<whitequark> </rant>
<whitequark> hey devyn
<whitequark> don't tell me I wrote all that into /dev/null
<devyn> whitequark: yeah, sorry, you did </sarcasm>
<devyn> :p
<devyn> no
<devyn> well
<devyn> why can't you access memory address zero?
<devyn> *0?
<whitequark> devyn: that's forbidden in the standar
<whitequark> d
<whitequark> in practice, at >-O0 the compiler will optimize it into nothing
<whitequark> if it can prove the address is always zero
<devyn> didn't know that
<devyn> huh
<whitequark> and it can prove that in a surprising amount of cases
<whitequark> also, the reverse. eg, in ptr->foo(); if(!ptr) puts("huh");
<whitequark> the "huh" part is optimized out
<devyn> so NULL, then, is always zero, despite it being possible to define it as something else?
<whitequark> no
<whitequark> null pointer and integer zero are very distinct entities
<whitequark> if you convert a null pointer to integer, it'll be zero, and vice versa
<devyn> well if not for null, why can't I address zero
<whitequark> however the low-level representation of a null pointer need not be zero
<whitequark> see, if you do (void*)0, you get a null pointer :p
<alexgordon> devyn: NULL is a macro, which expands usually to (void*)0
<whitequark> alexgordon: devyn: (void*)0 does not necessarily have all bits set to zero.
* whitequark sighs
<devyn> yeah I get that
<alexgordon> whitequark: wait what?
<devyn> what happens if I printf() NULL?
<whitequark> alexgordon: yes.
<alexgordon> wat
<devyn> as a pointer
<whitequark> devyn: ummm show me the code
<alexgordon> devyn: toast comes out of your CD-ROM drive
<whitequark> printf("%p") ?
<devyn> yes
<devyn> printf("%p", NULL)
<whitequark> implementation-defined
<whitequark> *g*
<alexgordon> still don't see how (void*)0 can have some bits not set to 0
<whitequark> alexgordon: the compiler inserts checks at each conversion of ptr<>int to change the bits
<whitequark> if the architecture needs it
<whitequark> I believe this applies at least to real-mode x86 and ia-64
<alexgordon> is this like near and far pointers?
<whitequark> not quite
<whitequark> in real mode you would actually need to access memory at address zero, so null pointer can't be 0
<whitequark> to keep accesses to zero defined
<whitequark> today it matters because the compilers got very good at proving incredibly contrived conclusions from the C rules and exploiting them in a manner they like
<alexgordon> ...why would you need to access memory at address 0?
<whitequark> which almost always is not what you expect
<whitequark> alexgordon: some control block of DOS is there or something
<alexgordon> weird
<whitequark> PCP? PDP?
<whitequark> can't remember how it's called
<alexgordon> PCP xD
<devyn> ideally you should be able to address any piece of RAM...
<alexgordon> this is definitely having that kind of effect on me
<whitequark> devyn: further, C only defines accesses via pointers based on other pointers
<whitequark> so even if you know you need to access 0x40011000 because some hw lies there
<devyn> I'm alexgordon, I hate low level stuff but I think webdevs should use C++
<whitequark> it's not legal
<alexgordon> devyn: lol that isn't what I said
<purr> lol
<alexgordon> web devs should not use C++ because it's too damn insecure
<whitequark> alexgordon: you are too damn insecure
<devyn> okay, I'm going back to school
<devyn> >_<
<alexgordon> whitequark: well I use C++, clearly I hate myself
<whitequark> that dos thing
<whitequark> is FCB
<alexgordon> FIB?
<devyn> FROG?
<whitequark> or maybe not
<whitequark> hell this was more than a decade ago
<devyn> well that reminds me of urbit
<devyn> where fucking everything is four letters long
<devyn> or three
<whitequark> wher fuck ever isis four lett long
<alexgordon> whitequark: I'm sure I've missed something here, but... can't you just use inline asm?
<whitequark> alexgordon: we were arguing whether C is close to x86 asm, or any asm
<whitequark> of course you can do it inline
<devyn> whitequark: have you seen hoon code? it's unreadable. completely random four letter symbol names for everything
<whitequark> then it's not C lol
<whitequark> devyn: I did
<whitequark> I've ranted about it here
<whitequark> tl;dr: "urbit is a nice attempt at trolling"
<devyn> lol
<devyn> somehow it works
<devyn> it's amazing
<devyn> okay gone
<whitequark> gone?
<cuttle> urbit is like
<cuttle> dystopian computing
<whitequark> oh god
<whitequark> this discusses DPMI and OS/2 and Windows 95
<whitequark> in like
<whitequark> 2004
<whitequark> WHY
<cuttle> haha wow
<alexgordon> hi cuttle
<whitequark> wait
<whitequark> this discusses DMA under DPMI
<whitequark> in fucking 2012
<whitequark> what
<whitequark> I mean seriously, is that shit for real!?
<whitequark> DOS 7.0? Watcom fucking C?
<whitequark> WHAT
<alexgordon> cuttle: HOLY SHIT
* alexgordon is looking at urbit
<alexgordon> cuttle: just had an idea
<alexgordon> cuttle: been looking at alphabets recently
<cuttle> alexgordon: oh?
<alexgordon> cuttle: ok it seems like most of the time programming uses one of two things (usually a combination of both)
<alexgordon> 1. english
<alexgordon> 2. mathematics encoded into ascii
<alexgordon> some languages have more english, some have more math notation
<alexgordon> but what if you could invent a notation that was neither...
<joelteon> ok it's gonna be a bitch to set up slash
<joelteon> mostly because i have to use apache
<joelteon> i hate apache
<alexgordon> obviously nobody would ever use it, so this is strictly masturbotary
<alexgordon> but what interesting things could you do with a new writing system for programming?
<alexgordon> writing on paper btw, not talking about unicode here
<cuttle> yeah
<whitequark> alexgordon: how do you get into, you know, the computer?
<alexgordon> whitequark: high resolution graphics tablet? :P
<whitequark> and what software?
<whitequark> and what do you do when you wanna fix a bug?
<cuttle> whitequark: irrelevant question
<alexgordon> I dunno, this is the future, we don't have to think about these things
<cuttle> whitequark: we're thinking about a cool idea
<cuttle> whitequark: don't need to think about that aspect
<alexgordon> whitequark: hire a chinese person to take your drawings and type them in
<whitequark> a useless idea then. ok
<alexgordon> whitequark: life is merely a series of useless ideas, followed by death.
<whitequark> meh
<cuttle> In mathematics, a topos (plural "topoi" or "toposes") is a type of category that behaves like the category of sheaves of sets on a topological space (or more generally: on a site).
<cuttle> alexgordon: high five
<cuttle> 11:38:42 <+alexgordon> whitequark: life is merely a series of useless ideas, followed by death.
<devyn> okay, back for a little while
<cuttle> whitequark: not every fucking part of an idea has to be set in stone for one to usefully speculate about it
<cuttle> that came out more angry than I intended
<devyn> it was the 'fucking' part
<devyn> just because you can swear now, cuttle, doesn't mean you have to do it constantly
<joelteon> stop fucking
<niggler> cuttle is one angry fucker
<devyn> :)
<joelteon> good bye cutle
<joelteon> good boy*
<joelteon> cuttle*
<joelteon> jesus
<cuttle> devyn: just because you can be condescending now doesn't mean you have to do it constantly
<joelteon> it's a joke bro
<devyn> cuttle: lol
<purr> lol
<alexgordon> the true meaning of life to have a lot of sex, right?
<alexgordon> pretty sure that's what darwin said
<joelteon> technically speaking, yes!
<whitequark> alexgordon: yes
* alexgordon is OK with this
<cuttle> joelteon: i'm referring to devyn as a whole, not just now
<joelteon> ok
<cuttle> devyn: :P
<devyn> life's ultimate goal is to reproduce
<cuttle> the fact that multiple people agreed with that
<alexgordon> I am just a package manager for my balls
<cuttle> oh god now
<cuttle> no
<devyn> we are the grey goo
<cuttle> evolution gives no goals
<devyn> cuttle: of course not
<cuttle> the illusion of goal-driven behavior arises
<devyn> cuttle: it is emergent...
<alexgordon> cuttle: not long term, but short term if we don't reproduce there can be no other goals at all
<alexgordon> I guess that fits what you just said
<alexgordon> QED
<cuttle> it is deeply fallacious to say that there is only one inherent true meaning of life, due to evolution
<cuttle> it's self-defeating logic, and that "meaning" is not a meaning either
<alexgordon> just saying that evolution wants us to fuck a lot
<cuttle> it's a fun joke to say
<alexgordon> as men. for women it's slightly different
<cuttle> but that's like saying
<cuttle> the only meaning for a star is to burn
<cuttle> that's a problematic sentence
<cuttle> that's not a meaning at all
<whitequark> #philosophy
<alexgordon> xD whitequark
<whitequark> let's all have one giant orgy with ec
<alexgordon> oh god
<devyn> cuttle: oh come on just give up and fuck something
<whitequark> oh yes
<alexgordon> ^5 devyn
<devyn> YEAH BABY, YEAH
<cuttle> LADIES LOVIN MY MUSIC IS LIKE SOME SEX SHIT
<cuttle> NIGGAS TRYNA GRIP UP MY MIC LIKE IT'S A DICK
<alexgordon> cuttle: ah now this is an interesting question
<alexgordon> at what point in human history did music become a way of getting sex?
<alexgordon> that was an awkward way of putting it
<alexgordon> "getting sex"
<cuttle> lol
<purr> lol
<alexgordon> eh you know what I mean
<whitequark> alexgordon: I think immediately
<whitequark> because everything humans do is a way of getting sex
<cuttle> nobody knows where music came from except bullshit evopsychologists
<devyn> lol
<cuttle> i mean you can say "it came from humans loving patterns"
<cuttle> but i mean we don't get the same deep satisfaction from constellations
<cuttle> oh man it's getting late
<cuttle> I have to go do some shit
<alexgordon> cuttle: have you seen bbc's life?
<cuttle> be back in a while
<cuttle> alexgordon: maybe
<alexgordon> at the end there's footage of apes drumming
<cuttle> oh that's awesome
<cuttle> well I'll be back
<cuttle> alexgordon: and we can make a cute fun reactive shape oriented uniformity of access language
<alexgordon> whitequark: jeeeeeeeeeesus
<alexgordon> creeped. out.
<devyn> alexgordon: NSFW?
<alexgordon> devyn: SFW but NSFL
<devyn> ok I'm kind of in a public place
<devyn> lol
<whitequark> frog taxidermy
<whitequark> it's okay devyn
<alexgordon> devyn: then it's fine
<devyn> lol
<purr> lol
<alexgordon> devyn: nobody else will care, but you might regret it
<devyn> I gotta get to class
<niggler> is NSFL a subset of NSFW?
<joelteon> yes
<alexgordon> niggler: apparently not
<joelteon> well everyone is alive during work usually