<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
<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.
<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]
<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]
<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!
<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
<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>
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>
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
<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.
<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.
<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
<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?
<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.
<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*.
<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.
<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)
<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
<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
<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.
<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
<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)
<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