ELLIOTTCABLE changed the topic of #elliottcable to: #ELLIOTTCABLE: Puppy paws patter placidly through the pale passageways ...
<ellio>
I just said, out-loud, “I would not have letten you forgot it!”
<vil>
um
<ellio>
I'm amazign at english
<ellio>
I AM ALONE IN THE CONDO
<ellio>
she just walked out
<ellio>
I AM ALREADY SOOOOO BORED
<prophile>
looks like the grammar isn't LL(1)
<vil>
I miss my college peeps :(
<vil>
and just being around people who know what I'm talking about in general
<ellio>
prophile: wat
<ellio>
vil: wat
<vil>
wat
<vil>
I'm basically trapped in my house here at home
<ellio>
THEN WRITE ME A PAWS
<vil>
there's nothing to do, nowhere to go program and drink coffee
<ellio>
#elliottssolutiontoeverything
<joelteon>
trapt
<vil>
lol
<purr>
lol
<joelteon>
you should get a job
<vil>
still working on app
<vil>
app is job
<vil>
at the moment
<prophile>
I'm not sure that grammar's actually unambiguous
<vil>
my IT dept. internship fell through
<vil>
which is unfortunate
<ellio>
prophile: … as I said, it's a moment's work, and largely irrelevant. If there's something you see off the top of your head, I'll fix it, but you don't need to go digging in depth into it …
<vil>
and I'd really rather not go back to the grocery store
<ellio>
grammar is largely irrelevant to Paws.
<ellio>
can, and should, have Paws impls that completely do-not-support cPaws.
<prophile>
i'm pretty sure should be identifier-character+
<prophile>
rather than identifier-character*
<ellio>
yiss
<vil>
ellio: I spent all day yesterday colorizing my fossil output and generally improving my config
<ellio>
>,<
<ellio>
hey alexgordon
<ellio>
take a look at the Node interface
<ellio>
I have no idea how to specify that
<ellio>
Nodes can reference *either* an Expression *or* an Object.
<alexgordon>
isn't that enough?
<alexgordon>
attribute {Expression|Object} word;
joelteon has quit [Ping timeout: 264 seconds]
<ellio>
I guess
<ellio>
I feel like it's A LIEEEEEE
<ellio>
but whatevs
<ellio>
alexgordon: WHAT DO I DO NEXT COME ON
<ellio>
entertain / interact meeeeee
<alexgordon>
explain staging
<ellio>
hmk
<alexgordon>
or
<alexgordon>
explain how a paws program is interpreted
<alexgordon>
at a high level
<prophile>
expression
<alexgordon>
after it's turned into the graph, what happens then
<prophile>
I think it should be sp* <delimited-word>
<prophile>
where it's currently <delimited-word>
<alexgordon>
I presume there isn't a main function
<ellio>
ugh why are you always right, prophile
<ellio>
<3 prophile
<purr>
Let it be known that ellio hearts prophile.
<ellio>
hrm that's problematic in and of itself
<ellio>
oh, wait, no it's not
<ellio>
anyway
<ellio>
alexgordon: hm, trying to figure out how to spec this is *hard*
<alexgordon>
good
<ellio>
same pattern as earlier? I'll talk through it, and then doing so should help me start to write it in the doc, and then you can help me refine that?
<ellio>
'k, look at the spec for **Continuation**
joelteon has joined #elliottcable
<ellio>
ugh I'm so bad with words
<ellio>
alexgordon: what do I call “The algorithm that decides whether or not this bit of stuff can run right now?”
<vil>
verifier?
<prophile>
scheduler?
<ellio>
nah, like, the name of the *algorithm*
<vil>
gatekeeper?
<ellio>
the header of this section of the spec
<prophile>
steve?
<alexgordon>
evan
<ellio>
vil: you're unhelpful. That's all names *I* would come up with
* vil
shrugs
<purr>
¯\(º_o)/¯
<alexgordon>
ellio: legs
<ellio>
entire point of this exercise, if you'll read the backlog, is to get normal-ish names that people already use for shit
<ellio>
ugh fine
<prophile>
what it's called
<ellio>
going with “The reactor predicate.”
<prophile>
when something is current?
<alexgordon>
locomotor
<prophile>
as in, is presently running?
<vil>
ellio: I've spent too much time in here, it's rubbing off
<ellio>
active?
<ellio>
vil: <3
<prophile>
the activity predicate perhaps?
<prophile>
the feasibility condition?
<ellio>
feasibility condition is closer
<prophile>
the ipcress file?
<ellio>
okay done with you ಠ_ಠ
<ellio>
ggughr need more types
* ellio
goes to add them
<prophile>
so it decides whether it CAN run right now
<prophile>
rather than whether it WILL run?
<ellio>
there's basically a “global” (ish.) queue of procedures waiting to run.
<ellio>
but, by design, a huge percentage of them will be un-runnable at any given time.
<prophile>
so you select a number of candidate procedures by some predicate
<prophile>
and the first in the queue is selected
<prophile>
yes?
<ellio>
there's an algorithm that manages all the concurrency-safety stuff and relationships between them. And, iterating through that queue, the first one that returns “true,” is executed.
<ellio>
basically.
<ellio>
yep
<prophile>
so the candidacy predicate?
<whitequark>
scheduler
<prophile>
there's only two basic problems which are left unsolved for computer scientists and programmers everywhere to tackle
<prophile>
cache coherency and naming things
<whitequark>
I think it was cache invalidation
<whitequark>
but whatever
<whitequark>
Monk is slow on me for some reason -_-
<prophile>
it's really cache coherency
<prophile>
invalidation is just required to maintain coherency
<vil>
whitequark: it's worth the wait :D
<whitequark>
prophile: fair
<whitequark>
vil: umm... mmm
<whitequark>
mmm
<whitequark>
so you say I do not need to switch to Shakugan no Shana right now?
<whitequark>
mkay
<vil>
I mean
<whitequark>
it's kind of awkward.
<whitequark>
a bit.
<whitequark>
not *really*, confusingly awkward
<ellio>
Monk <3
<whitequark>
but slightly
<ellio>
I do love it, it's funny
<ellio>
it's like, not *amazing* funny
<ellio>
but the kind of funny you enjoy in the background immensely
<ellio>
I do Monk like I do Psych
<ellio>
anyway
<vil>
haven't watched Psych in several seasons
<vil>
still good?
<prophile>
my guilty pleasure is a programme called Castle
<prophile>
it's shit, and i love it
<vil>
Castle is fun, yeah
<vil>
haven't gotten attached to it
<vil>
but I'll watch
<ellio>
<3 Castle
<purr>
Let it be known that ellio hearts Castle.
<ellio>
how is it shite!?
<ellio>
it's excellent!
<whitequark>
in unrelated news... I can understand it without subtitles
<ellio>
I fuckin' love him
<whitequark>
but that requires distinct mental effort
<ellio>
whitequark: :D
<whitequark>
sigh
<ellio>
whitequark: how long've you been English'ing?
<whitequark>
ellio: I think I started with manuals for C++ Builder
<whitequark>
like ten years ago
<whitequark>
maybe 11
<vil>
whitequark: gobble gobble one of us
<ellio>
jesus, you've been programming way longer than me.
<whitequark>
but I didn't really listened to it
<ellio>
everyone has been.
<prophile>
ellio: the writing quality has been steadily dropping
<prophile>
it still has moments of brilliance
<whitequark>
listen
<ellio>
of Castle? yeah.
<whitequark>
meh
<vil>
ellio: probably not me
<ellio>
first season was excelllllllent
<prophile>
but it's cracking
<vil>
well, maybe, but not WELL
<prophile>
first season was pretty great
<prophile>
stana katic was prettier back then too, which doesn't hurt
<ellio>
oh, I should go masturbate
<prophile>
ಠ_ಠಠ_ಠಠ_ಠಠ_ಠಠ_ಠಠ_ಠಠ_ಠಠ_ಠಠ_ಠ
<ellio>
who's stana katic?
<prophile>
ಠ_ಠ_ಠ_ಠ_ಠ_ಠ_ಠ_ಠ_ಠ_ಠ_ಠ_ಠ_ಠ_ಠ_ಠ_ಠ
<ellio>
I don't do actresses / actors / whatever
<prophile>
lead actress
<whitequark>
ellio: but you have a girlfriend?
<ellio>
ah k
<ellio>
whitequark: if you think having a girlfriend means you don't masturbate, your relationship sucks. >:
<prophile>
ಠ_____________________ಠ
<prophile>
disapproving whale
<ellio>
masturbation doesn't replace having sex; and having sex doesn't replace masturbation.
<whitequark>
ellio: heh
<ellio>
independent activities with separate pros and cons.
<prophile>
WE DIDN'T NEED TO KNOW KTHX
<ellio>
yes you did
<ellio>
here, lessee, what details can I give you
* prophile
fans
<prophile>
I'm British, I won't stand for this!
<ellio>
actually, I know exactly what details I *want* to give you, but I suddenly feel uncompfortable sharing
<whitequark>
prophile: oh, British
<whitequark>
that explains
<whitequark>
ellio: tell them to me then
<ellio>
whitequark: both alexgordon and prophile are british
<vil>
ellio: and one of which has significantly higher barriers to entry
<ellio>
whitequark: devyn is canadian; and yrashk is, uhhhh, something eastern-european.
<vil>
hah, entry
<ellio>
vil: hah
<ellio>
vil: meh barriers to entry
* ellio
pats vil
* vil
is 5
<ellio>
you'll get laid soon enough, young padawan
<whitequark>
þat's what she said
<ellio>
alexgordon: Okay. next-up, then, is probably Mask.
* alexgordon
sends jimmy savile to vil's house
<ellio>
I looked into this shit for a bit, and I think I've come to conclusion that that is the next logical point to touch on.
<vil>
I don't think I have the patience to sustain a relationship
<vil>
other people are a lot of effort
<prophile>
when he says sends
<whitequark>
... that's... self-critical
<prophile>
he means by the postal service
<vil>
prophile: I'll be sure to check the box for air-holes
<ellio>
GUYS
<ellio>
FUCKIN' PAWS
<whitequark>
wow that's perverse
<prophile>
and remember
* whitequark
glares at the clock
<prophile>
dead people can't say "no"
<prophile>
or, for that matter, "how's about that, then?"
<ec>
I'm such a lightweight. I may be a beer and scotch snob and collect ridiculously large quantities of alcohol, but I simply don't *drink* very much. One sip of a high-ABV beer and I can feel it.
<prophile>
I indulged, in the first time in a while, in a little scotch tonight
<ec>
which? :O
<prophile>
glenmorangie
<prophile>
ten years old
<ec>
ick
<ec>
what's your address? I'll send you something *good* from my collection.
<prophile>
hah
<ec>
or just buy you a bottle of one of my favourites. (=
<ec>
I'm srs.
<ec>
I love spreading the alcoholic love.
<prophile>
:D
<prophile>
cool
<alexgordon>
ec: in britain we call it herpes?
<ec>
<3 alexgordon
<purr>
Let it be known that ec hearts alexgordon.
<ec>
-wholoves alexgordon
<purr>
ec: alexgordon is loved by devyn, locks, battlecollie, elliottcable, gqbrielle, micahjohnston, Navarr, ec, and Harlequin.
<whitequark>
-whohates alexgordon
<purr>
whitequark: alexgordon is hated by gqbe and Laufeyson.
<devyn>
ec: the primary idea behind it is different from everything else, I think, so far, in that the idea is that basically you could run things for your friends and they'd run things for you, automatically… so, pooling compute resources. but it's flexible, so it can also be set up in a not-so-gifty way
<ec>
Guys. That's a big number. I feel perversely accomplished.
<ec>
micahjohnston: privmsg?
<ec>
devyn: interesting, kinda. ish. idk.
<devyn>
ec: you could set it up with either a virtual or real economy if you want to; it's not specified but it's flexible enough to allow that
<ec>
BUT WAHY
<prophile>
ec: it's >390
<prophile>
you did a few on multiple lines
<ec>
from 1:28 to 2:31
<prophile>
over the course of an hour you came up with over 400 penis euphemisms, in alphabetical order
<ec>
so, ish, that's six a minute
<ec>
I wonder if I can beat that rate
<prophile>
heh, beat
<ec>
need to write a penis-eumphamism-timing-function
<ec>
oh god I've corrupted the minds of everyone in this channel *even more*
<devyn>
ec: why are these for the most part in alphabetical order
<ec>
shit. I just realized, that list is going to live for eternity.
<devyn>
what
<ec>
devyn: that was the joke.
<ec>
devyn: they asked me to do it in alphabetical order.
<devyn>
awesome
<devyn>
hahahaha
<ec>
… it wouldn't have been so impressive otherwise. you msised this *entire thing*.
<ec>
seriously, this is going to destroy my reputation.
<devyn>
yeah I didn't care enough to scroll up :)
<ec>
I'm gonna be the guy who did *that*.
<ec>
for the rest of my life.
<incomprehensibly>
ec: or cement it
<ec>
man, fml, bbl pizza.
<ec>
man, I got *good* about halfway in
<ec>
I get way, way better around the M's and onward
<ec>
then again, there's a lot of material (hehe) in M and P.
<ec>
paws? anybody?
<ec>
code?
<ec>
things that *aren't* penises?
<alexgordon>
like salami?
<ec>
Confession: I've had a pickle sitting next to me this entire time.
<Nuck>
Still gotta throw the text in there, which means some more advanced maskbuilding, but otherwise done
<joelteon>
MASKS
<Nuck>
What about them?
<Nuck>
(other than the fact that they're fucking awesome, or that they're the basic building block of Cairo)
Determinist has quit [Ping timeout: 248 seconds]
Determinist has joined #elliottcable
<purr>
<dxgriffiths> Variadic declare, it's like 'fire photon torpedoes'.
Determinist has quit [Read error: Operation timed out]
Determinist has joined #elliottcable
Determinist has quit [Ping timeout: 248 seconds]
Determinist has joined #elliottcable
Determinist has quit [Read error: Operation timed out]
Determinist has joined #elliottcable
<purr>
<whitequark> chews a toast.
Determinist has quit [Ping timeout: 248 seconds]
Determinist has joined #elliottcable
Determinist has quit [Ping timeout: 248 seconds]
Determinist has joined #elliottcable
Determinist has quit [Read error: Operation timed out]
Determinist has joined #elliottcable
Determinist has quit [Ping timeout: 248 seconds]
Determinist has joined #elliottcable
Determinist has quit [Read error: Operation timed out]
Determinist has joined #elliottcable
Determinist has quit [Ping timeout: 248 seconds]
Determinist has joined #elliottcable
Determinist has quit [Read error: Operation timed out]
Determinist has joined #elliottcable
alexgordon has joined #elliottcable
Determinist has quit [Ping timeout: 248 seconds]
Determinist has joined #elliottcable
Determinist has quit [Read error: Operation timed out]
Determinist has joined #elliottcable
<purr>
<devyn> “This end should point toward the ground if you want to go to space. If it starts pointing toward space you are having a bad problem and you will not go to space today.”
Determinist has quit [Ping timeout: 248 seconds]
Determinist has joined #elliottcable
yorick has joined #elliottcable
Determinist has quit [Read error: Operation timed out]
Determinist has joined #elliottcable
Determinist has quit [Ping timeout: 248 seconds]
Determinist has joined #elliottcable
chris-tina has joined #elliottcable
Determinist has quit [Read error: Operation timed out]
Determinist has joined #elliottcable
Determinist has quit [Ping timeout: 248 seconds]
Determinist has joined #elliottcable
Determinist has quit [Read error: Operation timed out]
Determinist has joined #elliottcable
Determinist has quit [Ping timeout: 248 seconds]
Determinist has joined #elliottcable
PragCypher has joined #elliottcable
<purr>
<elliottcable> If you mention CoffeeScript, I'm going to slap you with my tornado.
<alexgordon>
wat
<alexgordon>
where's that google doc from yesterday
Determinist has quit [Read error: Operation timed out]
Determinist has joined #elliottcable
Determinist has quit [Ping timeout: 248 seconds]
Determinist has joined #elliottcable
Determinist has quit [Read error: Operation timed out]
Determinist has joined #elliottcable
Determinist has quit [Ping timeout: 248 seconds]
Determinist has joined #elliottcable
PragCypher has quit [Quit: Leaving]
<ec>
hiiii allll
<ec>
jeannicolas: 'round these parts, we use ♪.
<ec>
-clouds
<purr>
ec: is stuck up in the clouds; hilight 'em if you want 'em.
<incomprehensibly>
hi ec
<ec>
devyn, incomprehensibly: I'M YOUR FRIENDS TOOSES
<incomprehensibly>
lol it doesn't highlight me when you say incomprehensibly, ec
<purr>
lol
<incomprehensibly>
stupid irssi
<jeannicolas>
yeaaah I was too drunk to type that musical note
<incomprehensibly>
hi jeannicolas <3
<jeannicolas>
hey there!
<ec>
@purr: <dxgriffiths> Variadic declare, it's like 'fire photon torpedoes'.
<purr>
alexgordon: A strong emotion of regard, of the kind humans sometimes express toward one another and computational knowledge engines express toward the internet.
<ec>
I forgot to give it an argument. What's it gonna have come up with!?
<incomprehensibly>
who is niggler
* niggler
is niggler
<alexgordon>
this is loading so slow
<ec>
incomprehensibly: guy who asked me to add CoffeeScript and ICS to purr
<ec>
which is a reasonable request, I believe
<ec>
would have to audit CS for security, though.
<incomprehensibly>
ok
<ec>
what the fuck IS this, alexgordon
<ec>
wonder woman
<ec>
anyway.
<alexgordon>
ec: oh you watching it?
<alexgordon>
it's awesome, pity they didn't make any more episodes
<Determinist>
why oh why can't we get a DB that supports sharding by multiple dimensions. i mean, this shit ain't cold fusion… somebody needs to make that shit already. encapsulate that complexity by denormalizing shit for you and scaling that horizontally. just create a new shardded collection per sharding index. sure, there's some write impact here, but with appends and journaling… this isn't such a big problem and sides, hardware is cheap.
<ec>
lolwat
<purr>
lolwat
<ec>
-walloftext
<niggler>
Determinist "this shit ain't cold fusion" which cold fusion?
<ec>
Determinist: Don't talk for months, then come back?
* Determinist
shrugs
<purr>
¯\(º_o)/¯
<alexgordon>
COLD FUSION
<Determinist>
i'm always around, really...
<alexgordon>
the world needs more cold fusion
<niggler>
oh man have you guys read voodoo science?
<Determinist>
ec: told you, i'm setting up a new company. i'll link you guys up when we release the first alpha. i'm CTO, bitches :P
<ec>
LOL
<Determinist>
not the first time tho, so the "everybody does what I say" thing isn't floating my boat as much as it used to.
<ec>
if (this.gqLearn++ > 10) {
<ec>
context.channel.send_reply(context.sender, "I think you've had enough for one day.");
<niggler>
Determinist that's so 1990s
<Determinist>
yeah, i'm kidding
<Determinist>
text doesn't convey tone very well
<Determinist>
i've decided that watching GSL while coding pwns.
<Determinist>
that, and koreans are a bit crazy. cool as fuck, but crazy.
<niggler>
you'll have to explain what GSL is
<niggler>
keep in mind I've spent the last five years in a box
<Determinist>
pro league for starcraft 2
<Determinist>
in a box?
<niggler>
LOL and people watch that?
<purr>
LOL
<niggler>
-- Determinist
<purr>
Let it be known that niggler is indifferent to Determinist.
<Determinist>
-- niggler
<purr>
Let it be known that Determinist hates niggler.
<niggler>
-- Determinist
<purr>
Let it be known that niggler hates Determinist.
<niggler>
-- Determinist
<purr>
Let it be known that niggler hates Determinist.
<ec>
… lol.
<niggler>
++ Determinist
<purr>
Let it be known that niggler is indifferent to Determinist.
<niggler>
there's no "dislike" or "strongly dislike" ec ?
<Determinist>
seriously tho, SC2 is awesome. show me another kinda sports where a single person does 300 things a minute.
<ec>
you can use <3 and ಠ_ಠ for more direct versions
<niggler>
ec I'm questioning the trichotomy
<Determinist>
you know how people play SC2? normal people, like you or me. these guys micro manage units one by one. some seriously crazy shit.
<Determinist>
attacking on 3 different fronts simultaneously, managing the economy at the same time, making more units… to me, these people are like robots.
<niggler>
there's a great element of muscle memory
<Determinist>
summary: stop hating and embrace the awesomeness
<niggler>
you could learn to vim or emacs
<Determinist>
i know vim, ain't the same ballpark :P
<Determinist>
aight, fts, back to code. ttyl
<ec>
lol “fts”
<purr>
lol
<niggler>
so what's your day job or whatever ec
<ec>
none, right now
<niggler>
school?
<ec>
nope
<ec>
dropped out a while back, though currently thinking of attending again
<niggler>
so straight up bumming?
<ec>
right now, I design programming languages
<niggler>
are you … paid to design programming languageS?
<ec>
nope
<ec>
wish I was D:
<niggler>
so how are you able to be online right now?
<ec>
oh, I've plenty of money at the mo
<niggler>
ah
<ec>
more interested in making excellent things than finding employment … although that's slowly changing
<niggler>
you have a year of runway?
<ec>
sommat like that
<ec>
I'm in Chicago, but thinking of looking for work on the West Coast. Great dev communities in Seattle, Portland, SanFran…
<niggler>
meh
<ec>
oh?
<niggler>
they aren't really "great" per se
<niggler>
well SF isn't great
<niggler>
i dunno -- i was there two weeks ago
<ec>
I'm always hearing positives about Portland. Got tons of friends in Seattle and YVR, too.
<niggler>
and i got the impression that most devs there are career developers, if that makes any sense
<ec>
as opposed to?
<niggler>
portland seems to be up and coming
<niggler>
i guess "enterprise" is the better word
<niggler>
what is called "enterprise" dev in the east coats
<ec>
oh ew
<ec>
in San Fran? really?
<niggler>
is essentially what they do in SF
<ec>
liiiiiies!
<niggler>
haha
<niggler>
granted, i met with some people at twitter and salesforce
<niggler>
neither of which are hip social startups
<ec>
lol'd
<purr>
lol
<niggler>
I'm interested in productivity applications
<niggler>
not really much development in the space
<niggler>
but on the topic of programming languages, I've had a burning desire
<niggler>
for a good math programming language
<ec>
the fuck
<ec>
is this
<ec>
devyn: purr's got a “Speller” module
<ec>
and I haven't the *slightest* idea what it does
<ec>
came in with the original import, so I didn't write it, nor did you
<ec>
been tracking Paws-related time for a while now
<alexgordon>
ec: staging and unstaging is the big unknown for me
<alexgordon>
that's what I had trouble with when I tried to implement paws the first time
<alexgordon>
semantics (at the time) were not clear
<ec>
yah
<ec>
understand
<ec>
so, next thing we'll need to talk about … the first part I'll need before I can start to write down the algorithm I was starting on last night, is Masks
<ec>
also: I've only put in 13.5 hours, directly, on Paws this month
<ec>
though 20 total if you count the time I've been putting into modules that I'm building *for* Paws.js
* ec
grins
<ec>
anyway
<ec>
that's 10.5 hours into development, 6.6 into administration-y B.S. (fixing build tools, or GitHub, or writing README, or whatever)
<ec>
and 5.6 into architecture/design-y stuff, that mostly being the four-ish hours yesterday
<ec>
alexgordon: basically, since the entire data-graph is annotated with responsibility … by taking a “root” node, and walking the graph, but stopping at any edge that *doesn't* carry responsibility,
<ec>
alexgordon: … we can arrive at a particular bounded sub-graph. Basically, we describe the edges of “a data structure” in memory.
<ec>
the Mask type represents that: as in, we place a “mask” on top of the graph, and only a particular part (the data-structure we're interested in) shows through.
<alexgordon>
O_O
<ec>
masking-out the uninteresting parts of the data-graph.
<ec>
with me?
<ec>
what?
<alexgordon>
this is hard to understand
<alexgordon>
how do you walk the graph?
<ec>
nothing fancy right now.
<ec>
really naïvely, though that's obviously implementation-dependant
<whitequark>
no, seriously, shared memory and locks?
<whitequark>
either I really do not understand what is going on
<whitequark>
or this is a really shitty idea
<ec>
probably both
<alexgordon>
whitequark: it's crazy, I have told him this before
<alexgordon>
but since i don't actually understand how this works, we'll see
<whitequark>
100% of the work being done on concurrency basically concludes that shm&locks is something you avoid to achieve sane semantics and/or execution speed
<alexgordon>
at least it HAS locks now
<ec>
it's always had locks
<ec>
concurrency mechanism hasn't changed substantially since mid-2010
<alexgordon>
whitequark: thing about paws is, it's really fucking slow. being fast is not a design goal
<whitequark>
alexgordon: but being concurrent is?
<alexgordon>
whitequark: this is more a concurrency thing. doing multiple IO at the same time
<ec>
being fully *asynchronous* is
<alexgordon>
like node... not fast, but concurrent.
<whitequark>
ec: you understand that locks are a synchronization mechanism?
<ec>
whitequark: yep
<alexgordon>
haha
<ec>
everything being described goes into the ordering of tasks, basically.
<alexgordon>
also I'm feeling like shit today
<ec>
all tasks are continuations, or the Paws equivalent thereof; and the sub-graph locks being described is one of the mechanisms that restricts *how* those tasks get ordered.
<alexgordon>
must be hayfever
<whitequark>
ec: how locks play with federation?
<whitequark>
(my best guess at it: clusterfuck)
<ec>
have no intents to lock against remote data at all. Again, one of those speed-is-not-a-design-goal things.
<whitequark>
and, since federation implies network, how do they play with an intrinsically unreliable medium?
<ec>
my *tentative* design (and believe me, nothing federation-related is set in stone yet) is to have data belong to a particular Unit; and just require that all changes to that data be handled by that unit.
<alexgordon>
whitequark is realizing that he's joined the scientology of programming languages
<ec>
I'm no DB designer / sharding expert, I'm almost certainly not going to overreach and try to do anything where data is shared
<incomprehensibly>
alexgordon: want to hear my idea
<incomprehensibly>
i have 3 hours before i am gone for a week
<alexgordon>
incomprehensibly: YES
<incomprehensibly>
yay
<incomprehensibly>
ok so it's like
<incomprehensibly>
this is made up syntax
<incomprehensibly>
and idk if i'm going to make pattern matching the fundamental mechansim
<incomprehensibly>
but for instance you can define bools this way
<incomprehensibly>
true : Boolean
<incomprehensibly>
false : Boolean
<incomprehensibly>
that just defined two constructors
<incomprehensibly>
and then you can say
<incomprehensibly>
not true = false
<incomprehensibly>
not false = true
<incomprehensibly>
and you can say
<incomprehensibly>
true ifTrue: a ifFalse: b = a
<incomprehensibly>
to steal some smalltalk syntax
<incomprehensibly>
just as illustration
<incomprehensibly>
but basically
<incomprehensibly>
is this making sense so far?
<incomprehensibly>
I want to combine haskell algebraic data types with abstract data types and ruby's uniformity of access
<incomprehensibly>
and also with typeclasses/protocols
<incomprehensibly>
and it's all statically ducktyped
<incomprehensibly>
so you don't necessarily name protocols or typeclasses, just if there is ever a function call that has the possibliity of being undefined there is an error
<incomprehensibly>
and you can probably push that off to runtime
<incomprehensibly>
alexgordon: make any sense so far?
<alexgordon>
jesus fuck
<alexgordon>
novel
<incomprehensibly>
lol
<purr>
lol
<incomprehensibly>
sorry
<incomprehensibly>
there's more to explain
<alexgordon>
1 min
<alexgordon>
nope no sense at all
<alexgordon>
true ifTrue: a ifFalse: b = a
<alexgordon>
wat
<incomprehensibly>
ok i'll do not-smalltalk syntax
<incomprehensibly>
if(true, a, b) = a
<incomprehensibly>
if(false, a, b) = b
<alexgordon>
when you say =, this is a binding?
<incomprehensibly>
yeah
<incomprehensibly>
left evaluates to right
<incomprehensibly>
like haskell =
<alexgordon>
I seee?
<alexgordon>
where are you going with this
<incomprehensibly>
so the cool thing is
<incomprehensibly>
you can do haskelly things like define new operations on datatypes, which you can't do in for instance java
<incomprehensibly>
so like
<incomprehensibly>
basically open class type things
<incomprehensibly>
but you can also do
<yorick>
incomprehensibly: it sorta looks like prolog :P
<incomprehensibly>
java/ruby-ey things like make new constructors for a datatype
<incomprehensibly>
yorick: hm, in what way?
<incomprehensibly>
like you could say
<incomprehensibly>
maybe : Boolean
<incomprehensibly>
and then it would error if `not` and `if` weren't defined for it and stuff
<yorick>
in prolog you could do if(true, A, B, A). if(false, A, B, B).
<yorick>
and then you could if(Condition, IfTrue, IfFalse, Result)
<incomprehensibly>
mhm
<yorick>
but that's it
<yorick>
prolog has very extensive pattern matching
eligrey has joined #elliottcable
<incomprehensibly>
yorick: yeah
* alexgordon
dies
<incomprehensibly>
i think i'm going to keep the pattern matching to a more haskell level, so it's very deterministic and no search strategies are needed for evaluation
<incomprehensibly>
alexgordon: why
<whitequark>
not sure if it's so novel
<incomprehensibly>
whitequark: he meant i wrote a novel i think
<whitequark>
ahhh
<whitequark>
well
<whitequark>
you seen multimethods?
<whitequark>
and traits?
<incomprehensibly>
yeah
<incomprehensibly>
this is multimethods
<incomprehensibly>
basically
Determinist has quit [Read error: Operation timed out]
<alexgordon>
micahjohnston: hayfever
<incomprehensibly>
lol
<purr>
lol
<incomprehensibly>
whitequark: basically i'm trying to solve the expression problem
<incomprehensibly>
yknow
Determinist has joined #elliottcable
<whitequark>
incomprehensibly: elaborate?
eligrey_ has joined #elliottcable
eligrey has quit [Ping timeout: 240 seconds]
<incomprehensibly>
you can extend both the constructors of a datatype and the operations on it
<whitequark>
let's dance around in the wilderness naked
<whitequark>
incomprehensibly: elaborate even further?
<incomprehensibly>
whitequark: for instance
<incomprehensibly>
make some constructors
<incomprehensibly>
like
<incomprehensibly>
data Boolean = True | False
<incomprehensibly>
but then you can add antoher
<incomprehensibly>
like
<incomprehensibly>
data Boolean += Maybe
<incomprehensibly>
stupid placeholder synatx
<incomprehensibly>
just like subclassing in OO
<incomprehensibly>
but you can also add more methods
<ec>
iOS 7 crashes *so much*
<ec>
incomprehensibly: this looks cool. This doesn't already exist? o_O
<incomprehensibly>
ec: well, not in this exact incarnation
<incomprehensibly>
look at Atomo/Atomy
<incomprehensibly>
it's pretty close
<incomprehensibly>
prototypal multimethods
<incomprehensibly>
this will be statically typechecked though
<incomprehensibly>
whereas those are as dynamic as can be
<ec>
don't know Atomo
<ec>
but very excited about prototypal multimethods in general
<ec>
unfortunately, too Rut-y to interest me right now.
<ec>
looks like a great language in the vertical.
<incomprehensibly>
well watch it there
<ec>
but if it's not JavaScript or C, or something new and innovative I can *try to implement* in javaScript or C, then … I'm bored by it, right now. /=
<incomprehensibly>
horizontal doesn't only mean "changes the evaluation/computation model"
<incomprehensibly>
:p
<ec>
trudat
<ec>
I'd have to look at it.
<ec>
(or have you tell me. ;)
<incomprehensibly>
it's like Io but way cooler
* ec
nods
<ec>
yes, definitely exciting. I just don't know what I'd write in it.
<incomprehensibly>
mhm
<ec>
It's in the “I'd love to write something in this … but I don't even have something to write in *Haskell* to learn *that*, and Haskell is going to teach me *way more* than this would if I *did* have a project to write, so I'd do that instead.”
<ec>
s/Haskell/Prolog
<ec>
S/Prolog/Factor
<ec>
etfuckinceteras
<incomprehensibly>
lol yeah
<purr>
lol
<ec>
In five years, maybe I'll have time to start looking for fun new rut languages to work in … whatever's current at the time.
<ec>
But I've got a stack of languages I *need* to work in, simply to make myself a better programmer, before then.
<incomprehensibly>
uhuh
<incomprehensibly>
i wanna teach you haskellll
<incomprehensibly>
ec: by the way you probably won't see me for a week and a half starting in two hours
<incomprehensibly>
going to an awful church camp thing and then scout camp for the entirety of next week
<incomprehensibly>
and then the following monday and tuesday are university orientation
<ec>
you're a scout?
<ec>
did I know that and forget it?
<incomprehensibly>
yeah, I'm an Eagle
<incomprehensibly>
ugggggghg gtg forever right now
<incomprehensibly>
;_;
<ec>
o7
<incomprehensibly>
ec: <3
<incomprehensibly>
<3 everybody
<purr>
Let it be known that incomprehensibly hearts everybody.
<ec>
o7
<ec>
-wholoves everybody
<purr>
ec: everybody is loved by incomprehensibly, jergason, and purr.
<ec>
-wholoves everyone
<purr>
ec: everyone is loved by devyn, alexgordon, IamTash, everybody, remy, and yourmom.
<ec>
omg wat.
<ec>
-loves everybody
<purr>
ec: everybody loves raymond, gqbe, nuck, and everyone.
<ec>
-hates everybody
<purr>
ec: everybody hates elliottcable.
<ec>
>:
<whitequark>
lol.
<purr>
lol
<incomprehensibly>
haha aw
<incomprehensibly>
<3 elliottcable
<purr>
Let it be known that incomprehensibly hearts elliottcable.
<incomprehensibly>
bye
<incomprehensibly>
p7
<incomprehensibly>
o7
<ec>
-whohates ELLIOTTCABLE
<purr>
ec: ELLIOTTCABLE is hated by Nuck, gqbrielle, darkf, and everybody.
<niggler>
-whohates ec
<purr>
niggler: ec is hated by no one :)
<ec>
niggler: ec == ellio == elliottcable
<ec>
== battlecollie == [e] == tees
<niggler>
i know but purr doesnt
<ec>
purr hasn't got user-management in this version
<ec>
need to add it but the framework doesn't really support that.
<ec>
part of the rewrite.
<ec>
ugh don't care purr
<ec>
alexgordon: hi
<ec>
can we just goddamn make a paws so I can give up on this already ddis
<jeannicolas>
he said "not sure if happy or just canadian".. I said "por que no los dos"
<jeannicolas>
makes sense
<alexgordon>
ah
<alexgordon>
you didn't account for me not knowing spanish
<alexgordon>
or maybe you did
<ec>
ohhhhhh I see
<jeannicolas>
alexgordon: means "why not both"
<ec>
sooo, idk if either of you have facial-hair.
<alexgordon>
YES I GET THAT NOW
<ec>
but things tend to grab my hair
<ec>
when I scratch them against my chin
<ec>
extremely painful
<ec>
but, relevant point being:
<jeannicolas>
yeah
* jeannicolas
has a beard
<ec>
the Apple remote,
<ec>
with NO FUCKING SEAMS,
<ec>
does it.
<ec>
I have no idea how.
<alexgordon>
jeannicolas is so hipster he has a hitler mustache
<ec>
I look at it, see perfect, seamless, crisp aluminum edge
* jeannicolas
does not
<ec>
and go to scrape my chin with it idly
<ec>
and it IMMEDIATELY PULLS MY CHIN-HAIR
<ec>
AND I HAVE NO IDEA HOW
* alexgordon
is 12
<jeannicolas>
it was assembled in China… no one in China has beard...
<jeannicolas>
I think there's something there
<ec>
seriously
<ec>
THERE ARE NO SEAMS
<ec>
HOW IS IT DOING IT
<alexgordon>
my apple remote is made of plastic :(
<alexgordon>
what I don't get is
<alexgordon>
how does the battery last so low
<alexgordon>
long
<alexgordon>
I mean I never recharge it
<alexgordon>
I've had it since 2007
<ec>
hahaha
<ec>
all it's doing is powering one little adorable LED
<ec>
and even then, only, like, for a total of thirty seconds a month
<alexgordon>
yeah but don't batteries die after a while
<alexgordon>
regardless of load. just being connected to the circuit drains charge
<ec>
all tradeoffs
<ec>
some last long without usage but have unreliable output
<ec>
it's probably that sort
<ec>
alexgordon?
<ec>
alexgordon: reading?
<alexgordon>
nope
<alexgordon>
am now
<alexgordon>
there's lots of new stuff here lol
<purr>
lol
<alexgordon>
it's in danger of getting elliottsplatted
<ec>
what
<ec>
ugh I tried
<ec>
there's not much new
<alexgordon>
lol
<ec>
just reformatted a bit
<ec>
the new stuff is all under Mask
<alexgordon>
oh ok
<ec>
and at the bottom of the document
<ec>
I verrrryyy slightly fixed/modified some of the things:
<ec>
Node/Expression were modified,
<ec>
prophile pointed out some mistakes in the grammar,
<ec>
and I *started* to write up Continuation.
<ec>
but it's not complete and you can ignore it. we haven't really gotten there yet.
<alexgordon>
ec: so this is cool
<ec>
what is
<alexgordon>
masks
<alexgordon>
never heard of anybody doing that before...
<alexgordon>
which could be paws' tagline
<ec>
lol
<purr>
lol
<ec>
yes, it's one of the innovations.
<alexgordon>
trying to figure out how to implement it efficiently
<ec>
not exciting enough for whitequark, because it still uses locks, but whatever.
<ec>
can always replace it if it's not good enough.
<ec>
it's not the *truly* exciting stuff.
<alexgordon>
ec: I'm not sure if it's *useful* per se, but it's certainly novel
<ec>
but yeah: basically, the goal is to move a lot of the programmer-effort involved in concurrency into their *data structures*
<ec>
instead of their *source code*
<ec>
nonono there's a very particular way I plan to use it
<ec>
this is a boiling-down of Fullness designs.
<ec>
in my linguistic planning, I've got a desire to make *procedure calls* handle the locking
<ec>
basically, at a Fullness level, you write lots of as-small-as-possible procedures (which is already good practice in O.O. languages, whether like Ruby or JS)
<ec>
and then you mark the arguments A) that the procedures *modify*/sequential-read, and B) the incidentals that they *don't*
<whitequark>
(JS isn't OO... but continue)
<ec>
then you don't have to write any locks or declare any ownership *at all*
<ec>
JS *is* OO.
<ec>
the only good kind of OO.
<alexgordon>
oh shit
<whitequark>
no forwarding
<ec>
prototypal, flexible, understated OO.
<alexgordon>
yeah I have to agree with whitequark
<whitequark>
no encapsulation
<alexgordon>
JS is not OO, because it has no messages
<ec>
differing definitions of OO are not within the scope of this discussion.
<whitequark>
"JS is OO because it has inheritance" ~ "JS is functional because it has closures"
<alexgordon>
lol
<purr>
lol
<whitequark>
yeah.
<alexgordon>
JS is OO in its own unique way
<ec>
nor *should* they be within the scope of *any* discussion, because categorizing languages is a waste of the time that could be spent *inventing new categories*.
<ec>
anyway.
<ec>
alexgordon: do you understand?
<alexgordon>
uh
<alexgordon>
ec: one thing
<alexgordon>
ec: so a mask is a set of objects, right?
<alexgordon>
i.e. it forms a subgraph
<alexgordon>
so it represents a particular subset of all the objects in the program
<ec>
a root-point, plus the responsibility-annotations stored in the data-graph itself, together form a sub-graph
<ec>
a “mask” is a nickname for that root-point
<ec>
that we'll use elsewhere in the documentation
<alexgordon>
oh right
<alexgordon>
so it's just one node
<ec>
it's not, most honestly speaking, a real thing we need to implement or care about.
<ec>
yep.
<alexgordon>
and from there you walk outwards and THAT is the subgraph
<alexgordon>
alright
<ec>
yep!
<alexgordon>
so like GC really
<ec>
yep!
<ec>
and yes, otherwise, you're correct.
<ec>
it represents a particular subset.
<ec>
most accurately, “a particular data-structure.”
<alexgordon>
right but it's not an arbitrary subgraph
<ec>
exactly.
<alexgordon>
because you can't have two objects that are otherwise unreachable
<ec>
this is important because in the type of pseudo-OO I care about, and designed this for, you're going to be working with lots of data-structures built up out of simple objects.
<ec>
oh, you can. This is only whether they're reachable with *responsibility*-annotated edges.
<alexgordon>
no no
<alexgordon>
well yes
<ec>
you could have an entire half of the graph that encodes no responsibility, and thus is completely unreachable for any masking purposes
<alexgordon>
I meant in the graph theoretic sense
<ec>
eh?
<alexgordon>
whatever lol
<purr>
lol
<ec>
nonono explain
<ec>
this is the entire point of working through this stuff with you :D
<alexgordon>
if you HAD two objects that were not referencing each other at all
<alexgordon>
then you couldn't build a mask of both of them
<alexgordon>
so it's not an arbitrary subgraph
<ec>
you're not *kilometres* ahead of me in the academic-sense, so I can still understand you … *and* you are too busy to take bullshit for an answer, and help me excise all the bullshit terms and drill down to the effective core of the concepts
<alexgordon>
that was all I was saying
<ec>
oh yes understood yep
<ec>
'k. moving on, then.
<ec>
alexgordon: I'm bad at attention, you gotta let me know if you're still here
<alexgordon>
I have to get up early tomorrow so I've got about 30 mins :P
<ec>
oh poo
<ec>
so close to fun stuff
<alexgordon>
wonder if I could build a theremin using an isight...
<alexgordon>
I bet someone's done it with kinect already
<alexgordon>
was more, oh shit you and whitequark are going to be at it all night
<ec>
oh 'cause JS-is-not-OO, lol
<ec>
naaaaah
<alexgordon>
ec: so can an object have multiple "owners"
<ec>
yepyepyep
<ec>
remember:
<ec>
all “responsibility for” something else means, is that “algorithms that are likely to modify me, are *also* likely to modify *that*.”
<alexgordon>
right
<ec>
So, for example, there might be three people pointing at my Name object:
<ec>
a Person also containing my age, and location … a list of Names representing access to a posh higher-society get-together … and a marriage-proposal object.
<ec>
first, obviously, if you're going to modify the person, you're probably going to modify the name. It's an integral part of the Person data-structure.
<ec>
second … there's no reason to modify any of the *first-and-last* names, just because you're modifying the list of people with access. no responsibilty.
<ec>
Third, though, when the marriage is carried-through, the last-names of the people involved are likely to change; so it *would* annotate responsibility for the Name objects.
<ec>
alexgordon: what's the word for the opposite of “native?”
<ec>
native stuff is in the underlying-language,
<ec>
what's the name for stuff implemented/exposed to the over-laying language
<alexgordon>
ec: foreign?
<ec>
foreign still references the underlaying language, usually, where I've seen it
<ec>
“foreign function interface”
<ec>
I don't mean opposite-word, I mean whatever word is already used for that shit
<niggler>
ec middleware?
<ec>
wat
<niggler>
stuff implemented/exposed to the over-laying language
<ec>
um, how is that middleware
<ec>
I'm talking about Object, toString() in JavaScript
<niggler>
what's middleware
<ec>
stuff written *in the language*, or exposed *to* the language
<niggler>
middleware isn't necessarily written in the language, fair enough
<alexgordon>
not understanding how that is different from foreign
<ec>
erm
<ec>
let's say I've got a C function, Object->find()
<ec>
and then, a Paws-side procedure we expose, `infrastructure object find()`
<ec>
what do I call the former, and what do I call the latter, to differentiate them?
<ec>
I've *been* calling them “native” and “alien”
<ec>
but nobody knows what that means, and you know I've been trying to come up with more ‘old-school’ terminology
<whitequark>
ec: oh that's simple
<whitequark>
"primitive"
<ec>
nah
<whitequark>
yeah
<ec>
have to stay away from that, JS uses that for a class of types that we don't have
<whitequark>
standard lingo for it
<whitequark>
hmmm
<whitequark>
ok
<joelteon>
Nuck:
<whitequark>
builtin
<ec>
I interact with too many JS developers to risk that mis-association, I think, probably
<Nuck>
joelteon: ?
<whitequark>
standard lingo in another camp of developers
<ec>
builtin isn't bad
<ec>
I hate that it's so out-of-sorts, but maybe
<joelteon>
Nuck: I got Ratchet and Clank Future: Tools of Destruction today
<whitequark>
(primitive is for lisp-smalltalks, builtin is for c-c++'s)
<Nuck>
joelteon: nice! Go play it and shut up ;D
<joelteon>
I played it for 4 and a half hours
<joelteon>
I'm taking a break
<Nuck>
hahaha
<Nuck>
How is it, anyways?
<joelteon>
It's like Up Your Arsenal, but a lot better.
<Nuck>
ooooh
<joelteon>
Same formula, but the graphics are 300 times more realistic