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