DEV: Рубиновые тона
3.21K subscribers
142 photos
2 videos
8 files
965 links
Анонсы новых видео о программировании (Ruby/Rails, Solidity/Ethereum, Python, JS и не только), практические советы, обзор полезных инструментов и новости из мира IT
Download Telegram
У меня тут новая статья, в этот раз про scraping на питоне с шутками да прибаутками - в частности, сбор результатов из поиска google для последующего анализа (может быть полезно, например, для отслеживания позиций интересующих доменов по разным ключевым словам) https://www.scrapingbee.com/blog/how-to-scrape-google-search-results-data-in-python-easily/
❤‍🔥10👍7👀21
В этом уроке по Ethereum мы посмотрим, что нового появилось в OpenZeppelin Defender v2, что изменилось, и как с ним работать. С помощью этого решения вы сможете легко администрировать контракты, настраивать автоматизированные действия, создавать сценарии выполнения, и многое другое. https://youtu.be/tlhsIZX7LI0
12🔥4
Записал первые три главы аудиокниги "Воспоминания" (Тэффи). Если не знаете, что почитать (послушать), то это отличный вариант. Это не нудные мемуары, а интересное повествование о быте и проблемах во времена Гражданской войны в 1918 году. Здесь нет больших исторических личностей и значительных монологов, только жизнь обычных людей. Как мне кажется, во многом эти события (иногда до степени неотличимости) перекликаются и с тем, что происходит сейчас https://www.youtube.com/watch?v=zzYHjCnOsNc
🙏8👍7🔥2👏1🥱1
А сегодня у нас интересный стрим по Solidiy!

В этом стриме по Solidity мы рассмотрим новое решение от OpenZeppelin под названием AccessManaged. Оно позволяет настраивать права доступа через отдельный контракт, который сообщает, может ли определённая роль вызвать ту или иную функцию. Кроме того, AccessManaged позволяет делать аналог Timelock, то есть определённые роли должны поставить вызов функции в очередь, только спустя некоторое время её выполнить.

https://youtube.com/live/pL6tpKNfmJM?feature=share
👍12🔥2👏1
Что ж, мне очень приятно, что первые три главы (совершенно неожиданно) так заинтересовали слушателей, так что буквально только что закончил запись ещё двух глав. В них рассказывается о том, что же происходило в странном городке, где ветчину едят только днём, и как избежать карантина у немцев. https://www.youtube.com/watch?v=NQvV_Kfbs-A
👍13👎1🔥1😱1
Производил тут небольшой анализ в плане SEO от нечего делать. Обнаружил некоторые забавные вещи - в частности, кто-то создал автоматизированный клон YT, куда льются видео по теме разработки и не только, прямо сплошняком, без стеснения. Ну, что сказать, это предсказуемо.

С большим удивлением узнал, что книга Modern CSS, одним из автором которой я был, теперь доступа в довольно крупном издательстве O'Reilly. Впрочем, думается, что CSS там уже не совсем modern, так как ей лет шесть.

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

Если же в поиске обнаружился другой тёзка, но с отчеством Михайлович, то это мой относительно близкий родственник, учёный 🤪

В общем, иногда любопытно погуглить, что находится по своему имени-фамилии, попробуйте

https://www.youtube.com/watch?v=55nPncn6rRk&list=OLAK5uy_l_2JrkrjWXP2riZrzs4pHk5E8X565K7Yg&index=10
👍5😁31🤯1
В этом уроке по Rust мы поговорим об одной из самых неочевидных и необычных тем - о lifetimes, аналога которым в большинстве языков не встречается. Мы попробуем разобраться, зачем это нужно, рассмотрим примеры и порешаем задачи rustlings. https://www.youtube.com/watch?v=usnj6UZTsc4
👍9❤‍🔥2👎1🔥1
Я вот буквально вчера получил странное сообщение в LinkedIn, в котором неизвестный мне джентльмен сообщал, что планирует податься на работу к нам в Lokalise и почему-то просил меня передать его резюме в отдел HR (?). Да, в моём имени была ошибка, но это уже частности.

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

Но ведь я этого человека даже не знаю - как же я могу его рекомендовать?.. Больше того, он подаётся на должность, которая ко мне не имеет отношения. Странно это. Или это и правда типичная история теперь?

Мы вот говорили с нашими студентами какое-то время назад насчёт работы, такой трюк, кажется, никто не упоминал 😂 Впрочем, чего говорить, время сейчас не самое простое, увольнения продолжаются, ИИ шагает широкой поступью...
😁7👍21🤷‍♂1
В свете того, что в ряде стран пользователей сети Интернет вынуждают устанавливать на компьютеры и смартфоны какие-то "специальные", непонятные сертификаты безопасности, некоторые знакомые спрашивают, что всё это значит. Попробую пояснить совсем по-простому и расскажу вам сказку.

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

Но если это так, то как же от этого защититься?! К счастью, умные люди уже придумали для нас решение, и называется оно "ассиметричное шифрование". Конечно, обо всём этом мы здесь говорим упрощённо, если вам интересно, у меня есть видео о принципе работы такого шифрования: https://www.youtube.com/live/ttsRlTJJizI.

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

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

А вот как. Гугл может купить у мастера ключик только для себя любимого, и хранить его в секрете, никому не показывать. Это называется "приватный ключ" - мастер изготовил его лишь в одном экземпляре, и больше никогда такой уже не сделает (помните, это как история с храмом Василия Блаженного). Именно этим ключом Гугл и запирает сундучок с данными, которые отправляет вам. А как же его отпирать? Легко!

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

Верно и обратное: вы можете положить в сундучок послание для Гугла, запереть его парным ключом, и лишь Гугл сумеет открыть его. Ведь мы уже знаем, что открывается он только парным ключом, а парным выступает тот самый секретный ключ, его нет ни у кого, кроме Гугла, мастер другого такого ключа никогда не сделает! Следовательно, и прочитать переданные вами данные никто не сможет.
🔥17👍1
Кстати, а почему, собственно говоря, мастер не может сделать ещё один такой же секретный ключ и дать его какому-нибудь вредному писарю, который хочет засовывать нос в сундучок? А вдруг этот писарь вообще станет отправлять секретные послания от имени Гугла вам, называть вас в этих посланиях нехорошими словами, а вы будете думать, что это пишет Гугл? Это будет совсем нехорошо!

А вот тут мы упираемся в важнейший вопрос доверия. Мастеров-ключников в этом мире чрезвычайно мало, их буквально несколько десятков, у них кристально чистая репутация, и поэтому люди им доверяют. В конце концов, люди ведь доверяют банкам или государственным структурам (до определённых пределов). Здесь ситуация та же; эти мастера известны всему миру: это, к примеру, VeriSign или Symantec. Они ставят на свои ключи знак качества, а Гуглу и другим структурам выдают специальный сертификат, который удостоверяет, что это именно Гугл и никто иной, это именно он запер сундучок, поэтому мастера и зовутся Удостоверяющими центрами.

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

А теперь представим, что в мире появился мастер-негодяй, который создаёт секретные ключи для веб-сайтов, но раздаёт их всем желающим, в том числе любопытным опричникам. Что это значит? Это как раз значит, что все, получившие такой якобы "секретный" ключ, могут заглядывать в сундучки, которые отправляете вы, и даже подменять письма внутри! Но, постойте, ведь такого мастера-негодяя нет в список "доверенных" на вашем устройстве? Мы ведь уже знаем, что если мастер неизвестен, то нас сразу предупредят. Именно так, но только до тех пор, пока вы собственноручно не добавите имя этого мастера в список доверенных, то есть сделаете ровно то, что требуют от пользователей в некоторых странах.

Как только вы это сделали, вы начинаете автоматически доверять всем ключам этого нового мастера, и всем его ученикам тоже. А если есть подозрения, что мастер нечист на руку, то, быть может, не стоит ему доверять? Кто знает, кому ещё он подарит секретный ключик, и кто ещё сможет просматривать все данные, которые вы отправляете... Именно поэтому стоит быть очень разборчивым в том, кому именно вы доверяете.
👍21🔥94🤯1
Ко мне сейчас обратился владелец дружественного проекта Izi DAO с просьбой прокомментировать ситуацию с Optimism и Blast L2. Я этот момент как-то пропустил, а суть тут в следующем.

https://twitter.com/PopPunkOnChain/status/1752780488127762716 Умники из Blast L2 просто-напросто сделали сделали форк кода Optimism, внесли туда буквально пару изменений (в виде убранных пробелов), после чего преспокойно изменили копирайты и лицензию с MIT на BSL. Внимание вопрос: насколько это допустимо?

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

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

Однако с кодом Optimism всё довольно просто, так как он выпущен под лицензией MIT. Эта лицензия позволяет делать с кодом практически всё, что угодно: менять, распространять и даже перелицензировать. Но есть один нюанс: при этом необходимо сохранять информацию об изначальной лицензии и об изначальных авторах.

Звучит это буквально так: "The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.". Иными словами, будьте добры оставлять информацию о старых копирайтах в достаточно значительной части софта. Вообще, в репозитарии Blast в самом конце всё-таки есть стыдливое упоминание MIT, но без подробностей и без ссылок на изначального автора. Скажем прямо, это не похоже на "достаточно значительную часть софта".

Впрочем, всё это - серая зона, и если вдруг дело дойдёт до суда, то тут бабушка надвое сказала, чем всё кончится. В любом случае, лицензии и труд людей стоит чтить.
5👍2🙊2
Ещё раз напомню, что для написания комментариев нужно зайти в наш чат https://t.iss.one/+MxYT6-01eeA1NTYy К сожалению, очень много прилетает спама, приходится как-то защищаться
3
У меня вышел небольшой пост о том, что такое интернационализация и почему это не то же самое, что локализация https://lokalise.com/blog/what-is-i18n/
🔥72