Знаю, что темп выхода видео замедлился, но всё упирается в нехватку времени на монтаж - так, у меня уже лежат два записанных урока по абстрактной алгебре почти на час каждый, но всё не доходят руки ими заняться. Увы, много другой занятости 🤪 Но ничего, будем стараться. А пока для любителей dungeon synth скину ссылку на наш новый альбом "Of Empty Halls and Distant Roads". Всего около 40 минут странных гимнов и сказочных напевов https://www.subvert.fm/ravens-die-laughing/of-empty-halls-and-distant-roads Скоро увидимся! 😄
Открыть в TelegramПосты канала DEV: Рубиновые тона
В этом уроке разбираем новую структуру данных: B+Tree, которая является вариантом обычного B-Tree. https://www.youtube.com/watch?v=s1sbg35plcM
Открыть в TelegramДинамика просмотровСкрыть динамику
Рост просмотров
Часов после публикации
Показать таблицей
| Часов после публикации | Просмотры |
|---|---|
| 0 ч | 0 |
| 3 ч | 318 |
| 4 ч | 360 |
| 15 ч | 440 |
| 27 ч | 509 |
| 76 ч | 597 |
- Через 6 часов360
- Через 24 часа509
- Всего сейчас597
И немного из рубрики "записки на манжетах", коей не было сколько-то месяцев... Чем дальше я продвигаюсь в плейлисте про абстрактную алгебру, тем больше думаю, как, вероятно, тяжело это давалось бы студентам в среднестатистическом институте. Просто я хорошо помню эти суровые книги, в которых всё всегда было *очевидно* и вытекало из какой-нибудь леммы номер 1.8, а если тебе не очевидно - ну ты просто дурак. Почему-то запомнился один учебник по программированию, переведённый с английского. Он прямо сломал парадигму, потому что он разговаривал с тобой на равных и *вежливо*. Разумеется, это был далеко не первый учебник по разработке, но именно он оказался какой-то "не такой". Потому что старые учебники - они прямо были агрессивные и сильно ругались. "ТЫ ВООБЩЕ КТО ТАКОЙ? *Меня* написали самые лучшие, самые бородатые мужики в самых растянутых свитерах, лучшие из лучших в СССР! Ты вообще знаешь, мелкий засранец, сколько миллионов - сотен миллионов! - жило в СССР? Так вот самые крутые из этих миллионов создали меня! Поэтому, сопляк, сиди тихо и слушай. И *я* говорю тебе, что вот это следствие *очевидным образом* вытекает из леммы 1.8. Понял?! А если не понял, я надеру тебе задницу!". Впрочем, я тоже, вероятно, грешу такими заходами, что, мол, "тут всё просто", но стараюсь этого избегать, насколько возможно. Лучше повторить несколько раз, чем понадеяться, что слушателю будет всё очевидно 😂
Открыть в TelegramДинамика просмотровСкрыть динамику
Рост просмотров
Часов после публикации
Показать таблицей
| Часов после публикации | Просмотры |
|---|---|
| 0 ч | 0 |
| 3 ч | 172 |
| 8 ч | 366 |
| 26 ч | 433 |
| 38 ч | 464 |
| 74 ч | 499 |
- Через 6 часов366
- Через 24 часа433
- Всего сейчас499
Как взломать криптографию за четыре попытки, или Индийский центр сертификации наносит ответный удар 🤡 Недавно выяснилось, что у нескольких промежуточных центров сертификации индийской компании eMudhra приватные ключи были числами 4, 56, 66, 115, 155, 156, 230 и 237. Да-да, один из приватных ключей был буквально 4 (при этом использовалась вполне серьёзная эллиптическая кривая P-384, рассчитанная на 192-битную криптографическую стойкость). В нормальных условиях восстановить приватный ключ по публичному практически невозможно. Но если приватный ключ равен 4, то взлом выглядит примерно так: from cryptography.hazmat.primitives.asymmetric import ec curve = ec.SECP384R1() # Представим, что CA сгенерировал ключ 4. private_key = ec.derive_private_key(4, curve) public_key = private_key.public_key().public_numbers() # Атакующий знает только публичный ключ. for candidate in range(1, 256): test = ec.derive_private_key(candidate, curve) point = test.public_key().public_numbers() if (point.x, point.y) == (public_key.x, public_key.y): print(f"ВЗЛОМАЛИ: {candidate}") break Почему это плохо? Центры сертификации (они же "удостоверяющие центры") выпускают цифровые сертификаты, с помощью которых браузеры проверяют подлинность HTTPS-сайтов. Если злоумышленник получает приватный ключ доверенного промежуточного CA, он потенциально может выпускать поддельные сертификаты для чужих доменов и использовать их для перехвата соединений. Самое забавное, что математика P-384 не сломалась, просто вместо случайного числа из примерно 2^384 возможных значений система использовала числа, которые можно перебрать за долю секунды. И да, теоретически честный генератор тоже может случайно выдать 4. Просто вероятность этого примерно один шанс на 10^116. А сколько пришлось бы перебирать нормальный ключ? Для P-384 лучший известный универсальный классический алгоритм требует порядка 2^192 операций. Даже если представить фантастический компьютер, выполняющий триллион операций над точками кривой в секунду, поиск занял бы порядка 10^38 лет. Для сравнения, возраст Вселенной — около 13,8 миллиарда лет. То есть взлом занял бы примерно в 10^28 раз больше времени, чем существует Вселенная.
Открыть в TelegramДинамика просмотровСкрыть динамику
Рост просмотров
Часов после публикации
Показать таблицей
| Часов после публикации | Просмотры |
|---|---|
| 0 ч | 0 |
| 6 ч | 267 |
| 11 ч | 448 |
| 29 ч | 507 |
| 41 ч | 536 |
| 77 ч | 570 |
- Через 6 часов267
- Через 24 часа507
- Всего сейчас570
В этой статье обсудим как реализовать обфускацию контента средствами HTML и CSS (и совсем немного JS): рассмотрим как простые, так и сложные случаи. Затем же поговорим о том, как обходить подобную обфускацию и вытаскивать нужные данные со страницы https://www.scrapingbee.com/blog/scrape-obfuscated-text/
Открыть в TelegramДинамика просмотровСкрыть динамику
Рост просмотров
Часов после публикации
Показать таблицей
| Часов после публикации | Просмотры |
|---|---|
| 0 ч | 0 |
| 10 ч | 452 |
| 34 ч | 580 |
| 45 ч | 600 |
| 70 ч | 616 |
- Всего сейчас616
А можно ли научить веб-скрейпер видеть страницу так же, как её видим мы? Обычно скрейперы работают с HTML, но что делать, если нужный текст находится внутри картинки, нарисован на canvas или сайт использует активную обфускацию? Что ж, OCR (распознавание текста на изображениях) спешит на помощь! В новой статье разбираем, как подружить Playwright и Tesseract.js, чтобы скрейпер мог извлекать текст прямо со скриншотов страниц, причём без ИИ. 🧙♂️ https://www.scrapingbee.com/blog/playwright-ocr-web-scraping-tesseract-js/
Открыть в TelegramДинамика просмотровСкрыть динамику
Рост просмотров
Часов после публикации
Показать таблицей
| Часов после публикации | Просмотры |
|---|---|
| 0 ч | 0 |
| 5 ч | 368 |
| 15 ч | 442 |
| 27 ч | 496 |
| 42 ч | 516 |
| 76 ч | 617 |
- Через 6 часов368
- Через 24 часа496
- Всего сейчас617
Динамика просмотровСкрыть динамику
Рост просмотров
Часов после публикации
Показать таблицей
| Часов после публикации | Просмотры |
|---|---|
| 0 ч | 0 |
| 5 ч | 450 |
| 10 ч | 542 |
| 36 ч | 720 |
| 71 ч | 839 |
- Через 6 часов450
- Всего сейчас839
Гугл проказничает опять (в который раз!). Теперь они *намеренно отравляют поисковую выдачу* если заподозрили неладное (например, если подозревают скрейпинг). Ну, скажем вы ввели запрос "купить наушники недорого" а вам предлагаются сайты, где можно купить слона. Это уже подтвердили ребята из Nozzle (хотя с оговорками - это происходит далеко не всегда и не во всех странах). Я начал свой сбор данных, попробую через Fast Search API пособирать недельку, потом проанализируем и сделаем статью. В общем, бойтесь гугла, serp приносящего 😂
Открыть в TelegramДинамика просмотровСкрыть динамику
Рост просмотров
Часов после публикации
Показать таблицей
| Часов после публикации | Просмотры |
|---|---|
| 0 ч | 0 |
| 12 ч | 447 |
| 33 ч | 656 |
| 38 ч | 674 |
| 76 ч | 830 |
- Всего сейчас830
В этом уроке по абстрактной алгебре говорим про кольца многочленов, теоремы об остатке и множителе (а также о примерно 9000 других понятий и свойств), principal ideal domain и изоморфизм полю комплексных чисел. https://youtu.be/BoCfW73ZON8
Открыть в TelegramДинамика просмотровСкрыть динамику
Рост просмотров
Часов после публикации
Показать таблицей
| Часов после публикации | Просмотры |
|---|---|
| 0 ч | 0 |
| 17 ч | 425 |
| 35 ч | 492 |
| 68 ч | 677 |
- Через 24 часа425
- Всего сейчас677
Динамика просмотровСкрыть динамику
Рост просмотров
Часов после публикации
Показать таблицей
| Часов после публикации | Просмотры |
|---|---|
| 0 ч | 0 |
| 57 ч | 715 |
| 75 ч | 742 |
- Всего сейчас742
В этом уроке по абстрактной алгебре говорим про изоморфизм и гомоморфизм колец. https://youtu.be/Z6WHr31Ph_E
Открыть в TelegramВ этом уроке по абстрактной алгебре говорим про ideals (идеалы), factor (quotient) rings и другие понятия. https://www.youtube.com/watch?v=xrKJpCIEBAQ
Открыть в TelegramВ этом уроке по абстрактной алгебре говорим про области целостности, делители нуля, характеристику колец и про поля. https://www.youtube.com/watch?v=vwHzRjPM-Gs
Открыть в TelegramА тем временем сказ о ведьмаке, потерявшем память, уже доступен в виде аудиокниги. Целых 12 часов чистого безумия. Только учтите, что там местами, как это говорится, colorful language https://youtu.be/rXqLZtgwYu0
Открыть в TelegramВ этом уроке по абстрактной алгебре продолжаем говорить о кольцах: в частности о subrings и subring tests. https://www.youtube.com/watch?v=_rgPeRwj1Rc
Открыть в TelegramСделал обзор актуальных библиотек JS для сбора данных, 10 штук бодрых решений на все случаи жизни https://www.scrapingbee.com/blog/best-javascript-web-scraping-libraries/
Открыть в TelegramВ общем, мне тут особо было нечего делать и я подумал создать небольшой скрипт для решения простой задачи - поиска открытых PR в интересующих репозитариях. Конечно, о появлении PR и без того должен сообщать Github, но проблемы начинаются, когда репозитариев слишком много, и они торчат в разных организациях. Вопрос лично для меня сводился к чему-то вроде "какие существуют открытые PR в моих собственных репо, а также в указанных организациях?". Но другая сложность в том, что в указанной организации может быть полно репо, с которыми я вообще не работаю, и они меня мало интересуют. Собственно, скрипт эту задачу и решает: находит репо в разных профилях, по дефолту убирает архивированные и такие, где PR отключены, смотрит в каких репо юзер что-то делал, и потом выдаёт ограниченный список PR. Это особенно удобно для поиска каких-то древних PR, про которые вы вообще уже забыли. Этот скрипт доступен в видe ruby gem, можно пользоваться https://github.com/bodrovis/nya_pr Потребуется только сгенерировать токен с правами чтения в соответствующих организациях.
Открыть в TelegramГугл проказничает опять. На сей раз они начали менять то, как выглядят ссылки в поисковой выдаче. Если раньше в SERP обычно лежали обычные ссылки на целевые сайты, то теперь вместо них можно получить что-нибудь вроде /goto?url=CAESabrakadabra. Такая ссылка сначала ведёт в Google, а уже оттуда вас перенаправляют на нужный сайт. Для обычного пользователя разницы почти никакой, а вот для скрейпера — уже интереснее, потому что такие ссылки выдаются не всегда и не всем, а если вы их получили, из HTML уже нельзя просто вытащить нормальный целевой URL. Я поисследовал эту штуку и написал статью о том, что вообще представляют собой новые ссылки /goto, что находится внутри загадочных CAES токенов (спойлер: внутри какая-то криптографическая фиговина, а не просто хитро закодированный URL), насколько их реально декодировать, почему просто вытащить исходный URL из токена не получается и как нормально резолвить такие ссылки на практике. В общем, приятного чтения: https://www.scrapingbee.com/blog/google-goto-redirect-urls/
Открыть в TelegramВ этом уроке по абстрактной алгебре мы начинаем говорить о новом важном понятии: кольца (rings). https://www.youtube.com/watch?v=TfuGSM3Tb8E
Открыть в TelegramСегодня статья совсем не техническая, но пятница, можно расслабиться 😂 В общем, любители котиков (да и не только они) почти наверняка слышали о "том самом дядьке, который рисовал котов, а потом сошёл с ума, и коты стали фрактальными". В общем, про этого дядьку (Луиса Уэйна) я сделал довольно большой рассказ, который во многом строится на архивных документах, кои широкой публике почти наверняка неизвестны. Получилось довольно любопытно, а главное удалось развеять миф про фрактальных котов, да и просто лучше узнать историю художника. Не говоря уже о том, что в статье полно картин няшных котиков 😺 Приятного прочтения, скоро увидимся https://bodrovis.tech/posts/luis-ueyn-bolezn-iskusstvo-istoricheskie-svidetelstva/
Открыть в TelegramСегодня в курсе по абстрактной алгебре говорим про первую теорему конечных Абелевых групп. https://www.youtube.com/watch?v=KXAiLVEvXig
Открыть в TelegramВ этом уроке по абстрактной алгебре говорим про первую теорему изоморфизма. https://www.youtube.com/watch?v=ZNIlnGrZBqQ
Открыть в TelegramВ этом уроке по абстрактной алгебре говорим про гомоморфизм групп. https://www.youtube.com/watch?v=3yhWN5QVVkE
Открыть в Telegram*Я понял, в чём ваша беда: вы слишком серьёзны. Серьёзное лицо — это ещё не признак ума, господа. Все глупости на земле делаются именно с этим выражением лица. Улыбайтесь, господа. Улыбайтесь!* В общем, книга про ведьмака и возвращение в Элизиум (да, это где смесь Witcher и Disco Elysium) была дописана около месяца тому назад. Всего по объёму около 90-95 тысяч слов, короче в районе "ГП и философский камень" (кхм, эту серию я в своё время разнёс в пух и прах, но в целом отношусь к ней с симпатией). Почитать можно тут https://bodrovis.tech/tags/%D0%B2%D0%B5%D0%B4%D1%8C%D0%BC%D0%B0%D0%BA-%D0%B2%D0%BE%D0%B7%D0%B2%D1%80%D0%B0%D1%89%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B2-%D1%8D%D0%BB%D0%B8%D0%B7%D0%B8%D1%83%D0%BC/ Скажу сразу: присутствует нецензурная лексика и темы, не предназначенные для лиц младше 18 лет (впрочем, всё это вымышленное и ненастоящее). Аудиоверсия этого безобразия тоже записана и будет опубликована после переслушивания и подготовки обложки. Это некоммерческая инициатива, которую реализовали полтора человека из Cat&Mouse team, так что мне будет приятно, если вы поделитесь ссылкой с друзьями. Клоунов можно не кидать. Спасибо
Открыть в TelegramВ этом уроке по абстрактной алгебре говорим про quotient (factor) groups - группу частных. Также обсуждаем внутреннее прямое произведение (internal direct product). https://www.youtube.com/watch?v=qSWuRPmzhiE
Открыть в TelegramЯ долго воспринимал Polymarket просто как сайт со ставками на выборы и курс биткоина. Но с инженерной точки зрения это отличный полигон для Web3-разработчика: CLOB, WebSocket-потоки, EIP-712-подписи, несколько API, частичные исполнения и постоянная синхронизация onchain- и offchain-состояний. Гораздо интереснее очередного учебного NFT-маркетплейса. В курсе Guide DAO «Основы Polymarket» за десять модулей собирается TypeScript-проект polymarket-operator: каталог рынков, живая книга ордеров, симулятор исполнения, журнал позиций, анализ кошельков и аварийная остановка. Реальные ордера отправлять не придётся, зато на выходе получается нормальный инженерный проект на стыке backend, real-time data и блокчейна. Заодно сейчас у Guide DAO самая большая скидка года: 60% по промокоду KRUK, даже больше, чем на Black Friday. Одно членство открывает все направления, от Solidity и JS до агентской разработки, продакт-менеджмента и биотека. Оставляй заявку на сайте: https://www.guidedao.xyz/polymarket
Открыть в Telegram