πŸ’Ύ bltroutwine πŸš€ is a user on social.tchncs.de. You can follow them or interact with them if you have an account anywhere in the fediverse. If you don't, you can sign up here.

πŸ’Ύ bltroutwine πŸš€ @bltroutwine@social.tchncs.de

I really would like to upgrade cernan to toml 0.3 but the API has changed juuuust enough that updating github.com/postmates/cernan/bl is going to be a massive pain. I also ought to add feature flags to slim down the default build but, again, config.rs makes that a challenge.

Anyone have examples of projects that have non-trivial configuration but also haven't entered tire-fire territory?

TECH PEOPLE: We have serious concerns that the growth of commercial social media and websites has severe privacy implications for everyone.

TECH PUNDITS: I absolutely LOVE this app that automatically broadcasts my location to everyone within a 10 mile radius in the background. It's the best.

Ended up with a very tidy quickcheck test for tailing a file across rotates: github.com/postmates/cernan/bl

The idea here is that we randomly generate actions against a log file – writes, rotations, deletions etc etc – and then assert that the FileWatcher reads all the appropriate lines from the underlying file, which we keep track of in-model. Not bad for slightly less than 100 lines of code.

It's interesting time in randomized testing land, in short.

Part of the challenge of writing effective QC code is that you might well be testing the same path over and over again. Coverage directed fuzzing corrects this excepting that it's focused explicitly on finding crashes, not making assertions.

"Does not crash" is a property though, if you look at it. Why not add more?

"Beginner's Luck: A Language for Random Generators" addresses the problem with base QC in a different way, exposing distribution as a first class concern.

The Prometheus work in cernan came along nicely over the weekend. PR for that work is here: github.com/postmates/cernan/pu

Of special interest is the Quickcheck model work around the special purpose Prometheus aggregation. I can now say that cernan meets the strict reporting requirements with regard to timestamp / time-series uniqueness.

Doing work in QC suggests to me that car-crashing quickcheck and cargo-fuzz would be a valuable avenue of research.

I love to read stories like this about Apollo history. Lunar orbit rendezvous… what happens if your command module pilot dies?
spaceflightblunders.wordpress.com/2017/04/07/lun…

@randomgeek Got a good chuckle out of your avatar when the notification popped up!

β˜•οΈ

Oooh I have been forgetting the rear thread guide!

Boy howdy, if someone tells you that learning to sew again after a decade and change away from any of it will come right back, uh, well, they're probably more talented with sewing than I ever was. All I've managed to do today is waste a bunch of thread and bird-nest my machine.

The one thing I wish I could correct about undergrad was my squeamishness toward writing marginalia. It's remarkably useful to carry on a conversation with yourself through the text, time. I wonder now what my thinking was while reading Advanced Programming in the Unix Environment or Automata Theory, Languages, and Computation. Now I know these things but then it was new and strange. There's value in that ignorance I've been cut off from.

Oh well!

Drink coffee all morning and read Shūsaku Endō's Silence? Don't mind if I do, hail storm, don't mind if I do.

Come the afternoon I imagine I'll be writing quickcheck code. This'll do until then, that's for sure.

At the same time as we're focused on lolspeed cernan also has to maintain accuracy of implementation. That means quickcheck and fuzzing. I'd like to get integration level fuzzing going Real Soon Now. All that work reduces the unknowns to a tiny, contained, subset of the system. It's a good time.

Effectively, cernan ought to deal with the machine as found and saturate it. Meanwhile cernan must not be overwhelmed itself or lose accuracy. To that end I built a semi-durable queue github.com/postmates/hopper for use in cernan's store and forward internal architecture. We keep accuracy going by the use of CKMS: bounded memory with guaranteed worst case error. It's tidy, I think.