devyn changed the topic of #elliottcable to: a super duper cult :)
yorick has quit [Remote host closed the connection]
ELLIOTTCABLE changed the topic of #elliottcable to: a _better_ cult ˙ ͜ʟ˙ embrace, extend, extinguish.
<devyn> -cult
<devyn> -learn cult = of personality (#ELLIOTTCABLE)
<purr> devyn: Learned `cult`.
<ELLIOTTCABLE> nope
<ELLIOTTCABLE> -learn cult = we actually sacrifice virgins.
<purr> ELLIOTTCABLE: Learned `cult`.
<devyn> -learn cult = s/\.$/ (both human and sheep).
<purr> devyn: Learned `cult`.
<devyn> oh
<devyn> -cult
<purr> devyn: s/\.$/ (both human and sheep).
<devyn> yeah oops
<devyn> lol
<purr> lol
<devyn> -learn cult = we actually sacrifice virgins.
<purr> devyn: Learned `cult`.
<devyn> -learn cult =~ s/\.$/ (both human and sheep).
<purr> devyn: SyntaxError: Syntax is `s/expression/replacetext/gi`.
<devyn> -learn cult =~ s/\.$/ (both human and sheep)./
<purr> devyn: Changed `cult` to: we actually sacrifice virgins (both human and sheep).
<devyn> whee.
<devyn> ELLIOTTCABLE: yeah there's a lot of responsibility issues actually. tried writing a more complex routine that actually takes a caller and stuff and I don't think it's possible
<devyn> ELLIOTTCABLE: [infrastructure execution stage[] [caller] []; infrastructure execution unstage[]]
<devyn> ELLIOTTCABLE: ↑ is unsafe
<devyn> ELLIOTTCABLE: we would need a non-returning variant of `stage`
<devyn> ELLIOTTCABLE: or responsibility
<devyn> lol
<purr> lol
<ELLIOTTCABLE> ugh
<ELLIOTTCABLE> worst mood
<ELLIOTTCABLE> devyn: huh?
<ELLIOTTCABLE> what's unsafe?
<ELLIOTTCABLE> man I wanna ditch unstage[]
<ELLIOTTCABLE> most useless thing
<ELLIOTTCABLE> maybe call it nope[]
<ELLIOTTCABLE> lol.
<purr> lol
<ELLIOTTCABLE> ugh.
<ELLIOTTCABLE> just, ugh.
<joelteon> I don't understand ruby users' obsession with symbols...
<joelteon> what's the deal there
<joelteon> is it like lisp
<devyn> joelteon: basically they're just named numbers, like enums, except the size of the enum is the entire virtual machine's symbols
<devyn> they allow constant time comparison
<devyn> and don't take up much space
<joelteon> oh ok
<devyn> so like :hello == :hello, :hello != :world
<devyn> once you create a symbol, the string is leaked forever (it gets interned)
<devyn> so yeah same as lisp
alexgord_ has joined #elliottcable
<devyn> joelteon: unlike JS objects, which are, in Haskell terms, `HashMap Text v`, Ruby Hashes are more generic `Hashable k => HashMap k v`
<devyn> so there's a need for symbols there
<joelteon> groce
<devyn> in JS the key is always a string, and modern compilers decide to intern certain strings
<devyn> in Ruby you just use symbols as keys
<devyn> {foo: "bar"} is valid in both JS and Ruby, but in Ruby it's equivalent to {:foo => "bar"}, i.e., a symbol
<joelteon> yeah...i know
<joelteon> i'm familiar with ruby syntax
<devyn> oh, then wait, what was your question about
<joelteon> "execute :git, :submodule, '--update', '--init'"
<joelteon> why isn't every string there a symbol
<devyn> a surprising number of people don't seem to know that you can do :'--update' and :'--init'
<devyn> and think symbols are only for identifiers
<devyn> in any case, I don't even know why they're using symbols there at all
<devyn> there's no point
<joelteon> yeah, that's my question
<joelteon> why use symbols there
<joelteon> i know you can make a symbol out of anything without \0
<joelteon> if you're gonna symbol everything, why half-ass it
<devyn> hell they could have just done execute *%w{git submodule --update --init} if they needed to pass separate arguments
<joelteon> yeah, i also know splat syntax
<joelteon> i'm just saying, what's with people using symbols
<devyn> *shrug* people overuse them because they're convenient, I guess
<purr> ¯\(º_o)/¯
<devyn> I know a lot of poorly written ruby webapps suffer from accidentally interning user data, which leads to a memory leak
<joelteon> no way
<devyn> yes way
<devyn> string → symbol conversion is waaaay too convenient in ruby
<devyn> "hello".to_sym, or "hello".intern
<joelteon> you're telling me ruby webapps suffer from memory leaks?
<devyn> lol
<purr> lol
<devyn> now, now
<devyn> well written ones don't
<devyn> :p
<devyn> we're talking monkey code.
<devyn> and you can leak memory in any language.
<joelteon> ook ook
<devyn> hell, Python's refcounting is a pretty big source of memory leaks for those who aren't aware of it, last time I checked
<devyn> though, admittedly that was a while ago
<devyn> seems like maybe they have cycle detection or gc or something now?
<devyn> maybe they always did?
<devyn> lol
<purr> lol
<devyn> never mind then
<devyn> lol
gozala has quit [Quit: Connection closed for inactivity]
mcc has joined #elliottcable
Sorella has quit [Quit: Ex-Chat]
mcc has quit [Read error: Connection reset by peer]
mcc has joined #elliottcable
alexgord_ has quit [Quit: Computer has gone to sleep.]
alexgordon has quit [Quit: My iMac has gone to sleep. ZZZzzz…]
kaplan is now known as Asalamualeykom
sharkbot has quit [Remote host closed the connection]
sharkbot has joined #elliottcable
manveru has quit [Read error: Connection reset by peer]
manveru_ has joined #elliottcable
ag_dubs has quit [Ping timeout: 272 seconds]
ag_dubs has joined #elliottcable
Rusky has quit [Quit: Leaving.]
Rusky has joined #elliottcable
mcc has quit [Quit: This computer has gone to sleep]
Rusky has quit [Client Quit]
Rusky has joined #elliottcable
eligrey has quit [Quit: Leaving]
Rusky has quit [Client Quit]
Rusky has joined #elliottcable
Asalamualeykom is now known as kaplan
danpalmer has joined #elliottcable
danpalmer has quit [Client Quit]
judofyr has joined #elliottcable
<devyn> ELLIOTTCABLE: [infrastructure execution stage[] [caller] []; infrastructure execution unstage[]] is unsafe to do because the caller may call us again before we've called unstage[]
<devyn> for example, the call may end up at the semicolon, or between infrastructure and execution, or anywhere after that stage[] call really
<devyn> so yeah
<devyn> so basically, Paws doesn't even work right now, and I think even with responsibility it would still be broken right now
<devyn> :/
<judofyr> devyn: how's your Paws coming along? been a while since I've been online.
<devyn> judofyr: I wrote a Paws in Rust… it's currently several orders of magnitude faster than Paws.js and can handle parallelism
<judofyr> nice. except it's kinda broken because of this issue?
<judofyr> or, I guess it's the current Paws spec that's broken
<devyn> well, no, Paws in general is broken because of this issue, haha
<devyn> yeah
<devyn> and we're only realizing exactly how large the scope of the issues are now that I've got a parallel impl working
<devyn> the only reason the parallel impl runs the examples is… well, essentially the opposite of a race condition; it ends up being more ordered than you'd expect even though you didn't explicitly order it
<devyn> so yeah.
<judofyr> cool
<judofyr> devyn: so, what do you think about Paws now after implementing it?
kaplan is now known as mullahkaplan
<judofyr> ELLIOTTCABLE: hah. I noticed you commented on Mojo's issue about `curl`-ing
<judofyr> ELLIOTTCABLE: if you're wondering what the answer is: CPAN is horribly insecure. everything is over HTTP. tons of mirrors. no checksums. asking people to do `cpanm Mojolicious` or `cpan Mojolicious` is not *any* more secure.
<judofyr> and saying "oh, but you could provide PGP-signed builds" doesn't really help. because everyone in the Perl community installs from CPAN. it's just going to take time to set up an infrastructure that no-one will use.
manveru_ is now known as manveru
Sorella has joined #elliottcable
Sorella has joined #elliottcable
Sgeo has quit [Read error: Connection reset by peer]
yorick has joined #elliottcable
alexgordon has joined #elliottcable
SwooshyCueb has quit [Ping timeout: 240 seconds]
SwooshyCueb has joined #elliottcable
Rusky has quit [Ping timeout: 250 seconds]
Rusky has joined #elliottcable
prophile has joined #elliottcable
judofyr has quit []
sammcd_ is now known as sammcd
eligrey has joined #elliottcable
<ELLIOTTCABLE> devyn: I love symbols, btw. I grew up Ruby, so.
<ELLIOTTCABLE> Writing :foo instead of "foo" is one step closer to just writing foo.
<ELLIOTTCABLE> it's more the saving on having to think about a closing character, and how well it flows visually, than anything else. /cc joelteon
<ELLIOTTCABLE> devyn: yeah. Very aware. That's what the holes problem was.
<ELLIOTTCABLE> but I'm not so worried about it, for two reasons combined:
<ELLIOTTCABLE> A) the nebulous problem of "people can interject between my intended reception sites!" is, well, less-so, because I realized the only people who can interject are people holding *our execution*. In lots of patterns, everybody will be holding clones of the same script, and can't interject on one another.
<ELLIOTTCABLE> combined with B) in the situations where we *are* passing around, intentionally, a single execution, it may be easily solvable by responsibliliy backflips.
<ELLIOTTCABLE> So I'm holding off worrying about that until I figure out a revamp for responsibility. it may "fix" that, in that it may make it trivial to track and safe your execution-calls with responsibility.
<ELLIOTTCABLE> so.
<ELLIOTTCABLE> some of the thoughts in my head:
<ELLIOTTCABLE> it's not just about verbosity and syntax … I want to take responsibility *off of the queue*. (or, the conceptual equivalent thereof, in a future queueless system)
<ELLIOTTCABLE> that is, not having several *stagings* involved.
<ELLIOTTCABLE> and to do it without stagings, in Paws, you basically *have* to have syntax.
<ELLIOTTCABLE> tentatively, imagine this:
<ELLIOTTCABLE> +, placed after any combination, means “current execution blocks on responsibility for the thing that is the result of this combination”
<ELLIOTTCABLE> ditto -, but that's releasing responsibility if it's held
<ELLIOTTCABLE> as a random example,
eligrey has quit [Quit: Leaving]
<ELLIOTTCABLE> infrastructure stage[]+ [foo] bar
eligrey has joined #elliottcable
eligrey has quit [Client Quit]
<ELLIOTTCABLE> pair this with some explicit resp semantics for juxtaposition when it comes to staging (what you were mentioning would be impossible with the default handler, but that's another bridge)
<ELLIOTTCABLE> and we'd be getting closer to a first-class responsibility system
<ELLIOTTCABLE> (rephrase: adding “resp ops”, as we were discussing adding to the queue, *to Scripts themselves* too.)
mullahkaplan is now known as kaplan
<ELLIOTTCABLE> OH SHIT, THEY WERE KAPLAN THE ENTIRE TIME
eligrey has joined #elliottcable
prophile has quit [Quit: The Game]
<Cheery> done with the audio synthesis for onw
<ELLIOTTCABLE> devyn: wake upppppp
<Cheery> ELLIOTTCABLE: I'm realising what I've been doing is bit odd. It'd be simple programming language with extremely complex syntax.
<ELLIOTTCABLE> wat really?
<Cheery> I think I'm studying alternative choices the remaining part of the week.
<Cheery> started out by looking into escher. The author is fucking terrible at expressing himself.. or so fucking good that I don't understand it.
<Cheery> trying to figure out which.
<ELLIOTTCABLE> escher?
<Cheery> that kind of weird thing
<ELLIOTTCABLE> wat
<ELLIOTTCABLE> wat.
<ELLIOTTCABLE> this sounds like me, writing about Paws, and I don't like that fact
<ELLIOTTCABLE> makeitstopmakeitstopmakeitstop
<Cheery> does it help, that I'm not sure which you're talking about? the escher author or me?
<Cheery> anyway if the escher doesn't do it.. I think I need to shift my thinking a bit.
<Cheery> I'm so well used to doing things in programming languages such as javascript or coffeescript. kicking up lots of stuff in seconds where other people seem to struggle at.
<Cheery> the problem isn't that other people struggle.
<ELLIOTTCABLE> “kicking up lots of stuff in seconds”? huh?
<ELLIOTTCABLE> kicking up?
<Cheery> writing
<Cheery> anyway what I've been trying to get with my language design would be something of an unobstructive programming environment
<Cheery> and been thinking it could be done by just taking what we already have, and improve it.
<Cheery> but for a change I want to study alternative ideas.
<ELLIOTTCABLE> in here, we talk of something that got named “oases.”
<ELLIOTTCABLE> (a concept that encapsulates what you're saying, if I understand correctly.)
<ELLIOTTCABLE> taking what we have, and ‘improving’ it iteratively, is working “within the oasis” …
<ELLIOTTCABLE> while trying to come up with something *completely* unheard of, or completely different, is striking out into the desert, looking for a new oasis.
<Cheery> thinking about this further.. in programming there's patterns that bind it all together. thinking about what I did today.
<Cheery> wrote a ripple simulator that's using two buffers.
<Cheery> abstracted the buffers into squares using x*width + y
<Cheery> had a step that transformed the content in buffers, based on previous buffers.
<ELLIOTTCABLE> “Creates a sorted array of property names of all **enumerable** properties, own and inherited, of object that have function values.”
<ELLIOTTCABLE> that enumerable is biting me in the ass right now. ddis
<ELLIOTTCABLE> -ddis
<ELLIOTTCABLE> -diaptoval
<purr> ELLIOTTCABLE: diaptoval, diaptoval forever
<ELLIOTTCABLE> I. forgot about that.
oldskirt_ has joined #elliottcable
<Cheery> ELLIOTTCABLE: have you r ead this? http://www.maymounkov.org/memex/abstract
<ELLIOTTCABLE> nope
<ELLIOTTCABLE> never heard of escher
<ELLIOTTCABLE> glowcoil?
oldskirt has quit [Ping timeout: 256 seconds]
alexgordon has quit [Quit: My iMac has gone to sleep. ZZZzzz…]
alexgordon has joined #elliottcable
alexgordon has quit [Quit: My iMac has gone to sleep. ZZZzzz…]
Sgeo has joined #elliottcable
<devyn> ELLIOTTCABLE: ohai
<ELLIOTTCABLE> devyn: bad timing
<ELLIOTTCABLE> I was fre ALLLL DAAAAY
<ELLIOTTCABLE> and now my plans are kicking in
<ELLIOTTCABLE> just got home with JD and a new fren
<ELLIOTTCABLE> but
<ELLIOTTCABLE> yeah
<ELLIOTTCABLE> so
<ELLIOTTCABLE> putting
<ELLIOTTCABLE> Paws operations
<ELLIOTTCABLE> into Scripts
<ELLIOTTCABLE> basically.
alexgordon has joined #elliottcable
<devyn> Cheery: I don't see anything new in that Escher paper… it's just describing dataflow programming
<devyn> glowcoil: http://www.maymounkov.org/memex/abstract this is really just dataflow programming, right?
<devyn> ELLIOTTCABLE: Paws operations into scripts? I thought you didn't want to do that though
<devyn> ELLIOTTCABLE: I think all we need is an atomic primitive, really… responsibility provides that but I think maybe *that* needs to go in scripts somehow
<devyn> ELLIOTTCABLE: that's all though