About:

Tomasz Wisniewski is a software designer and developer with a focus on technology and networking, sharing insights through his blog.

Website:

Specializations:

Interests:

Technology Software Development Networking Multimedia Devices
Subscribe to RSS:
Robin Hood hashing optimizes hash table performance, outperforming unordered_map in read-heavy scenarios, as demonstrated through benchmarks and implementation details.
The blog post discusses member functions with reference qualifiers introduced in C++11, which are essential for move semantics. It explains how to specify lvalue or rvalue reference qualifiers on non-static member functions, provi...
The blog post discusses the management of project dependencies using Nix and Nixpkgs, emphasizing its utility as a development tool. It covers basic use cases, installation essentials, and the Nix language fundamentals. The author...
The post highlights GCC's __attribute__((cleanup(func))) feature for automatic resource management in C, akin to C++'s RAII, with practical implementation examples.
PEP 723 introduces a standard for inline metadata in Python scripts, allowing for easier management of dependencies without the need for a full project setup. The post provides an example script that utilizes this new feature, dem...
The post provides a guide on disabling shell history in Bash to protect sensitive information while maintaining session navigation.
The article discusses the use of the filesystem as a simple substitute for databases, particularly for small utilities and shell scripts. It explains how directories and files can be used to model tables and rows, and how relation...
The author discusses using Lua as a configuration parser, highlighting its benefits and flexibility. They provide code examples and tests to demonstrate the ease of working with Lua for configuration parsing.
The text discusses a new syntax found in the kernel code, which is a ternary operator with one of the values omitted. This syntax is a GNU extension and is non-portable code.
The author discusses the challenges of defining abstractions and interfaces in the zig programming language, comparing it to C++ and Rust. They express frustration with the lack of language support for abstract interfaces and dyna...
The author shares a list of tools they have found useful in 2024, divided into three sections: general shell helpers, nvim setup, and tools deployed in their home lab or on servers. The tools include zoxide, tmuxp, direnv, just, p...
The text is a knowledge summary of the basics behind using asynchronous I/O APIs, specifically posix AIO and liburing in Linux. It explains the general workflow of using these APIs and provides examples of simple programs using ai...
The author is writing a back-end for a web application and is parsing a user-agent string. They are using uap-go to parse the strings and are facing an issue with the regex file. They are using go:embed to solve the problem and ha...
The text discusses the problems of capturing an invalid 'this' pointer in a lambda, leading to undefined behavior. It also explores the use of shared_from_this and move semantics to solve these issues. The text concludes with a ca...
The text provides an overview of the new features added in C11 and C23, including the repurposing of the auto keyword, attribute specifiers, _Generic, nullptr and nullptr_t, #embed for binary inclusion, and static asserts. It disc...
C++20 introduced concepts to the standard, allowing for constraints and restrictions on template parameters. Concepts create interfaces for generic code, making it clear what to expect and what types are accepted. Type constraints...
The text discusses common problems with shared pointers in C++ code bases, including circular references, unpredictable point of destruction, and ownership inversion. It also provides examples and solutions for these problems.