Codeminer42 Dev Weekly #3

HELLO EVERYONE!!! It’s March 22, and you are reading Codeminer42’s Dev Weekly! Let’s discover what this huge tech world had to show us this week!

What is Reactive Programming? Beginner’s Guide to Writing Reactive Code – by Pacifique LINJANJA

This blog post is a good guide for software engineers with experience building enterprise-level apps using JavaScript/Typescript technologies. It includes information about a real-time notification system and the key interactions with the system, and discusses the importance of understanding streams and observables in reactive programming, providing tips for best practices and avoiding common pitfalls. The author also mentions building a real-time notification system using Node.js and the benefits of using reactive programming.

Virtual DOM vs Shadow DOM – What’s the Difference? – by Joan Ayebola

This interesting post talks about the differences between Virtual DOM and Shadow DOM. Virtual DOM is a concept used in frameworks/libs like React to improve performance by minimizing DOM manipulations during updates. Shadow DOM refers to restricting parts of the DOM tree for better encapsulation of web components. Ayebola highlights their differences in terms of aspects like purpose, implementation, performance, and isolation.

Good Database Migration Practices for Your Ruby on Rails App using Strong Migrations – by Thomas Riboulet

It is very important to use good database migration practices for Ruby on Rails apps using Strong Migrations. The author highlights the issues with schema migrations, the use of Strong Migrations to avoid problems, and guides adding, renaming, and removing columns in a database.

Practical Railway-Oriented Pipelines in Ruby – by Ismael Celis

This article talks about the implementation of practical railway-oriented pipelines in Ruby focused on data processing workflows. It explains the use of the Result class, steps, pipelines, and how to stop processing at any point in the pipeline. The author also covers passing metadata with the result, composing pipelines, extending pipelines, and middleware for tracing and caching. Various use cases for pipelines, such as building queries, durable execution workflows, concurrent execution, HTTP handlers, and testability, are also mentioned.

Step-by-step guide to building an artificial neural network and observing how overfitting occurs with MNIST and CNN architecture – by Javadnejadi

The author, Javadnejdi, shows us how to build and train various neural network models on the Modified National Institute of Standards and Technology database (MNIST) handwritten digit classification dataset. He explains the steps involved such as data preprocessing, model architecture design, compilation, training, and evaluation. It demonstrates preventing overfitting through techniques like normalization, dropout, L2 regularization, early stopping, and hyperparameter tuning. Besides plots of learning curves are generated to analyze model performance and optimize hyperparameters.

Kubernetes Deep Dive: Exploring Its Architecture – by Abhishek Yadav

Our friend Yadav does a deep dive into the Kubernetes’ architecture and describes its key components. It explains that Kubernetes uses a control plane and nodes to manage containerized applications. The control plane components that manage the cluster include the API server, scheduler, and controller manager. Key node components running on each node include the kubelet, container runtime, and kube-proxy. The blog post also provides details on what each component does and how it contributes to Kubernetes’ orchestration capabilities.

When Do You Self Join? A Handy Trick – by Saikat Dutta

The article discusses the concept of self-join in SQL, explaining that it is not a specific command but a technique used to join a table to itself. It provides examples of how self-joins can be used in scenarios such as working with hierarchical data. The author emphasizes that while self-joins may not be intuitive, they are essential in certain situations and can be helpful in SQL interviews.

New acoustic attack determines keystrokes from typing patterns – by Bill Toulas

This week researchers have demonstrated a new acoustic side-channel attack on keyboards that can deduce user input based on typing patterns, even in noisy environments. They have published a technical paper detailing the attack method, which involves capturing typing samples and training a statistical model to predict keystrokes. The attack has an average success rate of 43% and can be used in real-world scenarios without controlled recording conditions. The method has limitations, such as difficulty profiling individuals with inconsistent typing patterns.

Erlang in 100 Seconds – by Fireship

Yeah, another good content from our friend Jeff Delaney. This time he introduces Erlang, a functional programming language created by Ericsson in 1986 for managing massive concurrent systems in telecommunications. Early Erlang implementations used Prologue but were too slow, leading to the development of BEAM, a virtual machine that compiles Erlang to bytecode and runs it in a threaded environment with minimal overhead. He mentions too the popular tools in Erlang’s ecosystem like RabbitMQ, Discord, and WhatsApp, as well as modern languages like Elixir and Gleam. In the video, the speaker showcases Erlang’s concurrency model using its concurrency primitives and message passing, which allows processes to pause execution until a message is received, making it effective for handling large volumes of messages in real-time applications.

And that’s all for this now folks, happy commits to everyone! See you all next week! 👋

We want to work with you. Check out our "What We Do" section!