Is there life after COVID-19? Of course there is, even though it may be quite different, and it may be hard to get there. But there’s one thing in common in the "before" and "after" pictures: science and technology as the cornerstones of modern society, for better or worse.

We have argued before that Knowledge Graph is a technology that enables other technologies to accelerate their growth, and it also enables humans to take stock of their own knowledge. This is why the future is Knowledge Graph.

Source de l’article sur DZONE

Profiling large Rust applications online is difficult. Current profilers are not up to the job.

When we need to analyze a Rust program’s performance, we often think about perf. To use perf, we need to:

Source de l’article sur DZONE

In our current time of crisis, it’s a sad fact that there are many taking advantage of distracted governments, businesses, and individuals. With the majority of workforces in the Western world currently working from home, often on insecure networks, and far removed from their typical IT support structure, an increase in cybersecurity threats has reared its head during the COVID-19 crisis.

I recently spoke with Quentin Rhoads-Herrera of CRITICALSTART to discuss trends they have recently witnessed, how the company is helping during the crisis, and cutting through some cybersecurity jargon. You can hear the full interview below.

Source de l’article sur DZONE

This article is for the Scala programmer who has at least used or heard about Futures before. You can also find this over at the Rock the JVM blog or on YouTube in video form or embedded below:

In this article, I’m going to address the problem of "deterministic" Futures in Scala. You probably know by now that Futures are inherently non-deterministic, in the sense that if you create a Future
Scala

You know the value inside will be evaluated on "some" thread, at "some" point in time, without your control.

The Scenario

Here, I will speak to the following scenario which comes up often in practice. Imagine you’re designing a function like this:
Scala

with the assumption that you’re issuing a request to some multi-threaded service which, is getting called all the time. Let’s also assume that the service looks like this:
Scala

The service has two API methods:
  1. A "production" function that is completely deterministic.
  2. A submission function that has a pretty terrible API because the function argument will be evaluated on one of the service’s threads, and you can’t get the returned value back from another thread’s call stack.
Let’s assume this important service is also impossible to change, for various reasons (API breaks, etc). In other words, the "production" logic is completely fixed and deterministic. However, what’s not deterministic is when the service will actually end up calling the production function. In other words, you can’t implement your function as:
Scala

because spawning up the thread responsible for evaluating the production function is not up to you.

The Solution

Introducing Promises — a "controller" and "wrapper" over a Future. Here’s how it works. You create a Promise, get its Future and use it (consume it) with the assumption that it will be filled in later:
Scala

Then pass that promise to someone else, perhaps an asynchronous service:
Scala

And at the moment, the promise contains a value. Its future will automatically be fulfilled with that value, which will unlock the consumer.

How to Use it

For our service scenario, here’s how we would implement our function:
Scala

We create a promise and then we return its future at the end for whoever wants to consume it. In the middle, we submit a function that will be evaluated at some point out of our control. At that moment, the service produces the value and fulfills the Promise, which will automatically fulfill the Future for the consumer.
This is how we can leverage the power of Promises to create "controllable" Futures, which we can fulfill at a moment of our choosing. The Promise class also has other methods, such as failure, trySuccess/ tryFailure and more.
I hope this was useful!

Source de l’article sur DZONE


The Threat

The recent surge in Work-From-Home, triggered by the COVID-19 crisis, is here to stay and the first sign of it is that "WFH" has been added to the alphabet soup of jargons crowding the technology industry. WFH, however, has also created a fresh set of challenges for organizations to protect their intellectual assets from cyberattacks. It’s a no-brainer to say that our home networks are far more vulnerable than enterprise networks. Companies are leveraging this crisis to meet immediate needs as well as for building more lasting, longer-term access to a variety of resources in the cloud as well as in the enterprise data center.

As the world logs on to enterprise networks from home, the demand for more secure remote access for employees is at an all-time high. Organizations must prepare for possible cyberattacks on our home IT networks to exploit its vulnerabilities. They need to monitor IT use for signs of malicious behaviour, safeguard sensitive data and assure maximum compliance with privacy and regulatory requirements. Also, the extensive use of cloud services necessitated by the COVID-19 crisis, both on-premise and public, will compel enterprises to reassess this ecosystem and take additional steps to protect it.

Source de l’article sur DZONE

I had the opportunity to meet virtually with Dani Golan, CEO and Co-founder, and Derek Swanson, CTO of Kaminario as part of the 34th IT Press Tour. 

Hybrid multi-cloud infrastructure continues to win the day for enterprises. This is driven by the exponential growth of data, limited budgets, digitalization of business, and changing demand for skills and roles. The globalization of business requires access to data everywhere with everything being connected and data being collected at millions of endpoints while remaining compliant with geographically-specific data privacy laws.

Source de l’article sur DZONE

Vue.JS is a JavaScript library that has taken the world of frontend developers by storm. Even for one of the latest libraries on JavaScript, Vue stands a stiff competition for the existing leaders like React and Angular.

As for recent stats, here is a comparison between the popularity of these three JavaScript frameworks:

Source de l’article sur DZONE

Despite Java not providing a zip operation, you don’t need either 30 additional lines to implement it, nor a third party library. Simply compose a zipline through the existing Stream API.

Abstract

Java, from its 8th version onward, provides an easy way to query sequences of elements through its Stream Interface, which provides several operations out of the box. This set of operations is quite versatile but, as can be expected, it does not cover all the operations a programmer may require. One such operation is zip, as we can observe in one of the most visited posts about Java Streams in Stackoverfow: Zipping streams using JDK8 with lambda (java.util.stream.Streams.zip). Even 7 years later, we are now on Java 14 release and there is no zip operation for Streams yet.

Source de l’article sur DZONE

Event sourcing, aka "the great myth". I’ve been thinking about writing a series of articles about this for a while, and now it’s time to put my hands back on the keyboard. 

I thought that with this long period of confinement at least I could have had more time to write some nice articles, but it turns out the reality has been slightly different so far.

Source de l’article sur DZONE

Traditional DRaaS offerings typically require rigid data center infrastructure that is expensive and inefficient. Many DRaaS (Disaster Response-as-a-Solution) solutions offer an alternative to on-premises failover, but when they are based on the same on-premises DR (disaster response) technology, they cannot realize the full technical and business advantages of the cloud: multi-tenancy, scalability, agility, and cost-efficiency.

“Incorporating object storage into a backup service is relatively straightforward and, today, is commonly supported by most data protection vendors,” said Tom Critser, co-founder and CEO, JetStream Software. “But service providers haven’t previously had a CDP (continuous data protection) solution that continuously replicates data directly into an object store and uses the object store exclusively to maintain all recovery assets, including the recovery of system information, network configurations, and ongoing protection policies. That’s a very different kind of challenge that JetStream DR on Cloudian uniquely addressed.”

Source de l’article sur DZONE