Here’s a recap of my experience at Midwest.io: an eclectic collection of talks covering the latest trends, best practices, and research in the field of computing.
There were many great talks, I highly recommend catching some (or all) of the videos!
Dr. Jeff Norris Gave a visually compelling story of innovation and what it means to him. This talk was more a TED style, but worth seeing particularly because of his visual story telling. It’s a bit difficult to explain, but very-much worth seeing as the augmented reality presentation style alone is technically compelling.
“Reflect with me: We launched the tallest building in Florida into space!”
Leah Hanson gave a really interesting explanation of time and space complexity on a simple type inference in a loop as well as nice debugging tools available in the Julia language. This was a particularly enlightening take on dynamic language performance pitfalls that aren’t necessarily readily obvious in usage.
Micah Whitacre shared how using Apache Crunch can help with better defining MapReduce pipelines; with the goal to make them easier to write, more testable, and efficient. It’s worth taking a glance at his breakdown of an example workflow and mapping the components with Crunch.
Hudl shared their deployment changes that have resulted in faster deploys and greater application stability. A couple of great takeaways were: start doing some research when you’re feeling lost; this ultimately resulted in their use of many Netflix components (using them as a guide). Importance of key performance indicators (KPIs) to benchmark themselves with the changes they implemented (the largest of which was the number of deploys per day and the number of hot-fixes). Also the structure of teams that map to service oriented components, which allowed them to lean on using components both technically and culturally.
Basho / Riak’s John Daily: “We talk about reusable code, but we almost never talk about rebootable code. … Failure management shouldn’t be an add-on.” Erlang is designed for failure, speed, and has very small processes. “Network transparency: the machine boundary is an ugly place… Async”
Erlang resources: https://gist.github.com/macintux/6349828
Avdi Grimm, of Ruby Rogues and Ruby Tapas, gave an overview of diving into a Mythbusters style attack on the hypothesis: “is bash
web scale?”. Obviously quite a bit of humor and somewhat of a wild-goose-chase in technology; but, the takeaway: “Outlier knowledge - comes from asking outlier questions”. Also the discovery of some new commands, for example: coproc
, stdbuf
, mitmproxy
.
Julia Grace from Tindie gave a nice overview and opinions of the state of hobbyist hardware. Particularly noting: “2014 is the 50th anniversary of BASIC… There’s an analog to hardware right now”, i.e. hardware is accessible, usable, and manipulatable by the layman.
Ryan Brush gave a great architecture vs. engineering analogy of blueprint:floor-plan::code:(projection) flow-chart. Noting that we can provide more “live” documentation that assists stakeholders without having to be experts in the underlying components.
Josh Wills shared some experiences of working with machine learning at Google and his opinions of what it takes to have an operationally useful environment. Good guiding principle: “any same thing, but faster is always good”.
Prerequisite for industrial machine learning:
Industry examples:
Themes:
Patrick McFadin gave an entertaining and technical overview of storing time-series data in Cassandra. Time series database requirements - Baron Schwartz (of High Perf. MySQL) - good basis for needs. Interesting tidbit: Cassandras use of TimeUUID (UUID sortable by time) - v1 UUID.
Michael Goetz overviewed a workflow building VMs from scratch and using containers (with Docker) to speed up deployment and get a handle on deployed/configured environments. Obviously using Chef as the configuration management tool, but also noting the physical/time constants like always building from scratch can be very time consuming. This also introduces the concept of convergence (coming into alignment) vs congruence (rebuilding from scratch).
Hallway-track takeaways:
Justin Collins shared his views and opinions in the exploration of MANETs and what technologies we’d need to support the next “killer-app” in this space. This was an interesting introduction into technologies that are emerging and necessary, particular in mobile, computing; also notable: peer-to-peer and Delay-tolerant networking (DTN).