fa
Feedback
cherkashin.dev

cherkashin.dev

رفتن به کانال در Telegram

Александр Черкашин. Бойскаут, Борец с перфекционизмом. Для связи 👉 @cherkalexander Фулстек разработчик в decisions.com. Работаю со стеком TypeScript, React, C# Пишу о программировании и не только. Блог: https://cherkashin.dev

نمایش بیشتر
2 113
مشترکین
+224 ساعت
-37 روز
-1930 روز
جذب مشترکین
ژوئن '26
ژوئن '26
+11
در 0 کانال‌ها
مه '26
+26
در 0 کانال‌ها
Get PRO
آوریل '26
+42
در 0 کانال‌ها
Get PRO
مارس '26
+37
در 1 کانال‌ها
Get PRO
فوریه '26
+127
در 0 کانال‌ها
Get PRO
ژانویه '26
+33
در 0 کانال‌ها
Get PRO
دسامبر '25
+36
در 2 کانال‌ها
Get PRO
نوامبر '25
+30
در 0 کانال‌ها
Get PRO
اکتبر '25
+34
در 0 کانال‌ها
Get PRO
سپتامبر '25
+32
در 0 کانال‌ها
Get PRO
اوت '25
+39
در 0 کانال‌ها
Get PRO
ژوئیه '25
+25
در 0 کانال‌ها
Get PRO
ژوئن '25
+208
در 0 کانال‌ها
Get PRO
مه '25
+45
در 0 کانال‌ها
Get PRO
آوریل '25
+41
در 0 کانال‌ها
Get PRO
مارس '25
+36
در 1 کانال‌ها
Get PRO
فوریه '25
+86
در 4 کانال‌ها
Get PRO
ژانویه '250
در 2 کانال‌ها
Get PRO
دسامبر '24
+38
در 0 کانال‌ها
Get PRO
نوامبر '24
+45
در 1 کانال‌ها
Get PRO
اکتبر '24
+39
در 1 کانال‌ها
Get PRO
سپتامبر '24
+42
در 1 کانال‌ها
Get PRO
اوت '24
+1 480
در 0 کانال‌ها
Get PRO
ژوئیه '240
در 1 کانال‌ها
Get PRO
ژوئن '240
در 0 کانال‌ها
Get PRO
مه '240
در 0 کانال‌ها
Get PRO
آوریل '240
در 1 کانال‌ها
Get PRO
مارس '240
در 2 کانال‌ها
Get PRO
فوریه '240
در 0 کانال‌ها
Get PRO
ژانویه '240
در 1 کانال‌ها
Get PRO
دسامبر '23
+1
در 0 کانال‌ها
Get PRO
نوامبر '23
+20
در 0 کانال‌ها
Get PRO
اکتبر '23
+35
در 0 کانال‌ها
Get PRO
سپتامبر '23
+424
در 0 کانال‌ها
تاریخ
رشد مشترکین
اشارات
کانال‌ها
13 ژوئن+2
12 ژوئن0
11 ژوئن+1
10 ژوئن+1
09 ژوئن+3
08 ژوئن0
07 ژوئن0
06 ژوئن0
05 ژوئن+2
04 ژوئن0
03 ژوئن0
02 ژوئن+1
01 ژوئن+1
پست‌های کانال
А вы заметили, что в консоли хрома появился ИИ? Я сперва думал, как это применить, а потом мне понадобилось очистить все браузерные данные для одного Progressive Web App. - Написал коммент // generate code to remove all local data stored in browser for this app прямо в консоли хрома - Нажал cmd + i - Хром сгенирировал код - Нажал tab - Все готово #ai

2
🎉 Результаты розыгрыша: 🏆 Победитель: 1. RB (@distribate) ✔️Проверить результаты
204
3
До завтра разыгрываем 🎟 бесплатный билет на Podlodka AI Crew. Как обычны, по одному докладу утром и вечером всю неделю 15 — 19 июня. Особенно приходите, если вы ещё не уверовали в AI 😉
301
4
Я более-менее регулярно хожу на конференции Подлодки по Реакту, но в эпоху ИИ стараюсь больше разбираться с тем, как правильн
Я более-менее регулярно хожу на конференции Подлодки по Реакту, но в эпоху ИИ стараюсь больше разбираться с тем, как правильно выстроить работу с ИИ-агентами. Слышал, есть ещё ретрограды, которые отрицают использование ИИ-агентов 😅 (Саня привет 👋) Сам я почти все задачи решаю с помощью агентов, поэтому хочется посмотреть, как другие ими пользуются. В этот раз иду на Podlodka AI Crew, которая пройдёт онлайн с 15 по 19 июня 📅. Формат у Подлодки, как обычно, удобный: пять дней живых Zoom-сессий утром и вечером, закрытое комьюнити в Telegram и обсуждения со спикерами. Можно спокойно посещать конфу и не выпадать из работы на целый день. Посмотрел программу, пока хочу посетить: - Жизнь после Spec Driven Development, как не убить качество — трансляция, кстати, будет доступна для всех 10 июня - Дизайн без дизайнеров: генерируем UI с помощью AI - Как эффективно проверять код, сгенерированный AI - Eval Driven Development: как перестать проверять AI на глаз Если вам кажется, что онлайн-конференция — это примерно то же самое, что потом посмотреть записи на YouTube, то нет. На Подлодке можно задавать вопросы спикерам, обсуждать доклады в чате и знакомиться с другими участниками. 🎫 Купить билет можно здесь. А по промокоду cherkashin_dev_ai будет скидка 500р. А теперь давайте перейдём к самой интересной части — розыгрышу 🎁. Запущу его завтра, поэтому включайте уведомления, чтобы не пропустить. Правила простые: если вы подписаны на канал и нажали «участвовать», вы получаете шанс выиграть билет. #ai #conference
574
5
Сегодня ровно 9 лет как я не менял работу 🙈 У нас в компании дают дополнительный месяц оплачиваемого отпуска за 10 лет работы 🔥 - если думаешь, дотяну до 10 лет 😱 - если думаешь, сольюсь раньше
684
6
Вы же знаете, что в нашем App Store недоступны многие приложения — например, ChatGPT. Поэтому если вы вдруг захотели кодить и
Вы же знаете, что в нашем App Store недоступны многие приложения — например, ChatGPT. Поэтому если вы вдруг захотели кодить из такси в Codex по пути домой (вдруг вы хотите кодить не переставая?!), то ничего у вас не получится. Это я к чему: решил создать себе второй Apple-аккаунт. Арендовал американский номер, включил КВН, но постоянно вылетала ошибка: Your account cannot be created at this time. Я грешил на то, что использовал почту Яндекса. Потом товарищ сказал, что он регистрировал второй аккаунт на российский номер. Я решил попробовать: ввёл свой российский номер, почту Яндекса — и всё сработало. Регион указал канадский. В общем, не нужны никакие виртуальные номера. Вроде как я использовал тот же номер, который уже привязан к другой учётке, так что даже вторая симка не понадобилась. Настолько привык к запретам, что не знал, что так просто ещё можно что-то сделать) Правда, слышал, что зарегистрироваться на российский номер получается не у всех. Так что, возможно, тут как повезёт. Тут описано, как использовать новый Apple ID в App Store, не выходя из основного аккаунта. Через ChatGPT придумал канадский адрес и телефон. Телефон никто не проверяет, по крайней мере на этапе авторизации. 🔥 — если у вас есть зарубежный Apple ID 👍 — если обходитесь российским 🤷‍♂️ — у меня андроид
950
7
Давно, я не рекомендовал статьи, а сегодня принес «Иногда лучше делать, а не планировать». Там описывается одна простая мысль: за последние десятилетия реализация проектов погрязла в бесконечных совещаниях и согласованиях. Несколько примеров: - Эмпайр-стейт-билдинг построили за 410 дней: с 22.01.1930 по 01.05.1931. - Космическая программа «Аполлон» — от формулирования задачи 12.09.1962 до высадки на Луну 20.07.1969 — заняла менее 7 лет. В наши дни только получение разрешения на строительство может занять несколько лет или десятилетий. Потом ещё несколько лет уйдёт на документацию, подготовку инфраструктуры и т. д. Например, строительство высокоскоростного поезда между Сан-Франциско и Лос-Анджелесом началось в 2015 году и не окончено до сих пор. Самая классная фраза из статьи: «Время, потраченное на обсуждение пункта, обратно пропорционально рассматриваемой сумме». Это правило называется законом Паркинсона. Думаю, все замечали, как на каком-нибудь митинге чрезмерное внимание уделяется мелочам. Например, можно 20 минут обсуждать название кнопки или порядок полей в форме, хотя всем примерно понятно, что надо сделать. Каждый считает, что важно сделать именно так, как хочет он. При этом сложные моменты, где нужно приложить усилие и реально подумать, люди часто пропускают. То же самое часто происходит и во время код-ревью. Все мастера указать на неправильное именование переменной, но чтобы разобраться в архитектуре, многие не хотят тратить силы. Это ещё называется bike-shed effect или «эффект велосипедного сарая». Год назад у нас произошла большая реструктуризация, и появился скрам со своими планированиями и грумингами. На груминге можно долго обсуждать, как лучше что-то сделать, где могут появиться подводные камни, что ещё нужно учесть и прочее. Но я вижу, как все терпеть не могут эти митинги. Все хотят просто сидеть и заниматься своим делом. Для некоторых важных задач, конечно, нужно обсудить подход и понять, как мы будем это решать. Но, кажется, что гораздо важнее полностью понять требования, а что до реализации  — для некритичных задач проще спросить у Клода или Кодекса: «что сломается, если я внесу это изменение?» или «как лучше реализовать это?», а не тратить время всей команды на обсуждение. Да и иногда проще быстро спрототипировать — спасибо тому же Клоду — и спросить у команды: «вот так нормально?», чем снова собирать всех на обсуждение. Раньше что-то переписать могло занять дни, а теперь — часы. Поэтому мне кажется, что это не такая уж плохая идея. Ещё один интересный момент из статьи: В 1944 году ЦРУ выпустило инструкцию по саботажу работы компаний для своих диверсантов. Среди советов: всё прогонять через формальные каналы, чаще делать длинные доклады, спорить о формулировках, поднимать несущественные вопросы и возвращаться к уже принятым решениям. Задача — снижать продуктивность, но выглядеть так, будто ты просто соблюдаешь правила. Иногда кажется, что многие современные менеджеры отлично с этим справляются. Ставьте: - 🔥 — если митинги заколебали - 👍 — если вы везунчик и у вас минимум митингов #fridayreading
691
8
Я пару месяцев назад сделал экспорт постов из Телеги в свой блог написанный на Astro, и агент навайбкодил мне такую конструкц+1
Я пару месяцев назад сделал экспорт постов из Телеги в свой блог написанный на 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 А выгруженные посты, можно посмотреть 👉 здесь. #javascript
710
9
19 июня еду на CPC.Forum — международный форум про перфоманс-маркетинг и рекламные системы. Сейчас почти у всех одна и та же
19 июня еду на CPC.Forum — международный форум про перфоманс-маркетинг и рекламные системы. Сейчас почти у всех одна и та же история: реклама дорожает, лиды добываются сложнее, цикл сделки растет, а планы по продажам никто не снижает. На форуме как раз будут разбирать, что с этим делать. Особенно ценно, что в программе: ▪️ 100+ спикеров (Amazon, «Яндекс Реклама», Flowwow, Calltouch, RUTUBE, PREMIER, Skyeng, «Самолёт», Skillbox, GeekBrains, Clickise, «Купер», «Ёбидоёби» и др.); ▪️ Более 4-х залов по разным темам (записи выступлений тоже будут); ▪️ Большая выставка известных компаний (мерч, интерактивы, розыгрыши); ▪️ Организованный нетворкинг; ▪️ Панельная дискуссия по трафику от топ-экспертов рынка; ▪️ Церемония CPC.Awards; ▪️ VIP-afterparty с концертом от суперзвезд! Хедлайнер форума — Ксения Собчак. Лично я очень хочу послушать выступления: - Денис Сметнёв — «Инструменты, которые стали возможны благодаря AI» - Артур Саркисян — «Новая операционная система бизнеса: ИИ, данные и клиентская память» - Алексей Дощинский — «Как расти через контент в 2026 году: площадки, системный постинг, автоматизация, аналитика и ИИ-советы» - Владимир Сургай — «SurgayGPT: ИИ-автоматизация маркетинга TFA.digital» 📅 19 июня, пятница 📍 Москва, Конгресс-центр ЦМТ Надеюсь, увидимся там с вами! Цены скоро станут выше, успевайте приобретать билеты со скидками ❤️
573
10
У меня уже давно была идея реализовать проект «Второй Мозг». Я долгое время пользовался Notion, но они редиски, и поэтому я перебрался в Obsidian. И в эпоху ИИ понимаю, что это было самым правильным решением. Так вот, я думал, было бы круто взять свой Obsidian Vault, положить его на VPS, прикрутить к нему телеграм-чат и нейронки. Тогда мой список дел и проектов всегда был бы под рукой. А ещё можно записывать, что готовит жена, и в следующий раз, когда она спросит «что приготовить», быстро спросить ИИ, что было приготовлено за последние 2 недели, и выбрать. 😄 Тут на прошлой неделе сходил на вебинар OpenClaw и понял, что всё уже реализовано... Иногда чувствую себя дедом, когда выходит новый инструмент. Кажется, что все вокруг уже давно со всем разобрались, а я ещё понятия не имею, зачем этот инструмент нужен. Если кратко, OpenClaw — это такой open-source AI-агент, который можно поднять у себя и подключить к своим данным, файлам, сервисам и общаться прямо в Телеге. Получается, это примерно тот самый личный ассистент поверх Obsidian, о котором я и думал. 😅 Благодаря ребятам из Guide DAO получается держать руку на пульсе. Сейчас у ребят появились курсы по: - OpenClaw - Курс по клоуд коду - Курс вайбкодер - Курс по созданию агентов - скоро появится курс по созданию продукта и его монетизации Покупая один курс, вы получаете доступ ко всему. А сейчас по промокоду 🏷 CHERKASHIN действует скидка 15%. В общем, теперь хочу разобраться, где лучше хостить OpenClaw, обязательно ли нужен Docker, какой хостинг подешевле выбрать, как синхронизировать Obsidian Vault на VPS и локально и прочее. Если вы уже со всем этим разобрались, расскажите в комментариях 🙏 Расскажите, а вы пользуетесь OpenClaw? Какие задачи он для вас закрывает? - 🔥 — активно пользуюсь - 👍 — потыкал немного - 👀 — не довелось #ai #obsidian
855
11
Часто при генерации кода ИИ использует в 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
898
12
Мне сегодня 30 🎂 Хотелось сесть и как-то порефлексировать на эту тему, но, если честно, особо не хочется 😄 Единственное, чт+1
Мне сегодня 30 🎂 Хотелось сесть и как-то порефлексировать на эту тему, но, если честно, особо не хочется 😄 Единственное, что правда хочется сказать: чем старше становишься, тем бережнее относишься к своему времени. И тем заметнее, как быстро оно бежит. А вообще, если оглянуться назад: — 20 лет назад я и не задумывался, как хорошо у меня сложится жизнь — 15 лет назад — даже не подозревал — 10 лет назад — и мечтать не мог Надеюсь, дальше всё будет только лучше. А пока я приехали в Москву и пойду отмечать. Тут моя жена вечно говорит: «Почему ты пишешь “я”, а не “мы”?» Так что исправляюсь: мы приехали в Москву, мы пошли отмечать 😄 А вам спасибо, что продолжаете читать, комментировать и ставить реакции. Для вас это, может быть, мелочь. А для меня — правда важно ❤️ #about_me
995
13
Помню, в одном из банков, которые я сменил за последние несколько лет, в настройках была опция выбрать папку для сохранения ф
Помню, в одном из банков, которые я сменил за последние несколько лет, в настройках была опция выбрать папку для сохранения файлов. Пользователь один раз выбирал директорию, а дальше все выгрузки сохранялись туда без стандартного диалога выбора файла. Тогда я и решил разобраться, как браузер вообще может работать с локальной файловой системой. Долго откладывал, но наконец добрался до File System Access API. Это API позволяет сайту работать с локальными файлами и папками, но только после явного выбора пользователя. Например, можно открыть папку и пройтись по её содержимому: const directoryHandle = await window.showDirectoryPicker({ mode: 'read', }); for await (const [name, handle] of directoryHandle.entries()) { console.log(name, handle.kind); } handle.kind будет file или directory. Можно попросить пользователя выбрать конкретный файл и прочитать его: const [fileHandle] = await window.showOpenFilePicker({ types: [ { description: 'Text files', accept: { 'text/plain': ['.txt', '.md', '.json'], }, }, ], }); const file = await fileHandle.getFile(); const content = await file.text(); console.log(content); А можно создать новый файл и записать в него данные: const fileHandle = await window.showSaveFilePicker({ suggestedName: 'notes.md', types: [ { description: 'Markdown', accept: { 'text/markdown': ['.md'], }, }, ], }); const writable = await fileHandle.createWritable(); await writable.write('# Hello from browser'); await writable.close(); 🔐 С безопасностью всё завязано на явное действие пользователя. Сайт не может просто так взять и открыть произвольную папку на диске. Более того, браузер может не дать выбрать слишком широкие или чувствительные директории — например, Downloads или Desktop. Там обычно лежит всё подряд, и отдать сайту доступ к такой папке слишком легко случайно. Запись тоже требует отдельного разрешения. Плюс API работает только в secure context: HTTPS или localhost. Конечно, в продакшене использовать всё это врядли получится. Функции всё ещё экспериментальные и нормально поддерживаются в основном Chromium-браузерами, поэтому на телефоне не заведётся. 🧪 Собрал небольшое демо, где можно потыкать это в браузере. https://cherkashin.dev/demos/file-system-access-demo/ Ставьте: 👍 — если знали про File System Access API ❤️ — если узнали что-то новое 😱 — если страшно давать браузеру доступ к файлам #frontend
757
14
Как устроены агенты и RAG под капотом Большинство разработчиков собирают RAG и агентов по туториалам или вместе с агентом, не понимая, как всё работает внутри. Из-за этого сложно дебажить проект, масштабировать его или чинить, когда система начинает вести себя не так, как ожидаешь. Чтобы разобраться в устройстве, а не просто копировать чужой пайплайн, приходите на онлайн-лекцию от Тимура Фатыхова — инженера, который руководил DL-командой в KoronaPay. Он разберёт агентов и RAG изнутри и покажет, как собрать первые рабочие версии в n8n. На лекции вы узнаете: — как агенты принимают решения: инструменты, MCP, память — из каких частей состоит RAG и как улучшить его работу — как собрать агента и RAG в n8n — как настроить личного агента на базе Claude Code 🔔 Лекция бесплатная и пройдёт онлайн в четверг, 7 мая, в 18:00 МСК Регистрируйтесь по ссылке и приходите!
0
15
Ездил недавно на выходных в Москву, и мне нужно было посмотреть записи занятий по вайбкодингу из GuideDAO. В «Ласточке», коне
Ездил недавно на выходных в Москву, и мне нужно было посмотреть записи занятий по вайбкодингу из GuideDAO. В «Ласточке», конечно же, интернет почти не ловит, поэтому нужно было заранее скачать видео с YouTube. Раньше для скачивания видео я пользовался: - всякими сайтами, но теперь они бесплатно дают скачать видео только в разрешении 360 - Downie 4, но пробный период истёк - ffmpeg -i "...m3u8" -c copy -bsf:a aac_adtstoasc "file-name.mp4" — но он работает нестабильно, да и m3u8-ссылку в девтулзах каждый раз искать надоедает В этот раз нашёл Video DownloadHelper. С ним можно скачивать видео с разных сайтов, правда не больше 1–2 видео в течение пары часов. Но если у вас, как и у меня, 4 браузера, это не будет для вас большой проблемой 😅 Единственный нюанс — в Chrome нельзя скачивать видео с YouTube, поэтому открываем другой браузер, например Firefox. В общем, если не знаете, чем занять себя в дороге, — качайте курсы и видео, которые так долго откладывали. https://v10.downloadhelper.net/
731
16
Домой, пора домой ...
Домой, пора домой ...
877
17
Первый вау-эффект от ИИ у меня был, когда я сгенерил вот эту демку в v0. Сегодня расскажу про второй. Помню, когда я писал ди+1
Первый вау-эффект от ИИ у меня был, когда я сгенерил вот эту демку в v0. Сегодня расскажу про второй. Помню, когда я писал диплом — сначала бакалаврский, потом магистерский — авторизация казалась чем-то невероятным. Я читал статьи, смотрел библиотеки, разбирался, что такое JWT-токен и как его использовать. Собирал всё по кусочкам и невероятно радовался, когда оно наконец начинало работать. Тогда на это уходили дни, а иногда и недели. Но с тех пор прошло уже лет 7. Сейчас я снова решил добавить аутентификацию в небольшой пет-проект. На курсе по вайбкодингу узнал про Supabase. Я не очень люблю писать бекенд, поэтому возможность делегировать аутентификацию и перекладывание джейсонов меня только порадовала. В общем, я попросил Codex реализовать аутентификацию. Он сгенерировал весь код и отдельно написал пошаговую инструкцию, что мне нужно настроить в Supabase. И вот за полчаса Magic Link-авторизация была полностью готова ✨. Если сильно упростить, Supabase — это Postgres, вокруг которого уже собрали базовые бекендовые штуки: авторизацию, хранение файлов и CRUD API. То есть, вокруг базы сразу появляется CRUD API. 👉 Кстати, завтра в Guide DAO стартует второй поток по вайбкодингу, где за месяц можно разобраться с основными инструментами и разработать собственный проект с нуля. После покупки участники получают доступ ко всей платформе Guide DAO, включая: - курс по продвинутой разработке с ИИ-агентами - трек по OpenClaw - курс по разработке ИИ-агентов Сейчас по промокоду 🏷 CHERKASHIN действует скидка 10% (плюс около 10% на сайте). Вчера я решил пойти дальше и настроить логин через Яндекс. Тут оказалось сложнее: Яндекс из коробки не поддерживается для аутентификации в Supabase. Codex сгенерировал план, я создал приложение в Яндексе, которое нужно для логина, завёл кастомного провайдера в Supabase, но ничего не заработало. Яндекс открывался, но после редиректа обратно в приложение всё ломалось. Я описал ошибку, сбросил Codex все логи, и он начал дебажить: - отправил запросы в Supabase - дёрнул ручку входа через Яндекс - понял, что ответ Яндекса отличается от того, что ожидает Supabase - замапил ответ Яндекса на стандартные поля Supabase - сам настроил и задеплоил Edge Function через CLI - обновил конфиг провайдера на новый URL И всё завелось 🚀. Вот это и есть мой второй вау-эффект от ИИ. Раньше на такую задачу легко можно было потратить несколько дней. Сейчас — пару часов. Из-за ремонта я немного отстаю от программы. Ещё нужно добавить ИИ в продукт, надеюсь к концу второго потока осилю. 👉 А пока приложение можно посмотреть здесь. Попробуйте авторизоваться и скажите, если что-то не работает. Расскажите, а вы использовали Supabase в разработке? - 👍 — да - 👀 — не довелось #ai
0
18
Поймал себя на мысли, что я очень "долго запрягаю". Помню, был в Белгороде на конференции, где выступал Дорофеев. И он там об
Поймал себя на мысли, что я очень "долго запрягаю". Помню, был в Белгороде на конференции, где выступал Дорофеев. И он там объяснял на гусеницах, что есть 2 патологии: - если гусеница (то есть мы с вами) много думает, потребляет информацию, но ничего не делает - у неё отрывается голова - если гусеница только делает, но не думает - она сплющивается Чтобы гусеница нормально двигалась, ей нужно чередовать: подумать, что-то сделать, подумать, что-то сделать. Я стараюсь соблюдать этот баланс, но иногда всё-таки впадаю в перфекционизм. Начинаю думать, что прежде чем что-то сделать, нужно сначала изучить ещё кучу всего. И в итоге, если объяснять на примере гусеницы, голова снова отрывается. Как ни крути, в эпоху ИИ это стало ещё заметнее. Ценность информации снизилась, всё теперь доступно почти мгновенно, бери и делай, но я продолжая следовать старому паттерну, хотя по сути двигаться можно гораздо быстрее. К сожалению, оригинальную картинку не нашёл, поэтому сгенерил свою для наглядности в ChatGPT. А видео с объяснением Дорофеева можно глянуть тут. Надо как-то научиться соблюдать баланс между "думать" и "делать". Ставьте: 👍 - если тоже иногда слишком долго запрягаете 🔥 - если вы здоровая гусеница #productivity
0
19
Недавно зашел на гитхаб. Открыл 2 вкладки, в одной из них я залогинился, во второй — нет. Когда открыл вторую, там увидел вот+1
Недавно зашел на гитхаб. Открыл 2 вкладки, в одной из них я залогинился, во второй — нет. Когда открыл вторую, там увидел вот такое сообщение. "You signed in with another tab or window. Reload to refresh your session." Думаю, а как гитхаб понял, что я залогинился в другой вкладке? Пошел смотреть в дев тулзах — соединения по вебсокетам не нашел. Пошел гуглить, узнал, что существует BroadcastChannel, с помощью которого можно реализовать взаимодействие между вкладками. Не знаю, он ли используется на гитхабе, но фича интересная. Накидал демку — нужно открыть несколько вкладок и просто нажать "+1", значение обновится во всех вкладках, при этом будет указано, в какой именно вкладке произошло изменение. Использовать очень просто, создаёшь канал с именем, а дальше из одной вкладки можно отправлять сообщения, а в другой — слушать их и как-то на это реагировать. const channel = new BroadcastChannel('broadcast-demo'); button.addEventListener('click', () => { channel.postMessage({ type: 'session:changed' }); }); channel.onmessage = (event) => { if (event.data.type === 'session:changed') { console.log('Получили сообщение из другой вкладки'); } }; 👍 — было полезно 👀 — уже знали про BroadcastChannel #browser #javascript
0
20
💪 Боремся с ютубом за внимание Вчера я вернулся из отпуска, отдохнул замечательно. Прилетел на отдых и просто ел, спал, лежа
💪 Боремся с ютубом за внимание Вчера я вернулся из отпуска, отдохнул замечательно. Прилетел на отдых и просто ел, спал, лежал и плавал, никакого тебе стресса, единственная забота — что бы такое съесть на шведском столе. Ну если не считать уведомления из налоговой. От каждого их письма я вздрагиваю, после того, как мне пришлось им заплатить 83 000р из-за неправильно оформленного патента 😅. Я не читал и не смотрел новостные видосы, не читал телеграмм каналы, ну почти. Но в те моменты, когда мне нужно было найти что-то на Ютубе, я открывал главную страницу и видел его рекомендации... И тут сразу вижу, что произошло в мире, что я что-то пропускаю, там новость интересная, а там чувак рассказывает, как он продуктивность свою увеличил в 10 раз, а ещё новый трейлер нового Человека Паука вышел. Блин, всё такое интересное, хочется сразу посмотреть, в общем, ютуб полностью захватывает внимание, через 10 минут я закрываю вкладку и только потом вспоминаю, зачем я вообще туда заходил. Пару месяцев я писал про One Sec, а сегодня расскажу про подходы, чтобы отключить навязчивые рекомендации Ютуба. Я нашел два подхода: - браузерные расширения - встроенный способ на ютубе Я пока попробовал первый вариант — расширение Unhook, оно помогает отключить все рекомендации ютуба: - главная страница будет просто пуста — просто чёрный экран (как на скрине) - при просмотре видео никаких панелей с рекомендаций, никаких отвлечений Второй подход — удалить всю историю ютуба, в этом случае главная страница будет также пуста. Этот подход пока не пробовал, но вот здесь наши индийские друзья уже всё объяснили. - ❤️ — если ютуб также захватывает ваше внимание - 👍 — если вы уже пользуетесь описанными подходами - 🔥 — если вы не против, чтобы ютуб вас отвлекал #productivity
0