From Vision to Bookshelf: Launching “Recommender Algorithms” | October 13 2025, 11:54

Finally, I have released a book! It is called Recommender Algorithms โ€” it contains more than 50 recommendation algorithms with mathematical explanations, detailed descriptions, and code examples.

It all started early in the spring in Germany, when I attended the ACM conference and made the first sketches of the book’s structure, analyzing reports on the RecSys stream. And now, six months later, the book has been published.

Why did it appear? Because there is no single, accessible source either online or in print where the recommendation algorithms of various types and purposes are thoroughly examined. There are articles focused on narrow aspects, but to collect and systematize the developments โ€” from fundamental to the most recent โ€” until now, it seems, no one has managed to do it for some reason. Maybe no one needed to. Suddenly, I found I needed to. I don’t know if I succeeded, but I am eager for your feedback.

Available on Amazon and Barnes and Noble. There is a Russian automatic translation (surprisingly, but very decent), but I do not know how to sell it yet.

https://www.testmysearch.com/books/recommender-algorithms.html?FB

(This is not my only book, but today โ€” just about this one.)

Decoding Solr and Lucene: Engineering Insights and Algorithms | October 06 2025, 17:11

Preparing a book for publication on Solr&Lucene. What do you think about publishing such a translation on Amazon? ๐Ÿ™‚

The book is about algorithms and under-the-hood engineering. I haven’t seen books from this angle yet, maybe someone will find it interesting.

Privacy Pitfalls of Outlook Notifications During Screen Sharing on macOS | October 06 2025, 14:05

Microsoft has one very nasty thing with Outlook for MacOS, which for some reason nobody tries to fix. If you have a meeting in 30 minutes, Outlook reminds you with a popup showing the upcoming meetings, where it “highlights” these meetings. Well, in my case, there’s no secret here, I could even share my screen during that time. But it would be nice if such notifications didn’t appear while screen sharing, especially while recording, because screen sharing goes through Teams, which is part of the same package as Outlook.

But what’s worse is something else. If you try to CLOSE this notification window while screen sharing on MacOS (especially if the recording is on), it causes the whole Outlook with all the emails there to pop up. And there might be things there that the viewers shouldn’t see. That is, by _closing_ the window, you suddenly reveal the titles of email messages. Which is completely unexpected (well, until you step on these rakes, then it’s not unexpected anymore).

AI Microphone Chaos: Blending Office Sounds into Unexpected Poetry | October 01 2025, 15:44

Bought myself an AI microphone that listens to everything around and provides summaries. Decided to test it once. With it, you can’t even watch reels with the mic turned off on your computer, because it tries to merge and summarize everything it hears ๐Ÿ˜‰

“..The team methodically moved through complex comparisons, but unexpected phrases like ‘Watch the video back if you didnโ€™t notice’ and ‘Donโ€™t be a sucker’ created a quiet, almost poetic dissonanceโ€”as if the universe whispered ‘Let it be’ amid spreadsheets and sprint tickets….”

Introducing the AI-Powered Text-to-Diagram Generator | September 30 2025, 20:57

While working on a book, I realized what kind of product I’m missing. It’s an AI diagram generator based on textual descriptions.

The idea is that the master document for the diagram is text. This textual description can be (and should be) quite detailed, so the generated diagram exactly matches the author’s vision. The diagram itself is not edited. That is, it can be edited – moving circles around, but ideally, after making changes, the system should update the text, generating from which will result in what the user adjusted.

The result โ€” the diagram โ€” should correspond as closely as possible to the description. If it does not match the description because, for example, it’s impossible to make a triangle with three obtuse angles, the system should do its best and provide a verbal response about what didn’t work. The user can then modify the task so that the system complies and produces the diagram correctly.

But then we understand that the author might have randomly achieved something that they liked with their flawed text. And if regenerated, it might turn out differently, and not necessarily better. Therefore โ€”

You could ask the system to generate a diagram description from the diagram, which, if inputted back into the diagram generator, would result exactly in what the description was generated from. Yes, this description would be more verbose and complex, but it would more reliably describe the result.

So, from this point, you are no longer working with the diagram. You are working with text. If a diagram is needed โ€” you simply compile the text into a diagram and it turns out as needed. But you don’t even work directly with the text. You work with this diagram-description text through an LLM, asking it to add some block, and the text changes, but changes in a way that everything doesnโ€™t suddenly shift.

The final diagram should be in an object form, from which raster (PNG) or vector (SVG, EPS) images can be created.

It would also be great if such a system could take existing diagrams or diagram templates so that it could borrow styles and existing conventions on how to display what.

So, these are my fantasies. If anyone has ideas on how to implement this โ€” let’s discuss ๐Ÿ™‚

Crafting the Future of Recommender Systems: A Deep Dive into Algorithms and Implementation | September 26 2025, 21:17

I decided a while ago to write a book on recommendation algorithms. With mathematics, code examples, a repository, etc. English, of course.

Accordingly, I am looking for volunteer reviewers who are knowledgeable in the field. Also those who have experience with print-on-demand on Amazon.

There’s already about 200 pages of content. About three months of work left. Working title Recommender Algorithms in 2026: A Practitionerโ€™s Guide. Roughly half of it is still in draft form, with the first 80 pages about 80% complete.

I’ve built a mechanism to publish in HTML and PDF simultaneously. The HTML version is fully functional, with navigation. The navigation block reflects the current section, and as you scroll, it shifts to the one in front of the reader. Clicking on a section, of course, teleports you to what you clicked on. It’s all completely automatic.

Revolutionizing Car Safety: Pre-Collision Airbag Deployment and Smart Updates in Modern Vehicles | September 24 2025, 12:54

So far, I have only one car model and brand that can deploy airbags not at the moment of impact, but a moment earlier, so that by the time of the impact, it’s not too late to do so. We’ll see what the news shows, but tests indicate that this thing works better than the traditional method. Reality might turn out to be harsher, but we’ll keep an eye on it.

It’s also interesting that the car started to receive new exciting features after purchase. I never had this experience before. What you bought it with, you lived with, and sometimes you could go to the dealership for something new, and it usually involved replacing something physical.

The previous update (not very useful to me, but maybe to someone) was about automatic detection of children and animals in the cabin. And if it turns out they were left inside while the owner left, the car does not turn off the climate control. And of course, it screams into the app that this is not a good thing to do.

Exploring AI Search Agent: Revolutionizing Automated Browsing and Task Completion | August 19 2025, 01:21

In addition to the main product for search testing, I am developing an AI Search Agent in my leisure time. You only need to provide it with two pieces of information: a website to visit and a goal (described in a short paragraph). In other words, this thing is smart enough to function without any setup – just the site and the goal, and then it’s on its own.

How it works: This virtual agent generates search queries on its own, refines them based on the results obtained (for example, simplifies them), and analyzes how well they match the intended purpose. If suitable results are found, the agent can add items to the cart and place an order โ€” if this is configured in the settings.

I’ve already written about this recently – today is just a slightly nicer demo. It will be even nicer as it is still being pulled from the middle of development, but you can already see how the page is analyzed, and there are initial results that can be used.

The agent can be used for several purposes. Firstly, it’s an excellent way to create ground truthโ€”a set of queries with perfect results. These data can then be used for search testing without involving often slow and expensive large language models (LLM). Secondly, it helps to test the search functions before deploying them to users. Thirdly, the agent generates realistic usage data needed for training recommendation models that require authentic interactions.

The colorful rectangles in the video are the language of interaction of the agent with AI (or LLM). To understand where to click, the system annotates the page and sends a structured description of the page to AIโ€”often along with a screenshotโ€”so it can analyze everything and make a decision about the next action.

Exploring TestMySearch.com’s Virtual Shopper System | August 15 2025, 04:27

As part of the TestMySearch.com project, I am creating a “virtual shopper” system that simulates the behavior of a real user in an online store: it starts with an abstract goal (for example, “something bright and sexy for the gym”), turns it into a specific search query, performs the search on the site, and depending on the results, may either continue browsing or, with a certain probability, reformulate the query if the findings do not match the original goal; the system then evaluates the pages for their alignment with the initial idea, opens product cards, randomly changes parameters such as color or size, makes decisions about adding to the cart and placing an order, and may also leave the site, which allows generating many sessions similar to real ones overnight for testing search, filters, and recommendations even before live users arrive.

The system is fully automatic. That is, the browser in the video opens by itself, the search field appears by itself (i.e., independent of the site), the system itself concocts the text based on that very initial goal, then the facets and search results are displayed, which may also be in a form unpredictable to the system โ€” but it still understands what is what, and makes decisions about whether to rephrase the query, select a facet or click on a search result. There is a certain probability that the virtual user will leave the site. If the query is reformulated, for example, this virtual user does not repeat queries that have already led to empty or irrelevant results, so within the session there is “memory”.

Navigating Code Generation with AI: Essential Skills for Programmers | August 04 2025, 14:28

I am currently using Gemini extensively for code generation, and I see a skill that programmers need to have to be successful in this field. It’s the ability to quickly read and understand someone else’s code, as well as explain why AI generation needs to be redone and how. For the former, you simply need to know the language very well and read “from the sheet,” because there will be little time to ponder. For the latter, you need to know patterns well and understand where they apply and where they do not. AI will still mess up using patterns inappropriately for a long time.

Moreover, a person will still need to understand “as a whole” 90% of the code generated by AI, and also manage to find time to comprehend each generated line of code. If you relax and miss it, the system may produce even working, but very poorly maintainable code. For instance, there is an unwritten rule that individual files should not contain so much code, and if it grows, you need to refactor, breaking one large into two or three. Sometimes this requires rewriting logic, but this rewriting is always aimed at one task โ€“ to simplify maintenance. And AI, while rewriting, also “improves” the code at the same time. And this is quite difficult to prohibit.

In addition, the very concept of LLM implies the limitation of the contextual window. Which gets filled with code very quickly. To create an illusion for the user that everything is working even with a large volume of code, LLMs are able to do preliminary processing, extracting only relevant pieces for processing and setting aside irrelevant ones, so that the relevant ones fit into the actual contextual window. But this process is very unreliable, and once it works, and the second time it turns out that something important was set aside, and as a result, the system did not see the whole picture and generated code, which includes a function very similar to the function set aside, and now we have two almost identical ones.

Besides, currently logic is distributed between the DB and the code. That is, data often controls the code. And data in LLMs simply often do not fit. There is too much of it. In the end, without programmers, current LLM architectures cannot cope. But the requirements for programmers’ qualifications will only increase with LLMs, not decrease. So yes, juniors should be worried, but leads not so much ๐Ÿ™‚