cherkashin.dev
Ir al canal en Telegram
Александр Черкашин. Бойскаут, Борец с перфекционизмом. Для связи 👉 @cherkalexander Фулстек разработчик в decisions.com. Работаю со стеком TypeScript, React, C# Пишу о программировании и не только. Блог: https://cherkashin.dev
Mostrar más2 113
Suscriptores
+224 horas
-37 días
-1930 días
Carga de datos en curso...
Canales Similares
Nube de Etiquetas
Menciones Entrantes y Salientes
---
---
---
---
---
---
Atraer Suscriptores
junio '26
junio '26
+11
en 0 canales
mayo '26
+26
en 0 canales
Get PRO
abril '26
+42
en 0 canales
Get PRO
marzo '26
+37
en 1 canales
Get PRO
febrero '26
+127
en 0 canales
Get PRO
enero '26
+33
en 0 canales
Get PRO
diciembre '25
+36
en 2 canales
Get PRO
noviembre '25
+30
en 0 canales
Get PRO
octubre '25
+34
en 0 canales
Get PRO
septiembre '25
+32
en 0 canales
Get PRO
agosto '25
+39
en 0 canales
Get PRO
julio '25
+25
en 0 canales
Get PRO
junio '25
+208
en 0 canales
Get PRO
mayo '25
+45
en 0 canales
Get PRO
abril '25
+41
en 0 canales
Get PRO
marzo '25
+36
en 1 canales
Get PRO
febrero '25
+86
en 4 canales
Get PRO
enero '250
en 2 canales
Get PRO
diciembre '24
+38
en 0 canales
Get PRO
noviembre '24
+45
en 1 canales
Get PRO
octubre '24
+39
en 1 canales
Get PRO
septiembre '24
+42
en 1 canales
Get PRO
agosto '24
+1 480
en 0 canales
Get PRO
julio '240
en 1 canales
Get PRO
junio '240
en 0 canales
Get PRO
mayo '240
en 0 canales
Get PRO
abril '240
en 1 canales
Get PRO
marzo '240
en 2 canales
Get PRO
febrero '240
en 0 canales
Get PRO
enero '240
en 1 canales
Get PRO
diciembre '23
+1
en 0 canales
Get PRO
noviembre '23
+20
en 0 canales
Get PRO
octubre '23
+35
en 0 canales
Get PRO
septiembre '23
+424
en 0 canales
| Fecha | Crecimiento de Suscriptores | Menciones | Canales | |
| 13 junio | +2 | |||
| 12 junio | 0 | |||
| 11 junio | +1 | |||
| 10 junio | +1 | |||
| 09 junio | +3 | |||
| 08 junio | 0 | |||
| 07 junio | 0 | |||
| 06 junio | 0 | |||
| 05 junio | +2 | |||
| 04 junio | 0 | |||
| 03 junio | 0 | |||
| 02 junio | +1 | |||
| 01 junio | +1 |
Publicaciones del Canal
А вы заметили, что в консоли хрома появился ИИ?
Я сперва думал, как это применить, а потом мне понадобилось очистить все браузерные данные для одного 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. Поэтому если вы вдруг захотели кодить из такси в 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, и агент навайбкодил мне такую конструкцию — 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 — международный форум про перфоманс-маркетинг и рекламные системы.
Сейчас почти у всех одна и та же история: реклама дорожает, лиды добываются сложнее, цикл сделки растет, а планы по продажам никто не снижает.
На форуме как раз будут разбирать, что с этим делать.
Особенно ценно, что в программе:
▪️ 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 🎂
Хотелось сесть и как-то порефлексировать на эту тему, но, если честно, особо не хочется 😄
Единственное, что правда хочется сказать: чем старше становишься, тем бережнее относишься к своему времени. И тем заметнее, как быстро оно бежит.
А вообще, если оглянуться назад:
— 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.
В «Ласточке», конечно же, интернет почти не ловит, поэтому нужно было заранее скачать видео с 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. Сегодня расскажу про второй.
Помню, когда я писал диплом — сначала бакалаврский, потом магистерский — авторизация казалась чем-то невероятным. Я читал статьи, смотрел библиотеки, разбирался, что такое 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 вкладки, в одной из них я залогинился, во второй — нет. Когда открыл вторую, там увидел вот такое сообщение.
"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 |
¡Ya disponible! Investigación de Telegram 2025 — los principales insights del año 
