Daily Tech Digest - June 05, 2020

New report underscores the high costs and challenges of virtual workforces

DaaS was introduced as a cloud-based solution of legacy tech to reshape the virtual desktop landscape. DaaS appears to be marred by the same underlying hidden costs and similar management challenges. "DaaS is essentially just VDI that has been crudely shoved into the cloud. DaaS sought to 'disrupt' VDI by moving certain aspects of virtual desktop delivery to the cloud, but it still relies on the same costly and complex underlying infrastructure," Henshaw said.  Although these offerings are intended to streamline operations and cut costs, some organizations quickly find the opposite to be true. These unforeseen challenges and unanticipated costs are often burdensome for organizations. More than half of current DaaS and VDI users surveyed note that the adoption of these systems required a minimum of 10 full-time employees dedicated to the management of these systems.... VDI systems require purchasing lots of hardware upfront and the costs continue to mount over the years due to maintenance and upkeep. Comparatively, virtual application delivery platforms allow companies to save up to 75% of costs related to upfront infrastructure and recurrent licensing fees, per the report. 

Fix spaghetti code and other pasta-theory antipatterns

Carelessness isn't the only way to end up with hard-to-maintain code; over-complication can be a cause too. In 2013, I took a job at a technology company that had one of the most confusing codebases I have ever seen. Every element of the product was abstracted into dozens of singular, nested components. It was nearly impossible to make a change in one layer of the stack without affecting every other layer. The codebase wasn't a mess, but it wasn't maintainable either. If spaghetti code suffers from architectural sloppiness, lasagna code is a characteristic of over-engineering at its most extreme. Programmers who work with object-oriented codebases often fall into this trap. Lasagna code is abstracted, tightly connected layers; developers write it as they are convinced every subcomponent necessitates its own object. These programmers tend to focus on the layout of code at the expense of its maintainability. What starts out as a highly organized codebase quickly becomes an over-architected disaster. Here's a good rule to follow: Be conservative with your abstractions.

What’s the difference between supervised and unsupervised?

Supervised machine learning applies to situations where you know the outcome of your input data. Say you want to create an image classification machine learning algorithm that can detect images of cats, dogs, and horses. To train the AI model, you must gather a large dataset of cat, dog, and horse photos. But before feeding them to the machine learning algorithm, you must annotate them with the name of their respective classes. Annotation might include putting the images of each class in a separate folder, using a file-naming convention, or appending meta-data to the image file. This is the laborious manual task that is often referred to in stories that mention AI sweatshops. Once the data is labeled, the machine learning algorithm (e.g. a convolutional neural network or a support vector machine) processes the examples and develops a mathematical model that can map each image to its correct class. If the AI model is trained on enough labeled examples, it will be able to accurately detect the class of new images that contain cats, dogs, horses. Supervised machine learning solves two types of problems: classification and regression.

The digital transformation’s next frontier: Open banking

Open banking, as a standard, is a regulatory framework that guides how financial institutions create, share and access consumer financial data. That data is shared freely through a network of financial institutions and financial technology companies. But there are two important traits in open banking that distinguish it from traditional approaches: Consumers consent to the banks to share the consumers’ data publicly; and All financial institutions open their programs and interfaces to third-party developers. These attributes aim to help consumers better understand their financial data so they can make better decisions. Banks, in turn, can provide a more seamless consumer experience through the use of mobile applications. Technology makes this all possible. For consumers, the infrastructure increasingly is there. Smart mobile devices have become smarter and more powerful, and they have continued to shape consumer behavior. More and more, this means that consumers are demanding digital conveniences like paperless use of money and virtual banking.

Clustering Non-Numeric Data Using C#

Clustering data is the process of grouping items so that items in a group (cluster) are similar and items in different groups are dissimilar. After data has been clustered, the results can be visually analyzed by a human to see if any useful patterns emerge. For example, clustered sales data could reveal that certain types of items are often purchased together, and that information could be useful for targeted advertising. Clustered data can also be programmatically analyzed to find anomalous items. For completely numeric data, the k-means clustering algorithm is simple and effective, especially if the k-means++ initialization technique is used. But non-numeric data (also called categorical data) is surprisingly difficult to cluster. ... In order to use the code presented here with your own data you must have intermediate or better programming skill with a C-family language. In order to significantly modify the demo algorithm you must have expert level programming skill. This article doesn't assume you know anything about clustering or category utility. The demo is coded in C# but you shouldn't have too much trouble refactoring the code to another language if you wish.

Installing OpenCV and ImageAI for Object Detection

In this series, we’ll learn how to use Python, OpenCV (an open source computer vision library), and ImageAI (a deep learning library for vision) to train AI to detect whether workers are wearing hardhats. In the process, we’ll create an end-to-end solution you can use in real life—this isn’t just an academic exercise! This is an important use case because many companies must ensure workers have the proper safety equipment. But what we’ll learn is useful beyond just detecting hardhats. By the end of the series, you’ll be able to use AI to detect nearly any kind of object in an image or video stream. ... OpenCV is an open-source computer vision library with C++, Python, Java, and MATLAB interfaces. ImageAI is a machine learning library that simplifies AI training and object detection in images. These two libraries make it extremely easy to solve a number of object detection problems in images and videos. We’re going to dive straight into our solution by setting these libraries up using Python in a Jupyter Notebook (on Windows).

How Covid-19 has changed the role of the CTO

While the workforce is remote, its individuals are more likely to work at all hours of the day from several locations. Accordingly, CTOs must structure their team as if all company departments are now operating 24/7. This can be a drastic change for some operational leaders, who must consider whether outsourcing partial or total systems coverage to a third-party specialist provider would be a more efficient way to accommodate this demand, while preserving internal company resources. Once the pandemic has subsided, the new CTO must act as a major decision-maker at the company and co-lead the process of returning employees to the office environment, ensuring that the transition back is as seamless as possible. This may include enforcing pre-return system checks for each office location, ensuring that all devices are updated with their latest software patches, creating a specialised portal for employees to flag technical issues and designing programs to help map and/or reconcile company data stored across multiple company and personal devices. The onus is on CTOs to optimise the tools and channels through which company data is shared.

What matters most in an Agile organizational structure

Agile software developers aim to better meet customer needs. To do so, they need to prioritize, release and adapt software products more easily. Unlike the Spotify-inspired tribe structure, Agile teams should remain located closely to the operations teams that will ultimately support and scale their work, according to the authors. This model, they argue in Doing Agile Right, promotes accountability for change, and willingness to innovate on the business side. Any Agile initiative should follow the sequence of "test, learn, and scale." People at the top levels must accept new ideas, which will drive others to accept them as well. Then, innovation comes from the opposite direction. "Agile works best when decisions are pushed down the organization as far as possible, so long as people have appropriate guidelines and expectations about when to escalate a decision to a higher level." A successful Agile transformation might require some pilot teams and perhaps several years to scale across the business, as was the case with Bosch Power Tools, profiled as an example in Doing Agile Right. 

Infosec 2020: Covid-19 an opportunity to change security thinking

“As much as this situation presents a challenge to security behaviours and culture, we need to think about how to engage people on a personal level,” she said. Barker advised that security teams try to engage their users about security at home and how they’re using digital platforms to connect to family and friends, shopping, gaming, and using social media. “There are lots of avenues to talk to people about security, and that mindset expands to think more about the business as well,” she said. Vincent Blake, vice-president and IT security officer at publisher Pearson, agreed that Covid-19 might create an opportunity for security by enabling security teams to turn the conversation away from restrictive “thou shalt not” policy and towards gentle advice on how to protect yourself online. Mark Osborne, Europe, Middle East and Africa (EMEA) CISO at real estate firm JLL, said that security teams were getting a lot of kudos thanks to how they have stepped up and kept teams running during a critical black swan event, and said they could ride this wave of positivity to improve relationships with the business afterwards.

Running Axon Server - CQRS and Event Sourcing in Java

Typical CQRS applications have components exchanging commands and events, with persistence of the aggregates handled via explicit commands, and query models optimized for their usage and built from the events that report on the aggregate’s state. The aggregate persistence layer in this setup can be built on RDBMS storage layers or NoSQL document components, and standard JPA/JDBC based repositories are included in the framework core. The same holds for storage of the query models. The communication for exchanging the messages can be solved with most standard messaging components, but the usage patterns do favour specific implementations for the different scenarios. We can use pretty much any modern messaging solution for the publish-subscribe pattern, as long as we can ensure no messages are lost, because we want the query models to faithfully represent the aggregate’s state. For commands we need to extend the basic one-way messaging into a request-reply pattern, if only to ensure we can detect the unavailability of command handlers. Other replies might be the resulting state of the aggregate, or a detailed validation failure report if the update was vetoed.

Quote for the day:

"Leaders need to strike a balance between action and patience." -- Doug Smith

No comments:

Post a Comment