Technology News Worth Reading

Here are a few technology news stories that I’ve read in the past week or so.

News Headlines

Microsoft’s 10 app store principles to promote choice, fairness and innovation

For software developers, app stores have become a critical gateway to some of the world’s most popular digital platforms. We and others have raised questions and, at times, expressed concerns about app stores on other digital platforms. However, we recognize that we should practice what we preach. So, today, we are adopting 10 principles – building on the ideas and work of the Coalition for App Fairness (CAF) – to promote choice, ensure fairness and promote innovation on Windows 10, our most popular platform, and our own Microsoft Store on Windows 10. Read Microsoft’s blog post.

PostMan’s 2020 State of the API Report

Every year, Postman surveys industry members to get a picture of the API industry—to understand who is working with APIs, how they are getting their work done, and where they see the industry going. More than 13,500 developers, testers, executives, and others took our 2020 survey and provided insights on everything from how they spend their time to what they see as the biggest issues and opportunities for APIs. Three key findings: API investments stay strong, The pandemic has changed the world, but it didn’t stop APIs, and APIs are the nucleus of digital transformation. Read and download the report on the Postman website.

Hybrid cloud is where the action is

Multicloud is definitely a thing. However, it’s not exactly clear what that “thing” is. According to new survey data from database vendor MariaDB, 71% of survey respondents report running databases on at least two different cloud providers today. Yet when asked what would keep them from going all in on a cloud database, a vendor’s “lack of a multicloud offering” ranked dead last. In other words, everyone is doing multicloud, but no one knows why. Read Matt Assay’s InfoWorld article.

Nvidia claims Cambridge-1 is the U.K.’s fastest supercomputer

Cambridge-1, which Nvidia expects to come online by year-end 2020, is a joint project between GSK, AstraZeneca, Guy’s and St Thomas’ NHS Foundation Trust, King’s College London, and Oxford Nanopore. Built on Nvidia’s DGX SuperPOD architecture, it’s anticipated to deliver over 400 petaflops of AI performance and 8 petaflops of Linpack performance. That would rank it 29th on the TOP500 list of the world’s most powerful supercomputers and among the top three most-energy-efficient machines in the Green500. Read Kyle Wiggers’ VentureBeat article.

Survey finds cloud complexity increases challenges

Aptum’s Global Cloud Impact Study reveals this with 62 percent of respondents citing complexity and abundance of choice as a hindrance when planning a cloud transformation. One of the biggest sources of complexity that crops up in more advanced cloud projects are legacy systems. The “abundance of choice” or the need to select the best of breed is a prime culprit. This usually results in a technological smorgasbord, where hundreds of decoupled cloud dev and migration teams make their own calls around what technology to use. Complexity naturally arises when it’s time to join and coordinate those apples and oranges. Read David Linthicum’s InfoWorld article.

The art of code reviews

According to Phil Hughes, front-end engineer at GitLab, it’s about how you provide and convey that feedback — and that’s an art form and a skill that is learned over time. “Reviewing code efficiently is a skill that gets learned the more you do it. Spending time coming up with a workflow that works for yourself is just as important”. Read the SD Times article by Christina Cardoza.

An AI can simulate an economy millions of times to create fairer tax policy

Scientists at the US business technology company Salesforce think AI can help. Led by Richard Socher, the team has developed a system called the AI Economist that uses reinforcement learning—the same sort of technique behind DeepMind’s AlphaGo and AlpahZero—to identify optimal tax policies for a simulated economy. The tool is still relatively simple (there’s no way it could include all the complexities of the real world or human behavior), but it is a promising first step toward evaluating policies in an entirely new way. “It would be amazing to make tax policy less political and more data driven,” says team member Alex Trott. Read the MIT Technology Review article by Will Douglas Heaven.

The most valuable software developer skills in 2020

Which developer skills are the most valuable in today’s market? We’ve pored through the data to find the most bankable developer skills for the coming years—and how best to set yourself up for success in a fraught job market: Don’t put all your eggs in one basket, Some skills are hotter than others, Going cloud native, Ordering the full stack, Data is still the new oil, and Formal education isn’t everything. Read the InfoWorld article by By Scott Carey.

Justices wary of upending tech industry in Google v. Oracle Supreme Court fight

The dispute concerns about 11,500 lines of code that Google used to build its popular Android mobile operating system, which were replicated from the Java application programming interface developed by Sun Microsystems. At the end of an hour and a half of arguments, Justice Stephen Breyer, who at one point read aloud some code, seemed to be the only sure vote. Several of the other justices, including Chief Justice John Roberts, suggested they were sympathetic to Oracle’s copyright claims. Several of the court’s conservatives, including Justices Brett Kavanaugh and Samuel Alito, noted that Google’s allies had warned that the “sky will fall” if Oracle won. But those comments were also peppered with skepticism. “I’m not aware that the sky has fallen in the last five or six years,” Kavanaugh said, noting that Google had lost its first appeals court battle in the case in 2014. Read the CNBC article by Tucker Higgins.

Section 230 will be on the Chopping Block at the Next Big US Congressional Hearing

Will Section 230 be on the chopping block at the next US congressional tech hearing. Hearing will focus on Section 230 of the Communications Decency Act, the key law that shields online platforms from legal liability for the content their users create. What is clear: Tinkering with such a foundational law could have a huge cascade of effects for the internet as we know it and isn’t something to be undertaken lightly — if at all. Read the TechCrunch article by Taylor Hatmaker.

To the moon and beyond: How HoloLens 2 is helping build NASA’s Orion spacecraft

When workers for Lockheed Martin began assembling the crew seats for a spacecraft designed to return astronauts to the moon and pave the way for human exploration to Mars, they had no need for paper instructions or tablet screens to work from. Everything they needed to see, including animations of how pieces fit together, engineering drawings and torque values for tightening bolts, was visible in HoloLens 2 devices that they wore. Read the TechXplore article by Jennifer Langston, Microsoft.

Affordable AI: Nvidia Launches $59, 2GB Jetson Nano Computer

While Raspberry Pi boards are great for doing all kinds of tasks and they’re capable of doing object recognition, they can be a little slow when it comes to real-time image recognition. In 2019, Nvidia came out with an A.I.-focused Pi competitor in the $99 Jetson Nano. Fast forward to 2020 and Nvidia is back with a 2GB version of the Jetson Nano that sells for a more reasonable $59 and, for consumers in some markets (including America), comes with a compatible USB Wi-Fi dongle in the box. Due out later this month, the new Nvidia Jetson Nano 2GB is designed to make A.I. more accessible to hobbyists, kids and aspiring developers. Read the Toms Harware article by Avram Piltch.

Microsoft’s VS Code comes to Raspberry Pi and Chromebook – new v1.50 update is out

An official Microsoft build of the Visual Studio Code editor is now available for Linux Armv7 and Arm64 architecture devices, extending Microsoft’s popular cross-platform code editor to Chromebooks, the Raspberry Pi and rival Arm-based single-board Linux computers such as Odroid. Read the ZDNet article by Liam Tung.

Why Apple needed the FDA to sign off on its EKG but not its blood oxygen monitor

The features on the Apple Watch that track heart rate and heart rhythm, though, have a key difference from the blood oxygen monitor: the heart-tracking features are cleared by the Food and Drug Administration (FDA), and the oxygen monitor is not. Apple went through a long, extensive process to develop and validate an EKG feature so that the watch could detect a condition called atrial fibrillation. It didn’t need to do the same thing for the pulse oximeter. Blood oxygen monitors, or pulse oximeters, are considered Class II medical devices by the FDA. Read TheVerge article by Nicole Wetsman.

JDK 16: What’s coming in Java 16 (due March 2021)

Java Development Kit (JDK) 16 has begun to take shape, with proposed features including concurrent thread-stack processing for garbage collection, support for C++ 14 language features, and an “elastic metaspace” capability to more quickly return unused class metadata memory to the OS. Read the InfoWorld article by Paul Krill.

Microsoft launches Playwright for Python for automating testing

Microsoft is trying to make it easier for developers to automate their end-to-end tests. The company has announced a preview of Playwright for Python, which allows developers and testers to write such tests in Python. According to Microsoft, automated end-to-end tests have become more important than ever as teams build apps that run on a number of different kinds of devices. The increase in the number of targets coupled with increased delivery speed has put more pressure on the testing process, and automation is crucial to enable testing at the speed it needs to be done. Playwright for Python provides timeout-free automation, which makes it more reliable. Read the SD Times article by Jenna Sargent.

Definitely not Windows 95: What operating systems keep things running in space?

To deal with unforgiving deadlines, spacecraft like Solar Orbiter are almost always run by real-time operating systems that work in an entirely different way than the ones you and I know from the average laptop. Operating systems used in space add at least one more central criterion: a computation needs to be done correctly within a strictly specified deadline. When a deadline is not met, the task is considered failed and terminated. And in spaceflight, a missed deadline quite often means your spacecraft has already turned into a fireball or strayed into an incorrect orbit. There’s no point in processing such tasks any further; things must adhere to a very precise clock. Read the ArsTechnica article by Jacek Krywko.

GitHub Code scanning is now available!

One year ago, GitHub welcomed Semmle. We’ve since worked to bring the revolutionary code analysis capabilities of its CodeQL technology to GitHub users as a native capability. At GitHub Satellite in May, we released the first beta of our native integration: code scanning. Now, thanks to the thousands of developers in the community who tested and gave feedback, we’re proud to announce that code scanning is generally available. Read the GitHub blog post by Justin Hutchings.

4 common C programming mistakes — and 5 tips to avoid them

Common C mistake: Not freeing malloc-ed memory (or freeing it more than once). Common C mistake: Reading an array out of bounds. Common C mistake: Not checking the results of malloc. Common C mistake: Using void* for generic pointers to memory. Read the InfoWorld article by Serdar Yegulalp.

Bjarne Stroustrup’s CppCon 2020 Plenary is Available on YouTube

Bjarne Stroupstrup’s CppCon 2020 plenary sesson, “The Beauty and Power of Primitive C++“, is now available on the CppCon YouTube channel.

From his CppCon 2020 talk description: This is an exploration of a design space close to the hardware and of the use of C++ in that space, rather than a standards proposal or the presentation of a mature tool chain. And, no, by “primitive”, I don’t mean “old-fashioned, C-like” code; some of the general techniques are old, but some of the code requires C++17 and much could be done better given features we are unlikely to get even in C++23.

Links to other replays of Bjarne’s talks at past CppCon (the C++ conference) events

A Few More Bjarne Videos (there are many others)

My Online Conversations with Bjarne Stroustrup

I’ve also had two opportunities to talk live online with Bjarne about the C++ language during past Embarcadero CodeRage online conferences:

You will find ISO C++ articles, news, books, podcasts, training courses, events, videos, product news, standardization activities, etc. on the Standard C++ Foundation site.

Technology News Worth Reading

Here are a few technology news stories that I’ve read in the past week or so.

News Headlines

Reading Code Is a Skill

The problem is not that we shouldn’t write readable code. Of course we should aim to write readable code, if only for our own poor selves further down the line (there is no one less capable of reading my code the following week than me). The problem is that these two issues are not mutually exclusive. It’s not “write readable code” or “learn to read code”. Read the DZone article by Trisha Gee.

When a digital twin becomes the evil twin

A digital twin is a digital replica of some physical entity, such as a person, a device, manufacturing equipment, or even planes and cars. The idea is to provide a real-time simulation of a physical asset or human to determine when problems are likely to occur and to proactively fix them before they actually arise. Read the InfoWorld article by David Linthicum.

The NVIDIA-Arm merger could change how we work

If the merger between Arm and NVIDIA is approved (I expect Great Britain, the EU, and China will have reservations), the result could be a massive change in AI capability. And, given that Arm is dominant in mobile devices and IoT, and NVIDIA is dominant in both graphics and AI training, it’s a merger that could have a dramatic impact on how we work as well. Read the ComputerWorld article by Rob Enderle.

Don’t write off government algorithms: Responsible AI can produce real benefits

There are many cases in which government bodies can deploy AI technology in lower risk, high-impact scenarios that can improve lives, particularly if they don’t directly use personal data. So before we leap full pelt into AI cynicism we should consider benefits as well as risks it offers, and demand a more responsible approach to AI development and deployment. Read the TechXplore article by Allison Gardner.

Postman’s New Schema Validation Feature Helps Encourage API Spec Literacy

Postman, an API development platform provider, has announced that its API Builder is gaining the ability to validate API schemas in real-time via a new UI pane that is accessible in the tool’s define tab. The addition of this functionality helps to provide developers with real-time feedback and encourage API specification literacy. Read the ProgrammableWeb article by Kevin Sundstrom.

Microsoft open-sources fuzzing test framework

Microsoft is looking to help developers continuously fuzz-test code prior to release, via the open source OneFuzz framework. Described as a self-hosted fuzzing-as-a-service platform, OneFuzz enables developer-driven fuzzing to identify software vulnerabilites during the development process. Read the InfoWorld article by Paul Krill. Access the OneFuzz framework on GitHub.

IoT Platform – Binding the IoT Ecosystem Together

The word IoT has meant many different things to different people, none of it is wrong in any sense. It has been just a matter of perspective. Device and sensor manufacturers think of it as the sensors at the center of the IoT ecosystem with some connectivity and software around the sensors to capture and transmit data. Network services providers think of IoT as a secure network that connects a bunch of commodity sensors to a backend data store. BI and Big Data platform providers think of their role in IoT as the most important; after all if you cannot process a large amount of data coming through and extract intelligence from it, what’s the point in putting all these sensors and networks in place. Read this DZone article by Seemant Ahuja

Tourists on Tech’s Toll Roads

The recent trend is toward systems that are increasingly more closed. Unfortunately it’s only the latest in an ongoing cycle throughout the history of computing between open highways and private roads. Each swing in the pendulum moves from public, open, shared innovation that lays the open roads to private companies who use those public roads to build their for-profit toll roads. Those companies fight to ensure that no matter what signs you follow, you end up on their private road. Read the blog post by Kyle Rankin.

4 Python type checkers to keep your code clean

Over the last few years, though, Python has added support for type annotations, inspiring a whole culture of software devoted to type checking Python during development. Python doesn’t check types at runtime — at least, not yet. But by taking advantage of a good type checker, riding shotgun with you in your IDE of choice, you can use Python’s type annotations to screen out many common mistakes before they hit production. Read the InfoWorld article by Serdar Yegulalp.

Interview with Homage’s Gillian Tee on how technology can serve the world’s aging population

According to the United Nations, the fastest-growing age bracket worldwide is aged 65-years-old and older. At the same time, there is also an acute shortage of caregivers in many countries, complicated by high rates of burnout in the profession. Read the TechCrunch interview with Homage’s co-founder and chief executive Gillian Tee in an article by Catherine Shu.

Refactoring from single to multi purpose

For the second time this year I’m refactoring a program from a single purpose to have two or more modes of operation. Both times the start and end result is similar, just the processing is different. A classic case of using polymorphism. The first program was a tool to process videos from speakers, find a face and export the subframe around it into a new video. The first mode was a good approach to test it, and gave results for some speakers. The second mode did a complete scan first, and then gave a smoother video for some videos. Read the Meeting C++ blog post by Jens Weller.

New in C++Builder/Delphi 10.4.1 IDE: Package LibSuffix Auto Choice

The C++Builder and Delphi Project | Options | Description page allows developers to

  • Choose and Set build target configurations
  • Write a description for the package
  • Set strings for the package library filename’s prefix, suffix and version
  • Define the use of the package (designtime, runtime or both)
  • Specify how the package is built (rebuild as needed or explicit rebuild)

In previous versions (version 10.3 and earlier) of C++Builder and Delphi developers building packages needed to manually set their package’s library suffix setting. The DocWiki “What’s new in version 10.4.1” mentions a new IDE projects option for setting the library suffix:

“Package AUTO libsuffix: packages can now have an automatic version suffix, instead of manually updating and specifying the right version suffix with each new release. (The compiler quietly supported this in 10.4, but full support for the feature in the IDE and package project settings is introduced in 10.4.1.)”

While you can still set a string for the library filename suffix, selecting the new ComboBox choice, “$(Auto)”, allows the compiler to set the suffix to match the package build version used by the compiler. For each target build (debug and release) and OS platform the resulting package filename follows a pattern:

Win32 and Win64: <prefix>Package1<suffix>.<version>.bpl
Android: <prefix>Package1<suffix>.so.<version>
macOS and iOS: <prefix>Package1<suffix>.<version>.dylib

Creating and building a package with Delphi and C++Builder version 10.4.1, choosing the $Auto option for the suffix and setting other Description page settings results in a filename like the test package project images shown below.

C++Builder and Delphi also support package-specific compiler directives to include in a package project’s source code.

C++Builder Product Information

C++Builder Product Page – Native Apps that Perform. Build Windows C++ Apps 10x Faster with Less Code
C++Builder Product Editions – C++Builder is available in four editions – Professional, Enterprise, Architect and Community (free). C++Builder is also available as part of the RAD Studio development suite.

Recent ISO C++ News and Articles

There’s lots of ISO C++ news and content happening including the unanimous voting approval of ISO C++20, CppCon2020 (starts Monday September 13, 2020) with Bjarne Stroustrup’s opening keynote “The Power and Beauty of Primitive C++”, TIOBE’s Index for September 2020 headline “Programming Language C++ is doing very well”, C++ programming tips and tricks articles and more.

Links to recent ISO C++ news and articles

CppCon 2020 Opening Keynote – The Beauty and Power of “Primitive” C++ – this keynote is an exploration of a design space close to the hardware and of the use of C++ in that space, rather than a standards proposal or the presentation of a mature tool chain. And, no, by “primitive”, I don’t mean “old-fashioned, C-like” code; some of the general techniques are old, but some of the code requires C++17 and much could be done better given features we are unlikely to get even in C++23. Monday, September 14, 2020 8:45 to 10:00 MDT(Mountain Daylight Time).

TIOBE Index for September 2020 – Headline: “Programming Language C++ is doing very well” – Compared to last year, C++ is now the fastest growing language of the pack (+1.48%). I think that the new C++20 standard might be one of the main causes for this. Especially because of the new modules feature that is going to replace the dreadful include mechanism. C++ beats other languages with a positive trend such as R (+1.33%) and C# (+1.18%).

C++20 approved, C++23 meetings and schedule update by Herb Sutter – On Friday September 4, C++20’s DIS (Draft International Standard) ballot ended, and it passed unanimously. This means that C++20 has now received final technical approval and is done with ISO balloting, and we expect it to be formally published toward the end of 2020 after we finish a final round of ISO editorial work.

Concept archetypes by Andrzej Krzemieński – Concepts in the form added in C++20 used to be called lite. This is because they do not provide one quite important functionality: having the compiler check if the author of a constrained template is only using operations and types allowed by the constraining concept. In other words, we can say that our template only requires operations A and B to be valid, but we can still use some other operations inside and this is fine with the compiler. In this post we will show how this is problematic, even for programmers aware of the issue, and how to address it with concept archetypes.

6 Efficient Things You Can Do to Refactor a C++ Project by Bartlomiej Filipe (Bartek) – Bartek took his old pet project from 2006, experimented, refactored it and made it more “modern C++”. This article contains lessons learned and six practical steps that you can apply in your projects.

volatile and Other Small Improvements in C++20 by Rainer Grimm – This article completes Rainer’s tour through the C++20 core language features with a few small improvements. One interesting of these minor improvements is that most of volatile has been deprecated.

The implication of const or reference member variables in C++ by Lesley Lai – In the conventional wisdom of the C++ community, non-static const or reference data variables are considered problematic. There are solid reasons on why you should avoid const or reference member variables in C++. Nevertheless, like many things in C++, “avoid” does not mean “never use.” And they can occasionally still find some uses.

Using Vim for C++ Development by Adem Budak – Adem shares how he uses Vim as C++ development environment, adding things like code completion, linting, formatting and snippet support. If you come from the IDE land and have been set your options with the checkbox on a GUI, you might need a mental shift to use text based configuration tools, like Vim.

LLVM 10 bolsters Wasm, C/C++, and TensorFlow by Serdar Yegulalp – LLVM 10, an upgrade of the open source compiler framework behind a number of language runtimes and toolchains, is available today after a number of delays. The biggest addition to LLVM 10 is support for MLIR, a sublanguage that compiles to LLVM’s internal language and is used by projects like TensorFlow to efficiently represent how data and instructions are handled. Accelerating TensorFlow with LLVM directly is clumsy; MLIR provides more useful programming metaphors for such projects.

Two VCL Example Applications that Use C++Builder and the C++ Boost Libraries by David I – Boost is a set of open source C++ libraries that build on the ISO C++ programming language. In some cases, the Boost library functionality has become part of recent ISO C++ standards. RAD Studio allows you to install a subset of Boost that has been fully tested and preconfigured specifically for C++Builder. Use the GetIt Package Manager to install the Boost libraries for the Win32 classic C++ compiler, Win32 Clang-enhanced C++ compiler and Win64 Clang-enhanced compiler.