ELLIOTTCABLE changed the topic of #elliottcable to: Embrace, extend, extuingish.
prophile has quit [Quit: The Game]
prophile has joined #elliottcable
prophile has quit [Client Quit]
<devyn> ELLIOTTCABLE: there's nothing wrong with code being a little silly :p
<devyn> I remember seeing a method in the Rust std lib recently, can't remember what, but it made me giggle
Guest45674 has quit [Ping timeout: 244 seconds]
Guest45674 has joined #elliottcable
Guest45674 has quit [Ping timeout: 255 seconds]
Determinist has quit [Quit: Textual IRC Client: www.textualapp.com]
katlogic_ has joined #elliottcable
katlogic has quit [Ping timeout: 255 seconds]
katlogic_ has quit [Ping timeout: 240 seconds]
katlogic has joined #elliottcable
<ELLIOTTCABLE> devyn: hallo
<ELLIOTTCABLE> teaching my little brother to javascript :P
<devyn> aww :)
<ELLIOTTCABLE> ugh
<ELLIOTTCABLE> family stole my student
katlogic_ has joined #elliottcable
katlogic has quit [Ping timeout: 240 seconds]
katlogic_ has quit [Ping timeout: 248 seconds]
katlogic has joined #elliottcable
Guest45674 has joined #elliottcable
colbyl has joined #elliottcable
colbyl has joined #elliottcable
Sgeo has quit [Excess Flood]
devyn_ has joined #elliottcable
<eligrey> was that from my recommendation
<eligrey> ELLIOTTCABLE: i see you read glasshouse recently
devyn has quit [Ping timeout: 276 seconds]
<purr\Paws> [Paws.rs] devyn pushed 4 new commits to master: https://github.com/devyn/Paws.rs/compare/22d23cdbc387...bded0f0f33f8
<purr\Paws> Paws.rs/master 9122a29 Devyn Cairns: Add Locals object to represent something that responds to a name with itself
<purr\Paws> Paws.rs/master e0845da Devyn Cairns: make sure bin/paws_rs runs in the native runtime (not sure if it did already)
<purr\Paws> Paws.rs/master 03fb90d Devyn Cairns: Add oneshot pattern alien helper
Sgeo has joined #elliottcable
devyn_ has joined #elliottcable
devyn_ has quit [Changing host]
devyn_ is now known as devyn
<devyn> ELLIOTTCABLE: example 02 works
<devyn> ELLIOTTCABLE: why is `infrastructure length` the number of members minus one
<devyn> lol
<purr> lol
katlogic has quit [Read error: Connection reset by peer]
colbyl has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
katlogic has joined #elliottcable
<ELLIOTTCABLE> devyn: hi
<ELLIOTTCABLE> eligrey: "recently"?
<ELLIOTTCABLE> I read it *years* ago, and fucking loved it
<ELLIOTTCABLE> devyn: data-length, as in, number of members.
<ELLIOTTCABLE> if you have an empty list, and affix a single item, the length should be one, because it has one item
<ELLIOTTCABLE> and length() would be two if it counted the noughty, which would be very strange
<devyn> if I affix to [infrastructure empty[]], would the object I affix be in #0 or #1?
<devyn> furthermore does prefix ignore the noughty?
<devyn> (reading primitives.js, prefix does not ignore the noughty...)
<ELLIOTTCABLE> watf I just did this
<eligrey> ELLIOTTCABLE: only because you updated it on your goodreads this year
<eligrey> without a completion date
<eligrey> stross needs to make more books like glasshouse and accelerando
<ELLIOTTCABLE> ugh I fucking hate that
<devyn> ...yeah there are better ways of doing that, but okay, I'll keep that in mind when I write prefix/unprefix
<ELLIOTTCABLE> need a jello.rb completion that replaces those URLs with actual keys
<ELLIOTTCABLE> better ways?
<ELLIOTTCABLE> talk to me
<devyn> no, I mean implementation wise, haha, every time you shift you copy the array, and every time you unshift you copy the array so
<devyn> the way you did that is kinda expensive
<devyn> but never mind :p
<devyn> not copy, exactly, but move all of the data in the array around
<ELLIOTTCABLE> oh ew.
<ELLIOTTCABLE> yeah, I getcha.
<devyn> it's unfortunate that JS splice() is so badly named
<ELLIOTTCABLE> I always forget splice :P
<devyn> yeah, me too
<devyn> I wouldn't if it weren't so badly named lol
<purr> lol
<ELLIOTTCABLE> mmmmm
<ELLIOTTCABLE> soooooo
<ELLIOTTCABLE> Paws.
<devyn> I've almost got 03 working
<devyn> just fixing Members to obey noughty
* ELLIOTTCABLE nods
<ELLIOTTCABLE> I think I'm going to start on P-sp
<ELLIOTTCABLE> or whatever the fuck I'mma call it
<ELLIOTTCABLE> I WANT TO BE FUNNNN
<devyn> call it something fun!
<devyn> Paws is a fun name
<devyn> Paws should have some fun things
* ELLIOTTCABLE smiles
<ELLIOTTCABLE> someday. later.
<devyn> <3
<ELLIOTTCABLE> so.
eligrey has quit [Read error: Connection reset by peer]
<devyn> yes?
<ELLIOTTCABLE> sorry, irl friend showed up
<ELLIOTTCABLE> help me, here. let's chat through ]
<devyn> ]?
<devyn> no prob lol
<purr> lol
<ELLIOTTCABLE> ಠ_ಠ
<ELLIOTTCABLE> um
<ELLIOTTCABLE> spec.
<ELLIOTTCABLE> how do.
<ELLIOTTCABLE> sorry, fuckin' irl distracted
<ELLIOTTCABLE> I really. want. to start writing code-specs.
<ELLIOTTCABLE> because I'm so bad at text-specs.
<ELLIOTTCABLE> but I don't want to put the whole project on hold, with how excited I am, just because I fail to be capable of writing specification.
<ELLIOTTCABLE> frankly: is there anything needed beyond, basically, an assert()?
<devyn> well, what even is this assert() meant to do
<ELLIOTTCABLE> I'm trying to figure out what the minimal footprint a spec'ing interface needs.
<devyn> hmmm
<devyn> I mean I don't even think assert() is strictly necessary; compare() doesn't return on failure so
joelteon has quit [Quit: ZNC - http://znc.in]
<ELLIOTTCABLE> hrm
<ELLIOTTCABLE> that's a really good point :P
joelteon has joined #elliottcable
<devyn> you will need some way to assert-not
<devyn> but that can be abstracted I guess as long as you don't need it too early
<ELLIOTTCABLE> hm.
<ELLIOTTCABLE> hm.
<ELLIOTTCABLE> will need to play with it.
<ELLIOTTCABLE> see, problem is, that I don't want to require any abstractions to "get started"
<ELLIOTTCABLE> i.e. to run the very first test that tests the most simple affix, or whatever,
<devyn> yeah, you can write abstractions once you've already verified the behavior you're using to abstract earlier though
<ELLIOTTCABLE> the implementation shouldn't need to be able to run all the code necessary to build the abstraction-tower that makes the test-code itself pretty.
<ELLIOTTCABLE> I'd rather do a really simple, overly-already-abstracted, assert()
<ELLIOTTCABLE> that only exists *when running the spec code*
<ELLIOTTCABLE> that's just it
<ELLIOTTCABLE> the test needs to be simple,
<ELLIOTTCABLE> but it also needs to not use complex abstractions.
<ELLIOTTCABLE> without some native support, I can't imagine that most tests won't be *one* of the two (either complex in abstraction to support them, or very complex in and of themselves to avoid abstraction)
<ELLIOTTCABLE> okay. gonna have to try writing some "tests" just using the natives that exist. hard to talk about this in a vacuum.
<devyn> yeah I think that's the best option
<devyn> just try it
<ELLIOTTCABLE> mmhmm
<purr\Paws> [Paws.rs] devyn pushed 3 new commits to master: https://github.com/devyn/Paws.rs/compare/bded0f0f33f8...c9235d3d3b9a
<purr\Paws> Paws.rs/master cb19c95 Devyn Cairns: Relationships now have own() and disown() to make them child/non-child
<purr\Paws> Paws.rs/master c9235d3 Devyn Cairns: Add more things to system::infrastructure to make example 03 work
<purr\Paws> Paws.rs/master 2e7ac0f Devyn Cairns: Make Members enforce noughty
<purr\Paws> [Paws.js] ELLIOTTCABLE pushed 1 new commit to Master: https://github.com/ELLIOTTCABLE/Paws.js/commit/1762c5371543b74563089a0ce087599023b696ab
<purr\Paws> Paws.js/Master 1762c53 elliottcable: (- fix) interact: Inspect expr-bassed roots correctly
<devyn> at this rate I'll have 04 working very soon
<devyn> gotta wrap my NativeReceivers into Aliens for `infrastructure receiver` though
<purr\Paws> [Paws.rs] devyn pushed 2 new commits to master: https://github.com/devyn/Paws.rs/compare/c9235d3d3b9a...f173b2eb6ea3
<purr\Paws> Paws.rs/master fdc47a2 Devyn Cairns: NativeReceiver-to-Alien wrapper added (Alien::from_native_receiver)
<purr\Paws> Paws.rs/master f173b2e Devyn Cairns: Added stuff to system::infrastructure to make example 04 work
<devyn> ELLIOTTCABLE: fun fact, example 04 produces 1,435 lines of debugging output
<ELLIOTTCABLE> sounds about right. I never wc -l'd mine.
<devyn> ELLIOTTCABLE: also, example 04 executes in 10 ms total, from bin/paws_rs entry to exit
<devyn> :D :D :D
<devyn> and disabling debug at compile time (--cfg=ndebug) shaves off about 1-2 ms
<devyn> and most of this seems to be constant overhead,
<devyn> concatenating examples 02, 03 and 04 into it resulted in 8.7 ms
<devyn> so basically Paws.rs is really fast :3
<devyn> also, wow, branch predictors are pretty damn good these days
<devyn> *ONLY* 1.27% of all branches were misses
<ELLIOTTCABLE> :P
<ELLIOTTCABLE> the real test of that will be when we start to have towers of abstraction doing tooonnnns of things for the simplest assignment!
<ELLIOTTCABLE> omg teaching my lil' bro javascript
<devyn> I like teaching people ^_^
<devyn> it's so fun
Guest45674 has quit [Ping timeout: 272 seconds]
<purr\Paws> [Paws.rs] devyn pushed 1 new commit to master: https://github.com/devyn/Paws.rs/commit/f4bd273c8efb1b6b2d05cd3c8852f7986b7d44a8
<purr\Paws> Paws.rs/master f4bd273 Devyn Cairns: Allow object references to optionally have tags, for more useful debug output
oldskirt has joined #elliottcable
<Cheery> I studied simplex algorithm and cassowary constraint solver today
<Cheery> (again)
<Cheery> this time I think I understood it all
<Cheery> the guy who wrote the cassowary paper, is crappy at writing papers
<Cheery> once I learned the simplex algorithm well, I understood the whole thing in the cassowary paper after skimming over all the garbage.
<Cheery> the algorithm isn't particularly fancy.
<Cheery> to understand this all well, one needs to start from a special case.
<Cheery> such as this:
<Cheery> min 200X + 400Y
<Cheery> X/40 + Y/60 <= 1.0
<Cheery> X/50 + Y/50 <= 1.0
<Cheery> this one is an example in http://www2.isye.gatech.edu/~spyros/LP/LP.html
<Cheery> linear inequality problems, appearing in layouts.
<Cheery> to solve the above, canonical example, introduce slack variables, say they're 'bound'.. basically what it means is this:
<Cheery> s1 <= 1.0 - X/40 - Y/60
<Cheery> s2 <= 1.0 - X/50 - Y/50
<Cheery> erm.
<Cheery> s1 = 1.0 - X/40 - Y/60
<Cheery> s2 = 1.0 - X/50 - Y/50
<Cheery> the slack variable captures the idea of <=, because every variable in canonical setting must be larger than 0
<Cheery> or equal
<Cheery> if you have successfully bounded every variable like this, such that every variable is positive..
<Cheery> it means that you're in basic feasible set, from where one can conclude that there's a solution, and that solution is reached by pivoting.
<Cheery> in the pivoting, it changes what is 'bound'.
<Cheery> 400Y would mean largest change, in the remaining setting one checks that there won't come any negatives
<Cheery> or wait.. I'm messing this up. :)
<Cheery> if it was min 200X + 400Y, it would already be optimal.
yorick has joined #elliottcable
<purr\Paws> [Paws.rs] devyn pushed 4 new commits to master: https://github.com/devyn/Paws.rs/compare/f4bd273c8efb...d7508abf9a8a
<purr\Paws> Paws.rs/master 4028658 Devyn Cairns: Turn off optimizations for tests. RUSTFLAGS='--opt-level=0' is now necessary to turn off optimizations elsewhere
<purr\Paws> Paws.rs/master 7828ca8 Devyn Cairns: Tests for the new Alien helpers
<purr\Paws> Paws.rs/master 811d88c Devyn Cairns: Update the README
prophile has joined #elliottcable
oldskirt_ has joined #elliottcable
oldskirt has quit [Ping timeout: 260 seconds]
Sgeo_ has joined #elliottcable
trolling has joined #elliottcable
prophile has quit [*.net *.split]
Sgeo has quit [*.net *.split]
akshatj-c has quit [*.net *.split]
akshatj-c has joined #elliottcable
trolling has quit [Quit: The Game]
eligrey has joined #elliottcable
colbyl has joined #elliottcable
colbyl has joined #elliottcable
colbyl has quit [Changing host]
colbyl has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<purr\Paws> [Paws.rs] devyn pushed 1 new commit to master: https://github.com/devyn/Paws.rs/commit/a594320da1a198081e7a0bfbf65e1511762ca1eb
<purr\Paws> Paws.rs/master a594320 Devyn Cairns: Add the rest of the system interface as specified so far (hopefully), and some implementation-specific goodies
<devyn> ELLIOTTCABLE: also, if you could write up an example that uses `execution branch` to branch the caller a few times and then print a few times
<devyn> ELLIOTTCABLE: that would be lovely. because I was having trouble with that.
<Cheery> the argumentation "burden of proof is on you" is stupid.
<Cheery> but this has been passing in my mind too.
<Cheery> the problem is that everything is OO really.
<Cheery> if you have an assembly program, you've got your chunks of memory, data that you've divided.
<Cheery> that's already objects.
<Cheery> object orientation..
<Cheery> how can you orient to something, that is so central to your life that you're living in them?
<Cheery> or not orient?
eligrey_ has joined #elliottcable
eligrey has quit [Ping timeout: 264 seconds]
eligrey_ has quit [Ping timeout: 264 seconds]
eligrey has joined #elliottcable
sharkbot has quit [Remote host closed the connection]
sharkbot has joined #elliottcable
Guest45674 has joined #elliottcable
whitequark has joined #elliottcable
<whitequark> thought it would be appropriate
whitequark has left #elliottcable [#elliottcable]
<ELLIOTTCABLE> devyn: huh
<Cheery> my blog engine starts being a bit slow.. It's because it is updating every damn file.
<Cheery> probably going to need to do something for it soon. :)
<Cheery> anyway.. I'll again preview that after a while.. if someone likes, he can help.
vil has quit [Quit: :qa!]
Guest45674 has quit [Ping timeout: 240 seconds]
oldskirt_ has quit [Quit: gone]
oldskirt has joined #elliottcable
oldskirt has quit [Client Quit]
vil has joined #elliottcable
oldskirt has joined #elliottcable
oldskirt has quit [Remote host closed the connection]
alexgordon has joined #elliottcable
<katlogic> Cheery: I haven't seen a single situation where I'd have found weak links or finalizers useful.
<katlogic> is that wrt the `finally` conflict in general?
<katlogic> if the latter you're trying to prove almost every GCed language out there wrong :)
<katlogic> (most support gc finalizers & weak links)
<katlogic> s/in/or in/
<cloudhead> data is just data, objects are a different thing, they have capabilities
<katlogic> sure, makes little sense to receive gc notifications for POD like interned strings or boxed numbers :)
<katlogic> for true objects which can form further arbitrary links, though ...
<ELLIOTTCABLE> hi, all
<ELLIOTTCABLE> devyn: awake?
prophile has joined #elliottcable
yorick has quit [Remote host closed the connection]
joelteon has quit [Quit: ZNC - http://znc.in]
joelteon has joined #elliottcable
<devyn> ELLIOTTCABLE: am now