DEV: Рубиновые тона – Telegram
DEV: Рубиновые тона
3.21K subscribers
145 photos
2 videos
8 files
981 links
Анонсы новых видео о программировании (Ruby/Rails, Solidity/Ethereum, Python, JS и не только), практические советы, обзор полезных инструментов и новости из мира IT
Download Telegram
Друзья, уже несколько человек спрашивали, как реализовать настройки для пользователя в приложении Rails. Безусловно, это можно сделать самому с нуля, но я тут набрёл на вот такое решение (честно скажу, сам не пробовал, но выглядит интересно) https://github.com/ledermann/rails-settings
Забавно, нашёл в твиттере свою запись 2017 года о StimulusJS. Собственно да, сколько-нибудь серьёзной ниши фреймворк так и не занял, но для Rails решение хорошее, особенно если вместе с другими новыми фичами https://i.imgur.com/80NLBNZ.png
В общем, посмотрел тут более подробно, как создаётся новое приложение Rails 7.

По умолчанию для JS используется https://github.com/rails/importmap-rails - эта штука не требует NodeJS и просто подрубает модули напрямую из CDN (хотя может и локально их скачать). То есть не делается ни bundle, ни transpile. Но остаётся открытым вопрос, что тогда делать, если я хочу писать на TS или как обрабатывать Sass (видимо, никак - для sass придётся использовать sassc-rails). Кроме того, там неясно, как проверять наличие новых версий библиотек и их удобно скачивать - короче, пока importmap оставляет больше вопросов, чем ответов.

Но зато если сказать rails new MyApp -j esbuild то будет задействован собственно esbuild, который куда проще, чем Webpack и там можно нормально и Sass, и что угодно использовать. Да, если нужен Sass, то пишем rails new MyApp -j esbuild —css sass
В этот раз мы узнаем, как компилировать смарт-контракты через Hardhat, разворачивать их блокчейн, а также взаимодействовать с ними через библиотеку Ethers.js: отправлять и снимать деньги, а также вызывать другие функции из-под разных аккаунтов. https://youtu.be/K608okBC3L0
👍2
Друзья, представляю вашему вниманию ОБНОВЛЁННЫЙ первый урок по Ruby on Rails 7, где рассказывается, как настроить среду, установить всё необходимое и создать приложение.

Даже если вы уже это знаете, вас может заинтересовать процесс создания нового приложения и его запуск (с таймкода 13:00), так как там есть кое-какие особенности по сравнению с Rails 6: например, теперь можно указать, какой фреймворк CSS использовать и какой движок выбрать для JS. Кроме того, сам запуск сервера выполняется иначе (не просто rails s).

Все остальные уроки, как я уже упоминал, остаются актуальными 🚊https://www.youtube.com/watch?v=tqSkBmODHBk
Итак, друзья, немного поделюсь последними событиями - возможно, для кого-то будет полезным. Вчера я получил третью дозы вакцины, на этот раз Moderna (если в первые два раза вживлялся Чип и Дейл, то теперь, видимо, Гаечка). В принципе, теперь процесс выглядит уже как-то совсем рутинно, как будто такая вакцинация появилась ещё при царе Горохе. Ощущения на данный момент, скажем так, не самые лучшие: как будто начинается грипп. Впрочем, о подобном упоминали многие мои коллеги. Зато, судя по тестам, комбо из Pfizer+Moderna даёт самый мощный ответ иммунитета... Впрочем, это весьма предварительная информация.

Как-то так, пока пару дней буду приходить в себя, тем более, что послезавтра праздничный день. Тем временем можно посмотреть моё более старое "развлекательное" видео о забавном языке программирования LOLCODE. Берегите себя и до скорых встреч 😝 https://www.youtube.com/watch?v=MnZJTq1gN6Y
В этот раз мы посмотрим, как развернуть смарт-контракт в тестовую сеть Hardhat, а затем как настроить Alchemy и развернуть тот же контракт в тестовую сеть Rinkeby. Кроме того, узнаем как верифицировать этот контракт на Etherscan. https://youtu.be/yPHZOD9eEnw
Материал "свои рельсы с нуля" (ну, почти). Во всяком случае, рассказывается о том, как это работает https://launchschool.com/books/demystifying_rails (прислал Леонид)
Некий анонимный товарищ выложил на GitHub скрипты, написанные на Python, которые позволяют скачивать видео с популярных сервисов типа Netflix, причём, судя по всему, нелегально. Я ни в коем случае не призываю к пиратству и использование этих скриптов является нарушением закона в большинстве стран мира, но эти скрипты могут быть интересны именно с точки зрения программиста, то есть как поставленная задача была решена. Впрочем, вероятно, этот аккаунт GitHub очень скоро забанит. В общем, мораль сей басни такова: уязвимости бывают даже у компаний-гигантов https://github.com/widevinedump ⚠️ Запускать скрипты, назначение которых вы не знаете или не понимаете их принцип работы, весьма не рекомендуется
🔥2
В этом видео мы поговорим о менее известных методах Ruby: zip, pack/unpack/rotate, а также ещё раз затронем pattern matching. Поговорим о том, как строку можно представить в виде байтового массива и последовательности бит. Также мы напишем программу, которая позволит шифровать и дешифровать текстовые данные с помощью операции XOR (исключающее "или", оно же сложение по модулю два). Бонусом новогоднее поздравление! :) https://www.youtube.com/watch?v=F8LX13V1ye0
👍6🔥1
Всех с наступающим :) 😀
Всем отличных выходных 😄 Не могу не поделиться внезапно обнаруженной записью: Heart исполняет Stairway to Heaven в 2012, звучит вполне достойно https://www.youtube.com/watch?v=2cZ_EFAmj08
Сегодня мы поговорим о том, как настроить GitHub Actions для запуска автотестов Ruby. Узнаем, что такое GitHub workflows, настроим CI, посмотрим, как добавлять бэйджи GitHub Actions, как управлять переменными среды и как просматривать информацию о запущенных задачах. Кроме того, обсудим использование нескольких Gemfile в процессе запуска тестов. https://www.youtube.com/watch?v=vVWTUujffLg
🔥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
🔥8🎉3
Сегодня мы узнаем, как делегировать методы в Ruby и обсудим три подхода: простое делегирование (проброс), делегирование с помощью method_missing, а также модуль Forwardable, который позволяет использовать def_delegators и решать данную задачу весьма лаконично и эффектно. https://www.youtube.com/watch?v=DoJz__qxoTM
👍14