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.

Unexpected Perks: A Tale of Four Kettles and a Smart Ring | May 22 2026, 19:21

I ordered a Breville kettle. Costs a hundred bucks. Yes, I could have bought a similar one for 30, but I have all Breville products, plus a kettle is bought for several years. I come home – there’s a box up to my waist at the door. Not that surprised, because Amazon likes to put some little thing in the far corner of a huge box, it’s easier for them. But doubts increased after I couldn’t lift it with one hand. I bring it inside — and there are four kettles.

I open Amazon, check the order – everything’s correct, just one. Maybe they sell a 4-pack for 100 bucks? No, the description says one kettle. I contact support, a robot responds. I select the “brought extra items” option. The robot says “our fault, keep them”. Well, okay, now I have four kettles. Big family, one kettle for each.

Nadia has an Oura Ring 4. She says it has to be charged often. She says it used to last longer. I get in touch with support. A robot responds. I activate my own robot and ask it to draft a good letter to support. Their robot empathizes, says, “I’ll now connect to your ring and understand everything.” Connected, understood. Says, expect a new ring. Today, a plain envelope arrived with the ring inside. If it weren’t for FedEx it’d be easily lost in spam.

I love robots, almost got seven hundred bucks worth of goodies because of them. Well, good, at least the ring was a warranty case, although I expected to be dismissed with my battery complaints.

Well then, I asked the robot to make an illustration for the post.

Asian Fair Discovery: The Uni-ball Pen and Its Surprising Study | May 18 2026, 18:13

We recently had an Asian fair here – Japanese, Chinese, Korean goods, and street food. We bought a pie and some kind of pen for 6 bucks from Japanese vendors, which they beautifully packaged and asked for a review on Instagram. The pen is just a pen. Compared at home with our existing gel pens – no difference. But I Googled it out of curiosity.

“These inks are not just good-looking — they can even help you learn better. A study conducted at Ritsumeikan University in Japan showed that students who reviewed material from notes written with a black Uni-ball One pen retained information better than those who read notes made with regular black ink.”

I wonder who conducts such ridiculous research and who orders it. No surprises at all. Mitsubishi Pencil (the manufacturer of Uni-Ball) goes to the university, finds Professor Masashi Hattori (服部雅史) from the psychology department at Ritsumeikan University, and he organizes a report about a ‘memory reproduction task’ conducted on high school students: it compared the memorization of handwritten text with pens of different ink density, resulting in the conclusion that text written with dense black ink from the sponsoring company was reproduced more accurately than with regular gel ink.

Some of the co-authors of the report were Mitsubishi Pencil employees. There was no peer-reviewed article, only a conference presentation at the 38th Congress of the Japanese Society of Psychonomics (日本基礎心理学会第38回大会) on December 1, 2019; the results were also presented at the 32nd International Congress of Psychology ICP 2020+.

So, that’s the story with this pen 🙂

Gender Dynamics at The Great Gatsby Musical | May 18 2026, 01:23

Watching the Broadway musical Great Gatsby. It’s striking that the proportion of girls parading in dresses significantly exceeds the proportion of guys escorting girls. It made me wonder why. The explanation seems simple. If a girl wants to go to a musical and she doesn’t have a boyfriend, she will bring at least one girl, better yet two. Whereas a guy is more likely not to go at all than to show up with a buddy. Well, with certain exceptions.

Gender Dynamics at the Great Gatsby Musical | May 18 2026, 01:23

Watching the Broadway musical Great Gatsby. It’s striking that the proportion of girls flaunting dresses notably surpasses the proportion of guys chaperoning girls. Got me thinking why. The explanation seems simple. If a girl wants to go to a musical and doesn’t have a boyfriend, she’ll bring at least one girlfriend, better yet two. Whereas a guy would rather not go at all than show up with a buddy. Well, with certain exceptions.

Comparing Work Cultures: From Conflict to Courtesy | May 15 2026, 15:12

I reminisce about working on various projects and in different companies up until 2016, comparing it with what I see from the USA (projects in the USA, Europe, and Asia), and I notice one interesting thing – there are no screaming matches during calls, no hysterical outbursts, no unhinged managers yelling at everyone around, and getting upset over every little thing. There are no overt conflicts. Of course, there are still covert games and politics, but if someone is unpleasant to someone else, they do it with a smile and politely (though, overall, not often).

In my past life,” this was a common occurrence that nobody really considered abnormal. Especially if the hysterics were over some genuinely important work issue, and the person was truly passionate about the results.

What I’m really interested in is – what has changed? There are four likely explanations, probably working in conjunction:

1) I moved to the USA

2) times are different

3) people are on meds

4) online etiquette is different.

There’s also an obvious fifth reason – “I have changed,” but it doesn’t quite fit here, because I’m not talking about conflicts involving me or with me, but about observing others’ interactions, which are unlikely to have changed. From my perspective, as I observe, interactions during meetings have become much kinder, but I can’t tell if times have really changed everywhere or if Russian companies are still the same, and I just don’t see it for obvious reasons. Or is it the nuances of online meetings, where yelling at a computer somehow feels odd? We’re talking about major serious companies, not a meeting at a city sports committee.

Fox Encounters: From Intrigue to Confrontation | May 15 2026, 01:05

Remember a few days ago I posted about a fox that was very intrigued by Yuka and stared at him for a long time? Today, another fox went on the offensive. She yelled at us, circled around behind us, and yelled some more from there.

Maybe she was wishing him a happy birthday.

Anticipating a Special Day: A Dog’s Birthday Tale | May 14 2026, 23:39

Nadya told the dog in the morning that we would be picking up the cat. He came to the kitchen a couple of times and just keeps looking at me incessantly. As if saying, go on, tell me already, I remember that today is a special day. Well, there I am working, and he went off to sleep. Woke up. Looks out the window. Decided to cheer him up 😉

His special day is tomorrow, his birthday.

Raster to Draw.io Diagram Converter Tool | May 14 2026, 17:16

Today, in the morning, I created a program that converts a raster diagram in png/jpg format into an editable Draw.io diagram. It identifies objects – rectangles, circles, ellipses, triangles, and keeps them in their places. Then, it recognizes connections between them and links these blocks in drawio, allowing me to move them around as I wish. It also recognizes labels. It turns out pretty well. Other examples are in the comments.