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

На данный момент у меня нет возможности отвечать на вопросы в духе "как сделать такой смарт-контракт, чтобы он делал 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
По просьбам зрителей, предлагаю решить следующую задачу на языке Solidity.

Сделать контракт-аукцион (по принципу "английский аукцион", то есть когда нужно делать всё более и более высокие ставки, перебивая другие). При развёртывании контракта указываем название товара, изначальную цену и адрес продавца (кому потом деньги начислять). Продавец может быть владельцем контракта.

Затем сделать функцию "ставка", которая принимает определённую сумму денег от потенциального покупателя. Ставка должна быть больше текущей цены, тк суть аукциона в том, чтобы "перебить" ставку другого. Аукцион может закончиться либо по какому-то условию, либо если продавец вызвал функцию "закончить", либо по какому-то ещё принципу. В этот момент больше ставок уже делать нельзя, а продавец получает свои деньги. Нужно подумать также о том, что люди, чьи ставки "перебили", должны иметь возможность забрать деньги обратно.

В идеале, написать для этого контракта тесты. В одном из следующих уроков, возможно, посмотрим, как это сделать.
👍8🔥1
В общем, не могу не поделиться забавной вещью, так как я считаю, что с самим собой нужно быть честным. В общем, многие знают меня просто как bodrovis, и я алкоголик. Ой, пардон, не из того сценария реплика. 😃

Так вот, я произвёл инвентаризацию старых своих курсов и выяснил, что мои друзья-индусы, с которыми раньше приходилось много работать, уже много лет как выложили мой курс по Ruby на YT. На данный момент он не очень актуален, так как записывался лет пять назад, а то и больше, но суть не в этом. Я думаю, что некоторые студенты хотели бы меня убить на месте за то, что я сделал 😂🤪

То есть информация-то корректная и в общем фактологических ошибок нет, но post-production - это наше всё. Особенно удивляет то, что люди благодарят за материал. Самого себя тогдашнего я бы не взял на работу преподавателем точно - максимум каким-нибудь младшим заместителем вспомогательного ассистента. Впрочем, я пять лет назад не взял бы на работу себя же версии 10 лет назад, причём 10 лет назад я вёл только очные курсы и, видимо, студенты были очень добрые, так как иначе просто избили бы в подворотне.

Вероятно, это и значит "расти над собой" - иногда очень важно взять бутылочку-другую сидра и поглядеть, чем ты занимался раньше и как был плох (ну, и подумать о том, как плох сейчас, конечно). А если серьёзно, то не бойтесь экспериментировать, друзья, даже если вам кажется, что идеально не получится. Я вот пытаюсь уже долгие годы - пока идеала не видно. Но зато весело и есть возможность общаться со множеством замечательных людей. А не для этого ли мы живём? 😄
13👍3
Ещё задача по Solidity.

"Голландский аукцион". Как и в английском, при создании контракта указываем товар и МАКСИМАЛЬНУЮ цену. Каждую секунду цена должна падать, например, на 1 wei (или любое другое значение). Сделать функцию, которая возвращает актуальную цену на данный момент. А также функцию, через которую можно "купить" товар по ТЕКУЩЕЙ цене.

Учесть, что пока идёт транзакция, то цена за эти 1-2 секунды ещё упадёт, поэтому разницу нужно вернуть покупателю на аккаунт. Как только вызвана функция "купить", аукцион должен закончиться, а продавец - получить деньги.
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Короткая объяснялка по просьбам трудящихся о выводе денег с контракта и комиссиях, которые мы платим за это
👍8
https://thegraph.com/blog/historical-ethereum-data-access - тоже интересная штука. Для многих старых данных будут хранится скоро только корни древа Меркла, тогда как для более свежих хранится всё. Но, похоже, на лайт-версиях везде хранятся только корни
👍4
По традиции, немного музыки на сегодня. Я взял небольшой "отпуск" по записи видео, сейчас больше сконцентрировался на подготовке нового трека - искал сессионщиков, начал готовить основу проекта в ableton и записывать бас. Вероятно, в течение 2-3 недель что-нибудь сумеем выпустить. Это для души, конечно, но всё же приятно заняться чем-то, не связанным с миром IT.

А тем временем война идёт, и конца ей не видно. Где бы вы сейчас не находились, я надеюсь, что вы живы и здоровы. Скоро увидимся. https://www.youtube.com/watch?v=aAi-adbpaek
👍9
Простое объяснение с точки зрения теории чисел довольно известного трюка Копперфильда про убийство в Восточном экспрессе (после этого трюка он вообще заставил экспресс исчезнуть). Собственно, там действительно нет ничего особенного сложного, но в целом забавно. А отдельно можно попробовать написать программу, которая работает по правилам этого трюка (в частности, что можно ходить только вверх-вниз, но не по диагонали) https://web.northeastern.edu/seigen/11Magic/Teaching/David%20Copperfields%20Orient%20Express%20Card%20Trick.pdf
👍32
Друзья, рад сообщить, что мы приближаемся к отметке 3000 подписчиков и по этому случаю я думаю сделать первый стрим!

На стриме поговорим о языке Solidity, попрактикуемся в написании смарт-контрактов и тестов. Можно будет задавать вопросы, предлагать дополнительные темы для обсуждения. Также я планирую все собранные пожертвования направить на благотворительность. Ориентировочное начало стрима 19:00 UTC+2 в следующую среду (30.03.2022).
👍31
Думаю, этот трек поймёт любой, кто родился или по крайней мере жил в одной бывших республик СССР до начала нулевых (хотя и после тоже) - собственно, я до сих пор живу в одной из них.

Не забывайте, в среду будет стрим, можно будет поговорить о разных вещах, не обязательно связанных с разработкой. Готовьте вопросы. Есть всего три темы, о которых не говорят "тьюторы" (понятие такое есть, tutors, то есть преподаватель, инструктор): политика, гендерные вопросы, религия. По остальному - пожалуйста, буду рад пообщаться, если позволяет компетенция.

Жаль, конечно, что так и не удалось пригласить гостей в "студию", как это планировалось изначально, но теперь это вообще проблематично - кто живёт в других европейских странах со своими задачами и проблемам (в частности, очень хотелось бы пообщаться с маэстро @kutanov, но кто знает, когда теперь свидимся), кто оказался замешан в военном конфликте или фактически стал невыездным (привет одному российскому учёному, который теперь находится где-то в районе Камчатки). Но зато у нас будет замечательный редактор(-ка) трансляции и наш главный дизайнер.

Надеюсь, что мы хотя бы немного сможем отвлечься и спрятаться в наш мир розовых единорогов и абстрактных понятий. С одной стороны, глупо, а с другой - такова жизнь. К примеру, как бы странно это не звучало, прямо сейчас проходит церемония "Оскар - 2022" (читаю текстовую трансляцию, болею за Вильнёва и, конечно, Кэмбербэтча). Где-то там люди живут, и ещё как живут.

А где-то продолжаются военные действия, а где-то проходят митинги за мир у российского посольства. Где-то молодые люди с флагами "жовто-блакитный" кричат "brivibu Ukrainai". Они не знают ни украинского, ни русского, но они хотят высказать свою позицию, и это правильно, ведь лучше иметь нонконформистскую позицию, чем не иметь никакую. Хотя, здесь эта позиция явно превалирует. Впрочем, русскоговорящих никто не трогает, а уж до безродных космополитов типа меня вообще никому нет никакого дела. В общем, на улицах довольно весело, хотя я вижу мало весёлого.

Когда-то я ездил в Украину почти каждый год: примерно с 1996 по 2006. Когда теперь доведётся? Верю ли я вообще в мир без войны? Если честно, то не особенно, во всяком случае, не на данном этапе. По крайней мере, "чемоданное" настроение не покидает меня долгие годы. Сорваться с места с минимумом вещей - видимо, эта мысль оставит меня ещё не скоро. Так уже приходилось делать и так, к сожалению, ещё, возможно, придётся поступить.

Хочется верить, что утопия, о которой мечтал Ефремов в той или иной степени реализуется. Когда-нибудь. А пока вовсе не мы прилетаем на высокотехнологичных космических кораблях на Торманс. Увы, Торманс прямо здесь, но только маловероятно, что к нам придут спасители в виде решительных мужчин и прекрасных женщин. "Земля рождена в Час Быка". https://www.youtube.com/watch?v=UmzlvLj6JRE
👍4