Skip to content

Instantly share code, notes, and snippets.

@gniemann
gniemann / reading_list.md
Last active April 8, 2021 18:50
Reading list
  1. Designing Data-Intensive Applications by Martin Kleppmann (2017). This is a great technical primer on distributed systems and the algorithms that power them. Probably the single best book for quickly building understanding of how modern data systems work. Includes topics such as: RDBMS and B-tree indices, Log structured merge (Kafka, Cassandra and others), isolation levels in RDBMS, consensus systems (zookeeper).
  2. Fluent Python By Luciano Ramalho (2015). A bit dated but still overall the best intermediate / advanced Python book I've read.
  3. Unit Testing Principles, Practices, and Patterns By Vladimir Khorikov (2020). Excellent intermediate/advanced book on testing philosophy. I wrote a short blurb on it here.
@gniemann
gniemann / unit_testing.md
Created January 19, 2020 18:11
Review of "Unit Testing Principles, Practices, and Patterns"

Last month, I read "Unit Testing Principles, Practices, and Patterns" by Vladimir Khorikov. This is a short collection of my thoughts on this work.

Overall, I found the book to be the best intermediate to advanced works on testing that I have read. This is not your 'typical' unit testing book that first tries to convince you that testing is important, than walks you through how to create very rudimentry unit tests. Neither does it expose a particular development practice like TDD. Rather, Khorikov starts with the premise that you already see the value in testing and are already writing tests. The goal of the book is to help you write better, more useful tests by identifying the attributes of a good test. As a developer recogonizes and understands the attributes of a good test suite and how to write one, they begin to write better, more testable code, creating a virtuious cycle in the codebase.

Khorikov's big idea comes in chapter 4, after he has described the st

@gniemann
gniemann / commands.py
Created July 18, 2018 14:52
LLDB command for identifying views in a broken constraint.
'''
LLDB commands for debugging iOS projecs in XCode
References:
* [LLDB Python reference](https://lldb.llvm.org/python-reference.html)
* [LLDB Python API[(https://lldb.llvm.org/python_reference/index.html)
To install, put this in your ~/.iidbinit:
command script import [path to this file]
'''
import UIKit
import AVKit
import GLKit
class BlurredVideoView: GLKView {
var player: AVPlayer!
var output: AVPlayerItemVideoOutput!
var item: AVPlayerItem!
var displayLink: CADisplayLink!