cherkashin.dev
Kanalga Telegram’da o‘tish
Александр Черкашин. Бойскаут, Борец с перфекционизмом. Для связи 👉 @cherkalexander Фулстек разработчик в decisions.com. Работаю со стеком TypeScript, React, C# Пишу о программировании и не только. https://cherkashin.dev
Ko'proq ko'rsatish2 107
Obunachilar
-124 soatlar
-17 kunlar
-930 kunlar
Postlar arxiv
2 108
Я заметил, что код руками пишу всё меньше — в основном пишу промпты агентам. И если код за меня печатает Codex, то промпты приходится набирать самому. Длинные. Много. Каждый день.
А говорим мы в три раза быстрее, чем печатаем.
В общем, попробовал Диктуй — российский голосовой ввод для Mac и Windows. Зажимаешь горячую клавишу, говоришь — текст появляется там, где стоит курсор. В Cursor, в терминале, в Телеге — где угодно.
Что понравилось:
— Заточен под русский, но «сделай рефакторинг useEffect в компоненте Header» напечатает как надо. Для редких слов есть словарь.
— Трансформация: выделил текст, сказал «переведи на английский» или «сделай короче» — текст заменился.
— Оплата российскими картами, в 2–3 раза дешевле аналогов. 30 минут в месяц — бесплатно навсегда, без карты.
🎁 По промокоду
DEV — месяц подписки в подарок: регистрируешься на diktuy.ru, вводишь промокод — пользуешься.
👍 — если уже диктуете промпты голосом
👀 — если всё ещё печатаете
#ai #диктуй2 108
А вы замечали дискриминацию людей в ИТ?
Сколько раз вы говорили "нам нужна документация" — а все вокруг отвечали "нафиг надо, таски делай".
Сколько раз новички думали "где моя инструкция для онбординга", а все вокруг думали "нафиг, сам разберётся".
Когда говорили "это нужно покрыть тестами", все отвечали "ну вот и покрой тестами, а пока вот эту фичу быстрее в прод кати".
А как только что-то мешает ИИ-агентам:
- мы им и CLAUDE.md напишем
- и документацию к проекту добавим, чтобы наш дорогой агент знал, почему сделано так, а не иначе
- и соломку в виде тестов насыпем обязательно, чтобы он не ошибся.
Что за двойные стандарты? За что бездушной машине такие привилегии?
Замечали такое?
- 👍 — Было дело
- 🤔 — Как-то нет
2 108
Судя по прошлому посту, многие работают с мобильной версткой, поэтому вам должно пригодиться расширение Mobile View.
В общем, расширение накладывает рамку мобильного устройства прямо поверх вашего сайта, и вы можете посмотреть, как ваше приложение будет выглядеть на конкретной версии телефона. При этом сайт и мобильная версия видны на экране одновременно. Также можно выбрать конкретную модель телефона и вертикальную/горизонтальную ориентацию.
Понятно, что девтулзы частично решают проблему, но есть пара «но»:
- они не дают посмотреть, как именно будет выглядеть сайт на телефоне с рамкой
- вы можете одновременно видеть мобильную и десктопную версии сайта
Если вам интересно, как здесь используется Shadow DOM или как реализована запись экрана, то обязательно почитайте статью на Хабре.
#frontend #fridayreading
2 108
Товарищи, подскажите, есть ли у кого опыт использования Code Connect в Figma? Стоит заморочиться и настроить?
Для тех, кто не знает: насколько я понимаю, мы можем настроить связь между компонентами в Figma и в коде. Тогда разработчику будет понятно, какой компонент использовать при реализации.
Но кто сейчас волнуется о разработчиках? Это поможет агентам при реализации дизайна. Сейчас, если вы попросите агента реализовать дизайн, сначала для стилей он будет использовать Tailwind, а затем уже как-то начнёт использовать ваши компоненты. Code Connect должен помочь сэкономить токены: агент сразу будет использовать именно ваши компоненты. Для этого нужно настроить маппинг между компонентами в Figma и в коде.
Вот здесь 5-минутное объяснение
👍 — использую
🤷♂️ — пробовал, не зашло
👎 — не использую
#ai
2 108
За двумя зайцами 🐇🐇 погонишься — ни одного не поймаешь
Умные люди говорят, что чтобы достичь цели, нужно сфокусироваться на самом важном и долбить в одну точку, пока не получится.
Но в текущем быстро меняющемся мире, когда все вокруг рассказывают, какие они успешные, хочется хвататься за всё сразу:
- тут кажется, что все уже настроили себе опенкло и невероятно оптимизировали рутину
- все пилят пет-проекты с помощью ИИ, ведь теперь это так легко
- там чувак набрал 1000 новых подписчиков, я тоже так хочу
Но со временем всё начинает валиться из рук. Да и за всей этой суетой можно упустить то, что действительно важно.
За последние несколько лет, мне кажется, я научился делать одну важную вещь: если чувствую, что у меня и так много дел, и при этом у меня загораются глаза новой идеей — я не хватаюсь за неё, если понимаю, что в ближайшем будущем у меня не будет времени её закончить.
Я уже рассказывал об этом здесь. А чтобы избавиться от назойливых мыслей, я просто создаю заметки в Obsidian.
Но всё равно бывает так, что обязательства накапливаются, появляется возможность, которую не хочется упустить. А если сейчас упустишь возможность — новая не подвернётся и будет поздно (не факт).
Батарейка начинает садиться, и именно в этот момент как-то легко становится приоритизировать.
Достаточно спросить себя:
- А что такого случится, если я этого не сделаю?
- А действительно ли мне это нужно?
И чаще всего, ответ будет "ничего не случится", "не очень мне это и нужно".
А ещё важно понять, что не всё нужно делать идеально. Где-то результат на троечку тоже подойдёт.
Давно понял, что незаметно в очередной раз схватился за всё одновременно — и как-то стало тяжеловато.
Сейчас поставил на паузу всё, что могу, от чего-то отказался или перенёс на потом. А ещё — довел до конца всё что хотел.
Надеюсь, через месяц основная стадия ремонта закончится, получится вернуться к себе в квартиру — и станет немного полегче.
Расскажите, а вы распыляетесь или фокусируетесь на важном?
- 😅 — распыляюсь и хватаюсь за всё
- ❤️ — фокусируюсь на важном
- 😎 — просто живу свою лучшую жизнь
#about_me
2 108
Я, так же, как и разработчики VK решил обновить свой ноут, но мне, в отличие от них ничего не удалили.
Решил перейти со своего MacBook M1 Pro 32 ГБ 14' на MacBook M5 Pro 48 ГБ 16'.
Хотел взять также 14-дюймовый, но он тысяч на 30 дороже, не знаю почему, может спрос на него большой. Но, если не таскать ноут постоянно с собой, то работать на 16-дюймовом, конечно, намного удобнее. Единственный минус — теперь придётся купить подставку под монитор.
По производительности. У нас на работе свой собственный бенчмарк производительности. За сколько проходит полный билд кодовой базы:
- M1 Pro ≈ 10:30 мин
- M5 Pro ≈ 7:20 мин
В общем, маки стали ещё шустрее.
Миграция со старого мака проходит почти так же бесшовно как и со старого айфона. Запускаете Migration Assistant и через полтора часа, у вас новый ноут, но совершенно вся начинка, включая горячие клавиши, перенесена со старого.
Пока искал, где купить — прошустрил все магазины, маркетплейсы и запустил кучу исследований на ChatGPT. В итоге, опять купил в aj.ru, дешевле варианта не нашел — 256 000. Гравировку сделали, адаптер положили, а ещё по ключевой фразе "это итоговая цена или небольшой торг уместен?" сделали скидку в 3 тысячи.
Мне интересно, а кто чем пользуется:
- 🔥 — у меня мак
- 👍 — у меня винда
- 👨💻 — настоящие программисты сидят на линуксе
2 108
Замечательно, что не нужно ездить в налоговую для перевыпуска цифровой подписи.
Правда в инструкции по установке и устранению проблем, для её установки — 68 страниц, иногда проще и съездить, если не удаётся решить проблему 🤣
Возможно, кому-то сохраню несколько часов жизни, которые вы бы потратили на посещение налоговой.
Если у вас высвечивается ошибка "Insert carrier ... to open container ..." при попытке входа в личный кабинет с помощью цифровой подписи:
1. Установите последнюю версию Яндекс Браузера
2. Запустите его через консоль
/Applications/Yandex.app/Contents/MacOS/Yandex --no-sandbox (источник)
3. Всё должно сработать
У Точки есть отличная инструкция по настройке цифровой подписи.
Расскажите, а как вы работаете?
- 😎 — Я ИП
- 🧑💻 — Я просто сотрудник
- 🔥 — временно безработный2 108
Вчера нужно было нарисовать небольшой экран, чтобы понять чего хочет бизнес.
Открыл фигму, а там появились агенты в бете. В общем, получилось худо бедно, что-то накидать без дизайнера.
Сейчас был на подлодке, там показывали Pencil. Можно подключить Codex или Claude по MCP и попросить нарисовать дизайн.
Во время доклада запустил, попросил сгенирировать дизайн систему для пет проекта. Выглядит неплохо.
Раньше кнопки красили, а скоро будем и дизайнить их 😢
#ai
2 108
+2
Я не очень часто имею дело с мобильной вёрсткой, в основном всё время занимаюсь разработкой десктопных приложений. Но на своём пет-проекте мне понадобилось немного подебажить мобильную версию. Спросил Codex, и он рассказал мне, как сайт открытый на реальном айфоне, можно нормально смотреть через Web Inspector в Safari. На Android, насколько знаю, есть что-то похожее.
Делается так:
- на iPhone включить: Settings → Safari → Advanced → Web Inspector
- подключить iPhone к Mac по кабелю
- на Mac открыть Safari и включить меню разработчика: Safari → Settings → Advanced → Show features for web developers
- открыть сайт на iPhone в Safari
- на Mac выбрать: Develop → [твой iPhone] → [страница]
После этого можно смотреть console, network и elements как в обычных DevTools.
А ещё можно включить iPhone Mirroring. Тогда экран телефона видно прямо на ноутбуке, и не нужно постоянно перекладывать взгляд с мака на айфон и обратно.
Ставьте:
👍 - если часто занимаетесь мобильной вёрсткой
🔥 - если в основном работаете с десктопными приложениями
🤷 - если вы не фронтендер
#frontend
2 108
А вы заметили, что в консоли хрома появился ИИ?
Я сперва думал, как это применить, а потом мне понадобилось очистить все браузерные данные для одного Progressive Web App.
- Написал коммент
// generate code to remove all local data stored in browser for this app прямо в консоли хрома
- Нажал cmd + i
- Хром сгенирировал код
- Нажал tab
- Все готово
#ai2 108
До завтра разыгрываем 🎟 бесплатный билет на Podlodka AI Crew.
Как обычны, по одному докладу утром и вечером всю неделю 15 — 19 июня.
Особенно приходите, если вы ещё не уверовали в AI 😉
2 108
Я более-менее регулярно хожу на конференции Подлодки по Реакту, но в эпоху ИИ стараюсь больше разбираться с тем, как правильно выстроить работу с ИИ-агентами.
Слышал, есть ещё ретрограды, которые отрицают использование ИИ-агентов 😅 (Саня привет 👋)
Сам я почти все задачи решаю с помощью агентов, поэтому хочется посмотреть, как другие ими пользуются.
В этот раз иду на Podlodka AI Crew, которая пройдёт онлайн с 15 по 19 июня 📅.
Формат у Подлодки, как обычно, удобный: пять дней живых Zoom-сессий утром и вечером, закрытое комьюнити в Telegram и обсуждения со спикерами. Можно спокойно посещать конфу и не выпадать из работы на целый день.
Посмотрел программу, пока хочу посетить:
- Жизнь после Spec Driven Development, как не убить качество — трансляция, кстати, будет доступна для всех 10 июня
- Дизайн без дизайнеров: генерируем UI с помощью AI
- Как эффективно проверять код, сгенерированный AI
- Eval Driven Development: как перестать проверять AI на глаз
Если вам кажется, что онлайн-конференция — это примерно то же самое, что потом посмотреть записи на YouTube, то нет. На Подлодке можно задавать вопросы спикерам, обсуждать доклады в чате и знакомиться с другими участниками.
🎫 Купить билет можно здесь.
А по промокоду
cherkashin_dev_ai будет скидка 500р.
А теперь давайте перейдём к самой интересной части — розыгрышу 🎁. Запущу его завтра, поэтому включайте уведомления, чтобы не пропустить. Правила простые: если вы подписаны на канал и нажали «участвовать», вы получаете шанс выиграть билет.
#ai #conference2 108
Сегодня ровно 9 лет как я не менял работу 🙈
У нас в компании дают дополнительный месяц оплачиваемого отпуска за 10 лет работы
🔥 - если думаешь, дотяну до 10 лет
😱 - если думаешь, сольюсь раньше
2 108
Вы же знаете, что в нашем App Store недоступны многие приложения — например, ChatGPT. Поэтому если вы вдруг захотели кодить из такси в Codex по пути домой (вдруг вы хотите кодить не переставая?!), то ничего у вас не получится.
Это я к чему: решил создать себе второй Apple-аккаунт. Арендовал американский номер, включил КВН, но постоянно вылетала ошибка: Your account cannot be created at this time.
Я грешил на то, что использовал почту Яндекса.
Потом товарищ сказал, что он регистрировал второй аккаунт на российский номер. Я решил попробовать: ввёл свой российский номер, почту Яндекса — и всё сработало. Регион указал канадский.
В общем, не нужны никакие виртуальные номера. Вроде как я использовал тот же номер, который уже привязан к другой учётке, так что даже вторая симка не понадобилась.
Настолько привык к запретам, что не знал, что так просто ещё можно что-то сделать)
Правда, слышал, что зарегистрироваться на российский номер получается не у всех. Так что, возможно, тут как повезёт.
Тут описано, как использовать новый Apple ID в App Store, не выходя из основного аккаунта.
Через ChatGPT придумал канадский адрес и телефон. Телефон никто не проверяет, по крайней мере на этапе авторизации.
🔥 — если у вас есть зарубежный Apple ID
👍 — если обходитесь российским
🤷♂️ — у меня андроид
2 108
Давно, я не рекомендовал статьи, а сегодня принес «Иногда лучше делать, а не планировать».
Там описывается одна простая мысль: за последние десятилетия реализация проектов погрязла в бесконечных совещаниях и согласованиях.
Несколько примеров:
- Эмпайр-стейт-билдинг построили за 410 дней: с 22.01.1930 по 01.05.1931.
- Космическая программа «Аполлон» — от формулирования задачи 12.09.1962 до высадки на Луну 20.07.1969 — заняла менее 7 лет.
В наши дни только получение разрешения на строительство может занять несколько лет или десятилетий. Потом ещё несколько лет уйдёт на документацию, подготовку инфраструктуры и т. д.
Например, строительство высокоскоростного поезда между Сан-Франциско и Лос-Анджелесом началось в 2015 году и не окончено до сих пор.
Самая классная фраза из статьи:
«Время, потраченное на обсуждение пункта, обратно пропорционально рассматриваемой сумме».
Это правило называется законом Паркинсона.
Думаю, все замечали, как на каком-нибудь митинге чрезмерное внимание уделяется мелочам. Например, можно 20 минут обсуждать название кнопки или порядок полей в форме, хотя всем примерно понятно, что надо сделать. Каждый считает, что важно сделать именно так, как хочет он.
При этом сложные моменты, где нужно приложить усилие и реально подумать, люди часто пропускают.
То же самое часто происходит и во время код-ревью. Все мастера указать на неправильное именование переменной, но чтобы разобраться в архитектуре, многие не хотят тратить силы.
Это ещё называется
bike-shed effect или «эффект велосипедного сарая».
Год назад у нас произошла большая реструктуризация, и появился скрам со своими планированиями и грумингами. На груминге можно долго обсуждать, как лучше что-то сделать, где могут появиться подводные камни, что ещё нужно учесть и прочее.
Но я вижу, как все терпеть не могут эти митинги. Все хотят просто сидеть и заниматься своим делом.
Для некоторых важных задач, конечно, нужно обсудить подход и понять, как мы будем это решать. Но, кажется, что гораздо важнее полностью понять требования, а что до реализации — для некритичных задач проще спросить у Клода или Кодекса: «что сломается, если я внесу это изменение?» или «как лучше реализовать это?», а не тратить время всей команды на обсуждение.
Да и иногда проще быстро спрототипировать — спасибо тому же Клоду — и спросить у команды: «вот так нормально?», чем снова собирать всех на обсуждение.
Раньше что-то переписать могло занять дни, а теперь — часы. Поэтому мне кажется, что это не такая уж плохая идея.
Ещё один интересный момент из статьи:
В 1944 году ЦРУ выпустило инструкцию по саботажу работы компаний для своих диверсантов. Среди советов: всё прогонять через формальные каналы, чаще делать длинные доклады, спорить о формулировках, поднимать несущественные вопросы и возвращаться к уже принятым решениям.
Задача — снижать продуктивность, но выглядеть так, будто ты просто соблюдаешь правила.
Иногда кажется, что многие современные менеджеры отлично с этим справляются.
Ставьте:
- 🔥 — если митинги заколебали
- 👍 — если вы везунчик и у вас минимум митингов
#fridayreading2 108
Я пару месяцев назад сделал экспорт постов из Телеги в свой блог написанный на Astro, и агент навайбкодил мне такую конструкцию —
for await.
for await (const message of client.iterMessages(entity, { reverse: false })) {
// ....
}
for await...of — это цикл для перебора асинхронных коллекций.
Обычно он используется, когда данные приходят не все сразу, а постепенно: например, из API, базы данных, файла или постраничной загрузки.
Сообщения подгружаются постепенно: for await берёт сообщения одно за другим, а когда текущая загруженная порция заканчивается, iterMessages делает следующий запрос в Telegram за новой порцией.
Минимальный пример выглядит так:
const delay = (value, ms) =>
new Promise((resolve) => setTimeout(() => resolve(value), ms));
async function* makeNumbers() {
yield await delay(1, 1000);
yield await delay(2, 1000);
yield await delay(3, 1000);
}
async function run() {
for await (const number of makeNumbers()) {
console.log(number);
}
}
run();
Наиболее простой для понимания пример применения — пагинация. Мы можем инкапсулировать всю работу с получением данных в асинхронном генераторе, и пройтись по коллекции с помощью for await. Реальный пример можно посмотреть здесь или на второй картинке.
⚠️ Важный момент: for await работает последовательно. Он не запускает все итерации параллельно.
👍 — было полезно
👀 — уже знали про for await
А выгруженные посты, можно посмотреть 👉 здесь.
#javascript2 108
19 июня еду на CPC.Forum — международный форум про перфоманс-маркетинг и рекламные системы.
Сейчас почти у всех одна и та же история: реклама дорожает, лиды добываются сложнее, цикл сделки растет, а планы по продажам никто не снижает.
На форуме как раз будут разбирать, что с этим делать.
Особенно ценно, что в программе:
▪️ 100+ спикеров (Amazon, «Яндекс Реклама», Flowwow, Calltouch, RUTUBE, PREMIER, Skyeng, «Самолёт», Skillbox, GeekBrains, Clickise, «Купер», «Ёбидоёби» и др.);
▪️ Более 4-х залов по разным темам (записи выступлений тоже будут);
▪️ Большая выставка известных компаний (мерч, интерактивы, розыгрыши);
▪️ Организованный нетворкинг;
▪️ Панельная дискуссия по трафику от топ-экспертов рынка;
▪️ Церемония CPC.Awards;
▪️ VIP-afterparty с концертом от суперзвезд!
Хедлайнер форума — Ксения Собчак.
Лично я очень хочу послушать выступления:
- Денис Сметнёв — «Инструменты, которые стали возможны благодаря AI»
- Артур Саркисян — «Новая операционная система бизнеса: ИИ, данные и клиентская память»
- Алексей Дощинский — «Как расти через контент в 2026 году: площадки, системный постинг, автоматизация, аналитика и ИИ-советы»
- Владимир Сургай — «SurgayGPT: ИИ-автоматизация маркетинга TFA.digital»
📅 19 июня, пятница
📍 Москва, Конгресс-центр ЦМТ
Надеюсь, увидимся там с вами! Цены скоро станут выше, успевайте приобретать билеты со скидками ❤️
2 108
У меня уже давно была идея реализовать проект «Второй Мозг». Я долгое время пользовался Notion, но они редиски, и поэтому я перебрался в Obsidian. И в эпоху ИИ понимаю, что это было самым правильным решением.
Так вот, я думал, было бы круто взять свой Obsidian Vault, положить его на VPS, прикрутить к нему телеграм-чат и нейронки. Тогда мой список дел и проектов всегда был бы под рукой.
А ещё можно записывать, что готовит жена, и в следующий раз, когда она спросит «что приготовить», быстро спросить ИИ, что было приготовлено за последние 2 недели, и выбрать. 😄
Тут на прошлой неделе сходил на вебинар OpenClaw и понял, что всё уже реализовано...
Иногда чувствую себя дедом, когда выходит новый инструмент. Кажется, что все вокруг уже давно со всем разобрались, а я ещё понятия не имею, зачем этот инструмент нужен.
Если кратко, OpenClaw — это такой open-source AI-агент, который можно поднять у себя и подключить к своим данным, файлам, сервисам и общаться прямо в Телеге. Получается, это примерно тот самый личный ассистент поверх Obsidian, о котором я и думал. 😅
Благодаря ребятам из Guide DAO получается держать руку на пульсе.
Сейчас у ребят появились курсы по:
- OpenClaw
- Курс по клоуд коду
- Курс вайбкодер
- Курс по созданию агентов
- скоро появится курс по созданию продукта и его монетизации
Покупая один курс, вы получаете доступ ко всему. А сейчас по промокоду 🏷
CHERKASHIN действует скидка 15%.
В общем, теперь хочу разобраться, где лучше хостить OpenClaw, обязательно ли нужен Docker, какой хостинг подешевле выбрать, как синхронизировать Obsidian Vault на VPS и локально и прочее. Если вы уже со всем этим разобрались, расскажите в комментариях 🙏
Расскажите, а вы пользуетесь OpenClaw? Какие задачи он для вас закрывает?
- 🔥 — активно пользуюсь
- 👍 — потыкал немного
- 👀 — не довелось
#ai #obsidian2 108
Часто при генерации кода ИИ использует в JavaScript ключевое слово
void.
Я, конечно, видел void, но обычно где-то в минифицированном коде. Сам никогда не использовал, если не считать C# 😄, поэтому такое немного мозолит глаза:
void fetchUser();
Зачем он нужен?
Оператор void вычисляет переданное выражение и всегда возвращает undefined.
const result = void fetchUser();console.log(result); // undefined
Но в примере с fetchUser смысл обычно другой: так явно показывают, что промис запускается «в фоне», а результат мы специально не ждём.
void fetchUser().catch((error) => { console.error('Failed to fetch user', error);});
👍 — если знали про void
❤️ — если тоже видели, но не использовали
😱 — если ИИ уже успел нагенерить вам такого в проекте
#frontend #javascript