Mon, Apr 16, 2018
A shorter version of this post was initially published on April 1, 2018. This is an expanded and rewritten version.
A hash function is a function (in both the math and programming sense) that is “one way” – meaning given the output $y$, it’s near impossible to find the input $x$.
$$H(x) \rightarrow y$$
Hash functions are extremely versatile and are found in all parts of software engineering.
They’re how a a Bitcoin miner tries to guess the next block in a blockchain.
Sun, Apr 8, 2018
If I were to start a startup today I would aspire to ensure nobody in the organization has root on anything. This is my information security dream. This might sound crazy to people, but let me explain.
By “having root” I mean having administrator privileges. This might mean the ability to take actions as the root user using sudo.
How would this work in practice? On the server side, using Google App Engine or Heroku you can avoid needing root access both on the server and in your development environment.
Sat, Mar 31, 2018
This Winter quarter I took Stanford CS255: Introduction to Cryptography. It was a super challenging and enriching course and I learned a ton about the mathematics and algorithms behind the cryptography we depend on every day. Here are some memorable high-level takeaways from the course.
1. Don’t implement crypto yourself Cryptography primitives like AES are extremely powerful and extremely difficult to do correctly. Use a high-level API to ensure you’re doing things right.
Fri, Mar 30, 2018
I updated the design of my blog and moved it from jeff.is to www.jeffcarp.com. The site jeff.is is still available, but I’ll be moving over content shortly and setting up a redirect.
Fri, Jan 5, 2018
In TensorFlow if you’re using a tf.estimator model, for instance tf.estimator.DNNLinearCombinedClassifier, and as part of your automated training infrastructure you want to save the evaluation results as a JSON file, it’s not super straightforward, so here’s how to do it.
Let’s say you define your EvalSpec like this:
eval_spec = tf.estimator.EvalSpec(eval_input_fn, steps=hparams.eval_steps, exporters=[exporter], name='eval') You’ll need to write a new exporter class that will take the eval_result from your evaluation step and save it to a file using the GFile API.
Sun, Oct 22, 2017
While in Tokyo for BlinkOn8, a gathering for Blink and Chromium contributors, I gave a talk at a coding school about the security architecture of Chromium. Here are the slides.