Exploring Meta Oculus Quest: A Gamified Fitness Revolution | June 10 2026, 19:27

I finally got to the Meta Oculus Quest and it’s really something! FitXR (that’s a fitness game) is particularly sweaty. Objects of various shapes fly at you to the beat of the music and you have to punch them with different movements, using hands, legs, and torso; the pace is high, almost no time to think, and after 10 minutes, you’re totally worn out. That’s the kind of gaming I like!

Migrating SAP Commerce Content with Graph Databases: A Neo4j and Memgraph Guide | June 10 2026, 03:12

Published a new article on Hybrismart after a long hiatus. It’s about how to migrate data from an old site to a new one using a graph db (specifically, I used neo4j and memgraph). The case is as follows: there is an old site and a new site, and you need to transfer CMS data – components, pages, layout from the old to the new, while along the way making various transformations – for example, in the new site the styles are different, the layout is different, some of the components are different. For this task, I used a graph db.

It’s been a while since I wrote on my blog about SAP Commerce Cloud. I worked at SAP for two years, and thought it inappropriate to write about their products while formally having access to internal documents. Currently, I am working on two projects simultaneously – one about migrating SAP Commerce Cloud, and the other significantly about graph databases. At the junction of these worlds, the article was born.

https://hybrismart.com/2026/06/10/migrating-sap-commerce-content-with-a-graph-database/

Migrating SAP Commerce Content with a Graph Database

Understanding Your Dishwasher: Hot Water Connections and Built-In Heat Exchangers | June 08 2026, 12:43

I know how a dishwasher works. I’ve fixed it a couple of times => read the technical details. In the USA, it’s connected to the hot water supply on entry. Dishwashers have a weak heating element; it increases the temperature by only ~3°C/min, so heating up a full tray from scratch takes a while. It’s a good practice to run the hot water tap to warm up before starting the dishwasher. In countries with 220V, dishwashers often heat the water themselves. Bosch has an interesting solution: a heat exchanger in the wall. While the water heats up and is sprayed by the spray arms, a new batch of water pours into the heat exchanger. Then, the temperature of the new water batch slowly rises – while the ambient temperature in the chamber gradually drops, to avoid thermal shock for glasses when switching from dirty to clean water. And additionally, the heat exchanger provides a cold surface for drying – water from steam condenses there.

And everything stops not just on a timer (or rather, not only), but also by a turbidity sensor — an aquasensor. An infrared LED and a phototransistor inside the tray. It shines a beam through the water: strong signal received — water is clear, dishes are clean, time to wrap up; weak signal — too much dirt, need to keep running. That is, the machine itself decides whether to add a rinse. It also estimates the volume and dirtiness of the load — partly by the same turbidity, partly by how much the water cools when it’s sprayed onto the cold dishes (thermal mass) => the same Auto program can last either 1.5 hours or 3.

And here’s the most counterintuitive part. You should not rinse dishes before loading them. It’s not just soap, but a cocktail of surfactants (reduce surface tension), emulsifiers (make fats mix with water), dispersants (keep washed off dirt suspended so it doesn’t settle back), and enzymes (protease, amylase). Enzymes need food to latch onto. The main dirt on dishes is not fat (handled by surfactants and emulsifiers), but dried/burnt proteins and starches – large polymer molecules, insoluble in water and just mechanically adhering to the plate. You can’t knock them off with a jet, and there’s no one to rub them off. Enzymes — biological catalysts, cut these long molecules into small soluble pieces (protein into peptides and amino acids, starch into sugars), and these bits then easily wash away with water. Protease works on proteins, amylase on starch, sometimes lipase is added for fats. If you rinse everything off in advance – they just have nothing to do, washing off idly. If the aquasensor sees clean water at the start, it decides there’s not much to do, shortens the cycle, reduces intensity. Rinsing — you make the machine wash worse (but faster). Just scrape off solid chunks and load as is.

Insight about capsules. With each drain, water also carries away the dissolved detergent, so the machine injects the main dose only in the main wash — after it has drained the dirty preliminary water. But the pre-wash compartment is open, with holes, and the detergent leaks out right away. The capsule only opens in the main cycle, so for the first 10 minutes the machine runs clean water idly and no one is dealing with the fat then. That’s why powder is better than capsules: you can charge both compartments, and the pre-wash immediately tackles the fat.

Exploring Lippmann Plates: The Wonders of Early Color Photography | June 06 2026, 05:30

I learned today about a method of color photography invented in 1891, called the Lippmann plates. The Lippmann method is a beautiful hybrid of photography and holography. A layer of transparent gelatin with silver halide nanoparticles was applied to a glass plate, which was backed by a mirror made of liquid mercury (!). Light, passing through the glass, was reflected by the mercury, collided with itself, and created a standing wave. Inside the microscopic layer of gelatin, the light literally “froze,” burning silver nanostructures in strict accordance with the actual wavelength.

In all modern methods, color is achieved by overlaying three colors, just as on the screen from which you are reading this, red, blue, and green. Thus, there is no true yellow or purple in photographs. But on the Lippmann plate, all colors are real.

It’s also interesting that the Lippmann plate contains not a drop of pigment or dye. It is absolutely transparent! The color in it is born physically (due to structural interference) — just as the wings of butterflies or soap bubbles shimmer.

And obviously, you cannot make a copy from such a “photograph.” I’ll give a link to a good video below.

Indeed, this optical magic had its own quirks. Perfect mirror-like layers inside the plate were only obtained from pure, concentrated color. If a complex “dirty” or dull light entered the frame, the microstructures began to overlay each other, blurring the accuracy of color reproduction. Moreover, two opposite effects were born in the emulsion at the same time: the physical silver mirror created a colorful positive picture, but the silver itself remained just a regular black-and-white negative. Because of this optical conflict, the brightness of the frame was severely compressed, creating a vintage effect of a “hand-painted” photograph. Therefore, the method required jewel-like work with light and perfectly bright set pieces.

The Secrets of Painting and Maintaining a Water Tower | June 05 2026, 20:02

Why does the water tower (next to the house) have a tent during the day in thirty-degree heat, but not at night? That’s what I thought too. It turns out – I thought wrong.

It turns out that the tent is temporary, necessary for painting the tower. Once painted, it will be removed. At night, the paint is aired out and dries.

By the way, the tower is metallic, which means it changes size with temperature fluctuations. Hence, the paint is elastic.

Interestingly, how they check if everything has been covered with paint (because otherwise it will start rusting). They use a method, amusingly still called Holiday Detection since the early days of shipbuilding, which is essentially spark testing for defects.

A specialist takes a device that looks like a mop with a metal brush, to which a high voltage is applied (up to several thousand volts). Since dry epoxy resin is a dielectric and the steel wall behind it is a conductor, the inspector slowly moves the brush over the freshly painted wall. If there is even the slightest microscopic defect in the coating, the electrical circuit is completed, a loud beep sounds and a spark jumps. This spot is immediately marked and repainted.

Also, by the way, just in case someone didn’t know, these towers don’t even come close to creating enough pressure for the water to reach your faucet. They act as accumulators, softening the uneven consumption. And at the same time, they serve as a shock absorber.

And another interesting fact is that in the northern states the problem is not with heating but with freezing in the winter. A layer of ice forms on the surface and along the walls, comparable to a meter or two in thickness. And there, they really do have water heaters.

Understanding the Tingling Sensation from a Charging Laptop | May 31 2026, 15:27

Today I learned why there’s a tingling sensation from the metallic body of, say, a MacBook when it’s charging. The effect is called electrovibration, and it arises due to parasitic capacitive coupling and the absence of grounding in the standard power supply. This seemed kind of obvious, but exactly how it works was not.

Inside the charger, there is a capacitor, which allows a safe but noticeable potential of AC current to seep into the aluminum laptop case. When you touch the cover, your body and the laptop become a sort of living capacitor, with a thin layer of aluminum and skin acting as an insulator that separates the charges.

The pulsation of current in the socket – 50-60 Hz. The electric field between the finger and the body sometimes strengthens, sometimes weakens. According to Coulomb’s Law, this causes the skin to be attracted to the metal and then released. If you simply rest your hand on the laptop, the force of this attraction is too small to notice.

It results in sensory deception – nerve endings in the finger pads, which in nature are responsible for recognizing textures, go haywire from such microscopic friction chaos. The brain is completely unable to directly recognize electrostatic microcurrents, so it chooses the most logical interpretation for itself and convinces you that it’s the metal itself that is vibrating.

Script Evolution: Creating Multi-Dimensional Word Art | May 27 2026, 21:12

I created a script that generates inscriptions readable as three different words from the left, right, and top. Overall, this is a development of what I had in my previous post – there it was only left-right. One script generates triplets of words from a dictionary, which technically can be done. Another creates a 3D model that can be thrown onto a printer (might do that today), and the third does a visualization of this model – see video

Scripting Letter-Matched Phrase Translations | May 27 2026, 18:28

Made a script that creates stuff like this. You can translate different phrases into each other, as long as the number of letters matches. Now thinking about printing it on a 3D printer, it’s all ready

Exploring Algorithmic Image Processing for Large Format Printing | May 24 2026, 22:40

I’m playing with algorithmic image processing. Images only look interesting when printed in a large format – because all these fine lines merge when scaled to a phone screen. I’ll post a close-up in the comments.

It works like this: an image is given as input, and it is divided into squares of different sizes. Each square represents one number: how dark it is. The darker it is, the more lines are drawn inside. The lines are not straight – they are Bezier splines. They smoothly transition from one square to another because the points at the boundaries are shared. What results is not a grid, but a single continuous thread. Color – the image is split into CMYK channels (like in printing). Each channel is processed separately: its own grid, its own lines. Then the layers are superimposed on each other – and from three or four black-and-white plates, a colored picture emerges.

The image doesn’t look blocky because the splines smoothly transition from one square to another, but there is a problem: dividing the image into 10×10 squares essentially reduces the resolution tenfold. To correct this, several passes are made with different square sizes and shifted grids. The first pass uses large cells, the second is finer and shifted 10 pixels to the right, the third is even finer and shifted diagonally.

The entire process is controlled by a JSON config – separate parameters for each channel, specific settings for each pass within a channel. On output – SVG, which can be scaled to the size of a wall without loss of quality, and PNG, in which CMYK layers are superimposed with transparency.