Category Theory for Programmers
Lately I’ve become interested in category theory and it’s application to software engineering. After watching a video titled “Programming isn’t Math” by Oscar Boykin, I decided to spend a bit of time watching videos on libraries out of Twitter and conferences around category theory, Algebird, Storehaus and other libraries. Here’s a list of a few videos along with a brief summary of each.
Oscar Boykin, Programming Isn’t Math
- generalizing a matrix library with monoids
- HyperLogLog as a monoid
- cardinality with ~1% error for large cardinalities w/storage of ~16 KB
- at around 28:00 mentions int2BigEndian isn’t a true bijection, interesting example of a coded bijection that isn’t truly a bijection but still useful
- mentioned Spire
Ian O’Connell, Algebird: SF Scala @Twitter
- apply abstract algebra to enhance usage of hyperloglog and count min sketch
Oscar Boykin, Counting Approximately At Scale
- Inspiration for Scalding: Cascading was great but Java was way too verbose
- Scalding: Scala collections for Hadoop
- Chill: serialization for JVM (not type safe)
- Algebird: generalized aggregations
- Storehaus: abstract modeling for key-value stores
- Summingbird: real time streaming version of Scalding
- An Aggregator Abstraction