DEV: Рубиновые тона – Telegram
DEV: Рубиновые тона
3.21K subscribers
144 photos
2 videos
8 files
981 links
Анонсы новых видео о программировании (Ruby/Rails, Solidity/Ethereum, Python, JS и не только), практические советы, обзор полезных инструментов и новости из мира IT
Download Telegram
Друзья, у кого-то может возникнуть вопрос, зачем в Ruby и особенно в Rails стали активно использовать загрузчик Zeitwerk? Ответ простой, вот пример из одной моей библиотеки. Было:

require 'rating_chgk_v2/version'
require 'rating_chgk_v2/json_handler'
require 'rating_chgk_v2/connection'
require 'rating_chgk_v2/request'
require 'rating_chgk_v2/error'

require 'rating_chgk_v2/utils/string_utils'

require 'rating_chgk_v2/concerns/paginated'

require 'rating_chgk_v2/endpoints/base_endpoint'
require 'rating_chgk_v2/endpoints/players_endpoint'
require 'rating_chgk_v2/endpoints/countries_endpoint'
require 'rating_chgk_v2/endpoints/regions_endpoint'
require 'rating_chgk_v2/endpoints/authentication_token_endpoint'
require 'rating_chgk_v2/endpoints/seasons_endpoint'
require 'rating_chgk_v2/endpoints/releases_endpoint'
require 'rating_chgk_v2/endpoints/teams_endpoint'
require 'rating_chgk_v2/endpoints/tournament_flags_endpoint'
require 'rating_chgk_v2/endpoints/tournament_synch_appeals_endpoint'
require 'rating_chgk_v2/endpoints/tournament_synch_controversials_endpoint'
require 'rating_chgk_v2/endpoints/tournament_synch_requests_endpoint'
require 'rating_chgk_v2/endpoints/tournament_types_endpoint'

require 'rating_chgk_v2/models/base_model'
require 'rating_chgk_v2/models/player_model'
require 'rating_chgk_v2/models/player_season_model'
require 'rating_chgk_v2/models/player_tournament_model'
require 'rating_chgk_v2/models/country_model'
require 'rating_chgk_v2/models/region_model'
require 'rating_chgk_v2/models/authentication_token_model'
require 'rating_chgk_v2/models/season_model'
require 'rating_chgk_v2/models/release_model'
require 'rating_chgk_v2/models/team_model'
require 'rating_chgk_v2/models/team_tournament_model'
require 'rating_chgk_v2/models/tournament_flag_model'
require 'rating_chgk_v2/models/tournament_synch_appeal_model'
require 'rating_chgk_v2/models/tournament_synch_controversial_model'
require 'rating_chgk_v2/models/tournament_synch_request_model'
require 'rating_chgk_v2/models/tournament_type_model'

require 'rating_chgk_v2/collections/base_collection'
require 'rating_chgk_v2/collections/players_collection'
require 'rating_chgk_v2/collections/player_seasons_collection'
require 'rating_chgk_v2/collections/player_tournaments_collection'
require 'rating_chgk_v2/collections/countries_collection'
require 'rating_chgk_v2/collections/regions_collection'
require 'rating_chgk_v2/collections/seasons_collection'
require 'rating_chgk_v2/collections/releases_collection'
require 'rating_chgk_v2/collections/teams_collection'
require 'rating_chgk_v2/collections/team_tournaments_collection'
require 'rating_chgk_v2/collections/tournament_flags_collection'
require 'rating_chgk_v2/collections/tournament_types_collection'

require 'rating_chgk_v2/client'


Стало:

require "zeitwerk"
loader = Zeitwerk::Loader.for_gem
loader.setup
👍11👌1
Друзья, я уже неоднократно говорил, что даже в самые тяжёлые моменты жизни нужно всё-таки не опускать руки и стараться продолжать соблюдать некие "ритуалы", которые показывают вам самим, что вы не беспомощны. В частности, я продолжаю записывать для вас уроки, хотя сейчас, например, показатели той же монетизации сильно упали (ну, к примеру просмотры зрителей из РФ для меня не учитываются). Но, я в общем-то никогда не делал это ради денег. На мой взгляд, преподаватель - это ещё и призвание (хотя преподаватель в университете имеет право рассчитывать на хорошую зарплату, как и другие профессионалы), поэтому я остаюсь на своём посту. При этом я не профессиональный психолог и не могу давать вам какие-то советы. Я понимаю, что сейчас тяжело, что сложно отвлечься от происходящего, а у многих людей сейчас просто невыносимая ситуация. Насколько это возможно, мы в нашей компании Lokalise поддерживаем пострадавших, помогаем устроиться беженцам из разных стран и отправили довольно большое пожертвование (не буду кидать на всё это ссылки, суть здесь совершенно не в пиаре).

Сейчас я просто хочу поделиться неплохим видео по теме, в котором профессионал рассказывает о том, что делать в случае тревоги. Это не реклама. Вы можете сказать, что всяких евреев слушать вообще нечего (слышал не раз такие высказывания насчёт Шихман), но должен отметить, что и я тоже еврей 😁 Пожалуйста, не нужно стесняться своих эмоций, но и не теряйте самообладания. Я очень надеюсь, что все вы находитесь в добром здравии и в любом случае для меня большая честь работать со всеми вами. https://www.youtube.com/watch?v=IigcYMPGvOo
👍21
(в ответ на ваш комментарий, Анастасия) Увы. Я всё-таки как-нибудь напишу пост на эту тему, но скажем так: за свою жизнь мне довелось пережить несколько страхов. Самый первый страх пришёл в глубоком детстве, когда мой дед (ну, один из дедов) был вынужден постоянно ходить в усиления, потому что в Москве постоянно происходили беспорядки ввиду распада СССР. Милиция просто пыталась хоть как-то держать происходящее под контролем. За кого они были? Я думаю, что в большей степени ни за кого.

Второй же страх пришёл, когда по всем телеканалам показывали одну и ту же надпись "Влад Листьев убит". Это было страшно, особенно в моём возрасте. Влад был сильным журналистом и любимцем аудитории и мы не могли поверить, что подобное может произойти. Для ребёнка это показывало простую вещь: мы смертны.

Примерно в это же время началась первая война в Чечне и мы боялись, что заберут отчима, хотя он уже служил в милиции. Фамилия Бодров - именно от него (я всегда буду благодарен за то, что он сделал для меня), хотя на самом деле мы Круковские. В итоге он тоже пропадал на бесконечных усилениях, хотя вообще был инженером, занимался охранными системами. А сколько ещё таких драм происходило в других семьях?..

Потом начали взрывать дома - о том, кто это делал на самом деле, мы узнаем ещё очень не скоро. Мы жили в постоянном страхе, что рано или поздно взорвут и нас.

Потом вторая чеченская война, к моменту наступления которой было уже как-то не очень страшно. Привыкли? Как к такому можно привыкнуть? Но видимо можно. Не знаю. Захваты заложников, постоянные террористические акты, взрывы.

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

Война в Грузии. Лето, я живу у своей девушки. Мы смотрим на это с каким-то странным спокойствием. Она старше меня на 10 с лишним лет и прекрасно помнит ещё времена СССР и агонию режима. И теперь опять танки, но в другой стране. Опять - зачем?

2014 год, первое нападение на Украину. Никто не понимает смысла происходящего. Я прихожу в себя от дикого нервного срыва, после которого думал, что вообще не выживу или стану овощем. Он аукается до сих пор.

Ну, а теперь вторая война на всё той же Украине. Толпы людей на улицах Риги. Путина перед российским посольством посадили в клетку. Ну, только Путин игрушечный. Однако при этом повсюду слышна русская речь, а местный бард поёт песню именно на русском. Я со своей еврейской рожей, в странных очках, с длинными волосами и женой-азиаткой смотрюсь на улицах города немного странно. Но люди верят в лучшее. А вот что будет дальше... Загадывать не хочется. Рано или поздно я напишу об этом. Когда-нибудь. Но в первую очередь мне хотелось бы, чтобы все мы это пережили. Войну развязали люди в дорогих пиджаках, им и отвечать. А отдельных военных преступников, хочется верить, будут судить. Рано или поздно.
👍35👎1🤯1
Ну, что друзья, традиционно немного музыки на выходных. https://www.youtube.com/watch?v=PBa1iM29mGI Как у кого дела? Надеюсь, держитесь? Кстати, завтра будет турнир по спортивному "что? где? когда?" в поддержку беженцев. https://docs.google.com/forms/d/e/1FAIpQLScxpXaNARDESedzCj6Fn5AqxM_nRkxRKCnSMeQHo6t8BYEn9Q/viewform
Не унывайте. 🙌
👍4🔥2
Ладно, ещё немного повеселю вас сегодня.

Ссылка, правда, только на ВК, в котором меня почти никогда и не было, но друзья туда всё грузили, так что увы. В общем, года четыре назад мы увлекались таким явлением, как фотокомиксы - наверное, в каком-то смысле, мы их и изобрели (или переизобрели?). Я писал для них сценарий, в итоге вышло штук пять миниатюр-абсурдов, иногда по известным темам (ну, хотя бы про Алису-путешественницу во времени), иногда просто по случайным фото, которые я переосмыслил. Ну, и получился большой проект "Легенды Оссиании" - это фэнтези, мы снимали его года 2-3, ездили по разным локациям, получилось красиво. Увы, доснять его так и не удалось, но в целом работа получилась сравнительно неплохая. В общем все материалы тут. А при желании могу поделиться опытом съёмок, может, кому-нибудь будет полезно-интересно, тк научились мы многому https://vk.com/ossiania_legends
👍7
Ещё немного мыслей по следам дискуссии в чате. Кстати, я смотрю, в чат ещё зашли не все, а у нас довольно весело: https://news.1rj.ru/str/joinchat/MxYT6-01eeA1NTYy Заходите и зовите друзей, особенно, если учитывать, что YT в некоторых странах почти наверняка заблокируют.

Так вот, один наш преподаватель говорил: "в интернете мозгов нет". Это интересное мнение в том плане, что действительно очень сложные и специфичные темы найти просто нереально, тк ими занимается слишком малое количество людей. Но я должен заметить, что за прошедшие годы (страшно сказать - уже десятилетие с лишим) ситуация поменялась. К счастью, мы понимаем, что интернет - та самая технология, которую придумали учёные, работающие на армию США, - нас объединяет, а не разъединяет. И я по мере своих возможностей тоже стараюсь наполнять его полезным контентом.

Но при этом я бы хотел заметить и другую важную вещь. Вы знаете, что такое "поймать удачу за хвост"? Ну, такое выражение (надеюсь, я процитировал его верно). Так вот, обычно удача ловилась для меня сама - и ловится сейчас. Но в какой-то момент я понял, что поступил довольно глупо. Много лет назад я был аспирантом на одной кафедре и имел хорошую возможность защитить кандидатскую, но так и не нашёл руководителя. То есть мне назначили хорошего специалиста, но вот беда - он занимался совершенно другими вещами. Ну, я и плюнул на это дело и ушёл в коммерцию. Плохо ли это было? Нет, но можно было попробовать совмещать. Прошло полгода и я внезапно встретил в институте того самого препода, который говорил про мозги. Он удивился - дескать, чего это ты делаешь в институте? Я пояснил, что преподаю, но из аспирантуры думаю уходить, так как нет нормального руководителя. Он страшно удивился и спросил: "А чего ты ко мне-то не обратился?". И когда я задал себе такой же вопрос, то почувствовал себя полным кретином. Впрочем, менять что-либо было поздно, так как жизнь сильно изменилась.

Примерно тогда же я имел счастье почувствовать себя кретином ещё раз. Мне довелось поработать с доктором наук, который создал свой язык программирования ДРАКОН - я помогал писать ему статьи на Wikipedia. И потом несколько человек меня спросили: так чего ты не попросил его стать твои научным руководителем? А я опять посмотрел на себя в зеркало как дурак и спросил: "а почему?". А потому что было неловко. Вроде бы, у человека много дел, как-то стыдно. А потом выясняется, что такие кондовые преподы как раз и мечтают о том, чтобы у них появились толковые ученики.

Как это было у Ольги Арефьевой - скорее пой. Не надо бояться. Твоя дорога лежит перед тобой, если ты можешь её разглядеть. Как совсем недавно сказал мне один из зрителей (я очень надеюсь, что он жив и здоров) "надо пробовать, так как мы живём один раз". Это чрезвычайно банально, но всё же очень правильно. Я иногда об этом забываю.
👍10
Друзья, вопросы по спонсорству и донатам продолжают поступать, поэтому обрисую ситуацию ещё раз, хотя уже упоминал это в сегодняшнем видео.

Primo. Судя по всему, пользователям из РФ отключили возможность становиться спонсорами любых каналов, во всяком случае, если они зарегистрированы в других странах. Впрочем, точно не скажу.

Secundo. Кроме того, похоже, что просмотры зрителей из РФ не учитываются в монетизации контента. Правда, если подключить VPN, то ваша страна для YT как бы "поменяется".

Tertio. Пока самым надёжным вариантом для пожертвований, как мне кажется, является криптовалюта. Номер кошелька Ethereum указан под каждым видео: 0x719C2d2bcC155c85190f20E1Cc3710F90FAFDa16 Также есть DonationAlerts - насколько я слышал краем уха, эта компания принадлежит mail.ru Правда, у меня могут быть проблемы с выводом, но что-нибудь придумаем, да и вообще это маловероятно. https://www.donationalerts.com/r/bodrovis Впрочем, я прекрасно понимаю, что многим сейчас не до донатов (хотя я подчёркиваю ещё раз, что пишу этот пост по следам многочисленных вопросов зрителей). В первую очередь, важны ваши лайки, комментарии и промотирование роликов в социальных сетях. В любом случае, я благодарен, что вы вообще подняли эту тему - это о многом говорит.

Quarto. Что делать, если в некоторых странах YT забанят? Использовать VPN - это пока наиболее простой ответ. Сервисов полно, найти их несложно. Я буду продолжать постить видео на YT, и, возможно, в Telegram, но также есть мысль о партнёрстве со сторонней платформой. Может быть, со школой, где я преподаю, может, с кем-то ещё (у нас в Lokalise есть своя академия). В этом случае, правда, почти наверняка это не будет бесплатно, т.к. всё-таки такие компании благотворительностью не занимаются. Но, посмотрим.

Quinto. Планы остаются прежними: рассказывать вам о современных технологиях. В приоритете Ethereum, тк эта тема очень многих заинтересовала, Ruby/Rails, автотесты. Хочется всё-таки затронуть Elixir, но тут теперь уже посмотрим, как оно будет. Пока скажу честно, что просмотры сильно упали, но я остаюсь на своём посту.

Sexto. Берегите себя и верьте в лучшее, несмотря ни на что. Любой психолог скажет, что в тяжёлых ситуациях главное - не впадать в апатию и не бросать привычных дел, продолжать соблюдать привычные "ритуалы". Показать хотя бы самому себе, что вы до какой-то степени контролируете происходящее, пусть и в пределах вашей квартиры. Боюсь, что лучшего совета у меня сейчас нет. Как говорил мудрый Гэндальф, каждый, кто рождается в такое тяжёлое время, задаётся вопросом: "Почему это выпало на мою долю?". Но мы не вольны выбирать период, когда рождаемся. Зато мы вольны выбирать то, как распорядиться тем временем, которое нам отмерено.

Скоро увидимся.

https://www.youtube.com/watch?v=EYT7QpaTOsc&list=PL93DED80D27B6931A
👏7👍53
Друзья, я долгое время не публиковал руководство для задающих вопросы (оно в разных версиях публиковалось в моих более старых проектах), но, кажется, это время пришло.

На данный момент у меня нет возможности отвечать на вопросы в духе "как сделать такой смарт-контракт, чтобы он делал X, Y, Z?" и "как написать приложение, чтобы оно делало A, B, C?". Особенно в комментариях на YouTube - для обсуждения у нас есть чат в Telegram.

Поймите правильно, я написал/записал сотни статей и видео, а также создал десятки курсов и книг. Что было бы, если бы я отвечал на каждый вопрос по этим материалам? Мне бы пришлось себя клонировать, причём неоднократно. А от такого количества самого себя мне стало бы плохо.

При этом я рад конкретным вопросам по теме: просьбам пояснить какой-то непонятый момент, актуальным предложениям, замечаниям или вопросам по каким-то неработающим кускам кода. Скажу больше, ваши предложения - это действительно *очень* важно. Серьёзно, без этого бы просто не появились некоторые видео, поэтому совершенно ответственно говорю, что ваша обратная связь невероятно важна, ведь я работаю для вас. Однако если у вас что-то не работает, то нужно сделать, так сказать, "домашнюю работу", то есть по крайней мере погуглить возникающую ошибку. Если ни одно решение с первой страницы гугла вам явно не подходит, то смело обращайтесь, по мере возможности попробуем разобраться. И, само собой, если есть желание сообщить об ошибке, то нужно по крайней мере пояснить, что именно не работает и какие появляются симптомы. В идеале нужно показать релевантный программный код, иначе и говорить будет не о чем.

Пожалуйста, не нужно отправлять мне вопросы на почту, в linkedin (где я вообще почти ничего не делаю) или ещё какой-нибудь discord (которого формально у меня нет). Для этого, опять же, есть чат Telegram. Я бы очень хотел помочь всем на свете, но, увы, это просто невозможно. Именно поэтому мы и организовали это небольшое сообщество, где люди со схожими интересами могут обсудить актуальные проблемы. Я верю в силу хайвмайнда, и open source подтверждает мою веру каждый день.
👍151🔥1
Друзья, и последнее на сегодня. Я вообще хотел написать это ещё неделю назад, но возникли проблемы с YT - я там сделал глупость довольно большую при регистрации.

Так вот: все деньги, которые я получу в качестве пожертвований (или от спонсорства, или от монетизации) я направлю в фонды помощи пострадавшим от войны. Проблема, правда, в том, что из-за юридических проблем у меня возникли проблемы с выводом средств, а YT вообще позволяет выводить только от 100 долларов (за рекламу каждый день я получаю где-то 0.5 доллара или 1 доллар, пока не больше). Но как только средства будут выведены, обязуюсь перечислить в один из фондов.
👍124
Музыка на сон грядущий от нашей группы. Это из недавнего, скоро есть мысль выпустить что-нибудь ещё. Спокойной ночи всем. https://www.youtube.com/watch?v=EwKNZ0dXC9E
1
Друзья, я настроил профили на Boosty (в первую очередь для тех, кто находится в РФ) https://boosty.to/bodrovis и Patreon https://www.patreon.com/bodrovis Это альтернативный вариант поддержать канал для тех, у кого перестало работать спонсорство. Ещё раз, огромное спасибо всем за поддержку. 🙌
🔥8
Предположим, вам нужно сделать прототип страницы и разместить фото неких абстрактных персон. Откуда их взять? Искать в интернете? Ставить фото друзей? Делать заглушки? Использовать рисованные "аватары"? Ну, а можно использовать https://thispersondoesnotexist.com/ - здесь публикуются фото несуществующих людей, которые генерирует нейросеть на основе реальных фото. Аналогично, котики https://thiscatdoesnotexist.com/
6
В этом уроке мы узнаем, что такое древо Меркла (древо хэшей, Merkle tree) и реализуем его на языке Solidity. Также узнаем, как в Solidity генерировать хэши с помощью keccak256 и кодировать данные через encodePacked. Помимо этого, поработаем с циклами for и while. https://www.youtube.com/watch?v=aYKt-usrPw8
👍143🤯1
Очень странную вещь заметил в Metamask. Если импортировать свой кошелёк на другое устройство и вводить ключевую фразу, то некоторые аккаунты могут не добавиться автоматически. Это происходит, например, если у вас было изначально несколько аккаунтов и на некоторых из них был нулевой баланс. Что нужно сделать? Не поверите, нужно создавать новые аккаунты до тех пор, пока не появится нужный вам. Чрезвычайно удобно, конечно. https://metamask.zendesk.com/hc/en-us/articles/360015489271-How-to-add-missing-accounts-after-restoring-with-Secret-Recovery-Phrase
Сегодня туман
👍16