DEV: Рубиновые тона – Telegram
DEV: Рубиновые тона
3.23K subscribers
143 photos
2 videos
8 files
978 links
Анонсы новых видео о программировании (Ruby/Rails, Solidity/Ethereum, Python, JS и не только), практические советы, обзор полезных инструментов и новости из мира IT
Download Telegram
В ближайших 2-3 уроках более подробно поговорим о написанном выше, посмотрим, как работать со слотами storage, с памятью и где хранятся локальные переменные типа value. Это полезно хотя бы для того, чтобы понимать как контракты работают.

Ну, а на сегодня немного музыки. Всем мира https://www.youtube.com/watch?v=6ey4yAgLZlw
👍12🔥4
Обычно я не публикую ничего по педагогической теме (хотя как инструктор, я время от времени почитываю соответствующие статьи), но тут наткнулся на материал один и потом глянул позиции комментаторов под этим материалом. Конечно, от такого оторопь берёт, если честно. "Учителю нужно было просто пойти к директору, учеников бы в случае чего выгнали из школы - да и всё".

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

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

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

Особенно забавно получилось потом, так как пересдачу согласился принять мой коллега и бывший начальник, параллельно с экзаменом у другой группы. Я остался - просто ради интереса. Минут через 20 я наблюдаю картину, как студентка, сидя прямо передо мной буквально в 2 метрах, преспокойно достаёт конспекты и оттуда списывает. У меня чуть челюсть не отвалилась. Ну, коллега это тоже заметил и выпроводил восвояси. Этого манёвра я не могу понять до сих, если честно.

Да много чего было, что сказать. Но такие рычаги давления есть в институтах, откуда вылететь всё-таки можно, хотя и со скрипом. А уж из школ никого выгонять не будут, это практически исключено.

https://mel.fm/vospitaniye/psikhologiya/5812790-teacher_bullying#comments
👍3👏1😢1
Сегодня интересный вопрос разбирали в школе программирования: как именно размещаются по слотам переменные в случае наследования? Ответить на этот вопрос вам поможет вот такой пример кода:

//SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

contract Parent1 {
uint public parentInt1 = 45;
uint public parentInt2 = 55;

}


contract Parent2 is Parent1 {
uint public parentInt3 = 65;
uint public parentInt4 = 75;

}

contract Parent4 {
uint public parentInt5 = 100;
uint public parentInt6 = 101;

}

contract Parent3 is Parent4 {
uint public parentInt7 = 102;
uint public parentInt8 = 103;

}

contract Demo is Parent2, Parent3 {
uint public demoInt = 76;


function readSlot(uint _n) external view returns (uint data) {
assembly {
data := sload(_n)
}
}
}


Просто указывайте номера слотов и смотрите, что получается.
👍4
GitHub продолжает вводить ачивки https://github.blog/2022-06-09-introducing-achievements-recognizing-the-many-stages-of-a-developers-coding-journey/ Правда они не сообщают, какие именно: дескать, открывайте сами. У меня парочка появилась, но, честно говоря, они какие-то дурацкие 😂
Небольшая статейка для тех, кто использует Lokalise API - в ней я показываю разные примеры на TS, Ruby, Python https://lokalise.com/blog/lokalise-apiv2-in-practice/
👍5
Yarn писал капитан, видимо
😁3👍1
В этом уроке мы обсудим, как использовать популярное решение VCR для тестирования сторонних сервисов (API и прочего). VCR записывает запрос и ответ от сервера в виде специальных кассет, после чего "проигрывает" эти кассеты в последующих тестах. https://www.youtube.com/watch?v=uc5f7vxUyHA
🔥152🎉2👍1
Все любят котиков, а уж котиков, которые показывают трюки - тем более. Так что сегодня наша кошка покажет пару фокусов https://www.youtube.com/watch?v=f6R1kfqEzkg 😄
4👍1
Сейчас заговорили в чате о ситуации в мире и прочем, поэтому в тему придётся эта песня шведов Sabaton. Война - это самое страшное, что может произойти. https://www.youtube.com/watch?v=oXnnbjC7Fok
👍2👎1
Хотел рассказать вам о забавном и довольно необычном случае, который случился со мной в прошлой жизни лет N или даже M назад (лет 10 назад или около того). Мне он показался интересным тем, как сложились события.

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

"Дружище", - сообщил он, - "мне кажется, что несколько мышей сбежали из клетки". Так и вышло. Быстрый осмотр с помощью веб-камеры показал, что из клетки смылось по крайней мере 4 африканских мыши, которые также называются мастомисы. Это такие здоровенные мыши, которые живут в районе Камеруна, кушают самое обычное зерно, очень любят людей и обожают путешествовать по квартире, если есть такая возможность. Серьёзно - они ужасно любопытные, но легко становятся ручными.

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

В этот момент я понял, что надо срочно ехать обратно и разбираться с данной проблемой. Нам пришлось сажать нашу подругу на машину до её родного города и договариваться, чтобы её встретили, после чего брать втридорога обратные билеты в купе (да, это были голодные времена, когда купе казалось недоступной роскошью).

Войдя в поезд, мы обнаружили, что в купе совсем пусто - неужели, с нами никто не едет? Я уселся читать книгу, @ailura24 (бессменный дизайнер нашего канала) уснула. Внезапно прямо перед самым отправлением в купе вошёл или даже ворвался (как и в мою жизнь) довольно необычный персонаж: эдакий Зак Эфрон в пиджаке и брюках. "Извините", - сказал он, - "от меня, наверное, немного пахнет, но пришлось бежать, чтобы не опоздать на поезд. Простите, я вас не потревожу и скоро сойду".

Если честно, у меня чуть челюсть не отвалилась, потому что я никак не ожидал чего-то подобного. Видел я всякое: молчаливые попутчики, семьи с детьми, бабушки/дедушки, которые ругают современную молодёжь, пьяные дядьки, которые полдороги не могут прийти в себя... Но какой-то супер-вежливый парень в пиджаке? В общем, я только выдавил что-то вроде "всё в порядке, не стоит беспокоиться" и вернулся к книге. Затем Эфрон уселся на противоположную койку и довольно долго занимался какими-то своими делами. У нас проверили билеты, потом он как-то невзначай завёл разговор (на русском, ибо белорусский я могу в лучшем случае читать).

Рассказал о том, как работал таксистом и был вынужден ссориться с вокзальными бомбилами, которые обещали его избить. Как разводил голубей, учился на ювелира, а теперь взял кредит и закупил специальное оборудование. Как занимался бодибилдингом и показывал мне фото с состязаний, как работал тренером. Я тогда и сам занимался боксом, но честно сказал, что мне ещё надо худеть и худеть.

Эфрон посочувствовал и заметил, что расписал бы для меня диету, но ему скоро сходить. Потом он рассказал, как познакомился с невестой и как сделал для неё кольцо своими руками, и какая классная свадьба у них скоро будет. Скажем так, я и сам могу порассказывать много всего, но в тот момент я понял, что просто нужно послушать. Это вовсе не была какая-то глупая похвальба или, как говорится, "понты". Нет, просто совершенно незнакомый человек, который прямо перед отправлением поезда вбежал в купе, делится своими мыслями и переживаниями. В конце концов, что тут такого - он меня знать не знает, и больше никогда не встретит (хотя мне до сих пор интересна его судьба, так что, Эфрон, если ты это читаешь - дай знать!).
👍13
Через час Эфрон действительно собрал вещи и сообщил, что сейчас он выходит (это было всё ещё на территории РБ, само собой). Мы тепло попрощались, я пожелал ему отличной свадьбы - одно только жаль, хотел подарить на память свои часы (у меня небольшая коллекция). Глупо, но до сих пор вспоминаю с сожалением.

Потом поезд тронулся, мы проехали мимо переезда, на котором стоял мой знакомец - он помахал мне и тепло улыбнулся.

Прошло уже много лет, но я почему-то до сих пор вспоминаю именно этот момент, хотя сколько всего уже произошло с тех пор... Развал нашего института, безвластие на кафедре, ликвидация компании, бесконечное фрилансерство, бесконечные "творческие эксперименты", бесконечные записи уроков... Да чего только не было. А вот Эфрон всё-таки вспоминается. Почему?..

Это напоминает книгу "Уличный кот по имени Боб". Книга глупая и простая, но она о реальной жизни: простой кот кардинально изменил жизнь уличного музыканта. Не скажу, что Эфрон сразу и кардинально изменил мою жизнь. Вовсе нет: тогда она продолжала лететь в направлении к югу (выражение такое есть "going south"). Но всё-таки я задался вопросом: а всё ли правильно я делаю? А затем жизнь действительно стала меняться. Связано ли это с той странной встречей? Не знаю.

Я верю в то, что в мире существует некая высшая сила, некое божество, но верить в конкретного бога мне тяжело. Это, видимо, называется "антиклерикализм". Так или иначе, есть что-то, что подталкивает нас к новому пути.

В определённый момент времени нам нужен некто, кого мы можем назвать своим учителем. И я благодарен "высшему разуму" за то, что это случалось со мной до определённого момента. В детстве таким учителем, конечно, был мой дед. Он научил меня кататься на велосипеде, забивать гвозди, отличиям между фазой и нулём, и тысяче других необходимых вещей. Затем вторым отцом для меня стал С.Ю. Гуснин, основатель первого в РФ центра обучения, где учились сотни будущих системных администраторов и где мне довелось несколько лет преподавать. Когда наш центр обучения уже дышал на ладан, С.Ю. всё равно оставлял меня в штате, хотя мы и не получали никакой особенной прибыли. Ну, а к моменту завершения института учителем стал @kutanov - один из самых сильных инженеров, которых я вообще знаю. Тогда он помог мне с дипломной работой и пригласил в стартап, где я в итоге стал ведущим инженером и получил бесценный опыт. Видимо, в какой-то момент Эфрон тоже стал моим учителем, пусть и на пару часов.

Поэтому совершенно неважно кто и как изменит вашу жизнь. Главное - разглядеть этот шанс, поймать этот момент. А ещё очень важно помнить, что мы учимся всю жизнь. В этом плане для меня символично имя одного из героев М. Семёновой - Астин Дволфир, что означает просто "ученик". Пожалуй, это я. Просто ученик, который помогает учиться вам.
👍20🔥5
Channel photo updated
В этом уроке мы обсудим довольно важный вопрос: что же такое memory и calldata, в чём их отличия и как они работают? Почему calldata нельзя менять? Почему хранение в memory дороже, чем в calldata? Мы сделаем серию экспериментов, чтобы рассмотреть особенности этих "хранилищ" на примерах. Также мы отдельно обсудим селекторы функций и узнаем, как они кодируются. https://www.youtube.com/watch?v=xsV9FkDKcJY
👍17🔥6🎉1
Всем большое спасибо за отзывы, это очень здорово. Пардон, если сегодня на какие-то комменты отвечал как-то "не так", но, честно говоря, немного стресс накопился по разным причинам. В любом случае, в ближайшее время постараюсь рассмотреть ещё какую-нибудь интересную тему. Ну, а помогут этому активные донаты - так я буду понимать, что канал движется в правильном направлении и эти темы вам действительно интересны. По крайней мере, нелишними будут ваши лайки, которые продвигают видео (и это вовсе не пустые слова).

Сегодня небольшая забавная история о навязчивых операторах и работе с клиентами - почему-то вспомнилось. Жил я как-то в одном городе N-ске и заказывал доставку готовой еды на каждый день. Ну, чтобы самому не готовить - подумал, что это будет эффективнее.

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

Во-вторых, это постоянная гора пластиковых контейнеров, которые неясно, куда девать, и вообще полный хаос: кто есть-то это будет всё? Как будто бабушка приехала на выходные и наготовила впрок на месяц. В-третьих, в этом не чувствовалось души. Ну, как навалили тебе в армии из общего котла, и жри, что дали. Лучше уж ты сам любовно отваришь вот это вот найденное в магазине по скидке мясо, сам положишь слишком много специй, сам сваришь слипшиеся макароны. Но зато своё - СВОЁ!

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

В общем, от такого добра пришлось отказаться довольно быстро. Но потом спустя чуть ли не год мне *внезапно* позвонила девушка из этой конторы и поинтересовалась, а чего это я отказался от их услуг? Ну, я честно сказал, что отпала необходимость, более неактуально.

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

"Нет, мне нужно написать конкретную причину", - не отставала девушка. Я удивился и напряг извилины.

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

"Хорошо!" - радостно ответила моя собеседница. - "Я так и запишу. Но если вы всё-таки захотите разгрузить свою жену и дать ей возможность отдохнуть, то обязательно обращайтесь к нам".

На этом аккорде мне очень хотелось ответить: "Ещё чего! А для чего я женился тогда???". Но, вероятно, меня и так записали в базу как "эксплуататор женщин и мудак".

Но, в целом, с тех пор обращаться в эту контору желания как-то совсем нет, хотя в этом городе я давно не живу, да и необходимости нет. Но это просто ещё раз говорит о том, что любой сотрудник, общающийся с клиентом - это лицо компании.
👍15😁1
Это может звучать банально, но это *очень* важно. Общению с заказчиками (и студентами) надо учиться, и горе тому, кто делать этого не умеет. К сожалению, в 1 случае из 100 я тоже срываюсь, но обычно при почти открытом хамстве. Настоящие же джедаи спокойны всегда и везде, даже если их кроют матом. Конечно, этого не нужно терпеть в обычной жизни, но при работе с клиентами - необходимо. Во всяком случае, нужно корректно завершить диалог. 😂
👍8👎1
Ну, и в целом насчёт еды, раз уж речь зашла. Я просто слышал, что в РФ открылась одна сеть фастфуда вместо другой, но в целом пост приурочен не к этому, а к предыдущей записи 😂

У меня есть некоторое (довольно небольшое) количество принципов: не пить с утра (до условных 12 часов дня, так как я не гусар и не Джек Лондон), не играть в азартные игры на реальные деньги (под интерес), особенно с незнакомцами, не дискутировать с теми же незнакомцами о политике/религии/расовых и сексуальных отличиях, а также, насколько это возможно, не есть в фастфудах.

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

Вероятно, это некий атавизм, иррациональная тяга к природе, но почему-то в таких случаях всегда вспоминается детство и прошлое в целом. В прошлом, как известно, вообще-то все жили до 150 лет минимум, были по 3 метра ростом, а некоторые и по 4. А если серьёзно, то хочется снова бегать по участку, срывать смородину, таскать яблоки, груши - и всё это бесплатно. А теперь-то коробочка красной смородины стоит по 3-4 евро за пару сотен грамм. Как говорится, я могу это позволить себе, но не из-за мечты столько денег отдавать.

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

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

В ресторане на букву М я обычно появляюсь раз в полгода в лучшем случае: либо @ailura24 захочет каких-нибудь яблочных долек, либо затащит мой товарищ - хотя теперь, начиная с пандемии, мы уже и не виделись (кто знает, когда теперь свидимся?). Но каждый раз потом после этих булок во рту остаётся какой-то мерзкий привкус, который долго не уходит. Странно, но вот такой эффект, хотя есть приходилось всякое. Хотя, откровенно говоря, с омерзительной рыбой в части не сравнится ничто. Впрочем, я ничего не имею против салатов старины Рональда, фруктов, десертов - ничего особенного там нет, еда как еда.

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

Я всё ещё помню, как мы попали впервые в Италию в 2006 году прямо во время финала чемпионата мира, когда гудел весь Рим. Это было просто что-то невообразимое и поесть хоть где-нибудь представлялось невозможным, поэтому пришлось идти в старому доброму Рональду и брать по бутерброду. А финал итальянцы тогда всё-таки выиграли, и в городе началось такое, что я не могу описать: мы не могли спать всю ночь 😂 Отчим тогда каким-то образом обсуждал матч с собутыльниками в баре, хотя не знал почти ни слова ни по-английски, ни по-итальянски, а они не понимали русский. Вот уж действительно: спорт объединяет. 😄
12👍2😁1
Обещаю, что этот пост на сегодня последний. Просто очень много всего произошло за эти дни, много мыслей, хочу с вами поделиться. Если есть желание узнать, как работает OAuth 2 и что это такое, то в этом посте мы разбираем этот протокол на примере Lokalise. Примеры в этот раз я подготовил на TS, Python, Ruby https://lokalise.com/blog/lokalise-oauth-2-acting-on-users-behalf/
👍10🔥3
В этом уроке мы затронем такую важную тему, как создание Hardhat tasks (таски, они же задачи Hardhat), с помощью которых можно взаимодействовать с уже развёрнутыми контрактами, запрашивать баланс аккаунтов, и выполнять многие другие действия. Посмотрим принцип написания задач на примере, узнаем, как их описывать, передавать аргументы и выполнять в выбранной сети. https://www.youtube.com/watch?v=h8i1hfeGDAA
👍15