DEV: Рубиновые тона – Telegram
DEV: Рубиновые тона
3.22K subscribers
143 photos
2 videos
8 files
978 links
Анонсы новых видео о программировании (Ruby/Rails, Solidity/Ethereum, Python, JS и не только), практические советы, обзор полезных инструментов и новости из мира IT
Download Telegram
Интересная книга о разработке "долгоиграющих" приложений Rails. Я пока кратко посмотрел первые главы, но в целом мысли весьма здравые https://pragprog.com/noscripts/d-dcrails/sustainable-web-development-with-ruby-on-rails/ Это не реклама
👍17🤩2
Довольно тяжёлая, но насыщенная была семидневка - надеюсь, новые уроки и стримы принесли плоды. Ну, а сегодня просто немного музыки. Спокойной ночи https://www.youtube.com/watch?v=PBa1iM29mGI
👍6🔥2
Первый урок из серии "Ruby с нуля" (aka "Самоучитель Ruby")! В нём мы настроим рабочую среду, немного поговорим о самом языке, напишем первую программу, обсудим типы данных и переменные. Эти уроки подойдут для начинающих, а также для тех, кто уже когда-то что-то учил, но успел забыть. Помогать в этих уроках мне будет мой друг, который совсем не разбирается в программировании, поэтому это не просто лекции, а, скорее, совместное обсуждение нового материала. https://www.youtube.com/watch?v=lhRAK_bwaeo
👍29🔥7
Рубрика "заметки на полях". Как сделать так, чтобы можно было относительно объекта Ruby вызывать метод обычным способом и через квадратные скобки, то есть писать

obj.method

obj[:method]


В целом, всё просто. Скажем, можно проверить, есть ли такая переменная в объекте:

      def [](raw_key_attr)
key_attr = raw_key_attr.to_s.to_sym

return nil unless self.instance_variables.include?(:"@#{key_attr}")

self.send key_attr
end


Зачем это нужно? К примеру, чтобы объект в массиве нормально работал с методом pluck, который как раз вызывает всё через квадратные скобки. То есть вот это

objects_array.pluck :id


значит, что на каждом объекте массиве вызывается obj[:id], поэтому если метода [] нет, то и pluck не сработает.
👍13
Друзья, и пожалуйста, не надо больше спрашивать, зачем я занимаюсь "вымирающим Ruby". Это по меньшей мере странно, тем более, что этот язык долгие годы (включая этот) держится в топ-5 по зарплате и может похвастать весьма крупным сообществом. Давайте лучше послушаем музыку. Спокойной ночи. https://www.youtube.com/watch?v=qIiZFpOQnd8
🔥19👍9
Вдогонку ещё один урок с шутками да прибаутками.

В этом уроке по Ruby мы обсудим, что такое логические значения (булев тип), как работать с ветвлением (if-elsif-else), как сравнивать числа и строки, а также как генерировать случайные числа в заданном диапазоне. Кроме того, напишем программы для проверки возраста и "игру-угадайку", в которой пользователь будет угадывать число, которое задумал компьютер. https://www.youtube.com/watch?v=0mOaStOwThM
🔥23👍2
Недавно для Hardhat появился новый плагин - toolbox. Он содержит в себе несколько самых популярных расширений (для тестирования, верификации, вывода отчётов по газу, typechain), то есть теперь всё можно установить одной командой и использовать в проекте безо всяких проблем https://hardhat.org/hardhat-runner/plugins/nomicfoundation-hardhat-toolbox
13👍9🔥1
Так, наступает ночь, а я, как обычно, об обучении и преподавании.

Сегодня хотел заметить вот какую вещь: на постсоветском пространстве зачастую не очень здорово преподаётся английский язык. Это не с целью кого-то обидеть, а просто некое замечание. Ну, во всяком случае, так было раньше - впрочем, подозреваю, что так есть и сейчас.

О чём речь? О том, что вместо прикладных знаний ученики получают какое-то безумное количество грамматики и зубрят всякие present-past-perfect во всём их многообразии. Потребуется ли им это в повседневной жизни? Ответ простой: конечно, нет. Куда более полезным навыком будет умение вести дискуссию (тот самый "разговорный английский"), умение понимать обычную английскую речь, умение написать несложное сообщение другу или начальнику.

Да, всё это бесчисленное количество времён должен знать специалист, но таковыми станут единицы. Скажем так, по второй специальности я технический переводчик, но уже давным-давно забыл сложные случаи во всех этих временах просто потому, что мне это не требуется от слова "совсем". Зато мне нужно просто и понятно доносить свои мысли до коллег и студентов, причём учитывая, что они могут быть далеко не native speakers. Мне нужно уметь отвечать на письма, но вовсе не в том стиле, который даётся в школе. Я никогда в жизни не писал никому "Dear sir or madam" и крайне редко завершал письма фразой "Looking forward to hearing from you".

Всерьёз обращаться к кому-то "dear sir" - это странно, если только вы не пишите лично президенту США или генеральному директору какой-нибудь компании типа Exxon Mobil. Да, слово "sir" таки может кое-где встречаться, но в несколько ином контексте, иногда даже какой-то присказкой.

Живой английский - он совсем иной. Американцы, австралийцы говорят совсем иначе, вовсе не так, как рассказывают в учебниках. А что уж говорить о наших друзьях из Индии...

На первое место должна выходить практика. Даже при сдаче экзамена TOEFL мне не потребовалось заново вызубривать все эти несчастные времена, тк в первую очередь от вас требуется навыки письма на заданную тему, навыки понимания текста/речи и разговора. Но без фанатизма. В конце концов, язык - это просто инструмент.

Именно поэтому имеет смысл читать современную английскую литературу, смотреть фильмы без перевода (или с субтитрами) - это куда актуальнее...
👍22😁2🔥1
В этом уроке мы обсудим такой паттерн, как upgradeable contracts и поговорим о контрактах proxy: как это работает и зачем это нужно. Посмотрим, чем отличается Transparent и UUPS, напишем свой улучшаемый контракт NFT (в обоих вариантах) с помощью OpenZeppelin, развернём его в сеть, протестируем, а затем попробуем "улучшить". https://www.youtube.com/watch?v=cz0BC2HSFA8
🔥23👍61
Перечитываю сейчас кое-какие рассказы Тэффи, в частности, "Антей". И прямо вспомнилось, как в Беларуси шутили гостеприимные хозяева, что, дескать, если говорят "давайте пить чай", то это значит, что на стол выставляется всё начиная от сладостей и до горячих блюд, а вся процедура растягивается часа на два. Впрочем, время от времени так оно и было - в одно своё пребывание я, кажется, не был трезвым и голодным вообще ни одну минуту (за целую неделю). Когда ещё доведётся побывать теперь, проведать друзей... https://ru.wikisource.org/wiki/%D0%90%D0%BD%D1%82%D0%B5%D0%B9_(%D0%A2%D1%8D%D1%84%D1%84%D0%B8)
👍8
В этом уроке по Hotwire мы разберём Turbo Stream: функционал, который позволяет выполнять обновления в реальном времени для всех пользователей, просматривающих страницу (он работает на основе Action Cable и Web Socket). Это удобно в тех случаях, когда, например, вы пишите real-time чат.

Мы узнаем, как работать с Turbo Stream, как рассылать обновления в фоновой задаче, как создавать сервисные объекты и как подключать Stimulus к добавляемым в реальном времени объектам. https://www.youtube.com/watch?v=5hfmbJQ9Gb0
👍17🔥9
*Этот пост-фантазия написан с точки зрения мужчины. Любые совпадения являются случайными.*

А вы чувствуете эти ритмы? Вам ещё 14-15-16 лет, вы отпросились из дома и идёте к друзьям на всю ночь. Вы сказали, что выпьете максимум бокал вина, но всем ясно, что это не так - родители тоже не дураки...

Впрочем, бывает и иначе. Когда-то, в совсем другой жизни много лет назад я просто сбежал с "последнего звонка", тк не видел в нём ничего интересного... Утащил бутылку ликёра и мы устроили пир на двоих с моим другом Арсом, который тогда уже ушёл в другую школу (при МГУ). Да-да, тот самый Арс, который теперь помогает мне при записи видео о Ruby. Сколько воды утекло.

А потом тот самый последний "выпускной" вечер в каком-то неизвестном науке ресторане. Подходит "она" - та девушка, которую ты добивался целых полгода (год?). Она говорит: "Спасибо, что помогал мне с уроками". Целует в щёку... Ну, а чего ты ещё ожидал? Был и другой шанс, но ты его упустил. С другой стороны, был ли он тебе нужен?.. У тебя есть другая, которая тебя ждёт... Жаль лишь, что вы видитесь так редко, ведь вы познакомились в некоей "сети".

Твой приятель с загадочным именем Ильнар уже утащил пару бутылок шампанского, так что вы можете выпить в узкой компании проверенных джентльменов. Видимо, это последний раз. Конечно, это последний раз - все это понимают, только ни у кого не хватает силы воли это признать.

Вот за главными "ботаниками", с которыми ты так хорошо дружил, уже приходят родители. Ты говоришь: "Увидимся". Ты понимаешь, что в этой жизни ты больше не увидишь их никогда. Разве что мельком, спустя много лет ты встретишь одного из братьев-"ботаников". Ты сначала даже не поймёшь, а он пройдёт мимо тебя - какой-то облысевший, серый, мрачный, всё так же волочащий ногу. А ведь это был в своём роде гений математики... Тебя он не узнает, либо сделает вид, что не узнает.
https://www.youtube.com/watch?v=hbbbark8k7w
🔥7😢32🤔2👍1
Некоторые читатели спрашивали, как написан сайт "Гарри и вагон косяков", поэтому я решил сделать код публичным - почему бы и нет. Кстати, желающие могут поучаствовать в добавлении "косяков" 😄 https://github.com/bodrovis/harry
👍7🔥4
Нейросеть сгенерировала музыкальный ряд для одной известной песни. Ну в общем-то вышло интересно https://www.youtube.com/watch?v=2RjqsrpJcXk
🔥5👍1
В этом уроке по Ruby 3 мы обсудим, что такое массивы (arrays), зачем они нужны и как с ними работать. Научимся читать из них данные, изменять, преобразовывать строки в массивы и обратно. Обсудим, что такое nil, а также как работать с циклами .each. В качестве небольшой практики напишем программу, которая выводит случайные шутки про Чака Норриса. В общем, будет интересно. https://www.youtube.com/watch?v=OC5hndVt_1k
🔥19👍3
Не поверите - ещё одно видео сегодня. Это нетипичный ролик для моего канала, он на английском языке и представляет собой запись онлайн-конференции, где меня пригласили выступить.

Это видео будет полезно разработчикам, которые используют систему управления переводами Lokalise и хотят узнать, как можно автоматизировать некоторые задачи: в частности, слушать события (загрузка файлов, завершение заказов), реагировать на них и автоматически создать PR на GitHub со всеми новыми изменениями в файлах с переводами https://www.youtube.com/watch?v=AQ77eSl6kQQ
🔥10
Спокойной ночи
🎉13🔥5😁3