Друзья, небольшая подсказка для разработчиков 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
Сегодня мы поговорим о классе Thread, встроенном в Ruby, который позволяет легко внедрять многопоточность в ваши скрипты. Мы узнаем, в чём его отличие от Process, как создавать и завершать потоки и напишем приложение, которое будет конвертировать файлы Markdown в HTML с использованием множества потоков. https://www.youtube.com/watch?v=XhRv-vx7uoU
YouTube
Ruby Thread | Многопоточность без сторонних библиотек
Сегодня мы поговорим о классе Thread, встроенном в Ruby, который позволяет легко внедрять многопоточность в ваши скрипты. Мы узнаем, в чём его отличие от Process, как создавать и завершать потоки и напишем приложение, которое будет конвертировать файлы Markdown…
🔥8👍3
Друзья, давненько мы не играли в вопрос-ответ 🤓 Пока готовится новое видео (а оно выйдет уже завтра), предлагаю загадку, которую я придумал пару лет назад (она уже игралась на одном турнире, так что если кто знает, просьба не спойлерить).
Итак, название группы
Итак, название группы
Sunn O))) - это не только отсылка к логотипу усилителей, но и дань уважения другой более ранней группе под названием "ТРЕТЬЯ", которая играет в том же стиле и даже считается его основательницей. На эту дань уважения, в частности, намекает стилизация O))) и, конечно же, слово Sunn. Какое слово было заменено словом "ТРЕТЬЯ", как на самом деле называется эта группа?👍1
Продолжаем уроки по Solidity и Ethereum! Сегодня поговорим о таких типах данных, как bool (булев или логический тип), а также о целых числах uint и int. Узнаем, в чём между ними разница, какая бывает размерность, как работать с этими типами данных, какие существуют операции и зачем нужен unchecked. https://www.youtube.com/watch?v=alK0PY-Qa4Q
YouTube
Solidity и смарт-контракты Ethereum, урок #2 | Типы данных bool, uint, int
ХОТИТЕ СТАТЬ РАЗРАБОТЧИКОМ Solidity, узнать об Ethereum, блокчейне и многом другом ещё больше?!
Мои друзья из GUIDE DAO (бывшая школа MCS) предлагают скидку 0,1 ETH на ВСЕ СВОИ БУТКЕМЫ ПО КРИПТЕ! Материалы этих буткемов подготовлены мной и другими специалистами:…
Мои друзья из GUIDE DAO (бывшая школа MCS) предлагают скидку 0,1 ETH на ВСЕ СВОИ БУТКЕМЫ ПО КРИПТЕ! Материалы этих буткемов подготовлены мной и другими специалистами:…
🔥10
Если вы хотите использовать в своём приложении Ruby/Rails для перевода Gettext (а не стандартный I18n с файлами YAML), то решение fast_gettext - это то, что вам нужно. Эта библиотека весьма шустрая, поддерживает все фичи Gettext и развивается на протяжении многих лет. На днях ещё скину материал по теме (когда допишу 😄) https://github.com/grosser/fast_gettext
GitHub
GitHub - grosser/fast_gettext: Ruby GetText, but 12x faster + 530x less garbage + simple + clean namespace + threadsafe + extendable…
Ruby GetText, but 12x faster + 530x less garbage + simple + clean namespace + threadsafe + extendable + multiple backends - grosser/fast_gettext
👍3
Пора поставить точку в этом противостоянии. На какой вы стороне?
Anonymous Poll
85%
RSpec
11%
Minitest
4%
Cucumber
Итак, друзья, как и обещал: обзор и краткая инструкция по использованию популярных решений для перевода приложений Ruby https://lokalise.com/blog/i18n-gem-ruby/
Lokalise Blog
I18n gems: Easily translate your Ruby apps with these 5 gems
This article provides an in-depth overview of the available i18n gems that can be used to translate your Ruby and Rails applications.
🔥9
Друзья, небольшая новость для тех, кто хочет использовать Faraday 2.0 и при этом сохранить модуль Gzip, который был встроен в устаревший middleware. Сегодня я выпустил первую версию библиотеки faraday-gzip, которая возвращает этот функционал в Faraday 2. Так что пользуйтесь на здоровье 🤟P.S. В нашем опросе с огромным отрывом выиграл RSpec - в принципе, предсказуемо, но всё же любопытно 🤓 https://github.com/bodrovis/faraday-gzip
GitHub
GitHub - bodrovis/faraday-gzip: The Gzip middleware adds the necessary Accept-Encoding headers and automatically decompresses the…
The Gzip middleware adds the necessary Accept-Encoding headers and automatically decompresses the response - GitHub - bodrovis/faraday-gzip: The Gzip middleware adds the necessary Accept-Encoding h...
👍8🔥1
Engine для Rails, который добавляет возможность входа без пароля https://github.com/mikker/passwordless
GitHub
GitHub - mikker/passwordless: 🗝 Authentication for your Rails app without the icky-ness of passwords
🗝 Authentication for your Rails app without the icky-ness of passwords - mikker/passwordless
Senior developer fixing a bug in production https://www.youtube.com/watch?v=aQHZ6LhPRzM
YouTube
Senior developer fixing a bug in production
😁9👍3
Уроки по RSpec 3 (aka "Самоучитель RSpec") наконец-то на канале! Сегодня мы узнаем, как настроить среду для выполнения автотестов, поговорим, что это вообще такое, подключим Rubocop, а также напишем наши первые тесты. https://youtu.be/60g460qWDTU
YouTube
RSpec 3, урок #1 | Настройка среды и первые тесты
Уроки по RSpec 3 (aka "Самоучитель RSpec") наконец-то на канале! Сегодня мы узнаем, как настроить среду для выполнения автотестов, поговорим, что это вообще такое, подключим Rubocop, а также напишем наши первые тесты.
Таймкоды:
00:00 Введение
00:50 Что такое…
Таймкоды:
00:00 Введение
00:50 Что такое…
🔥24👍4
Друзья, у меня иногда спрашивают: во что поиграть? Дескать, хороших игр не выпускают. Что ж, не сказать, что у меня остаётся так уж много времени на игры, но вообще я считаю, что это весьма неплохое времяпрепровождение, если нужно отвлечься. Вообще, я люблю японские RPG, но, увы, ничего стоящего последние лет 15 не выпускалось, поэтому небольшой топ в других жанрах:
👍6
1. Banner Saga - красивая рисовка, интересный сюжет, довольно неплохая боевая система, пусть и простая. Лично мне нравится именно атмосферность
2. Disco Elysium - играть просто ради сюжета. Это фактически книга, только рассказанная в форме игры. На большого любителя
3. Not For Broadcast - новая игра, которой я посвятил несколько часов. Очень помогает в прокачке английского, интересный игровой процесс, хороший юмор
4. Dungeons of Naheulbeuk - классическая партийная RPG, которая пародирует буквально всё. Отличный юмор, нескучный игровой процесс
5. Kingdom Come - пожалуй, единственная игра "в тренде". Да, в ней полно багов, но сделано очень добротно, здорово проработан мир, и в целом впечатление очень приятное.
В общем, не скучайте!
2. Disco Elysium - играть просто ради сюжета. Это фактически книга, только рассказанная в форме игры. На большого любителя
3. Not For Broadcast - новая игра, которой я посвятил несколько часов. Очень помогает в прокачке английского, интересный игровой процесс, хороший юмор
4. Dungeons of Naheulbeuk - классическая партийная RPG, которая пародирует буквально всё. Отличный юмор, нескучный игровой процесс
5. Kingdom Come - пожалуй, единственная игра "в тренде". Да, в ней полно багов, но сделано очень добротно, здорово проработан мир, и в целом впечатление очень приятное.
В общем, не скучайте!
👍13
Продолжаем уроки по языку Solidity! Сегодня обсудим типы данных string, address, mapping. Узнаем их особенности, попробуем отправить и получить денежные средства в контрактах и посмотрим некоторые другие вещи на практике. https://www.youtube.com/watch?v=WTmyFzfwn04
YouTube
Solidity и смарт-контракты Ethereum, урок #3 | Типы данных string, address, mapping
ХОТИТЕ СТАТЬ РАЗРАБОТЧИКОМ Solidity, узнать об Ethereum, блокчейне и многом другом ещё больше?!
Мои друзья из GUIDE DAO (бывшая школа MCS) предлагают скидку 0,1 ETH на ВСЕ СВОИ БУТКЕМЫ ПО КРИПТЕ! Материалы этих буткемов подготовлены мной и другими специалистами:…
Мои друзья из GUIDE DAO (бывшая школа MCS) предлагают скидку 0,1 ETH на ВСЕ СВОИ БУТКЕМЫ ПО КРИПТЕ! Материалы этих буткемов подготовлены мной и другими специалистами:…
👍5
Друзья, отвечая на вопрос, что за музыка играет в титрах (где перечисляются все спонсоры). На самом деле, это один из треков, который я когда-то написал. Я не строю иллюзий: композитор из меня так себе, но мне показалось, что это лучше, чем использовать какой-нибудь generic track из библиотеки YT. 😝 Кстати, учитывая, что спонсоров стало больше (и я благодарен каждому из вас!), мы скоро опубликуем дополнительные смайлы, чтобы было повеселее. Берегите себя, скоро увидимся https://www.youtube.com/watch?v=P7-GmyrNRPM
YouTube
Night Sky (by Ravens Die Laughing)
Ambient, experimental
👍7🔥4
Друзья, если выхода Rails 7, перехода на esbuild или importmap было для вас недостаточно, недавно было анонсировано ещё одно нововведение: Propshaft, которое должно заменить Sprockets в будущем. Пока это решение ещё не завершено, однако рано или поздно, видимо, нам предстоит на него перейти. Конечно, всё это обилие решений и метания выглядят не слишком здорово, особенно для новичков, но прогресс лучше стагнации. В общем, будем держать руку на пульсе и я обязательно расскажу вам об этой библиотеке, когда она будет готова для production. https://world.hey.com/dhh/introducing-propshaft-ee60f4f6 (ссылку прислал Степан Середа)
Hey
Introducing Propshaft
It's an exciting time in web development. After a decade's worth of front-end progress kept demanding ever more complicated setups, we're finally moving in the opposite direction. With simpler tools that are still able to hit those high-fidelity user interface…
👍4
Решение для Rails, которое позволяет находить проблемы с БД (лишние индексы, отсутствующие ограничения и тп) https://github.com/gregnavis/active_record_doctor Прислал Илья Барицкий
GitHub
GitHub - gregnavis/active_record_doctor: Identify database issues before they hit production.
Identify database issues before they hit production. - gregnavis/active_record_doctor
👍10
Решение для отслеживание производительности в Postgres со встроенной web-панелью https://github.com/ankane/pghero (прислала Юлия Глущенко)
GitHub
GitHub - ankane/pghero: A performance dashboard for Postgres
A performance dashboard for Postgres. Contribute to ankane/pghero development by creating an account on GitHub.
🔥8👍3😱1