Posts

С Новым 2026-м годом!

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

К сожалению, надежды годичной давности, что 2025-й год окажется лучше предыдущих, не оправдались. Shit happens, а чудес не бывает. Но как-то мы дошли до казавшегося недостижимым будущего (день за днем, неделя за неделей, как когда-то обещали в советском фильме) и опять надеемся на будущий год.

Не буду грешить против истины — это был один из самых интересных годов в части хороших идей, полезных проектов, глубоких мыслей и общего прогресса. Чем бы вы не занимались — сравните состояние год назад и сейчас, будь-то AI, политика или экономика. А раз уж вы читаете то, что я пишу, то мы прошли этот путь более или менее вместе.

Давайте идти дальше — все становится curiouser and curiouser (чудесатее и чудесатее) в полном соответствии с трудами дедушки алгоритмов Чарльза Доджсона под псевдонимом Льюиса Кэролла.

Вот так я и провел этот год
Вот так я и провел этот год

Итоги года в вайб-кодинге

В общем, мне кажется конец года лучшим моментом, чтобы еще раз поговорить о вайб-кодинге. О нем пишут, ему учат и пытаются отучить, о нем говорят все подряд и даже выбрали словом года. Коллеги по подкасту Радио-Т весь год с угасающим энтузиазмом обещали, что вот-вот всё то, что не соответствующие высокому званию программиста навайбкодили, наконец-то перестанет работать и весь мир придет к ним на поклон за исправлениями — ну, и раз уж я закончил год выпуском уже третьей версии интересного проекта, где весь код написан и отлажен разными версиями AI, то вполне можно и подвести итоги.

Иллюстрация того, как должна измениться работа программиста (prompt: Claude Opus 4.5, picture: IMAGEN 4
Иллюстрация того, как должна измениться работа программиста (prompt: Claude Opus 4.5, picture: IMAGEN 4

Непредсказуемый эффект пошлин

Спустя немалое время после введения Трампом пошлин на практически все товары, поставляемые в США можно уже что-то проанализировать. Результаты такого анализа показывают, в общем-то, ожидаемое — политические заявления сильно расходятся с реальным экономическим эффектом. Хотя номинальный размер пошлин взлетел до 27,4%, что выше любого уровня примерно за 100 лет, фактический уровень составил 14,1%.

У этого явления сразу несколько причин — часть товаров была еще в пути, включая ту, что была спешно закуплена еще по старым правилам. Кроме того, у пошлин есть немалое количество исключений — например, продукция Apple освобождена от новых ставок. Сказался и эффект “беларуских креветок” — точно также, как самосанкции в РФ привели к поставкам неожиданных товаров из Беларуси и Казахстана, в США резко вырос импорт из Мексики и Канады, поскольку эти страны связаны соглашением о зоне свободной торговли.

Как и предупреждали перед запуском пошлин, весь эффект от их повышения пришелся именно на конечного покупателя, то есть американцев. Данные показывают, что коэффициент переноса стоимости (pass-through) в 2025 году достиг ошеломляющих 94%, что означает практически полное отсутствие скидок со стороны зарубежных поставщиков и прямой рост цен на импорт. Еще раз — никто из поставщиков не стал снижать цены, чтобы сохранить долю на американском рынке. С другой стороны, а откуда возьмется такое желание, если в подавляющем количестве случаев конкурирующих предложений, не затронутых пошлинами, нет? То есть, если та или иная продукция не производится в США/Мексике/Канаде, зачем снижать цену поставок из Азии, если 100% конкурентов находятся в той же Азии с теми же пошлинами?

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

Да, в результате сильно упала доля китайских товаров — с 22 до 8 процентов. Но за счет этого выросла доля товаров из Вьетнама и Индии и еще большой вопрос, что из этого перетока является простой перемаршрутизацией поставок. Мы знаем из заявлений крупных производителей, что кто-то переносит часть производства из Китая в Индию или Вьетнам, но этот процесс шел и так, поскольку китайское производство постепенно дорожает в последние годы и становится менее выгодным.

И в довершение всего волюнтаристская политика с вводом, отменой, опять вводом, изменением ставок и прочей трамповской риторикой обесценила доллар, что только сильнее усугубило эффект пошлин для импортеров. Понимаете, по классике заградительные тарифы укрепляют валюту страны, что делает импорт выгоднее, но MAGA-политики и тут умудрились расстрелять все возможные ноги.

Исключительные люди, просто исключительные.

Почему регулирование становится злом

Любители регулирования — речь идет об экономическом регулировании со стороны общества и государства, — вероятно, являются самыми необучаемыми представителями человеческого рода. Вот очередной пример — принятие в 2019 году в штате Нью-Йорк закона, который регулирует рынок аренды (в том числе в городе Нью-Йорк) и запрещает арендодателям повышать цены на квартиры даже для новых жильцов или проведения капитального ремонта, привело к тому, что 50 тысяч квартир в городе фактически заброшены. Предыдущие жильцы платили, например, 900 долларов, съехали, ремонт квартиры требует вложить 100 тысяч долларов, актуальная рыночная ставка аренды составляет 3500 долларов при расходах на эксплуатацию чуть больше 1000, но ставка аренды может быть повышена максимум до 1200 долларов, что делает бессмысленными попытки такую квартиру отремонтировать и сдать.

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

Семья и стартапы

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

Иллюстрация

Выборы браузеров

Не буду напоминать, что когда-то я регулярно писал в блоге о новых браузерах — упоминая и надстройки над IE типа NetCaptor, и бета-версии Firebird (помните вообще, что так назывался сначала Firefox?). За последние годы, в принципе, картина определилась — есть Chrome, на маках есть еще Safari, для любителей остался Firefox и есть еще некоторое количество разных сборок на базе Chromium разной степени серьезности.

Мне всегда нравилось использовать Safari, но сильно не хватало плагинов. Какое-то количество я за последнее время даже написал сам и заниматься их переносом на Safari не хотелось даже с помощью AI. Но иногда я все же пробовал пересаживаться на Safari — поскольку на iPad я использую именно его, то возможности синхронизации местами помогали. Но потом все равно возвращался на Chrome — иногда это происходило из-за плагинов, а иногда — из-за потребления памяти.

Гипотетически, ответ такой…

Я уже примерно год занимаюсь несколькими AI-проектами, в том числе RAG-ботом (Retrieval-Augmented Generation), и всё время выясняю для себя что-то новое. Почему бы не поделиться?

Разработка RAG-чатбота считается простой задачей — многие облачные платформы, от OpenAI до Cloudflare, предлагают даже готовые решения, где все можно настроить кликами в веб-интерфейсе. Да и для собственной разработки не заметно особых проблем — возьмите базу знаний, порежьте ее на небольшие фрагменты, однородные по смыслу (например, вопрос-ответ или раздел в большом документе), вычислите для этих фрагментов векторное представление (embeddings, в самом простом случае это очень дешево делается через запрос к API, например, OpenAI или Google), сохраните в специальный вид базы, которая называется “векторной” и ждите вопроса пользователя. Полученный вопрос тоже превращаете в эмбеддинг и теперь на запрос с ним векторная база вернет вам результаты, наиболее похожие (similar) на заданный вопрос. Остается сформулировать запрос к LLM буквально следующего содержания “Ты специалист службы поддержки (или консультант, смотря что за задача), вот вопрос пользователя, вот что мы знаем на эту тему, сформулируй ответ”.

На самом деле, как только вы выходите за рамки нескольких десятков документов в базе и пытаетесь научить бота отвечать на более сложные вопросы, начинаются детали, сильно влияющие на всю работу. Вот про одну из таких деталей я и расскажу.

Будущее SEO

На выходных попалась статья в блоге Semrush про то, что золотая эра SEO заканчивается, AI в результатах поиска Googel даёт всё больше ответов без клики на сайты, а AI-чаты (ChatGPT или Claude) предпочитают давать ссылки на крупные бренды. В результате малому бизнесу, который до сих пор уповал на поисковую оптимизацию и контент-маркетинг, достаётся все меньше трафика и что дальше делать — неизвестно.

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

Возможно, общость рекомендаций связана в том числе и с отсутствием у Semrush готового сервиса, в который можно ткнуть пальцем и сказать “пользуйтесь!”. Но в целом, я бы назвал развитие ситуации справедливым.

Чем, по сути, было поисковое продвижение для малого бизнеса последние, пожалуй, лет 10, если не больше? Буквально два направления, оба в меру сомнительные — расстановка ссылок и контент-маркетинг. Со ссылками примерно и так понятно — то, что начиналось с совершенно добровольного обмена или цитирования, давно выродилось в агрессивную тактику задалбывания предложениями разместить гостевой пост, разместить ссылку где-то в тексте, поменять ссылку в тексте 10 летней давности и поставить там вместо оригинала ссылку на другой сервис “почти такой же точно, но другой” — в общем, наверняка знаете, о чем речь. Но что не так с контент-маркетингом?

Да всё не так примерно. Вот есть сайт небольшого магазина или небольшой компании. Контента на нем в обычном случае не то, чтобы много — страницы товаров, оплата/доставка, “О нас”, что еще может быть в магазине? Но тут приходит контент-маркетолог и рассказывает, что не будет никаких продаж без контент-маркетинга — то есть новых статей пару раз в неделю на темы, связанные со сферой магазина. Без этого, авторитетно объясняет маркетолог, не будет ни репутации магазина, как выдающегося в своей нише, ни поискового трафика, поскольку что тут индексировать поиску?

Но поставьте себя на место владельца магазина. Где он возьмет материал на две статьи в неделю? О чем писать? Хорошую статью написать не очень просто, даже если у вас есть материал. А у какого количества магазинов и бизнесов вообще есть какой-то уникальный опыт, достойный статьи? Вы знаете, что получается в итоге — многочисленный статейный мусор “Топ-10 чего угодно”, где на первом месте приведен не имеющий недостатков продукт автора, а дальше всякие недостойные конкуренты, или “Советы начинающим кому угодно”, хоть сантехникам, хоть ядерным физикам. Пройдитесь по сайтам SaaS-продуктов — они все забиты регулярными статьями на совершенно общеобразовательные темы, часто скопированные либо у других, либо из википедии. Это была эпоха великого рерайта, что уж тут скрывать?

Вот теперь она справедливо заканчивается — если речь идет об ответе на вопрос, то AI хоть в чате, хоть в выдаче даст ответ лучше и быстрее, без излишней рекламы. А если продукт, сервис, магазин имеет что сказать, как обладатели уникального опыта, он не пропадет. Я вот в большом количестве поисков про клавиатуры встречаю один украинский магазин, у которого и хороший набор товаров, и глубокое знание темы, и много собственных тестов с подробными обзорами. Жаль, что он такой у нас один, но он заслужил свой поисковый трафик и меня в качестве покупателя.

Вот еще бы соцсети подобным образом очистить — но это прямо противоречит как бизнес-модели, так и интентам пользователей. Так что лучше туда просто не ходить. Шучу.

Новая трубка

Любителю покурить трубку, как и гитаристу или компьютерному гику, всегда нужна еще одна — в данном случае трубка. Вот мне как раз и приехала — чисто датская трубка, с клеймом Danish Crown, что вроде бы относится к производству легендарной Kriswill. Учитывая, что оригинальная Kriswill обанкротилася примерно в 1979 году, моя новинка относится примерно к 70-м. При этом она некуреная, внутренняя поверхность камеры идеально гладкая.

Danish Crown 925
Danish Crown 925

Как положено датчанке, она очень изящная и легкая. Вес трубки определяет способ её использования — если она комфортно держится зубами, то с ней и погулять по улице можно. Правда, не в такой ветер, как у нас последнюю неделю.

Табак и душа

Кажется, никогда об этом не писал, но иногда я курю трубку. Вообще, еще в детстве я с интересом крутил в руках отцовскую трубку — он курил её очень редко, в СССР трубочный табак был редкостью, — а своей собственной обзавелся в 1998-м году. Даже иногда ходил с трубкой по станции, вызывая восхищение сотрудников, мол, какой у нас главный инженер-то, а? Потом как-то забросил, да и вообще бросил курить, а пару лет назад вдруг увлекся снова. Как положено увлечению, причем, пожалуй, любому моему увлечению точно, у меня уже несколько трубок и еще добавится, запас разного табака заметно превышает потребности на ближайшие лет пять, но мне нравится.

А вот наткнулся на прекрасное эссе “Табак и душа” и, пару раз пересказав его, решил перевести и выложить здесь. Впервые оно было опубликовано в 1997 году, достаточно хорошо известно, автор католический богослов и это заметно по стилистике, которую я постарался сохранить.

Многострадальные украинские покупатели

Наткнулся в Forbes на очередной материал про то, что нехорошие украинские покупатели норовят покупать за границей и такие мелкие товары, чтобы дешевле 150 евро (в этом случае покупка не облагается пошлиной и НДС), а хорошие украинские магазины от этого страдают и загибаются. Разумеется, со ссылкой на требования МВФ и комментариями хороших украинских магазинов.

Я очень активно, особенно последние несколько месяцев, заказываю товары в западных магазинах, особенно на Amazon, и не менее активно — на Розетке. И вот что я могу сказать.

Во-первых, если товар есть в Украине — на Розетке, в других онлайн-магазинах, компаниях с онлайн-заказом, — я наверняка закажу его в Украине. Зачем мне тратить больше времени, доплачивать за услуги того же NPShopping (сервис Новой Почты по пересылке из западных магазинов), декларировать товары и так далее, если украинский продавец мне его отправить пусть чуть дороже, но в течение пары дней он окажется в почтомате в километре от моего дома (у меня частный дом в поселке, так что это близко, разумеется, в случае с квартирой в городе почтомат будет в этом же квартале)? Именно поэтому я большинство компьютерных аксессуаров заказывал на Розетке и только карман для диска, поддерживающий Thunderbolt5, пришлось купить на Amazon — ну нет его в принципе в продаже тут. Причем, он был дороже 150 евро, если что.

Во-вторых, большое количество товаров в Украине все же не продаётся. Это либо нишевое, либо специализированное — мне сейчас, к примеру, едет набор пакетиков увлажнителей, они кладутся в емкость и поддерживают там заданную влажность. Я их буду использовать для хранения трубочного табака, в наших магазинах такое не предлагается, а стоят, кстати, ерунду. Если этой мелочью завалить таможню — товар стоит 10-20 долларов, пошлина встанет в 10-20 процентов плюс услуги брокера. Бог с ней, с итоговой стоимостью товара для меня, но ведь пошлина должна как-то окупать работу таможни и приносить доход государству, как это планируется поместить в 2 доллара?

И, в третьих, всякий раз, когда украинский магазин жалуется, мне хочется взять попкорн и понаблюдать за зрелищем. Я недавно заказывал себе бумажные книги в самом крупном онлайн-магазине — Yakaboo. Две книги, не бестселлеры, но значатся в наличии. Сразу после покупки мне прислали 4 (!) письмо о том, что я зарегистрирован, вот мой логин/пароль (открытым текстом, причем я логинился через Google), вот моя покупка, вот мой чек. И уже утром — две рекламные рассылки с довольно одинаковым набором рекламных блоков. На следующее утро пришли еще две рекламные рассылки. На следующее утро — еще одна. Я специально пошел и проверил — книги значились как “готовятся к отправке”. Я отписался от всех рассылок “информационного характера”.

Заказ был сделан вечером вторника. Ни одного письма “Мы отправили вам ваш заказ” я не получил. Уведомление об отправке я получил почему-то в Viber (где оно свалилось в бизнес-чаты), а сами книги приехали в воскресенье.

И ведь это самый ходовой вид товара, где всё, по идее, отлажено. Пардон, но один из заказов Amazon недавно приехал на склад НП в Америке за 4 часа после заказа. Я не настаиваю на такой скорости, но посмотрите в пункт “во-первых” — если товар из украинского магазина будет ехать почти неделю, то в чем преимущество его перед Amazon, из которого на перекладных он доедет за неделю с лишним?

Но я несправедлив. За 15 лет украинские магазины научились не перезванивать покупателю. Правда, иногда пишут наутро после заказа “Еще актуально?” — видимо, многие заказывают в измененном состоянии карманы для SSD на несколько тысяч грн глубоким вечером, а утром с похмелья отказываются.

Редизайн блога

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

Собственно, рассказать стоит только то, что весь процесс — от макетирования до полной имплементации и исправления багов, — занял у меня часа полтора. Конечно, благодаря AI — я взял привычный Claude Code, применил уже проверенный на паре мелких задач скилл frontend-design и так всё и сделал. Claude расспросил, какие стили я предпочитаю, какой шрифт для чего лучше использовать, что лучше сохранить из существующей темы (а тут стояла Mainroad, довольно старая тема) и нарисовал три макета в разном стиле.

Мне оставалось выбрать один из трех и через минут 15 можно было тыкать его на локальном сервере. Возможно, Claude Code и сам бы справился с вылизыванием верстки, но я предпочитаю держать минимальное количество MCP серверов, лучше уж я ему скриншотов накидаю.

Не обошлось без казусов — например, исправляя ширину поста, он вдруг заявил “А еще я убрал красную линию в заголовке” и на самом деле её убрал. Пришлось сказать, чтобы вернул.

Но результат мне нравится. Надеюсь, аудитории тоже будет лучше.

P.S. На самом деле надо честно сказать, что еще полтора часа заняли попытки заставить комментарии отображаться корректно — то есть, используя те же цвета, что и на остальном блоге. Ну, потому что в мире Умпутуна владельцы сайтов не должны хотеть других цветов кнопок и ссылок. Но и это победили.

Когда opinion превращается в баг

У меня за долгое время использования компьютеров скопилось какое-то количество старой техники, в основном ноутбуков и планшетов, плюс я год назад увлекся и накупил очень старых ноутбуков и даже снял несколько видео — про свой самый первый ноутбук из 1994 года, про старые ThinkPad и так далее. При этом есть у меня теплое отношение к Linux — впервые я что-то такое попробовал еще в 2000-м (это были RedHat 6 и Mandrake), даже жил на Gentoo, регулярно пользовался Ubuntu, и так далее. Поэтому понятно, что когда культовый гик DHH (Дэвид Хайнмайер Хенссон, создатель Ruby on Rails и сооснователь 37 Signals) начал в каждом твите анонсировать собственную сборку Omarchy, я определенно захотел попробовать. Меня даже не остановили соображения, что DHH — чувак очень самобытный, а сборка названа opinionated и основана на ArchLinux — что я теряю, кроме свободного времени?

Аналитика миллениалов

Выходные в социальной сети, ранее известной как Twitter, прошли под знаком новой функции — About this account.

Функция предельно простая — теперь, кликнув на дату регистрации в профиле пользователя, можно увидеть, в какой стране он находится и через какое приложение (с точностью до страны магазина приложений) он пользуется сетью. Первоначальный вариант включал в себя еще и страну, из которой аккаунт был зарегистрирован, но почти сразу функция пропала вообще, а потом выкатилась уже без этого поля.

Не даем заснуть колонкам

На выходных задумался, что за последний год у меня сильно изменился шаблон поведения в совершенно стандартных сценариях использования продуктов. Если раньше, встречая какое-то мелкое неудобство, я пробовал его решить настройками или чьим-то готовым решением, то сейчас я начинаю думать — “А нельзя ли это устранить вообще? Что посоветует AI?”. И по результатам небольшого чата вполне может последовать радикальная перенастройка системы или даже написание программы, которая решит проблему.