Four short links: 20 July 2020
Insect-Mounted Cameras, Augmented Developers, Argument Mapping, and CD Pipelines
- A Bug-Sized Camera for Bug-Sized Robots and Bug-Sized Bugs — With a focus on small size and efficiency, they started with an off-the-shelf ultra low-power image sensor that’s 2.3 mm wide and weighs 6.7 mg. They stuck on a Bluetooth 5.0 chip (3 mm wide, 6.8 mg), and had a fun time connecting those two things together without any intermediary hardware to broadcast the camera output. A functional wireless camera also requires a lens (20 mg) and an antenna, which is just 5 mm of wire. An accelerometer is useful so that insect motion can be used to trigger the camera, minimizing the redundant frames that you’d get from a robot or an insect taking a nap. An astonishing piece of engineering, but also a disturbing advance against privacy.
- AI Writing Code Makes Software Engineers More Valuable — tools do not lead to less need for Software Engineers, because there is not a fixed limit of demand for software to be built. Rather, they allow more and better software to be built faster, opening new opportunities to apply software solutions where they weren’t previously economical, growing the software industry and actually increasing the value of the skillset needed to build software, which again, is not the same thing as the ability to write code. It’s good to see developers starting to engage with the idea of AI code generation. They have to be careful not to fall into the “only humans can …” trap, which becomes the secular version of “God of the gaps”. Only people can code — oh, code can code? Well, only humans can interpret requirements. Oh, code can translate requirements to code? Well, only humans can …
- Arguman — an [open source] argument analysis and mapping platform. I’m a huge fan of software that tries to amplify the better angels of our nature.
- Pipeline Patterns for Continuous Delivery — (1) Pipeline logic is codified, stored alongside application or infrastructure code and utilizes containerized runners. (2) Reusable libraries contain common pipeline logic that is referenceable from pipeline code and independently developed and tested. (3) Build and deploy pipelines should be logically separated, independently runnable and triggered by automated or manual events. (4) Branch commits, pull requests, and merges to the mainline can all trigger different pipeline behavior, optimized to the team’s way of working. (5) Every commit automatically triggers the right pipeline, with build pipelines especially optimized for speed and quick reporting of any issues. (6) Only versioned packages produced by the build pipeline are deployed and these deployments are triggered by humans or automated events. (7) Deploy tagged releases to production and automate the paperwork but leave a paper trail.