Upgrading to Oculus 3: My Fitness Journey with FitXR | June 22 2026, 13:17

I enjoyed the Oculus 2, upgraded to Oculus 3 yesterday! Father’s day. For the last two weeks, I have only been using FitXR for about four to six ten-minute sets a day, most often in groups of three. If you, like me, have always been too lazy to go to the gym, this is a great thing. Especially convenient is that you can exercise whenever you want to break up the routine between meetings and other work during the day.

I also have a 10kg vest and 1.5kg wrist weights for this device.

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!

Mastering Cross-Posting: From Facebook Frustrations to Dual Blogging Excellence | May 23 2026, 14:28

I have perfected the cross-posting from Facebook to my two blog sites [which almost no one visits] – beinginamerica.com and raufaliev.com. When a new post is published on Facebook, a mechanism is triggered to translate the post into English, process attached images, generate descriptions for them, create a title based on the text of the post and descriptions of the images, generate tags from the same basis, record the post in turso db – this is a cloud database, free up to certain limits, create embeddings via openai, record in qdrant cloud – this is also a cloud database, but vector-based, and finally, upload images to wordpress via API, and publish the post in English and Russian via API.

All would be well, but of all the APIs, the silliest one is Facebook’s. Firstly, for pages like mine, transitioned to New Experience, it’s almost impossible to use most of this API. Well, it’s possible, but you have to spend a long time proving to Facebook that you really need it, by showing startup documents, demonstrating the application, etc. Obviously, they are reluctant to deal with something that takes content out of their system. In addition, the token that gives access to the latest messages is relatively short-lived (possibly a few weeks), and it needs to be obtained anew through a browser only. So, any automation requires regular attention, otherwise it breaks.

If you mess up and don’t offload the latest posts through this Facebook Graph API in time, they just disappear from the list of recent ones and that’s it, no more API access to them. The only way is to request an archive download from Facebook. This download is also rather silly – it requires a lot of transformations and removing unnecessary stuff. For example, in the file containing posts, which I process, for some reason there are links that I sent in comments without accompanying text. And the comments are in a separate file!

To assign tags, I had to solve a separate challenge. Here’s the thing: there are about 10,000 posts over all time. That’s a big chunk, and you can’t build tags from it because it doesn’t fit into the contextual window of the LLM. But you need to. So, I did this: a script takes random posts from the 10,000 in such a volume that their total size is just below the specified limit in tokens, and at the end of this block, it adds the prompt “generate the most common tags for me, 30 pieces” (I simplify the prompt used). In the end, I ran this 10 times and got 10 sets of tags with 30 pieces each, generated for different slices of the database. That made 300 tags, some of which are complete duplicates, while others are synonyms and closely related in meaning. All this is fed into the LLM, and we get a list of tags and a hierarchy of tags. Now we have a limited set of tags that reflect the 10,000 posts as closely as possible. Turns out, that in almost 20 years on Facebook, my breakdown is as follows:

Tag Posts

==================================================

#Russia 3412

#Thoughts 3146

#Tech 3105

#Culture 2765

#Hobbies 2726

#AI 1603

#Science 1367

#Software 1358

#Travel 1298

#Learning 1138

#Society 1050

#Nature 958

#Education 915

#Business 902

#Art 894

#Programming 889

#Humor 840

#History 807

#Gadgets 750

#Moscow 713

#USA 614

#Cinema 567

#Webdev 493

#Music 476

#Sports 473

#Mindset 443

#Auto 400

#Books 386

and so on. This list includes both tags from the limited list and tags that the LLM appointed to content simply because it didn’t find anything suitable in the limited one.

Tags from the limited list became categories on the site. The rest of the tags + these just became regular wordpress tags.

As for image search. I had two ideas on how to do it. The first – OpenCLIP. It’s pretty straightforward but requires hosting the model somewhere. Easy on my machine, but inconvenient to start it each time, plus I planned to move the migrator to a cheap server on Amazon. It’s also okay to calculate in cloud models, but you have to pay a bit, which is yet another dependency. But the main thing – it works quite well without it. I generate descriptions for images using OpenAI, which is used for translating into English anyway, and then create embeddings using a large model. So far, all search tests are a great success. Especially when there’s text on the image, and it’s a big question whether OpenCLIP would have interpreted it successfully.

In the end:

1) wordpress raufaliev.com – free

2) wordpress beinginamerica.com – free

3) turso db where all posts are stored – free

4) qdrant cloud where embeddings are stored – free

5) openai for translation and image descriptions – not free, but inexpensive (cost $30 for post processing over a year).

I attach two screenshots – how the search by images works, and by texts, as well as the migrator dashboard.

NFC Smart Lock Review: Battery Woes and Unexpected Vendor Response | March 13 2026, 18:49

At the beginning of the year, I bought an NFC smart lock for the front door for 170 bucks. Recently, I wrote a review on Amazon stating that the batteries lasted only a month and a half, and if it continues like this, I will end up paying almost the same amount annually. The manufacturer has responded saying they will refund the money. They didn’t ask to remove the review, and I don’t even know if that’s possible.

Unlocking the Mystery: Dual Voltage Needs in Smart Locks | March 07 2026, 22:43

Update: figured it out, looks like the lock needs 6v + 6v for different purposes. Maybe the power part and electronics.

Anyone who knows electronics, help me understand. Red wires are connected to contacts that respond to the tester. A total of 8 batteries. I can’t see a classic snake configuration here. Can’t understand why the lower right ones are responding. I want to connect an external adapter

Building a Plotter from Scratch: My DIY Journey | January 30 2026, 05:43

I assembled a plotter from a kit. It’s practically a Lego set – you spill out the parts from the box and then read the manual. It worked right away. I have some ideas about what to do with this thing, I’ll tell you sometime.

How Gemini Transformed Low-Resolution Previews into High-Quality PDFs | January 03 2026, 14:18

How unexpectedly useful Gemini turned out to be in a simple task – to create a high-quality PDF from a low-resolution preview. Nano Banana Pro was used, meaning, the output was raster, not vector. Look at the difference. Very often it is impossible to even make out the text, so from time out it turned into time dute;-). But overall, not bad.

Exploring Aescape: A Robotic Massage Experience | December 19 2025, 21:26

Nadia and I tried out the Aescape robot massage. Well, I was interested to see the technical side of it all. Overall, it’s quite interesting, but driving 45 minutes instead of 15 to get a robot, even if it’s slightly cheaper… not sure it makes sense to go there regularly. It’s a different story if you’re already at the gym and want a massage right now, without an appointment – it’s like a deluxe massage chair. Yes, in that case, it’s exactly what you need.

The system scans the body with four cameras on the ceiling, creates a 3D model, and then on the whole, the robot arms do a pretty good job of kneading the muscles just right, stronger in some places, gentler in others – considering the overall anatomy, and the specific person on the table. Some might wonder, won’t they accidentally maim someone due to some bug, but we drove there and back on Tesla’s autopilot, and if the cars were going to kill us, they’d have had an easier chance.