Oblique Strategies: Prompts for Programmers — Do it both ways. Very often doing it both ways is faster than analyzing which is best. Now you also have experimental data instead of just theoretical. Add a toggle if possible. This will let you choose later. Some mistakes are cheaper to make than to avoid.
The Responsibility We Have as Software Engineers — Where’s our Hippocratic Oath, our “First, Do No Harm?” Remember that moment when Google went from “amazing wonderful thing we didn’t have before, which makes our lives so much better” to “another big scary company and holy shit it knows a lot about us!”? That’s coming for our industry and the software engineering profession in particular.
Why Are Eight Bits Enough for Deep Neural Networks? (Pete Warden) — It turns out that neural networks are different. You can run them with eight-bit parameters and intermediate buffers, and suffer no noticeable loss in the final results. This was astonishing to me, but it’s something that’s been re-discovered over and over again.
The Great Decoupling (HBR) — The Second Machine Age is playing out differently than the First Machine Age, continuing the long-term trend of material abundance but not of ever-greater labor demand.
OpenMP Support in LLVM — OpenMP enables Clang users to harness full power of modern multi-core processors with vector units. Pragmas from OpenMP 3.1 provide an industry standard way to employ task parallelism, while ‘#pragma omp simd’ is a simple yet flexible way to enable data parallelism (aka vectorization).
GM: That Car You Bought, We’re Really the Ones Who Own It — GM’s claim is all about copyright and software code, and it’s the same claim John Deere is making about their tractors. The TL;DR version of the argument goes something like this: cars work because software tells all the parts how to operate; the software that tells all the parts to operate is customized code; that code is subject to copyright; GM owns the copyright on that code and that software; a modern car cannot run without that software; it is integral to all systems; therefore, the purchase or use of that car is a licensing agreement; and since it is subject to a licensing agreement, GM is the owner and can allow/disallow certain uses or access. In the future, manufacturers own the secondary market.
Architectural Robots (Robohub) — The concept is named ‘Minibuilders.’ This is a group of robots each performing a specific task. The first robot layers a 15 cm (6 in) footprint or foundation, while a second and a third robot print the rest of the building by climbing over the structures they already printed and laying more material over them. This design is only possible at construction scale where printed layers are solid enough to support a robotic print head.
gigo — Fetching packages in golang can be difficult, especially when juggling multiple packages and private repositories. GIGO (Gigo Installer for Go) tries to solve that problem, effectively being the golang equivalent of Python’s pip.
On Font Design (Kris Sowersby) — The many pairs of hands and eyes involved have made this typeface special for me. For the first time I don’t feel I have ownership of a typeface I have ostensibly “created.” Lovely to read about the design journey for a font.
Why We Use Go — We use Go because it’s boring. Previously, we worked almost exclusively with Python, and after a certain point, it becomes a nightmare. You can bend Python to your will. You can hack it, you can monkey patch it, and you can write remarkably expressive, terse code. It’s also remarkably difficult to maintain and slow.
Unfortunately We Have Renewed Our ICANN Accreditation — You can thank ICANN for this policy, because if it were up to us, and you tasked us with coming up with the most idiotic, damaging, phish-friendly, disaster-prone policy that accomplishes less than nothing and is utterly pointless, I question whether we would have been able to pull it off at this level. We’re simply out of our league here.
Shadow Robot’s Dextrous Hand (Robohub) — The now infamous crab bisque recipe was prepared copying the exact movements of 2011 BBC MasterChef winner Tim Anderson. The robot switches on a hob, scrapes butter into the pan and adds prepared and measured ingredients – from a specific place on the worktop. But, it doesn’t do the chopping… That, says Rich, is an AI problem.
Silicon Valley Primer — a short but interesting precis of what made the Valley great, with stories of the nobility. From a historian. All these new people pouring into what had been an agricultural region meant that it was possible to create a business environment around the needs of new companies coming up, rather than adapting an existing business culture to accommodate the new industries. In what would become a self-perpetuating cycle, everything from specialized law firms, recruiting operations and prototyping facilities; to liberal stock option plans; to zoning laws; to community college course offerings developed to support a tech-based business infrastructure.
Introduction to GraphQL — We believe that GraphQL represents a novel way of structuring the client-server contract. Servers publish a type system specific to their application, and GraphQL provides a unified language to query data within the constraints of that type system. That language allows product developers to express data requirements in a form natural to them: a declarative and hierarchal one. The nightmare of the ad hoc API morass is a familiar one …
Critical Steps to Building First Quantum Computer — The IBM breakthroughs, described in the April 29 issue of the journal Nature Communications, show for the first time the ability to detect and measure the two types of quantum errors (bit-flip and phase-flip) that will occur in any real quantum computer. Until now, it was only possible to address one type of quantum error or the other, but never both at the same time. This is a necessary step toward quantum error correction, which is a critical requirement for building a practical and reliable large-scale quantum computer.
Five Short Stories About the Life and Times of Ideas (Nautilus) — In the following five short chapters, David Krakauer, an evolutionary theorist, and president elect of the Santa Fe Institute, haven of complex systems research, examines five facets of chain reactions, each typifying how ideas spread through science and culture. Together they tell a story of how the ideas that define humanity arise, when and why they die or are abandoned, the surprising possibilities for continued evolution, and our responsibility to nurture thought that might enlighten our future.
Go By Example — a chance to replicate the experience of learning Perl or PHP, whereby you know nothing but copy and adapt other people’s code until it works and you’ve empirically acquired an intuition for what will trigger the compiler’s deathray and eventually someone points you to the docs that were opaque and suddenly a lightbulb goes off in your head and you shout “omigod I finally get it!” and the Real Engineer beside you rolls their eyes and gets back to genericising their containers for consensus or whatever it is that Real Engineers do now.
Chinese Shopping for Robotic Ventures — Amazon has drones, Facebook has VR, Google and China are fighting it out for Robots. Meanwhile, Apple is curled up in a mountain filled with gold, their paws twitching and stroking their watches as they dream of battles to come.
Robot Arm Brings Humanity Back to the Stone Age (IEEE) — Using robots to build a massive database of scrape/wear patterns for different stone-age tools. Currently, Iovita is experiencing some opposition from within his own profession. Some believe that manual experiments are closer to the past reality; others find that use-wear analysis in general does not advance archaeological theory. Iovita thinks this is mainly due to the fact that most archaeologists have a humanities background and are not familiar with the world of engineers. OH SNAP.
On Code Review (Glen D Sanford) — Pending code reviews represent blocked threads of execution.
Four Days of Go (Evan Miller) — Reading Go’s mailing list and documentation, I get a similar sense of refusal-to-engage — the authors are communicative, to be sure, but in a didactic way. They seem tired of hearing people’s ideas, as if they’ve already thought of everything, and the relative success of Go at Google and elsewhere has only led them to turn the volume knob down. Which is a shame, because they’ll probably miss out on some good ideas (including my highly compelling, backwards-incompatible, double-triple-colon-assignment proposal mentioned above). Under this theory, more of the language choices start to make sense. There is no ternary operator because the language designers were tired of dealing with other people’s use of ternary operators. There is One True Way To Format Code — embodied in gofmt — because the designers were tired of how other people formatted their code. Rather than debate or engage, it was easier to make a new language and shove the new rules onto everyone by coupling it with Very Fast Build Times, a kind of veto-proof Defense Spending Bill in the Congress of computer programming. In this telling, the story of Go is really a tale of revenge, not just against slow builds, but against all kinds of sloppy programming.
Tempescope — Ambient weather display for your home. In my home, that’s a window. (via Matt Webb)
Perfect Security (99% Invisible) — Since we lost perfect security in the 1850s, it has has remained elusive. Despite tremendous leaps forward in security technology, we have never been able to get perfect security back. History of physical security, relevant to digital security today.
keywhiz — a system for managing and distributing secrets. It can fit well with a service oriented architecture (SOA).
Call Me Maybe: MongoDB Stale Reads — a master class in understanding modern distributed systems. Kyle’s blog is consistently some of the best technical writing around today.
3rd Person Driving (IEEE) — A Taiwan company called SPTek has figured out a way to use an array of cameras to generate a 3-D “Around View Monitor” that can show you multiple different views of the outside of your car. Use a top-down view for tight parking spaces, a front view looking backward for highway lane changes, or a see-through rear view for pulling out into traffic. It’s not a video game; it’s the next step in safety.
Cross-Platform Debugger for Go — take the source code of a target program, insert debugging code between every line, then compile and run that instead. The result is a fully-functional debugger that is extremely portable. In fact, thanks to gopherjs, you can run it right here in your browser!