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

Ссылка, правда, только на ВК, в котором меня почти никогда и не было, но друзья туда всё грузили, так что увы. В общем, года четыре назад мы увлекались таким явлением, как фотокомиксы - наверное, в каком-то смысле, мы их и изобрели (или переизобрели?). Я писал для них сценарий, в итоге вышло штук пять миниатюр-абсурдов, иногда по известным темам (ну, хотя бы про Алису-путешественницу во времени), иногда просто по случайным фото, которые я переосмыслил. Ну, и получился большой проект "Легенды Оссиании" - это фэнтези, мы снимали его года 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
По просьбам зрителей, предлагаю решить следующую задачу на языке 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