Welcome to curated list of handpicked free online resources related to IT, cloud, Big Data, programming languages, Devops. Fresh news and community maintained list of links updated daily. Like what you see? [ Join our newsletter ]

How Pub/Sub eliminates boring meetings and makes your systems scale

Categories

Tags devops software-architecture code-refactoring messaging queues

So, you’ve said goodbye to the monolithic application and refactored it into services. You are shipping faster and the code is cleaner. But the complexity of communication between the services is causing performance issues. And every time a new team needs to integrate, it’s a whole lot of meetings. By Priyanka Vergadia, Kir Titievsky.

The time has come to consider asynchronous communication, where services publish and react to events reliably delivered by a messaging system. In this model, a service needs only to do its computation on an event and publish it to Pub/Sub. It does not need to accommodate the different latency and availability characteristics of the downstream services. In fact, it needs to know nothing about them. This article introduces you to Pub/Sub and how it works:

  • Pub/Sub
  • Pub/Sub Lite
  • How does Pub/Sub work?
  • Pub/Sub features
  • Pub/Sub use cases

Pub/Sub works as a messaging middleware for traditional service integration or a simple communication medium for modern microservices. Push subscriptions deliver events to serverless webhooks on Cloud Functions, App Engine, Cloud Run, or custom environments on Google Kubernetes Engine or Compute Engine. Low-latency pull delivery is available when exposing webhooks is not an option or for efficient handling of higher throughput streams. You will also find link to video explaining the concept in this article. Excellent read!

[Read More]

Better together: A Kubernetes and Wasm case study

Categories

Tags javascript web-development app-development cloud performance kubernetes

This article reveals how early experiments bringing two major CNCF projects together – WebAssembly and Kubernetes – promises greater agility and major efficiencies. By Sean Isom.

Born out of pizza-fueled build nights, Adobe’s Ethos project emerged from a desire to find better ways to ship cloud software. Focusing around containers, we first worked to port an exact replica of the developer’s local environment in the cloud. Next we created a standardized environment in which to run our software – a basic clusterization model. By building a centralized infrastructure platform, we could solve some developer pain and create economies of scale in efficiency, security, and operations.

The article deals with:

  • Taking Wasm from the browser to the backend
  • Use Case 1: Running individual functions in wasmCloud
  • Use Case 2: Running wasmCloud as a service in Kubernetes clusters

A major advantage of WebAssembly on the backend is that it can securely enable high performance and efficiency, while still being compatible with Kubernetes. So, in a case like ours, where we have huge investments in Kubernetes operations, compliance, and automation, we can integrate WebAssembly directly into our existing infrastructure. We can take advantage of new technologies today whilst understanding that the future may look completely different. Nice one!

[Read More]

OOP meaning – What is Object-Oriented Programming?

Categories

Tags oop web-development app-development programming performance code-refactoring

In today’s technology driven society, computer programming knowledge is in high demand. And as a developer, you’ll need to know various programming languages. One concept that is common among many programming languages is Object Oriented Programming. By Hillary Nyakundi.

Further in the article:

  • What is Object-Oriented Programming?
  • Explain OOP like I’m 5
  • How OOP became popular
  • Structure of OOP
  • Principles of OOP
    • Encapsulation
    • Abstraction
    • Inheritance
    • Polymorphism
  • Examples of OOP languages
  • Benefits of OOP

Today, most languages allow developers to mix programming paradigms. This is often because they will be used for various programming methods. Developers working with OOP typically agree that in general, using it allows for better data structures and re-usability of code. This saves time in the long term. Nice one!

[Read More]

WebSockets in a serverless world

Categories

Tags frontend web-development app-development serverless apis

Serverless and WebSockets is a bit of a contradiction. Serverless implies that we’re not managing servers ourselves, they’ve been abstracted away for our convenience. WebSockets allow us to communicate between a “client” and a “server”, but what happens when that server is “serverless”?! By Jo Franchetti.

WebSockets enable a connection between a browser and a web server which stays open, unlike alternatives like HTTP polling. This persistent connection means that data can be transferred as it happens, in realtime.

You will get walkthrough:

  • What does serverless mean, actually?
  • What are WebSockets, actually?
  • Why are people confused by the idea of serverless WebSockets?
  • Serverless WebSockets with Ably
  • Getting Started with Ably and Netlify
  • Adding Ably to your existing Netlify apps

It is often joked that serverless is just “somebody else’s server”. This is the premise of serverless. It is someone else’s server, and also their maintenance, patching and provisioning cycle, operations, capacity planning and engineering. Good read!

[Read More]

Angular v15 is now available!

Categories

Tags frontend web-development app-development angular

Over the past year developers removed Angular’s legacy compiler and rendering pipeline which enabled the development of a series of developer experience improvements in the past couple of months. Angular v15 is the culmination of this with dozens of refinements which lead to better developer experience and performance. By Minko Gechev.

Article captures the details of the latest changes:

  • Standalone APIs are now our of developer preview!
  • Router and HttpClient tree-shakable standalone APIs
  • Directive composition API
  • Image directive is now stable!
  • Functional router guards
  • Router unwraps default imports
  • Better stack traces
  • Release MDC-based components to stable
  • More improvements in components
  • Automatic imports in language service

… and more. The launch of Ivy in 2020 enabled a lot of improvements across the board that you can find already rolling out. Optional NgModules is a great example. It helps with reduction of the concepts beginners need to deal with as part of their critical learning journey and also supports advanced features such as directive composition API via standalone directives. Nice one!

[Read More]

Three reasons why CISOs need to understand domain security

Categories

Tags cio web-development app-development infosec

Domain name abuse is one of the most dangerous and under-regulated issues in digital business security today. An attack on a web domain can lead to the redirection of a company’s website, domain spoofing, phishing attacks, network breaches, and business email compromise (BEC). By cscdbs.com.

Seemingly every day, we learn about new developments involving supply chain attacks, ransomware, and phishing attacks, along with additional layers of complexity in terms of what coverage they require and how to stop them. The article then discusses:

  • Many of the largest companies in the world still lack basic domain security protocols
  • You’re only as secure as your vendors, and you can choose your domain registrar
  • Not monitoring and taking down fraudulent lookalike domains impersonating your brand will increase your chances of attacks

The intent of these fake and maliciously registered domains is to leverage the trust placed on the targeted brands to launch phishing attacks, other forms of digital brand abuse, or IP infringement. This often leads to revenue loss, traffic diversion, and a diminished brand reputation. There are endless domain spoofing tactics and permutations that can be used by phishers and malicious third parties. Good read!

[Read More]

A deeper dive into WebAssembly, the new executable format for the web

Categories

Tags json web-development app-development nginx javascript

Author recently spoke with some industry experts about three technologies they predict will be the Next Big Things. One of the 3 in particular deserves a more detailed look: WebAssembly (often abbreviated as Wasm). Wasm has caught the interest of many because it extends the language support for browsers beyond JavaScript. By Dave McAllister of F5.

No, it’s not a replacement for JavaScript; rather, it’s the fourth and newest language accepted by the World Wide Web Consortium (W3C) as an official web standard (along with HTML, CSS, and JavaScript).

Back in 2015, Mozilla started work on a new standard to define a “a portable, size‑ and load-time-efficient format and execution model” as a compilation target for web browsers. WebAssembly basically was designed to allow languages other than JavaScript to run within the browser. And Wasm quickly caught on with browser vendors, with all the major browsers supporting it.

Why should you care about WebAssembly?

  • Speed/performance
  • Size
  • Cross‑platform
  • Multi‑lingual
  • Security

If you have to run untrusted code in your browser, it must be isolated. Wasm achieves isolation with memory‑safe sandboxed execution environments. The current implementation isn’t perfect, but Wasm contributors are heavily focused on it, so I expect rapid improvement. You will get links to further reading, youtube video and resources to get you started with Wasm. Good read!

[Read More]

How to add Playwright tests to your pull request CI with GitHub Actions

Categories

Tags tdd nodejs web-development app-development

If you’re like me, you really appreciate a test automation step as part of your pull request (PR) CI for that added confidence before merging code. I want to show you how to add Playwright tests to your PRs and how to tie it all together with a GitHub Actions CI workflow. By Liran Tal.

import { test, expect } from '@playwright/test';

test('page should have title of "Dogs security blog"', async ({ page }) => {
  await page.goto('http://localhost:3000/');
  const title = await page.title();
  expect(title).toBe("Dogs security blog");
});

If you’ve never come across Playwright before, the Playwright test automation framework has had its first release in 2017, but has recently grown in popularity as another one of Microsoft’s developer tooling (in addition to Visual Studio Code and others). The Playwright test automation framework is a great way to easily write end-to-end (E2E) tests and also target cross-browser compatibility. I’ve used both Selenium and Cypress in the past, and if you’ve had any similar experience, then Playwright will surely remind you of the latter. It’s easy to get started, easy to write tests, and has built-in measures to ensure tests aren’t flaky.

In this article you will learn:

  • The basics of how to write end-to-end tests with Playwright
  • How to run Playwright tests in your GitHub Actions CI
  • How to run Playwright tests for your deployed Netlify preview URLs
  • How to preserve Playwright debug traces and make them available as build artifacts in GitHub Actions CI

Unlike Cypress, another test automation tool, which injects itself as a library to the web page DOM as its primary architecture to control the browser, Playwright uses native browser APIs to control the automation. Very interesting!

[Read More]

Scala Toolkit makes Scala powerful straight out of the box

Categories

Tags scala akka data-science java app-development

Scala Toolkit is an ongoing effort by Scala Center and VirtusLab to compose a set of approachable libraries to solve everyday problems. These libraries will be made easily accessible as a precomposed package. This package will be available for each Scala release. By Szymon Rodziewicz.

We constructed the main measures from our adjusted variation of the Cognitive Dimensions Framework, where we looked at the cognitive cost and time required in interactions with the library. Alongside that, we measured a set of practical aspects of each library, including tests, responsiveness and availability of the maintainers; documentation; popularity; dependencies; dependencies stability; small size; API stability; versioning schema; and cross-platform support.

Note that Scala Toolkit does not intend to create libraries of its own. The goal is to work with the maintainers of existing, battle-tested libraries. Neither will we promote these libraries as universal solutions. We plan to allow users to use them easily while acknowledging that other libraries will be better suited in certain situations.

All libraries featured in the Toolkit will arrive with carefully prepared knowledge bases featuring well-structured practical information. In addition, all libraries will be available in one place, allowing the developers to find solutions and example snippets to solve their problems quickly. Nice one!

[Read More]

Full end-to-end deployment of a machine learning algorithm into a live production environment

Categories

Tags big-data data-science devops

Older article will guide you through how to use scikit-learn, pickle, Flask, Microsoft Azure and ipywidgets to fully deploy a Python machine learning algorithm into a live, production environment. By Graham Harrison.

You will get these steps describing how machine learning algorithm could be fully deployed into a live production environment so that it could be “consumed” in a platform-agnostic way:

  • Develop a machine learning algorithm
  • Make an individual prediction from the trained model
  • Develop a web service wrapper
  • Deploy the web service to microsoft Azure
  • Add the Azure app service extension to VS Code
  • Building a client application to consume the Azure deployed web service

There are quite a few steps involved, but using readily available libraries and free tools including scikit-learn, pickle, flask, Microsoft Azure and ipywidgets we have constructed a fully working, publicly available cloud deployment of a machine learning algorithm and a fully functioning client to call and consume the web service and display the results. Nice one!

[Read More]