Technology News Worth Reading

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

News Headlines

How to Convert a PDF to PNG or JPG in Java

This article reviews three Conversion APIs that will allow you to convert any PDF document into an image. This includes conversion to a PNG or JPG array with one image created per page in your document. The article also discusses how you can merge and stack your PDF pages for conversion into a single PNG, or “tall” image. The goal for this tutorial is to simplify and improve your versatility for document display and sharing. Furthermore, as most documents can be converted to PDF, you can apply these APIs to any file, post-PDF-conversion. Read the DZone article.

Popular JavaScript Frameworks to Build API and Microservices

This Dzone post discusses the most popular JavaScript frameworks used to build APIs and Microservices. Microservices and APIs are often being confused for each other. In reality, they are 2 separate concepts altogether, where API is a communication pattern and microservices are an architectural pattern. Read the DZone article.

How to Build Real-Time Notification Service Using Server-Sent Events (SSE)

Most of the communication on the Internet comes directly from the clients to the servers. The client usually sends a request, and the server responds to that request. There are some scenarios in which the server needs to send a message to the client without the preceding request. In such cases, developers have a couple of options: use short and long polling, webhooks, websockets, or event streaming platforms like Kafka. However, there is another technology, not popularized enough, which in many cases, is just perfect for the job. This technology is the Server-Sent Events (SSE) standard. Read the DZone article.

Facebook Announces Beta Messenger API Support for Instagram

Facebook announces updates to the Messenger API to support Instagram messaging, giving businesses new tools to manage their customer communications on Instagram at scale. The new API features enable businesses to integrate Instagram messaging with their preferred business applications and workflows; helping drive more meaningful conversations, increase customer satisfaction and grow sales. The updated API is currently in beta with a limited number of developer partners and businesses. Read the Facebook announcement.

IBM Unveils New Capabilities for Preserving Aging Infrastructure Using AI, 3D Modeling and Data Capture

IBM announces new capabilities in IBM Maximo for Civil Infrastructure to help prolong the lifespan of aging bridges, tunnels, highways, and railways. New enhancements include the ability to deploy on Red Hat OpenShift for hybrid cloud environments, as well as new AI and 3D model annotation tools that can provide deep industry and task-specific insights to support engineers. “Tools like AI, predictive maintenance, drones and hybrid cloud will play an important role in meeting the challenge of rising infrastructure costs, and helping these vital structures endure for future generations,” said Bjarne Jørgensen, Executive Director, Asset Management at Sund and Baelt. “These solutions can help determine the exact need for maintenance in near real-time to assist organizations in extending the lifetime of structures.” Read the press release.

13 Tools to Monitor Remote Teams (Plus Tips)

How do employers ensure that their remote teams remain productive? This is where remote monitoring tools come into the picture. Remote monitoring tools are an excellent way for companies to continue moving with the tide without compromising the productivity of their remote employees or micromanaging them. This DZone article discusses 13 of the most popular remote monitoring tools.

Building a C++ VCL Customer/Sales Master/Detail/Charting Application with 1 Line of Code

These days low-code development is en vogue. Various research groups, such as Gartner, put the low-code application development platform market at ~$10M billion in 2019 and project CAGR to be greater than 20% from 2020 to 2027. This post shows how you can build a Windows C++ Customer/Sales, Master/Detail/Charting application that only needs 1 line of code.

Things to consider when running visual tests in CI/CD pipelines

This blog post contains a summary of the author’s recent webinar and focuses on demos that show how to handle visual testing in CI/CD. The demos focused on 3 different CI/CD scenarios: Azure DevOps, GitHub Actions and Container Based Pipelines.

An Open Source Sorting Algorithms Visualizer

This GitHub project is a tool, made with python and pygame, for visualizing sorting algorithms in an educational way. The project’s purpose is to portray several sorting algorithms so the user can understand how a computer “move some pieces” to achieve the goal of having sorted data at the end!

A faster way to prototype your APIs using OpenAPI 3 and Swagger UI

The goal of this GitHub project is to create a generator that conveniently creates API definitions in the OpenAPI 3 format using marshmallow classes and saves them into a YAML file. You can think this project as programmable API definitions/documentation for your API (your API can be written in any language, not only in Python). Python is used here just for convenience of describing classes and has less code yet strong typing. Then you can inject the generated YAML file with Swagger UI to any project (just a page that renders Swagger UI HTML code which requests the generated YAML file).

Fun With SQL Using Postgres and Azure Data Studio

Azure Data Studio is a cross-platform database tool for data professionals using the Microsoft family of on-premises and cloud data platforms on Windows, macOS, and Linux. It is very easy to install and offers a modern editor experience with IntelliSense, code snippets, source control integration, and an integrated terminal. It’s engineered with the data platform user in mind, with the built-in charting of query result sets and customizable dashboards. You can learn more about it from the official website on this link. ADS also has notebooks that are similar to Jupiter notebooks for python and other languages and are great for combining formatted text with code. You can execute queries via a query window or via a notebook window. This post discusses some of the basics and at the same time shares the author’s experience using Azure Data Studio.

AppSec vs. DevSecOps, and what that means for developers

Traditional application security is different in two key ways from what has come to be known as DevSecOps. First, modern software companies are integrating application security into their DevOps pipelines, so security becomes part of the flow. Second, it’s also about DevOps being built into application security. In this SD Times article, Patrick Carey, who leads product strategy in the Software Integrity Group at security solutions provider Synopsys, explains these differences. By building application security into your automated development environment, he said, security “is initiated through events, rather than necessarily a phase where somebody at the end of the line, whose job it is to make sure that you didn’t screw up and code a vulnerability,” does the testing. On the other side of that coin, building DevOps into AppSec, eliminates the gates created by traditional DAST or pen-testing tools, creating instead guardrails that allow the team to move forward with relatively low friction but to stay on track. In the traditional gated pass-fail system, “if you fail you got your vulnerability report that just said you know there were a bunch of vulnerabilities, but oh, by the way we can’t tell you exactly where those are in your code; your developer’s going to have to go figure that out.”

5 edge computing predictions for 2021

The new business models that will push edge computing “from science project to real value” in 2021 are largely based around two factors, Forrester said: Cloud platforms having to compete with artificial intelligence, and the widespread proliferation of 5G will make edge use cases more practical. With those two drivers in mind, Forrester made five predictions about how the tech world will evolve in 2021 that will directly impact edge computing. Read the article that lists Forrester’s predictions.

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.