This Week in Programming: Can Developers Help Save the World?
It’s been a week (or three) of some doomsday-esque headlines about all-time, record-breaking warm weather, the potential for a pandemic, and the resulting dive of the stock market that has me pleading to the technological gods above for some solutions. Really, though, that question is partly an “is it possible or not” with a dash of “could somebody go ahead and fix this already” and a sprinkle of “can we trust technology to help?” I realize, of course, that technological implementation can generally be a pretty mixed bag when it comes to good intentions, follow through, and end results.
Technology does as we bid it do, whether we realize our bidding or not.
Programming will never advance, so long as we continue to view programming, debugging, and execution as separate activities.
Alternatively: Compilers considered harmful.
Python won via the REPL, but Excel is still king of accessible modeling.
(h/t @rsnous for asking a good Q)
— Peter Wang (@pwang) February 24, 2020
At the same time, I do retain some glimmer of hope in my daily-decreasingly technologically solutionistic soul. I think we can, I think we can, I think we can. (To wit: my graduating thesis of early 2002 was titled “Hypertext: An Emancipation of Textuality,” in which I argued that the internet, metadata, and things like Wikipedia were going to enable a new age of information freedom, brightening those dark corners of society and freeing them with context and insight. Oh, how it contrasts with the modern lived experience of browsing Twitter and Facebook and trying to discern truth from troll.)
Well, IBM for one is ready to throw its weight behind the idea of saving the world through code, with its 2020 Call for Code Global Challenge, a five-year, $30 million global initiative to rally developers to “use their skills and mastery of the latest technologies, and to create new ones, to drive positive and long-lasting change across the world with their code.” This year’s Call for Code has set its sights on climate change, just as Jeff Bezos did earlier this month with his creation of the $10B “Bezos Earth Fund,” this time “challenging applicants to create innovations based on open source technologies to help halt and reverse the impact of climate change.” Last year, says IBM, more than 180,000 participants from 165 nations created more than 5,000 applications focused on natural disaster preparedness and relief.
With climate change now totally taken care of (sarcasm!), let’s move on to the pandemic — ProgrammableWeb has an interesting little article looking at the various APIs available to track Coronavirus COVID-19, which it notes “can’t help cure the disease but they can be used by developers to collect data about the outbreak, track its spread, and even produce data visualizations.”
As for the stock market, well, y’all are alone on that one. So what are you waiting for? Go save the world already.
This Week in Programming
- Firefox Turns to WebAssembly for Added Security: We’ve looked at issues faced by Microsoft and others as a result of memory insecurity in C and C++, and Firefox has turned to some of the same solutions, breaking code into multiple sandboxed processes with reduced privileges and rewriting it into a memory safe language like Rust. Now, Mozilla says they have added a third option, because process-level sandboxing requires a lot of system resources, while rewriting everything into Rust, well… you know. Millions of lines of code, and all that. So, they have instead turned to securing Firefox with WebAssembly (WASM) using RLBox, a new sandboxing technology that enables them to convert existing Firefox components to run inside a WASM sandbox. Essentially, this lets them take existing C/C++ code, compile it into WASM code, and then compile that into native code, all done ahead of time when Firefox itself is built using Cranelift, via the Bytecode Alliance’s Lucet compiler and runtime. This, they write, “enables sharing compiled native code between multiple processes, resulting in significant memory savings” and “improves the startup speed of the sandbox, which is important for fine-grained sandboxing.”
- A Quick Rust Update with 1.41.1: Speaking of Rust and memory safety and all that, Rust 1.41.1 just arrived with updates for “two critical regressions introduced in Rust 1.41.0: a soundness hole related to static lifetimes, and a mis-compilation causing segfaults.” If you’re using 1.41.0, update ASAP.
- Get Your Learn On with Google & GitHub: For all those 13+-year-old, verifiable students in your life, GitHub has added 14 more partners to its GitHub Student Developer Pack, which the company says is used by nearly 2 million students around the world. The new tools bring the total offered to more than 100 and includes Blockchair, a blockchain explorer and API provider for over 15 cryptocurrencies, the Dashlane cloud-based password manager, MongoDB and others. All you need is a school-issued email, ID, or other proof of current enrollment to apply for access. Google, meanwhile, writes that, as part of Digital Learning Day, Applied Digital Skills (its free, online, video-based curriculum) has curated a collection of its most popular lessons, from resume creation to understanding your digital footprint.
Open source issues in a nutshell. pic.twitter.com/iT8fXGJG0B
— Mikhail 💙💛 (@freiksenet) February 26, 2020
- GitHub Web Notifications Goes Live: While it was first introduced last November at GitHub Universe, GitHub says that your new web notifications experience is here, after months of testing and iterating. Basically, it’s a bit like Gmail for GitHub notifications, with options for custom filter workflows and notification clearing using keyboard shortcuts. As with most things like this, feel free to tell them how much you love or hate it.
- AWS Lambda Intros Dart Runtime: If you’re familiar with writing Dart to create mobile applications, you can now put those skills to use to create serverless backends with AWS’s introduction of a Dart runtime for AWS Lambda. Dart is a statically typed open source language behind Flutter, Google’s open source SDK for creating apps that work across desktop and mobile with a single codebase. The new runtime is one of AWS’s custom Lambda runtimes and allows you to run Dart in AWS Lambda, sharing code between your application and your backend. The blog post introducing the new runtime explains that the custom Lambda runtime uses the AWS Lambda Runtime Interface, defining an “HTTP-based specification of the Lambda programming model that the custom runtime uses to serve invocation requests.” Of note, the runtime is still said to be “in an early stage” and maintainers are looking for feedback — so maybe don’t’ jump straight into prod with it quite yet.
I was thinking how much money I made as a professional developer by using a specific programming language. Here is my top ranking:
— Jaana Dogan ヤナ ドガン (@rakyll) February 27, 2020
- Go Modules Goes Live with Go 1.14: The release of Go 1.14 is here and available for download, with module support in the go command now ready for production use and the Go team encouraging all users to migrate to go modules for dependency management. This is not a feature without a history of debate. Other noteworthy features include the ability to embed interfaces with overlapping method sets, an improved performance for defer, asynchronously preemptible Goroutines, and a more efficient page allocator and internal timers. For full details, check out the Go 1.14 release notes. This release comes six months after Go 1.13 and most changes are in the implementation of the toolchain, runtime, and libraries.
- Amazon Transcribe Offers Automatic Redaction of PII: This sounds like something many a developer out there has to deal with — the need to respect regulations and redact personally identifiable information (PII) — so it seemed pertinent to include the new feature in Amazon Transcribe that does this automatically.
SQL is a programming language.
It's Turing complete.
No more gate keeping SQL devs.
Thank you 💙 https://t.co/7ijpaAwHC6
— Cher Scarlett (@cherthedev) February 27, 2020