This Week in Programming: The Inner Workings of AI, or the Stuff of Nightmares

17 Mar 2018 6:00am, by

You might be already familiar with this by now, but while artificial intelligence can be used for a variety of tasks — from automating your work to decision making and more — peeking inside the process can be the stuff of hallucinogenic drugs and nightmares. And this week, Google gives us a better peek into the inner workings of neural networks than simply the disturbing images.

But! If you happen to have missed the disturbing parts, don’t miss out on the wonder of Google’s Deep Dream and videos like this one.

If you can still focus after that, well, here’s what we’ve found going on in the world of programming this week.

This Week in Programming

  • StackOverflow’s 2018 Developer Survey: Depending on where you look, the latest StackOverflow developer survey offers either interesting analysis or allegations of “survey bias.” As with most any company-sponsored surveys of this sort, perhaps just take the whole thing with a grain of salt? Pick and choose what stats work for you? Anyhow, moving on — according to the company, the survey seems to show that “DevOps and machine learning are important trends in the software industry today.” Okay, that doesn’t seem to be a stretch. Also, “only tiny fractions of developers say that they would write unethical code” — well, that just depends on how you define “ethical” right? Oh and, my favorite, “developers are overall optimistic about the possibilities that artificial intelligence offers” — especially in the automation of their own jobs. No, really, the survey has a pretty good sample size when it comes to this sort of thing. We’re talking more than 100,000 developers in 180 countries. It’s worth taking a gander, and the SDTimes article digs a little deeper on a few topics.
  • Google’s Summer of Code Open to Applicants: For you students out there (I mean, we’re all students of LIFE, right?) applications are now open for Google Summer of Code 2018. But no, really, you need to be an actual student (sorry) to take part in Google’s Summer of Code, which works to help you “learn the ins and outs of open source software development while working from home” by providing a stipend alongside a “passionate community of mentors.” Applications are being accepted on the program site between now and Tuesday, March 27, 2018.
  • Google Opens Sources Semantic Image Segmentation: Semantic image segmentation is the separation of different parts of an image into objects, represented by words — “road,” “sky,” “person,” “dog,” for example. It’s how your phone can now separate out people in “portrait mode.” And now, Google has decided to open source semantic image segmentation with DeepLab in TensorFlow. The model, DeepLab-v3+, is implemented in TensorFlow and the release includes DeepLab-v3+ models built on top of a convolutional neural network (CNN) backbone architecture.
  • …And Resonance Audio for AR/VR: Google also announced that it was open sourcing Resonance Audio this week. Resonance Audio is spatial audio SDK that launched last year, which lets developers create AR and VR experiences with sound that seems to come from all directions. Google has open sourced Resonance Audio as a standalone library, alongside associated engine plugins, VST plugin, tutorials, and examples with the Apache 2.0 license.
  • What’s in a Name? And last and certainly least in Google’s news this week, it has decided to rename Android Wear to Wear OS, which is only really significant to you as a developer because it might signal a move by the company to do something more with its smartwatch strategy at May’s Google I/O. Be on the lookout, if you care.
  • Rust’s Official 2018 Roadmap: A while back, we told you about Rust’s Roadmap for an Epoch Release, but it looks like that blog post has since been removed. Perhaps it said too much or not enough. Either way, the roadmap announcement is official now, with Rust’s 2018 roadmap being published with perhaps more and fewer details at the same time. (We don’t see any specific release dates, such as the September 13th release previously promised, for example.) Either way, it seems the goals are much the same — increase productivity and accessibility. And speaking of making Rust acceptable (BTW, it was shown as one of the most loved languages in that previously discussed StackOverflow Survey), a wonderful little Rust Tutorial has been making the rounds this week as well, so if you’re looking to jump in, that’s a good place to start.
  • Language Popularity Over Time: I love a good graphic, I’ll admit it. And while I failed to include the latest language rankings by Redmonk last week, this week the company comes through with a graphic showing these same rankings over time. It’s interesting to see how some languages just disappear entirely off the list. As the blog’s author notes, however, “the most striking aspect is just how stable the top ten languages are.” Do you doubt the staying power of JavaScript? Just look at it, sitting there at number one… forever.

  • Improved Error Messages in GCC 8: I still remember working with some no-name template language at one of my first developer gigs, more than 15 years ago now, and dealing with non-specific error messages. You see, there were 30,000 lines of code from the previous guy (Comments? What are those?!) and a semi-colon went missing somewhere along the way. And it was my job to find it. Well, thankfully error codes for C developers aren’t nearly that bad and they’re about to get better, with the latest usability improvements in GCC 8. Check out the post for full details and, if you have any suggestions, I would recommend making them as the author seems to be paying close attention and taking notes for the next release — for example, editing the syntax of the error message to make it more readable.
  • Free Machine Learning Model Training with Google Colab: This one from HackerNoon, a simple way to train your machine learning models on Google’s GPUs for free. Who doesn’t like free? As the author notes, “training your model is hands down the most time consuming and expensive part of machine learning. Training your model on a GPU can give you speed gains close to 40x, taking 2 days and turning it into a few hours.” With Google Colab, however, you can simply sign in with your Google account and “get an unlimited supply of 12 hours of continuous access to a k80 GPU.”
  • JavaScript for the IOT: This one from our own pages, TheNewStack looks at how JavaScript breaks into the Internet of Things with Fitbit’s use of JerryScript, a lightweight JavaScript engine built to power the IOT. According to the story, Fitbit’s Ionic release “represents one of the first instances of JerryScript being used in production” and “signifies a big win for the JavaScript community’s work toward getting JavaScript in IoT production environments.” At the same time, Fitbit released its SDK, allowing developers to create applications for Fitbit OS, marking the first time Fitbit has opened up its platform to external developers. JerryScript stands out from JavaScript by performing on “resource-constrained devices such as microcontrollers, thanks to its ability to run on devices with less than 64KB of RAM, with less than 200KB ROM space required for the code of the engine.”
  • GitHub’s Atom 1.25: GitHub has released the latest version of its beloved IDE, Atom 1.25, which includes “GitHub package improvements, improved syntax highlighting and code folding, Python and HTML language improvements and more.” For example, for Python, the tokenizer now supports function annotations, async functions, string formatting, f-strings, and binary strings, and within HTML documents, style attributes are tokenized as CSS. The editor also has some smart changes to how it goes about code folding, which is best illustrated in the blog post — suffice it to say that it no longer relies on indentation.

A newsletter digest of the week’s most important stories & analyses.