As a programmer, perhaps user interface design isn’t your so-called “wheelhouse” per se. Sorting algorithms and efficient database schema? Sure, but things like color palettes and “the rule of thirds,” you leave that stuff for those weird-sweater wearing hippies in the art department. That works, until an end-user accidentally tells all the residents of the Hawaiian Islands that there’s an inbound nuclear missile headed their way because you stuck the regular old real missile alert link next to the test missile alert one.
This is the screen that set off the ballistic missile alert on Saturday. The operator clicked the PACOM (CDW) State Only link. The drill link is the one that was supposed to be clicked. #Hawaii pic.twitter.com/lDVnqUmyHa
— Honolulu Civil Beat (@CivilBeat) January 16, 2018
When that happens maybe, just maybe, it’s time to up your game. Seriously, look at that design. Even an inline, style override making the actual alert bold and flashing red would do in this case. It’s just not that hard to make this less confusing. Or you could follow GitHub’s practical yet overbearing lead…
— Mattias Blockchain (@mattiasgeniar) January 15, 2018
And while you’re maybe not programming missile alert test systems, you likely have your own mini equivalent. Then again, even when you try hard, sometimes you do that thing, where you…well, you know the one.
If you haven’t been fully inundated yet with the variety of ways to mess this thing up, definitely go take a gander at the programmer humor subreddit, which has been beating this horse dead for days now. It’s a worthwhile waste of your time.
all you designers out there acting like you haven’t accidentally put a nuclear ballistic missile warning link next to the “just testing” link before pffft i’ve watched you deploy hot fixes to production you’re not much better https://t.co/tH23f4Jhft
— Zach Holman (@holman) January 16, 2018
And with that, on to the past week in programming, starting with a newly released video from MIT on deep learning — because when you can’t trust humans to do things, it’s time to put the machines in charge!
This Week in Programming
- Deep Learning for Design Mock-Ups: We all know that we’re going to be replaced by robots, right? In the meantime, though, deep learning and AI will help us do what we do, and this week we’re shown how to turn design mock-ups into code with deep learning. According to this post, “the largest barrier to automating front-end development is computing power,” but “deep learning algorithms, along with synthesized training data” can set us on the path to exploring artificial front-end automation now, instead of in a couple years. Read on to find out how to “teach a neural network how to code a basic HTML and CSS website based on a picture of a design mockup.” Neat.
- Bringing Functional Programming to Kotlin: As you know it thus far, Kotlin is an object-oriented programming OOP language, much like the language it attempts to replace. But the latest announcement brings functional programming to the traditionally OOP language with Arrow for Kotlin, a library born from the fusion of KΛTEGORY and funKTionale. The new library aims to “merge into a single library that would provide users in Kotlin with a unified and reasonable approach to typed FP that avoids issues related to split libraries and binary incompatibilities between data types and type classes for users.” As pointed out by Jaxenter, “Arrow provides users in Kotlin a unified and reasonable approach to typed FP” that “avoids issues related to split libraries and binary incompatibilities between data types and type classes for users.” Arrow is available to try out now.
- Another Kotlin Update: In further Kotlin news, Kotlin 1.2.20 is out, bringing some basic bugfixes and tooling updates with it. The latest update adds support for Gradle build cache, improved incremental compilation for Android and mixed Kotlin/Java projects, IDE support for the new Kotlin style guide, and inlay hints in the editor for implicit parameters and receivers of lambdas (more about lambdas later).
- And Angular 5.2: In other dot release news, SDTimes notes that Angular 5.2 is now available, adding “improved type checking for templates, support for TypeScript 2.6, and improved router parameters and data inheritance,” as well as several bug fixes. In addition, Angular now supports TypeScript 2.4, 2.5, and 2.6.
every library should have a good science fiction and fantasy section pic.twitter.com/Yzp9VtezJk
— Adam ??️? (@adamjogrady) January 15, 2018
Now that we’ve gotten through the big “news” of the week, we can get back to rehashing the year past.
This Week in Rehashing the Future Past
- Microsoft Gets Git in 2017: While we’re still looking at the year past, Microsoft gives itself a pat on the back for its performance contributions to Git in 2017. According to the company’s blog post, the “Visual Studio Team Services (VSTS) hosts the largest Git repository in the world: the Windows source code,” which involves “keeping a primary copy of the code available in the cloud and having it be performant while being updated by over 4,000 users at the same time.” As you might expect, they want to keep things moving along, and so they found ways to optimize code.
- Go Get 2018, Google Style: You might aspire to one day call yourself a “Googler”, and if so, there are eight things you need to know about Hash Code 2018, according to the big G. Hash Code is “Google’s flagship team programming competition for students and professionals in Europe, the Middle East, and Africa” and registration for Hash Code 2018 is now open. Hash Code is currently in its fifth incarnation, and last year had more than 26,000 participants. The competition starts Thursday, March 1, 2018, with an online qualification round that begins with a YouTube livestream at 18:30 CET.
- Some Love for Rust in 2018: Just recently, there was a call for call for community blog posts, and hence, a response: Rust in 2018: it’s way easier to use! According to the author, who’s been using Rust on and off since late 2013, the language is “SO MUCH EASIER than it was the last time I tried it” and he has some ideas for where the language needs to go next. As an “intermediate Rust programmer (definitely not advanced!)”, he has several suggestions, but it can boil down to two simple goals. First, issue “a major release marketed as ‘Rust: it’s easier to use now,'” and second, “explain on rust-lang.org who the Rust programming language is for.” Voila!
This is another one of those things we need to get out of the way, but every time I read “Lambda,” I’m hopelessly returned to my youthful viewings of Revenge of the Nerds and the only fraternity I (and likely many of you) would ever join — the Tri-Lambs. That said, there’s some news in the world of Lambda and programming this week…
This Week in Lambda, Lambda, Lambda
- Lambda and C#: While they’re at it, Amazon is also announcing that AWS Lambda supports C# (.NET Core 2.0), which, well, means the same thing as its announcement about Go – you can now develop your AWS Lambda function code in C# using the .NET Core 2.0 and run code without provisioning and managing servers.
- Instead of Lambda: If however, you’re not wanting to deal with official implementations and all that jazz, you can also just use an open source GitHub-like platform as an alternative for AWS Lambda, called 1Backend, that just “happened” to pop up on Hacker News at the appropriate time this week. The post actually includes several others. So, there’s that.
Feature image: A Terminal High Altitude Area Defense (THAAD) interceptor launched from the Pacific Spaceport Complex Alaska in Kodiak, Alaska, via the U.S. Department of Defense Missile Defense Agency.