November 15, 2024Ardan Labs
From the Ardan Community
Introduction: Welcome to Episode 4 of the JSON for Engineers series! In this episode, we tackle the complexities of working with JSON data, especially when dealing with extensive datasets and optimizing type management. Here, Miki introduces key strategies for managing large JSON documents, avoiding unnecessary type definitions, and using Go’s encoding/json package to handle custom serialization needs effectively.
Type Pollution Avoidance: Minimizing type declarations by using selective decoding and anonymous structures.
Continue reading November 8, 2024Ardan Labs
From the Ardan Community
Introduction: Welcome to Episode 5 of Fearless Concurrency in Rust! In this episode, Herbert Wolverson dives into advanced concurrency tools, focusing on RwLock for managing simultaneous reads and writes and the powerful concept of interior mutability. These tools provide developers with greater control over data sharing in multithreaded environments, enabling them to optimize for both performance and code simplicity in Rust.
Read-Write Locks (RwLock): Manage concurrent read and write access efficiently.
Continue reading November 1, 2024Ardan Labs
From the Ardan Community
Introduction: Welcome to Episode 3 of JSON for Engineers! In this episode, Miki Tebeka explores the intricacies of JSON field mapping and value handling, especially when working in strongly typed languages like Go. This session covers the practical challenges of matching JSON fields to Go struct fields, distinguishing between missing and zero values, and using default values to ensure robust JSON parsing. These strategies are crucial for engineers managing flexible JSON data structures in a language with strict type requirements.
Continue reading October 30, 2024Ardan Labs
From the Ardan Community
Introduction: As you embark on the journey from C or C++ to Rust, you’ll discover a world of exciting possibilities. Rust’s emphasis on safety, concurrency, and performance can significantly enhance your programming toolkit. This beginner’s guide on transitioning from C and C++ to Rust will provide a structured approach to making that transition, addressing essential concepts and practical applications. Let’s dive in!
Step 1: Understanding Rust’s Ownership Model Concept Overview: Rust’s ownership model is its most distinctive feature.
Continue reading October 25, 2024Ardan Labs
From the Ardan Community
Introduction: Welcome to Episode 4 of Fearless Concurrency in Rust! In this episode, we explore how Rust’s ownership and borrowing rules impact multithreaded programming, focusing on the complexities of managing memory in a concurrent environment. We’ll break down how Rust’s strict borrowing and ownership model ensures safety and prevents common pitfalls like data races and undefined behavior, making it an ideal choice for building reliable multithreaded applications.
Thread Safety and Ownership: Managing variables across threads using Rust’s ownership rules.
Continue reading Introduction Everybody knows JSON, it’s a simple serialization format and the default format for REST APIs. Like many other topics, there are fine points you should know in order to work with JSON more effectively and avoid common mistakes.
In this article we’ll explore some big picture aspects and some low level details of using JSON.
Serialization Before diving into JSON, I’d like to take a look at serialization in general and discuss common mistakes I’ve seen my customers make.
Continue readingOctober 18, 2024Ardan Labs
From the Ardan Community
Introduction: Welcome to Episode 2 of JSON for Engineers! In this episode, we explore the unique characteristics of JSON as a schema-less format, discussing both its benefits and challenges. You’ll learn how JSON’s flexibility, while enabling rapid development, can create issues when working with strongly-typed languages like Go. Additionally, we’ll cover the differences between JSON and more compact binary formats, and how to handle JSON’s broader use in web applications.
Continue reading October 11, 2024Ardan Labs
From the Ardan Community
Introduction: Welcome to Episode 3 of the Fearless Concurrency series! In this episode, Herbert explores advanced threading techniques in Rust, focusing on scoped threads and the Rayon library to help developers build more efficient and parallelized applications. This episode is packed with practical insights on when and how to use different threading models to optimize performance and handle complex workloads.
Scoped Threads: Ensuring safe access to shared data with guaranteed lifetimes for concurrent threads.
Continue reading October 04, 2024Ardan Labs
From the Ardan Community
Introduction: Welcome to Episode 1 of JSON for Engineers! In this first episode, Miki Tebeka dives into the fundamentals of serialization, with a special focus on JSON, one of the most widely-used data formats in software engineering. Miki draws from his extensive development experience to explain how JSON fits into the bigger picture of data interchange and serialization, laying the groundwork for engineers to use it effectively in real-world applications.
Continue reading September 27, 2024Ardan Labs
From the Ardan Community
Introduction: Welcome to Episode 2 of the Fearless Concurrency in Rust series! In this episode, Herbert Wolverson dives into the fundamentals of threading in Rust, demonstrating how to use Rust’s threading capabilities effectively while maintaining safety. The focus is on using std::thread to spawn threads, preventing data races, and ensuring efficient, reliable multithreaded execution.
Creating Threads in Rust: How to spawn and manage operating system threads using std::thread::spawn.
Handling Data Races: Rust’s borrow checker and ownership system preventing unsafe data access across threads.
Continue reading