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 to build low latency crypto trading systems using Java and Chronicle services

Categories

Tags miscellaneous jvm java app-development programming

Cryptocurrency trading is an emerging market with its own rules. However, when it comes to the need for low-latency arbitrage, that is, being able to react rapidly to changing market prices and placing orders ahead of the competition, there are lessons we can learn from optimizing classic trading systems. By Ivan Rakov.

In this article we’ll take a look at the techniques that the Binance exchange uses to provide market data to its customers, but the techniques and patterns used by this exchange are similar to many other exchanges as well. Exchange updates are provided by a websocket connection, typically over multiple channels with differing latency characteristics.

The article then pays attention to best practices and how to go about implementing efficient market data connector:

  • Allocation-free parsing
  • Determinism and reproducibility
  • Zero-cost events serialization
  • Low latency oriented and flexible threading model
  • Resulting architecture of crypto market data connectivity layer

A classic way of parsing a JSON is delegating it to a library, which returns a structured representation like JSONObject. This representation is usually an object tree that will be disposed of after the parsing is complete. Continuous creation of temporary objects causes extra pressure on the JVM garbage collector, which in turn may result in unpredictable latency spikes. Read full article to learn more!

[Read More]

Handling multiline logs with Loki and Fluent Bit on Kubernetes

Categories

Tags kubernetes java web-development devops

Logging is one of the core parts of monitoring in an application life cycle. Fluent Bit is an open-source project that allows log processing and forwarding. In this post, I will point out some useful hin that I have found during configuring the fluent bit for our environment. Loki is another tool from Grafana used for log aggregations. By @cleancloud-k8s.com.

In this tutorial you will learn how to install following stack:

  • Prometheus de facto metrics collection in monitoring landspace
  • Grafana a genius visualization plaform(optinal)
  • Loki is the log aggregation system
  • Fluent-bit log Processor and forwarder

The focus of this post is the Fluent-Bit so it worth writing a few sentences more about. It is written in C language thus makes extremely performant and since an open-source project is, it is constantly developed and maintained. For further information go and have a look at its web page. You will get a step by step tutorial how to install all the above together with configuration and deployment yaml files for kubernetes and helm. Nice one!

[Read More]

Dependency injection in JavaScript: Write testable code easily

Categories

Tags nodejs javascript web-development frontend tdd

I struggled with two aspects of software development as a junior engineer: structuring large codebases and writing testable code. Test-driven development is such a common technique that is often taken for granted, but it’s not always clear how code can be made fully testable. By Nate Anderson.

This article shares a few powerful tools to help you write testable code that grows into neat, manageable code bases:

  • What is a dependency?
  • SOLID principles
  • Single responsibility principle
  • Dependency inversion principle
  • Example: An overwhelmed express handler for Node.js
  • Layered architecture for separation of concerns in JavaScript
  • Separation of concerns: An example
  • Mocking on the Fly with Jest
  • Benefits of mocking

The dependency inversion principle encourages us to depend on abstractions instead of concretions. This, too, has to do with separation of concerns. Observing the single responsibility principle means that we only unit test the one purpose a unit of code fulfills. In this post, we’ve taken a concrete example of an overwhelmed function and replaced it with a composition of smaller, testable units of code. Even if we accomplish identical lines-of-code test coverage for both versions, we can know exactly what broke and why when tests fail in the new version. Nice one!

[Read More]

Top 10 Angular best practices to improve your Angular app

Categories

Tags angular web-development learning frontend css google

Despite all the compelling features offered by Angular, if you overlook your coding practices for the Angular code, there are chances of facing performance issues. By Archita Nayak.

Maintaining your code is very important, not only for Angular but any other framework, because it directly affects the output, and you surely don’t want a clumsy web app. In this blog – we will discuss Angular best practices to improve your Angular app performance instantly. Get knowledgeable on how to refine your Angular code with a clean code checklist in Angular.

The article then names these best practices to improve your Angular application performance:

  • Use Angular CLI
  • Make use of trackBy
  • Try avoiding the use of logic in the component
  • Use of lazy loading
  • Prevent memory leaks
  • Declaring variable types rather than using any
  • Angular coding practices

… and more. You should try to develop coding practices in any technology or framework, which enhance the performance, readability, and understandability of the application. Best applications are developed when developers focus on how to code and what not to code. Good read!

[Read More]

Apache Kafka and MQTT - Overview and Comparison

Categories

Tags devops cloud learning messaging

Apache Kafka and MQTT are a perfect combination for many IoT use cases. This blog series covers various use cases across industries including connected vehicles, manufacturing, mobility services, and smart city. This is part 1: Overview + Comparison. By Kai Waehner.

MQTT is an open standard for a publish/subscribe messaging protocol. Open source and commercial solutions provide implementations of different MQTT standard version. MQTT was built for IoT use cases, including constrained devices and unreliable networks. However, it was not built for data integration and data processing.

The blog post then explains:

  • Apache Kafka vs. MQTT
  • When (not) to use MQTT?
  • When (not) to use Apache Kafka?
  • Kafka + MQTT = Match Made in Heaven
  • Example: Predictive maintenance with 100,000 connected cars

In conclusion, Apache Kafka and MQTT are a perfect combination for many IoT use cases. Follow the blog series to learn about use cases such as connected vehicles, manufacturing, mobility services, and smart city. Every blog post also includes real-world deployments from companies across industries. It is key to understand the different architectural options to make the right choice for your project. Good read!

[Read More]

4 reasons you need automation in integration

Categories

Tags cio ibm cloud learning

Learn how AI-powered Automation can transform the integration lifecycle and why it makes sense to deploy it in your own organization. By IBM Cloud Education.

AI-powered Automation brings an innovative approach to integration, increasing the speed and lowering the costs of integration projects. Though there are many reasons to automate your integrations, we’ll cover the top four.

The article then covers following topics:

  • What is automation in integration?
  • Reason 1: Accelerate integration development
  • Reason 2: Boost integration quality
  • Reason 3: Increase efficiency and reduce costs
  • Reason 4: Ensure security, governance and availability

Automated integration enables organizations to update systems of record with integrity and at scale. The latest tools include protection for data at rest and in motion, which is often a regulatory requirement. Resiliency features and auto-scaling functionality help ensure that backend systems can manage workloads without costly and disruptive changes. Organizations can also identify deployment, operations and security issues as they happen, providing data to feed AI for future best practices and asset protection. Nice one!

[Read More]

CSS REM: What is REM in CSS?

Categories

Tags css web-development app-development learning

In this article I’m going to discuss some use cases of REM (Root EM) in CSS. CSS (which stands for Cascading Style Sheets) uses properties and values to create all the aesthetic magic that goes on in webpages. By Slimane Aguersif.

This article is about one of these values, namely REM, which stands for Root EM. REM is a value of the value/ data type length. Another value of length is our good old friend pixel (px). Every property that accepts lengths as a value will accept REM. Some of these are margin, padding, and so on.

The article will walk you through:

  • What is CSS?
  • What is REM in CSS?
  • Relative values vs absolute length values in CSS
  • Root EM and root font size
  • Responsive web design with REM

Google encourages you, in this article about responsive web design, to restrict line length to not much more than 10 words. This is in accordance with classical readability theory. They advise that you should use media queries with break points chosen in such a manner that the width of your content/text lines are not too long. This helps provide the best possible reading experience. Nice one!

[Read More]

NGINX tutorial: Reduce Kubernetes latency with autoscaling

Categories

Tags nginx kubernetes containers devops servers

Your organization built an app in Kubernetes and now it’s getting popular! You went from just a few visitors to hundreds (and sometimes thousands) per day. But there’s a problem… he increased traffic is hitting a bottleneck, causing latency and timeouts for your customers. If you can’t improve the experience, people will stop using the app. By Daniele Polencic of learnk8s.

This blog accompanies the lab for Unit 1 of Microservices March 2022 – Architecting Kubernetes Clusters for High‑Traffic Websites – but you can also use it as a tutorial in your own environment (get the examples from our GitHub repo). It demonstrates how to use NGINX Ingress Controller to expose an app and then autoscale the Ingress controller pods in response to high traffic.

This tutorial uses these technologies:

  • NGINX Ingress Controller
  • Helm
  • KEDA
  • Locust
  • minikube
  • Podinfo
  • Prometheus

In the final challenge, you build a configuration that autoscales resources as the traffic volume increases. The tutorial uses KEDA for autoscaling, so first you install it and create a policy that defines when and how scaling occurs. As in Challenge 3, you then use Locust to simulate a traffic surge and Prometheus to observe NGINX Ingress Controller performance when autoscaling is enabled.

You can also follow the tutorial by watching provided video. Links to further resources and reading are also provided. Nice one!

[Read More]

How Firebase Performance Monitoring optimized app startup time

Categories

Tags cloud android monitoring web-development performance performance ios

Mobile users expect their apps to be fast and responsive, and apps with a slow startup time, especially during coldstart, can leave them feeling frustrated. By Viswanathan Munisamy. Firebase Performance Monitoring is a tool that helps you gain insight about various app quality signals, including startup time of your application.

Modern Android applications perform multiple operations until the application becomes responsive to the user. “Startup time” of an application measures the time between when an application icon is tapped on the device screen, to when the application is responsive.

The article then explains how:

  • Library impact at startup
  • Firebase Performance Monitoring at startup
  • Performance Monitoring app startup time optimization
  • Impact of Firebase Performance Monitoring

Application startup time improvement is a moving target for all developers. Though device hardware has been dramatically improving in recent years, the challenge of improved startup time performance continues to push barriers. We are continuously investing in reducing the startup time impact. Good read!

[Read More]

A complete guide to distributed tracing

Categories

Tags cloud programming agile monitoring web-development servers performance

Distributed tracing helps you track requests across services and understand issues affecting your application performance. In distributed cloud architecture, debugging performance issues is complicated. By Ankit Anand.

Distributed tracing can also serve as a knowledge base for your engineering team. It can act as a central overview dashboard that enables anyone to quickly get familiar with the application architecture.

In the article you will find following information:

  • What is Distributed Tracing?
  • Why is Distributed Tracing needed?
  • Understanding a Trace
  • Deriving value from Distributed Tracing
  • Distributed Tracing with OpenTelemetry
  • Getting started with Distributed Tracing

SigNoz is an open-source APM tool that provides distributed tracing as one of its main capabilities. It is built to natively support OpenTelemetry so that you can build your entire monitoring stack with open source tools. This article will help you to start on your distributed tracing journey!

[Read More]