Как стать автором
Обновить
2
0.2

Пользователь

Отправить сообщение

Ускорение поиска в Have I Been Pwned до 49 микросекунд (С++)

Время на прочтение8 мин
Количество просмотров13K


Я давно знал о сайте Have I Been Pwned (HIBP). Правда, до недавнего времени никогда там не был. Мне всегда хватало двух паролей. Один из них неоднократно использовался для мусорной почты и пары аккаунтов на странных сайтах. Но пришлось от него отказаться, потому что почту взломали. И, честно говоря, я благодарен хакеру, потому что это событие заставило меня пересмотреть свои пароли — то, как я их использую и храню.

Конечно, я поменял пароли на всех аккаунтах, где стоял скомпрометированный пароль. Затем мне стало интересно, попал ли утёкший пароль в базу HIBP. Я не хотел вводить пароль на сайте, поэтому скачал базу данных (pwned-passwords-sha1-ordered-by-count-v5). База весьма впечатляет. Это текстовый файл на 22,8 ГБ с набором хэшей SHA-1, по одному в каждой строке со счётчиком, сколько раз пароль с данным хэшем встречался в утечках. Я вычислил SHA-1 своего взломанного пароля и попытался найти его.
Читать дальше →
Всего голосов 25: ↑25 и ↓0+25
Комментарии20

Python: как переменные работают на самом деле? Погружаемся в байткод и C

Уровень сложностиСложный
Время на прочтение8 мин
Количество просмотров15K

Привет! Меня зовут Никита Соболев, я core-разработчик языка программирования CPython, а так же автор серии видео про его устройство.

Сегодня я хочу рассказать, как на самом деле работают переменные в CPython.

Под катом куча кишков питона и видео на 46 минут с дополнительными кишками питона (ни один настоящий питон не пострадал при написании данной статьи).

Читать далее
Всего голосов 43: ↑42 и ↓1+56
Комментарии6

Введение в Event Modeling

Время на прочтение12 мин
Количество просмотров9.4K

Event Modeling — это метод описания информационных систем на основе анализа изменений информации с течением времени. В частности, опускаются временные детали и выделяется то, что хранится долговременно, то что пользователь видит в любой конкретный момент времени. Это события на временной шкале, формирующие описание системы.

Читать далее
Всего голосов 5: ↑5 и ↓0+5
Комментарии3

Как я портировал свой игровой движок с JavaScript на C

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров10K

high_impact


tl;dr: high_impact — это маленький игровой движок для 2D-игр жанра «экшн». Он написан на C, компилируется для Windows, Mac и Linux, а также для WASM в вебе. Он был написан «по мотивам» моего игрового движка Impact на JavaScript, разработанный в 2010 году. Название high_impact — отсылка к тем временам, когда C считался языком высокого уровня.

Движок имеет лицензию MIT, исходники выложены на Github: github.com/phoboslab/high_impact

Видео из моего твита за 5 июля, демонстрирующее геймплей Biolab Disaster
Читать дальше →
Всего голосов 40: ↑39 и ↓1+54
Комментарии0

Поиск секретов в программном коде (по энтропии)

Время на прочтение3 мин
Количество просмотров3.2K
Недавно в открытом доступе появился новый инструмент для поиска приватной информации в открытом коде. Это Entropy — утилита командной строки, которая сканирует кодовую базу на предмет строк с высокой энтропией. Предположительно, такие строки могут содержать секретную информацию: токены, пароли и др.

Подход логичный. Пароли и токены — это по определению строки с высокой энтропией, поскольку они создаются с помощью генераторов случайных или псевдослучайных чисел. Символы в такой последовательности в идеале непредсказуемы.
Читать дальше →
Всего голосов 13: ↑12 и ↓1+17
Комментарии3

find + mkdir полны по Тьюрингу

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров9.8K

Введение

Мы покажем, что система, имеющая лишь команды GNU find и mkdir, полна по Тьюрингу.

Хорошо известно, что команды sed и awk сами по себе полны по Тьюрингу, но мне не удалось найти информации о Тьюринг-полноте find + mkdir.

Доказательство основано на реализации таг-системы.

Мы по порядку рассмотрим реализацию цикла, FizzBuzz и таг-системы.

Читать далее
Всего голосов 52: ↑52 и ↓0+75
Комментарии21

Бомбезная модификация электрогитары типа «Телекастер»

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров10K


Привет, Хабр! Исходя из набора предметов на фото, может показаться, что речь пойдёт просто об установке рельсового хамбакера в бриджевую позицию с попутным апгрейдом колковых механизмов, верхнего порожка и ретейнеров.

Однако мне хочется сделать нечто более интересное. Это будет мой авторский вариант нэшвилловской схемы с тремя звукоснимателями и пятипозиционным переключателем, причём оба добавочных промежуточных положения получатся бесшумными, а три стандартных телекастеровских звучания нисколько не пострадают.
Читать дальше →
Всего голосов 35: ↑34 и ↓1+51
Комментарии19

Сложно о простом. Транспортный уровень (L4) модели OSI

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров12K


Приветствую, коллеги! Меня зовут ProstoKirReal, и сегодня мы продолжим наше путешествие по модели OSI, обсудив транспортный уровень (L4). Этот уровень играет ключевую роль в обеспечении надежной передачи данных.
Читать дальше →
Всего голосов 25: ↑22 и ↓3+25
Комментарии11

Список из 100 полезных фраз для IT на английском языке с примерами употребления

Время на прочтение12 мин
Количество просмотров17K

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

Чтобы иметь обоснованное представление об этом, предлагаю воспользоваться гайдом из 100 слов наиболее часто встречающихся в теме IT. Этот список наработан мною за 2 года работы с видео и статьями из таких изданий, как MIT, TechLife News, Bloomberg, Science Today, Harvard Business Review. 

Слова разделены по рубрикам и к каждому слову добавлены описание на английском, перевод и пример употребления. В отдельных случаях указана транскрипция, чтобы вы обратили внимание на правильное произношение.

Можно ли выучить английский по списку слов? Нет, конечно. Но по нему можно оценить в процентном соотношении, сколько из 100 вам уже известно. 

Важно: не воспринимайте перевод слишком буквально и попробуйте предложить свой, исходя из описания на английском.

Читать далее
Всего голосов 27: ↑23 и ↓4+26
Комментарии25

А что если вместо банковского вклада использовать облигации после резкого повышения ставки Банком России?

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров21K

Процентные ставки по вкладам сейчас очень высокие - Банк России публикует информацию о 17,11%, но что если вместо традиционных банковских депозитов использовать облигации для сбережения и получения дополнительного пассивного дохода от этого актива?

Какие у облигаций есть особенности?

📍 Покупать облигации всегда выгоднее, когда ключевая ставка высокая (сейчас 18%). В таких случаях рыночная цена облигаций будет ниже, а доходность к погашению - больше.

📍 При покупке облигаций доходность фиксирует на всё время владения облигациями до их погашения.

📍 Когда Банк России начнет снижать ставку, доходность облигаций начнет падать, а цена - расти, но доходность облигаций, которые уже куплены останется неизменной.

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

За эти годы скрипт регулярно менялся. Сейчас представляю его обновленную версию.

Ищём куда пристроить рубли‭💸
Всего голосов 26: ↑21 и ↓5+20
Комментарии161

Подборка игр с низкоуровневым программированием

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров34K

TL;DR

Игры от Zachtronics:

TIS-100, EXAPUNKS, SHENZHEN I/O

Про создание процессора от логических элементов и до написания кода на ассемблере: браузерная бесплатная nandgame.com, более продвинутая Turing complete.

Если Вам нравится какая-то игра из перечисленных - наверно, и остальные тоже подойдут. В каждую из них я наиграл по 30+ часов, получил кучу удовольствия и научился чему-то новому.

Подробности
Всего голосов 67: ↑66 и ↓1+79
Комментарии26

Давайте сделаем крупное приложение на Flask (язык Python)

Время на прочтение18 мин
Количество просмотров18K

На Хабре я часто вижу статьи о реализации тех или иных фич на Python-фреймворках. Я объединил все эти фичи в реальный проект с открытым исходным кодом, чтобы у вас сложилась целостная картина. Мы с вами создадим UX/UI на Figma, напишем фронтенд на HTML, CSS, SASS, Bootstrap и JavaScript, создадим ER-диаграмму в MySQL Workbench, напишем бекэнд на Flask, создадим регистрацию через социальные сети OAuth 2.0 в один клик, используем брокер сообщений и асинхронную очередь Celery для отправки писем на электронную почту, сделаем WYSIWYG-редактор, реализуем полнотекстовый поиск Elasticsearch, закешируем Redis, покроем тестами pytest и запустим в Docker-контейнерах, поговорим о многопроцессности для WSGI-шлюза Gunicorn.

Читать далее
Всего голосов 19: ↑19 и ↓0+25
Комментарии43

Освоение любой темы с помощью искусственного интеллекта и метода Фейнмана

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров58K

Когда в последний раз вы сталкивались с трудной для понимания темой? Или проводили часы за просмотром обучающих видео на YouTube?

Существует множество эффективных методик обучения, позволяющих усвоить сложные концепции и обрести уверенность в своих знаниях. Если вы, как и я, постоянно стремитесь к саморазвитию, то понимаете важность правильного подхода к обучению. Одним из наиболее простых и действенных методов является техника Фейнмана.

В этой статье я расскажу, как эффективно применять метод Фейнмана и использовать искусственный интеллект для восполнения пробелов в знаниях.

По окончании чтения вы научитесь использовать ChatGPT для разбора сложных концепций и их интуитивного освоения всего за четыре простых шага.

Читать далее
Всего голосов 54: ↑42 и ↓12+38
Комментарии29

Тысяча и одна библиотека С++

Время на прочтение65 мин
Количество просмотров29K

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

Столкнувшись много раз подряд с тем, что найти что-то толковое довольно непросто, я решил попробовать распутать это узел и предложить для русскоязычных читателей свой справочник классных библиотек на С++. Я исходил из этого источника. Это очень многогранный и объемный список библиотек языка С++, но, скажем так, у меня были к нему вопросы. Потому я сделал перевод, затем значительно улучшил его в плане содержания (далее объясню, как, почему и зачем). На выходе получилось около 1000 библиотек. Как в сказке). Они, конечно, не покрывают все возможные задачи и предметные области, но поверьте, они затрагивают действительно многое.

Прикоснуться к сокровищнице языка С++
Всего голосов 82: ↑81 и ↓1+92
Комментарии23

Самые дикие налоговые проблемы, в которые встряли уехавшие из России айтишники в 2024

Время на прочтение10 мин
Количество просмотров63K

Попытка налоговой отхватить 6% с продажи квартиры в Грузии у налогового нерезидента РФ, двойное налогообложение заработанной крипты от российской ФНС, а также штраф 30% за сдачу в аренду недвижимости в Германии – в этой статье мы собрали самые жуткие истории из жизни, с которыми налоговые юристы сталкивались на практике.

Читать далее
Всего голосов 163: ↑148 и ↓15+163
Комментарии279

Наше расследование: Блогеры и все все все… Часть 2

Время на прочтение7 мин
Количество просмотров28K

Прошлая наша статья, где мы задали несколько вопросов блогеру IMAXAI (он же Максим Горшенин) почему-то была им оставлена без должного внимания. Мы предположили, что Максима опять все обманули, и его лучшие друзья, которые "все разработали сами", на самом деле не такие уж и "все сами", а всего лишь в шелкографии китайской платы нарисовали свой бренд. Так как Максим почему-то не захотел во имя "импортозамещения" задать наши неудобные вопросы своим друзьям, то у нас появились теперь вопросы к самому Максиму. Является ли целью его деятельности действительное импортозамещение, или же просто из меркантильных целей, на волне хайпа и эпатажа, он продвигает тех кто с ним сотрудничает и топит других, кто отказался от его предложений? И что будет если те кого он так истово возносит на пьедестал импортозамещения окажутся обычными продвинутыми "переклейщиками шильдиков"? Интересно? Ну что же, сегодня мы поближе рассмотрим очередного друга блогера - компанию GS Group, чьей продукцией наш подопечный, кстати, приторговывает на своем сайте.

Читать далее
Всего голосов 190: ↑179 и ↓11+214
Комментарии66

Как мужик… в банк ходил

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров13K

В далеком 2007 году решил брать жилье. Да не простое, а ипотечное.
Со временем понял, "самый надежный вклад - ипотечный" © (мое)

Обратился к известному всем синему банку на 3 буквы за выдачей небольшой суммы и быстро погасил кредит. Уже тогда формировалась кредитная история и был применен лайфхак, как сейчас любят говорить. Берется небольшая сумма кредита, например на покупку бытовой техники, и успешно закрывается кредит. В кредитной истории красуется зеленая галочка, банк любезно рассматривает выдачу более высокой суммы.
Кредит за кредитом, история пополняется зелеными галочками, улыбка оператора все шире при каждом визите. Так продолжалось на протяжении десятка лет. Жизненная ситуация последние лет 7 сложилась так,что не требовалось обращаться в банк. Зарплатные фонды находились в других банках. Синий банк не беспокоил своей рекламой, да и никак не напоминал про себя и открытый счет. Так бы и не вспомнил про давно заблокированные карты и то,что нужно сообщить новый номер телефона, так как старый уже потерял.
Но .... Penapple


Читать далее
Всего голосов 53: ↑46 и ↓7+55
Комментарии53

Скука как катализатор успеха

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров5.4K

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

Читать далее
Всего голосов 15: ↑12 и ↓3+10
Комментарии5

Клетка ХIX. Метаболизм

Время на прочтение19 мин
Количество просмотров1.6K

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

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

Читать далее
Всего голосов 11: ↑7 и ↓4+7
Комментарии0

SQL HowTo: разные варианты работы с EAV

Время на прочтение3 мин
Количество просмотров22K

Соблазн использовать модель EAV (Entity-Attribute-Value) при организации структуры БД весьма велик, особенно когда предметная область заранее плохо известна (или разработчик просто не хочет в нее углубляться). Это ведь так удобно - создать "универсальный" способ описания характеристик объектов, который больше не потребует доработок базы ни при появлении новых типов объектов, ни при возникновении новых атрибутов...

Однако, за любую универсальность приходится платить сложностью и производительностью запросов - так что json[b] может оказаться более эффективной заменой. Но если уж такая модификация невозможна - давайте попробуем выжать максимум производительности из доставшегося нам legacy на самом простом примере.

Читать далее
Всего голосов 17: ↑16 и ↓1+22
Комментарии7
1
23 ...

Информация

В рейтинге
2 670-й
Зарегистрирован
Активность