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 ]

Fundamentals of functional programming with React

Categories

Tags functional-programming react nodejs web-development javascript

Understanding the concept of functional programming is a valuable skill for React developers. It is an important topic that most React beginners often overlook, making them encounter problems when understanding how React makes some of its decisions. By Ibadehin Mojeed.

One improvement React provides is passing a callback to the updater function. In this callback, we can access the previous version of the state, and from there, we can update the state value

const handleClick = () => setCount((prev) => prev + 1);

The tutorial then explains the following concepts:

  • A quick overview of functional programming
  • Functions in mathematics
  • Functional programming in React
  • How React implements the pure functional concept
  • Improving app performance
  • A pure functional concept in the state update
  • Avoiding mutating data (immutability)
  • Avoiding side effects
  • Composition in React

Performing side effects directly inside the body of a component is not allowed to avoid inconsistencies in our app. Instead, we must isolate this effect from the rendering logic. React provides us with a Hook called useEffect to manage our side effects. Good read!

[Read More]

Create your own Kotlin playground (and get a data science head start) with Jupyter Notebook

Categories

Tags kotlin java app-development jvm data-science

Learn the basics of Jupyter Notebook and how to turn it into an interactive interpreter for Kotlin. You’ll also learn about Data Frames, an important data structure for data science applications. By Joey deVilla.

If you’ve ever wished for a Kotlin version of a REPL (read-evaluate-play loop) like the ones in command-line Python or Node.js or for a lightweight local version of the Kotlin Playground, there’s a way to do it: by using Jupyter Notebook with a Kotlin kernel. In this article, you’ll set up a Kotlin playground that runs locally on your computer!

The content of the article is split into multiple sections:

  • Kotlin? For data science?
  • Introducing Jupyter Notebook
  • Creating your first notebook
  • Understanding code cells
  • Working with markdown cells
  • Diving into data frames

… and much more. You can also download the Jupyter Notebook files containing all the code from the exercises. With Jupyter Notebook and the Kotlin kernel, you have a powerful new tool at your disposal. You can use it as a straightforward Markdown note-taking tool or as an interactive coding environment. But the most interesting use cases appear when you combine Markdown and code cells to mix narrative text with executable code. Nice read!

[Read More]

The state of pattern matching in Java 17

Categories

Tags java programming performance jvm

The act of checking a given sequence of tokens for the presence of the constituents of some pattern. Or simply put, it’s a language feature where you can test for a specific pattern on a character sequence or a data structure. By Deepu K Sasidharan.

The article then explains:

  • Why pattern matching?
  • Pattern matching features
  • Pattern matching in Java

There are many languages that have great support for pattern matching. Rust and OCaml lead the pack here. in the JVM world, Scala also offers many of these pattern matching features. Unfortunately, Java is still a bit behind the curve when it comes to pattern matching. The state of pattern matching in Java is as below:

  • Enum matching in switch statements ✅
  • Match type/value in switch statements ✅
  • Match type/value in if statements ✅
  • Pattern matched variable assignments ✅
  • Null checks ✅
  • Type guards ✅
  • Refined patterns ✅
  • Pattern dominance and type exhaustion 🆗
  • Partial/Nested/Compound type and/or value checks 🆗
  • Shallow/Deep Position-based Destructured matching 🆗

Most of the basic requirements are met with the instanceof operator pattern matching, and the Java 17 preview makes many other features possible. Of course, type exhaustion only works for sealed classes, and refined patterns are still quite basic, but the majority of the features for proper pattern matching are already available with the preview. Good read!

[Read More]

What is low-code workflow automation?

Categories

Tags cio programming agile software-architecture

What is low code workflow automation and why are businesses increasingly adopting it into their operations? As organizations more frequently look to digital solutions as a means to improve the effectiveness and efficiency of their processes both internally and externally, the importance that tools like low-code play become more and more important—particularly as regards their role as a competitive differentiator. By impactmybiz.com.

The article then deals with:

  • What is low-code workflow automation?
  • Low-code workflow adoption among organizations
  • RPA vs. low-code
  • How are businesses using low-code workflow
  • Low-code workflow automation use cases

Low-code workflow automation is something organizations find themselves approaching with more candor as they assess the capabilities of their existing applications and the effectiveness of their current working processes. Low-code also offers a substantial amount of flexibility, particularly with regards to app migration and improvement, as well as strong levels of oversight for data compliance purposes. Nice one!

[Read More]

Flattening forgetting curve with learning-by-doing

Categories

Tags cio learning miscellaneous cloud

Use technology to your advantage and enhance the retention rates of your training sessions. Classrooms change. Courses change. But the age-old struggle of any learning or development session stays intact. How to retain knowledge gained beyond the training session? And how to apply the concepts taught during training to a real-life scenario? By David Hand.

Students, instructors, and organizations – they all come across this pain point eventually. Conducting a session seems relatively easy. What’s difficult is translating that time into something productive, enduring, and usable – long after the session is over.

This is a gap that only worsens with time. Knowledge retention and how to apply it continue to be significant challenges that dilute the effectiveness of training programs. In a LinkedIn Workplace Learning Report 2020, Learning and Development (L & D) professionals showed that evaluating the effectiveness of learning programs topped the list of areas of their strategic focus.

Their strategic priorities are condensed around learning outcomes – with 38% who want to evaluate the impact of learning, 35% who want to improve learning engagement, and many who agreed that course completion may not be the right engagement metric.

Thankfully, modern tools like hands-on virtual labs can help accomplish this easily. They are driven by cloud and immersive technologies and add convenience as well as time-savings for students and trainers. They also deliver much more than that. Hands-on virtual labs arm both learners and instructors with multiple opportunities to enhance training and increase retention. Follow the link to the full article to learn how. Good read!

[Read More]

What is containerd, and how does it relate to Docker and Kubernetes?

Categories

Tags cio docker devops kubernetes containers

Containers still mean “Docker” to many people. Docker popularised the modern use of containers in software development and deployment. These days, other technologies are around too. Here’s how Containerd, Docker and Kubernetes relate to each other. By James Walker.

As Kubernetes grew and more third-party tools arose around Docker, the limitations of its architecture became clear. At the same time, the Open Container Initiative (OCI) began standardising container formats and runtimes. This resulted in an OCI specification defining a container which could be used by multiple runtimes, of which Docker is an example.

The article covers:

  • The rise of containerd
  • Understanding containerd’s role
  • The OCI
  • What about my Docker images?
  • Kubernetes and Docker

Containerd drops in to abstract this low-level wiring. It’s intended as a “client layer” that container software then builds atop of. This might be developer-oriented software, like Docker, or cloud-oriented devops tools such as Kubernetes. Each high-level user-facing interface (such as Docker and Kubernetes) now benefits from a choice of interchangeable low-level container runtimes (like containerd and runC). Good read!

[Read More]

How Airbnb enables consistent data consumption at scale

Categories

Tags data-science database cloud python distributed

In this post, we will focus our story on how Minerva drastically simplifies and improves the data consumption experience for our users. Specifically, we will showcase how a unified metric layer, which we call the Minerva API, helps us build versatile data consumption experiences tailored to users with a wide range of backgrounds and varying levels of data expertise.

The Minerva API consists of the API web server, a metadata fetcher application, and several clients that integrate with Apache Superset, Tableau, Python, and R. These components serve native NoSQL and SQL metric queries to the downstream applications.

The article discusses the following:

  • A metric-centric approach
  • Minerva API
  • The data consumption experience

Minerva introduced a novel way of thinking about data, not only is it centered around a business- and metric-centric user interface, we also need to adapt traditional BI tools (that mostly talk SQL) to the interface of Minerva API. In some sense, it is akin to fitting a new square peg (Minerva) into an existing round hole ( BI Tools). Very good read for anybody interested in data science!

[Read More]

Test your APIs further using HTTP Toolkit

Categories

Tags restful cio apis devops tdd cloud

If you’re a tester or developer who needs to work with APIs across different platforms, HTTP Toolkit is a valuable tool to keep by your side. By Anshul Behl. By Dennis Martinez.

When it comes to testing the APIs of our applications, we have lots of tools at our disposal. Most modern browsers have built-in tools for web applications to inspect any network requests made on any given page.

HTTP Toolkit is an open-source application that gives you the ability to handle most of your HTTP traffic inspection, and it’s an ideal way to manage your API requests in a single place. This article will go through the basics of using HTTP Toolkit and explore how it can help you debug and test your APIs. If you have to manage any APIs, mainly through a web application, keep reading.

The article provides more information on these topics:

  • What does HTTP Toolkit provide?
  • Using HTTP Toolkit to intercept traffic from a web application
  • Using HTTP Toolkit to mock HTTP requests and responses

HTTP Toolkit makes this intercepting and mocking easy through the “Mock” section. This section allows you to set any rules for handling different kinds of captured HTTP traffic. You can create a rule by selecting the HTTP method you want to monitor, filter those requests, and choose what you want to do next. In the free version of HTTP Toolkit, you can pause traffic before making a request to an application or service, after receiving a response, or both.

Once you begin inspecting traffic, HTTP Toolkit will collect every single HTTP request and response made from the apps and services you’re tracking with the app. It displays helpful information such as the HTTP method (GET, POST, etc.), the response status codes, the host where the request went to, and the URL path. From there, you can filter the requests or get a detailed view of any specific item and see almost every detail for the request and response. This information is invaluable when debugging apps or services connected to the Internet. Good read!

[Read More]

Introduction to ansible-test

Categories

Tags devops ansible tdd cloud

As automation becomes crucial for more and more business cases, there is an increased need to test the automation code itself. This is where ansible-test comes in: developers who want to test their Ansible Content Collections for sanity, unit and integration tests can use ansible-test to achieve testing workflows that integrate with source code repositories. By Anshul Behl.

Both ansible-core and ansible-base come packaged with a cli tool called ansible-test, which can be used by collection developers to test their Collection and its content. The ansible-test knows how to perform a wide variety of testing-related tasks, from linting module documentation and code to running unit and integration tests.

The article explains the following:

  • How to run ansible-test?
  • How to test your collection using ansible-test?
  • Sanity tests
  • How to ignore sanity tests?
  • Unit tests
  • Code coverage
  • Integration tests

As shown above, ansible-test can provide a lot of value testing Ansible Content Collections thoroughly. You will get further learning resources in the article as well. Good read!

[Read More]

Comparing SPAs to SSG and SSR

Categories

Tags frontend css web-development angular javascript nodejs react

What are the differences between Single Page Apps (SPA), Server Side Rendered Sites (SSR), and Static Site Generator based sites (SSG)? How do they compare in performance, SEO, developer experience, and flexibility? In this article, we give you an in-depth comparison of SPA, SSR, and SSG to help you make an informed decision on which strategies to use for your next front-end project. By Jacob Jackson.

The three different strategies have unique architectures. Often, if you are using a JavaScript framework, the simplest approach is to make a single-page app (SPA).

The article then explains:

  • The three strategies to JavaScript app development
  • When to use each approach
  • Performance
  • SEO
  • Flexibility
  • Ease of development

To ensure a good user experience, your website needs to be fast. Some approaches are faster than others. In general, SSG sites and SSR sites are faster than SPAs in terms of loading content. SPAs, as mentioned earlier, need to download the JavaScript for the app before they can display content.

However, in some cases, SSG and SSR can be slower. Because the server sends the HTML along with the JavaScript, there is a certain amount of duplication in the code. This means that the overall downloaded file is bigger, making the Time to Interactive (TTI) slower. Regardless of this file size increase, SSG and SSR will usually get better performance because of the faster content loading time. Another thing to note is that SSR sites can sometimes be slower due to the files needing rendering on every request. However, this can be mitigated by using strategies like edge computing.

Each approach to building a website with a JavaScript framework has its pros and cons. SPAs are best for heavily interactive apps where JavaScript is essential, and development resources are limited. SSG sites have the best performance and are good for sites with purely static content like marketing sites. SSR is good for more advanced sites that use more dynamic data without using client side JavaScript. Nice one!

[Read More]