ELLIOTTCABLE changed the topic of #elliottcable to: a _better_ cult
<alexgordon> hi ELLIOTTCABLE
<ELLIOTTCABLE> hi
<purr> ELLIOTTCABLE: hi!
<ELLIOTTCABLE> doing excruciating git-surgery
<ELLIOTTCABLE> I know git pretty damn well, but what I'm doing here is brain-bending even for *me* :x
<vigs> I have a love-hate relationship with git. I love it, but also it's brainfucky/uncooperative.
<joelteon> i really like git
<vigs> I've been meaning to read this for a while; I have it printed out: http://ftp.newartisans.com/pub/git.from.bottom.up.pdf
<alexgordon> vigs: you're overusing it
<vigs> alexgordon: how so?
<alexgordon> vigs: general if you have problems with git, it means you're using it too much
<alexgordon> there's zen in using the fewest features of git that you need to
<vigs> ah, nope. I don't do anything wild and crazy with it. when I say it's brainfucky, it's usually dealing with multiple changes/outdated branches people I work with wanna try and merge into master
<vigs> I don't even have any aliases set up
<alexgordon> really? I find that the most intuitive part of git
<alexgordon> it tries to merge, you get a merge conflict that you can fix pretty easily
<alexgordon> then you commit it and go
<vigs> alexgordon: It becomes a problem when nobody keeps their work updated with master, then complain that master's broken when they try to merge and have me fix it/walk them through it
<vigs> But I loooooove using git <3
<ELLIOTTCABLE> looks like an excellent article:
<ELLIOTTCABLE> merges are goddamn horrible
<ELLIOTTCABLE> I use git almost exclusively without merges
<ELLIOTTCABLE> the only multiple-parent commits in my history have two parents with absolutely identical source-trees (i.e. all of the changes have already been otherwise combined.)
<alexgordon> how do you use git without merges? wat
<alexgordon> do you just not work with other people? lol
<purr> lol
<alexgordon> "I use git without merges" is the programming equivalent of "I wear a fedora"
<ELLIOTTCABLE> not at all. I focus mostly on branches for development, and then use interactive-rebases to combine work.
<ELLIOTTCABLE> interactive-rebases and squash-merges.
<vigs> rebases <3
<ELLIOTTCABLE> http://blog.elliottcable.name/posts/granular_committing.xhtml is old, but covers the majority of how I work.
<alexgordon> or "I grow my pubic hair down to my keels"
<ELLIOTTCABLE> lol alexgordon
<alexgordon> ELLIOTTCABLE: yeah like I said, overusing git
<ELLIOTTCABLE> not at all
<ELLIOTTCABLE> complete opposite.
* vigs high fives ELLIOTTCABLE for interactive rebases and squash-merges
<ELLIOTTCABLE> It's not some bad-ass thing.
<ELLIOTTCABLE> your reaction right now reminds me heavily of your general reaction to Paws.
<vigs> alexgordon: you look at the gorgeously clean commit histories we've got then get back to us
<ELLIOTTCABLE> “I don't have the time right now to listen to how <X> works, so <X> must clearly be overcomplicated, mystical, and strange.”
<alexgordon> vigs: all I think about is all the code you could be writing while you fuck around with git
<ELLIOTTCABLE> It's not an bad situation to not have the time, motivation, or desire to care how something works; but just because it sounds complex when you have no idea what's going on, doesn't mean it's *actually complex*.
<alexgordon> ELLIOTTCABLE: I know how git works, I just don't want to spend more than 10 minutes a day interacting with it
<vigs> …yeah I'm with ELLIOTTCABLE on this one. "I don't have time…strange."
<ELLIOTTCABLE> alexgordon: oh, I understand, believe me.
<ELLIOTTCABLE> It's a completely valid viewpoint, and one that I agree with *in certain circumstances*.
<vigs> I spend no more time on git than you, alexgordon. But there ARE multiple git workflows, each tailored for a specific purpose.
<ELLIOTTCABLE> I have similar points of view for some projects.
<alexgordon> I mean, at what point does git become a productivity sink, not a productivity tool?
<alexgordon> say I spend 8 hours a day programming
<ELLIOTTCABLE> But those same projects also have "I don't want to spend more than 10 minutes a day planning my API"
<ELLIOTTCABLE> and "I don't want to spend more than 10 minutes a day writing tests."
<alexgordon> if I spend an hour with git, that's 1/8 of my time
<ELLIOTTCABLE> a clean, excessively-well-written commit-history is just as important as good documentation, or an easily-readable specification suite, or an intuitive API.
<alexgordon> ELLIOTTCABLE: see I just disagree
<ELLIOTTCABLE> yesyesyesyes alexgordon we know, and (I, at least) even agree.
<ELLIOTTCABLE> my point is not that git can be a time-sink.
<alexgordon> ELLIOTTCABLE: when I used subversion I didn't have that, and it was fine
<ELLIOTTCABLE> lots of other development-related management tasks can be a time sink, too. Issue triage. Contributor-documentation.
<ELLIOTTCABLE> But different projects have different needs; and for an *open-source* project (the “pretty” kind that you want to present to the world, at least), commit histories should be at least as important as a comprehensive README, or consistent API design.
<ELLIOTTCABLE> a good commit-history is *crucial* to informative spelunking. Different code is written for different audiences.
<ELLIOTTCABLE> It's clear that *you* don't care about spelunkers, in your projects. And that's fine, but that's not everybody.
<alexgordon> ELLIOTTCABLE: see I don't do issue triage or contributor documentation
* alexgordon has optimized the heck out of programming
<ELLIOTTCABLE> yah, exactly
<ELLIOTTCABLE> speaking of: I was thinking about this, the other day. I'd love to see a toolset specifically for spelunking.
<alexgordon> what is spelunking?
<ELLIOTTCABLE> and perhaps a widespread standard/practice of writing two documents to replace today's README: User-README, and spelunker-README
<ELLIOTTCABLE> Hm. Depending on who you ask, or how you look at it, ‘spelunking’ could fall anywhere on a gradient between “reading a project's code with the intention of improving yourself as a programmer”, and “reading a project's code with the intention of better-exercising that product.”
<ELLIOTTCABLE> but most importantly, spelunking involves reading somebody else's code, with no intention of necessarily modifying/contributing to it.
<ELLIOTTCABLE> a general jQueerie user will read the documentation for foo.barify(); a spelunker who uses jQueerie will *read* the source-code to foo.barify(), following any links in the code necessary to a comprehensive understanding of how barify() operates; a spelunker who *doesn't* use jQueerie will read the source to foo.barify() simply because they respect or admire
<ELLIOTTCABLE> the developers of jQueerie, and wish to make themselves a better developer.
<ELLIOTTCABLE> I learned much of what I know of software development by spelunking.
<ELLIOTTCABLE> also, hi vigs
<ELLIOTTCABLE> my git histories are a thing of beauty ('=
<vigs> lol hi ELLIOTTCABLE
<purr> lol
<vigs> :D
<ELLIOTTCABLE> vigs: write a paws
<ELLIOTTCABLE> vigs: why haven't you written a paws
<ELLIOTTCABLE> vigs: you're clearly bad writing a paws
<vigs> I'm doing an assignment for a class right now :(
<vigs> on that note, fuck safari and -webkit-flex
<ELLIOTTCABLE> lol lol lol
<purr> lol
<vigs> but hey at least it's not IE ¯\_(ツ)_/¯
<ELLIOTTCABLE> hey at least it's not IE
* ELLIOTTCABLE shrugs at vigs
<purr> ¯\(º_o)/¯
<vigs> lol
Navarr___ has quit [Read error: Connection reset by peer]
Navarr___ has joined #elliottcable
<ELLIOTTCABLE> LOL
<purr> LOL
englishm has joined #elliottcable
englishm has quit [Quit: Leaving.]
alexgordon has quit [Quit: Textual IRC Client: www.textualapp.com]
gozala has quit [Quit: Connection closed for inactivity]
<ELLIOTTCABLE> hi, all
<ELLIOTTCABLE> c'mmon, why's everybody been so quiet the last few days? >:
<ELLIOTTCABLE> saddestiott
<vigs> sorry, I was making dinner :P
<vigs> now I'm about to eat dinner
<vigs> #LivinLaVidaLoca
<ELLIOTTCABLE> vigs: livin' large.
<vigs> so large
<ELLIOTTCABLE> I have sorbet
<ELLIOTTCABLE> and code
<vigs> sounds like a chill night
<ELLIOTTCABLE> vigs: and makeouts and blindness and wombats
<vigs> …uh?
<ELLIOTTCABLE> good night. (=
<vigs> oh, good night, ELLIOTTCABLE :D
<ELLIOTTCABLE> vigs: so, 'bout that Paws implementation. ;)
<purr\Paws> [Paws.js] ELLIOTTCABLE force-pushed copy-reactor+ from 06cefa1 to 42a322d: https://github.com/ELLIOTTCABLE/Paws.js/commits/copy-reactor+
<purr\Paws> Paws.js/copy-reactor+ 10f7984 elliottcable: + simple associative-table for ownership. (also discarding `Mask` type)
<purr\Paws> Paws.js/copy-reactor+ 79f9bdb elliottcable: + forcing ##construct to be responsibility-aware
<purr\Paws> Paws.js/copy-reactor+ 239e055 elliottcable: + old work, pre-spec
<ELLIOTTCABLE> -learn didja? = didja write a paws yet? didja? didja!?
<purr> ELLIOTTCABLE: Learned `didja?`.
<ELLIOTTCABLE> -didja @ vigs
<ELLIOTTCABLE> -learn alias didja = didja?
<purr> ELLIOTTCABLE: Learned `didja` => `didja?`.
<ELLIOTTCABLE> -didja @ vigs
<purr> vigs: didja write a paws yet? didja? didja!?
<vigs> oh my eff
<ELLIOTTCABLE> :D
<vigs> ELLIOTTCABLE: I'm gonna have to play with it (hopefully) this weekend. I've got three projects to do by friday. Also, I have a midterm on Friday, so. T___T
<ELLIOTTCABLE> ;)
<vigs> I'll make sure to play with paws, don't worry :P
<ELLIOTTCABLE> :D
eligrey has quit [Ping timeout: 240 seconds]
Sgeo has quit [Read error: Connection reset by peer]
Sgeo has joined #elliottcable
eligrey has joined #elliottcable
eligrey has quit [Ping timeout: 245 seconds]
<devyn> okay, yeah, so
eligrey has joined #elliottcable
<devyn> Paws in Haskell is just a nightmare due to the lack of, basically, restrictedly heterogeneous collections
<devyn> and so much IO
<devyn> I think
<devyn> I'll do it in Rust
<devyn> to learn it
vigs has quit [Ping timeout: 258 seconds]
vigs has joined #elliottcable
eligrey has quit [Quit: Leaving]
Rusky has quit [Quit: Leaving.]
Rusky has joined #elliottcable
glowcoil_ has joined #elliottcable
<glowcoil> ELLIOTTCABLE:
<glowcoil> ELLIOTTCABLE: <3 <3 <3
<devyn> hi micah
sarcasticsimba has joined #elliottcable
sarcasticsimba has quit [Remote host closed the connection]
sarcasticsimba has joined #elliottcable
akshatj is now known as sree_pot
sree_pot is now known as akshatj
akshatj is now known as sree_nor
sree_nor is now known as akshatj
<glowcoil> hi devyn
<devyn> I'm writing rust
<devyn> :D
<glowcoil> nice
<glowcoil> i wrote some one time
<glowcoil> the types got frustrating but they might be better now
<glowcoil> also might have been the way i was using it
<devyn> hmmm
<devyn> explain?
<glowcoil> like the linear typing/owning things
<devyn> ah yeah that
<devyn> I haven't run into where it will really be a problem yet haha
<devyn> I think it's a good thing to force the programmer to think about though
<devyn> certainly saves on unnecessary GC
<glowcoil> yeah idk
<glowcoil> yeah i agree in theory
<glowcoil> and also the mailing lists said that they were making it less restrictive
<devyn> you can have GC'd or refcounted objects with Gc<> and Rc<> respectively
<glowcoil> mhm
<glowcoil> well i really need to sleep
<devyn> 'kay
<devyn> o/
sarcasticsimba has quit [Remote host closed the connection]
ELLIOTTCABLE has quit [Read error: Connection reset by peer]
ELLIOTTCABLE has joined #elliottcable
sarcasticsimba has joined #elliottcable
jeannicolas_ has joined #elliottcable
akshatj has quit [*.net *.split]
jesusabdullah has quit [*.net *.split]
jeannicolas has quit [*.net *.split]
jeannicolas_ is now known as jeannicolas
akshatj has joined #elliottcable
akshatj is now known as Guest30980
yorick has joined #elliottcable
Guest30980 has quit [Changing host]
Guest30980 has joined #elliottcable
Guest30980 is now known as akshatj_
akshatj_ is now known as BroBro
<devyn> ELLIOTTCABLE: https://github.com/devyn/Paws.rs
<devyn> cPaws parser.
judofyr has joined #elliottcable
BroBro is now known as akshatj_
_whitelogger has joined #elliottcable
Sgeo has quit [Read error: Connection reset by peer]
sarcasticsimba has quit [Ping timeout: 258 seconds]
sarcasticsimba has joined #elliottcable
alexgordon has joined #elliottcable
PragCypher has joined #elliottcable
<ELLIOTTCABLE> devyn: fuckin' yehhh
<ELLIOTTCABLE> I'm about to dive into some finishing git-cleaning work on the copy-reactor branch
<ELLIOTTCABLE> Then that's merging into master, and I'm onwards and upwards
sarcasticsimba has quit [Ping timeout: 258 seconds]
vigs has quit [Ping timeout: 258 seconds]
vigs has joined #elliottcable
sarcasticsimba has joined #elliottcable
<ELLIOTTCABLE> hi all!
<ELLIOTTCABLE> this is a very strange time of day for me to be *waking up*.
<ELLIOTTCABLE> glowcoil!
<ELLIOTTCABLE> die.
<ELLIOTTCABLE> oh my god he didn't die
<ELLIOTTCABLE> judofyr! !! 1 !!
<yorick> ELLIOTTCABLE: what is happen?
<judofyr> hey ELLIOTTCABLE
<ELLIOTTCABLE> yorick!
<ELLIOTTCABLE> you doing JSconf?
<yorick> but I have no money!
<ELLIOTTCABLE> derr
<ELLIOTTCABLE> devyn: have you slept? :P
sarcasticsimba has quit [*.net *.split]
vigs has quit [*.net *.split]
vigs has joined #elliottcable
sarcasticsimba has joined #elliottcable
jesusabdullah has joined #elliottcable
<ELLIOTTCABLE> o7 vigs
<ELLIOTTCABLE> and vil
fwg has joined #elliottcable
<ELLIOTTCABLE> … and that's that. vvv
<purr\Paws> [Paws.js] ELLIOTTCABLE pushed 14 new commits to copy-reactor: https://github.com/ELLIOTTCABLE/Paws.js/compare/f94b575ce24c...ce4aa74d1352
<purr\Paws> Paws.js/copy-reactor 3850a63 elliottcable: (api fix) Make Thing##construct responsibility-aware...
<purr\Paws> Paws.js/copy-reactor 2f76214 elliottcable: (new incomplete api vis) Little Reactor's first steps!...
<purr\Paws> Paws.js/copy-reactor 15e0024 elliottcable: (new api) A simple Table type to mediate responsibility...
* ELLIOTTCABLE grins big
judofyr has quit [Remote host closed the connection]
alexgordon has quit [Quit: Textual IRC Client: www.textualapp.com]
<purr\Paws> [Paws.js] ELLIOTTCABLE pushed 1 new commit to Master: https://github.com/ELLIOTTCABLE/Paws.js/commit/93e2628b016e193e956e8cadde6c28d5642551f6
<purr\Paws> Paws.js/Master 93e2628 elliottcable: (- fix meta) Use node scripts instead of cake for Travis-CI
<ELLIOTTCABLE> sourcegraph looks cool.
<ELLIOTTCABLE> idk when that'll load, or if it'll sanely find anything …
Matthewdean has joined #elliottcable
alexgordon has joined #elliottcable
<ELLIOTTCABLE> Matthewdean: o7
<ELLIOTTCABLE> (alexgordon: morning!)
<ELLIOTTCABLE> alexgordon: I feel very alexgordon today.
Matthewdean has quit [Client Quit]
<alexgordon> hi ELLIOTTCABLE
<alexgordon> I feel very ELLIOTTCABLE today
<ELLIOTTCABLE> alexgordon: lies.
<alexgordon> ELLIOTTCABLE: like, I'm going to go out and drink myself stupid, grill one hand, stab the other and fuck upside down
* ELLIOTTCABLE grins
<ELLIOTTCABLE> sounds like a fucking great day.
bradleymeck has joined #elliottcable
<ELLIOTTCABLE> alexgordon: write a paws.
<alexgordon> a paws
<ELLIOTTCABLE> alexgordon: create a paws.
<ELLIOTTCABLE> -didja? @ alexgordon
<purr> alexgordon: didja write a paws yet? didja? didja!?
<ELLIOTTCABLE> -didja? @ devyn
<purr> devyn: didja write a paws yet? didja? didja!?
<ELLIOTTCABLE> ;)
<purr\Paws> [Paws.js] ELLIOTTCABLE pushed 1 new commit to copy-reactor+: https://github.com/ELLIOTTCABLE/Paws.js/commit/65a89cdd6344e7e389f2058a7bbd260e24aecafc
<purr\Paws> Paws.js/copy-reactor+ 65a89cd elliottcable: %%SYNC
<purr\Paws> [Paws.js] ELLIOTTCABLE force-pushed Master from 93e2628 to d500f17: https://github.com/ELLIOTTCABLE/Paws.js/commits/Master
judofyr has joined #elliottcable
<ELLIOTTCABLE> judofyr judofyr judofyr judofyr
judofyr has quit [Remote host closed the connection]
<ELLIOTTCABLE> ಠ_ಠ
<ELLIOTTCABLE> ♪ What You Know by Two Door Cinema Club
<purr> ELLIOTTCABLE is listening to “What You Know by Two Door Cinema Club”, by One Man Ben
<ELLIOTTCABLE> …
<ELLIOTTCABLE> the FUCK
<ELLIOTTCABLE> ♪ What You Know
<purr> ELLIOTTCABLE is listening to “My Songs Know What You Did In The Dark (Light Em Up)”, by Fall Out Boy
<ELLIOTTCABLE> ಠ_ಠ
<ELLIOTTCABLE> fuck everything.
eligrey has joined #elliottcable
cloudhead has joined #elliottcable
<cloudhead> devyn: trying to implement paws in every language?
<cloudhead> :D
<ELLIOTTCABLE> cloudhead: need a check-list. “Somebody's tried to write a Paws in <this> language.”
<glowcoil> ELLIOTTCABLE: <3
<ELLIOTTCABLE> holy crap irc cloud colourizes nicknames now.
<glowcoil> LET'S PAWS
<glowcoil> i feel like pounding out a hardcore C impl
<glowcoil> lol
<purr> lol
<glowcoil> oh but also i just remembered
<glowcoil> i want to figure out how hands can be an interopable paws
<ELLIOTTCABLE> my mind was on that the other day.
<glowcoil> i will just get something working, and then move it towrads that
<glowcoil> eventually
<glowcoil> ?
<ELLIOTTCABLE> not *exactly* that, because “interoperable” implies a lot that I don't want to cover,
<ELLIOTTCABLE> but I was thinking about breaking the Nucleus down into sub-sections that can be separately standardized.
<glowcoil> oh ok
<glowcoil> interesting
<glowcoil> Baths is doing an AMA at 7pm est :)
<ELLIOTTCABLE> at the very least, three parts: Paws reactor (which basically describes the object-model and execution-model), communication system (over-the-wire format, conflict resolution, module system, etc), and natives (the libside API)
<glowcoil> i need to think of good questions :p
<ELLIOTTCABLE> baths is playing here, soon
<glowcoil> oh oh oh
<glowcoil> i am so mad
<glowcoil> because
<glowcoil> he opened for postal service
<glowcoil> and due to fucking awful parking lot management stuff
<glowcoil> i missed him due to traffic
<glowcoil> literally the parking line was backed onto the one-lane freeway for like a mile
<glowcoil> ok i'm legit buying Ocean Death EP
<glowcoil> has such a great cover
<glowcoil> ELLIOTTCABLE: so my approach is going to be, don't comply at first but eventually be compliant
<ELLIOTTCABLE> lol @ music-glowcoil
<purr> lol
<ELLIOTTCABLE> shaddup purr
<ELLIOTTCABLE> you're so much less fun when you're red
<ELLIOTTCABLE> everybody remotely important is the same colour. This is terrible, irccloud ;_;
<ELLIOTTCABLE> red.
<ELLIOTTCABLE> purr is red. glowcoil is a slightly darker red. alexgordon is red.
<glowcoil> haha
<ELLIOTTCABLE> gq is a much darker red, even
<ELLIOTTCABLE> vigs: come talk, so your colour breaks up the monotony!
<ELLIOTTCABLE> devyn: you too.
<yorick> ELLIOTTCABLE: you're blue to me
<joelteon> what about me
<ELLIOTTCABLE> come be pretty colors.
<joelteon> what color am i
* ELLIOTTCABLE joelteon: neon, likes-it-in-the-butt pink.
<yorick> joelteon: purplish
<ELLIOTTCABLE> yorick: orange.
<yorick> yay
<ELLIOTTCABLE> everything is goddamn shades of red or orange.
<joelteon> likes what in the butt
<yorick> what about other yorick?
<ELLIOTTCABLE> yorickpeterse: other yorick! come when called!
<glowcoil> 5:06:57 * ELLIOTTCABLE joelteon: neon, likes-it-in-the-butt pink.
<yorick> http://dl.dropbox.com/u/22989236/temp/20140506190751.png look at this marvelous nonmonotony
<ELLIOTTCABLE> yorick: client?
<joelteon> yorick is white, ELLIOTTCABLE is yellow
<yorick> ELLIOTTCABLE: quassel
<joelteon> i dont know what color glowcoil is because he highlighted me
<ELLIOTTCABLE> thfuck is that
<yorick> it's a terrible client, really :P
<yorick> ELLIOTTCABLE: it's a host-it-yourself slower irccloud
<ELLIOTTCABLE> ick. O_O
<yorick> and I'm not even using that functionality because it requires postgresql to be any kind of acceptably fast
<glowcoil> ELLIOTTCABLE: what i like about baths is he favs tweets
<glowcoil> ELLIOTTCABLE: he just favd my tweet
<ELLIOTTCABLE> lol!
<purr> lol
<glowcoil> YES sara bareilles coming here
<glowcoil> got to go
<glowcoil> i spend too much money on concerts :c
gozala has joined #elliottcable
<ELLIOTTCABLE> eligrey: I hate privmsgs you little cunt. Speak here.
<eligrey> what if i'm not in the channel?
<ELLIOTTCABLE> then you can't speak to me because I am a deaf
<ELLIOTTCABLE> ;)
<eligrey> does anyone here want a navigator.cores API for sizing worker threadpools for parallel algorithms?
<eligrey> since currently you don't know how many workers to use on any given machine
<eligrey> if you do want it, please defend it on lists.whatwg.org/listinfo.cgi/whatwg-whatwg.org
<eligrey> http://*
<purr\Paws> [Paws.js] ELLIOTTCABLE pushed 1 new commit to Master: https://github.com/ELLIOTTCABLE/Paws.js/commit/9d3378255305fe043077a29936d9aa223b58c20e
<purr\Paws> Paws.js/Master 9d33782 elliottcable: (- re noop) Stop carrying around dead utilities code...
<yorickpeterse> ELLIOTTCABLE: eh?
<yorick> he's just gray
<ELLIOTTCABLE> he's green, like eligrey and purr when he's messaging.
<yorick> yorickpeterse: kthx
<ELLIOTTCABLE> :P
<yorick> eligrey: well, the game-theory argument is interesting
<yorick> eligrey: but I think that spawning too many threads doesn't harm the computation speed as much as spawning too little, so you better make sure webpages can figure out how to not overload the system
<ELLIOTTCABLE> devyn, glowcoil: talk to me!
<ELLIOTTCABLE> -didja @ devyn
<purr> devyn: didja write a paws yet? didja? didja!?
<ELLIOTTCABLE> didja didja didja
judofyr has joined #elliottcable
<glowcoil> just made the best clicky sound ever
<glowcoil> synthesis ftw
<glowcoil> ugh i feel like shit rn
<glowcoil> ELLIOTTCABLE: ok so um
<glowcoil> ELLIOTTCABLE: i'm going to write an eventually-compliant hands
<ELLIOTTCABLE> yah?
<ELLIOTTCABLE> so, tell me more. don't get it
<eligrey> yorick: also firefox already handles the too much argument by limiting hardware threads per origin
<eligrey> to like 16 or something
<eligrey> but that is a bad idea
<eligrey> they should instead limit it based on a % of total threads over 16
<eligrey> total hw* threads
<eligrey> otherwise future computers will have 128 cores and you'll have these awesome native applications that actually need a lot of them
<eligrey> but then webapps are still stuck in 2014 with 16-thread limits
judofyr has quit [Remote host closed the connection]
<ELLIOTTCABLE> "still stuck in 2014"
<ELLIOTTCABLE> global first use of that phrase?
<ELLIOTTCABLE> :P
<devyn> ELLIOTTCABLE: Paws.rs can parse cPaws atm
* ELLIOTTCABLE nods
<ELLIOTTCABLE> AND WHAT HAVE YOU DONE SINCE THEN, MONKEY
<devyn> I slept
bradleymeck has quit [Quit: bradleymeck]
* ELLIOTTCABLE leers over devyn
<devyn> it was like 4a
<devyn> 4am
<ELLIOTTCABLE> oh pay who sleeps
<ELLIOTTCABLE> pah*
<ELLIOTTCABLE> -sleep
<purr> ELLIOTTCABLE: night everyone!
<ELLIOTTCABLE> no
<devyn> haha
<ELLIOTTCABLE> -find slee
<purr> ELLIOTTCABLE: Found: nosleep, sleep, and liar
<ELLIOTTCABLE> -nosleep
<purr> ELLIOTTCABLE: had no sleep. Give him/her a break! Also, if you don't want to sleep either: <http://reddit.com/r/nosleep>
<ELLIOTTCABLE> LOL
<purr> LOL
<ELLIOTTCABLE> -factoid nosleep
<purr> ELLIOTTCABLE: Popularity: 8, last changed by: <unknown>, <unknown time> ago
judofyr has joined #elliottcable
<ELLIOTTCABLE> glowcoil:
glowcoil_ has quit [Remote host closed the connection]
glowcoil has quit [Remote host closed the connection]
<ELLIOTTCABLE> 12:38 PM <+ELLIOTTCABLE> yah?
<ELLIOTTCABLE> 12:38 PM <+ELLIOTTCABLE> so, tell me more. don't get it
<ELLIOTTCABLE> crap.
<alexgordon> devyn: here?
<devyn> yah al
<devyn> alexgordon:
<alexgordon> I want to talk linear typing
<devyn> lol
<purr> lol
<alexgordon> and micah isn't here
<ELLIOTTCABLE> “al”
<alexgordon> :(
<ELLIOTTCABLE> linear typing?
alexgordon is now known as algore
<devyn> haha
<ELLIOTTCABLE> algoreithmic.
<devyn> algoreichmic
<algore> ELLIOTTCABLE: linear typing is when variables can only be read once
<ELLIOTTCABLE> brendaneichmich?
* ELLIOTTCABLE eyebrows
<ELLIOTTCABLE> lolwat
<algore> ELLIOTTCABLE: it's useful for when you want to safely use pointers, instead of passing the same pointer all over the place, if you use linear typing you can ensure that each pointer only has one owner
<algore> (at any one time)
<devyn> I'm actually just trying to figure out how that all works in Rust at the moment
<algore> it's basically like C++ I think
<algore> with unique_ptr
<algore> devyn: anyway I wanted to talk variables
<devyn> except I don't know how that works either
<devyn> okay
<algore> in furrow
<devyn> go on
<ELLIOTTCABLE> ♪ Blow My Candle Out
<purr> ELLIOTTCABLE is listening to “Blow My Candle Out”, by Spose
<algore> devyn: basically furrow (like rust and go) has two types: bindings and variables
<algore> a binding is like
<algore> x = 42
<algore> a variable is like
<algore> var x = 42
<ELLIOTTCABLE> ~ Glenfiddich rivers, swan shaped bongs,
<ELLIOTTCABLE> ~ Some big tittied angels floating over ponds
<ELLIOTTCABLE> ~ Singing songs more soothing than, Bed Bath & Beyond
* ELLIOTTCABLE grins
<algore> devyn: the problem is trying to figure out the limits of what bindings can do
<ELLIOTTCABLE> <3 Spose
<purr> Let it be known that ELLIOTTCABLE hearts Spose.
<algore> how far can you go with a binding before you have to use a variable
<ELLIOTTCABLE> algore: well, what're the purposes of bindings?
<algore> ELLIOTTCABLE: bindings are constant, ish
<ELLIOTTCABLE> never seen anything like that, so wax featureful at me.
<algore> ELLIOTTCABLE: e.g. you can't increment a binding in a loop
<algore> you can't do say
<algore> while true: x += 1
<algore> if x is a binding
<algore> it has to be a variable
<ELLIOTTCABLE> well, I get that, but I mean *why*
<ELLIOTTCABLE> ick. ignore me, go on.
<algore> ELLIOTTCABLE: main reason is closures, but there's also memory management reasons
<algore> move vs copy
<devyn> because having potentially mutable variables for all kinds of temporary data is wasteful. if you can guarantee immutability, you can reason a bit more
<ELLIOTTCABLE> so, primarily preformant concerns?
<algore> yeah, bindings can be *rebound* but they can't be reassigned
<ELLIOTTCABLE> and how are closures a reason?
<algore> ELLIOTTCABLE: mmm no it's a semantic difference with closures
<algore> ELLIOTTCABLE: if a closure binds over a binding, then the value is copied (or moved)
<algore> ELLIOTTCABLE: whereas with a variable it's a reference
<algore> ELLIOTTCABLE: oh and the other thing is that variables can be declared but bindings can't be
<algore> hold on I can demonstrate the difference simply
<ELLIOTTCABLE> that's clear, but again, why?
<ELLIOTTCABLE> why a different type of data-box, that is incapable of hoisting-declarations?
<algore> ELLIOTTCABLE: you want scopes at a finer granularity than function level
<algore> e.g. in ruby and python everything is declared at function level
<algore> ELLIOTTCABLE: also the problem is, what do you put variables that haven't been initialized?
<ELLIOTTCABLE> again, confused. so, its a way to avoid having an `undefined` type or similar?
<ELLIOTTCABLE> null, whatevs
<ELLIOTTCABLE> but I'm not clear on *how* it avoids that.
<algore> ELLIOTTCABLE: one reason for it yes
<algore> ELLIOTTCABLE: it avoids it because that code is a compile error
<algore> you have to declare your variable
<ELLIOTTCABLE> but I'm not clear on *how* it avoids that.
<ELLIOTTCABLE> ick
<ELLIOTTCABLE> wrong paste
<ELLIOTTCABLE> “ah, it's lexical”
<ELLIOTTCABLE> seems stupid to call this something *different* from variables.
<devyn> well they aren't variable
<devyn> :p
<ELLIOTTCABLE> just sounds like a variable that's defaulting to the smallest-possible lexical scope.
<ELLIOTTCABLE> and then a compiler that throws an error if it sees an undeclared ‘variable’, whether that's because it was declared at a tighter scope, or was completely undeclared, and thus was automatically restricted to the tightest scope.
<ELLIOTTCABLE> what'm I missing, there?
<ELLIOTTCABLE> @ devyn
<ELLIOTTCABLE> yah, that gist is basically what I just described, afaict
<algore> ELLIOTTCABLE: maybe you'd like an example of something bindings can do but variables can't
<devyn> yeah, now I'm a bit confused too
<algore> devyn: which bit?
<ELLIOTTCABLE> hmmm
<ELLIOTTCABLE> hmmmmmm
<ELLIOTTCABLE> so:
<ELLIOTTCABLE> how does introducing weak typing in the domain of ‘bindings’, *not* lose the benefits of static typing,
<ELLIOTTCABLE> or to re-cast the question … why not just make variables themselves ‘rebindable’ as you put it?
<algore> you could, there's a fine line
<algore> conceptually, each time you set a binding you're setting a different "variable"
<algore> the x = 42 line is like x_a = 42
<algore> the x = "Hello" line is like x_b = "Hello"
<ELLIOTTCABLE> don't see what that changes
<algore> it doesn't change anything
<algore> it's just a conceptual difference
<algore> you do lose some static typing benefits
<algore> there are some reasons to do it though, particularly with parametric types
<algore> e.g.
bradleymeck has joined #elliottcable
<algore> that's much less extreme than the other example
<algore> you're binding once as [Int] then again as [Real]
<algore> which seems reasonable
<algore> otherwise you'd have to use a different name than y
<devyn> seems unnecessary
<devyn> I'd rather just use a different name
<algore> devyn: personally I feel I'd be losing something by having that restriction
<algore> devyn: being able to rebind variables using subtly different types is something that scripting languages do really well
<algore> maybe it's not acceptable in Java, but it's totally normal in Python to do that
<algore> if I'm aiming at python's niche, this is something it has to do IMO
<devyn> okay, I can't really think of many real-world cases where it comes up at the moment
<algore> anyway you could always have a warning for it
<algore> the type information hasn't gone anywhere :P
<devyn> of course
<algore> my dream is scripting-language like flexibility but with statically typed safety
<algore> it's a tradeoff but you can at least add more safety than python (zero)
<algore> which brings me back to defining the limits of bindings vs variables
<algore> you can push it quite far actually
<algore> you could do what elliott was saying and allow implicit declarations at the lowest scope if all paths result in a declaration https://gist.github.com/fileability/e79df9a8f48761636953
<ELLIOTTCABLE> woah
<ELLIOTTCABLE> -clouds
<purr> ELLIOTTCABLE: is stuck up in the clouds; hilight 'em if you want 'em.
<algore> there's nothing _wrong_ with that code
<algore> since x is guaranteed to be set to something for print(x)
<ELLIOTTCABLE> 1:37 PM <+algore> devyn: personally I feel I'd be losing something by having that restriction
<algore> devyn: also the language encourages it with the & operator
<algore> y&.map(x: x / 2.0)
<algore> so that's another reason to allow rebinding to different types
<ELLIOTTCABLE> still just not at all understanding the point of this.
<ELLIOTTCABLE> “why are bindings not variables?” What do you *gain* from having bindings?
<ELLIOTTCABLE> all I can tell, is that you lose a lot of the benefits of static typing by including them in the language.
<algore> ELLIOTTCABLE: it depends on what level of safety you want
<ELLIOTTCABLE> and have to type extra letters in the majority-case, where you want the benefits of static typing.
<algore> you could have only variables, and mandate that each variable is declared somewhere
<algore> but even haskell doesn't require variable declarations
<algore> it doesn't really have variables at all, just let bindings
<algore> without bindings you'd have
<algore> var y = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 123, 12341, 12312412, 123123, 12312412]
<algore> var y2 = y.map(x: x / 2.0)
<algore> nowhere as near as nice as
<algore> y = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 123, 12341, 12312412, 123123, 12312412]
<algore> y&.map(x: x / 2.0)
katlogic has joined #elliottcable
<ELLIOTTCABLE> algore: the same could be said for static typing in general.
<ELLIOTTCABLE> again, I see no reason for the scope-restraints;
<katlogic> wow, neat cult :)
<algore> ELLIOTTCABLE: nah because it's is inferred :P
<algore> welcome katlogic
<ELLIOTTCABLE> it really just seems like including a statically_typed_var and dynamic_var in the same language.
<algore> ELLIOTTCABLE: it's not dynamic typing though. ALL typing is done at compile time
<ELLIOTTCABLE> which is something I find revolting. strong opinions are crucial to language design.
<ELLIOTTCABLE> (otherwise you end up with Perl and C++.)
<algore> there is literally no dynamic typing here at all
<ELLIOTTCABLE> well, I understand re-binding.
<ELLIOTTCABLE> forgive my terminology.
<algore> rebinding is correct
<ELLIOTTCABLE> okay back to fixing this shit
<ELLIOTTCABLE> somebody wake glowcoil the fuck up.
<ELLIOTTCABLE> katlogic: thanks, it's clearly the best
<ELLIOTTCABLE> katlogic: most importantly, it's better than OFTN.
<algore> ELLIOTTCABLE: here's an example with closures: https://gist.github.com/fileability/b775878b3c0904e18c08
<algore> oops
<algore> fixed line 12
<katlogic> algore: What horrible thing you did to it?
<katlogic> incidentally i'm currently writing 1:1 bridge between v8 and lua
<katlogic> and contexes are horror because cant map 1:1 to how globals are done in lua :/
<algore> katlogic: this isn't lua btw, it's furrow. that's just the nicest highlighter I could find
<katlogic> algore: seems pretty lua to me :)
<ELLIOTTCABLE> katlogic: we design languages in here.
<ELLIOTTCABLE> amongst other, less classy things.
<algore> we speak in tongues
<ELLIOTTCABLE> cascade, hands, paws, furrow, uhhhh what's that reactive one micah was working on for a hot minute?
<katlogic> ok which of you is who on that site?
<ELLIOTTCABLE> katlogic: how on earth have I never seen that.
<ELLIOTTCABLE> that list is *tiny*
<katlogic> i know
<ELLIOTTCABLE> in fact, I think I *know* more languages than are on that list
<katlogic> ELLIOTTCABLE: make a better list then!
<ELLIOTTCABLE> algore: clearly, you should submit furrow :D
<algore> :D
<algore> I need to finish the compiler first
<algore> i feel like https://gist.github.com/fileability/e79df9a8f48761636953 is a common enough case that it should be supported
<algore> even though it's awkward
<ELLIOTTCABLE> the descriptions on that page are so … interesting.
<ELLIOTTCABLE> The things people say to describe their work in linguistics.
<algore> ELLIOTTCABLE: btw, furrow does have dynamic typing via the Any type, but it's not something that'll be in 1.0 :P
<ELLIOTTCABLE> how the hell does ‘factor’ qualify as *not* a well-known language? :P
<katlogic> ELLIOTTCABLE: the list is rather random
<ELLIOTTCABLE> Elixir, Fancy, Atomy, ooc (isn't that dead?), Potion, are the only ones on that list that I think I remember off the top of my head
<katlogic> some are rather obscure
<ELLIOTTCABLE> which tells you a lot about the circles I run in.
<ELLIOTTCABLE> so, what're you doing with V8 and lua? (while I run off to fix my globals shit; will read asynchronously)
<katlogic> I'm too old for language design way long ago.
<ELLIOTTCABLE> -find age
<purr> ELLIOTTCABLE: Found: i can do without the sarcasm, languages, australia, scream, and languages.ours
<katlogic> But V8 has this nice hipster ecosystem where people write shit and post npm packages for it.
<ELLIOTTCABLE> -learn age = too old for language design.
<purr> ELLIOTTCABLE: Learned `age`.
<ELLIOTTCABLE> I don't know, alexgordon is approximately 65.
<katlogic> So wouldn't it be cool to just require those from Lua (which is less painful to use than js)
<ELLIOTTCABLE> ;)
<katlogic> turns out i need to emulate bunch of node too, but that turned out to be the least problem
<katlogic> since there is a lot of code for that to emulate node in browsers and such already
<katlogic> ELLIOTTCABLE: off that list perhaps only Myrddin and crystal are interesting
<katlogic> others are either dead or well known already
<ELLIOTTCABLE> mmm, myr does indeed look neat
<ELLIOTTCABLE> “Myrddin is not a language designed to explore the forefront of type theory or compiler technology.”
<ELLIOTTCABLE> always makes me happy to hear that.
<katlogic> it's a rather hardcore attempt to re-do c
<katlogic> without it actually being c
<ELLIOTTCABLE> interesting looking.
<ELLIOTTCABLE> I died. ('=
judofyr has quit []
<ELLIOTTCABLE> I really have no idea what this line of CoffeeScript is doing.
<ELLIOTTCABLE> if isFinite (l = parseInt level, 10)
<ELLIOTTCABLE> parens are offset from the function name, so they're grouping … must be a comma-operator, not an arguments-seperator. So how is it testing finity if it always gets 10? o_O
<katlogic> expression-declarations are awesome :)
<algore> iwantmyname is really great
<ELLIOTTCABLE> the generated JS is just psychotic
<ELLIOTTCABLE> if (isFinite((l = parseInt(level, 10)))) {
<katlogic> var l above it, i hope
<ELLIOTTCABLE> yep, 'course
<katlogic> well coffeescript is somewhat famous for this ambiguity, but it is all the rage thing among kids now
<ELLIOTTCABLE> thanks, Ruby
<katlogic> so i had to stick with it :/ still much better than plain js
* ELLIOTTCABLE salutes, as an actual *reader* of parse.y
<ELLIOTTCABLE> oh, disagree, JS's syntax is quite excellent
<katlogic> matter of opinion, i write js like this https://github.com/katlogic/nodemu/blob/master/boot.js#L175
<ELLIOTTCABLE> would never duplicate or mimic it with a neo-modern language, but *definitely* am a fan of it as it stands
<katlogic> ie no semicolons, let's finally made bearable scoping rules of locals etc
<ELLIOTTCABLE> yah :D
<ELLIOTTCABLE> anybody have a link to my dual-javascript?
<ELLIOTTCABLE> was going to try to freak katlogic out, but I can't find it.
<katlogic> I regularly flame kids who hack lua lparser.c and do horrible things to it. I've seen the depth of language design abyss.
<katlogic> Lua has this curse of being extremely small language, so it is rather trivial to hack its syntax / "invent" stuff on top of it.
<ELLIOTTCABLE> well, I clearly can't be arsed with inventing new kinds of syntax right now.
<ELLIOTTCABLE> lol.
<purr> lol
<katlogic> ELLIOTTCABLE: is that .. clojurescript .. except not?
<ELLIOTTCABLE> nothing remotely like it.
<ELLIOTTCABLE> my own magnum opus, a language named Paws.
<katlogic> I dont even have font for ‡ :)
<ELLIOTTCABLE> haha. That's not part of the language, just a temporary variable I used there.
<ELLIOTTCABLE> there's only six characters to the syntax. {}() \n
PragCypher has quit [Remote host closed the connection]
<ELLIOTTCABLE> katlogic: if you're interested in lang design, I'll be happy to wax eloquent on what Paws is … but later. Productive stretch.
<katlogic> ELLIOTTCABLE: i appreciate the sentiment of doing minimal (but extensible) grammar and not being simply s-exp lisp
<ELLIOTTCABLE> devyn: if you keep the code clean, I might try to learn enough Rust to follow-along in your work.
<ELLIOTTCABLE> devyn: can I talk you into committing granularly, so I can follow it more closely?
<ELLIOTTCABLE> devyn: also, add me as a collar.
<ELLIOTTCABLE> collab*
<algore> collar? what?
<ELLIOTTCABLE> collaborator. on github. noob.
Matthewdean has joined #elliottcable
<Matthewdean> hey
<ELLIOTTCABLE> Matthewdean: o7
<Matthewdean> I have managed to connect to this ancient technology.
<Matthewdean> Using the divination stones.
<ELLIOTTCABLE> algore: you may want to pay attention to this :P
<Matthewdean> lol
<purr> lol
<ELLIOTTCABLE> don't we have an espresso dev in here? I forget who
<ELLIOTTCABLE> pff, ancient
<Matthewdean> lolI haven't IRC'd since.... 2000?
<ELLIOTTCABLE> holy crap.
<Matthewdean> yep
<ELLIOTTCABLE> I didn't *start* IRC'ing until, maybe, 2003?
<Matthewdean> interesting
<joelteon> i was 6 years old in 2000
<Matthewdean> I've forgotten all IRC knowledge
<ELLIOTTCABLE> joelteon: wat. really?
<Matthewdean> oh hey, cloudhead - Alexis?
<joelteon> yes
<ELLIOTTCABLE> Matthewdean: yep
<Matthewdean> Is that who's logged in on the right?
<ELLIOTTCABLE> probably.
<ELLIOTTCABLE> idk the web interface, it's terrible.
<ELLIOTTCABLE> I suggest http://irccloud.com/
<ELLIOTTCABLE> cloudhead, judofyr, and glowcoil are my favourite people.
<ELLIOTTCABLE> (alexis sellier, magnus holm, micah johnston)
<joelteon> :(
<Matthewdean> Oh neat. I was the guy who headed up management of Less when Alexis needed to step back.
<katlogic> dunno i had to put everyone using irccloud on ignore
<katlogic> too much quit/joins
<ELLIOTTCABLE> katlogic: oh? was there a big split recently, or something?
<Matthewdean> No, Less dev had stalled somewhat
<katlogic> like any shell provider, its a matter of time till the really big ddoses hit
* ELLIOTTCABLE laughs
<ELLIOTTCABLE> shell provider?
<Matthewdean> So, I asked if he needed help. He did, and I rallied a team for it
<ELLIOTTCABLE> irc cloud doesn't do bouncing or shell access. It's a web app.
<katlogic> irccloud is just hipster shell provider :)
<Matthewdean> Now it's mostly led by one of those people: Luke Page.
* ELLIOTTCABLE eyebrows
<katlogic> ELLIOTTCABLE: the result is the same.
<ELLIOTTCABLE> you have a *really* generalized definition of shell-provider then :P
<katlogic> either run irssi in screen on shell
<Matthewdean> whoa multiple convos
<ELLIOTTCABLE> yeah, was a big irssi nut for a while.
glowcoil has joined #elliottcable
<ELLIOTTCABLE> was back-and-forth between irccloud and irssi for quite a while
<katlogic> huh?
<ELLIOTTCABLE> at one point I suddenly realized I never logged into my irssi anymore, and finally just killed the process for good.
<ELLIOTTCABLE> oh look it's glowcoil
<ELLIOTTCABLE> speak of the devil, so to speak.
<ELLIOTTCABLE> (relevant: glowcoil's actually using my irssi setup right now)
<Matthewdean> So what happens here?
<katlogic> ELLIOTTCABLE: literally 3/4 of irc does. except freenode it seems :)
<Matthewdean> Are you assembling an Avengers team?
<ELLIOTTCABLE> Matthewdean: we mostly talk about how to make programming better. Everything from the sort of discussion about text-editors you and I just had on Twitter, to talking about programming-language development or API design.
<katlogic> nah, i'm trying to rip apart ELLIOTTCABLE for his hipsterness
<Matthewdean> Ah cool
<ELLIOTTCABLE> an Avengers team :P
<ELLIOTTCABLE> nah, as the /topic says, it's a cult.
<Matthewdean> That's interesting. Well, like I said, I'm still peripherally involved in language design for Less.
<ELLIOTTCABLE> a cult of people who hate Paws. ;)
<ELLIOTTCABLE> oh, and as a footnote, we run the #Node.js bot. he's a *lot* less friendly outside that channel, though. in there, everybody has to get along, but this is more wild territory.
<purr> hah
<glowcoil> hah
<Matthewdean> Interesting
<ELLIOTTCABLE> glowcoil: o7
<ELLIOTTCABLE> oh, and,
<ELLIOTTCABLE> -logs
<purr> ELLIOTTCABLE: `curl -Lr -`bc <<<'2 ^ 16'` http://ell.io/logs | tail +2 | less -RS`
<ELLIOTTCABLE> hrm. or not.
<ELLIOTTCABLE> -weblogs
<ELLIOTTCABLE> ♪ Do You Want To Build a Snowman?
<purr> ELLIOTTCABLE is listening to “Do You Want to Build a Snowman?”, by Kristen Bell
<ELLIOTTCABLE> glowcoil: dyingdyingdyingdyingdying
<ELLIOTTCABLE> glowcoil: everybody I know makes fun of me for enjoying Frozen >:
<Matthewdean> rightfully so
<ELLIOTTCABLE> ಠ_ಠ Matthewdean
<purr> Let it be known that ELLIOTTCABLE disapproves of Matthewdean.
<Matthewdean> lol
<purr> lol
<ELLIOTTCABLE> shaddup, purr
* ELLIOTTCABLE slaps purr
* purr rrrrrr
<Matthewdean> It's not that bad, but it's not the best animated film
<ELLIOTTCABLE> oh, agreed. I just like the soundtrack.
<ELLIOTTCABLE> tangled, now,
<ELLIOTTCABLE> so much <'3
<glowcoil> do you want to build a snowman makes me cry every time
<glowcoil> but yeah tangled is perfect
<Matthewdean> imma let u finish but Annie is the best musical of all time
<ELLIOTTCABLE> didn't
<ELLIOTTCABLE> did NOT
<ELLIOTTCABLE> glowcoil: do you wanna build a snowman? :x
<glowcoil> ELLIOTTCABLE: yes
<ELLIOTTCABLE> :D
<glowcoil> hee hee
<glowcoil> Matthewdean: eehhhhhhh
<ELLIOTTCABLE> glowcoil: Paws is secretly a snowman.
<ELLIOTTCABLE> -didja @ glowcoil
<purr> glowcoil: didja write a paws yet? didja? didja!?
<glowcoil> :p
<glowcoil> NO NOT YET
<ELLIOTTCABLE> -how about now? @ glowcoil
<purr> glowcoil: well? didja didja?
<Matthewdean> This is like Slack Classic™.
<Matthewdean> lol
<purr> lol
<ELLIOTTCABLE> Matthewdean: yeah, except public.
<Matthewdean> terrifying
<ELLIOTTCABLE> Slack is mostly IRC, anyway; there's a very functional IRC gateway to slack.
<ELLIOTTCABLE> and no user limits. I can have 400 people from Twitter chatting about my penis if I really want to.
<Matthewdean> It sounds like that's what you really want.
<ELLIOTTCABLE> … maybe …
<Matthewdean> hahaha
<ELLIOTTCABLE> we shan't speak of this.
<Matthewdean> Unfortunately, I think you said this is public.
<Matthewdean> So...
<ELLIOTTCABLE> and permanently logged :D
<ELLIOTTCABLE> I'm pretty sure there's everything from bestiality to PHP in these logs.
<Matthewdean> Also terrifying
<ELLIOTTCABLE> We've all done things we regret in here.
<Matthewdean> Welp, guess the political career was over before it started.
<ELLIOTTCABLE> Call it … a mitigating factor.
<ELLIOTTCABLE> “I should write an operating system!” “You joined #ELLIOTTCABLE. Imagine what would happen if anybody ever knew your name” “… oh. yeah. I'll just keep working on this debugging function, then …”
<Matthewdean> Hmm, that's true, I should probably go then, based on my aspirations.
<cloudhead> Matthewdean: !
<cloudhead> fancy seeing you here
* ELLIOTTCABLE grins
<Matthewdean> Oh hey! :)
<Matthewdean> @cloudhead - Yeah, don't know how it happened.
<cloudhead> seems to be the theme here
<ELLIOTTCABLE> (twitter)
<cloudhead> kind of like the after-life
<ELLIOTTCABLE> (twitter is how it happened)
<Matthewdean> Oh right. We started talking about editors. And I was, of course, interested.
<cloudhead> ah ^,,^
<ELLIOTTCABLE> alexgordon's (currently algore ಠ_ಠ) behind, uhhh, wassit
<Matthewdean> Or Elliott started complaining about the failures of code editors and I said, "eeeeeenteresting"
<algore> hi
<purr> algore: hi!
<algore> woah more people
<algore> and glowcoil
<ELLIOTTCABLE> Chocolat
<algore> glowcoil!!!!
<cloudhead> ah yes
<cloudhead> editors :(
<algore> hi cloudhead !
<cloudhead> hey algore :D
<Matthewdean> WAIT IS THAT TRULY AL GORE IT MUST BE SINCE PEOPLE CANNOT BE IMPERSONATED ONLINE
<cloudhead> oh shit
<Matthewdean> You also are disappointed by editors?
algore is now known as alexgordon
<ELLIOTTCABLE> editors are universally disappointing. /=
<alexgordon> apart from choc right. right?!
* ELLIOTTCABLE pats alexgordon gently
<ELLIOTTCABLE> anybody seen jeannicolas is a million years?
<alexgordon> ELLIOTTCABLE: not THERE
<Matthewdean> I was telling Elliott that I'd put a lot of work into designing and documenting improvements to, of course, my pet editor project, but was having trouble getting a team of devs to make it happen.
<ELLIOTTCABLE> didn't we recently find out he'd died of ammonia poisoning?
<alexgordon> ELLIOTTCABLE: yah he had a mini jeanni
<cloudhead> ahh
<ELLIOTTCABLE> Matthewdean: well, as evidenced by this channel, I can get people's attention; but as evidenced by the https://github.com/ELLIOTTCABLE/Paws.js/graphs/contributors, not their code.
<Matthewdean> hahaha
<cloudhead> I have kind of given up on the editor grail
<alexgordon> cloudhead: did you see our discussion about bindings and variables earlier? (glowcoil you too)
<Matthewdean> Yeah, i know, everyone is busy, so I don't fault them
<Matthewdean> I am too.
<cloudhead> no I haven't
<ELLIOTTCABLE> wait what the fuck
<ELLIOTTCABLE> I just checked the contributors list for the original C implementation
<ELLIOTTCABLE> and Ryan Bigg has commits in my codebase.
<ELLIOTTCABLE> to my immense shock.
<cloudhead> O.o
<ELLIOTTCABLE> I do not remember this *at all*.
<Matthewdean> Although, I managed to rally contributors for Less ^_^ but that had way more fans than my projects, lol
<purr> lol
<alexgordon> cloudhead: I'll save you the chore of reading through our long discussion and upload my conclusion later
<cloudhead> heh heh
<cloudhead> yea, it's easier when the project already has traction
<cloudhead> doesn't feel like your contribs might go down the drain
<Matthewdean> Truth.
<cloudhead> alexgordon: awesome
<ELLIOTTCABLE> also, cloudhead, I miss you.
<ELLIOTTCABLE> when are visitan ewe ass?
<cloudhead> ELLIOTTCABLE: <3
<cloudhead> where you been?
<cloudhead> ha
<ELLIOTTCABLE> Chicago.
<cloudhead> you mean cheecago
<Matthewdean> I feel the love.
<ELLIOTTCABLE> nah, the U.S.
<ELLIOTTCABLE> I'll happily fly across the U.S. to hang out.
<ELLIOTTCABLE> just not across oceans.
<cloudhead> ahm
<cloudhead> good to know
<cloudhead> for next time I go to the US
<ELLIOTTCABLE> I'm nice and central to the U.S., so that part's trivial.
<ELLIOTTCABLE> hell, to the U.S. and Canada.
<ELLIOTTCABLE> y u no JSconf?
<cloudhead> cause of the JS part
<ELLIOTTCABLE> ಠ_ಠ
<cloudhead> I haven't done JS in years
<cloudhead> and I'd like to keep it that way
<ELLIOTTCABLE> “Doctor Parse, or, How I Learned To Stop Worrying and Love The JavaScript”
<ELLIOTTCABLE> DrStrangeparse?
<cloudhead> queque
<ELLIOTTCABLE> lol nothin'. alexgordon.
<purr> lol
<Matthewdean> but JavaScript is great
<ELLIOTTCABLE> what do you write nowadays?
<cloudhead> T,T
<cloudhead> Go, rust and C
<ELLIOTTCABLE> -find cloudhead
<purr> ELLIOTTCABLE: his HEADs are in The Cloud™
<cloudhead> bahaha
<ELLIOTTCABLE> wat
<ELLIOTTCABLE> -factoid cloudhead
<purr> ELLIOTTCABLE: Popularity: 6, last changed by: devyn, 558ſ 633mſ ago
<ELLIOTTCABLE> jesus christ devyn
<cloudhead> the problem with technology is that it doesn't last very long
<cloudhead> you can't get attache
<cloudhead> d
<Matthewdean> LIKE LIFE
<ELLIOTTCABLE> Rust's cool. got devyn writing a Paws in Rust ATM. I'm hoping to learn some Rust out of watching that.
<Matthewdean> AND PEOPLE
<cloudhead> yea
<ELLIOTTCABLE> Oh come on, Love is forever.
<cloudhead> you must adopt a taoist view
<Matthewdean> so you gotta enjoy it while you can
<ELLIOTTCABLE> it is, after all, Lua.
amatecha has joined #elliottcable
<ELLIOTTCABLE> th'fuck is amatecha
<Matthewdean> haha my friend
<cloudhead> ELLIOTTCABLE: I saw, pretty fun
<ELLIOTTCABLE> oh
<amatecha> hey hey ^_^
<ELLIOTTCABLE> was in the middle of opping myself to kick him :P
<Matthewdean> I was talking to him about the conversation here.
<ELLIOTTCABLE> cloudhead: hm? what's fun?
<Matthewdean> He is a contrib on the EDITOR WHICH SHALL NOT BE NAMED
<ELLIOTTCABLE> nobody laughed at my Löve joke >:
<cloudhead> ELLIOTTCABLE: that he's writing a paws in rust
<ELLIOTTCABLE> cloudhead: ah, cool. I never know how often you actually pay attention.
<Matthewdean> and he knows more about IRC, so he can hold my hand
<cloudhead> I follow you guys in geethub
<Matthewdean> nice
<cloudhead> I see strange things sometimes
<Matthewdean> such as?
<cloudhead> mainly
<ELLIOTTCABLE> oh my god there are people who actually watch their GitHub activity dashboards!?
<amatecha> haha
<ELLIOTTCABLE> that shit is so unusable if you have more than a couple hundred projects starred from way-back-when ಠ_ಠ
<cloudhead> X created a new repo: Paws.<insert flavor of the day>
* ELLIOTTCABLE laughs
<ELLIOTTCABLE> sounds pretty accurate.
<cloudhead> ahah
<cloudhead> yea the thing is
<ELLIOTTCABLE> -find paw
<purr> ELLIOTTCABLE: Found: bot, paws, wtfpaws, are you paws?, and paws people
<Matthewdean> most of my dashboard is filled with Less issue comments
<cloudhead> I removed most people I follow, and projects
* ELLIOTTCABLE eyebrows
<ELLIOTTCABLE> -paws people
<purr> ELLIOTTCABLE: (n. pl.) pawsgnosticators
<cloudhead> so it's only about 3-4 items per day
<ELLIOTTCABLE> hahaha, snorted irl
<cloudhead> pretty manageable
<ELLIOTTCABLE> cloudhead: awwww, and you still follow meeee?
<ELLIOTTCABLE> now i love u mor
<cloudhead> yar
<cloudhead> ^)_(^
<ELLIOTTCABLE> ♪ Tear Away
<purr> ELLIOTTCABLE is listening to “Tear away”, by Drowning Pool
<Matthewdean> Now I'm going to make my Crunch commits more interesting.
<ELLIOTTCABLE> Matthewdean: good plan.
<cloudhead> haha
<ELLIOTTCABLE> -g granular committing @ Matthewdean
<purr> Matthewdean: Granular Committing - elliottcable <http://blog.elliottcable.name/posts/granular_committing.xhtml>
<Matthewdean> commit 52k3k592353666 - I HOPE CLOUDHEAD APPROVES OF ME *CRIES*
<cloudhead> LOL
<purr> LOL
<cloudhead> *click*
<Matthewdean> noooooo
<cloudhead> anyone watch Adventure Time?
<Matthewdean> it sounds familiar
<cloudhead> with Finn and Jake
<purr\Paws> [Paws.js] ELLIOTTCABLE pushed 4 new commits to Master: https://github.com/ELLIOTTCABLE/Paws.js/compare/9d3378255305...dd0b49154ff3
<purr\Paws> Paws.js/Master e164407 elliottcable: (- meta fix) No longer use cake for Travis-CI builds
<purr\Paws> Paws.js/Master b06cfd0 elliottcable: (- style re) Conform to whitespacing-style in parser.coffee
<purr\Paws> Paws.js/Master ae13b8d elliottcable: (- noop tests) Test, but pend, the rest of the reactor
<ELLIOTTCABLE> cloudhead: I keep having it suggested to me, but I've never gotten around to it.
<ELLIOTTCABLE> GOD DAMNIT
<cloudhead> I feel like that's what the tech world is like
<cloudhead> ha
<ELLIOTTCABLE> shitfuck
<ELLIOTTCABLE> fuckshit
<amatecha> yeah rebasing ftw
<ELLIOTTCABLE> man I made a commit just to beg for cloudhead's approval
<ELLIOTTCABLE> and then committed it, pushed it, and managed to fuck up my entire repo
<ELLIOTTCABLE> CLOUDHEAD THIS IS ALL YOUR FAULT.
<cloudhead> HA
<Matthewdean> hahahahaha
<cloudhead> :((
* cloudhead checks github
<cloudhead> OMG I CANT SEE IT
<Matthewdean> if you truly sought his approval, you would make a repo called "OMGCLOUDHEAD"... and it would be written in Go.
<ELLIOTTCABLE> and now my speakers are spewing some unholy compressed nonsense and breaking my ears
<ELLIOTTCABLE> and that is ALSO cloudhead's fault
<ELLIOTTCABLE> er
<ELLIOTTCABLE> wait, no, that's just Alva Noto
<cloudhead> oh,
<cloudhead> ,,,
<ELLIOTTCABLE> ♪ Alva Noto F117
<purr> ELLIOTTCABLE is listening to “F117.tiff”, by Alva Noto
<cloudhead> shit I have to go play dota
<ELLIOTTCABLE> need to rewrite -listening to query last.fm for a user's current song.
<cloudhead> heh people still use last.fm
<Matthewdean> I forgot my music was even on Last.fm. I had the same reaction recently, lol
<purr> lol
<cloudhead> L:D
<ELLIOTTCABLE> dude, fuck last.fm,
<ELLIOTTCABLE> people still use *WhatPulse*.
<ELLIOTTCABLE> I quite nearly shat myself when I saw somebody tweet about it.
<cloudhead> ?:O
<katlogic> last.fm? I honestly forgot about that thing the second soundcloud started offering reasonable recommendations.
<Matthewdean> i can top that. I found out today that people still use IRC.
<cloudhead> ha
<Matthewdean> ;)
<katlogic> (I hate this hipster 2.0 stuff, but github and soundcloud are awesome)
<ELLIOTTCABLE> I hate SoundCloud.
<katlogic> twitter seems completely redundant though
<cloudhead> noo
<katlogic> ELLIOTTCABLE: we're polar opposite of hipsters!
<cloudhead> <3 soundcloud >>:(
<purr> Let it be known that cloudhead hearts soundcloud >>:(.
<ELLIOTTCABLE> nah, I love GitHub
<cloudhead> I hate it too
<ELLIOTTCABLE> we have overlap
<ELLIOTTCABLE> if somebody wrote a libspotify client that could also query SoundCloud, I'd be in.
<Matthewdean> SoundCloud has a good player, it just has poor discovery / social features
<katlogic> well soundcloud actually has relatively sane api
<amatecha> i've been using Rdio for like a year and liking it for sure
<katlogic> (just like github)
<ELLIOTTCABLE> but as it is, I can listen to almost any of the *real* music in the world via Spotify. The user-experience is *completely seamless* when somebody talks about music to me IRL or on the Internet
<ELLIOTTCABLE> … EXCEPT, when some fucker sends me a link to some obscure mix that's ONLY on SoundCloud.
<Matthewdean> What's wrong with that?
<amatecha> SoundCloud is awesome
<Matthewdean> You don't have to "join" soundcloud to play it
<katlogic> well part of the reason i like soundcloud is just that i was listening to hipster music, ie not covered by spotify
<ELLIOTTCABLE> I hate that shit. Publish your music to Spotify or you don't goddamn matter. Sorry, I know it sucks, and blah blah blah music rights and royalties and you're starving, but I don't fucking care.
<Matthewdean> ...
<amatecha> rofl
<Matthewdean> Why would someone pay to publish free music?
<katlogic> \o/
<ELLIOTTCABLE> Having to pause my music-player, the one place I can successfully go without a moment's thought for *anything else*, and then open a website, wait for it to load, pause whatever the *last* song I did this mess for was, and then play the one you linked me …
<ELLIOTTCABLE> hate it.
<amatecha> my music is on all the digital distro services (thanks to tunecore)
<katlogic> Matthewdean: thats the thing. gift coupons to musicians from fans.
<katlogic> huge thing soundcloud lives of.
<ELLIOTTCABLE> Oh, the three of you are new.
<ELLIOTTCABLE> I'm *really* goddamned opinionated.
<ELLIOTTCABLE> here, look at it this way.
<Matthewdean> Spotify, that shitty music service?
<Matthewdean> Why would I be on that?
<ELLIOTTCABLE> What if you could `brew install` 98% of software you deal with in your everyday life.
<Matthewdean> SoundCloud you can play without an account
<ELLIOTTCABLE> if `brew install`ing a project was second nature, and took you like three keystrokes.
<Matthewdean> Spotify has a auth-wall, does it not?
<cloudhead> aye
<Matthewdean> So.... how is that better for sharing music?
<cloudhead> it's not
<amatecha> yeah soundcloud is the most accessible
<ELLIOTTCABLE> … then you come across this *one project*, that somebody's linking you, and you have to open a web browser, click a couple links, and then maybe figure out some make commands, to use.
<cloudhead> it's better for listening though
<amatecha> not to mention embedding in other sites, etc.
<cloudhead> bigger catalog
<ELLIOTTCABLE> Would you try that project, or even pay it a heartbeat's moment of attention?
<ELLIOTTCABLE> The vast majority of people: nope.
<alexgordon> man someone else new too?
<alexgordon> ELLIOTTCABLE: where are they all coming from?
<cloudhead> ah I see
<amatecha> the internets
<Matthewdean> Are you asking if I would support a web-based option that isn't a walled ecosystem that anyone can share with anyone without a specialized device? yep
<Matthewdean> :)
<ELLIOTTCABLE> SoundCloud is that. The average listener has to close their iTunes, Rdio, or Spotify, and move outside of their little 24/7 shuffle-listening music-bubble, to listen to whatever you're linking them on SoundCloud.
<ELLIOTTCABLE> oh, I
<amatecha> so
<ELLIOTTCABLE> am all for SoundCloud in *general*.
<Matthewdean> That doesn't even make sense, since you had to have seen their link ON THE WEB
<amatecha> press play/pause key on keybd?
<ELLIOTTCABLE> But SoundCloud is not an option for *majority listening*.
<ELLIOTTCABLE> And thus it will always be an extra pain-in-the-arse, no matter how otherwise-good it is.
<Matthewdean> so you stay where you're at, INSTEAD of having to go somewhere else
<katlogic> ELLIOTTCABLE: yeah. its that i just ditched all that. i just upload stuff i listen to soundcloud and make a playlist.
<Matthewdean> You have it backwards
<katlogic> ELLIOTTCABLE: if the artist is commercial enough to trigger content-id, fuck him.
<ELLIOTTCABLE> katlogic: And how's that legal?
* ELLIOTTCABLE laughs
<katlogic> ELLIOTTCABLE: i simply ask the artist first.
<Matthewdean> What you're describing is the worse scenario for everyone else, it's just better for you because you already use those services
<ELLIOTTCABLE> Okay, another analogy.
<ELLIOTTCABLE> katlogic: you know Deadmau5, personally?
<ELLIOTTCABLE> 90% of your friends talk on Facebook Messenger.
<alexgordon> cloudhead cloudhead cloudhead
<cloudhead> alexgordon: sup.
<Matthewdean> I hate Facebook Messenger
<Matthewdean> But go on
<ELLIOTTCABLE> yes, so do i, but I'm not talking about *you or me*.
<katlogic> ELLIOTTCABLE: https://soundcloud.com/ezdiy/sets/clonepa-courroux for example asked this artist if i can upload the album
<ELLIOTTCABLE> You and I are special-cases, as developers. I'm talking about Joe User.
<cloudhead> oo
<katlogic> he sells it on bandcamp for $10
<ELLIOTTCABLE> (And when it comes to music, I'm very much Joe User. I have zero fucking time for complex solutions for music; I want one button on my keyboard to skip to the next song while I'm writing software, and *nothing* else.)
<cloudhead> alexgordon: you still working on a lang?
<ELLIOTTCABLE> cloudhead: yah
<alexgordon> cloudhead: always have been, always will be
<alexgordon> it's in my blood
<ELLIOTTCABLE> 'kay. I give up.
<cloudhead> alexgordon: respect :D
<Matthewdean> ... okay... but how is soundcloud complicated? it is one button
<ELLIOTTCABLE> Anyway, I don't disagree with *any* of the points y'all have made; clearly, you're missing *my* point, though.
<Matthewdean> you go to the link, you don't even have to click anything.
<Matthewdean> it plays
<cloudhead> alexgordon: I kind of throw my designs out of the window everytime I learn a new lang
<cloudhead> alexgordon: that's the problem.
<alexgordon> cloudhead: ha same, but furrow has been pretty stable for a while
<alexgordon> so I have a good feeling about it
<cloudhead> cool
<ELLIOTTCABLE> Point is, as a user, I don't want to (read: can't.) deal with extra complexity of *any level*. If I can't play it in my client easily, then I won't listen to it.
<alexgordon> cloudhead: like, I haven't made any major tweaks for like 3 years
<cloudhead> like when I learnt Haskell I felt like everything I had was dumb
<cloudhead> that's stable..
<amatecha> word, i totally get it
<ELLIOTTCABLE> There's too much U/X bumpiness in going out to that *one artist* whose music it's difficult to listen to (the weirdo who only publishes to Soundcloud).
<katlogic> ELLIOTTCABLE: i hate the ux too :(
<ELLIOTTCABLE> So, he doesn't get listened to, and I forget about him the next day after having him suggested to me.
<Matthewdean> hahaha
<katlogic> ELLIOTTCABLE: https://github.com/rekado/soundCLI
<ELLIOTTCABLE> And for the majority of users who *aren't* the music-equivalents of us technically-inclinded people, that's daily life.
<amatecha> too many of my favorite artists are only on SC, so it's not an issue for me
<amatecha> but, I kind of segment all those artists off into "listening-to-SoundCloud mode"
<ELLIOTTCABLE> katlogic: if it played Spotify library, too, and worked on Mac, done.
<ELLIOTTCABLE> amatecha: Yeah. That
<ELLIOTTCABLE> amatecha: is kind of the only solution. /=
<amatecha> and then all the rest of the time is " listening-to-Rdio" mode
<katlogic> ELLIOTTCABLE: Some music clients have support for that. Also, spotify is walled garden too.
<ELLIOTTCABLE> for me, having to have that cognitive overhead during my work-day of “whether I'm in soundcloud-mode or normal-music-mode” … is just too much.
<katlogic> Thats the trouble with cloud things, always a walled garden.
<ELLIOTTCABLE> katlogic: Spotify, in this instance, is the *opposite* of a walled garden.
<katlogic> Unless what.cd, or whatev.
<Matthewdean> Hmm
<alexgordon> cloudhead: anyway look at my gist, I'm trying to work out a way to do SSA bindings in the language.
<alexgordon> sorting out all the edge cases
<ELLIOTTCABLE> I know, to a net philosopher, it sounds like it is … but that's not the reality.
<katlogic> ELLIOTTCABLE: Huh? You can download mp3s from spotify now :)
<Matthewdean> But Soundcloud, you can easily pull that into iTunes
<katlogic> they sure loosened up on their draconian drm
<ELLIOTTCABLE> The majority of the content is on Spotify or Beats Music or iTunes.
<Matthewdean> like katlogic says
<ELLIOTTCABLE> nowadays, those aren't the walled-gardens,
<Matthewdean> And you can subscribe via RSS
<ELLIOTTCABLE> the things that *don't support those* are the walled-gardens.
<katlogic> ELLIOTTCABLE: i dont get it, facebook is not walled garden because everyone is on facebook?
<ELLIOTTCABLE> no, the Web isn't a walled-garden, because all of the content is on the Web.
<cloudhead> alexgordon: looks good
<Matthewdean> So... put it this way: with a web-based approach, it can go into different containers more easily, SoundCloud can go to the browser or be pulled into iTunes. But if you're ONLY on Spotify, you're less accessible to people, as an artist.
<cloudhead> alexgordon: it's obviously a bit harder if you have mutable vars
<ELLIOTTCABLE> Facebook is a walled-garden because A) it has a minority of the available content, and B) that content is not accessible outside of Facebook.
<ELLIOTTCABLE> Spotify is “the web”, and SoundCloud is Facebook, in this example.
<cloudhead> alexgordon: and even more so if you don't differentiate between a declaration and a definition
<katlogic> ELLIOTTCABLE: let me rephrase. your real-world friends are mostly on facebook.
<Matthewdean> I can get friends to listen to my stuff on SoundCloud who would never be willing / able to listen if I was only on Spotify.
<ELLIOTTCABLE> I have to leave my majority-consumption environment to experience the content on *your* environment; thus, your environment is a walled-garden.
<Matthewdean> They just wouldn't do it. The average person knows fuck all about "streaming music"
<ELLIOTTCABLE> katlogic: yes; and to most of them, the rest of the web looks a lot like what we see Facebook as.
<Matthewdean> They know: Click this link. Audio comes.
<ELLIOTTCABLE> “Ew, I have to accept Facebook's external-link warning when clicking those weird links you post, Elliott? I'm sorry, I just never bother clicking them.”
<Matthewdean> So Spotify doesn't serve artists. As you note, it just serves the consumer.
<ELLIOTTCABLE> 'course
<Matthewdean> It's good for the listener, who likes Spotify.
<katlogic> ELLIOTTCABLE: scary though. the reality is that nobody dictates rules on the web, maybe ICANN fucking with domains and nations fucking with routing.
<ELLIOTTCABLE> never said Spotify was a *good thing*. Not once.
<katlogic> ELLIOTTCABLE: but we label those things as internet censorship.
<ELLIOTTCABLE> I just said it's the *best thing* for me, and that I will never be able to use SoundCloud, because there's no integration for me, the end-user, with my usual listening-life.
<Matthewdean> But how does it make SoundCloud bad overall? If it's a bad experience for you?
<katlogic> now if someone censors something on facebook or soundcloud, nobody cares.
<katlogic> because its their garden.
<Matthewdean> Ah
<ELLIOTTCABLE> so, to wrap up, I will repeat my thesis:
<ELLIOTTCABLE> “Fuck SoundCloud.”
<Matthewdean> haha
<ELLIOTTCABLE> \=
<katlogic> "Fuck walled gardens"
<katlogic> (yet we use em because we're lazy)
<Matthewdean> You sound like me and my rants against Facebook Messenger.
<katlogic> so
<Matthewdean> which amatecha can attest to
<ELLIOTTCABLE> luckily, everybody I care about is intelligent, and owns Apple products.
<katlogic> "Fuck walled gardens who abuse their privileges/users who use them because they're lazy"
<ELLIOTTCABLE> so for my circles, iMessage is the law. ;)
<ELLIOTTCABLE> speaking of, I just got the following iMessage:
<cloudhead> ok bbml
<ELLIOTTCABLE> “VAGINAS ARE DUMB”
<katlogic> ITS TRUTH
<ELLIOTTCABLE> cloudhead: lurve u o7
<katlogic> coz all caps
<Matthewdean> anyway, i need to debug a Node problem
<Matthewdean> :)
<cloudhead> o7
<Matthewdean> It's been fun :)
<katlogic> :/
<ELLIOTTCABLE> Matthewdean: get a persistent client.
<katlogic> We should convert ELLIOTTCABLE to soundcloud eventually.
<ELLIOTTCABLE> Matthewdean: l2lurk, 2014 style ;)
<Matthewdean> I have a persistent client. He's 19 months old. BOOM.
<ELLIOTTCABLE> katlogic: glowcoil will probably kiss you.
<katlogic> ELLIOTTCABLE: ther *has to be* some hipster band who is on soundcloud, right?
<ELLIOTTCABLE> and/or give you a blow job.
<Matthewdean> wait what?
<katlogic> hipster band you actually like
<katlogic> i dont do cocks over internets
<ELLIOTTCABLE> last.fm/user/elliottcable
<ELLIOTTCABLE> here's the problem:
cloudhead has quit [Quit: leaving]
<ELLIOTTCABLE> My listening is “turn on shuffle, close client.” followed by “skip a song when I'm not in the mood for it.”
<ELLIOTTCABLE> No matter how much I like a particular artist, no amount of magic is going to get their music off of SoundCloud, and into my Spotify cloud, so that the skip button plays it sometimes.
<ELLIOTTCABLE> which means I will never hear it, which means I will forget about it, which makes me have absolutely no motivation to get excited about them in the first place.
<Matthewdean> ttyl
<ELLIOTTCABLE> make sense?
Matthewdean has left #elliottcable [#elliottcable]
<katlogic> ELLIOTTCABLE: perfectly
<ELLIOTTCABLE> (I've heard good things about Google Music, by the way; since it allows you to upload your own music into the cloud, there'd be a *slightly* lower barrier-to-entry to getting my favourite music into shuffle. Still a huge pain to go to a Real Computer instead of my phone or iPad, download it, and upload it, but hey, maybe once in a while.)
<katlogic> ELLIOTTCABLE: the thing is, soundcloud actually works for this (eventually, after you like enough artists to get a good sample)
<ELLIOTTCABLE> (just afraid of putting more of my life into Google's hands.)
<katlogic> first i had to like 200 things on sc to start recommending actually related shit
<katlogic> but then it slowly converged to last.fm
<ELLIOTTCABLE> I don't use anything except other humans for recommendations, honestly.
<ELLIOTTCABLE> All of the systems I've used are too useless for me. I like a very specific kind of electronic stuff, and *all* of them tend to just suggest generic dubstep. Endlessly.
<katlogic> ah i see
<katlogic> i just listen to random shit and see what stick
<katlogic> or if theres some strong hook somewhere i look it up
<katlogic> but my taste is rather weird turns out :/
<ELLIOTTCABLE> When I want OVERWERK and M Machine, and I get Kaskade for the umpteenth time, I get fed up and stop trying to use the system.
<ELLIOTTCABLE> Happened to last.fm (I only use it for data-logging purposes, now), happened to Pandora, happened to Spotify Radio … /=
<katlogic> m machine aint half as bad of SF hipster scene
<katlogic> those things are all on sc tho
<ELLIOTTCABLE> hm?
<ELLIOTTCABLE> FEED ME
<ELLIOTTCABLE> speak of the devil.
<ELLIOTTCABLE> talk of good music, good music comes on. ;)
<katlogic> ELLIOTTCABLE: i dont actively listen to pop house
<katlogic> so cant really tell, though i heard few tracks of theirs in mixes
<katlogic> ELLIOTTCABLE: my point being, if you dont listen to super commercial stuff, spotify/pandora makes little sense. soundcloud is where all the hip kids are.
<katlogic> similiar to m machine ... um, pretty lights
<katlogic> griz
<katlogic> and thats probably all i can think of in this popular bag
<katlogic> (those were all in free what.cd "vanity house" torrent :)
<alexgordon> aw damn I missed cloudhead
bradleymeck has quit [Quit: bradleymeck]
<ELLIOTTCABLE> Yeah, but I deride hipsters.
<ELLIOTTCABLE> Anybody who specifically doesn't like popular things is full of shit.
<ELLIOTTCABLE> By *definition*, the vast majority of people are going to like music-that-the-majority-of-people-like.
<katlogic> I like mainstream breakcore artists.
<ELLIOTTCABLE> perilously close to tautology there.
<katlogic> but by definition, breakcore is not mainstream.
<katlogic> wat do?
<ELLIOTTCABLE> sorry, I'll stop preaching against SoundCloud :P
<ELLIOTTCABLE> ♪ Clarity, Brillz Remix
<purr> ELLIOTTCABLE is listening to “Clarity (feat. Foxes) [Brillz Remix]”, by Zedd
* katlogic tries to find the least hipster thing in playback history
<ELLIOTTCABLE> (katlogic's name is red *too*. ugh, fuck everything.)
<alexgordon> ELLIOTTCABLE: it's hilarious how you use me as a "moron in a hurry" (for paws) and I use you as a "moron in a hurry" (for furrow)
<ELLIOTTCABLE> katlogic: also, name / age / pronouns / location?
<ELLIOTTCABLE> alexgordon: hilarious? excellent.
<alexgordon> we're both smart enough to design our own languages, but dumb enough not to immediately get each others'
<alexgordon> unlike micah who gets everything first time, of course
<ELLIOTTCABLE> perfect people.
<ELLIOTTCABLE> stupidly perfect micah >:
<ELLIOTTCABLE> if I were Sylar, I'd totally murder-steal Micah's brain.
<alexgordon> LOL
<purr> LOL
<katlogic> ELLIOTTCABLE: late 20s, he, czech republic / 2.5nd-world hellhole, but good compromise between west and eastern cultures.
<ELLIOTTCABLE> you should meet whitequark.
<ELLIOTTCABLE> too bad he ragequat.
<alexgordon> ELLIOTTCABLE: so due to your critique I'm reconsidering the binding / variable distinction a bit, although it's still really useful (as you'll soon see)
<alexgordon> whitequark ragequat?
<ELLIOTTCABLE> you missed that whole thing?
<alexgordon> yah
<ELLIOTTCABLE> doing myself a disservice by linking that for you, but, whatever.
<ELLIOTTCABLE> radical transparency and all that. /=
<katlogic> awww drama
* katlogic scourges apt for remains of popcorn
<ELLIOTTCABLE> not so much ‘drama’ as just, ELLIOTTCABLE.
<ELLIOTTCABLE> I'm famously a raging idiot. I'm opinionated, and most of my strongly-held beliefs are psychotically divergent.
<katlogic> blah
<alexgordon> not sure I want to read
<katlogic> rather friendly convo
<ELLIOTTCABLE> alexgordon: lol.
<katlogic> i dont get it, where is the drama?
<alexgordon> mmm popcorn
<ELLIOTTCABLE> alexgordon: well, you already know what's said there, for the most part.
<ELLIOTTCABLE> you've known me, and my opinions, for years.
<ELLIOTTCABLE> whitequark was just …
<ELLIOTTCABLE> got involved in things with me, before he really understood who I was.
<ELLIOTTCABLE> and I don't know how to tone down my opinions, or turn myself off, to retain contributors. One of my bigger failings. /=
<alexgordon> ELLIOTTCABLE: that's a dumb argument
<katlogic> internet is just bunch of opinionated douchebags who very cautiously decided to peer with each other
<katlogic> literally, the assfuckery and douchebags involving actual function of internet (t. also i'm AS8251)
<alexgordon> katlogic: SHUT YOUR PIE HOLE
<ELLIOTTCABLE> guláš-hole*
<katlogic> not particularly fond of either
<alexgordon> hm closures + loops give me a headache
<ELLIOTTCABLE> bramboráčky hole?
<alexgordon> ELLIOTTCABLE: it's growing! https://gist.github.com/fileability/8c58080dbd458099e1cf
<alexgordon> line 99 is interesting
<katlogic> if you do computed goto (with dynamic scoping invariant check) you'll have me sold
<ELLIOTTCABLE> phi node?
<katlogic> (protip: yes, the actual implementation relates to the old COMEFROM joke)
prophile has joined #elliottcable
<alexgordon> prophile! just the man I need
<prophile> oh god, you haven't killed another one
<alexgordon> ELLIOTTCABLE: phi nodes "link" two separate variables into one
<prophile> how much fridge space do you think I have?
<alexgordon> xD
<ELLIOTTCABLE> “ unify types”
<ELLIOTTCABLE> unify types?
<prophile> I assume we're talking SSA form here?
<alexgordon> ELLIOTTCABLE: more accurately coercion
<ELLIOTTCABLE> bitch, don't kill my vibe
<alexgordon> xD
<ELLIOTTCABLE> sister:
<alexgordon> ELLIOTTCABLE: if you have an Int variable and a Real variable the Int variable can be coerced into Real
<ELLIOTTCABLE> “Nigger I'm tryna graduate at 16 and you're not helpim ”
<alexgordon> 1 / 2 ---> 0.5
<ELLIOTTCABLE> coercion is directional
<ELLIOTTCABLE> unification doesn't look directional in your gist
<ELLIOTTCABLE> so I don't get it
<alexgordon> well it happens at a phi node
<alexgordon> if you have two separate variables they can have different types and it doesn't matter
<katlogic> unless dependent types .. coercion together with inference is a vile thing to do tho
<alexgordon> but when you want to combine variables from two code paths into one variable, they need to have a new type
<alexgordon> katlogic: it's very limited
<alexgordon> I think I was right the first time with unification
<alexgordon> or was I
<alexgordon> I DON'T KNOW WHAT I'M DOING
* ELLIOTTCABLE laughs
<ELLIOTTCABLE> alexgordon: I'M SO GLAD WE'RE ON THE SAME PAGE
<katlogic> I think thats the correct approach to language design.
<ELLIOTTCABLE> TERRIBLE LANGUAGE-DESIGNERS UNTIE
* ELLIOTTCABLE begins to remove his shoes
<katlogic> Btw, i've notes about 2 languages design.
<alexgordon> all I know is if one code path as x as an Int and one code path has it as a Real, then it has to end up as a Real
<alexgordon> because that's the only thing that makes sense
<katlogic> Including one prototype interpreter written in asm.
<katlogic> But i'll wait for you guys to run out of ideas first :)
<ELLIOTTCABLE> “they need to have a new type”
<ELLIOTTCABLE> katlogic: that'll never happen.
<ELLIOTTCABLE> katlogic: idk furrow, but there's a solid four years of design-work on Paws yet to be serialized into code.
<katlogic> ELLIOTTCABLE: I've only glanced over paws, and from where I'm standing: There needs to be some sort of no-wall-of-text intro.
<katlogic> Ie its all cool you have this metasyntax, but for gods sake, provide one by default.
<ELLIOTTCABLE> katlogic: believe me, I know.
<ELLIOTTCABLE> there's been little point in high-level documentation.
<alexgordon> another thing is unification of Dict(K, V) and EmptyDict
<alexgordon> when you do
<alexgordon> x = {}
<alexgordon> x is of type EmptyDict
<ELLIOTTCABLE> at the moment, I'm basically nailing down the design of an intermediate-form, and a runtime to handle it. All the higher-level stuff is vague ideas.
<ELLIOTTCABLE> alexgordon: so, unification is bidirectional coercion?
<ELLIOTTCABLE> or, no, wait,
<ELLIOTTCABLE> what if it follows the first code-path? Is it still a Real?
<alexgordon> ELLIOTTCABLE: you take a set of types and derive a type that all can be casted or converted to
<katlogic> its type-coercive nuclear explosion which propagates in every direction of type inference graph
<alexgordon> unify({Int, Real}) --> Real
<ELLIOTTCABLE> mmmm.
<ELLIOTTCABLE> what were you saying about Dicts?
<alexgordon> unify({EmptyDict, Dict(String, String)}) --> Dict(String, String)
<katlogic> are you sure you want this thing static typed?
<ELLIOTTCABLE> katlogic: er, what about metasyntax, by the way?
<alexgordon> katlogic: YES
<alexgordon> katlogic: I hate dynamic typing
<katlogic> ELLIOTTCABLE: meta as in none at all lol
<purr> lol
<alexgordon> katlogic: none of this is dynamic as I said to elliott before :P
<ELLIOTTCABLE> heh, yep. There *is* a syntax by default, that's that crap you saw in the gist later.
<alexgordon> if the compiler can't work it out then I'll just make the programmer write it explicitly
<katlogic> alexgordon: i know. just what you're saying suits dynamic languages much more.
<alexgordon> but if it CAN work it out then it should
<katlogic> alexgordon: or dynamic runtimes, to be precise.
<ELLIOTTCABLE> alexgordon described type inference, Part 1.
<alexgordon> katlogic: yeah but those are slow and I hate them to death
<ELLIOTTCABLE> uploadin' to youtube
<katlogic> ELLIOTTCABLE: inference with ad-hoc coercion rules is hardcore
<ELLIOTTCABLE> Hard Core™
<katlogic> no longer MR inference 101
<ELLIOTTCABLE> you'll quickly learn that I don't belong here and probably won't understand most of what you say.
<alexgordon> katlogic: this is local type inference btw. All functions must have an explicit type signature
<ELLIOTTCABLE> starting with that.
<katlogic> alexgordon: ah, oki then :)
<alexgordon> I dislike haskell's global type inference because it makes the errors hard to understand
<alexgordon> and everybody always writes explicit type sigs anyway
bradleymeck has joined #elliottcable
<katlogic> haskell got it wrong on more levels wrt debugging :(
* katlogic is also total haskell hater
<alexgordon> :O
* ELLIOTTCABLE grins
<katlogic> Lol, you designed this academic shit for what lol
<ELLIOTTCABLE> you'll fit right in here.
* alexgordon keeps katlogic away from devyn and glowcoil
bradleymeck has quit [Client Quit]
* ELLIOTTCABLE eyebrow
<ELLIOTTCABLE> neither of them likes haskell.
<ELLIOTTCABLE> They just both hate it less than either of us.
<alexgordon> what? devyn is a haskell nut
bradleymeck has joined #elliottcable
<joelteon> i love haskell
<katlogic> carmack, before he got jailed for screwing up zenimax taped this nice last words video putting nails in haskell's coffin
<ELLIOTTCABLE> I'm pretty sure devyn is a haskell tolerator at best.
<alexgordon> ELLIOTTCABLE: where do you fin these super kids btw?
<joelteon> i'm surprised you were mentioning haskell and didn't bother highlighting me
<alexgordon> hi joelteon
<joelteon> hi
<purr> joelteon: hi!
<devyn> I think Haskell is fucking fantastic for some things
<devyn> just not for most of the things I do
<ELLIOTTCABLE> alexgordon: You know me. Finding people smarter than me, and making them talk to me, is my personal superpower.
<ELLIOTTCABLE> The only downside of my superpower is that it seems to *also* select for people younger than me, which makes me look like a paedo. ಠ_ಠ
<joelteon> i like haskell for everything
<alexgordon> katlogic: anyway, furrow is a language that was born in the wrong category
<alexgordon> katlogic: it's statically type but works like python or ruby
<alexgordon> typed
<alexgordon> it's function but has break and continue
<alexgordon> aiowjdoiawd
<alexgordon> functional
* alexgordon cannot type
<katlogic> devyn: Carmack: "i reimplemented original wolf3d engine in haskell, it ran 3x as slow, it took me over a month and the resulting code was very elegant and could exploit infinite-core machine thanks to haskell semantics. Only if i invented novel side-effect free collision detection algo or two it would have an actual world interaction, tho."
<ELLIOTTCABLE> Furrow should be named KARL.
<ELLIOTTCABLE> KARL: Another Rut Language.
<alexgordon> ELLIOTTCABLE: what, you don't know?
<ELLIOTTCABLE> ;)
<alexgordon> ELLIOTTCABLE: "furrow: a rut, groove, or trail in the ground or another surface: lorry wheels had dug furrows in the sand."
<ELLIOTTCABLE> oh my god seriously
<katlogic> alexgordon: check out crystal
<ELLIOTTCABLE> no fucking way
<ELLIOTTCABLE> alexgordon: this entire time?
<alexgordon> ELLIOTTCABLE: yah
<ELLIOTTCABLE> Currently cannot even.
<ELLIOTTCABLE> Currently white, currently girl, and currently cannot even.
<alexgordon> katlogic: I saw it earlier!
<devyn> katlogic: pretty much, but I really love it for prototyping
<devyn> it's not fast, but it forces you to think
<devyn> usually I get a much better understanding of whatever algorithm I'm trying to develop
<devyn> once I write it in Haskell
bradleymeck has quit [Ping timeout: 252 seconds]
<ELLIOTTCABLE> 4:33 PM <+alexgordon> ELLIOTTCABLE: "furrow: a rut, groove, or trail in the ground or another surface: lorry wheels had dug furrows in the sand."
<ELLIOTTCABLE> but seriously, how did I never know this.
<alexgordon> I dunno, micah knew
<katlogic> devyn: Yes, it's for anyone who wants to translate problems from intuitive a leads to b algorithmic representation to actual math construct abstraction.
<ELLIOTTCABLE> Jesú Cristo.
<katlogic> devyn: Takin it to extreme, binary lambda is also extremely pure you know :)
<devyn> yeah that's going a bit too far :p
<devyn> Haskell *is* actually usable
<katlogic> I'm pretty sure its possible to compile haskell programs to BLC tho
<devyn> if they're pure and you add abstract data types, possibly
<ELLIOTTCABLE> binari*
<ELLIOTTCABLE> ;)
<devyn> interesting
<katlogic> I suppose http://www.madore.org/~david/programs/unlambda/ could be considered as mocking the principle too.
<devyn> Haskell really isn't that hard to write once you're used to it
<devyn> it's not at all esoteric
<devyn> but then
<devyn> there are certain things
<devyn> that you really, really just don't want to
<yorick> like iterating over a large list
<katlogic> I'm mostly systems programmer so biased in worst possible ways against haskell :/
<devyn> haha
<devyn> I'm pretty much open to anything
<katlogic> (smirky zoidberg voice)
<devyn> I started writing a kernel in C at one point
<devyn> but abstract stuff is also fun
<katlogic> i mostly hate because no formal math education, but also admire it because i often end up using it
<devyn> yorick: oh, what do you mean, by the way
<katlogic> copy pasting weird math notations from wikipedia / arxiv aint no fun
<yorick> devyn: laziness causes space leaks which makes for terrible overhead
<katlogic> especially if i have no idea what i am actually doing :(
<yorick> devyn: currently trying to iterate over 18MB, it costs 3GB
<devyn> ah
<devyn> there are ways to fix that
<devyn> :p
<katlogic> yorick: OOM was number one downer for me :(
<katlogic> ie not the fact that lazy eval eats memory, but that it is actually unpredictable
<yorick> devyn: yes, I bought 8GB more of RAM today
<yorick> katlogic: yeah :/
<devyn> hahaha
<ELLIOTTCABLE> So, I might be ‘that asshole.’
<devyn> I mean other than that
<devyn> :p
<ELLIOTTCABLE> http://ell.io/iiP1B
<yorick> devyn: there are?
<devyn> yes
<yorick> because I don't fucking know anymore
<devyn> if you show me what you're doing I might be able to suggest something
<devyn> lol
<purr> lol
<devyn> ELLIOTTCABLE: :D
<yorick> devyn: I'm building a Data.Trie in a fold over an 18MB list
<yorick> devyn: and I've showed it to multiple people and nobody knew
<devyn> okay, show me
<yorick> devyn: I'm not sure, it's pretty confidential :D
<devyn> katlogic: I can't really claim to have had any formal math training either... I'm 17
<devyn> yorick: okay :(
<devyn> yorick: well there are ways to force strictness if that helps
<yorick> devyn: yes, I'm using deepseq and it makes stuff O(n^2) instead of O(n log n)
<katlogic> devyn: Did your father force you to use haskell?
<katlogic> If so, call child services!
<katlogic> thats domestic abuse
<devyn> katlogic: hahaha, I'm self-taught
<ELLIOTTCABLE> Let us sequentially consume several 1.5oz portions of ethanol-solution together. Bitch.
<ELLIOTTCABLE> -haskell @ katlogic
<purr> katlogic: HASKELL IS NOT A TOY.
<devyn> lol
<purr> lol
<katlogic> devyn: I see, self-inflicted damage. Well, other your peers are just cutting.
<ELLIOTTCABLE> -java
<purr> ELLIOTTCABLE: a good sandwich
<devyn> hhhahahaha
<ELLIOTTCABLE> -ruby
<ELLIOTTCABLE> -javascript
<ELLIOTTCABLE> -c++
<ELLIOTTCABLE> oh come on purr, now I'm just disappointed
<devyn> -learn javascript = NaN
<purr> devyn: Learned `javascript`.
<ELLIOTTCABLE> -find c++
<purr> ELLIOTTCABLE: Could not find `c++`.
<ELLIOTTCABLE> -find c
<purr> ELLIOTTCABLE: Found: bot, clouds, nuck, micahjohnston, and ground
<alexgordon> mmmmm getting pretty deep into this ssa stuff
<ELLIOTTCABLE> it's so much less fun if the factoids are actually relevant to the language, though
<ELLIOTTCABLE> -find ruby
<purr> ELLIOTTCABLE: Found: no it isn’t, mods, and object-oriented
<devyn> -no it isn't
<ELLIOTTCABLE> hah. just the results for that are great.
<devyn> -no it isn’t
<katlogic> alexgordon: if you ever get near llvm, you'll be knee-deep in ssa (and not just that) puddle of shit.
<ELLIOTTCABLE> that's clearly from the era when I was psychotically creating factoids with curly-apostrophes.
<alexgordon> katlogic: ha, hopefully someone else will do that for me :P
<devyn> wat
<devyn> -mods
<purr> devyn: Run the following to install Minecraft Forge, and the mods necessary to play on our Minecraft server: `ruby -e "$(curl -fsSL http://ell.io/mods/install)"`
<devyn> -object-oriented
<purr> devyn: Ruby <https://ruby-lang.org> is an excellent first language (and, for that matter, excellent all-around.) JavaScript is a heavyweight in the modern world, allows you to control browsers, and is especially excellent when paired with Node.js <http://nodejs.org>. Lua <http://lua.org> and Python are other popular options.
<ELLIOTTCABLE> what even the fuck devyn
<ELLIOTTCABLE> -languages @ devyn
<purr> devyn: ‘What languages should you learn?’ The answer: more of them! Try `-object-oriented`, `-functional`, and `-low-level` for some suggestions. (If you really want to stretch your mind, try `-paradigms` <3)
<alexgordon> katlogic: I'm compiling to C++ for now, if the language ever gets popular someone might add an LLVM backend for the compiler
<ELLIOTTCABLE> devyn: I don't think I ever got around to fleshing that one out.
<devyn> ELLIOTTCABLE: which?
<katlogic> alexgordon: Nah, C++ is probably reasonable choice. Your design somewhat resembles shedskin.
<ELLIOTTCABLE> devyn: the set of -languages factoids.
<ELLIOTTCABLE> -low-level
<ELLIOTTCABLE> -functional
<purr> ELLIOTTCABLE: STOP CATEGORIZING THEM ಠ_ಠ
<ELLIOTTCABLE> -paradigms
<purr> ELLIOTTCABLE: So you want to be an unusually well-rounded programmer! Try learning one of each of these: a LISP <http://schemers.org> | a logic language <http://swi-prolog.org> | something concatenative <http://factorcode.org> | a hardware-description language <http://wikipedi.as/VHDL>
<ELLIOTTCABLE> wat
<alexgordon> katlogic: it's reasonable, but compiling to llvm would give a faster compile times
<devyn> hahaha
<ELLIOTTCABLE> -factoid functional
<purr> ELLIOTTCABLE: Alias: categorization
<ELLIOTTCABLE> -factoid categorization
<purr> ELLIOTTCABLE: Popularity: 1, last changed by: <unknown>, <unknown time> ago
<devyn> ..
<ELLIOTTCABLE> but really, wat
<ELLIOTTCABLE> it's A) old, B) never been used until right now.
<katlogic> alexgordon: llvm is useful only for jit in languages like julia (where jit is a must because everything is actually meta without type but static ...)
<devyn> that's so weird
<alexgordon> katlogic: well what do you think clang compiles to? :P
<katlogic> alexgordon: actually might just compile to julia to get lots of her features :)
<ELLIOTTCABLE> like, the combination of popularity: 1 and <unknown> is nearly impossible
<yorick> devyn: is your haskell any good?
<katlogic> alexgordon: I'm fairly familiar with both clang and llvm :)
<katlogic> (and i hate both with passion, especially llvm)
<ELLIOTTCABLE> katlogic: WAT.
<purr> beep.
<devyn> yorick: pretty good, unfortunately
<alexgordon> :O
<katlogic> clang aint half as bad for a c++ codebase
<ELLIOTTCABLE> oh fuck
<alexgordon> someone dust off the banhammer
<ELLIOTTCABLE> didn't intend to beep that, but whatever.
<ELLIOTTCABLE> how can you hate LLVM?
<ELLIOTTCABLE> that's like hating wombats.
<alexgordon> how can you hate clang
<alexgordon> clang is the best damn C++ compiler ever mad
<ELLIOTTCABLE> -find llv
<purr> ELLIOTTCABLE: Could not find `llv`.
<alexgordon> *made
<katlogic> user-wise both are pretty awesome
<katlogic> but dont ever try to poke its gust
<katlogic> *guts
<joelteon> you know what sucks? everything
<ELLIOTTCABLE> -learn llvm = goddamn wombats, katlogic. <https://youtu.be/MbbtLAx6ohw>
<purr> ELLIOTTCABLE: Learned `llvm`.
<alexgordon> katlogic: I'm using the hell out of C++ and it hasn't even been released yet (lol). These things are just brilliant http://en.wikipedia.org/wiki/C++14#Lambda_captures_expressions
<purr> lol
<alexgordon> C++14
<katlogic> also, dunno if you're familiar with eastern slavic attitude
<katlogic> but we basically shit talk everything
<katlogic> its this thing we got from commies
<yorick> devyn: is Data.Trie actually any better to use than Data.Map in any occasion?
<ELLIOTTCABLE> katlogic: like I said, @whitequark was a regular in where for a while.
<joelteon> that explains a lot
<yorick> because I suspect it's implemented horribly
<joelteon> whitequark hates everything
<ELLIOTTCABLE> I think katlogic just became our replacement eastern-european.
<joelteon> yay
<katlogic> alexgordon: yay c++. or not. i use it only if i must.
<alexgordon> katlogic: I intend furrow to be a C++ without the stupid bits
<alexgordon> IMO, obviously
<ELLIOTTCABLE> I dragged a chair into my office from the living-room.
<ELLIOTTCABLE> I really need a good office-chair. /=
<katlogic> alexgordon: i wish nimrod didnt have that stupid pascal heritage.
<ELLIOTTCABLE> I envy people who can describe their language as “<x> with <y>” or “<x> without <y>”
<katlogic> julia is just too big academic monster. thats why i loathe llvm.
<katlogic> it ruined perfectly good novelty language.
<alexgordon> without llvm languages like julia wouldn't exist
<ELLIOTTCABLE> if I try to explain Paws, all that comes out is “chameleon on a rainbow dusted with glitter backlit by a UV strobe-light.”
<katlogic> ELLIOTTCABLE: will i get holo-pony too?
<alexgordon> it was impossible to build multiplatform compilers for less than 100s of man years before llvm
<devyn> yorick: really depends on what the map is of, but I would assume so... if it works for you though, you might want to use HashMap instead
<devyn> and try that
<devyn> really depends on how you're using it
<devyn> if you're eventually going to be doing a lot of lookups on it
<devyn> hmm
<devyn> well I mean a Trie should be faster
<alexgordon> ok so I think I've solved bindings. the phi nodes and type unification/coercion is the key
<devyn> I think?
<alexgordon> now for variables
<yorick> devyn: I'm storing 50k words in it
<yorick> well, I have 18MB of word data and I'm storing their contexts in a trie
* katlogic goes to make both Lua and V8 suck less
* katlogic &
<devyn> try that
<devyn> I think
<yorick> devyn: hmm, interesting
<yorick> devyn: also, do you know of a good thing that I can append and index to easily and otherwise I really don't care?
<ELLIOTTCABLE> oh gods
<devyn> yorick: what do you mean
<yorick> well, that's gay
<ELLIOTTCABLE> yorick: wat.
<purr> beep.
<alexgordon> hm what I DO have to solve is bindings being "left over" from previous loops
<yorick> devyn: I'm giving each word an index too and storing the index->word map somewhere
<devyn> like, in permanent storage, or a Haskell structure?
<yorick> haskell structure :/
<devyn> IntMap.Strict, then
<yorick> devyn: love ya
<devyn> if the indices are sequential you might want some kind of array, actually, yorick
<yorick> devyn: yeah, they are, but I don't think that would help much
<devyn> well it makes accessing O(1)
<devyn> lol
<purr> lol
* alexgordon defines a new term: paraphyletic scopes
<yorick> devyn: maybe Data.Array.MArray
<devyn> do you know the size ahead of time, yorick?
<yorick> no
<devyn> okay
<devyn> there's some library with resizeable arrays there
<devyn> OR
<devyn> you might just build a list
<devyn> and convert that to an array
<devyn> with Data.Array.listArray
<devyn> or something
<yorick> devyn: no because I need indexing while building
<devyn> okay
<devyn> honestly
<devyn> maybe just use IntMap
<yorick> I'm doing that
<devyn> it won't be as fast
<devyn> but
<devyn> yeah
<devyn> lol
<purr> lol
<devyn> it's going to require so much rebalancing though... probably worst-case for a tree
<devyn> :/
<yorick> rebalancing isn't terrible, that's a log(n) overhead
<devyn> ok
<devyn> eh, try it
<devyn> I can't think of a very efficient way to build an array atm
<yorick> I think the intmap is faster than the regular map :)
<devyn> yes, IntMap is waaaay faster than regular map with ints
<devyn> there's Vector
<devyn> I think that would work
<joelteon> vector append is O(n)
<devyn> that's unfortunate
<devyn> yeah then IntMap is probably still better
<yorick> devyn: I /msgd you
prophile has quit [Quit: The Game]
prophile has joined #elliottcable
<alexgordon> wondering if "var"s should be automatically mutable by closures or not
sharkbot has quit [Remote host closed the connection]
sharkbot has joined #elliottcable
Sgeo has joined #elliottcable
<alexgordon> awjdioawjfoiawjfawf
<ELLIOTTCABLE> hi
<purr> ELLIOTTCABLE: hi!
<alexgordon> ELLIOTTCABLE: not having a fun time with this
<ELLIOTTCABLE> still planning out your shit?
<alexgordon> yah
<alexgordon> it's the old mutable variables in closures thing
<alexgordon> giving me a headache
<alexgordon> I have half a mind to just disallow it completely
<alexgordon> who needs that shit
<alexgordon> not haskell, that's for sure
<prophile> beards
<prophile> how does rust handle it?
<alexgordon> prophile: good question
<alexgordon> can't figure it out :P
<alexgordon> man rust is SOOO fucking complicated
<joelteon> yeah it is
<prophile> isn't essentially some kind of wacky substructural types thing
<joelteon> who knows
<prophile> it reminded me of paws actually
<alexgordon> prophile: LOL
<purr> LOL
<prophile> the whole ownership construct
<alexgordon> prophile: rust is great but, I actually think it's more complex than C++
<prophile> it reminded me of feudalism too but that may be less relevant
<alexgordon> LOL
<alexgordon> C++ has an active vocabulary and a passive vocabulary
<alexgordon> e.g. "virtual", you need to know what it does, but you don't need to use it
<prophile> "fuck C++" vs "I wish C++ would die"?
<prophile> oh
<prophile> you probably do need to use virtual
<alexgordon> nope
<alexgordon> I never do
<alexgordon> ever
<alexgordon> rust has a smaller vocabulary in total, but a larger active vocabulary
<prophile> RTTI might have been a better example
<prophile> gotta love that dynamic_cast action
<alexgordon> nope I meant virtual
<alexgordon> I never use virtual in my own code
<alexgordon> you don't need to use it to write C++ programs
<prophile> well, obviously not, because you can write C programs
<alexgordon> right
<alexgordon> prophile: usually instead of virtual I'll use an enum and switch on that
<prophile> classy
<prophile> (that was a pun, I hope you noticed)
<prophile> I want to hate you for that but that's slightly closer to sum types in functional languages so you are forgiven
<prophile> otoh, why is that preferable to virtuals?
<prophile> CPUs are damn good at indirect branches these days
<alexgordon> prophile: it's a philosophical thing
<prophile> "if they're virtual, do they really exist?"
<alexgordon> prophile: virtual, and abstraction in general, violates "do the simplest thing that could possibly work"
<alexgordon> I like my programs to be designed to do exactly what they do do, and no more
<alexgordon> at least, the types of programs I write in C++
<alexgordon> otherwise you spend hours abstracting the wrong bits
<prophile> that's just down to your definition of "simple" — to me, digging around in details rather than putting an abstraction in front of it is complexity
<alexgordon> if I need an abstraction I refactor my code to support it instead of baking it in before I know it's necessary
<alexgordon> prophile: well there are other ways of abstracting other than virtual
<prophile> naturally, but since you were generalising to all abstractions there
<alexgordon> yes but virtual's kind of abstraction is necessarily broad
<prophile> I hate broads
<alexgordon> by using virtual you're saying "anybody can come along and subclass and do whatever they want"
<alexgordon> it's so unrestricted
<prophile> so it's really an open vs closed type thing?
<alexgordon> mmmm sometimes, sometimes not
<prophile> mostly I think inheritance is massively overused
<alexgordon> yah, sometimes it makes sense
<prophile> but when it is used, virtual (in my own experience) is generally useful
<alexgordon> try enums!
<alexgordon> :P
<alexgordon> I actually do the same in Python
<alexgordon> which doesn't even _have_ enums (I use strings)
<prophile> actually it does
<alexgordon> does that exist in real python?
<prophile> yeah, there it is in the docs
<alexgordon> no no, real python
<prophile> yeah, 3.4's actually out now
<prophile> oh, you mean legacy python
<alexgordon> no, real python
<alexgordon> python 3 isn't shipped with OS X yet :P
<prophile> no, but nobody's crazy enough to write actual new code in legacy python right? :)
<alexgordon> I've never actually installed it
<alexgordon> (python 3)
<prophile> yeah, but that's because OS X's open source stuff is 20 years out of date
<prophile> it's secure because it predates IP
<joelteon> yeah, like Ruby 2.0 for example
<prophile> some of the copyright notices still credit Ada Lovelace as the maintainer
<prophile> the man page for their coreutils is written on the side of a cave
<alexgordon> prophile: doesn't matter, it's what I use and it's what my users use
<alexgordon> python 3 is but a curiosity until other people can actually run my code
<prophile> hey, if legacy python makes you happy I'm not going to judge ;)
<alexgordon> *real python
<alexgordon> python 3 is hippy unicorn python
<prophile> let's dispense with that and call it python 2
<alexgordon> real python
<prophile> I rather do hope apple ships a more up-to-date python with the next OS
<alexgordon> they won't
<prophile> they might, but it'll be /usr/bin/python3 in addition to python2 rather than in place of it
<alexgordon> I rather do hope that python 3 dies a painful death and someone backports all the changes back to 2.7
<prophile> it won't, 2.7 will die eventually
<prophile> just like PHP 4 before it
<alexgordon> PHP 4 isn't dead, lol
<purr> lol
<prophile> fedora's already switched over
<alexgordon> PHP 4 runs like 25% of the internet
<prophile> it's dead, its body may still be warm but it's dead, I'd say the same of COBOL even though a friend of mine writes an IDE for the poxy thing
<prophile> (with .net integration, you have no idea the therapy I needed after I found that one out)
<alexgordon> anyway so back to rust
<prophile> rust
<alexgordon> apparently rust has something called capture clauses?
<alexgordon> this may have been removed subsequently, hard to tell
<prophile> iunno
<prophile> I don't actually know rust
<alexgordon> me neither
<prophile> I just saw some papers mentioning it in connection with linear types
<prophile> which I was reading up for my thesis
<prophile> (on an unrelated note I submitted it last week, fuck yeah academia)
<alexgordon> prophile: it's cool, you should check it out
<prophile> yeah, from the bits I read it sounds like it's very similar in a lot of ways to what I'd envisioned for ♞
<prophile> which makes me happy because now I don't have to write ♞
<prophile> on the other hand it probably doesn't have do notation therefore it's worthless
<alexgordon> so the only reason mutable captures are needed is that they allow you to return stuff "out of band"
<prophile> can you get around it with a continuation passing style type dealio?
<alexgordon> not... easily...
<alexgordon> ok say you have a function called each() which loops over a collection
<prophile> yurp
<prophile> and you want to accumulate something there
<prophile> gotcha
* prophile strokes nonexistant beard
<alexgordon> you don't actually have to _read_
<alexgordon> you could have a write only variable
<prophile> it would be so simple with monads ;)
<alexgordon> xD
<alexgordon> "simple", "monads"
<prophile> monads are really simple
<prophile> the only troubling property about them is that as soon as you understand them you lose the ability to explain them to anybody else
<alexgordon> I suppose this is the only thing that makes sense https://gist.github.com/fileability/793a5251e2e4727599c6
<alexgordon> just the "binding", "var", "mut" distinction seems unnecessarily confusing
<prophile> I guess you could have explicit invalidation of closures
<prophile> like, invalidate any closures you create that reference a mutable variable once the variable falls out of scope
<alexgordon> well that's another problem yeah
cloudhead has joined #elliottcable
<alexgordon> but even in the simple case of a temporary closure, it's not entirely obvious how it should owkr
<alexgordon> work
<alexgordon> cloudhead!
<prophile> ooh, video download is done
<prophile> \o/
<alexgordon> prophile: see what I was going to do originally was "var i = 0" instead of "mut i = 0"
<alexgordon> but it occurred to me that a variable declaration shouldn't imply that something is a mutable capture
<alexgordon> they could just want explicit scoping
<prophile> PHP has explicit variable capture, including explicit mutability marking
<alexgordon> bully for PHP
<prophile> and python 3 (lol) has explicit mutability with the nonlocal keyword
<purr> lol
<prophile> bbl
<alexgordon> yah
<alexgordon> maybe it's ok because this is basically an edge case
<alexgordon> I just don't like it one bit :|