Итак, друзья, немного поделюсь последними событиями - возможно, для кого-то будет полезным. Вчера я получил третью дозы вакцины, на этот раз Moderna (если в первые два раза вживлялся Чип и Дейл, то теперь, видимо, Гаечка). В принципе, теперь процесс выглядит уже как-то совсем рутинно, как будто такая вакцинация появилась ещё при царе Горохе. Ощущения на данный момент, скажем так, не самые лучшие: как будто начинается грипп. Впрочем, о подобном упоминали многие мои коллеги. Зато, судя по тестам, комбо из Pfizer+Moderna даёт самый мощный ответ иммунитета... Впрочем, это весьма предварительная информация.
Как-то так, пока пару дней буду приходить в себя, тем более, что послезавтра праздничный день. Тем временем можно посмотреть моё более старое "развлекательное" видео о забавном языке программирования LOLCODE. Берегите себя и до скорых встреч 😝 https://www.youtube.com/watch?v=MnZJTq1gN6Y
Как-то так, пока пару дней буду приходить в себя, тем более, что послезавтра праздничный день. Тем временем можно посмотреть моё более старое "развлекательное" видео о забавном языке программирования LOLCODE. Берегите себя и до скорых встреч 😝 https://www.youtube.com/watch?v=MnZJTq1gN6Y
YouTube
LOLCODE: язык программирования для любителей котиков
В этом видео мы поговорим об эзотерическом языке программирования LOLCODE, созданном на основе мемом о забавных котах. Хотя этот язык и не используется в реальных проектах, поработать с ним будет довольно интересно.
Таймкоды:
00:00 О языке
01:50 Компилятор…
Таймкоды:
00:00 О языке
01:50 Компилятор…
В этот раз мы посмотрим, как развернуть смарт-контракт в тестовую сеть Hardhat, а затем как настроить Alchemy и развернуть тот же контракт в тестовую сеть Rinkeby. Кроме того, узнаем как верифицировать этот контракт на Etherscan. https://youtu.be/yPHZOD9eEnw
YouTube
Hardhat, Ethers.js, Rinkeby, Alchemy, Etherscan
ХОТИТЕ СТАТЬ РАЗРАБОТЧИКОМ Solidity, узнать об Ethereum, блокчейне и многом другом ещё больше?!
Мои друзья из GUIDE DAO (бывшая школа MCS) предлагают скидку 0,1 ETH на ВСЕ СВОИ БУТКЕМЫ ПО КРИПТЕ! Материалы этих буткемов подготовлены мной и другими специалистами:…
Мои друзья из GUIDE DAO (бывшая школа MCS) предлагают скидку 0,1 ETH на ВСЕ СВОИ БУТКЕМЫ ПО КРИПТЕ! Материалы этих буткемов подготовлены мной и другими специалистами:…
Материал "свои рельсы с нуля" (ну, почти). Во всяком случае, рассказывается о том, как это работает https://launchschool.com/books/demystifying_rails (прислал Леонид)
Некий анонимный товарищ выложил на GitHub скрипты, написанные на Python, которые позволяют скачивать видео с популярных сервисов типа Netflix, причём, судя по всему, нелегально. Я ни в коем случае не призываю к пиратству и использование этих скриптов является нарушением закона в большинстве стран мира, но эти скрипты могут быть интересны именно с точки зрения программиста, то есть как поставленная задача была решена. Впрочем, вероятно, этот аккаунт GitHub очень скоро забанит. В общем, мораль сей басни такова: уязвимости бывают даже у компаний-гигантов https://github.com/widevinedump ⚠️ Запускать скрипты, назначение которых вы не знаете или не понимаете их принцип работы, весьма не рекомендуется
GitHub
widevinedump
GitHub is where widevinedump builds software.
🔥2
В этом видео мы поговорим о менее известных методах Ruby: zip, pack/unpack/rotate, а также ещё раз затронем pattern matching. Поговорим о том, как строку можно представить в виде байтового массива и последовательности бит. Также мы напишем программу, которая позволит шифровать и дешифровать текстовые данные с помощью операции XOR (исключающее "или", оно же сложение по модулю два). Бонусом новогоднее поздравление! :) https://www.youtube.com/watch?v=F8LX13V1ye0
YouTube
Шифрование XOR на Ruby | Байтовые массивы, методы zip, pack/unpack/rotate
В этом видео мы поговорим о менее известных методах Ruby: zip, pack/unpack/rotate, а также ещё раз затронем pattern matching. Поговорим о том, как строку можно представить в виде байтового массива и последовательности бит. Также мы напишем программу, которая…
👍6🔥1
Любопытная дискуссия о том, почему React стал более популярным, чем Angular https://www.quora.com/Has-Google-lost-the-battle-with-angular-vs-react
Quora
Has Google lost the battle with angular vs react?
Answer (1 of 16): Yes, it is. Google is a big fan of making your application ‘enterprise grade’. Look at the Android framework… Tons of boilerplates… Things get better with the new architecture components, but still, over complex, the core reason is they…
Всем отличных выходных 😄 Не могу не поделиться внезапно обнаруженной записью: Heart исполняет Stairway to Heaven в 2012, звучит вполне достойно https://www.youtube.com/watch?v=2cZ_EFAmj08
YouTube
Heart - Stairway to Heaven Led Zeppelin - Kennedy Center Honors HD
Please keep the politics out of the comments and enjoy the music.
Heart w/ Jason Bonham - Stairway to Heaven Led Zeppelin - Kennedy Center in HD
Heart w/ Jason Bonham - Stairway to Heaven Led Zeppelin - Kennedy Center in HD
Сегодня мы поговорим о том, как настроить GitHub Actions для запуска автотестов Ruby. Узнаем, что такое GitHub workflows, настроим CI, посмотрим, как добавлять бэйджи GitHub Actions, как управлять переменными среды и как просматривать информацию о запущенных задачах. Кроме того, обсудим использование нескольких Gemfile в процессе запуска тестов. https://www.youtube.com/watch?v=vVWTUujffLg
YouTube
GitHub Actions и автотесты Ruby | RSpec, CI/CD, Gemfile
Сегодня мы поговорим о том, как настроить GitHub Actions для запуска автотестов Ruby. Узнаем, что такое GitHub workflows, настроим CI, посмотрим, как добавлять бэйджи GitHub Actions, как управлять переменными среды и как просматривать информацию о запущенных…
🔥7
Небольшая подсказка. Если в собственном классе вы добавляете модуль
Тогда в тесте мы можем написать:
где
Enumerable и реализуете метод each (об этом мы говорили в одном из видео), то как его тестировать? Предположим, что метод реализуется так:def each
@items.each { |item| yield(item) }
end
Тогда в тесте мы можем написать:
expect { |b| object.each(&b) }.to yield_successive_args(String, String)где
object - образец класса с модулем Enumerable. В примере выше мы проверяем, что each последовательно выдаёт 2 строки (вместо String можно написать любой класс, включая собственный)Сегодня мы поговорим о том, как существуют решения в Rails для управления assets (JS, CSS, изображения) и узнаем, какие нововведения в этом плане предлагает Rails 7. Мы откажемся от использования Webpacker и перейдём на куда более простой ESBuild, который также позволяет выполнять предварительную компиляцию JS. Ну, а для Sass мы задействуем обычный DartSass, который доступен просто как пакет NPM. Помимо этого, поговорим о том, как настроить PostCSS и Autoprefixer. В общем, "press F to pay respects", ибо Webpacker уходит в прошлое. https://youtu.be/RG5mIXF_LP0
YouTube
Ruby on Rails 7, урок #22 | Миграция с Webpacker на ESBuild и DartSass
Сегодня мы поговорим о том, как существуют решения в Rails для управления assets (JS, CSS, изображения) и узнаем, какие нововведения в этом плане предлагает Rails 7. Мы откажемся от использования Webpacker и перейдём на куда более простой ESBuild, который…
🔥8🎉3
Необычный гайд по Ruby (прислал Андрей) https://tceh.com/post/pochemuchkin-trogatelnyj-gajd-po-ruby/
Tceh
Почемучкин (трогательный) гайд по Ruby
Книги по программированию для начинающих могут быть разными. Мы выбрали один из самых забавных и продуманных гайдов по Ruby и перевели фрагменты первых трёх глав. Вы увидите, что обучение языку может быть похоже на захватывающее путешествие.
👍10
https://github.com/textacular/textacular - решение для полнотекстового поиска с привязкой к ActiveRecord (поддерживается только Postgres)
GitHub
GitHub - textacular/textacular: Textacular exposes full text search capabilities from PostgreSQL, and allows you to declare full…
Textacular exposes full text search capabilities from PostgreSQL, and allows you to declare full text indexes. Textacular will extend ActiveRecord with named_scope methods making searching easy and...
🎉2
Сегодня мы узнаем, как делегировать методы в Ruby и обсудим три подхода: простое делегирование (проброс), делегирование с помощью method_missing, а также модуль Forwardable, который позволяет использовать def_delegators и решать данную задачу весьма лаконично и эффектно. https://www.youtube.com/watch?v=DoJz__qxoTM
YouTube
Секреты классов Ruby | Делегирование методов и Forwardable
Сегодня мы узнаем, как делегировать методы в Ruby и обсудим три подхода: простое делегирование (проброс), делегирование с помощью method_missing, а также модуль Forwardable, который позволяет использовать def_delegators и решать данную задачу весьма лаконично…
👍14
Всем привет! Рад сообщить, что сегодня на канале стало доступно спонсорство, иными словами вы можете поддержать выпуск видео на регулярной основе :) На данный момент я добавил 4 уровня спонсорства, каждый со своими бонусами, поэтому будет, из чего выбрать. Кнопка "Спонсировать" находится на главной странице канала, либо под видео. В ближайшее время обязательно выпущу анонс, где расскажу обо всём подробнее. Есть есть мысли или идеи по поводу уровней и предлагаемых бонусов, обязательно поделитесь :) Увидимся!
🎉19
Итак, свершилось: наконец-то на канале включено спонсорство! В этом видео я расскажу, как стать спонсором и какие бонусы вы можете получить :)
ВАЖНОЕ ЗАМЕЧАНИЕ! Друзья, похоже, в некоторых странах спонсорство почему-то недоступно: точную причину я пока установить не смог, но это явно какие-то чудеса YouTube. Что можно сделать: подключиться к YT через VPN, либо попробовать сменить страну в настройках (например, попробовать поставить какую-нибудь европейскую страну). Прошу прощения за эти неудобства, но я боюсь, со своей стороны я вряд ли что-то могу сделать, так как никаких региональных настроек у меня в творческой студии нет. https://www.youtube.com/watch?v=1FDjuDGolds
ВАЖНОЕ ЗАМЕЧАНИЕ! Друзья, похоже, в некоторых странах спонсорство почему-то недоступно: точную причину я пока установить не смог, но это явно какие-то чудеса YouTube. Что можно сделать: подключиться к YT через VPN, либо попробовать сменить страну в настройках (например, попробовать поставить какую-нибудь европейскую страну). Прошу прощения за эти неудобства, но я боюсь, со своей стороны я вряд ли что-то могу сделать, так как никаких региональных настроек у меня в творческой студии нет. https://www.youtube.com/watch?v=1FDjuDGolds
YouTube
АНОНС! Спонсорство на канале
ВАЖНОЕ ЗАМЕЧАНИЕ! Друзья, похоже, в некоторых странах спонсорство почему-то недоступно: точную причину я пока установить не смог, но это явно какие-то чудеса YouTube. Что можно сделать: подключиться к YT через VPN, либо попробовать сменить страну в настройках…
🔥7👍1
Это первый урок в серии язык Solidity и написание смарт-контрактов Ethereum. Сегодня мы обсудим, что такое Ethereum и Solidity, обговорим их основные особенности, научимся работать с Remix IDE и напишем первый контракт, который позволит получать и отправлять денежные средства. Даже если вы не планируете становиться разработчиком смарт-контрактов, эти уроки имеет смысл смотреть просто для собственного развития, так как криптовалюта и блокчейн весьма распространены в наше время. https://www.youtube.com/watch?v=8A8-7Ks26yY
YouTube
Solidity и смарт-контракты Ethereum, урок #1 (АПДЕЙТ В ЗАКРЕПЕ) | Интро, Remix IDE, первый контракт
ХОТИТЕ СТАТЬ РАЗРАБОТЧИКОМ Solidity, узнать об Ethereum, блокчейне и многом другом ещё больше?!
Мои друзья из GUIDE DAO (бывшая школа MCS) предлагают скидку 0,1 ETH на ВСЕ СВОИ БУТКЕМЫ ПО КРИПТЕ! Материалы этих буткемов подготовлены мной и другими специалистами:…
Мои друзья из GUIDE DAO (бывшая школа MCS) предлагают скидку 0,1 ETH на ВСЕ СВОИ БУТКЕМЫ ПО КРИПТЕ! Материалы этих буткемов подготовлены мной и другими специалистами:…
👍10🎉7
Друзья, небольшая подсказка для разработчиков Ruby. Будьте аккуратны, если вы используете memoization в коде, который может крутиться в нескольких процессах параллельно.
Memoization это примерно вот такое:
И, соответственно, если создаются разные потоки
Memoization это примерно вот такое:
@my_var ||= do_complex_stuff()
И, соответственно, если создаются разные потоки
Thread.new {} и там задействуется эта переменная, то в ряде случаев результаты могут быть совершенно непредсказуемые, особенно, если потоки эту переменную модифицируют. Я вот уже на это только что напоролся👍10😱2
Небольшая новость для рубистов, использующих Faraday 🤓 Вышла версия 2, и, в числе прочего, было заявлено, что faraday_middleware более не будет поддерживаться. Вместо этого будет создана коллекция отдельных библиотек для Faraday, которые можно будет устанавливать отдельно. Список тут, но мигрированы пока не все, так что если у вас используется middleware, то обновляться до faraday 2, возможно, пока рановато https://github.com/lostisland/awesome-faraday
GitHub
GitHub - lostisland/awesome-faraday: A curated list of awesome middleware and adapters for Faraday
A curated list of awesome middleware and adapters for Faraday - lostisland/awesome-faraday