Missed me? Любителям Ruby посвящается - использование Faraday, Capybara, Selenium на практике https://www.scrapingbee.com/blog/web-scraping-ruby/
Scrapingbee
Web Scraping with Ruby | ScrapingBee
Learn web scraping with Ruby with this step-by-step tutorial. We will see the different ways to scrape the web in Ruby through lots of example gems like Nokogiri, Kimurai and HTTParty.
❤22🔥7👍5🙏2🏆1
Теперь любой желающий имеет возможность посмотреть, как я во время живого выступления исполняю партию второй скрипки на очень маленьких клавишах, параллельно пытаясь подстроить звук. К счастью, Ailura снова вытащила. Трек "Radical Dreamers", live in Riga https://www.youtube.com/watch?v=4B2pix7uv2g
🔥16👏4❤2👍2
Сказ о том, почему в больших проектах не чинят простые баги. Спойлер - это никому особенно не надо и есть боязнь трогать старый код (да-да, "нам не дано предугадать, как слово наше отзовется...") https://idiallo.com/blog/companies-dont-fix-bugs
Ibrahim Diallo Blog
Why Companies Don’t Fix Bugs
A few years ago, a lone programmer named t0st did something extraordinary: he fixed an 8-year-old bug in GTA Online that had been driving players crazy. The bug? Painfully long load times, sometimes u
👍10
А завтра у нас TypeScript https://youtube.com/live/at_o-y1Y4h8?feature=share
YouTube
TypeScript на практике #3 | Параллельные процессы, exponential backoff, promises
ХОТИТЕ СТАТЬ РАЗРАБОТЧИКОМ TS и Solidity, узнать об Ethereum, блокчейне и многом другом ещё больше?!
Мои друзья из GUIDE DAO (бывшая школа MCS) предлагают скидку 0,1 ETH на ВСЕ СВОИ БУТКЕМЫ ПО КРИПТЕ! Материалы этих буткемов подготовлены мной и другими специалистами:…
Мои друзья из GUIDE DAO (бывшая школа MCS) предлагают скидку 0,1 ETH на ВСЕ СВОИ БУТКЕМЫ ПО КРИПТЕ! Материалы этих буткемов подготовлены мной и другими специалистами:…
👍18
Ну а сегодня вечером ИИ-бдения https://youtube.com/live/ryp0K1xgJqA?feature=share
YouTube
AI Jam #6 | Мультимодальные голосовые агенты
ХОТИТЕ СТАТЬ РАЗРАБОТЧИКОМ TS и Solidity, узнать об Ethereum, блокчейне и многом другом ещё больше?!
Мои друзья из GUIDE DAO (бывшая школа MCS) предлагают скидку 0,1 ETH на ВСЕ СВОИ БУТКЕМЫ ПО КРИПТЕ! Материалы этих буткемов подготовлены мной и другими специалистами:…
Мои друзья из GUIDE DAO (бывшая школа MCS) предлагают скидку 0,1 ETH на ВСЕ СВОИ БУТКЕМЫ ПО КРИПТЕ! Материалы этих буткемов подготовлены мной и другими специалистами:…
👍3
Завтра вечером про 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