Programmer Weekly (Issue 223 September 19 2024)

Programmer Weekly - Issue 223

Programmer Weekly

Welcome to issue 223 of Programmer Weekly. Let's get straight to the links this week.

Quote of the Week

 

"It's tempting to write a long complicated expression instead of two or three shorter ones where the intermediate results are stored in variables. But then every time you look at the long expression you have to pause for a moment to remember what is going on." – Mark Dominus

Reading List

This is an article about why GitHub became the dominant code hosting platform. It discusses the history of GitHub, including its founding and early growth. The article also details some of the technical reasons why GitHub is superior to other code hosting platforms.

SafeC++ is a proposed superset of C++ that aims to provide memory safety guarantees similar to Rust, while maintaining compatibility with existing C++ code. It introduces new features like borrow checking, safe containers, and an opt-in safety model to prevent common security vulnerabilities in C++ programs.

Decentralized data management requires automation to scale governance effectively. Fitness functions are a powerful automated governance technique we've applied to data products within the context of a Data Mesh. Since data products serve as the foundational building blocks (architectural quanta) of a data mesh, ensuring robust governance around them significantly increases the chances of a successful data mesh transformation. In this article, we’ll explore how to implement this technique. We'll start by designing simple tests to assess key architectural characteristics of a data product, and then we'll explore how to automate their execution by leveraging metadata about the data products.

The post discusses building LLM-powered applications in Go, highlighting Go's strengths in handling REST and RPC protocols, concurrency, and performance, which are crucial for LLM integration. It presents three variants of a RAG (Retrieval Augmented Generation) server implementation in Go, using direct API calls, LangChainGo, and Genkit, demonstrating Go's versatility in creating efficient LLM-powered applications.

The article humorously recounts the author's journey from PHP to JavaScript and back, highlighting Laravel's role in revitalizing PHP's appeal. It showcases Laravel's ease of use and comprehensive features through a hands-on example of building a video player app, suggesting that PHP, particularly with Laravel, is experiencing a resurgence in popularity among developers.

Valkey improved its performance to over 1.19 million requests per second by implementing memory access amortization, which reduces the impact of external memory latency. The technique involves interleaving memory access operations and prefetching, allowing for more parallel memory accesses and better utilization of the processor's speculative execution capabilities.

The article criticizes the poor quality of many programming language documentations, highlighting issues like poor organization, lack of search functionality, and inadequate explanations. It praises Rust's documentation as exemplary and suggests other languages should emulate its comprehensive, user-friendly approach, while providing specific critiques of Python, C#, Java, C/C++, Go, and JavaScript documentation.

The article discusses the strategy for managing service architecture in a theoretical company, emphasizing a policy of maintaining business unit-specific monoliths over microservices. It explores the challenges of balancing business growth, efficiency, and technical constraints while providing guidelines for service integration, new service creation, and consolidation of existing services into monoliths.

The article recounts the author's experience at a fintech startup that made critical accounting errors due to not implementing a proper double-entry ledger system, resulting in "dancing cents" and customer frustration. It then provides a comprehensive overview of how to design and implement a robust double-entry ledger system for fintech applications, emphasizing the importance of proper accounting practices in engineering financial software.

Read how we made upsert performance 300x faster on compressed data by moving from PostgreSQL sequential scans to index scans.

The article discusses strategies for optimizing web performance in high-latency environments, focusing on reducing round-trip times and leveraging modern protocols. It covers techniques such as using CDNs, upgrading to HTTP/2 and HTTP/3, implementing TLS 1.3, avoiding unnecessary connections and redirects, and utilizing caching strategies to mitigate the impact of high latency on web applications.

Watch and Listen

This podcast episode explores diverse applications of GPUs beyond graphics rendering, featuring Agnès Leroy's career experiences in GPU programming and optimization. It covers a range of GPU uses, from simulating fluid dynamics in hydroelectric power stations to accelerating novel encryption methods, showcasing the versatility of GPUs in complex computational tasks.

Daniel Thompson discusses Tauri, a framework for building small, fast and secure desktop and mobile apps using Rust and webviews instead of Electron. Key topics include improvements in version 2 like mobile support, the plugin system, and custom web views, the release cycle and future roadmap, and designing in the age of AI.

Learn key concepts for keeping API servers secure – from CORS to error handling to rate limiting and more. 

This Terraform crash course for beginners covers essential concepts like state management, drift detection, and building IaC projects on AWS. By the end, participants gain hands-on experience in using Terraform to automate and manage infrastructure across cloud and on-premises environments.

Interesting Projects, Tools and Libraries

A Go library for serving resources fairly.

A CLI tool designed to perform git operations en masse, allowing you to bulk execute git commands across multiple repositories.

Turn your Raspberry Pi into a low-latency home security camera using the v4l2 DMA hardware encoder and WebRTC.

Track data flowing through Java programs, gain new understanding at a glimpse.

Linutil is a distro-agnostic toolbox designed to simplify everyday Linux tasks.

World's most performant DOM-based web table.

Tansu is an Apache Kafka API compatible broker with a Postgres storage engine. 

The terminal for Kubernetes.

Our Other Newsletters

- A free weekly newsletter featuring the best hand curated news, articles, tools and libraries, new releases, jobs etc related to Python.

- A free weekly newsletter for entrepreneurs featuring best curated content, must read articles, how to guides, tips and tricks, resources, events and more.