Four short links: 30 April 2019
AI Engines, Self-Grading Labs, Software Project Heroes, and Embedded Rust
- Artificial Intelligence Engines — In this richly illustrated book, key neural network learning algorithms are explained informally first, followed by detailed mathematical analyses. (via Tom Stafford)
- CMU Self-Grading Labs — an excellent next step in CS education. Feedback is more effective the closer to the moment of error it is. (via Hacker News)
- Why Software Projects Need Heroes: Lessons Learned from 1,100+ Projects — A “hero” project is one where 80% or more of the contributions are made by 20% of the developers. In the literature, such projects are deprecated since they might cause bottlenecks in development and communication. However, there is little empirical evidence on this matter. Further, recent studies show that such hero projects are very prevalent. Accordingly, this paper explores the effect of having heroes in project, from a code quality perspective. We identify the hero developer communities in 1100+ open source GitHub projects. Based on the analysis, we find that (a) hero projects are majorly all projects; and (b) the commits from “hero developers” (who contribute most to the code) result in far fewer bugs than other developers. That is, contrary to the literature, heroes are standard and a very useful part of modern open source projects. Extrapolation to your own software team is done at your own risk. As someone on Hacker News said, “Of course, nearly every GitHub project is going to have heroes—we call them “maintainers.”
- The Embedded Rust Book — An introductory book about using the Rust programming language on “bare metal” embedded systems, such as Microcontrollers.