Category: Development

K8s Cleaner: Optimize Your Kubernetes Clusters

2024-12-18

K8s Cleaner is a Kubernetes cluster cleanup tool designed for administrators. It efficiently identifies and removes unused resources to boost cluster performance and reduce operational costs. Supporting all resource types, including CRDs, it offers pre-defined rules and customizable options (time-based, label-based, or custom Lua scripts). Notifications are sent via Slack, Email, and more, while a dry-run mode prevents accidental changes. K8s Cleaner streamlines Kubernetes resource management.

Java for Small Programs: Scripts and Notebooks

2024-12-18

This article explores the surprising effectiveness of Java for small programs, particularly scripting and exploratory programming. The author details how Java's features, like implicit classes, records, and enums, simplify code, highlighting the ease of running Java scripts without compilation (using JEP 330 and JEP 458). Managing external dependencies with JBang is also discussed. The article further delves into using Java within Jupyter Notebooks, acknowledging current limitations while expressing hope for future improvements in the ecosystem. The author's experience automating tedious tasks showcases Java's strength over alternatives like bash scripting and Python, emphasizing the advantages of static typing and robust tool support.

Development Scripting

BlackSheep: A Fast and Lightweight ASGI Web Framework for Python

2024-12-18
BlackSheep: A Fast and Lightweight ASGI Web Framework for Python

BlackSheep is a fast asynchronous ASGI web framework for Python, inspired by Flask, ASP.NET Core, and the work of Yury Selivanov. It offers a CLI for rapid project bootstrapping, supports automatic binding, dependency injection, OpenAPI documentation generation, and various authentication and authorization strategies. BlackSheep boasts broad platform and runtime compatibility, and features middleware, WebSocket, SSE, static file serving, and Jinja2 integration, making it ideal for building high-performance web applications.

GitHub Copilot: Your AI Pair Programmer

2024-12-18
GitHub Copilot: Your AI Pair Programmer

GitHub Copilot is an AI-powered pair programmer that provides real-time code suggestions based on your code and natural language prompts. It supports multiple programming languages and IDEs, offering free and paid plans to suit various needs. Copilot boasts powerful debugging and security vulnerability fixing capabilities, along with multi-file editing and cross-platform support. While trained on public code repositories, it doesn't copy-paste code but generates suggestions probabilistically, offering an optional code referencing filter to mitigate copyright concerns.

ISO 8583: The Secret Language of Credit Cards

2024-12-18
ISO 8583: The Secret Language of Credit Cards

Every time you tap your card or pay online, you're interacting with the ISO 8583 protocol. This 1987 standard defines the format of real-time transaction messages between banking networks. It includes core fields like message type indicators, bitmaps, and data elements, but networks vary in their extensions and serialization, leading to compatibility challenges. This article delves into the complexities of ISO 8583's structure, field encoding, nested message handling, and demonstrates building a robust ISO 8583 parser to handle network variations and error scenarios.

Castle Game Engine Update: Web Target, IFC Support, and mORMot Collaboration

2024-12-18
Castle Game Engine Update: Web Target, IFC Support, and mORMot Collaboration

The Castle Game Engine team announced updates including a web target (using JS+WebAssembly for browser-based game execution), support for the IFC (Industry Foundation Classes) format, and collaborative editing using mORMot2. The web target currently handles basic functions and is improving WebGL support. IFC support allows loading, modifying, and saving models, with future enhancements planned. Collaborative editing is still under development but already enables 3D world modification and server synchronization.

Development game engine

Brisk: A Cross-Platform C++20 GUI Framework for High-Performance Rendering

2024-12-18
Brisk: A Cross-Platform C++20 GUI Framework for High-Performance Rendering

Brisk is a modern, cross-platform C++20 GUI framework built for creating responsive, high-performance applications with ease. Leveraging an MVVM architecture and reactive capabilities, Brisk boasts scalable GPU-accelerated rendering, making it ideal for graphics-intensive projects. It supports multiple backends (D3D11, D3D12, Vulkan, OpenGL, Metal, WebGPU) and features declarative GUI, stylesheets, and full Unicode support. Currently under active development, contributions are welcome.

Hadrius Hiring Founding UI/UX Designer, Up to $150K

2024-12-18
Hadrius Hiring Founding UI/UX Designer, Up to $150K

Hadrius, a Y Combinator-backed fintech startup, is hiring a Founding UI/UX Designer. They're using AI to automate the back office for financial firms, preventing future financial crises. The role is full-time in New York City, offering $80K-$150K salary and 0.01%-0.15% equity. The ideal candidate is a highly skilled designer with experience at a design-focused tech company, proficient in Figma, and passionate about Hadrius's mission. The team boasts engineers from Google, Chime, and other top companies, and the company is experiencing hyper-growth, doubling revenue every three months.

Development UI/UX Design

Leadership Power Tools: SQL, Statistics, and Data-Driven Decisions

2024-12-18
Leadership Power Tools: SQL, Statistics, and Data-Driven Decisions

This article explores how engineering leaders can leverage SQL and statistical methods for data-driven decision-making. The author points out that many engineering leaders are uncomfortable extracting and interpreting data, recommending learning SQL (e.g., using DuckDB) and statistical tools. The article covers summary statistics, distributions, confidence intervals, and Bayesian reasoning, demonstrating how to calculate confidence intervals by analyzing Firefox bug tracking data, using Monte Carlo simulations for project time estimation, and applying Bayesian inference to update project completion probabilities. The article emphasizes the importance of data analysis skills for engineering leaders, enabling more precise predictions and decisions.

Canva Engineering Cuts CI Build Times from Hours to Under 30 Minutes

2024-12-18
Canva Engineering Cuts CI Build Times from Hours to Under 30 Minutes

Canva's engineering team dramatically reduced their continuous integration (CI) build times, from an average of 80 minutes to under 30 minutes, sometimes as low as 15. This was achieved through a multifaceted approach. They identified and resolved Bazel caching issues, optimized pipeline structures, improved Git repository checkouts and caching, and leveraged Bazel Remote Build Execution (RBE). Extensive experimentation, including testing different instance types and adjusting Bazel configurations, played a crucial role. A series of incremental improvements significantly increased CI efficiency, reduced costs, and enhanced the developer experience.

GitHub Project ted: A Turing Machine-based File Editor

2024-12-18
GitHub Project ted: A Turing Machine-based File Editor

ted is a command-line tool written in Go that allows users to edit files according to the rules of a provided Turing machine. Inspired by the author's need to process log files, ted uses state machines to precisely extract the desired information. It supports various operations, including regular expression matching, sed command execution, variable assignment, capture and output control, and offers features such as multi-line capture, regex capture groups, and file head/tail movement.

Homescreen App: Redefining Your Home Screen Experience

2024-12-18

Homescreen is an app designed to revolutionize the home screen experience on your phone. Breaking free from the limitations of traditional phone desktops, it offers users a more personalized, efficient, and convenient way to interact with their devices. Users can customize widgets, themes, and layouts to create a unique home screen, boosting productivity and enjoyment. Homescreen isn't just a simple desktop replacement; it's a refreshing approach to how we use our phones.

Reclaiming Sensor Data: Breaking Free from the Cloud

2024-12-18
Reclaiming Sensor Data: Breaking Free from the Cloud

This article details how an embedded software engineer regained control of data from a cloud-connected radon sensor by bypassing the manufacturer's servers. By analyzing network traffic, the engineer discovered a vulnerability where the sensor didn't properly validate server certificates. Leveraging a local DNS server and a custom Python web server, the engineer successfully intercepted and read the raw sensor data. This grants programmatic access and ensures continued functionality even if the manufacturer's servers go down. The article highlights the importance of network security and the privacy risks associated with DNS traffic.

Browser Extension 'refoorest' Accused of Fraudulent Tree-Planting Scheme

2024-12-18
Browser Extension 'refoorest' Accused of Fraudulent Tree-Planting Scheme

An investigation into Colibri Hero's browser extension, refoorest, and its Impact Hero SDK reveals a deceptive affiliate marketing scheme disguised as a tree-planting initiative. The extension misrepresents the number of trees planted, exploits user data through incentivized reviews and sharing, and the SDK gains excessive user permissions without proper disclosure, violating Chrome Web Store policies. The article exposes a pattern of opaque practices, including fake testimonials, financial secrecy, and data security vulnerabilities, casting serious doubt on the company's claims of environmental responsibility.

Optimizing Ruby's JSON: Part 1

2024-12-18

This blog post details how the author optimized Ruby's `json` gem to become one of the fastest JSON parsers and generators. Instead of complex techniques, simple optimizations were applied based on profiling, such as avoiding redundant checks, prioritizing cheaper conditions, reducing setup costs, and using lookup tables. These improvements apply to both C and Ruby code. The optimizations significantly boosted the `json` gem's performance, making it competitive with alternatives like `oj`, reducing the need for monkey patching, and addressing stability and compatibility issues associated with `oj`.

ImPlot3D: A High-Performance Immediate Mode 3D Plotting Library Based on Dear ImGui

2024-12-18
ImPlot3D: A High-Performance Immediate Mode 3D Plotting Library Based on Dear ImGui

ImPlot3D is an open-source library built on top of Dear ImGui, offering developers an easy-to-use, high-performance way to create 3D plots. Independent of ImPlot, ImPlot3D supports various 3D plot types, including line plots, scatter plots, surface plots, and mesh plots, with interactive rotation, panning, and zooming. Its intuitive API, similar to Dear ImGui and ImPlot, allows for quick integration and customization of markers, lines, surfaces, and mesh styles, with options for built-in or custom colormaps. A comprehensive demo application aids users in learning and utilizing its features.

Development 3D plotting

Python Meta-Circular Interpreter: Implementing a Python Interpreter in Python

2024-12-18

This article demonstrates how to create a Python meta-circular interpreter (MCI) using Python itself. An MCI is an interpreter written in the language it interprets, allowing implementation of a subset or superset of the host language. The author details the MCI's implementation, covering parsing Python source code, building an Abstract Syntax Tree (AST), traversing the AST and executing statements, and crucial concepts like scoping, symbol tables, and handling control flow statements (e.g., while loops and if statements). This example provides a deep understanding of interpreter mechanics and showcases how to leverage Python's AST module and built-in functions to build more complex interpreters.

Jupyter Notebooks: E2E Testing and Documentation in One

2024-12-18

While developing a quantum computing library, the author leveraged Jupyter Notebooks as both user guides and end-to-end tests. By reading environment variables (like SERVER_URL) within the notebooks, they achieved parameterization, allowing execution by users and automated CI/CD pipelines. Two methods for running notebooks were explored: nbclient for simplicity, and nbconvert/jq for more control but increased complexity. The author opted for nbclient's ease of use, effectively integrating documentation maintenance and code testing, ensuring the integrity of both with every merge request.

Development E2E testing

Taming the Chaos: Centralizing and Structuring Error Handling in Go

2024-12-18
Taming the Chaos: Centralizing and Structuring Error Handling in Go

This article details the author's journey in tackling escalating error handling issues in a growing Go project. Initially, the simple approach to error handling devolved into chaos with confusing logs and untraceable errors. To solve this, a new error handling framework was designed and implemented. This framework employs a centralized, structured system using namespace codes to make errors meaningful and traceable. The core is a centralized declaration of error codes; each service layer returns only its own namespace codes, enriched with context information. The article thoroughly explains the design decisions, implementation, lessons learned, and migration strategy, offering valuable practical experience.

Ergo: A Modern Go-Based IRC Server Released

2024-12-18
Ergo: A Modern Go-Based IRC Server Released

Ergo is a modern IRC server written in Go, designed for ease of setup and use. It combines the features of an ircd, services framework, and bouncer (integrated account management, history storage, and bouncer functionality). It boasts bleeding-edge IRCv3 support and is highly customizable via a rehashable YAML config. Key features include integrated services (NickServ, ChanServ, HostServ), native TLS/SSL support, SASL authentication, LDAP support, and advanced security and privacy features.

Development IRC server

Open-Source 5-Band Equalizer a5eq.lv2 Released

2024-12-18
Open-Source 5-Band Equalizer a5eq.lv2 Released

ashafq has released a5eq.lv2, an open-source 5-band equalizer LV2 plugin. This plugin features a low shelf, three peaking filters, and a high shelf, designed for precise audio sculpting by both amateur and professional audio engineers. It boasts high-precision filter coefficients, stereo processing, and a user-friendly interface. Compatible with any LV2-supporting host software such as Ardour and Audacity, it's easily installed and used via command line. Users can submit issues or contribute code via GitHub.

Adaptable Text Editor 'ad': Blending Vim and Acme

2024-12-18
Adaptable Text Editor 'ad': Blending Vim and Acme

ad is a novel text editor that combines the modal editing interface of Vim and Kakoune with the extensibility approach of Plan9's Acme. ad allows users to execute text and serves as a playground for experimenting with implementing various text editor features. Currently, ad is stable enough and feature-complete enough to try out, though documentation is sparse and bugs may exist. ad's design philosophy blends Vim's modal editing, Emacs's mini-buffer, and Acme's editing commands and extensibility, aiming for a comfortable editing environment that supports direct interaction with external tools and programs.

Quick Texture Generation: An XOR Texture Tutorial

2024-12-18

This tutorial explains how to generate an XOR texture, a simple texture created by XORing the x and y coordinates of each pixel. While not ideal for games or art, it's perfect for testing texture mappers. The article details the XOR operation, discusses the effect of texture size on color brightness, and shows how to generate similar textures using AND and OR operators. A 3D texture example using XOR is also presented.

dLine: A Terminal-Based Calendar Tool for Efficient Schedule Management

2024-12-18
dLine: A Terminal-Based Calendar Tool for Efficient Schedule Management

dLine is a command-line tool that presents important data in a calendar format directly within your terminal. It monitors critical dates, simplifies event addition via APIs, and calculates timespans for various event types. Designed for developers, dLine streamlines event management and schedule navigation without leaving the terminal. It features dynamic and static views, an event calculator, and robust data management capabilities including adding, deleting, viewing, and cleaning events. dLine also supports custom color schemes, user translations, and integration with Google Calendar.

OpenAuth: A Universal, Self-Hosted OAuth 2.0 Server

2024-12-17
OpenAuth: A Universal, Self-Hosted OAuth 2.0 Server

OpenAuth is a universal, standards-based, open-source authentication provider. Deployable as a standalone service or embedded within existing applications, it's framework-agnostic and runs on Node.js, Bun, AWS Lambda, or Cloudflare Workers. Adhering to OAuth 2.0, OpenAuth offers a customizable, themeable UI. Unlike most open-source auth solutions which are libraries, OpenAuth is a centralized server designed for easy self-hosting on your infrastructure. It intentionally omits user management, instead providing callbacks for custom user lookup/creation. Data storage is minimal (refresh tokens, etc.) using a simple KV store (Cloudflare KV, DynamoDB). A pre-built UI is available, but you can easily customize or replace it entirely. Created by the SST team, OpenAuth simplifies authentication for your applications.

IncludeOS: Run Applications in the Cloud with Zero Overhead

2024-12-17

IncludeOS is a lightweight operating system that lets you run your application in the cloud without a traditional OS. It integrates OS functionality directly into your application, creating high-performance, secure, and resource-efficient virtual machines. IncludeOS applications boot in tens of milliseconds and require only a few megabytes of disk and memory. Simple command-line tools facilitate building and deployment, and ample examples and documentation help developers get started quickly.

SeleniumBase: A Powerful Web Automation Framework

2024-12-17
SeleniumBase: A Powerful Web Automation Framework

SeleniumBase is a robust Python framework for web automation, testing, and bypassing bot detection. Built on Selenium WebDriver and integrating with test runners like pytest, it offers a clean syntax and extensive features such as automatic waits for page elements, test report generation, a dashboard, and support for multiple browsers and operating systems. SeleniumBase also includes modes like UC Mode and CDP Mode for enhanced stealth and reliability, along with comprehensive examples and documentation for quick adoption.

Development web automation testing

Cerbos Leverages CRDTs for Collaborative Playground

2024-12-17
Cerbos Leverages CRDTs for Collaborative Playground

Cerbos built a collaborative IDE and testing environment, the "Playground," to simplify complex authorization logic. To enable seamless collaboration, they utilize Conflict-Free Replicated Data Types (CRDTs), which automatically resolve conflicts in distributed systems. The article explores CRDTs, comparing popular libraries like Yjs and Automerge, and discusses the challenges and possibilities of building a custom CRDT. Cerbos integrates CRDTs with a backend-for-frontend (BFF) architecture, using WebSockets for data transfer and IndexedDB for local persistence, creating a robust collaborative platform. The challenges of global collaboration and data persistence are also addressed.

1 2 193 194 195 197 199 200 201 202