Roman on Software
Home
Blog
All Tags All Posts
Author Contacts



Recent posts

Filmic Tonemapping Curve

Mar 22, 2025

4 mins read

Image Processing Tonemapping Python

Tonemapping is used to achieve visually-pleasing rendering of high dynamic range scenes, e.g. those captured by HDR cameras or simulated by computer graphics. It is commonly attained by applying an S-shaped curve to the intensity channel. The curve is called “filmic” by analogy with the characteristic curve of a typical photosensitive material.

Continue reading

Logging With Multiprocessing Pool

Mar 13, 2025

7 mins read

Python Multiprocessing Logging

While debugging image caching in mikula I encountered a problem of adding logs to the part of the code that was executed as a multiprocessing pool task. The standard logging package in Python can handle multithreaded applications but requires special handlers to log across multiple processes or applications. Popular mechanisms for passing log messages between processes use Sockets, HTTP or multiprocessing queues. Examples of using these techniques can be found in the Logging Cookbook.

Continue reading

Optimal Solution

Sep 20, 2024

4 mins read

C++ Interview

I saw a post on LinkedIn in which the author published his optimal solution to a coding interview problem. The challenge involved searching a sorted array. Any cheatsheet would tell you that the best solution to the problem would involve a binary search. If you are using C++ for purposes for which the language was created then you probably know that any textbook solution is suboptimal until proven otherwise. When I contacted the author of the post with a request to add benchmarks to illustrate how the optimal solution outperforms the naïve implementation I got a somewhat puzzling reply that he had no means to profile his code.

Continue reading

Anti-Python

Aug 29, 2024

4 mins read

Python Interview

A few days ago I came across a post on LinkedIn that discussed an interesting Python interview question. The task was to reverse a string. When a candidate produced an idiomatic solution my_string[::-1] the interviewer asked to try again without using conventional string slicing. At this stage the puzzled candidate began to question the sanity of the situation and sank into some sort of an existential crisis.

Continue reading

Exploring SIMD

Aug 20, 2024

6 mins read

SIMD IPP Gcc Benchmarks C++

Support for Single-Instruction-Multiple-Data (SIMD) will be added in C++26. An experimental implementation of the proposed SIMD library has been available in gcc since version 11. In this post we are going to explore the library and run some benchmark tests.

Continue reading

See all

© 2024 Roman Kosobrodov. Powered by Hugo. Theme Ramium.