"programming" entries

Four short links: 26 May 2015

Four short links: 26 May 2015

Keyboard Programming, Oblique Strategies, Engineering Ethics, and Visualisation Gallery

  1. Introduction to Keyboard Programming — what happens when you press a key. (hint: a lot)
  2. Oblique Strategies: Prompts for ProgrammersDo 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.
  3. The Responsibility We Have as Software EngineersWhere’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.
  4. Gallery of Concept Visualisation — plenty I hadn’t seen before.
Comment
Four short links: 25 May 2015

Four short links: 25 May 2015

8 (Bits) Is Enough, Second Machine Age, LLVM OpenMP, and Javascript Graphs

  1. 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.
  2. 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.
  3. OpenMP Support in LLVMOpenMP 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).
  4. JS Graphs — a visual catalogue (with search) of Javascript graphing libraries.
Comment
Four short links: 22 May 2015

Four short links: 22 May 2015

Automobile Ownership, Architectural Robots, UX Psychology, Go Packages

  1. GM: That Car You Bought, We’re Really the Ones Who Own ItGM’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.
  2. 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.
  3. The Psychology of UX — digging into 10 things about human psychology that should inform UX.
  4. gigoFetching 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.
Comment
Four short links: 21 May 2015

Four short links: 21 May 2015

Font Design, Pro Go, ICANN Foolishness, and Bad Organisations

  1. 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.
  2. Why We Use GoWe 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.
  3. Unfortunately We Have Renewed Our ICANN AccreditationYou 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.
  4. Why Good Developers Write Bad Code (PDF) — trigger warning: software development pathologies from the real world.
Comment
Four short links: 8 May 2015

Four short links: 8 May 2015

Robot Hands, Top Robots, Dependency Management, Unix Utility

  1. 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.
  2. Top 10 Most Innovative Companies Of 2015 In Robotics (Fast Company) — from exoskeletons to limbs to inflatables and toys.
  3. go get Considered Harmful — because it’s 2015 and we’re still trying to figure out dependency management and versioning. If you want me, I’ll be in a corner waiting for the rest of CPAN to install.
  4. Pathpicker — nifty utility. I can’t believe it’s 2015 and we’re still able to find useful Unix utilities to create.
Comment
Four short links: 4 May 2015

Four short links: 4 May 2015

Silicon Valley Primer, GraphQL Intro, Quantum Steps, and Complex Systems

  1. 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.
  2. Introduction to GraphQLWe 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 …
  3. Critical Steps to Building First Quantum ComputerThe 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.
  4. 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.
Comment
Four short links: 1 May 2015

Four short links: 1 May 2015

Go Examples, Penrose Map Hacks, Robotics Industry, and Archaeological Robotics

  1. 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.
  2. Penrose Binning — entrancing visual hack for maps.
  3. 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.
  4. 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.
Comment
Four short links: 23 April 2015

Four short links: 23 April 2015

Medical Robots, Code Review, Go Lang, and Ambient Weather

  1. Future of Working: Real World Robotics, Medical & Health Robotics (YouTube) — interesting talk by Kiwi Foo alum, Jonathan Roberts, given to a Future of Working event. New class of tools, where the human uses them but they won’t let the human do the wrong thing. (via RoboHub)
  2. On Code Review (Glen D Sanford) — Pending code reviews represent blocked threads of execution.
  3. 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.
  4. TempescopeAmbient weather display for your home. In my home, that’s a window. (via Matt Webb)
Comment
Four short links: 22 April 2015

Four short links: 22 April 2015

Perfect Security, Distributing Secrets, Stale Reads, and Digital Conversions

  1. 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.
  2. keywhiz a system for managing and distributing secrets. It can fit well with a service oriented architecture (SOA).
  3. 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.
  4. Users Convert to Digital Subscribers at a Rate of 1% (Julie Starr) — and other highlights of Jeff Jarvis’s new book, Geeks Bearing Gifts.
Comment
Four short links: 21 April 2015

Four short links: 21 April 2015

Chromebooks and Arduinos, 3rd Person Driving, Software Development, and Go Debugging

  1. Chromebooks and Arduino — two great edtech tastes that taste great together.
  2. 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.
  3. Lessons Learned in Software Development — omg every word of this.
  4. Cross-Platform Debugger for Gotake 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!
Comment