Four short links: 26 June 2019
Ethics and OKRs, Rewriting Binaries, Diversity of Implementation, and Uber's Metrics Systems
- Ethical Principles and OKRs — Your KPIs can’t conflict with your principles if you don’t have principles. (So start by defining your principles; then consider your principles before optimizing a KPI; monitor user experience to see if you’re compromising your principles; and repeat) (via Peter Skomoroch)
- retrowrite — Retrofitting compiler passes through binary rewriting. Paper. The ideal solution for binary security analysis would be a static rewriter that can intelligently add the required instrumentation as if it were inserted at compile time. Such instrumentation requires an analysis to statically disambiguate between references and scalars, a problem known to be undecidable in the general case. We show that recovering this information is possible in practice for the most common class of software and libraries: 64-bit, position independent code (via Mathias Payer)
- Re: A libc in LLVM — very thoughtful post from a libc maintainer about the risks if Google implements an LLVM libc. Avoiding monoculture preserves the motivation for consensus-based standards processes rather than single-party control (see also: Chrome and what it’s done to the web) and the motivation for people writing software to write to the standards rather than to a particular implementation.
- M3 and M3DB — M3, a metrics platform, and M3DB, a distributed time series database, were developed at Uber out of necessity. After using what was available as open source and finding we were unable to use them at our scale due to issues with their reliability, cost and operationally intensive nature we built our own metrics platform piece by piece. We used our experience to help us build a native distributed time series database, a highly dynamic and performant aggregation service, query engine and other supporting infrastructure.