Завтра вечером про TS, Fetch API и архивы https://www.youtube.com/live/KERI1FuDUvk
YouTube
TypeScript на практике #4 | Работа с архивами и Fetch API
ХОТИТЕ СТАТЬ РАЗРАБОТЧИКОМ TS и Solidity, узнать об Ethereum, блокчейне и многом другом ещё больше?!
Мои друзья из GUIDE DAO (бывшая школа MCS) предлагают скидку 0,1 ETH на ВСЕ СВОИ БУТКЕМЫ ПО КРИПТЕ! Материалы этих буткемов подготовлены мной и другими специалистами:…
Мои друзья из GUIDE DAO (бывшая школа MCS) предлагают скидку 0,1 ETH на ВСЕ СВОИ БУТКЕМЫ ПО КРИПТЕ! Материалы этих буткемов подготовлены мной и другими специалистами:…
⚡9👍3
Недавно появилась любопытная задача: в момент запуска действия на GitHub понять, в каком момент это действие запускалось последний раз, чтобы взять всю историю коммитов с того момента. Проблема в том, что если действие запускается вручную (
Пока взял способ с тегами. Каждый раз при запуске создаётся тег:
Ну, там ещё некоторое количество проверок перед этим.
А затем ищем тег при следующем запуске:
Опять же плюс некоторое проверки. Получаем SHA для коммита, когда был запуск. Можно сравнить с
А потом можно в
Пока это всё довольно экспериментальная история, но вроде работает ничего. Подробнее можно в этом PR поглядеть https://github.com/lokalise/lokalise-push-action/pull/11/files
on: workflow_dispatch), то просто посмотреть какие-то журналы, видимо, не выйдет.Пока взял способ с тегами. Каждый раз при запуске создаётся тег:
TAG_NAME="lokalise-sync-${{ github.ref_name }}"
git tag -a "$TAG_NAME" -m "Lokalise sync completed on branch '${{ github.ref_name }}'"
git push origin "$TAG_NAME"Ну, там ещё некоторое количество проверок перед этим.
А затем ищем тег при следующем запуске:
git fetch origin +refs/tags/*:refs/tags/*
if git rev-parse "$TAG_NAME" >/dev/null 2>&1; then
TAG_SHA=$(git rev-list -n 1 "$TAG_NAME")
echo "Found tag '$TAG_NAME' pointing to commit: $TAG_SHA"
echo "base_sha=$TAG_SHA" >> $GITHUB_OUTPUT
fi
Опять же плюс некоторое проверки. Получаем SHA для коммита, когда был запуск. Можно сравнить с
${{ github.sha }}, чтобы узнать, не тот ли это коммит, что и сейчас (повторный запуск).А потом можно в
tj-actions/changed-files просто передать base_sha и sha для сравнения. Да, это тот самый changed-files, который взломали недавно и выплюнули секретные данные юзеров. Защита от подобных умников довольно несложная, кстати. Можно установить не версию действия, а ссылку на какой-то надёжный коммит (момент релиза проверенной версии):uses: tj-actions/changed-files@db731a131ccd81ed52a3d463b6d2a4b2856c7ec9
Пока это всё довольно экспериментальная история, но вроде работает ничего. Подробнее можно в этом PR поглядеть https://github.com/lokalise/lokalise-push-action/pull/11/files
GitHub
Using tags to store last known action run by bodrovis · Pull Request #11 · lokalise/lokalise-push-action
GitHub action to upload changed translation files in the base language from your GitHub repository to Lokalise TMS. - Using tags to store last known action run by bodrovis · Pull Request #11 · lokalise/lokalise-push-action
❤7👍2
Друзья, вы просили - мы сделали. Сегодня в 19:00 UTC+3 состоится новый день открытых дверей в школе GuideDAO, где сотрудники и студенты ответят на ваши вопросы, расскажут о процессе обучения, о перспективах и многом другом. 👩🎓
Кроме всего прочего, в ближайшие 4 дня будет действовать повышенная скидка по промо-коду
Так что залетайте! https://www.youtube.com/watch?v=y3yV0593xtI&ab_channel=GuideDAO
Кроме всего прочего, в ближайшие 4 дня будет действовать повышенная скидка по промо-коду
WEB3DOOR в размере аж 15% 🔥Так что залетайте! https://www.youtube.com/watch?v=y3yV0593xtI&ab_channel=GuideDAO
YouTube
Guide DAO Open Day
День открытых дверей в коммьюнити Guide DAO. Рассказали, как проходит обучение и какие проекты создаем в сообществе, послушали success stories участников и ответили на вопросы
Промокод на скидку 15% при оплате обучения с 23.04.2025 по 26.04.2025 включительно:…
Промокод на скидку 15% при оплате обучения с 23.04.2025 по 26.04.2025 включительно:…
🔥8😍2🍾2❤🔥1
У нас тут вышел совместный пост с основателем ScrapingBee, в этот раз обсуждаем разные решения для скрейпинга всего на свете https://www.scrapingbee.com/blog/web-scraping-tools
Scrapingbee
7 Best Web Scraping Tools Ranked (2025) | ScrapingBee
Discover the best web scraping tools in 2025. Compare top software and APIs for data extraction, from no-code scrapers to developer-ready solutions like ScrapingBee.
❤7👍2
Хотел порадовать любителей windows (любителей поневоле?..) что апгрейд до версии 11 прошёл успешно, все дебильные ИИ отключены и ненужные службы удалены, но подвёл второй компьютер... Какая-то беда случилась из-за bitlocker, потом слетела загрузочная запись, а дальше благополучно похерились драйвера, которые, как я думал, вообще важны только для RAID.
Итог прост - сидение до 7 утра, а далее с 2 часов дня до вечера, потому что после восстановления и дешифровки решил перестать работать Wi-Fi. Ну, а потом ещё и звук - там вообще спрятались все устройства ввода-вывода, делая вид, что их нет.
Впрочем, после всех этих унижений работает всё нормально, ненужный хлам удаляется, реестр правится, интерфейс настраивается, программы компилируются, WSL запускается. Так что на данный момент я всё же думаю, что нет никакого смысла не обновляться до windows 11, ведь у предыдущей версии скоро кончается срок годности. Ну, либо переходить на сторону добра и устанавливать ubuntu/arch linux/какой-нибудь ещё nix. Но я традиционно остаюсь на стороне плохих парней 😂
Итог прост - сидение до 7 утра, а далее с 2 часов дня до вечера, потому что после восстановления и дешифровки решил перестать работать Wi-Fi. Ну, а потом ещё и звук - там вообще спрятались все устройства ввода-вывода, делая вид, что их нет.
Впрочем, после всех этих унижений работает всё нормально, ненужный хлам удаляется, реестр правится, интерфейс настраивается, программы компилируются, WSL запускается. Так что на данный момент я всё же думаю, что нет никакого смысла не обновляться до windows 11, ведь у предыдущей версии скоро кончается срок годности. Ну, либо переходить на сторону добра и устанавливать ubuntu/arch linux/какой-нибудь ещё nix. Но я традиционно остаюсь на стороне плохих парней 😂
👍28😱2🎉2🤪2
Для всех любителей JS: обзор решений для локализации и общие приёмы/подходы https://lokalise.com/blog/comparing-libraries-translating-js-apps/
Lokalise
Libraries and frameworks to translate JavaScript apps
Learn how to handle JavaScript translation and localization using tools like Globalize, I18next, Polyglot, and intl-messageformat.
❤🔥8✍1
Заключительная часть по TypeScript: автотесты https://www.youtube.com/watch?v=uXyslYhbjLs
YouTube
TypeScript на практике #5 | Автотесты: MockFS, Undici Interceptor, stubs, spies
Станьте спонсором канала, и вы получите доступ к эксклюзивным бонусам: https://www.youtube.com/channel/UCN2waErKU52T_41pGgUimXw/join
Boosty: https://boosty.to/bodrovis
Patreon: https://www.patreon.com/bodrovis
Аккаунт Ethereum (ETH), Arbitrum, Polygon, BNB…
Boosty: https://boosty.to/bodrovis
Patreon: https://www.patreon.com/bodrovis
Аккаунт Ethereum (ETH), Arbitrum, Polygon, BNB…
❤13
Слушайте, ну кто бы мог подумать? Оказывается, периодически наливают неизвестно что под видом чего-то такого ну прямо эдакого. Это одна из причин почему я никогда не беру вино в бокале: мало и непонятно, чего там такое дают.
Единственное, в чём я могу быть более-менее уверен - это пиво известных марок на разлив, в основном крепкое бельгийское. Тут уж меня не проведёшь 😂 А так ведь и правда, в вине разницы и не заметишь.
И да, никакого "хорошего вина за 5 евро" в ЕС нет и не было, во всяком случае, последние лет 10 точно. Нет, в Италии тоже такого не водится, так что не давайте себя обмануть https://holod.media/2025/04/30/parizhskie-kafe/
Единственное, в чём я могу быть более-менее уверен - это пиво известных марок на разлив, в основном крепкое бельгийское. Тут уж меня не проведёшь 😂 А так ведь и правда, в вине разницы и не заметишь.
И да, никакого "хорошего вина за 5 евро" в ЕС нет и не было, во всяком случае, последние лет 10 точно. Нет, в Италии тоже такого не водится, так что не давайте себя обмануть https://holod.media/2025/04/30/parizhskie-kafe/
«Холод»
Парижские кафе и рестораны уличили в обмане клиентов
Кафе и рестораны Парижа заменяют дорогое вино, которое подают в бокалах, на более дешевые аналоги. Об этом сообщает The Times со ссылкой на расследование французской газеты Le Parisien. Отмечается, что немногие клиенты способны заметить подмену. Так, в расследовании…
✍2
Сегодня вечером AI JAM (через 2 часа) https://youtube.com/live/DiKJqgmIwhA?feature=share
YouTube
AI Jam #7 | Нейронка с нуля
ХОТИТЕ СТАТЬ РАЗРАБОТЧИКОМ TS и Solidity, узнать об Ethereum, блокчейне и многом другом ещё больше?!
Мои друзья из GUIDE DAO (бывшая школа MCS) предлагают скидку 0,1 ETH на ВСЕ СВОИ БУТКЕМЫ ПО КРИПТЕ! Материалы этих буткемов подготовлены мной и другими специалистами:…
Мои друзья из GUIDE DAO (бывшая школа MCS) предлагают скидку 0,1 ETH на ВСЕ СВОИ БУТКЕМЫ ПО КРИПТЕ! Материалы этих буткемов подготовлены мной и другими специалистами:…
🥰6👍1
Перевёл один из проектов на qlty.sh для измерения покрытия тестами и maintainability. Пока полёт нормальный, в целом ничего сложного https://github.com/bodrovis/lokalise_rails/commit/1dc851c0caf57c5eb53b35a7829ff9f8ee24feb2
GitHub
coverage · bodrovis/lokalise_rails@1dc851c
Ruby on Rails integration for Lokalise. Contribute to bodrovis/lokalise_rails development by creating an account on GitHub.
🔥4
И апдейт для любителей Go. Та программа (brave signer), которую мы писали в уроках, получила большой апдейт - я там всё-таки спустя полгода нашёл силы добавить нормальные "как бы классы" и более удобный конфиг. Пока особенного спроса на Go нет, так что записывать урок не стал, но можно глянуть код https://github.com/bodrovis-learning/brave_signer/compare/v0.1.0...v1.0.0
GitHub
prepare for stable release · bodrovis-learning/brave_signer@b834371
Bravely generate key pairs, sign files, and check signatures. - prepare for stable release · bodrovis-learning/brave_signer@b834371
🔥15👍3
Послезавтра вечером продолжаем говорить о том, как приручить свою нейронку https://youtube.com/live/vLOSjE397kk?feature=share
YouTube
AI Jam #8 | Нейронка с нуля: эмбеддеры и трансфомеры
ХОТИТЕ СТАТЬ РАЗРАБОТЧИКОМ TS и Solidity, узнать об Ethereum, блокчейне и многом другом ещё больше?!
Мои друзья из GUIDE DAO (бывшая школа MCS) предлагают скидку 0,1 ETH на ВСЕ СВОИ БУТКЕМЫ ПО КРИПТЕ! Материалы этих буткемов подготовлены мной и другими специалистами:…
Мои друзья из GUIDE DAO (бывшая школа MCS) предлагают скидку 0,1 ETH на ВСЕ СВОИ БУТКЕМЫ ПО КРИПТЕ! Материалы этих буткемов подготовлены мной и другими специалистами:…
🔥3
Некоторые соображения о системе PerimeterX, которая пытается отделить ботов от людей при обращении к сайтам. К сожалению, простого и 100% надёжного способа нет https://www.scrapingbee.com/blog/how-to-bypass-perimeterx-anti-bot-system/
Scrapingbee
How to bypass PerimeterX anti-bot system in 2025 | ScrapingBee
Learn how to bypass PerimeterX/HUMAN anti-bot system with working examples that you can use straight away to scrape the data you need.
❤2
У меня тут новая небольшая библиотека для Node, позволяет выводить всякие сообщения в логи и настраивать их (плюс создавать свои логгеры). Там же можно указывать уровень "серьёзности" сообщения и выбирать пороговый уровень серьёзности (удобно если это контролирует юзер приложения - к примеру, можно включить режим silent). Это, скорее, для внутреннего пользования, но может кому-то поможет.
https://github.com/bodrovis/kliedz
logWithColor("Hello from the default logger");
// [INFO] Hello from the default logger
// printed in cyan color
logWithLevel("Just a plain info message", 42);
// [INFO] Just a plain info message 42
// printed without color
logWithLevel(
{
level: "debug",
threshold: "debug",
},
"Low-level debug info"
);
// [DEBUG] Low-level debug info
logWithColor(
{
level: "warn",
prefixBuilder: () => {
const ts = new Date().toISOString();
return `!!${ts}[WARNING]!!`;
},
},
"Custom warning with timestamped prefix"
);
// !!2025-05-10T14:03:32.302Z[WARNING]!! Custom warning with timestamped prefixhttps://github.com/bodrovis/kliedz
GitHub
GitHub - bodrovis/kliedz: Dead-simple, stateless logging utility for JavaScript and TypeScript. Pure functions. No dependencies.…
Dead-simple, stateless logging utility for JavaScript and TypeScript. Pure functions. No dependencies. Just log. - bodrovis/kliedz
🔥10👍5
Делаю сейчас своего рода погружение в старые игры эпохи NES/SNES и вспоминаю... Помните, были эти странные пиратские картриджи с совершенно непонятными играми типа "про футбол" (это Captain Tsubasa, как выясняется теперь), где одни иероглифы, бог его знает, что это всё значит, но вроде интересно? Запоминали ведь, что каждая команда примерно обозначает 😄
При этом, конечно, пиратить что-то вроде Fire Emblem китайцам в голову не приходило, так там что-либо делать без знания языка невозможно. И прошли эти шедевры мимо нас в своё время. А теперь смотришь на более новые поделки и понимаешь, что ведь эти идеи все оттуда из начала девяностых, когда жизнь была как-то проще и всем хватало 640КБ памяти. https://www.youtube.com/watch?v=aFU0t4ELtbc
При этом, конечно, пиратить что-то вроде Fire Emblem китайцам в голову не приходило, так там что-либо делать без знания языка невозможно. И прошли эти шедевры мимо нас в своё время. А теперь смотришь на более новые поделки и понимаешь, что ведь эти идеи все оттуда из начала девяностых, когда жизнь была как-то проще и всем хватало 640КБ памяти. https://www.youtube.com/watch?v=aFU0t4ELtbc
YouTube
Super Mario - Suite (Live with the Swedish Radio Symphony Orchestra : SCORE Orchestral Game Music)
Super Mario - Suite
Composers: Mahito Yokota & Koji Kondo
Performed live by the Swedish Radio Symphony Orchestra
Conductor: Charles Hazlewood
Orchestral Arrangement: Andreas Hedlund
SCORE: Orchestral Game Music
Produced by Orvar Säfström
http://scoreconcert.com/…
Composers: Mahito Yokota & Koji Kondo
Performed live by the Swedish Radio Symphony Orchestra
Conductor: Charles Hazlewood
Orchestral Arrangement: Andreas Hedlund
SCORE: Orchestral Game Music
Produced by Orvar Säfström
http://scoreconcert.com/…
👍5❤4🔥2🆒1
А завтра у нас AI Jam https://youtube.com/live/GWlo91YwtFc?feature=share
YouTube
AI Jam #9 | Нейронка с нуля: Attention и self-attention
ХОТИТЕ СТАТЬ РАЗРАБОТЧИКОМ TS и Solidity, узнать об Ethereum, блокчейне и многом другом ещё больше?!
Мои друзья из GUIDE DAO (бывшая школа MCS) предлагают скидку 0,1 ETH на ВСЕ СВОИ БУТКЕМЫ ПО КРИПТЕ! Материалы этих буткемов подготовлены мной и другими специалистами:…
Мои друзья из GUIDE DAO (бывшая школа MCS) предлагают скидку 0,1 ETH на ВСЕ СВОИ БУТКЕМЫ ПО КРИПТЕ! Материалы этих буткемов подготовлены мной и другими специалистами:…
🔥4❤2
Забавный музей интернета от момента его сотворения. Даже можно трогать руками https://neal.fun/internet-artifacts
neal.fun
Internet Artifacts
Browse through the old internet
👍7❤5
Завтра вечером говорим про EIP7702, позволяющий приделать код к EOA https://youtube.com/live/NZQc6bQdW9g?feature=share
YouTube
Solidity и Ethereum, урок #93 | EIP-7702: EOA code, превращаем EOA в смарт-контракты!
ХОТИТЕ СТАТЬ РАЗРАБОТЧИКОМ TS и Solidity, узнать об Ethereum, блокчейне и многом другом ещё больше?!
Мои друзья из GUIDE DAO (бывшая школа MCS) предлагают скидку 0,1 ETH на ВСЕ СВОИ БУТКЕМЫ ПО КРИПТЕ! Материалы этих буткемов подготовлены мной и другими специалистами:…
Мои друзья из GUIDE DAO (бывшая школа MCS) предлагают скидку 0,1 ETH на ВСЕ СВОИ БУТКЕМЫ ПО КРИПТЕ! Материалы этих буткемов подготовлены мной и другими специалистами:…
❤9👍5⚡2
Завтра вечером как обычно AI Jam https://youtube.com/live/SQjakK302TA?feature=share
YouTube
AI Jam #10 | Архитектура и реализация с нуля блока Transformer
ХОТИТЕ СТАТЬ РАЗРАБОТЧИКОМ TS и Solidity, узнать об Ethereum, блокчейне и многом другом ещё больше?!
Мои друзья из GUIDE DAO (бывшая школа MCS) предлагают скидку 0,1 ETH на ВСЕ СВОИ БУТКЕМЫ ПО КРИПТЕ! Материалы этих буткемов подготовлены мной и другими специалистами:…
Мои друзья из GUIDE DAO (бывшая школа MCS) предлагают скидку 0,1 ETH на ВСЕ СВОИ БУТКЕМЫ ПО КРИПТЕ! Материалы этих буткемов подготовлены мной и другими специалистами:…
👍4