Автоматизация кросс-постинга: боремся с трудностями API Facebook | 2026-05-23T14:28:22

Доделал в лучшем виде кросс-постинг из фейсбука на два моих сайта-блога [на которые почти никто не заходит] — beinginamerica точка com и raufaliev точка com. При публикации нового поста в фейсбуке по расписанию стартует механизм перевода поста на английский, разбор приложенных картинок, генерация описаний к ним, создание заголовка на основе текста поста и описания картинок, создание тегов на их же основе, запись поста в turso db — это облачная база, бесплатная до определенных лимитов, создание эмбеддингов через openai, запись в qdrant cloud — это тоже облачная база, но уже векторная, ну и загрузка изображений в wordpress по API, и публикация поста на английском и на русском по API.

Все бы хорошо, но из всех API самый дурацкий — у фейсбука. Во-первых, для страниц как у меня, переведенных в New Experience, нет возможности использовать почти все из этого API. Точнее, есть, но нужно долго доказывать фейсбуку, что это реально надо, показывая документы на стартап, демонстрируя приложение и т.д. Очевидно, им не хочется иметь дело с чем-то уносящим контент из их системы во вне. Кроме этого, токен, который дает доступ к последним сообщениям, относительно короткоживущий (возможно, несколько недель), и получать его заново нужно через браузер только. То есть, любая автоматика требует регулярного внимания, иначе она ломается.

Если протупил и вовремя не выгрузил последние посты через этот Facebook Graph API, они просто исчезают из списка последних и все, больше по API к ним не обратиться. Единственный способ — запросить выгрузку архива у фейсбука. Эта выгрузка тоже довольно дурацкая — там нужно много трансформаций делать и убирать лишнее. Например, в файле с постами, который я обрабатываю, там почему-то хранятся ссылки, которые я отправлял в комментариях без сопроводительного текста. А комментарии там идут в отдельном файле!

Чтобы назначить теги, пришлось решить отдельный челендж. Вот есть около 10000 постов за все время. Это большой кусок, и по нему теги построить нельзя, потому что он в контекстное окно LLM не помещается. А надо. Поэтому я делал так: скрипт берет случайные посты из 10000 в таком объеме, чтобы их суммарный размер был чуть меньше указанного лимита в токенах, и в конец этого блока добавляется промпт «сгенери мне наиболее частые теги, 30 штук» (промпт привожу упрощенно). В итоге я запустил это 10 раз и получил 10 наборов тегов по 30 штук, сгенерированных для разных срезов базы. Получилось 300 тегов, из которых конечно есть полные дубликаты, а есть синонимы и близкие по смыслу. Это все скармливается LLM, и получаем список тегов и иерархию тегов. Теперь у нас есть ограниченный набор тегов, которые максимально отражают 10000 постов. Так получилось, что за почти 20 лет на фейсбуке у меня расклад такой:

Тег Постов

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

#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

ну и так далее. Этот список включает как теги из ограниченного списка, так и теги, которые LLM поставила материалу просто потому, что не нашла в ограниченном ничего подходящего.

Теги из ограниченного списка стали категориями на сайте. Остальные теги + эти стали просто тегами wordpress.

Поиск по картинкам. У меня было две идеи как его сделать. Первая — OpenCLIP. Это довольно просто, но требует хостинга модели где-нибудь. На своей машине легко, но каждый раз ее запускать неудобно, плюс я планировал переносить мигратор на дешевый сервер в амазон. В облачных моделях тоже нормально считать, но хоть немного за это надо платить, а это еще одна dependency. Но главное — что и без этого неплохо работает. Я с помощью OpenAI , который и так используется для перевода на английский, генерю описания к картинкам, и дальше по этим описаниям делаю embeddings с помощью large модели. Пока что все тесты на поиск проходят на ура. Особенно, когда на картинке есть текст, и большой вопрос разобрал бы ли его OpenCLIP.

В итоге:

1) вордпресс raufaliev точка com — бесплатный

2) вордпресс beinginamerica точка com — бесплатный

3) turso db где хранятся все посты — бесплатный

4) qdrant cloud где хранятся эмбеддинги — бесплатный

5) openai для перевода и описания картинок — не бесплатный, но недорогой (обработка постов за год потребовала 30 баксов).

Прикладываю два скриншота — как работает поиск по изображениям, и по текстам, а также дашборд мигратора.

Блогерша и скандал: экс-муж Лерчек приговорён к тюрьме за финансовые махинации | 2026-04-13T14:19:04

Жена-блогер — не роскошь, а средство передвижения

Цены на бензин у ЦРУ: как сатира становится реальностью | 2026-04-11T21:16:12

У нас есть одна заправка рядом с ЦРУ, которая тупо ставит цены на бензин на 40 процентов выше, чем где-либо ещё. Обычная ободранная заправка, которая просто руководствуется принципом «работает — не трожь».

С турбо паскаля до CAD для мебели: история Bazis Soft | 2026-03-06T17:43:22

Моя первая работа, программистом, с офисом в Коломне и за деньги. 1993 год, а может еще годом раньше. 10-11 классы школы. И эта компания до сих пор существует, и ребята, с которыми я работал, до сих пор там! Наталья Бакулина, Павел Бунаков, Николай Каскевич. Прикиньте. Причем они вообще начали в 1986 году, то есть 40 лет назад уже! Я с трудом вспомню еще коммерческие компании такого возраста в России. Когда я пришел к ним работать, был MS DOS, писали на Turbo Pascal, но они начинали за много лет до меня еще на ЭВМ СМ-1420, правда, тогда компания была не совсем коммерческой. На момент моего прихода система была конкурентом AutoCAD на рынке, локально еще конкурировали с «Компас». Я делал установщик с дискет 5.25″ и 3.5″ — это чтобы почувствовать дух эпохи. Дальше они перешли на Delphi и Windows. Дальше они сузили тему, и из CAD для машиностроения перешли к CAD для мебели, где до сих пор у них очень неплохие позиции.

Альтруизм гигантов: миф или реальность? | 2026-03-04T19:00:11

Я не верю в альтруизм гигантов. Когда речь заходит о больших государствах или корпорациях-миллиардерах, верить в то, что они руководствуются «принципами добра» и «всеобщим благом» на мой взгляд, это либо наивность, либо опасный самообман.

Реальная цель всегда остается в тени. Почему? Потому что, если все поймут истинные намерения, достигать их станет в разы сложнее и дороже. Точнее, их и так все понимают, просто круг этих понимающих небольшой.

Возьмем «освободительные войны». Когда диктатуре несут демократию на штыках — это не про права человека. Это способ внедриться в чужую систему и показать, кто здесь «альфа-самец». В этом государстве всегда есть конкретные интересы. Проще говоря, это создание геополитической «крыши». В определенных культурах тебя уважают только за силу. Если ты не показал доминантность — тебя не слушают. А если показал — тебя пускают в «совет старейшин» и просят «порешать вопросики».

Если корпорация вдруг начинает неистово заботиться о планете — ищите второе дно. Скорее всего, старое производство стало слишком дорогим в обслуживании, и его пора менять. Но под соусом «уменьшения выбросов» модернизация заходит на ура. Бонусом идут налоговые льготы, гранты и возможность заработать на господрядах. Экология — это просто красивый фасад для оптимизации расходов.

Часто инициатива идет не изнутри системы, а снаружи. Пример: В районе строят роскошный парк со скамейками и уточками. Забота о людях? Относительно. Главные интересанты — девелоперы. Квартиры в домах у парка стоят на 20-30% дороже и продаются в два раза быстрее. Бизнес или политик просто поддерживает идею, которая приносит прибыль (финансовую или электоральную) конкретным группам.

Даже святая святых — наука — держится не только на любопытстве и желании создать лучшее будущее для людей. Огромная часть открытий движима банальным тщеславием. Ученому важно оставить имя в веках, подняться на ступеньку выше в иерархии или хотя бы чувствовать себя «рок-звездой» на профильной конференции. Личные амбиции двигают прогресс эффективнее, чем абстрактное желание помочь человечеству.

Когда технологические гиганты запускают бесплатный спутниковый интернет или раздают дешевые смартфоны в развивающихся странах (Африка, Индия), это подается как «миссия по соединению мира». Реальный интерес — рынки золотого миллиарда перенасыщены. Единственный способ расти — создавать новых потребителей. Давая человеку «бесплатный» доступ, корпорация подсаживает его на свою экосистему, получает доступ к биометрии и поведенческим данным миллионов людей, которые еще не защищены законами о конфиденциальности. Это колонизация цифрового пространства 21 века.

Крупнейшие филантропические организации часто тратят миллиарды на борьбу с болезнями или голодом. Реальный интерес — Налоговая оптимизация и «мягкая сила». Перевод активов в фонд позволяет избежать налога на наследство или прирост капитала. При этом основатель сохраняет контроль над средствами через совет директоров. Бонусом идет статус «неприкасаемого» в медиа: критиковать человека, который «спасает детей», — значит совершить репутационное самоубийство. Это лучшая страховка от антимонопольных расследований.

Массовое внедрение «повестки» в Голливуде часто воспринимается как торжество либеральных ценностей. Реальный интерес — минимизация рисков и расширение аудитории. Киностудии — это огромные бюрократические машины. Для них «разнообразие» — это чек-лист, который страхует от бойкотов и скандалов (которые стоят денег). Кроме того, добавляя персонажа определенной этнической группы, студия автоматически открывает для себя локальный рынок этой группы по всему миру. Это чистая математика охватов.

Миром правит не доброта, а интересы и иерархия. И, пожалуй, это даже хорошо — по крайней мере, это предсказуемо и логично. Это все было про альтруизм гигантов. А вот в альтруизм отдельных людей я очень даже верю.

Триллионные успехи и пустые полки: ирония Walmart | 2026-02-04T02:49:36

Сегодня Walmart преодолел планку в 1 трлн долларов капитализации, а я в него сходил

Переход Tesla на подписку автопилота: экономия или издержки? | 2026-01-24T19:27:25

Тесла прекратила продавать опцию пожизненного автопилота за 8000 долл, оставив только подписку за 100 долл в месяц. Я вообще не понимал людей, которые платят эти 80 тысяч вместо того, чтобы сидеть на подписке, потому что подписка сравняется с этими $8000 только через 7.5 лет (с учетом инфляции 3%), когда машину уже наверное пора будет менять на новую.

Но интересно насколько Тесла этим шагом повысила привлекательность машин с небольшим пробегом, в которых FSD есть, но которые продаются значительно ниже MSRP по причине бэушности. Фактически, если ты покупаешь машину и серьёзно намерен платить за FSD, покупка б/у может сэкономить тысячи долларов стоимости владения.

Авиакомпании и пассажиры крупной комплекции: новые правила и старые вызовы | 2025-12-30T20:21:04

Сажусь в самолёт и задумался, а как авиакомпании разделяют излишне тучных людей от ещё недостаточно тучных, и как они заставляют первых платить в два раза больше. И как м это вообще дружит с политикой всеобщего равенства и единых возможностей. Проблема вызывает «антропометрический диссонанс» — за последние десятилетия средняя ширина кресла в самолетах сократилась с 47 до 43 см, в то время как средний вес пассажиров значительно вырос. В итоге, выходит жесткая классификация пассажиров на «обычных» и официально признанных «пассажирами крупной комплекции» (Customer of Size — CoS).

.

Главным техническим критерием, разделяющим эти категории, является «правило подлокотника». Если тело человека выступает за внешнюю границу опущенного подлокотника более чем на 1 дюйм (2,5 см), он официально признается «негабаритным». Неспособность полностью опустить подлокотник без боли для себя или дискомфорта для соседа является основанием для требования выкупить второе кресло.

.

До 2025 года авиакомпания Southwest Airlines считалась «золотым стандартом» для крупных людей, позволяя бесплатно занимать второе место. Однако с 27 января 2025 года правила изменились: теперь такие пассажиры обязаны покупать второе место заранее при бронировании. Если человек этого не сделал и самолет оказался полон, ему могут просто отказать в посадке и предложить перебронировать билет на другой рейс, где будет два свободных места рядом.

.

Финансовые риски теперь почти полностью лежат на пассажире. Согласно новой политике 2025 года, возврат средств за дополнительно купленное место возможен только в том случае, если рейс вылетел не полностью заполненным. Учитывая, что средняя загрузка самолетов сегодня составляет 85–90%, вероятность того, что деньги за «кресло для комфорта» не вернут, крайне высока.

.

В мире существует «географическая лотерея» прав пассажиров. В Канаде действует уникальная доктрина «Один человек — один тариф» (1P1F), закрепленная судом. Там ожирение признано «функциональной инвалидностью», поэтому на внутренних рейсах авиакомпании обязаны предоставлять второе место бесплатно, если пассажир предоставит медицинскую справку. В США и Европе таких льгот нет, и комфорт считается коммерческой услугой.

.

Технически, есть ещё правило ремня», которое является вторым по значимости (после правила подлокотника) и служит своего рода «юридическим и техническим барьером». Типа каждый пассажир обязан быть пристегнут во время руления, взлета и посадки. Если ремень не застегивается, пассажир физически не может находиться в кресле. Мол, это не вопрос комфорта, а вопрос законности нахождения на борту. Если стандартной длины ремня не хватает, пассажир имеет право попросить удлинитель (seatbelt extender). Обычно он добавляет от 25 до 60 сантиметров. Сам факт просьбы удлинителя часто фиксируется бортпроводниками как маркер «пассажира повышенной комплекции». Это критический момент. Большинство авиакомпаний мира официально запрещают использовать два удлинителя одновременно. Если человеку не хватает длины одного стандартного ремня плюс одного удлинителя, он признается «негабаритным» для данного типа кресла. В этом случае авиакомпания имеет полное право снять его с рейса или потребовать покупки второго места, так как безопасность не может быть обеспечена.

.

Безопасность полетов — основной аргумент авиакомпаний при введении ограничений. Согласно нормам EASA и FAA, полная эвакуация самолета должна занимать не более 90 секунд. Крупный пассажир, который физически не помещается в кресло, может заблокировать проход или замедлить движение других в экстренной ситуации, поэтому им запрещено занимать места у аварийных выходов.я лично думаю, что это просто красивая причина не тратить лишние деньги.

.

Идентификация «слишком толстых» пассажиров часто происходит прямо в салоне. Бортпроводники имеют право потребовать от человека пройти «тест на подлокотник» при свидетелях. Если обнаружится «вторжение» в пространство соседа, приоритет всегда отдается тому, кто помещается в свое кресло, а пассажира CoS могут снять с рейса ради комфорта окружающих.

Яхты техномагнатов: Moonrise и Dragonfly в порту | 2025-11-29T18:14:41

Две яхты подряд стоят — первая, Moonrise, принадлежит основателю WhatsApp Ян Куму, вторая — яхта Dragonfly — принадлежит Сергею Брину, основателю Google.

Скрытые расходы: как 30 долларов превращаются в 40 в ресторанах | 2025-11-23T23:33:11

Ресторан очень вкусный, но все чаще вижу, что заведения удерживают в чеке некий процент сверх цен из меню. В этом меню стоимость тарелки указана как ю 30 долл за тарелку, плюс вот такое примечание. В данном случае это 4% operational charge. На это сверху ещё налоги, от ещё процентов 20 чаевых. В итоге 30 долл из меню превращаются в минимум 40.