TGViewer
Channel Public Channel
DEV: Рубиновые тона

DEV: Рубиновые тона

@dev_in_ruby_colors

Анонсы новых видео о программировании (Ruby/Rails, Solidity/Ethereum, Python, JS и не только), практические советы, обзор полезных инструментов и новости из мира IT
Subscribers
3.28K
Photos
156
Videos
2
Links
1.1K

Showing posts older than #591 · Back to latest

Older Posts 20 shown
Post #590 1.05K
Post #588 1.09K
Ну, и последняя запись на сегодня. Нашёл забавное рекламное видео бородатых годов, где представлен всем известный "микроавтобус" RAF-977, что означает всего лишь Rīgas Autobusu Fabrika. Удивительно, снято ещё в шестидесятые, а места все знакомые - совсем не изменились. https://twitter.com/sovietvisuals/status/1588642492009824259
  • 👍 6
  • 🔥 1
Post #587 1.02K
У меня вот тоже уникальный вкус, только, наверное, в другом смысле. А у вас как? 😂
  • 😁 3
  • 👍 1
Post #586 1.08K
В этом уроке по Ruby мы узнаем, как правильно тестировать ошибки, которые может вернуть сторонний сервис. Также мы добавим и настроим Rubocop для исправления стиля нашего кода и наконец-таки опубликуем финальную версию библиотеки на сайт rubygems, чтобы её могли использовать другие разработчики. https://www.youtube.com/watch?v=WLgSqsQCKHQ
YouTube Ruby с нуля, урок #16 | Тестируем ошибки, Rubocop, публикуем наш gem В этом уроке по Ruby мы узнаем, как правильно тестировать ошибки, которые может вернуть сторонний сервис. Также мы добавим и настроим Rubocop для исправления стиля нашего кода и наконец-таки опубликуем финальную версию библиотеки на сайт rubygems, чтобы её…
  • ❤ 14
  • ❤‍🔥 6
  • 👍 2
  • 👌 1
Post #585 1.08K
Ну, что ж, первый месяц, когда я в кои-то веки за что-то плачу на Heroku (раньше если там и были платные проекты, то платил заказчик). Пока так

Charges

Amount
Application dynos $ 6.34
Add-on services $ 8.16
Subtotal: $ 14.50
Total:

$ 14.50

Простой dyno и БД. Ну, кое-какие дополнение для почты, логгинга, кэша остались бесплатными, что приятно.
  • 🤔 3
Post #584 1.08K
Планируется саммит по Rails в начале следующего года. Правда интересных докладов там пока как-то не очень много, и, похоже, послушать их можно только за деньги (пусть и не очень большие) https://events.geekle.us/ruby
events.geekle.us Ruby on Rails Global Summit'23 Anything, that you have to know about Ruby in 2023
  • 👍 6
  • ❤‍🔥 1
Post #583 1.14K
В этом уроке по Solidity мы с помощью дебаггера Remix будем разбирать байткод, который генерирует компилятор и который используется для деплоя контракта. Мы обсудим каждую отдельную инструкцию, каждый операционный код (opcode) и узнаем смысл и назначение этих инструкций. Таким образом мы поймём, как именно работает стек и память,что именно происходит в момент развёртывания нашего контракта и как передаются в конструктор аргументы и как они обрабатываются.

Это довольно длинный урок, на запись которого ушло весьма приличное время, так что надеюсь, он вам понравится. https://www.youtube.com/watch?v=pz8NeV6bo3E
YouTube Solidity и Ethereum, урок #38 | Разбор байткода, opcodes, деплой - идём на самый нижний уровень! ХОТИТЕ СТАТЬ РАЗРАБОТЧИКОМ Solidity, узнать об Ethereum, блокчейне и многом другом ещё больше?! Мои друзья из GUIDE DAO (бывшая школа MCS) предлагают скидку 0,1 ETH на ВСЕ СВОИ БУТКЕМЫ ПО КРИПТЕ! Материалы этих буткемов подготовлены мной и другими специалистами:…
  • 👍 25
  • 🔥 16
Post #582 1.05K
Немного backstage (начал готовить новый урок) 😄
  • 👍 30
  • 🔥 7
  • ❤‍🔥 2
  • 😁 1
Post #581 1.32K
Можно ли в тестах для контрактов легко получить нужное событие? Вполне. К примеру, есть транзакция:

const tx = contract.doSomething();
const receipt = await tx.wait();


Тогда мы можем сделать функцию для поиска события

import type { ContractReceipt } from 'ethers';

async function eventFor(receipt: ContractReceipt, name: string) {
return receipt?.events?.find(function (e) {
return e.event === name;
});
}


Ищем событие

const myEvent = await eventFor(receipt, "MyEvent");


И достаём из него нужное поле

myEvent?.args?.value


Вопросительные знаки тут потому, что наличие этих полей не гарантированно, то есть формально события может и не быть (другими словами, это атрибуты optional). Но так как мы делаем это в тестах и как раз ожидаем, что оно *должно быть* (если, конечно, все предварительные условия выполнены), то всё должно сработать корректно. А вот если события как раз нет, то вылетит ошибка, тест сломается и мы поймём, что где-то у нас проблема.
  • 🔥 11
  • 👍 3
Post #580 1.09K
Помните такие? 😁
  • 🔥 30
  • 👍 14
  • 😁 4
  • 😢 3
  • 🍓 3
  • 🤔 1
Post #578 1.23K
В этом уроке по Ruby 3 мы продолжим говорить об автотестах и применим свои знания на практике. Мы узнаем, как тестировать сторонние API с помощью webmock, как измерять покрытие кода тестами и как работать со вспомогательными файлами. https://youtu.be/f9yVwBYyNqU
YouTube Ruby 3 с нуля, урок #15 | Webmock, тестируем HTTP, покрытие тестами (codecov) В этом уроке по Ruby 3 мы продолжим говорить об автотестах и применим свои знания на практике. Мы узнаем, как тестировать сторонние API с помощью webmock, как измерять покрытие кода тестами и как работать со вспомогательными файлами. Таймкоды: 00:00 Введение…
  • 👍 19
  • 🔥 10
  • ❤ 1
Post #576 1.13K
Немного Ruby на сегодня.

module MessagesDictionary
def self.included(klass)
klass.include MessagesDictionary::Injector
end
end

Что это значит? Это значит, что когда текущий модуль был добавлен (include) куда-то ещё, он подключает Injector туда же. Зачем? Чтобы можно было писать

include MessagesDictionary

а не

include MessagesDictionary::Injector

😂 Ну, короче ведь. Обратите внимание, что и в Injector можно добавлять такой же хук

    def self.included(klass)
klass.extend ClassMethods
klass.include InstanceMethods
klass.extend InstanceMethods
end

Вуаля, в классе появляются все нужные методы, как по волшебству.

Пример тут https://github.com/bodrovis-learning/messages_dictionary/blob/master/lib/messages_dictionary/injector.rb
GitHub messages_dictionary/lib/messages_dictionary/injector.rb at master · bodrovis-learning/messages_dictionary Store your messages anywhere and fetch them anytime. - bodrovis-learning/messages_dictionary
  • 🔥 13
  • ❤ 4
  • 😱 2
  • ⚡ 1
  • 👏 1
Post #575 1.24K
  • 😁 19
  • 👍 1
  • 🔥 1
  • 🌚 1
Post #574 1.29K
В этом уроке по Solidity мы поговорим о Foundry: платформе для разработки и тестирования смарт-контрактов, которая может выступать альтернативой Hardhat. В отличие от HH, тесты в Foundry пишутся прямо на Solidity (таким образом, вам не потребуется Typechain), а сама платформа работает куда шустрее за счёт того, что написана она на Rust. Мы поговорим о том, как настроить Foundry, создать проект и как писать тесты для контрактов. https://www.youtube.com/watch?v=nMZlVNmC5-I
YouTube Solidity и смарт-контракты Ethereum, урок #37 | Foundry: альтернатива Hardhat для разработки/тестов ХОТИТЕ СТАТЬ РАЗРАБОТЧИКОМ Solidity, узнать об Ethereum, блокчейне и многом другом ещё больше?! Мои друзья из GUIDE DAO (бывшая школа MCS) предлагают скидку 0,1 ETH на ВСЕ СВОИ БУТКЕМЫ ПО КРИПТЕ! Материалы этих буткемов подготовлены мной и другими специалистами:…
  • 👍 26
  • ❤ 5
  • 🤔 1
Post #573 1.2K
Подборка скидок на чёрную пятницу на всякие штуки для разработчиков - может быть, кому пригодится https://github.com/trungdq88/Awesome-Black-Friday-Cyber-Monday
GitHub GitHub - trungdq88/Awesome-Black-Friday-Cyber-Monday: Awesome apps, software, and SaaS deals on Black Friday. Awesome apps, software, and SaaS deals on Black Friday. - trungdq88/Awesome-Black-Friday-Cyber-Monday
  • 👍 10
Post #572 1.11K
В общем, чтиво может показаться довольно тяжёлым, но, тем не менее, интересным. По опыту могу сказать - это то, что может случиться с каждым довольно внезапно. Берегите себя https://batenka.ru/resource/med/crazy-in-ussr/
Батенька, да вы трансформер Как сходили с ума в Советском Союзе Что можно узнать о себе из пособия «Параноидная шизофрения»: начальство собирает на вас информацию, какие народы надо смешать, подменили всю посуду и исщтщц
  • ⚡ 5
  • 👍 1
  • 🤯 1
Post #571 1.06K
В этом очень важном уроке по Ruby 3 мы начнём обсуждать новую тему: это автоматизированные тесты (они же "автотесты"). Мы поговорим о том, зачем тесты нужны, где и как их писать с помощью RSpec, а также поработаем с ними на практике, обсудив много интересных вещей. https://www.youtube.com/watch?v=lfKKEUjtaYs
YouTube Ruby 3 с нуля, урок #14 | Автотесты RSpec - тестируй меня полностью В этом очень важном уроке по Ruby 3 мы начнём обсуждать новую тему: это автоматизированные тесты (они же "автотесты"). Мы поговорим о том, зачем тесты нужны, где и как их писать с помощью RSpec, а также поработаем с ними на практике, обсудив много интересных…
  • 🔥 24
Post #570 1.3K
Что ж, решил я тут тряхнуть стариной и спустя пять лет выпустить вторую версию библиотеки messages_dictionary для ruby. 😂 Я про неё немного рассказывал на одном стриме, но в общем там суть в том, что с неё помощью можно легко вытаскивать нужные сообщения из файлов yaml, по аналогии с i18n. https://github.com/bodrovis-learning/messages_dictionary Можно пользоваться, можно почитать вот тут, как она была написана (хотя во второй версии много изменений) https://www.sitepoint.com/learn-ruby-metaprogramming-for-great-good/ Думаю, на одном из стримов мы обсудим, как эта библиотека устроена, тк там есть некоторые интересные моменты
GitHub GitHub - bodrovis-learning/messages_dictionary: Store your messages anywhere and fetch them anytime. Store your messages anywhere and fetch them anytime. - bodrovis-learning/messages_dictionary
  • 👍 19
  • 👏 7
  • 🎉 2
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →