Прислал Александр Шеншин (см. чат):
Илья, и все остальные. У меня объявление. Блокчейн Rootstock (RSK), где я работаю предлагает
Илья, и все остальные. У меня объявление. Блокчейн Rootstock (RSK), где я работаю предлагает
РАБОТУ на должность Developer Advocate
Требуется знание Solidity и английского языка. Зарплаты - на мировом рыночном уровне и выше. За job denoscription обращайтесь ко мне в личку.👍3
О том, что Heroku закрывает бесплатные тарифные планы, знают уже все - даже бабушки, сидящие у дома на лавочках, и те обсуждают. В связи с этим мне необходимо было решить, как поступать со своим сайтом - то ли переносить куда-то (на тот же Render, о котором у нас уже был урок), то ли оставлять и платить за хостинг здесь. В итоге, я решил остаться на Heroku:
- Переходить на платный тариф надо было уже давно, так как использовать всякие хаки, чтобы приложение не "засыпало", уже надоело, а на render будет происходить та же история. За 1 процесс web платить надо примерно одинаково и там, и там
- Бесплатная БД на render всё равно временная, а мне нужна постоянная. По деньгам же выходит то же самое
- Heroku всё-таки куда более "матёрое" решение со множеством дополнений и без каких-то странных багов (хотя я помню времена, когда этот хероку постоянно ложился, чуть ли не через день). На render, к примеру, я замечаю, что время от времени после деплоя не обновляются толком маршруты - то есть страница то грузится, то нет. Это известная проблема, но решить её команда пока не может
- Честно говоря, переезжать было лень 😄
В целом, никаких проблем не было, только надо помнить, что при апгрейде БД с тарифа hobby надо использовать pg:copy, как описано тут https://devcenter.heroku.com/articles/upgrading-heroku-postgres-databases#upgrading-with-pg-copy
В общем, как говорится, полёт нормальный ✈️
- Переходить на платный тариф надо было уже давно, так как использовать всякие хаки, чтобы приложение не "засыпало", уже надоело, а на render будет происходить та же история. За 1 процесс web платить надо примерно одинаково и там, и там
- Бесплатная БД на render всё равно временная, а мне нужна постоянная. По деньгам же выходит то же самое
- Heroku всё-таки куда более "матёрое" решение со множеством дополнений и без каких-то странных багов (хотя я помню времена, когда этот хероку постоянно ложился, чуть ли не через день). На render, к примеру, я замечаю, что время от времени после деплоя не обновляются толком маршруты - то есть страница то грузится, то нет. Это известная проблема, но решить её команда пока не может
- Честно говоря, переезжать было лень 😄
В целом, никаких проблем не было, только надо помнить, что при апгрейде БД с тарифа hobby надо использовать pg:copy, как описано тут https://devcenter.heroku.com/articles/upgrading-heroku-postgres-databases#upgrading-with-pg-copy
В общем, как говорится, полёт нормальный ✈️
Heroku
Upgrading the Version of a Heroku Postgres Database | Heroku Dev Center
How to upgrade the PostgreSQL version of a Heroku Postgres database.
👍7
Сегодня просто музыка https://www.youtube.com/watch?v=CxcECoD26Ss Скоро увидимся
👍6
В этом уроке мы продолжим писать собственный gem для перевода на несуществующие языки. Мы добавим клиент, сделаем парсинг ответа от сервера, подготовим данные в удобном виде, а также введём аутентфикацию по токену API. https://www.youtube.com/watch?v=EiakNCY6AxQ
YouTube
Ruby 3 с нуля, урок #12 | Продолжаем писать свой gem: парсим JSON, делаем клиент и не только
В этом уроке мы продолжим писать собственный gem для перевода на несуществующие языки. Мы добавим клиент, сделаем парсинг ответа от сервера, подготовим данные в удобном виде, а также введём аутентфикацию по токену API.
Таймкоды:
00:00 Введение
01:00 Ревью…
Таймкоды:
00:00 Введение
01:00 Ревью…
❤22👍2
А знаете, какой сегодня день? Это день, когда два года назад практически ничего не произошло. Иными словами, это был день, когда я в очередной раз стал лениво раздумывать над тем, чтобы запустить наконец канал на YouTube и, может быть, даже рассказать что-нибудь полезное. Привело это к тому, что мне в очередной раз стало лень, но вот беда - у меня уже лежало почти готовое видео на английском языке про интернационализацию приложений Vue. Затем оно было опубликовано на канале Lokalise, но было ощущение, что требуется продолжение банкета...
В общем, это было первое видео на канале, опубликованное в итоге спустя пару недель, в конце ноября. Я был уверен, что его никто не посмотрит и - guess what - его никто особо и не смотрел, во всяком случае, в начале. Потом были ещё переводы, а потом уже полноценные уроки по Ruby/Rails, которые разлетелись благодаря весьма активной, хотя и немногочисленной аудитории - я помню вас, друзья, и очень вам благодарен.
Суть не в том, что сегодня некий "день рождения" канала, ибо дату его рождения установить невозможно. Идея зародилась давно, а некие прото-версии появлялись и раньше, но до времени это не оформлялось во что-то более-менее приличное. Потом же звёзды сложились так, что мы вместе создали это небольшое сообщество и библиотеку полезных материалов - я уверен, что это результат общих стараний, и я в первую очередь горжусь нашим чатом, где нет места токсичности, троллингу и прочим модным словам.
Вообще, страшно представить, как изменилась жизнь за это время. Помните - тогда мы (хорошо, не все, но многие) боялись коронавируса? Я очень хорошо помню позднюю зиму 2020 года... Примерно 4-5 часов вечера, я в чёрном плаще и сапогах иду абсолютно один по пустынным улицам Старого города. Я мог дойти до магазина и обратно, не встретив вообще ни души. Удивительно. Я брал тогда по бутылочке такого финского коктейля с водкой и потихоньку допивал его по дороге обратно - нехорошо, конечно, но кому какое было дело. Теперь эти улицы полны туристами, как и раньше. Тогда было не так. Тогда мы и в ресторан на ужин приходили, сидя чуть ли не в гордом одиночестве. Как мы не заболели? Не знаю. Может, и заболели, но не серьёзно? Увы, некоторые из моих друзей и знакомых это время не пережили, а кто-то загремел в больницу, выжив только чудом. Спустя год умерла моя подруга, пусть и не очень близкая, но это было неожиданно тяжело. Странно, что спустя ещё год она мне приснилась и на вопрос "настоящая ли ты?" я получил ответ "я настоящая настолько, насколько ты можешь себе представить". Песня ниже безусловно ассоциируется именно с ней.
Ну, а потом стало ясно, что нужно наконец делать что-то полезное. И вот - результат перед вами. Хотелось бы думать, что мы только начинаем - есть много интересных тем, которые мы ещё не обсудили, не "пощупали". Однако последние события показывают, что загадывать вообще не стоит.
Так или иначе, в ближайшие пару дней я в Стране тысячи озёр (или тысячи напитков?), а далее видно будет. Скоро устроим традиционную игру "вопрос-ответ" и обязательно обсудим что-нибудь новенькое. Как обычно, я наделаю ошибок, а вы меня поправите.
В общем, как говорится, vorbei ist vorbei, а мне хотелось бы двигаться дальше https://www.youtube.com/watch?v=QL9CaVv_eM0
В общем, это было первое видео на канале, опубликованное в итоге спустя пару недель, в конце ноября. Я был уверен, что его никто не посмотрит и - guess what - его никто особо и не смотрел, во всяком случае, в начале. Потом были ещё переводы, а потом уже полноценные уроки по Ruby/Rails, которые разлетелись благодаря весьма активной, хотя и немногочисленной аудитории - я помню вас, друзья, и очень вам благодарен.
Суть не в том, что сегодня некий "день рождения" канала, ибо дату его рождения установить невозможно. Идея зародилась давно, а некие прото-версии появлялись и раньше, но до времени это не оформлялось во что-то более-менее приличное. Потом же звёзды сложились так, что мы вместе создали это небольшое сообщество и библиотеку полезных материалов - я уверен, что это результат общих стараний, и я в первую очередь горжусь нашим чатом, где нет места токсичности, троллингу и прочим модным словам.
Вообще, страшно представить, как изменилась жизнь за это время. Помните - тогда мы (хорошо, не все, но многие) боялись коронавируса? Я очень хорошо помню позднюю зиму 2020 года... Примерно 4-5 часов вечера, я в чёрном плаще и сапогах иду абсолютно один по пустынным улицам Старого города. Я мог дойти до магазина и обратно, не встретив вообще ни души. Удивительно. Я брал тогда по бутылочке такого финского коктейля с водкой и потихоньку допивал его по дороге обратно - нехорошо, конечно, но кому какое было дело. Теперь эти улицы полны туристами, как и раньше. Тогда было не так. Тогда мы и в ресторан на ужин приходили, сидя чуть ли не в гордом одиночестве. Как мы не заболели? Не знаю. Может, и заболели, но не серьёзно? Увы, некоторые из моих друзей и знакомых это время не пережили, а кто-то загремел в больницу, выжив только чудом. Спустя год умерла моя подруга, пусть и не очень близкая, но это было неожиданно тяжело. Странно, что спустя ещё год она мне приснилась и на вопрос "настоящая ли ты?" я получил ответ "я настоящая настолько, насколько ты можешь себе представить". Песня ниже безусловно ассоциируется именно с ней.
Ну, а потом стало ясно, что нужно наконец делать что-то полезное. И вот - результат перед вами. Хотелось бы думать, что мы только начинаем - есть много интересных тем, которые мы ещё не обсудили, не "пощупали". Однако последние события показывают, что загадывать вообще не стоит.
Так или иначе, в ближайшие пару дней я в Стране тысячи озёр (или тысячи напитков?), а далее видно будет. Скоро устроим традиционную игру "вопрос-ответ" и обязательно обсудим что-нибудь новенькое. Как обычно, я наделаю ошибок, а вы меня поправите.
В общем, как говорится, vorbei ist vorbei, а мне хотелось бы двигаться дальше https://www.youtube.com/watch?v=QL9CaVv_eM0
YouTube
Trobar de Morte - The Unquiet Grave
"The Unquiet Grave" belongs to our new CD "The Book of Shadows".
Get yours: trobardemorte.com/Shop2020.htm
★★★Follow Trobar de Morte on the net★★★
Subscribe: youtube.com/c/TrobardeMorteOfficial
Facebook: https://www.facebook.com/TrobardeMorteband
Official…
Get yours: trobardemorte.com/Shop2020.htm
★★★Follow Trobar de Morte on the net★★★
Subscribe: youtube.com/c/TrobardeMorteOfficial
Facebook: https://www.facebook.com/TrobardeMorteband
Official…
❤48👍9🔥9🙏2
А между тем GitHub Universe будет проходить сегодня и завтра (онлайн тоже) https://watch.githubuniverse.com/schedule
👍7
В этом видео по Ruby мы поговорим о таком сравнительно малоизвестном классе, как Enumerator::Lazy, который позволяет создавать "ленивые" перечисления и обходить не всю (потенциально, очень большую) коллекцию, а ровно ту её часть, которая необходима для получения искомого результата. Это может быть очень удобно, если вы работаете с большими объёмами данных и хотите оптимизировать свой код. Конечно, "ленивые" перечисления - это не волшебная таблетка, но всё же весьма полезный функционал, который может выручить в некоторых ситуациях. https://www.youtube.com/watch?v=fJdPOKth9TM
YouTube
Ruby Enumerator::Lazy | Ленивые перечисления для оптимизации
В этом видео по Ruby мы поговорим о таком сравнительно малоизвестном классе, как Enumerator::Lazy, который позволяет создавать "ленивые" перечисления и обходить не всю (потенциально, очень большую) коллекцию, а ровно ту её часть, которая необходима для получения…
🔥31❤3🏆2👍1
Итак, друзья, в следующий вторник в 19:30 UTC+2 (20:30 UTC+3, соответственно) состоится очередная интеллектуальная заруба между командами школы, телезрителей и вредным ведущим. Как обычно, турнирная дистанция 24 вопроса, будет интересно. Увидимся! https://youtu.be/Rv9vtYpSL5o
YouTube
СТРИМ! Интеллектуальная игра MCS Answer: команда школы и зрителей против вредного ведущего
Наша традиционная игра MCS Answer: команда знатоков и зрителей против вредного ведущего!
Станьте спонсором канала, и вы получите доступ к эксклюзивным бонусам: https://www.youtube.com/channel/UCN2waErKU52T_41pGgUimXw/join
Boosty: https://boosty.to/bodrovis…
Станьте спонсором канала, и вы получите доступ к эксклюзивным бонусам: https://www.youtube.com/channel/UCN2waErKU52T_41pGgUimXw/join
Boosty: https://boosty.to/bodrovis…
🔥7
Что ж, я всё-таки набрался терпения и наконец-то полностью перевёл свой сайт на Rails 7 и Stimulus, отказавшись от старых решений типа sass-rails и sprockets, а также от старья вроде kaminari. Так как сайт написан ещё лет десять назад, пришлось довольно много менять (хотя, к счастью, изменения для rails 6 я внёс ранее), но ушло не так уж много времени.
В принципе, каких-то проблем не возникло, всё шаги, описанные в уроках по esbuild и stimulus, вполне валидны. Единственное, на что действительно нужно обратить внимание - удостоверьтесь, что вы не изъяли полностью из git папку app/assets/builds (проще всего добавить там пустой файл .keep и не добавлять его в .gitignore). В противном случае в production у вас будут проблемы в духе "нет файла application.css".
В общем, если у вас есть старые приложения, то не бойтесь их обновлять - с новыми решениями всё куда проще, тем более, что многие старые гемы уже просто не поддерживаются
В принципе, каких-то проблем не возникло, всё шаги, описанные в уроках по esbuild и stimulus, вполне валидны. Единственное, на что действительно нужно обратить внимание - удостоверьтесь, что вы не изъяли полностью из git папку app/assets/builds (проще всего добавить там пустой файл .keep и не добавлять его в .gitignore). В противном случае в production у вас будут проблемы в духе "нет файла application.css".
В общем, если у вас есть старые приложения, то не бойтесь их обновлять - с новыми решениями всё куда проще, тем более, что многие старые гемы уже просто не поддерживаются
👍25
Очень удобный ресурс для оптимизации изображений https://squoosh.app/ P.S. Спасибо всем, кто заметил проблему на моём сайте на мобильных устройствах, уже поправил, там просто нужно было перенос слов добавить 😂
squoosh.app
Squoosh is the ultimate image optimizer that allows you to compress and compare images with different codecs in your browser.
❤8🔥2👍1🤣1
Не хочу быть, как гоблин https://www.youtube.com/watch?v=KsMKOx6fumc :( Прямо страшно становится. Зато завтра у нас интеллектуальная заруба и возможно стрим по Ruby. Увидимся!
YouTube
Nekrogoblikon - No One Survives [OFFICIAL VIDEO]
©2012 Brandon Dermer & Associates, all rights reserved.
"No One Survives" by Nekrogoblikon from 'Stench,'
©2011 Nekrogoblikon, all lyrics and music rights reserved.
BUY THE ALBUM
CD: http://www.districtlines.com/nekrogoblikon
iTunes: https://itunes.app…
"No One Survives" by Nekrogoblikon from 'Stench,'
©2011 Nekrogoblikon, all lyrics and music rights reserved.
BUY THE ALBUM
CD: http://www.districtlines.com/nekrogoblikon
iTunes: https://itunes.app…
❤1😁1
Через 2 минуты начинаем нашу зарубу :) https://youtu.be/Rv9vtYpSL5o
YouTube
СТРИМ! Интеллектуальная игра MCS Answer: команда школы и зрителей против вредного ведущего
Наша традиционная игра MCS Answer: команда знатоков и зрителей против вредного ведущего!
Станьте спонсором канала, и вы получите доступ к эксклюзивным бонусам: https://www.youtube.com/channel/UCN2waErKU52T_41pGgUimXw/join
Boosty: https://boosty.to/bodrovis…
Станьте спонсором канала, и вы получите доступ к эксклюзивным бонусам: https://www.youtube.com/channel/UCN2waErKU52T_41pGgUimXw/join
Boosty: https://boosty.to/bodrovis…
В этом уроке по Solidity мы узнаем, как реализовать полноценную ролевую систему в своих контрактах. С её помощью вы сможете разграничить права доступа, выбрать, кто может вызывать какие функции, а также указывать, кто может управлять разными ролями. https://www.youtube.com/watch?v=gQtaEtSCpPE
YouTube
Solidity и смарт-контракты Ethereum, урок #36 | Ролевая система (access control)
ХОТИТЕ СТАТЬ РАЗРАБОТЧИКОМ Solidity, узнать об Ethereum, блокчейне и многом другом ещё больше?!
Мои друзья из GUIDE DAO (бывшая школа MCS) предлагают скидку 0,1 ETH на ВСЕ СВОИ БУТКЕМЫ ПО КРИПТЕ! Материалы этих буткемов подготовлены мной и другими специалистами:…
Мои друзья из GUIDE DAO (бывшая школа MCS) предлагают скидку 0,1 ETH на ВСЕ СВОИ БУТКЕМЫ ПО КРИПТЕ! Материалы этих буткемов подготовлены мной и другими специалистами:…
👍22❤🔥2🔥2
В этом видео о Ruby мы поговорим о том, как обрабатывать ошибки и исключения (exceptions). Мы узнаем о конструкции begin-rescue-else-ensure, о том, какие вообще ошибки бывают. Также узнаем о методе retry и научимся порождать собственные ошибки с помощью raise. Полученные знания мы применим на практике и продолжим писать нашу собственную библиотеку. https://www.youtube.com/watch?v=r8p1R8gOXSM
YouTube
Ruby 3 с нуля, урок #13 | Обработка исключений - когда всё идёт не по плану
В этом видео о Ruby мы поговорим о том, как обрабатывать ошибки и исключения (exceptions). Мы узнаем о конструкции begin-rescue-else-ensure, о том, какие вообще ошибки бывают. Также узнаем о методе retry и научимся порождать собственные ошибки с помощью raise.…
👍20❤5
Небольшой лайфхак на сегодня.
Предположим, вы тестируете скрипт Ruby, в котором присутствует метод
Тогда:
Говорим, что если вызван gets, мы отвечаем "Y".
Ну а дальше вызываем нужный метод в тестах. Можно также проверить, что gets действительно был вызван:
Тут даже можно дописать, сколько раз он был вызван, к примеру
То есть не более 2 раз был вызван gets.
Предположим, вы тестируете скрипт Ruby, в котором присутствует метод
gets (ввод с клавиатуры) и вы хотите эмулировать ситуацию, когда был введён ответ Y (да). Это довольно просто, если знать, что существует глобальная переменная $stdin - standard input, которая как раз содержит метод gets (хотя, помимо стандартного инпута могут быть другие).Тогда:
allow($stdin).to receive(:gets).and_return('Y')Говорим, что если вызван gets, мы отвечаем "Y".
Ну а дальше вызываем нужный метод в тестах. Можно также проверить, что gets действительно был вызван:
expect($stdin).to have_received(:gets)
Тут даже можно дописать, сколько раз он был вызван, к примеру
expect($stdin).to have_received(:gets).at_most(2).times
То есть не более 2 раз был вызван gets.
👍22🔥5
Ночь под звуки саксофона (точнее, сразу двух) https://www.youtube.com/watch?v=48tU3P8f46Y
YouTube
Van Der Graaf Generator - Darkness (11/11) (1970)
Van der Graaf Generator are an English progressive rock band, formed in 1967 in Manchester by singer-songwriters Peter Hammill and Chris Judge Smith and the first act signed by Charisma Records. They did not experience much commercial success in the UK, but…
❤5👍3🤔1
Что ж, решил я тут тряхнуть стариной и спустя пять лет выпустить вторую версию библиотеки 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
В этом очень важном уроке по Ruby 3 мы начнём обсуждать новую тему: это автоматизированные тесты (они же "автотесты"). Мы поговорим о том, зачем тесты нужны, где и как их писать с помощью RSpec, а также поработаем с ними на практике, обсудив много интересных вещей. https://www.youtube.com/watch?v=lfKKEUjtaYs
YouTube
Ruby 3 с нуля, урок #14 | Автотесты RSpec - тестируй меня полностью
В этом очень важном уроке по Ruby 3 мы начнём обсуждать новую тему: это автоматизированные тесты (они же "автотесты"). Мы поговорим о том, зачем тесты нужны, где и как их писать с помощью RSpec, а также поработаем с ними на практике, обсудив много интересных…
🔥24