ELLIOTTCABLE changed the topic of #elliottcable to: #ELLIOTTCABLE: Puppy paws patter placidly through the pale passageways ...
<ELLIOTTCABLE> lolololol
<purr> lolololol
<alexgordon> lol
<ELLIOTTCABLE> alolololexgordon
Determinist has quit [Quit: Textual IRC Client: www.textualapp.com]
<ELLIOTTCABLE> Hey.
<ELLIOTTCABLE> So, I'm trying to make a decision here.
<ELLIOTTCABLE> I've got a library that's basically for “styled” strings in JavaScript.
Determinist has joined #elliottcable
<ELLIOTTCABLE> previously, it was for handling ANSI printing
<ELLIOTTCABLE> side-note, that I just HAVE to get out: I FUCKING HATE COFFEESCRIPT'S DEVELOPERS
dsamarin has quit [Ping timeout: 246 seconds]
<ELLIOTTCABLE> Every. Single. Time. I've ever submitted an issue. (And I've probably submitted five, well-described, in-depth-researched issues with test-cases), they've been complete assholes.
dsamarin has joined #elliottcable
<ELLIOTTCABLE> aaaaanyway
<ELLIOTTCABLE> ಠ_ಠ so much ಠ_ಠ
<purr> Let it be known that ELLIOTTCABLE disapproves of so much ಠ_ಠ.
<ELLIOTTCABLE> oh crap
<ELLIOTTCABLE> ++ so much ಠ_ಠ
<purr> Let it be known that ELLIOTTCABLE is indifferent to so much ಠ_ಠ.
<ELLIOTTCABLE> ... so, long story short, I'm thinking of changing the API for my rewrite of this library,
<ELLIOTTCABLE> to use HTML.
<ELLIOTTCABLE> basically,
<ELLIOTTCABLE> console.log("{ <span class='key'>foo</span>: <span class='number'>123</span> }")
<ELLIOTTCABLE> console.style(".foo {color: red;}")
<ELLIOTTCABLE> then, my things that are printing debugging-output and describing *how* to print a given object's debugging information, could just use really simple HTML strings.
joelteon has joined #elliottcable
<ELLIOTTCABLE> joelteon ⑊ -logs
<joelteon> ?
<gkatsev> ELLIOTTCABLE: want to tell purr to leave ##js?
<purr> <alexgordon> she sells csh by the C shore
eligrey has quit [Read error: Operation timed out]
SgeoBot is now known as Sgeo
<dnyy> ELLIOTTCABLE: i like that your GH name is in all caps. it looks like everyone is yelling at you.
<joelteon> i like how most cocoa apps look fine in 2x res
<ELLIOTTCABLE> dnyy ⑊ lolhi?
<purr> lolhi
<joelteon> but photoshop looks like they scaled it up 2x exactly
<joelteon> using nearest-neighbor
<joelteon> fucking terrible
<ELLIOTTCABLE> dnyy ⑊ long fucking time no see/ I'm coming to Seattle soon.
<ELLIOTTCABLE> dnyy ⑊ are you still there?
<dnyy> ELLIOTTCABLE: i live in dallas now, lolol
<ELLIOTTCABLE> watfuck
<ELLIOTTCABLE> screw that
<ELLIOTTCABLE> ಠ_ಠ
<dnyy> trying to move to the netherlands
<dnyy> once i get financially not retarded enough to save 10 grand
eligrey has joined #elliottcable
<alexgordon> dnyy 10 grand?
<dnyy> 6k for "business investment", legal fees, plane tickets, yadda yadda
Determinist has quit [Ping timeout: 276 seconds]
Determinist has joined #elliottcable
Aria has joined #elliottcable
alexgordon has quit [Quit: My iMac has gone to sleep. ZZZzzz…]
sharkbot has quit [Remote host closed the connection]
sharkbot has joined #elliottcable
Determinist has quit [Ping timeout: 268 seconds]
Determinist has joined #elliottcable
Determinist has quit [Ping timeout: 276 seconds]
Determinist has joined #elliottcable
Determinist has quit [Ping timeout: 268 seconds]
Determinist has joined #elliottcable
<purr> <alexgordon> do salmon have vaginas? I don't think we ever got to the bottom of it
<purr> <incomprehensibly> STRAWBERY AVALNGELHTA
<devyn> holy fucking shit
<devyn> Broadwell is intended to be a 14 fucking nanometer shrink of Haswell
<devyn> fourteen fucking nanometers
<devyn> what the fucking fuck
<gkatsev> yeah, it's amazing
<devyn> betcha it won't overclock well
<devyn> :p
<gkatsev> that's what the tock cycle is for
<devyn> nooo, I mean it probably won't overclock well because 14 nm is pushing quantum mechanics as it is
<gkatsev> ah
<gkatsev> apparently haswell + motherboards can basically do all the overclocking for you. like the reboots and cranking it up until it crashes and stuff.
<devyn> that's neat, but what you really want to do is set a target clock speed and then have it automatically adjust voltages until it's stable
<gkatsev> yeah, that's what it can do
<devyn> good
<devyn> that's good
<gkatsev> which is really cool
<devyn> I've gone through that process many times :c
<gkatsev> I've never bothered overclocking
<devyn> it's kinda fun, in the same way that micro-optimizing a program can be fun
<gkatsev> lol
<purr> lol
<devyn> by that I mean sure, it's frustrating as hell sometimes and pointless after a certain point, but you learn a lot in the process
<gkatsev> yeah, which is why I never bothered
<gkatsev> I'm too lazy for that
<devyn> haha
<devyn> I've really enjoyed getting more interested in the low-level shit lately, actually
<gkatsev> yeah, it's interesting
<devyn> building and tweaking a computer really rekindled that interest
<gkatsev> i'll keep being interested at it from wikipedia :P
<devyn> :p
eligrey has quit [Quit: Leaving]
Determinist has quit [Ping timeout: 276 seconds]
Determinist has joined #elliottcable
<micahjohnston> hi
<purr> micahjohnston: hi!
<micahjohnston> alexgordon is always gone :(
<micahjohnston> ELLIOTTCABLE: hi
Determinist has quit [Ping timeout: 268 seconds]
Determinist has joined #elliottcable
<micahjohnston> nobody :(
<devyn> hey
<devyn> I'm alvie
<devyn> alive.(
<devyn> stnbnstuhaoetnsuh
<micahjohnston> hi devyn
<micahjohnston> i want to make tempus have a good solution to the expression problem
<micahjohnston> and also have really good higher ordre facilities
<micahjohnston> like haskell but better
<micahjohnston> and also like clojure
<devyn> “I want X and Y and Z and I haven't done anything about any of it”
<micahjohnston> so i want like multimethods+protocols/typeclasses+etc.
<micahjohnston> fuckyou
<devyn> :)
<micahjohnston> because i've been thinking about how to make it work
<micahjohnston> "haven't done anything"
<devyn> lol
<purr> lol
<micahjohnston> i'm not going to write a fucking compiler for a language that isn't designed
<devyn> well that's more than could be said for some people in this room
<micahjohnston> devyn: what do you mean
<micahjohnston> in what direction
<micahjohnston> am i more or less lazy than some people in this room
<devyn> micahjohnston: elliott is on and off interpreting a language that is barely specified, or at least was barely specified… it's looking better now
<devyn> but hell he was writing the interpreter as an experiment before… and I think you should do the same, actually
<micahjohnston> …
<micahjohnston> I wrote the first running paws interpreter
<devyn> I know you did
<micahjohnston> and i only wrote parts that were 100% specified
<micahjohnston> and I have written multiple tempus impls
<micahjohnston> one which actually runs code
<micahjohnston> the point is
<micahjohnston> they do not implement the parts that i don't have designed and that i wanted to have a conversation about
<micahjohnston> the way i started that conversation was
<micahjohnston> "i want tempus to have this thing"
<micahjohnston> but i have been thinking about it for the past couple of days and i have ideas but want to flesh them out with others' input
<devyn> yes and I'm an asshole because I still have finals to write and I'm running on barely any sleep :3
<micahjohnston> ha ha i am graduated
<devyn> good for you
<micahjohnston> :) <- assholey smile
<devyn> I have my *valedictory ceremony* before my finals are fucking over with 100%
<devyn> as in we literally walk across the stage, get the little book diploma type thing,
<devyn> and we're not fucking done with finals yet
<devyn> what
<devyn> the
<devyn> fuck
<micahjohnston> that's weird
<devyn> yeah not only that but most of our classes weren't even done on the last day of classes (today)
<devyn> we were still covering new material on China in history…
<micahjohnston> wow that's crazy
<micahjohnston> most of my classes were IB
<micahjohnston> so tests were halfway through May and we had a couple weeks of nothing
<micahjohnston> that's kinda ridiculous
<micahjohnston> well i gtg
<micahjohnston> gnight
<devyn> micahjohnston: yeah no IB at my school, but I probably wouldn't have done it anyway — if I really wanted to do it I would have transferred to a different school like most people
<devyn> micahjohnston: anyway have a good sleep
<devyn> I'm gone now too :p
cloudhead has joined #elliottcable
<purr> <Nuck> elliottcable: Stop rubbing your face in poop you fool
Determinist has quit [Ping timeout: 276 seconds]
Determinist has joined #elliottcable
alextgor_ has joined #elliottcable
<ELLIOTTCABLE> hi
<purr> ELLIOTTCABLE: hi!
<ELLIOTTCABLE> what is IB? / devyn / micahjohnston
<ELLIOTTCABLE> lol Determinist
<purr> lol
<ELLIOTTCABLE> er, devyn*
<ELLIOTTCABLE> hi alextgor_
swart has joined #elliottcable
<Determinist> was I needed?
<ELLIOTTCABLE> Determinist ⑊ nah. Mis-hilight.
<ELLIOTTCABLE> Determinist ⑊ never see you around. >:
<Determinist> k
<Determinist> i'm around
<Determinist> busy setting up a new company
<Determinist> you know how it is
<Determinist> never any free time for us in the start up business. some people actually have to get shit done and not just sit in meetings as the fuckers in corporate do
<ELLIOTTCABLE> company?
* ELLIOTTCABLE pokes Determinist
PragCypher has joined #elliottcable
<Determinist> yeah
<Determinist> sorry, kid was throwing a temper tantrum
<swart> new business and a kid. what doesn't kill you makes you stronger :)
cloudhea1 has joined #elliottcable
<ELLIOTTCABLE> cloudhea1!
<ELLIOTTCABLE> cloudhea1 ⑊ it's been a while since we've talked. What's up?
cloudhead has quit [Ping timeout: 264 seconds]
<ELLIOTTCABLE> or noop
alextgor_ has quit [Quit: My iMac has gone to sleep. ZZZzzz…]
<purr> <whitequark> sephr-uni: you are indeed the hardware equivalent of a mongodb fanboy
<joelteon> awwwwwwwww yeaaaaaaaa
<joelteon> lunch for hack day
<joelteon> and my hoodie came
<joelteon> i look like a fashionable gay person
<purr> <elliottcable> dude, birdy nam nam
<ELLIOTTCABLE> joelteon !
<ELLIOTTCABLE> lemme see dat hoodie
<joelteon> ok
<joelteon> uh
<joelteon> i think i have a pic
<ELLIOTTCABLE> so, so gay
<ELLIOTTCABLE> wait, it has no logo or anything?
<ELLIOTTCABLE> wtf is the point
_whitelogger_ has joined #elliottcable
alexgordon has joined #elliottcable
<joelteon> no logo?
<joelteon> why is that a problem?
<joelteon> am i supposed to advertise companies for free?
<ELLIOTTCABLE> This is excellent :D
<ELLIOTTCABLE> joelteon ⑊ of course? Who the fuck would wear a hoodie without a logo?
<alexgordon> BORING
<ELLIOTTCABLE> least classy piece of closthing. I assumed it was some cool tech thing.
<ELLIOTTCABLE> Honestly, I'd thought you'd ordered a GitHub hoodie.
<joelteon> oh
<ELLIOTTCABLE> >:
<joelteon> ...
<ELLIOTTCABLE> #disappointed
<joelteon> you guys suck
* ELLIOTTCABLE alaughs
<ELLIOTTCABLE> alexgordon ⑊ hi!
<joelteon> i'm going home
<alexgordon> ELLIOTTCABLE: HI
<joelteon> i want a github hoodie too
<joelteon> but hoodies are kinda dumb
<alexgordon> I've added environment variables to furrow
<joelteon> i like this one because it has a cowl neck
<alexgordon> linear search is probably faster than a hash table isn't it
<alexgordon> if the keys are ints
<joelteon> probably
<joelteon> i was just using a Map Text ()
<alexgordon> trying to think how to implement this
<joelteon> and I thought "they should make a datatype for this use case"
<joelteon> and then I remembered Set
<joelteon> >me
<alexgordon> lol
<purr> lol
<alexgordon> github gist is REALLY FREAKING BROKEN on mavericks
<joelteon> are IRC hostnames based on PTR records?
<joelteon> how is it broken?
<ELLIOTTCABLE> joelteon ⑊ PTR AFAIK
<alexgordon> joelteon: can't type, can't gist
<joelteon> oh nice
<alexgordon> can't change lang
<joelteon> is there a js error?
<ELLIOTTCABLE> I want to make custom sufotware that extends common protocls with more fun stuff
<joelteon> huh
<alexgordon> joelteon: It just kind of... explodes
<joelteon> so I could make the PTR record for my server point to horsecocks.xxx
<ELLIOTTCABLE> HTTP/1.2 POOP /foo
<alexgordon> ELLIOTTCABLE: installed sea lion yet?
<joelteon> I'm STILL
<joelteon> WAITING
<joelteon> for my developer account
<ELLIOTTCABLE> `dig -t PROBABLYNAME ell.io`a
<joelteon> I am this upset
<ELLIOTTCABLE> joelteon ⑊ LOL
<joelteon> [============== ]
<ELLIOTTCABLE> <progress value=0.7/>
<micahjohnston> the periodic table of the elements would be cooler if it didn't shoehorn dom into the grid of atoms
<alexgordon> fuck it using pastie
<ELLIOTTCABLE> micahjohnston ⑊ agreed.
<whitequark> joelteon: it's based on ident
<micahjohnston> for instance you can make a table of hadrons
<ELLIOTTCABLE> also, look! a wild micah appears.
<alexgordon> you know it's bad when I'm using pastie
<whitequark> if you have root on your server you still can forge them
<alexgordon> HI MICAH
<micahjohnston> which is basically periodic
<alexgordon> guys guys
<ELLIOTTCABLE> holy shit *and* a whitequark
<ELLIOTTCABLE> how did this happen
<micahjohnston> and implies the existence of quarks
<joelteon> BULLSHIT
<ELLIOTTCABLE> and then elliott woke up
<whitequark> micahjohnston: white quarks do not exist
<micahjohnston> for not sending my messages
<micahjohnston> ugh irccloud
<micahjohnston> ELLIOTTCABLE: IB = International Baccalaureate
<micahjohnston> like AP but a big ol curriculum with a diploma
<micahjohnston> or, Interface Builder
<micahjohnston> but yeah it's the thing I did in high school
<ELLIOTTCABLE> $("#ELLIOTTCABLE").progressbar({value: 0.7})
<joelteon> bacterialaureate
<micahjohnston> I'll basically be almost a junior when I go to college
<ELLIOTTCABLE> uni credits <3
<micahjohnston> :D
<joelteon> hahaha
<joelteon> college
<micahjohnston> so I can use my 4 year scholarship to study things I am interested in instead of generals
<ELLIOTTCABLE> ♪ Time Of My Life, Glee Cast
<purr> ELLIOTTCABLE is listening to “(I've Had) The Time of My Life”, by Glee Cast
<ELLIOTTCABLE> micahjohnston ⑊ lucky D:
<ELLIOTTCABLE> For example, the pointer domain name corresponding to the IPv6 address 2001:db8::567:89ab is b.a.9.8.7.6.5.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa.
<ELLIOTTCABLE> SERIOUSLY.!?
<ELLIOTTCABLE> ಠ_ಠ
<joelteon> hahahahaha
<ELLIOTTCABLE> All that shit, and then they can't even put the “v” in ipv6 in the 2LD
<ELLIOTTCABLE> “We'd better save space, guisE!!! But let's put a period between EVERY nibble!!!”
<ELLIOTTCABLE> izs: Is there a word like onomatopoeia, but for words that describe their own spelling, like "awkward" "unwieldy" "sesquipedalian" or "bizarre"?
* ELLIOTTCABLE laughs
<micahjohnston> autonym
<micahjohnston> is not far off
<micahjohnston> although seems like it's not usually used as "self-describing word"
<micahjohnston> but in fact some other dumb things
<ELLIOTTCABLE> Okay, which specification describes *how* CSS maps to HTML elements?
duckinator has joined #elliottcable
<ELLIOTTCABLE> basically, getComputedStyle()
<ELLIOTTCABLE> what's a duckinator o_O
<alexgordon> micahjohnston: this is an old idea, but I've decided to put it in because FUCK IT http://pastie.org/8043133
<ELLIOTTCABLE> alexgordon ⑊ did you just pastebin ಠ_ಠ
<ELLIOTTCABLE> I'mma go to ##JavaScript, -pastebin, and copy-paste it back here.
<alexgordon> ELLIOTTCABLE: gist is broken on mavericks!
<alexgordon> I didn't know what else to use...
<ELLIOTTCABLE> jsbin, or a thousand others >:
<alexgordon> also broken
<ELLIOTTCABLE> poor mavericks
<ELLIOTTCABLE> why did you upgrade your *primary OS*?
<ELLIOTTCABLE> and how're *websites* “broken” on your new OS?
<alexgordon> ELLIOTTCABLE: I didn't
<alexgordon> new safari
<alexgordon> FINE I'LL USE CHROME
<ELLIOTTCABLE> FINE YOUR FACE
<ELLIOTTCABLE> I'm still confused why a staffmember is in my channel
<ELLIOTTCABLE> it's scary
<ELLIOTTCABLE> I feel like I'm about to get told we have to get out of Freenode
<alexgordon> ELLIOTTCABLE: NSA is watching
<ELLIOTTCABLE> “You. You guys. Your're a menace to our network. You don't talk about software enough; we've run statistics, and a solid 80% of your conversations are about genitals.”
<ELLIOTTCABLE> “Get out.”
<ELLIOTTCABLE> <insta k-line entire channel>
<alexgordon> micahjohnston: ELLIOTTCABLE: https://gist.github.com/anonymous/5783151
<ELLIOTTCABLE> In our last moments together, I'd just like to say …
<alexgordon> happy?
<ELLIOTTCABLE> I'm sorry.
<ELLIOTTCABLE> For everything.
<ELLIOTTCABLE> I love you guys.
* ELLIOTTCABLE holds breath
<ELLIOTTCABLE> HARD LINE WRAPPING GOD DAMNIT
<alexgordon> lol
<purr> lol
<ELLIOTTCABLE> also: I don't know Furrow's syntax well enough; explain the syntactic bits
<ELLIOTTCABLE> what's --->?
<ELLIOTTCABLE> and the @?
<alexgordon> comment
<alexgordon> -- is comment
<purr> Let it be known that alexgordon hates is comment.
<alexgordon> lol
<alexgordon> hahaha
<joelteon> hahaha
<ELLIOTTCABLE> back up here and tell me what the fuck furrow is
<ELLIOTTCABLE> and what it's for
<alexgordon> ELLIOTTCABLE: you don't... remember?
<ELLIOTTCABLE> I forget why you were making a Rut language. You explained it once, but I haven't got a memory worth shit.
<alexgordon> ELLIOTTCABLE: furrow is the bastard child of lua and haskell
<ELLIOTTCABLE> have you *made* it yet? I only remember seeing syntax examples
<ELLIOTTCABLE> it's so Rutty, it shoudln't take more than a couple days; even *you*, mister busypants, should be able to do so.
<alexgordon> I've made some of it!
<ELLIOTTCABLE> wait, weren't you going to write a Paws for a Retina?
<alexgordon> wait, did I say that?
<ELLIOTTCABLE> yep
<ELLIOTTCABLE> s/write a/participate in/
<alexgordon> I thought we came to the conclusion that I don't understand shit about paws
<alexgordon> several times
<ELLIOTTCABLE> yes, and that's easy to fix
<alexgordon> ELLIOTTCABLE: Furrow is Haskell but without all the bits micahjohnston likes
<ELLIOTTCABLE> put time aside and let's talk about it; I'll have this entire weekend free
<alexgordon> I *don't* have the entire weekend free
<alexgordon> but
<alexgordon> goddammit just write it up
<alexgordon> even if you don't write a spec, your time would be better spent writing up half of it
* ELLIOTTCABLE laughs
<alexgordon> if I understand half of something, then understanding the other half is much easier
<alexgordon> because then I can understand the principles behind it and the problems it's trying to solve
<ELLIOTTCABLE> if I have to write up *half* a writeup, just for you, that is likely to get thrown away, then why would I be offering you incentives? :D
<alexgordon> paws is like duke nukem
<alexgordon> ELLIOTTCABLE: not just for me... is nobody ever going to use this language?
<ELLIOTTCABLE> Oh shi— http://ell.io/iFUTY
<ELLIOTTCABLE> alexgordon ⑊ *this* would just be for you, because it'd be thrown away.
<alexgordon> I've been sitting in this channel for years trying to understand the damn thing
<alexgordon> I mean, it needs explaining
<ELLIOTTCABLE> As I said, I have no idea how much I'm going to have to throw/away change once we start designing distribution
alextgor_ has joined #elliottcable
<alexgordon> wait what
<alexgordon> ELLIOTTCABLE: the @ is like in coffee script (i.e. @foo is this.foo), but the "this" pointer is constant
<ELLIOTTCABLE> how do you mean, constant
<alexgordon> ELLIOTTCABLE: if you change @foo then it won't affect the caller's foo
<alexgordon> @foo
<ELLIOTTCABLE> still don't get it.
<ELLIOTTCABLE> you mean it's lexical?
<ELLIOTTCABLE> so @foo is copied to callees, but not by reference?
<alexgordon> yeah I guess, but the scope is shared between functions
<alexgordon> ELLIOTTCABLE: like environment variables. if you change an environment variables it only affects the subprocesses of that process
eligrey has joined #elliottcable
alexgordon has quit [Changing host]
alexgordon has joined #elliottcable
<ELLIOTTCABLE> I'm chilly.
eligrey has quit [Read error: Connection reset by peer]
<ELLIOTTCABLE> oh, constant, as in, shared across *everything*
<ELLIOTTCABLE> got it
eligrey has joined #elliottcable
<ELLIOTTCABLE> or at least, everything “south” in the callstack
<alexgordon> constant as in, not mutable lol
<purr> lol
<ELLIOTTCABLE> okay, alexgordon, new deal.
<ELLIOTTCABLE> You're practical and shit. *Help* me make a spec. Me, talking through the shit with you, will help specify it. I really have no idea what I'm doing in that department. )'=
* alexgordon commences mind meld
<ELLIOTTCABLE> what, you have time now?
<ELLIOTTCABLE> I'll be busy from approx. 1700 CST - 1850 CST
<alexgordon> not really
<ELLIOTTCABLE> but I'm free all evening other than that
* ELLIOTTCABLE shrugs
<purr> ¯\(º_o)/¯
<alexgordon> I don't know how to do the thing you want me to do
<ELLIOTTCABLE> talk to me? ;)
<alexgordon> that's what I've been doing for the past few years!
<ELLIOTTCABLE> micahjohnston and devyn might be able to contribute too.
<ELLIOTTCABLE> well, not really.
<ELLIOTTCABLE> You haven't listened/talked about Paws in at least a year and a half; and that entire period of time that Paws has been well-specified enough to implement has been in that year and a half.
<ELLIOTTCABLE> just syain'.
<alexgordon> ok
<alexgordon> well
<alexgordon> you can try explaining it to me
<alexgordon> we will make a little bundle of joy together
<alexgordon> and by that I mean a spec
<ELLIOTTCABLE> another Really Good Thing would be using you to get rid of some of the stupid words
<ELLIOTTCABLE> or at least giving me some idaes for “more normal” words
<purr> lol
<alexgordon> lol
<ELLIOTTCABLE> stages, pristine executions, bubbles, etcetcetcetc
<alexgordon> bubbles? LOL
<ELLIOTTCABLE> if it's gonna be specified, or if I'm *ever* gonna express it to *you*, I need better words
<ELLIOTTCABLE> yep time travel is wrapped in bubbles
<alexgordon> like game centre?
<ELLIOTTCABLE> exactly!
<ELLIOTTCABLE> that's how I always visualized them!
<alexgordon> lol
<ELLIOTTCABLE> 3D and primary colours.
<ELLIOTTCABLE> shiny.
<alexgordon> time travel
<ELLIOTTCABLE> ;)
<alexgordon> tardis
<ELLIOTTCABLE> if you name something in my language “tardis” nobody will *ever* take me seriously!
<alexgordon> droool
<alexgordon> that's almost $1 at 2009 rates
<ELLIOTTCABLE> I will happily send you a Macbook if you're truly interested in Paws again, by the way. Just because I love you.
<ELLIOTTCABLE> <3 Bitcoin
<purr> Let it be known that ELLIOTTCABLE hearts Bitcoin.
<ELLIOTTCABLE> you're doing an exchange, right?
<alexgordon> that would be overstating things
<ELLIOTTCABLE> promise you won't lose everything I send you by letting your stupid bot play with it?
<purr> lol
<alexgordon> lol... it's not stupid
<alexgordon> but sure
<ELLIOTTCABLE> a joke. lighten up.
<alexgordon> I already have enough bitcoins for it anyway
<ELLIOTTCABLE> 'k. addy.
<alexgordon> brb switching to a proper IRC client
<ELLIOTTCABLE> proper™
alexgordon has quit [Quit: Page closed]
<alextgor_> back
<joelteon> ELLIOTTCABLE: you can send me a macbook
<ELLIOTTCABLE> fuck off joelteon you don't even know how to paws
<joelteon> teach me
<joelteon> nah jk i only have 8 hours
* ELLIOTTCABLE nods
<ELLIOTTCABLE> happily
<ELLIOTTCABLE> but not for a macbook ;)
<ELLIOTTCABLE> There was a Paws competition last year, you missed out.
<ELLIOTTCABLE> also, I'm pretty sure I owe Micah a payout somehow for that.
<ELLIOTTCABLE> Alex Tgor
<ELLIOTTCABLE> Alex Teegor
<ELLIOTTCABLE> sounds like a troll
<joelteon> oh
<joelteon> well
<joelteon> I can afford a macbook
<joelteon> but I'm saving up for a car
<alextgor_> ELLIOTTCABLE: it's micah's birthday soon
<alextgor_> 27th
* ELLIOTTCABLE nods
<alextgor_> why can't I change my nick
<ELLIOTTCABLE> lol joelteon
<purr> lol
alextgor_ is now known as alexgordonfreema
alexgordonfreema is now known as alexgordon
<alexgordon> there
<joelteon> it's hard to relate to us poor plebs isn't it
<ELLIOTTCABLE> “Write a Paws, get a Tesla!™”
<alexgordon> LOL
<alexgordon> ok lemme restart into 10.9
<alexgordon> erm
<alexgordon> 10.8
<joelteon> heheh
<joelteon> I want 10.9
<joelteon> why isn't it mac os 11?
<joelteon> they changed the naming convention and everything
<alexgordon> lol it's just a number!
<joelteon> heh
<joelteon> oh well
<joelteon> i just wish my goddamn developer account would go through
<ELLIOTTCABLE> Mac OS X 1942!
<ELLIOTTCABLE> Just a number <3
<joelteon> fucking christ
<alexgordon> Mac OS X 2142
<joelteon> Battlefield 2142
<joelteon> you know what was good? Star Wars Battlefront 2
<joelteon> that fucking game
<alexgordon> ELLIOTTCABLE: so mind meld with me
<joelteon> i used to play as darth maul on coruscant in capture the flag
<alexgordon> doesn't sound creepy AT ALL
<joelteon> i would kill like 700 people
* alexgordon looks back at his old paws code
<joelteon> press the paws button
<ELLIOTTCABLE> alexgordon ⑊ gimmie ... fifteen minutes to wrap up here
<joelteon> anyone remember that webcomic where that kid can't get past the part in the video game
<joelteon> and his friend is like
<ELLIOTTCABLE> alexgordon ⑊ also, gimmie bitcoin addy
<joelteon> "dude, you have to turn into a dog to pass this part"
<joelteon> and he was like "why didn't i think of that"
<joelteon> "hang on let me press the 'paws' button"
<purr> LOL
<alexgordon> ELLIOTTCABLE: wait you're going to give me bitcoins *now*. This seems extremely irrational LOL
<joelteon> LOL
<alexgordon> give money to someone to do a job that even they aren't sure they can do
<ELLIOTTCABLE> I'm not giving you money for a job o_O
<alexgordon> then what
<ELLIOTTCABLE> waitwhat
<ELLIOTTCABLE> did I miss something here
<alexgordon> presumably
<alexgordon> you're giving me money to do something
<alexgordon> I mean, you're not just giving me money randomly
<alexgordon> that would be even more irrational
<ELLIOTTCABLE> I'm giving you, theoretically, a computer. Theoretically, because you're smart, and it'll garner a few months of your attention and contribution to my project; additionally, because your mindset is one I have yet to find elsewhere.
<ELLIOTTCABLE> I thought the “WRITE ME A PAWS AND I'LL GIVE YOU A COMPUTER” was obviously a joke.
<ELLIOTTCABLE> You can't even write a Paws!
<ELLIOTTCABLE> hold on, anyway, either way, brb
<joelteon> write me a computer and I'll give you paws
eligrey has quit [Read error: Connection reset by peer]
<alexgordon> ELLIOTTCABLE: I'd thought you would only give me anything once I proved I actually had something to give in return...
<alexgordon> you seem to have more confidence in me than I do
eligrey has joined #elliottcable
<ELLIOTTCABLE> joelteon ⑊ Inkheart?
<joelteon> ?
<joelteon> ok, I gotta say, there's a crazy amount of cognitive load when writing cocoa apps
<alexgordon> joelteon: THANK YOU
<joelteon> cause the standard library is so big AND its discoverability is so terrible
<joelteon> and it's verbose
<joelteon> meh
<alexgordon> <joelteon> it's so big
<joelteon> like how subclasses don't list parent instance methods in the docs
<ELLIOTTCABLE> truth truth truth truth
<joelteon> I went to #macdev and asked "how the fuck do I figure out whether my nsbuttoncell is highlighted"
<alexgordon> ELLIOTTCABLE: why don't we talk about paws for a bit, and then you can decide if you want to give me a computer...
<joelteon> and whatever his name is says "try isHighlighted?"
<joelteon> which wasn't in the NSButtonCell docs
<joelteon> because it's on NSCell or something
<joelteon> fucking hell man
<joelteon> now I feel stupid AND irritated
<ELLIOTTCABLE> hi!
<alexgordon> hi!
<joelteon> hello
<joelteon> upgrading things is hard
<ELLIOTTCABLE> lol alexgordon 'k, whatever yew say
<purr> lol
<alexgordon> reading my old paws "implementation"
<ELLIOTTCABLE> it's probably hopelessly unrelated
<ELLIOTTCABLE> a bunch of shit was unspecified/unstable at that point >:
<ELLIOTTCABLE> the types/data/whatever is probably accurate though, that shit hasn't changed much
<ELLIOTTCABLE> data is lists of references to *other* pieces of data
<ELLIOTTCABLE> (a, b, c) <Not Real Syntax>
<ELLIOTTCABLE> where each reference includes some metadata about the overall intended structure / intended use of that data
<ELLIOTTCABLE> (a:responsible, b:responsible, c:irresponsible) <NRS>
<ELLIOTTCABLE> that hasn't changed in years
<ELLIOTTCABLE> and is simple
<ELLIOTTCABLE> so your old impl probably has that, I hope]
<joelteon> oh shit
<joelteon> I need to get my dad something for father's day
<ELLIOTTCABLE> joelteon ⑊ you should pay attention too.
<ellio> Hi. I'll be talking here. 'cause my lag is terrible from this condo.
<joelteon> to what
<alexgordon> ELLIOTTCABLE: dunno if I got that far. I only spent like 1.5 days on it
<ellio> joelteon: I'm walking alexgordon through “an implementer's understanding of Paws.”
<ellio> alexgordon: do you think you could reasonably understand my µpaws.js implementation? if not, I'll leave it out of this.
<joelteon> data is lists of references to data
<joelteon> it's datas all the way down
<ellio> but if so, I can link to the *implementation* of specific things I'm explaining.
<ellio> yes, I know the code is batshit.
<alexgordon> ellio: nope!
<alexgordon> ellio: link?
<joelteon> man i can't follow that
<alexgordon> that is quite batshit
<alexgordon> I'll keep it for reference
<whitequark> dunno what your problems are, guys
<joelteon> i have no idea what's going on in language implementations at the best of times
<joelteon> i NEED examples
<whitequark> the code is a little bit unusual, otherwise it's regular js
<joelteon> i need to know how the language already works
<ellio> thanks, whitequark
<ellio> joelteon: that's fine
<ellio> we're about to be *discussing* that
<ellio> I was only asking whether it'd be *more* confusing, or *less* confusing, if I linked working code.
<joelteon> your mom
<ellio> (given that said working code is in elliottcable-speak.)
<alexgordon> ellio is actually russian?
<ellio> D:
<ellio> shit, if you start wondering where I'm actually from, you might eventually discover that my textual messages are an exact match for the statistical pattern of satoshi's
<ellio> lol I wonder if analyzing the corpus of my prose would tell you whether I was one person or not.
<purr> lol
<ellio> thanks, purr
<joelteon> yep
<ellio> 'k.
<ellio> moving on, *with* code examples.
<ellio> basic stuff: data-types.
<ellio> as I said, everything's a list of references. These are called “things.”
<ellio> will probably spec' them as “object” or something. Ugh, generic names.
<ellio> They're *designed* to be implemented as a reverse-linked-list; but they don't have to be. The impl I linked just uses ES's Array.
<ellio> Each link augments the thing it's referring *to*, with the “responsibility” of that link:
ELLIOTTCABLE has quit [Remote host closed the connection]
ELLIOTTCABLE has joined #elliottcable
<ellio> It's a boolean value describing, and this is important, “Whether the referred-to object is a part of *my* datastructure.”
<ellio> The general example given being a Person object:
<ellio> ( ('Elliott', 'Cable'), 24, ('Chicago', 'Illinois') )
<alexgordon> <+ellio> Ugh, generic names.
<alexgordon> this is your entire problem
<ellio> that's ( <relation A>, <relation B>, <relation C> )
<ellio> B would, in this case, responsible:false … our Person data-structure is not responsible for the content of, or structure of, the Number 24, however that may be implemented. We're simply referencing it.
<ellio> A, however, would be responsible:true … as this “name” data is a part of our *own* data-structure.
<ellio> C, finally, we'll suppose for this example, would be responsible:false again; as the City is independent of us … just like the Number, we're only *referencing* it. We're saying our Elliott is in Chicago; but modifying Elliott is never going to modify the fact that Chicago is in Illinois, or any other fact about it.
<ellio> All make sense? Really simple, so I hope so.
<alexgordon> reading
<ellio> (All of this shit is so important *because* Paws is basically a high-level VM for asynchronicity and parallelism; and this ties into our model of safe-concurrency, which will be explained later.)
<ellio> (Hence all of this detail on one little boolean attribute of our Object type.)
<ellio> So.
<ellio> Things have “metadata.” https://github.com/ELLIOTTCABLE/upaws.js/blob/74010cf/µpaws.js#L29
<ellio> That is, an array of references to other things, https://github.com/ELLIOTTCABLE/upaws.js/blob/74010cf/µpaws.js#L90-L91
<ellio> which annotate with a boolean called “responsibility.” https://github.com/ELLIOTTCABLE/upaws.js/blob/74010cf/µpaws.js#L92
<ellio> moving on?
<alexgordon> setting up logging
<alexgordon> I know you have logs
<whitequark> this... reeks of unfortunate complexity
<purr> lol
<alexgordon> lol whitequark welcome to paws
<alexgordon> ellio: so each list, stores a bit for each element which says whether we own it or not
* alexgordon attempts to rewrite in normal words
<ellio> alexgordon: careful with that word “own.” At least at the moment, barring you telling me of a better word for it later, that means something else. Something very specific.
<whitequark> alexgordon: duh, complexity + parallelism = disaster
<whitequark> not to say I'm not interested
<ellio> whitequark: I'd love to hear more about why you think so.
<ellio> Seems pretty straight-forward so far.
<ellio> If you think *this* is too complex for parallelism, then the entirety of Paws is doomed.
<ellio> … which is entirely possible. But, not the topic of discussion right now.
<whitequark> ellio: gut feeling. maybe wrong.
<whitequark> I'd rather see the entire picture
* ellio nods
<whitequark> before making conclusions
<ellio> alexgordon: Here, I'm going to try to spec *as we do this*.
<ellio> best collab-editing tool, anybody?
<ellio> lol let's step back to the old days and pop one of the shitty Wave duplicates
<purr> lol
<whitequark> ellio: etherpad
yorick has joined #elliottcable
<ellio> etherpad is terrible ;_;
<whitequark> or that thing with g in name
<whitequark> gobby!
<ellio> egods
<alexgordon> ellio: google docs
<alexgordon> is the best
<ellio> hate rich-text editors ;_;
<alexgordon> yeah but
<ellio> also, slow, etcetcetc
<ellio> opening it now
<alexgordon> it doesn't go offline all the time
<ellio> whatever works, don't really care
<yorick> etherpad lite is much better
<alexgordon> yorick: really buggy
<yorick> google baught etherpad for docs
<yorick> bought*
<yorick> alexgordon: no its not
<ellio> ugh hold on figuring out Google Docs ಠ_ಠ
<alexgordon> ellio: it's easy. create document, click share, click change, click everyone can edit
<ellio> okay.
<ellio> e-mail addys
<alexgordon> ellio: alextgordon@gmail.com
<ellio> whitequark, joelteon?
<joelteon> me@joelt.io
<ellio> I've no idea how to write a spec.
<joelteon> just use RFC language
<ellio> glancing at the ES5 and CSSOM specs right now
<ellio> simply because I have them in tabs
<alexgordon> ellio: you don't need to write a spec spec
<alexgordon> the aim is to explain, and make things concrete
<alexgordon> just something that describes how it works
<whitequark> poop ?
<whitequark> sigh
<ellio> blame joel.
<ellio> ಠ_ಠ
<alexgordon> hold on trying to work out how to get this
<alexgordon> ellio: why can't you make it public to everybody
<ellio> you already have it?
<ellio> just click the link …
<alexgordon> yeah but I don't know my gmail password
<ellio> oh lol
<purr> lol
<ellio> it's already public o_O
<alexgordon> ellio: but not to edit it
<ellio> blah blah blah anyone with the link no sign-in required
<ellio> oh, that's intentional
<ellio> I'm going to try to write this; you can tell me what's unclear or stupid in here
<ellio> I *did* give you and joelteon edit privs, but I wasn't expecting much “+= poop” in there
<alexgordon> oh ok
<alexgordon> if it's just to view it then I'm good
<alexgordon> ellio: remember: simplest thing that could possibly work. just worry about conveying the information, doesn't matter how it's presented
<ellio> ugh
<ellio> you're right
<ellio> but idk specs
<ellio> making it look like a spec, makes me feel like I'm writing a spec, makes me *able* to write a spec?
<ellio> something like that?
<ellio> wow, as rich-text editors go, this is pretty easy
cloudhea1 has quit [Ping timeout: 245 seconds]
<ellio> alexgordon: pointers. plz.
<ellio> this is all for you. So tell me what sort of information you want conveyed.
<purr> LOL
<alexgordon> ellio: well you keep introducing new words LOL
<alexgordon> relation? to?
<ellio> 'k
<ellio> definitions section!
<whitequark> ellio: operating semantics of the language based, at least on some level, at existing terminology
<whitequark> that's all;)
<ellio> whitequark: lol
<ellio> whitequark: Done.
<ellio> anybody got an existing-term for “relation?”
<ellio> FUCKING VIM
<ellio> has mis-trained me.
<ellio> easier?
<ellio> Object, contains a set of Relations to other objects.
<ellio> each edge along that graph is tainted with responsibility
<ellio> can I move on now, alexgordon?
<ellio> anything in there you don't understand? or did I say something earlier that isn't sufficiently documented in there?
<alexgordon> ellio: I think I get it, seems a weird way of putting it though
<ellio> oh?
<alexgordon> why not say an object is a tuple of isResponsible and other objects
<alexgordon> or a list of those tuples
<ellio> yes, that's accurate as well
<ellio> Relation == tuple of object, responsibility
<alexgordon> data Object = Name | [(Bool, Object)]
<alexgordon> something like that
<ellio> well, Relations are used elsewhere in the design *outside* of objects themselves
<alexgordon> lol totally fucked that up
<purr> lol
<ellio> it'd be important to be able to refer to them by name
<ellio> hence, spec'ing them separately? or is that a mistake?
<alexgordon> I don't know because I can't see the big picture
<ellio> kk
<ellio> hold on, typing out what I'd just told you above, in here.
* ellio breathes
<ellio> SO SLOW
<ellio> okay.
<ellio> alexgordon: how'm I doing here?
<ellio> feedback bro.
<ellio> this shit's new to me.
<alexgordon> I dunno, keep going :P
<ellio> 'kkkkkk
<ellio> moving the fuck on
* ellio breathes
<ellio> alexgordon: I was previously calling the list-y content “metadata”, and the specific contents of each type “content”
<ellio> any naming suggestions to be more normal? I can't shadow “content” within the specific types
<alexgordon> errr
<ellio> this is a problem I run into a lot. Two things that have very different meanings/semantics, but which would traditionally be called by the same name. I've been just coming up with new names for each out of a dictionary, and then never using the original/conflicted name at all.
<alexgordon> lol and this is how the confusion starts
<purr> lol
<ellio> hence trying to avoid it this time
<alexgordon> ellio: I'm still confused
<alexgordon> what's metadata and what's content?
<ellio> the same thing.
<ellio> I re-named it to content.
<ellio> in the spirit of trying to alexgordonify Paws.
<alexgordon> lol
<alexgordon> what is the relationship between content and lists?
<ellio> the content *is* a list.
<ellio> data Object = [ (responsibility:Bool, to:Object) ]
<ellio> to try and ape your syntax above
<ellio> assuming […] is a list
<ellio> and () a tuple
<alexgordon> right
<alexgordon> so
<alexgordon> it's al ist
<alexgordon> a list
<alexgordon> why not just call it a list?
<ellio> well, it'd be odd to say that “String inherits from List”
<ellio> so, at the moment, calling our core type an “Object” makes a lot of sense to me
<whitequark> that actually makes sense?
<whitequark> oh in that way
<whitequark> yes
<ellio> so, String inherits from object
<ellio> etcetcetc
<ellio> IMO, saying “our Objects are all lists”
<ellio> is a lot more understandable than saying “our Labels are Lists, too”
<alexgordon> ellio: sure
<ellio> when we already have List type
<ellio> agreed/disagreed?
<whitequark> ellio: does it describe representation?
<ellio> whitequark: hm?
<alexgordon> ellio: it's like in python, where objects are arbitrary maps
<whitequark> a list is a certain thing wrt/ representation
<whitequark> search is O(n)
<ellio> basically, there's the Lua way of calling your core-type Tables/Lists/Whatever,
<whitequark> etc
<ellio> no, representation is not implied.
<ellio> in Paws.js, they're Array; in Paws.c, they're reverse-ordered dually-linked-lists
<alexgordon> whitequark: meet PHP :P
<ellio> alexgordon: hm?
<ellio> similarly, Label is not *specified* with any performance constraints or implications … it's *designed* to be DAWG/trie-y
<alexgordon> in PHP search on an array is sublinear
<whitequark> what
<alexgordon> foo = array("a" => "b"); foo["a"]
<alexgordon> or something
<whitequark> fuck php
<alexgordon> but it's still like.. an array
<ellio> don't care about PHP.
<alexgordon> :D
<ellio> moving on.
<whitequark> just fuck
<ellio> same pattern:
<ellio> describe in IRC, and then try to get you guys to vet my attempt to re-word that explanation into a proto-spec.
<ellio> yes? yes.
<ellio> so, there's types other than Thing.
<ellio> er, Object*.
<ellio> all of them have metadata, all of them “inherit from Object” I suppose you could say.
<alexgordon> right
<ellio> sorry, content*
<ellio> god damnit
<ellio> one simple example is Label.
<alexgordon> metadata works for strings
<ellio> Label == immutable, global “string.”
<ellio> or, if you prefer, “symbol.”
<alexgordon> if you talk about the "content" of a string, you think the characters
<ellio> yeah, that's the problem with “content” as a name
<ellio> got a better idea than “metadata”?
<ellio> “others?” “foreign?” “friends?” “relations?”
<ellio> “members?”
<alexgordon> fields?
<ellio> members. very unambiguous. good enough for now.
<ellio> nah, that implies names.
<alexgordon> yeah members works then
<ellio> 'k
<ellio> members for object, and content for string/etc
<ellio> good good good
<ellio> 'k
<ellio> Label.
<ellio> Labels are Ruby's Symbols, basically.
<alexgordon> symbol is better if it's exactly the same as ruby symbols
<alexgordon> :P
<ellio> Created at *compile-time*, not during run-time processes.
<ellio> so to speak.
<ellio> they're not exactly the same.
<ellio> however, we *use* them as our “string”, as well.
<ellio> one key method of symbols is “explode”; this results in a list (Object) of one-character symbols; thus, allowing you to manipulate the content of a Symbol.
<ellio> at no point / in no way, can that be converted back into a single Symbol (obviously, as they can't nominally be created at runtime.)
<ellio> clear-ish?
<alexgordon> oh like java
<ellio> I don't know Java well enough to answer.
<alexgordon> in java strings are interned, and (iirc) you can get a new string from an old string by the range
<alexgordon> substrings of interned strings
<alexgordon> actually, like C too
<ellio> Labels are intended to be trie-style datastructure, and are intended to be replaced with pointer-representations or something like that
<alexgordon> wait no
<ellio> passed around and compared by pointers.
<alexgordon> not like C because in C the strings are null terminated
<ellio> nah, not like C
<ellio> in C, you can have two strings with the same content, but different locations in memory. Not so, in Paws.
<ellio> actually, devyn had some arguments against that
<ellio> but for this spec we're writing, I'm gonna go with that.
<alexgordon> lol
<alexgordon> but you can't create them at runtime
<purr> lol
<ellio> yep
<ellio> so, they're static identifiers that can be whatever damn format you please
<ellio> but you *do* have to *store* the string-ish representations of them
<alexgordon> so they are definitely like symbols and not like strings
<ellio> because they need to be explodable, and debuggable.
<ellio> yepyep
<alexgordon> because you can't, say, get one from reading a file
<ellio> (side-note: there's going to be a String type, as well. But that's not part of the core specification.)
<ellio> 'k
<ellio> hm
<ellio> so I guess the spec interface should have some sort of ‘identifier’ member?
<ellio> which in a real implementation would just be the pointer into the trie?
<whitequark> nonononono
<whitequark> don't discuss such details
<whitequark> yet
<ellio> the details have already been discussed, just trying to figure out how to serialize them :x
<whitequark> ellio: don't
<whitequark> remember what I said?
<whitequark> operational semantics
<ellio> I don't understand operational semantics.
<whitequark> the term?
<ellio> No formal training here, bud. I don't know what that means, except at a high passer-by level.
<whitequark> ok
<whitequark> basically that means: "what you can detect from inside of the language"
<whitequark> imagine you only have a terminal to something remote, and it only has a Paws REPL
<ellio> yes, I get that
<ellio> that's how I've always defined it
<ellio> but people get confused when I do that >:
<ellio> hence, trying to do it in a more traditional form now
<alexgordon> LOL
<purr> LOL
<whitequark> fuck traditional form
<whitequark> this makes the most sense
* ellio laughs
<ellio> whitequark: okay, I'll “teach you Paws” a bit later.
<ellio> right now, I need to write alexgordon-compatible specs
<whitequark> (actually. I'm abusing the term slightly. but it's fine here imo)
<alexgordon> ellio: when you say an object is a *Set* of members, do you mean that?
<alexgordon> i.e. the members aren't ordered
<ellio> ick, it's ordered
<ellio> what's the name for a single-type, ordered, resizable list?
<alexgordon> List
<alexgordon> :P
<whitequark> Array
<alexgordon> Deque!
<ellio> lolk
<purr> lolk
<whitequark> nope
<vil> -clouds
<purr> vil: is stuck up in the clouds; hilight 'em if you want 'em.
<whitequark> deque[5] # imposibry
<alexgordon> whitequark: didn't say random-access
* alexgordon lawyers whitequark
<ellio> ermagerd
<vil> joelteon: Apple's docs really need to at least list inherited methods, yeah. it can be obnoxious.
<joelteon> fuq it
<vil> paws! reading all of the things
<ellio> vil: google-account address plz
<vil> ellio: vilhalmer. already watching you type
<ellio> vil: added vilhalmer@gmail.com, reload
<vil> ellio: done
<ellio> anyway
<ellio> vil: read the logs, the spec-doc is a compression thereof, or tries to be
<ellio> vil: commentary welcome
<vil> ellio: righty-o!
<ellio> MOVIN' RIGHT ALONG
<ellio> anything unclear about Labels?
<ellio> suggestions? questions?
<alexgordon> nope
<ellio> 'k
<ellio> the third and final “type” is executions
<ellio> but I'm gonna side-track into Scripts and the cPaws serialization for a moment
<whitequark> -_-
<purr> whitequark: ಠ_ಠ is an IRC client/IRC client framework.
* ellio pats purr
* purr rrr
<ellio> whitequark: if this is all bugging you, you can safely ignore it. I'll come back and give you an operational semantics later tonight when alexgordon gets bored, or tomorrow, perhaps
<ellio> shouldn't be difficult, Paws isn't complex
<ellio> -factoid _-
<purr> ellio: Alias: -_-
<ellio> -forget _-
<purr> ellio: Forgot '_-'.
<whitequark> if it isn't complex then why the fuck there are no implementations yet
<ellio> there is one?
<ellio> there's, actually, like four others that are “nearly” functioning
<ellio> it's all free-time shit, yo
<alexgordon> whitequark haven't got to staging yet
<ellio> and the only person devoting a *large quantity* of his free-time to it, myself, is more interested in advancing the design than writing specs like this
<ellio> except, I'm getting tired of people saying it's complex/confusing/magical when it's not, and deciding that I *want* alexgordon's input
<ellio> and he, specifically, wants a specification of this sort, so I'm trying to make one for the current stratum of design
<alexgordon> I have a new job as an idiot!
<ellio> @idiot
<ellio> favourite twat
<ellio> anyway.
<alexgordon> ellio: btw
<ellio> ready to move on?
<alexgordon> what happened to the noughties? (naughties?)
<ellio> still there.
<ellio> just not worth discussing at the point we are.
<ellio> nothing in the *design* of the data types requires/cares-about them
<ellio> they're only related to how some of the libside features *interact* with these data-types.
<ellio> I figured it'd be best to leave out AS MUCH as I can, while specifying/implementing this for you
<ellio> or at least, defer it until it's absolutely necessary.
<ellio> fair?
<alexgordon> right
<ellio> 'k.
<ellio> Scripts.
<alexgordon> just wondering if you'd replaced them or not
<ellio> A Script is basically our “AST”, except it's neither abstract, nor does it have anything to do with syntax.
<ellio> So, it's more like a “Concrete Semantics Tree.”
<alexgordon> lol
<purr> lol
<ellio> but that sounds fucking stupid, so I'm calling it a Script.
<ellio> pretty straight-forward.
<ellio> Scripts are the “code” that a Paws implementation/reactor/stage/whatever will run-through procedurally.
<ellio> specifically, they're a tree of “expressions”, which consist of sequential *objects*.
<ellio> (at one point, we were calling it an “object-studded AST.”)
<ellio> so, → gdoc
<ellio> er
<ellio> what the fuck is the term for a thing that can be *either* one thing, or another?
<ellio> (A|B) I guess
<alexgordon> union
<alexgordon> sum types if you want to be posh about it
<ellio> that look accurate?
<alexgordon> I think?
<alexgordon> lol
<purr> lol
<alexgordon> an expression is a list of words, each word can be either another expression or an object
<ellio> yepyep
<ellio> which boils down to:
<ellio> an expression is a tree of objects.
<ellio> right?
<alexgordon> yah
<ellio> so, if we assume that "Foo" is a representation of a Label, for the sake of argument … we can write out an Expression consisting only of objects something like this:
<ellio> "foo" "bar" "baz"
<ellio> then, if we assume that parens are an expression,
<ellio> ("foo" ("bar" "baz") "whorl")
<ellio> rightright?
<joelteon> right right
eligrey has quit [Quit: Leaving]
<ellio> and a Script is just a tree of objects (via those expressions) wrapped up in a package to carry around.
<ellio> thus, a whole “AST.”
<ellio> important point here, I suppose I should point out:
<ellio> eh, nah.
<ellio> okay.
<vil> ellio: gotta go for a bit, will be back later and continue reading
<purr> vil: is no longer stuck up in the clouds.
<vil> -ground
<ellio> vil: aw
eligrey has joined #elliottcable
<vil> ellio: I know :/
<ellio> joelteon, alexgordon, both caught up and clear on all of this?
<vil> ellio: it's a worthy cause though, getting a new soldering iron!
<ellio> oooo toys
<joelteon> yeah totally
eligrey has quit [Read error: Connection reset by peer]
<ellio> alexgordon: I know you've written dozens of EBNFs in your life. Why don't you write this part for me? It'll be faster.
* ellio sighs
<ellio> lost 'im.
<ellio> thiiiiinkin' about ordering some food.
eligrey has joined #elliottcable
<ellio> hi? >:
<whitequark> grrrrrrrrrr
<ellio> hi whitequark
<whitequark> ellio: hi
<whitequark> i want to strangle someone
<whitequark> fucking rollbar.com hung up
<whitequark> fucking python
<whitequark> sorry, got that sentence wrong
<whitequark> I fucking want to strangle someone.
<ellio> wat
<whitequark> ellio: error reporting app gives me ECONNREFUSED while I want to fix errors
<whitequark> consequently, I'm angry
<ellio> lol!
<purr> lol
* ellio breathes
<ellio> well then, since alex seems to have died
<ellio> whitequark: how'd yew liek to learn u a pawz?
<whitequark> ellio: let's
<whitequark> my attention is being slightly fucked with for next half a hour but I'll read
<whitequark> then I'm free as america
<whitequark> er
<whitequark> nevermind
<whitequark> free as beer? better
* ellio nods
<ellio> I'm going to hack together a quick cPaws EBNF I suppose
<ellio> I suck at this shit but it'll make alexgordon happy
<whitequark> how is grammar related to implementation language?
<ellio> it's describing how things are described
<whitequark> I assume cPaws is talking about C
<ellio> not at all
<ellio> cPaws = canonical Paws
<ellio> it's a serialization format for Scripts (one of many)
<whitequark> ah
<whitequark> yeah ebnf is cool
<ellio> Paws is *built* in such a way that it may eventually have graphical IDEs or something more exotic but similar in purpose
<ellio> it's definitely not universally serializable into text.
<whitequark> ok
<whitequark> if that doesn't mean "there is no text-only workflow", that is
* ellio laughs
<ellio> there is. and we'll get there eventually.
<ellio> basically, parsers are supposed to be decoupled from implementation
<ellio> and implementations are supposed to talk to eachother either (at-runtime) via federation, or (not at-runtime) via “frozen Units”
<ellio> which are basically an intermediate form.
<ellio> binary Scripts.
<ellio> like, uh, jars maybe? not too familiar with Java
<whitequark> oh wow
<whitequark> I had this idea
<whitequark> ok, I'm now about 50% more interested in Paws
<ellio> but yes, *programming* generally happens in text
<ellio> but the *style* of text it happens in is undefined
<ellio> the decoupled parser is actually *far* more complex than the evalulator
<ellio> by design
<ellio> mine is called the P₃, and it's in a general class of tools I call “IPPs” or “interpretive preprocessors.”
<ellio> but. more on that shit later.
<ellio> I want to get the boring crap like data-types out of the way, so we can get to interesting shit like time-travel and concurrency and distribution
<ellio> finish your shit, I'll give you the half-hour
<ellio> I'll be writing EBNF. badly.
<whitequark> is EBNF ever that complex?
* ellio shrugs
<purr> ¯\(º_o)/¯
<ellio> can't know 'till yew try
<alexgordon> back
<alexgordon> ellio
<alexgordon> had to nom
<ellio> me too
<ellio> nommin' mah ass off
alexgordon is now known as drparse
<drparse> ellio: you called?
* ellio grins
<ellio> I'm already ebnf'ing
<ellio> since you were afkayz
<ellio> what is WITH ME today
<ellio> I'm goin' all onomotopoetic.
<ellio> I want this book!
<ellio> er
<whitequark> that even looks impenetrable
<whitequark> though, interesting
<whitequark> hahahaha
<whitequark> I just received a permission to resolve some of the bugs
<whitequark> in my personal technique of "NO FEATURE, NO BUGS IN THE FEATURE"
<whitequark> BURN YOU FUCKER
* whitequark emits an evil laugh
<drparse> ellio: lol books on parsing never helped me :P
<purr> lol
<drparse> ellio: also, lib gen
dskuza has quit [Ping timeout: 260 seconds]
<whitequark> drparse: who the fuck you are
<ellio> whitequark: drparse is alexgordon's nickname when he's doing anything syntax/language-related
<ellio> or arguing about those topics.
<ellio> it's an old joke.
<ellio> whitequark: removing code == best feel?
<whitequark> ellio: YES
<whitequark> I already rewrote the app almost entirely
<whitequark> it was such a boatload of shit
<ellio> lolololol
<ellio> what is this for?
<whitequark> written by a methhead
<whitequark> literally
<drparse> sephr?
<whitequark> ummmm I won't tell the URL in THIS context
<ellio> ♪ Do My Dance, Tyga
<purr> ellio is listening to “Do My Dance (feat. 2 Chainz)”, by Tyga
<whitequark> but it's like a CMS
<whitequark> generally
<whitequark> with templates a la shopify
<ellio> hmmmm
<ellio> is it possible to do nested string-literals in a *context-free* grammar?
<ellio> that is, something like
<ellio> “foo\”bar”
<ellio> just out of curiosity, I long ago nix'd string-escapes
<whitequark> string literals in CFGs are generally recognized by a lexer
<whitequark> short answer: yes
<ellio> not what I mean, I think
<ellio> er
<ellio> to *parse* something like that
<whitequark> long answer: even if you have a grammar which operates on the raw data
<whitequark> still yes
<whitequark> like PEGs
<ellio> how do you express *emptyness* in an EBNF?
<drparse> .
<whitequark> ellio: or: you don't
<ellio> .
<ellio> drparse: take a look at the doc. this look valid so far?
<drparse> not what I meant by . but heh it'll do
<drparse> :P
<drparse> ellio: in BNF, rules end with a dot
<drparse> so a rule that is just a dot, is empty
<ellio> doing ebnf
<ellio> didn't see any dots in python's
<drparse> dunno EBNF, thought it was just a superset
<ellio> nah
<ellio> EBNF isn't even specified, ironically
<ellio> just a collection of various styles that popular shit uses
<drparse> oh well, imagine it stands for elliott bnf
<ellio> includes some regex shit, some ease-of-use shit (getting rid of <this> bullshit, exchanging ::= for a plain =)
<ellio> lol!
<purr> lol
<drparse> oh man these biscuits are so nice
<ellio> trying to figure out how to express whitespace parsing rules in this shit
<ellio> tips?
<ellio> going with psuedo-regex. ಠ_ಠ
<drparse> this is dizzying
<drparse> ellio: what is <s>
<ellio> gettin' there
<ellio> whitespace
<drparse> oh strange
<ellio> strange?
<ellio> what's normal?
<ellio> I'm *trying* to make this all completely normal. or as much so as I possibly can. So tell me how to reformat.
<drparse> not used to seeing grammars that include lexical syntax
<drparse> normally it's just tokens
<drparse> and whitespace has already been ignored
<ellio> well, it's a spec
<drparse> lol yeah
<ellio> so I've gotta *totally* specify what constitutes a valid program
<purr> lol
<ellio> right? kinda? maybe?
<drparse> can't you just say that whitespace is ignored except in strings?
<ellio> but what's that *mean*?
<drparse> I don't know
<ellio> I could spend three paragraphs describing how to handle whitespace in cPaws, which is silly, because cPaws isn't even *important*
<ellio> or just specify it clearly in the grammar. right?
<ellio> by the way, I don't expect you to have answers for *everything*.
<ellio> Me asking “right?” is basically saying “if you happen to have any disagreements or objections, I'm happy to hear them.”
<drparse> ellio: it's difficult because of your nesting string literals
<ellio> nah, those are gone
<drparse> but I would be tempted to separate it into normal and lexical syntaxes...
<drparse> orly
<ellio> since we already decided that cPaws is *non-universal*, we can just say “that shit can't be written in cPaws” without affecting Paws itself.
<prophile> hey elliott
<drparse> well then, just get rid of the <s> stuff
<prophile> have you ever come across parsing expression grammars?
<prophile> they might be to your liking
<ellio> so, for instance, there's literally no way to encode a label containing *all* of: a closing ”, a closing ’, a double-quote ", and a single-quote '
* drparse nudges whitequark
<ellio> prophile: never heard of
<drparse> ellio: PEGs
<ellio> explain another time.
<ellio> don't care right now, nearly done here, and want to move on with alex and whitequark
<ellio> also: HI PROPHILE HOW'S LIFE
<prophile> well remind me to explain them to you some time
<drparse> ellio: like a poor man's recursive descent parser
<prophile> IT'S GOOD ELLIOTT HOW ARE YOU
<drparse> for people who are too lazy to write their own
<prophile> I HAD TO BAN GABRIELLE AGAIN BY THE WAY
<prophile> A COUPLE OF DAYS AGO
<drparse> ellio: what is { } in ebnf?
<drparse> I could just google it
<ellio> testing
<drparse> oh optional
<ellio> there we go
<ellio> repeating*
<ellio> optional is [foo]
<prophile> {x} is equivalent to x*
<ellio> [foo] => (foo)?
<ellio> { foo } => (foo)*
<ellio> foo {foo} => (foo)+
<ellio> anyway
<ellio> fuckin' irccloud
<drparse> oh
<prophile> I prefer the kleene star notation
<ellio> -queue < prophile> well remind me to explain them you you sometime [re: PEGs, to: elliottcable]
<ellio> -dequeue
<purr> ellio: <ellio> < prophile> well remind me to explain them you you sometime [re: PEGs, to: elliottcable]
<ellio> prophile: use that.
<prophile> righty
<ellio> i.e. “-queue explaining PEGs @ ELLIOTTCABLE”
<prophile> -queue < prophile> well remind me to explain them you you sometime [re: PEGs, to: elliottcable]
<ellio> or sommat
<ellio> nonono you don't need that, I put that in there 'cause I can't queue for you
<ellio> -dequeue
<purr> ellio: The queue is empty.
<ellio> hhmmmm
<ellio> -queue test @ prophile
<ellio> -dequeue
<purr> ellio: The queue is empty.
<ellio> cool!
<ellio> I *can* put shit in your queue.
<drparse> ellio: you're not elliottcable
<ellio> good thing nobody knows how this bot works.
<drparse> ellio: yeah I think if you wanted to be proper about it, you'd do [ <word> { <s> <word> } ]
<drparse> but fuck me I don't know this notation
<drparse> never did A level computing
<ellio> ooooo make the entire content optional
<ellio> smartboy
<prophile> oh, it's you alex
<ellio> LOL
<purr> LOL
<prophile> from this point on i'm just going to guess that every nick I don't know is you
<drparse> lol
<drparse> nobody knows who I am when I wear my disguise
<prophile> yeah, the /whois drparse showing you under the account alexgordon is certainly doing wonders for your identity hiding
<prophile> it's the last thing they'd expect
<drparse> who knows, I could be jeannicolas
<drparse> HUH HUH HUH
<jeannicolas> I'm drjson
drparse is now known as drparse_md
<ellio> jeannicolas!
<prophile> markdown parsing eh
<prophile> I'm onto you, gordon
<ellio> drparse.md
drparse_md is now known as mrparse_frcs
<vil> -clouds
<purr> vil: is stuck up in the clouds; hilight 'em if you want 'em.
<ellio> -find wild
<purr> ellio: Could not find `wild`.
<ellio> ಠ_ಠ
<prophile> (╯°□°)╯︵ ┻━┻
mrparse_frcs is now known as algore
<algore> why I don't take more advantage of this I don't know
<ellio> shit.
<ellio> I suck at ebnf. it's said and done for.
<prophile> ლ(ಠ益ಠლ) But at what cost?
<prophile> write it as a push-down automaton
<ellio> you can write multiple rules of the same name, right?
<prophile> they're equivalent, you know!
<ellio> and that's the same as alternation/option?
<prophile> well, it's more correct to say you can write alternation and that's equivalent to multiple productions from the same nonterminal
<ellio> wat
<ellio> why's that more correct
<prophile> because eBNF is syntactic sugar over BNF
<prophile> and that's how it's expressed in BNF
<ellio> hrmwatk
<prophile> CFGs are all nondeterministic and gooey anyway
<ellio> I more meant, “lol wats dat mean”
<purr> lol
<prophile> I don't like 'em much
<algore> prophile: stop distracting ellio with your tits and parsers and let him work
<algore> I WANT MY PAWS DAMMIT
* prophile transplants tits onto algore
<prophile> a combination of words which have never before been said
<algore> an inconvenient truth
<ellio> “global warming”: When the ops begin to get fed up with the conduct in their room.
<ellio> Okay, how's that?
<ellio> Specified enough for your tastes, alexgordon?
<ellio> at least for the moment?
<algore> { label-content }
<algore> <label-content>::= label-character*
<ellio> lol shaddup
<purr> lol
<algore> why not just
<ellio> that's there because I might eventually translate the text I just typed, into actual ebnf
<ellio> just got lazy and prose'd it
<algore> ok ok
<ellio> m'kay
<ellio> QUICK REVIEW:
<ellio> entire point of all of that,
<ellio> is to construct Scripts.
<ellio> Scripts being *one* representation of a particular DAG of objects.
<ellio> of particular note, this means that in a given program, a given object (at least initially, before the program itself begins constructing objects) belongs to *two* different “dimensions” of DAG:
<ellio> • the data-graph of the entire program (represented by relationships between the objects, membership in eachother's content-lists, annotated by responsibility)
<ellio> • the procedure-graph of the Script they were embedded in as literals
<ellio> with me?
<algore> hold on
<algore> got to read that several times
* ellio nods
<ellio> I'm sorry, I don't know the correct words to express it
<algore> and then several MORE times
<ellio> I could make a graph, though
<ellio> hey, easier way to put it.
<ellio> here.
<algore> ellio: so it's like a harvard machine… but a graph
<algore> data graph, program graph
<ellio> never heard of harvard machine, but that sounds accurate
<ellio> in that the same *objects* in memory, are both in the data-graph and the program-graph at the same time
<algore> i see
<algore> it sounds like paws would lend itself well to java
<ellio> this is a very important distinction from languages where the program-graph is some sort of abstracted representation, that re-generates new instances of data-objects each time it enters a particular part of the procedure.
<ellio> (which is under dispute, for obvious reasons; but that's the spec we're going to go with right now. Stratum 10.)
* algore starts implementing paws
<ellio> love you, Unicode
<algore> paws for java should totally be called jaws
<ellio> yepyepyep
PragCypher has quit [Quit: Leaving]
<ellio> okay
<ellio> where were we
<ellio> algore: I wouldn't, if I were you. We haven't gotten to anything complex yet.
<ellio> ♪ uncle sam goddamn
<purr> ellio is listening to “Uncle Sam Goddamn”, by Brother Ali
<algore> ellio: that's why I'm doing it now :P
<algore> ellio: labels are objects right?
<algore> oh right
<algore> it says
<whitequark> ellio: I think the term is homoiconic?
<ellio> the term for what?
<whitequark> >00:39 <+ellio> in that the same *objects* in memory, are both in the data-graph and the program-graph at the same time
<ellio> yep
<ellio> there's an important note, though
<ellio> actually, two:
<ellio> the *expression* type isn't available¹ in-language; that is, Scripts are not composed of in-language types, nor are they accessible/modifiable in-language.
<ellio> a lá lisp.
<ellio> er,
<ellio> à la lisp*
<ellio> it's sort of “reverse homoiconicity,” I suppose?
<ellio> instead of the ‘program’ type being in-data-graph, the data-graph is constructed from in-program objects
<ellio> or, idk, whatever.
<whitequark> what
<ellio> lol.
<purr> lol
<whitequark> wtf you just said makes no sense
<ellio> Paws isn't homoiconic.
<whitequark> >data-graph is constructed from in-program objects
<whitequark> what is this
<ellio> yeah, I know, that made no sense
<ellio> forgive me.
<whitequark> :D
<ellio> A: Paws is not homoiconic.
<ellio> B: There are *elements* of the ‘program’ representation, that are shared with the ‘data’ representation in-memory (à la homoiconicity),
<ellio> but C) the *structure* of the ‘program’ representation is not shared, and cannot be changed
<whitequark> is that visible from inside of the language?
<ellio> ¹
<ellio> yeah, hence the superscript
<ellio> put that question on hold until we get to the IPP shit?
<whitequark> ooook
<ellio> long story short: we have a *pre-*runtime method to modify the AST. But it's static at runtime.
<ellio> think, sorta, Lisp macro processing
<ellio> except wildly different in intent and semantics
<ellio> N E way.
<whitequark> well
<ellio> algore: you okay ovah there?
<whitequark> that does sound about the same in semantics
<whitequark> if we're talking about eg template macros
<ellio> we're not.
<ellio> here, I'm just gonna split this into two windows so I can talk to both of you at the same time.
<whitequark> there are lisps where object-language and meta-language are completely distinct
<ellio> whitequark: → #Paws.Nucleus
<algore> lol
<purr> lol
<algore> ellio: so it seems you've defined the syntax and the program representation
<algore> ellio: but not semantics yet
* ellio nods
<ellio> like I said, haven't got to anything interesting yet
<ellio> wasn't sure why you were starting to implement :D
<algore> it's java, it'll take me a few years
<whitequark> ... to write just that boilerplate
<algore> ellio: but that's done, right?
<algore> syntax and program representation… that's complete
<ellio> er, no, haven't gotten to the last data-type
<ellio> which was depending on Script
<ellio> that is, execution
<ellio> which I'm reallllllllly torn about renaming “continuation”
<algore> Trampoline
<ellio> lolwat
<purr> lolwat
<ellio> anyway
<ellio> so.
<purr> <alexgordon> the problem with C++ is: literally every part
<algore> LOL
<whitequark> hahaha
<whitequark> so true
<ellio> heads-up:
<ellio> I'll belong to Chelsea from approximately 5:00 CST, to 6:30 CST.
<ellio> But then I'll be back for the next, uh, few days, at least. But, more relevantly, all evening.
<whitequark> what the fuck is CST
<whitequark> UTC!
<ellio> UTC + 6, I think?
<ellio> idk.
<whitequark> helpful tip
<ellio> well then:
<whitequark> irclogger has time in UTC
<ellio> lol
<purr> lol
<whitequark> (because fuck timezones.)
<ellio> fine then
<ellio> from
<ellio> -sol -g Jun 14 17:00 CDT
<purr> ellio: 11 487 ſ 916 667
<ellio> to
<ellio> -sol -g Jun 14 18:30 CDT
<purr> ellio: 11 487 ſ 979 167
<ellio> or thereabouts.
<ellio> ſ 900 - ſ 975
<whitequark> this just in
<ellio> easysauce.
<ellio> brb poopin'
<ellio> actually,
<ellio> yeah. bbl.
<ellio> expect me around 6:30. <3
<ellio> algore: anything that doesn't make sense in what I've written so far, at all?
<ellio> it's all simple, but I've hopefully specified it well *anyway*. It's nothing like a robust spec, but it's more like what you've wanted, right?
<algore> nooope!
<algore> yep
<algore> no this is great, this is what I do when I define a language
<algore> get the syntax down, get the representation down
<algore> and the semantics
<whitequark> algore: you ever released a language?
<ellio> whitequark: we don't do formal PLT in here.
<ellio> a lot of talking, a lot of ideas, we stay away from the formal stuff.
<ellio> hey, algore, check the latest EBNF
<ellio> I fixed a bug, I think
<whitequark> ellio: hm? how is that related?
<whitequark> php is released
<whitequark> for example
* ellio nods
<ellio> sorry, mis-parsed what you asked
<algore> whitequark: depends what you mean by released :P
<ellio> somehow, thought you were asking if algore was into traditional PLT
<whitequark> ellio: besides, I don't think you can get *anything* done without some degree of traditional PLT
<whitequark> as in
* ellio nods
<ellio> not saying we completely eschew it
<whitequark> I do not necessarily think that every single language should be machine verifiable by Coq
<ellio> but I've no time or appreciation for design-by-committee, or academia in my language-design.
<algore> whitequark: not a standalone language, but I've written lots of DSLs (and I mean proper DSLs not ruby faux DSLs)
<whitequark> design-by-committee is completely different shit
<whitequark> it's not formalism. it's bureaucracy
<ellio> yes, hence why I listed both separately
<ellio> ;)
<whitequark> in a similar vein
<whitequark> I'm not exactly going to provide formal proofs of correctness for even parts of my languages. You know, the kind where 2/3th of the proof are composed of special characters only ever present in TeX.
<whitequark> not even in unicode :p
<whitequark> however!
<ellio> characters not in Unicode D:
<ellio> what is this blasphemy D:
<ellio> k
<ellio> done with the EBNF for now
<whitequark> for example, go's specification is the right (imo) kind of formalism. it's formal enough to allow for precise implementation, yet is readable and understandable
<ellio> I think
<whitequark> that is all.
<ellio> going to prepare for girlfriend, be back soon
<whitequark> LINK
<ellio> whitequark: I'm a huge fan of the ES5 spec.
<ellio> aaaaaaaaaand, uh,
<ellio> another one I read recently
<ellio> wtf was it
<ellio> I remember getting a huge hardon for how concise and clear and yet fun it was
<ellio> idk whatever.
<ellio> point being:
<whitequark> yeah, this kind of specs
<whitequark> funny part is
<ellio> I believe, if the *user* can't read the specification, then it's a bad fucking specification.
<whitequark> academia-style formal specifications mean the exact same fucking thing
<ellio> The specification should be closer to a user-manual/_why's-poignant-guide, than it should be to an RFC.
<whitequark> just in 1% of the paper area
<whitequark> what?!
<whitequark> sorry, that's bullshit
<ellio> Precise implementation is something that should be discussed on mailing-lists, IRC, whatever.
<whitequark> no.
<ellio> I mean, sure, I want the spec to provide *that*, too.
<whitequark> you do not understand what specification is for, then.
<ellio> But the end-goal, for me, is that the *user* be able to understand the language as a whole.
<whitequark> it describes the contract between the programmer and implementation
<whitequark> it MUST describe it precisely
<whitequark> otherwise you get fucking Ruby
<algore> ellio: nah
<ellio> mmmm, and Ruby's the language I learned to program in, and one I still love. ;)
<algore> not as long as the creator is alive
<algore> and you can ask him questions
<ellio> If the mid-level programmer (not even an expert!) can't understand the entire spec, then the spec is a failure.
<whitequark> if your users are too dumb / lazy / etc to read RFCs, your users is wrong.
<ellio> disagreed.
<whitequark> ellio: see, there are two kinds of not understanding
<whitequark> the first is invoking something which is not common knowledge amongst your users
<whitequark> eg., category theory.
<whitequark> I'm against this.
<ellio> If I make a language, I'm making a language for children, grandmas, and that pimply teenager fucking around with a 3D printer in his garage robotics lab and wanting to automate his A/C unit and ceiling fan.
<ellio> not for some professional programmer who can swallow RFCs on his lunch-break.
<whitequark> the second is users being scared by "too formal" language, which in fact avoids much more significant problems with interoperability
<whitequark> then your users are wrong.
<whitequark> so
<whitequark> you write a spec
eligrey has quit [Quit: Leaving]
<whitequark> and a SEPARATE manual.
* ellio shrugs
<purr> ¯\(º_o)/¯
<ellio> I think the two can be in one.
<whitequark> spec is for implementers. if it is not precise to be the only thing you need to make an implementation
<ellio> Similarly to the fact that I disbelieve in documentation-outside-code / documentation-outside-specs.
<whitequark> it's worthless.
eligrey has joined #elliottcable
<ellio> If your spec'ing framework / test'ing framework doesn't *already act as documentation*, then you're using the wrong spec'ing / test'ing framework.
<whitequark> um
<whitequark> tests are not equivalent to a spec
<ellio> spec'ing framework
<ellio> not language-specification
<ellio> (see? this is why I hate overloaded terms in programming.)
<whitequark> because 90% of things you want to specify (hence, document) cannot be tested with code
<whitequark> worst-case behavior being one of the simplest examples
<ellio> I'm making an analogy between “people who would write seperate manual and specification for their language” and “people who would write additional documentation in addition to the source-code and spec-style tests for their code”
<ellio> *really* have to go.
<ellio> I completely understand where you're coming from, don't get me wrong.
<ellio> I just disagree.
<whitequark> it's not a matter of belief :)
<whitequark> later
<ellio> I think the user comes first, before *anything* else. For any end-product intended to be handed to users, they're the only thing that matters.
<ellio> For instance, it's better to put more onus on the implementers to figure out how to achieve interoperability, unless it doesn't hurt the users *in any way* to ease that burden.
<whitequark> the problem is
<whitequark> there is no "the user".
<ellio> Making the specification more formalistic, difficult to read for a middle-of-the-pack user, falls under that category.
<whitequark> you have a wide gamut of people
<ellio> GIRLFRIEND WILL KILL ME LOVE YOU BE BACK SOON TO TALK MORE <3
<algore> ellio, whitequark: as I see it, there's two kinds of languages. Formal languages (like Fortran, C++ and JS) and dictatorial languages (like Python and Ruby)
<whitequark> algore:
<whitequark> kind of
<whitequark> except
<whitequark> there are two kinds of languages: ones for which you can write an alternative implementation, and ones for which you cannot
<purr> lol
<algore> lol right
<algore> but sometimes that can be a good thing
<algore> because
<whitequark> like PHP?
<whitequark> totally
<algore> yes
<whitequark> also ruby has an iso standard now
<whitequark> it's... shitty. but it's more than nothing.
dskuza has joined #elliottcable
<whitequark> it omits like 90% of the stdlib
<algore> specs are like "checks and balances" as americans put it
<whitequark> and 50% of the language
<algore> they slow the process down
<whitequark> lol no
<algore> if the person designing the language is an idiot, that can make it better
<algore> e.g. C++
<whitequark> again no
<algore> if the person designing the language is a genius, that can make it worse
<algore> (e.g. Guido)
<whitequark> Guido is a genius? lol sorry no
<purr> lol
<whitequark> bbiab
<algore> sure
<algore> python is the best programming language ever designed
<algore> and THAT is a fact
<joelteon> haha
<joelteon> hahaha
<joelteon> ellio:
<prophile> checks and balances isn't a purely american phrase
<prophile> in fact I heard dear old william hague use it just this week
<algore> prophile: are you trying to prove or disprove my point?
<prophile> no
* ellio laughs
<ellio> well-played, prophile. well-played.
<algore> haha
<algore> prophile: I think it's a purely american phrase regarding the separation of powers
<algore> mainly because we don't have a separation of powers :P
<prophile> well, we do
<prophile> just not to the degree of the septics
<prophile> our judiciary is actually very independent
<prophile> it's just that the executive has been eaten by the legislature
<algore> well I'm not sure, the highest court used to be the house of lords!
<prophile> if you're digging back properly
<prophile> that only applies to lords
<prophile> you're entitled to trial by a jury of your peers
<prophile> that is to say
<algore> but either way, america has four branches of government (executive, judiciary, representatives and senate), we have two
<prophile> commoners are tried by a jury of commoners
<prophile> and lords are tried by a jury of lords
<algore> not to mention the state-level systems
<prophile> generally the representatives and the senate are lumped into the legislature
<prophile> but you are right in there being four parts - the fourth is the states themselves
<algore> prophile: well they may be lumped together, but they're effectively separate
<algore> you need both to pass laws
<prophile> not always true
<algore> they have separate elections
<prophile> for money bills for instance, only the house needs to pass them
<prophile> just like over here
<prophile> originally the senate was elected by the state legislatures
<prophile> and the house was directly elected
<prophile> that was then overturned by one of the amendments
<algore> okay, but that's only because without that the entire government would collapse every year
<prophile> not really
<prophile> it's actually because they were emulating the british parliamentary system
<algore> but it would
<prophile> i think they'd work around it
<whitequark> re
<prophile> pew pew pew sequester etc
<prophile> in other news
<whitequark> speccing and designing languages isn't even related
<prophile> my supervisor at university has just been made a knight
<whitequark> you can very well write some shit down, experiment with it, then, when you're comfortable with it, write a spec
<prophile> so that's a thing
<whitequark> in fact most languages were spec'd exactly this way
<whitequark> however, this step *needs* to be done
<whitequark> and if it is hard, it means exactly one thing:
<whitequark> you suck at PL design.
<ellio> *Nothing* means “you suck at PL design” except ‘the users don't benefit from using it.’
* prophile grabs popcorn
<ellio> To say otherwise is to be disconnected from the only reality that matters; the reality of your users.
<ellio> oh, I'm just popping in for all of two and a half minutes
<prophile> ah, you bastard
<ellio> showered, waiting for the vagina'd-having-one to leave work now so I can go let her in
<prophile> what do we pay you for
<whitequark> ellio: meh
<ellio> prophile: I'm sure you'll get your entertainment in other ways, soon ;)
<whitequark> there isn't a "user"
<whitequark> there are "users".
<ellio> prophile: you still interested in a compiler for Paws, bteedubs?
<whitequark> for example
<prophile> vaguely
<prophile> among my ten thousand other projects :)
<whitequark> a fuckton of your users is not going to be satisfied with MRI's shitty threading, and they will demand JRuby
<ellio> prophile: <3
<whitequark> and if an implementor spends a year figuring out your fucked up language design
<whitequark> it is your fault, and no one else's
<ellio> not disagreeing.
<whitequark> prophile: wanna write compiler with you
<ellio> anyway, this is all academic.
<whitequark> if you ever do
<algore> whitequark: they are related, insofar as specs take time to keep in sync
<whitequark> ellio: this is insanely practical
<prophile> currently I'm speccing a game
<prophile> specs are good
<prophile> specs everywhere
<ellio> academic as in “unrelated to the current task”
<ellio> or rather, the task of later tonight
<algore> if you have to put each change in a spec, it slows the design of your language
<algore> it's a perverse incentive to fix problems
<ellio> that is, spec'ing paws enough to work with alex on it
<whitequark> algore: if you just roll out each change to HEAD
<whitequark> then you fuck with your users much worse than slightly delaying releases
<whitequark> there is an innumerable amount of examples
<prophile> specs don't have to be hard to write
<algore> whitequark: maybe so, but these users are replacable
<prophile> or take a long time
<whitequark> all of which scream at the top of their lungs
<whitequark> DON'T DO THSI
<algore> whitequark: when your language is great, you can get new users
<ellio> lolwat
<purr> lolwat
<whitequark> ellio: tempted to reply "just fuck off" to that
<whitequark> errr
<whitequark> algore: ^
<whitequark> but I won't.
<algore> but if you continue with a crappy language for backwards compatibility reasons, it's just going to die
<whitequark> HAHAHA
<whitequark> like COBOL is dead
<prophile> I think
<whitequark> or, duh, C
<prophile> you are both arguing
<prophile> but you're actually arguing different things
<algore> prophile: no shit
<algore> dammit too late
<prophile> and you're broadsiding each other
<prophile> I'd point you on the right lines
<prophile> but this is quite entertaining
<prophile> and somebody's got to eat this popcorn
<algore> I'm saying specs are a waste of time, because they solve a problem that is really not that important
* prophile munches
<algore> proper specs
<algore> writing stuff down is great
* whitequark facepalms
<micahjohnston> what's klined, hobbits?
<whitequark> prophile: you can do that
<prophile> if you write things down
<algore> if your aim, is to make a really good language, then a spec is incidental to that
<prophile> and they are unambiguous
<whitequark> I'm not continuing discussion after this point
<prophile> oops
<prophile> you accidentally wrote a spec
* prophile patpats
<algore> because to make a really good language, you have to design and implement it yourself
<prophile> haskell was designed by a committee
<algore> prophile: this is not what whitequark means by a spec though
<algore> prophile: yeah, it shows
<prophile> it's a thing of beauty
<whitequark> algore: by a spec, I mean an unambiguous description of the semantics of your language
<whitequark> nothing more.
<whitequark> nothing less
<prophile> do notation and monads
<whitequark> I don't care if it uses a thousand special characters or is described in the style of dumb hobbits
<prophile> dooo notation and moooooonads
<whitequark> if it's unambiguous
<whitequark> and complete
<algore> whitequark: right. this is also what I mean!
<whitequark> then it's a spec.
<algore> creating such a thing, and keeping it up to date with each change, is a tremendous amount of effort
<prophile> no, it isn't
<whitequark> it is less effort than fixing the fallout which follows if you don't
<prophile> it should have basically a one to one correspondance with your test suite too
<prophile> which makes it extremely easy to check
<whitequark> well, a bit more complex than that
<algore> specs are like dividends, you introduce them when the language (or company) is nice and settled in what it's doing. but for the first decade, you want to plow as much effort as you can into making it the best
<whitequark> you can't test algorithmic complexity
<prophile> okay, good point
<whitequark> or a really really big amount of different things
<prophile> i retract that statement
<whitequark> much of error handling. much of data representation
<whitequark> ok
<prophile> eeh, you should be able to test error handling or representation
<whitequark> basically if there's an universal quantifier somewhere, you can't test it
<micahjohnston> i want a computer :p
<algore> hi micahjohnston !
<prophile> unless you get a theorem prover :3
<micahjohnston> hi algore
<whitequark> prophile: totally :D
<micahjohnston> are you ALexGORdon
<whitequark> I'm all for such tests
<whitequark> but
<algore> micahjohnston: yes
<whitequark> it's enormous effort
<micahjohnston> coo
<prophile> I like my languages like I like my women
<algore> super cereal
<prophile> reducable to 3SAT
<whitequark> hrmpf
<algore> is it cereal or serial? I'm never sure
<prophile> have you ever tried llbmc?
<prophile> it's pretty swish
<whitequark> prophile: "I like my languages like I like my women: reducable to 3SAT" wat.
<purr> beep.
<micahjohnston> algore: so @ is basically dynamic scope
<algore> micahjohnston: lol yeah
<purr> lol
<micahjohnston> but more controlled
<micahjohnston> :P
<algore> referentially transparent dynamic scope!
<prophile> I'm going to disappear now
<prophile> and watch some dota
<algore> o7 prophile
* prophile waves
<algore> prophile: don't pollute
<prophile> oh, also
<prophile> don't tell anybody
<prophile> but i'm not wearing trousers right now
<algore> :O
* algore is not wearing pants, interpret that how you will
<prophile> I put on weight :(
<prophile> and now when I sit down my poor testes burst like grapes
<whitequark> prophile: wat.
<purr> beep.
<algore> I've given up porn, I just go to http://www.apple.com/mac-pro/ mac pro now
<prophile> hurgh
<prophile> I hadn't seen that
<prophile> damn
<prophile> apple still knows how to design
<micahjohnston> trash can
<micahjohnston> but i like how you can open it up and replace stuff very nicely
<micahjohnston> it looks like
<micahjohnston> unless that's just for fun on the website
<algore> lol
<purr> lol
<micahjohnston> algore: hey so want to design tempus's type system/data model?
<micahjohnston> actually nvm i gtg but later want to talk about it
<whitequark> to quote a letter I just received
<whitequark> "
<whitequark> There would certainly be interest in publishing some of this work in
<whitequark> the academic community.
<whitequark> "
* whitequark is happy as a banana
<algore> penis?
<whitequark> what
<vil> -ground
<purr> vil: is no longer stuck up in the clouds.
<whitequark> -clouds
<purr> whitequark: is stuck up in the clouds; hilight 'em if you want 'em.
<whitequark> -ground
<purr> whitequark: is no longer stuck up in the clouds.
<whitequark> cool
<vil> -ground
<purr> vil: is no longer stuck up in the clouds.
<vil> I was curious if it actually kept track
<whitequark> hey
<whitequark> I wanna watch some movie and relax
<whitequark> recommend me one
<vil> hmmm
<vil> Iron Man?
<whitequark> sorry, bad wording. TV series. I usually watch one (or a big chunk thereof) until I fall asleep.
<whitequark> or anime
<whitequark> <3 anime
<purr> Let it be known that whitequark hearts anime.
<vil> oh, okay. hmmmmm
<vil> I haven't been watching much TV lately
* whitequark doesn't have a TV for last... seven years?
<whitequark> about as long as I can remember
<vil> smart. there's not much of value on
<whitequark> in a curious twist of fate that didn't prevent me from watching GoT or House or...
<vil> House was excellent
<vil> you know what I should find is Monk
<vil> that was an excellent show
<whitequark> House was horrible. no medicine, insanely dumb script, template-based episodes
<whitequark> however I watched it thrice
<whitequark> because
<whitequark> excellent time-killer when you're exhausted
<whitequark> don't think I remember a single thing from House.
<whitequark> Monk... lemme see
<vil> detective with extreme OCD
<whitequark> it's either really good or really bad
<whitequark> depends mainly on amount of awkwardness on screen
<whitequark> I can't stand awkward situations. creep me out. thank god vlc can skip fragments.
<vil> it's not usually that *awkward*, just kind of ridiculous
<whitequark> neat
* whitequark downloads
<vil> like he's afraid of milk
<whitequark> I've told every manager I've ever had "I work reasonable hours; if there's a disaster and I need to work extra hours to help out I will, and I will consider that disaster to be evidence of your failure to manage risk when it comes time for management reviews." I knew that my current job would be a good fit for me when my new manager told me that he viewed making people work crazy hours to be a failure of management before I got the chance t
<whitequark> hahahaha
<whitequark> Eric Lippert is awesome
<whitequark> oh, Monk is huge
<vil> whitequark: huge as in file size?
<whitequark> amount of seasons
<vil> it had like 13 seasons
<vil> yeah
<whitequark> file size is meh; I'd download 1080p if there was any
<whitequark> <3 notebooks with full-HD screens
<purr> Let it be known that whitequark hearts notebooks with full-HD screens.
<vil> haha
<vil> our internet is 11mbps down at the moment
<vil> fastest it's ever been
<vil> I miss being up at college where it's 60 or so
<whitequark> I have 50mbps here
<whitequark> I could have 100 but don't bother
<whitequark> practically every ISP in Moscow at this moment offers unlimited 100mbps
<whitequark> and it's unlimited as in actually unlimited
<whitequark> and no traffic shaping shit
<vil> wow
<whitequark> and lemme check
<vil> this is the best you can get here
<whitequark> this 50mbps costs me $16
<whitequark> about
<whitequark> 100mbps would be... $25?
<vil> are you freaking kidding me
<whitequark> nope, wanna check for yourself?
<whitequark> translate this: http://ecotelecom.ru/internet/premium
<vil> I believe you
<vil> 11mpbs here is $40 a month
<whitequark> yeh $22 for 100mbps everything plus IPTV
<whitequark> with 100 channels
<vil> well, "up to 12mbps"
<vil> but it'll never get there
<whitequark> I *think* they would actually offer gigabit-range speeds
<whitequark> but the cabling down to the apartments is incredibly shitty
<whitequark> plus most SOHO routers are shit too
<whitequark> so it doesn't really help
<whitequark> oh and WiFi
<whitequark> however; let me tell you about mobile internet here
<whitequark> first, it's 22 cents per a single megabyte
<whitequark> ±for different plans, but more or less that
<ellio> hi, all
<ellio> -clouds
<purr> ellio: is stuck up in the clouds; hilight 'em if you want 'em.
<joelteon> what if we don't
<whitequark> then, it's rounded up to megabyte
<whitequark> ie you download 10K; bah, pay $.22
<whitequark> then, the speed is such so that you can't really spend a lot of money
<whitequark> 64 kbit/s is... good!
<whitequark> well, it varies. if you're lucky you can actually get into megabit range
<vil> there's theoretically EDGE here in town, but it doesn't work
<vil> supposedly 3G is coming this summer
<whitequark> oh, I'm describing the supposedly 3G network
<whitequark> HSDPA+
<whitequark> then, the latency is three fucking seconds
<vil> ew
<whitequark> and the connection drops every now and then
<whitequark> then, there are three major operators and they form a cartel
<whitequark> bribing all the officials so nothing better can proliferate
<whitequark> price fixing, etc, etc
<whitequark> suing for spectrum
<whitequark> then, they pry money out of you on every occasion, even if it's barely legal or just not
<whitequark> then, they shape everything out of your traffic
<whitequark> best part
<whitequark> if you as much as launch a torrent client, they insta-disconnect you and send an sms
<whitequark> which basically mandates you to pay $2/hour if you want to be able to connect to the network.
<joelteon> what country is this
<whitequark> russia
<whitequark> moscow
<joelteon> figured
<whitequark> oh and they were caught injecting ads into unencrypted http traffic
<ellio> vil: they're factoids, but it *should* keep track
<whitequark> and I *think* they filtered out my IPsec VPN on a certain occasion.
<whitequark> vil: now, now that was 2G and 3G. let me describe our sole 4G operator!
<ellio> whitequark: right!?
<ellio> whitequark: (re: awkwardness)
<whitequark> (technically there are more than one, but they're all MVNOs of each other and there is effectively a single network of towers)
<whitequark> ellio: huh?
<ellio> (FUCKING IRCCLOUD SCROLLS TO THE BOTTOM EVERY TIME I SEND A MESSAGE. MAKES -CLOUDS'ING SO FUCKING HARD)
alexgordon has joined #elliottcable
<ellio> whitequark: I hate awkward TV shows.
<whitequark> YES
<whitequark> I just cringe and go out of room
<ellio> whitequark: I can't *fucking stand* Parks 'n Rec, or The Office, or anything
<whitequark> can't watch it
<ellio> There's seriously nothing I hate more than those fucking kind of TV shows
<ellio> -clouds @ again
<purr> again: is stuck up in the clouds; hilight 'em if you want 'em.
<whitequark> couldn't watch 2nd season of The IT Crowd
<whitequark> simply couldn't.
<whitequark> vil: ok. back to *G
<vil> yep
<whitequark> so this 4G provides true unlimited connectivity up to 10 Mbps, and I mean fucking real 10 Mbps
<whitequark> they don't shape your traffic, they don't do any kind of hidden limits or hidden fees
<whitequark> even better
<whitequark> you can adjust your own plan at any time
<ellio> okay, opening a new tab to interact real-time while I -clouds ಠ_ಠ
<whitequark> ie: need to download something big? switch to the most expensive plan for 55 minutes, get billed for 55 minutes 03 seconds
<whitequark> exactly by second.
<whitequark> without any fees.
<ellio> lol @ laptops with full-HD screens
<purr> lol
<whitequark> ellio: what about them?
<vil> whitequark: that's really cool
<ellio> Woah, what is *this* shit? Never seen this before.
<ellio> and this isn't even Mavericks D:
<whitequark> vil: so it just came to this... I bought such a 4G plan
<ellio> OMG
<vil> ellio: that's been there, yeah
<ellio> OMFG OMG
<ellio> I can make my Retina display things at normal rez, without scaling D:
<ellio> SO MUCH SPACE ON MY SCREEM
<ellio> IT IS SO DELICIOUS I WANT TO HAVE SEX WITH ALL OF THESE TINY WINDOWS
<vil> lol
<joelteon> holy
<whitequark> vil: put the SIM into my Canadian phone (compatible LTE bands)
<whitequark> ellio: wat.
<purr> beep.
<ellio> looks like whitequark has discovered purr's nonsequitur featureset
<whitequark> vil: and set up SIP with PSTN gateway to talk with all the other people
<whitequark> ellio: I knew it from day one
* ellio laughs
<ellio> well, three times today, sooooo
<ellio> hey, did you still want to phone™?
<whitequark> vil: so... I lose SMS and I pay triple, but I get mobile internet which is fucking awesome
<ellio> I'm going to be girlfriend-less, in this condo, all weekend, alone
<ellio> I've hit up some Twitterfriends and shit to meet up, but still
<ellio> should have a lot of time to myself over the next 72 hours
<vil> whitequark: I would be entirely ok with losing SMS and gaining the Interwebs
<vil> wish it were an option here
<whitequark> ellio: yeah! my... er... girl and friend will sleep through this weekend
<whitequark> vil: and I have voice which is WAY better in quality than 2G voice
<whitequark> literally
<ellio> girl and friend?
<ellio> sorry, language barrier:
<whitequark> ellio: she's not a girlfriend
<ellio> you mean, platonic-friend who is female,
<whitequark> but she is a girl and a friend.
<ellio> or fuckbuddy who isn't romanticly involved?
<whitequark> neither
<ellio> wat
<ellio> well details brothah
yorick has quit [Read error: Connection reset by peer]
<whitequark> now you're confused :p
<alexgordon> does not compute
<ellio> seriously this tiny-shit-on-my-screen
<ellio> has MADE MY DAY
<whitequark> vil: and with LTE's negligible latency it's really good
<whitequark> vil: losing SMS is painful.
<whitequark> because banks
<whitequark> and 3D secure
<whitequark> fuck this shit
* whitequark weeps
<vil> mmm, true
<vil> I don't use it much, but I can see where some stuff requires it
<whitequark> I *have* to keep my old SIM just for these fucking bots to go through
<whitequark> I looked into various SMS reception services
<whitequark> and no I'm not going to shell out $1k/mo for just that
<whitequark> ellio: details... I'll tell you sometimes :p
<alexgordon> whitequark is as happy as a banana
<vil> kernel_task, the fuck are you doing with 15% of my RAM http://cl.ly/Pdrf
<alexgordon> vil: dmg?
<ellio> pffff I like details
<vil> alexgordon: none mounted
<ellio> alexgordon *is* a banana
<alexgordon> <vil> alexgordon: none mounted
<ellio> ∴ whitequark is as happy as an alexgordon
<whitequark> er
* alexgordon grumbles
<whitequark> don't wanna
<vil> wat
<vil> someone should use this banana as their Twitter avatar
<vil> clearly it should be alexgordon
<ellio> thank god I have excellent eyes
<ellio> everything is so small D:
<ellio> it's … unexpected
<alexgordon> vil: not getting rid of the lion
<vil> you could photoshop the banana into the lion's mouth
<vil> hooray less terrible iOS 7 icons are coming http://9to5mac.files.wordpress.com/2013/06/icons.png
<vil> whitequark: even better
<alexgordon> vil: 73°C? We're going to die!
<vil> alexgordon: quit being all british
<ellio> <3 the british
<vil> we're stuck in the stone ages, remember
<purr> Let it be known that ellio hearts the british.
<alexgordon> vil: also they neatly replaced the only icon that i actually like
<vil> ?
<ellio> So, guise:
<alexgordon> reminders and photos are still shit
<ellio> I'm co-opting this channel again for Paws.
<vil> oh, you liked weather?
<ellio> wait, which al→ is the real alex?
<vil> I didn't hate it
<alexgordon> vil: yeah it's nice
<alexgordon> better than the old one
<vil> the gradient makes it look in-dented is all
<alexgordon> can't be said of photos
<vil> photos is lol
<purr> lol
<ellio> gogogogogo
<ellio> fuck ios7 so hard
<ellio> hateithateithateit
<vil> I hope the temperature updates at least
<ellio> sometimes I feel like micahjohnston when I talk about things
<alexgordon> ellio: omg I can finally edit it
<vil> ellio: wat.
<purr> beep.
<ellio> yes because you logged in dick
<ellio> don't break anything alexgordon you dick
<alexgordon> ellio: I have my password on here
<ellio> anyway
<ellio> SO
<ellio> THINGSNSTUFF,
<ellio> we're about to move on
<vil> alexgordon: it was funny because there was Anonymous Giraffe
<vil> alexgordon: AG = alexgordon
<vil> kk
<ellio> ignore the Continuation stuff I added while I was waiting for Chelsea
<alexgordon> vil: I'm a *lion*
<ellio> going to go back and add *semantics* and *operations* to the types we already have
<ellio> oh my GOD so much SPACE
<ellio> SPAAAAAAACE
<vil> alexgordon: lion does not start with A or G
<whitequark> ellio: do you hate iOS7 for its colors?
<vil> ♪ Sofi Needs A Ladder
<purr> vil is listening to “Sofi Needs a Ladder”, by deadmau5
<whitequark> they were seriously tripping on acid
<vil> let's get this shit started
<whitequark> also
<whitequark> wanna to look at an accurate description of what I do with crappy legacy code/
<whitequark> ?
<vil> does it involve fire?
<whitequark> kinda
<ellio> 27 views
<ellio> what the fuck is youtube smoking
<ellio> old: http://ell.io/iUljS
<alexgordon> ellio: memcached
<whitequark> in fact I wonder what Kota Hirano was smoking
<whitequark> because he definitely was high on something
<whitequark> <3
<vil> that was intense
<ellio> new: http://ell.io/i1S0
<whitequark> vil: oh yes
<ellio> HOW HAPPY IS ELLIOTT?
<vil> ellio: I could use that much space
<ellio> AS HAPPY AS A SLINKY ON AN ESCALATOR
<ellio> anyway
<vil> weren't you sad like a slinky on an escalator the other day? I don't think you can have both in the same simile
<ellio> alexgordon: YOU
<ellio> and/or
<ellio> algore: YOU
<ellio> vil: it's an inside joke
<vil> ah
<alexgordon> ellio: it's me
<whitequark> vil: there is usually nuclear fallout on our production server the next day
<vil> whitequark: ha
<whitequark> vil: but the new variant of code is so fucking better to work with so everyone just agrees to clean it up
<ellio> alexgordon: m'kay
<prophile> ellio: hi
<ellio> what should I do next?
<ellio> start in on continuations?
<prophile> the grammar is ambiguous
<prophile> just fyi
<ellio> prophile: oh? it was hacked together in thirty minutes; how so?
<ellio> alexgordon: or provide specifications of some of the *semantics* of the types I already listed?
<prophile> I suspect you should get rid of the { and } in label-literal
<ellio> oh lol yes
<purr> lol
<ellio> l'oops
<ellio> tyty
<prophile> i'm just sanity checking the grammar
<ellio> lolk
<ellio> who the fuck is gazoombo
<ellio> every time I come in here there's some new dude I don't know
<ellio> alexgordon: WHICH SHOULD I DOOOO
<ellio> alexgordon: THIS IS FOR YOUUUUU
<ellio> vil: :)
<ellio> NO YOUTUBES
<ellio> I AM ON SLOW INTERNET
<ellio> NOT SOME RUSSIAN MAFIA 100Mbit BULLSHIT
<ellio> ಠ_ಠ
<purr> Let it be known that ellio disapproves of russian mafia internet.
<ellio> ಠ_ಠ russian mafia internet
<whitequark> ellio: it's fucking awesome
<whitequark> also relevant to russian mafia