Search
Write a publication
Pull to refresh
593
141.8

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

Send message

Юристы продолжают пользоваться MD5 только из-за своего консерватизма

Level of difficultyMedium
Reading time11 min
Views13K

Недавно я узнала один загадочный факт: Международный уголовный суд хэширует электронные доказательства при помощи MD5.

Что в этом плохого? MD5 ужасно поломан. Настолько поломан, что специалисты уже больше десятка лет говорят, что никто не должен пользоваться MD5. Учитывая широкий выбор альтернатив, сегодня применение MD5 не имеет никакого смысла. И ещё одна загадка: MD5 использует не только МУС. Очевидно, им пользуется всё юридическое и криминалистическое сообщество США. Так почему же юристы по-прежнему применяют поломанную и устаревшую технологию?

Для начала мне нужно уточнить: я не юрист и не криптограф. Я разработчик ПО и консультант в сфере прикладной криптографии. И подозреваю, что я, возможно, единственный человек, интересующийся и криптографией, и юриспруденцией, в противном случае эту статью уже написал бы кто-то другой.

Юристы продолжают пользоваться этой поломанной и устаревшей технологией по нескольким причинам. По существу, юридическое сообщество обсуждает, действительно ли MD5 поломан в их конкретном случае. Они говорят «да, MD5 поломан в случае шифрования», но поскольку они не занимаются шифрованием, то им вполне можно его использовать.

В этом посте я расскажу о том, как возникло это обсуждение, и разберусь, правы ли юристы в том, что им можно безопасно применять MD5.
Читать дальше →

Мапперы на Famicom, NES, Денди: откуда взялись и зачем нужны (часть 1/2)

Level of difficultyMedium
Reading time17 min
Views16K

Примерно раз в десятилетие на русскоязычных около-компьютерных ресурсах кто-нибудь поднимает тему такого элемента архитектуры 8-битной Денди и её прародителей, как «маппер», пытаясь на пальцах объяснить, что же это такое. И каждый раз у меня возникает ощущение, что рассказчики сами не вполне знакомы с сюжетом. К тому же практически всегда речь идёт о чисто технических моментах, совершенно не затрагивая историю вопроса: откуда взялось, как развивалось, чем было полезно для фактических игр — что, на мой взгляд, может быть интересно гораздо более широкому кругу лиц.

Так сложилось, что я имею довольно глубокий, примерно по локоть, практический опыт взаимодействия с этими самыми «мапперами», также могу рассказать кое-что и за их историю, и, разумеется, обладаю уверенностью, что уж я-то точно понимаю всё как есть, и расскажу так, что все вздрогнут. Поэтому под катом — всё, что вы когда-либо хотели или не хотели спросить про мапперы, но боялись или вовсе даже и не собирались спрашивать.
Читать дальше →

Когда старый софт лучше нового

Level of difficultyEasy
Reading time7 min
Views76K

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

Практика показывает, что новые версии утилит часто изменяются к худшему, раздуваются, обрастают ненужными функциями, начинают тормозить или вовсе перестают запускаться. Ухудшение программного продукта со временем — известный процесс, для которого есть специальный термин: дерьмофикация (enshittification, слово придумал Кори Доктороу). Она происходит не только с десктопным или мобильным софтом, но и с платформами. Все мы за последние годы наблюдали дерьмофикацию Google, Reddit, Amazon, Twitter и Facebook (два последних вообще признаны экстремистами и запрещены в РФ). Аналогично с десктопным софтом и мобильными приложениями.

В то же время старый софт многолетней давности фантастически быстро работает. Программы в несколько мегабайт, которые запускаются мгновенно, потребляют минимум памяти и просто летают. По сути, ресурсы современных CPU для них избыточны. Пользоваться такими инструментами одно удовольствие. Такое чувство, что работаешь на суперкомпьютере, а не обычном ПК.
Читать дальше →

Неожиданное взаимодействие предсказания ветвлений и подсистем памяти

Reading time10 min
Views7.3K

Это 15-я статья в серии, посвящённая оптимизации подсистем памяти. Остальные доступны здесь (англ.).

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

К 30-летнему юбилею DOOM: как два садиста, психопат и мормон создали одну из величайших игр в истории? Часть 3

Level of difficultyEasy
Reading time6 min
Views21K

Продолжим наш рассказ о том, как несколько весьма своеобразных программистов создали великий и ужасный Doom. Мы уже поговорили о непростом детстве двух Джонов, главных героев нашей истории, и рассказали, как Кармак и Ромеро начали писать игры. Затем — как они встретились в депрессивном и криминальном городе среди луизианских болот, работая на компанию Softdisc. Теперь же наши герои дозрели до мысли о том, чтобы писать крутые игры вместе — тем самым встав на скользкую дорожку серьёзного геймдева. Они ещё не знали, куда именно она их приведёт, но были полны энтузиазма, жажды создания крутейших игр, а также фантазий самого мрачного характера. Впрочем, их первое совместное творение получилось совсем не мрачным — и некоторых членов команды это буквально выморозило!

Все части цикла статей о создании DOOM:
Читать дальше →

Мой первый прототип поискового движка

Level of difficultyMedium
Reading time6 min
Views7.5K

Я реализовал первый прототип собственного механизма поиска, который сокращённо назвал PSE (Personal Search Engine). Создал я его с помощью трёх скриптов Bash, возложив всю основную работу на sqlite3, wget и PageFind.

Браузер Firefox вместе с Newsboat сохраняют полезную информацию в базах данных SQLite. В moz_places.sqlite содержатся все посещённые URL-адреса и адреса закладок (то есть moz_bookmarks.sqlite базы данных SQLite). У меня получилось около 2000 закладок. Это меньше, чем я предполагал, так как многие оказались нерабочими из-за битых ссылок.

Нерабочие URL-адреса страниц сильно замедляют процесс сбора, так как wget приходится ожидать истечения различных таймаутов (например, DNS, ответа сервера, время скачивания). URL-адреса из «истории» составили бы интересную коллекцию для сбора, но тут не обойтись без списка исключений (например, нет смысла сохранять запросы к поисковым системам, веб-почте, онлайн-магазинам). Изучение этого вопроса я отложу до следующего прототипа.
Читать дальше →

Dead by Daylight: мультиплеерный ужас или кровавый Super Smash Bros

Level of difficultyEasy
Reading time13 min
Views5K
image

Хоррор-игры за последние десять лет пережили некий ренессанс — популярность отдельных инди-проектов вкупе с возникновением таких явлений как «стриминг» и «летсплеи» вернули жанр на рельсы, дав толчок как мейнстримным ААА-проектам, так и независимым работам.

Мультиплеерным хоррором никого не удивишь: все хотя бы раз играли с друзьями в кооперативные Left 4 Dead, Killing Floor или CoD Zombies. Другое дело соревновательная игра, которая называет себя ужастиком. Какие правила надо придумать и как сбалансировать стороны, чтобы никто не чувствовал себя приниженным, и всё ещё вызывать страх у игроков? Ответ дадут канадцы из Behaviour Interactive, создавшие уникальный проект, который уже почти 8 лет является одной из самых популярных онлайн-игр и отдаёт дань уважения всей культуре хорроров.
Читать дальше →

Даже в космосе пылища: какой мусор кружит в вакууме

Level of difficultyEasy
Reading time4 min
Views7.5K


Когда 12 апреля 1961 года Юрий Алексеевич достиг первой космической, вокруг Земли уже летал космический мусор от предшествующих исследовательских и экспериментальных запусков СССР и США. Правда, общее количество объектов было меньше 1000. Учитывая объём околоземного пространства, это было пренебрежимо мало. А сегодня поголовье космического мусора уже оценивается во многие десятки миллионов единиц. Вроде бы, подавляющее большинство — это мелкий мусор. Вот только скорости полёта за пределами атмосферы совсем другие. Та же МКС движется с относительной скоростью 28 000 км/ч. И столкновение с каким-нибудь мелким обломком или, упаси боже, гайкой может стоить дыры в обшивке или иллюминаторе. Или повреждения внешнего оборудования. Станцию уже больше 30 раз переводили на новую орбиту, чтобы избежать столкновения. Но отследить мелкий мусор технически невозможно. Например, пару лет назад прилетело в манипулятор. К счастью, только шкурку попортило.
Читать дальше →

Становится ли ПО хуже?

Level of difficultyEasy
Reading time9 min
Views16K

Недавно я наткнулся на пост Никиты Прокопова Software disenchantment. Он заставил меня вспомнить пост Мацея Цегловски The Website Obesity Crisis и множество других статей подобного типа. Среди людей, пишущих о разработке ПО, возникает всё более широкий консенсус о том, что приложения становятся больше, медленнее и забагованнее. И это в эпоху, когда оборудование должно позволить нам писать быстрее, меньше и надёжнее. DOOM, вышедший в 1996 году, можно запустить в тесте на беременность и на сотне других неожиданных устройств. Тем временем, современные чат-приложения, работая в фоновом режиме, занимают полгигабайта ОЗУ (или больше), а иногда полностью зависают даже на самом мощном железе.

Вышеупомянутые посты по этой теме состоят примерно на 80% из справедливой и разумной критики, а на 20% из оторванного от реальности ворчания.

Большинство разработчиков понимает, что глупо спрашивать «это ОС для смартфонов, что в ней может быть сложного?» или «моё приложение для работы с электронными таблицами в 90-х занимало 10 килобайт, тогда почему Factorio весит целый гигабайт?» Если вы не присутствовали при разработке, то не сможете оценить все её проблемы и сложности.

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

Почему же мы этого не делаем?
Читать дальше →

Февка — некрупная высокотемпературная горелка почти из ничего. Применение в стеклодувном деле

Level of difficultyEasy
Reading time7 min
Views16K
Февка в стеклодувном деле

Существует целый ряд технических забав, доступ к которым любителям затруднён из-за требующегося изрядного оснащения. Взять то же стеклодувное дело — натурально, огненная мистерия с вашим (нашим) непосредственным участием, да и стеклянные работы как сон наяву. Однако нужна вся эта прорва пугающего специфического оборудования, и в первую очередь — горелки-шланги-баллоны. Без которых, разумеется, не обойтись при более или менее крупных работах и применении тугоплавкого стекла. Для обработки же небольших заготовок из стёкол относительно легкоплавких, например, «платинового», можно с успехом применить простейшую самодельную горелку-февку, оснастив её отражателем пламени. А используя ещё и широкий мягкий подогревный огонь, можно попробовать заготовки покрупнее.
Полюбопытствовать

IT-2024: AI не решает — решают люди

Level of difficultyEasy
Reading time7 min
Views8.4K
Году в 2010-м я читал журнал с интервью одного из тогдашних топов диджитал-сферы и мне запомнилась фраза про то, что тот, кто может спрогнозировать ситуацию в отрасли на пять лет вперёд, тот идиот или мошенник. В наше время горизонт планирования сократился чуть ли не до квартала: трудно прогнозировать, понимая, что на твой бизнес, твою карьеру, твои инвестиции может оказать влияние что угодно, от международного конфликта до вируса или пожара в ЦОДе за тысячи километров от тебя. Уже давно пропало ощущение «островка стабильности» дома, в семье, среди коллег и друзей. В таких условиях остаётся одно, на что можно положиться, рассчитывать и что нужно ценить, — это люди. Увы, современные компании, да и сами люди этого не понимают. Я хочу вас предостеречь: берегите людей — это главный актив. И теперь это не фигуральное пафосное выражение, а формула выживания. 

В статье не будет универсальных рецептов и объективной логики — скорее, будет постановка проблемы, которую нам всем скоро придётся решать.

Читать дальше →

Dependency Injection контейнеры .NET, допускающие полиморфное поведение

Level of difficultyEasy
Reading time6 min
Views16K


Иногда случается так, что при разработке приложения на платформе .NET с внедрением зависимостей и сервисами от контейнера требуется поддержка полиморфного поведения.

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

Однако стандартный DI контейнер платформы долгое время не давал этой возможности.

В рамках этой статьи я решил напомнить альтернативы для решения этой задачи на тот случай, если вы ещё не успели переехать на .NET 8 или работаете в каком-нибудь Иннотехе, где в наличии только зеркало NuGet-пакетов, выпущенных до начала 2022 года.
Читать дальше →

Собираем электрогитару из конструктора

Level of difficultyEasy
Reading time8 min
Views19K


Привет, Хабр! Что может быть лучшим новогодним подарком для гитариста, чем электрогитара, которую он собрал сам? Конечно, многие предпочли бы престижный инструмент, усилитель или эффект от известного производителя.

И они были бы правы, потому что мир музыки и искусства вообще — это мир субъективных чувств, которые воплощаются в виде аудиовизуальных произведений. И результат напрямую зависит не только от объективного качества инструментов, но и от тех эмоций, которые они вызывают у творческого человека.

Лично мне нравится не только играть на гитаре, но и мастерить, а также украшать свои поделки. Поэтому у меня теперь есть самодельная гитара, о процессе изготовления которой я подробно расскажу.
Читать дальше →

Индастриал-пирсинг со светодиодами

Level of difficultyMedium
Reading time7 min
Views9.4K

Моя подруга носит украшения, называемые «индастриал-пирсингом» – по сути, такое украшение представляет собой штангу, продетую через два противоположных прокола в ухе.

Мне же, как любителю интересных проектов с электроникой, пришла идея встроить в эту штангу светодиоды.

Это один из проектов, которые я успел реализовать как раз перед закрытием London Hackspace. К этому моменту у меня уже год, как нет доступа к фрезерному станку, а без него просверливание отверстий в игле от шприца оказалось нетривиальной задачей.
Читать дальше →

Итоги блога RUVDS на Хабре в 2023 году

Level of difficultyEasy
Reading time5 min
Views1.7K
27 декабря Хабр подвёл итоги года, которые довольно интересные — из них видно, что Хабр не стоит на месте и продолжает расти и активно развиваться. У нас год ещё не закончился, но мы решили тоже подвести итоги — и чтобы сравнить их с предыдущими периодами, и чтобы как-то соотнести с итогами Хабра, да и в целом, возможно, они кому-то будут интересны.



В этот раз не хочется писать длинные вступления и подводки — допускаем, что и вам не очень хочется читать их в выходной день :) Поэтому только самое-самое.
Читать дальше →

Графика древности: палитры, часть 2/2

Level of difficultyEasy
Reading time26 min
Views11K

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

Проектирование аналога Google Docs

Level of difficultyEasy
Reading time8 min
Views14K

Google docs – это сервис для совместного редактирования документов. В целом подобные сервисы можно спроектировать двумя способами:

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

Большинство коммерческих решений ориентированы на клиент-серверный подход ввиду предоставляемого им более детального контроля. Так что и мы в этой статье разберём проектирование сервиса с использованием именно клиент-серверной архитектуры.
Читать дальше →

Зачем на камере и видеорегистраторе нужен криптоблок и как его восстановить

Level of difficultyMedium
Reading time11 min
Views10K


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

Когда распространились камеры с облачным доступом, массово решились такие проблемы, как доступ к камере без внешнего IP-адреса или с динамическим адресом. Теперь стало ненужным использовать проброс портов на роутере, VPN, динамический DNS, требующие целой инфраструктуры для доступа к камере. Запускай себе приложение, и оно получит доступ к видеопотоку или к архиву через облако. Производители камер в то время пробовали различные варианты, которые часто заканчивались печальными результатами, как с камерами Foscam, связанные с тем, что производитель выбрал путь простоты и дешевизны, а пользователи за него проголосовали рублём. Камеры становились легкодоступными, дешёвыми и, в конце концов, собой просто заполонили весь мир, проникнув в магазины, детские сады, зоопарки, аэропорты, бары, подъезды, офисы, входы, выходы, проходы, пароходы и даже в спальни с туалетами. В крупнейшем каталоге камер insecam.org тогда были сотни тысяч камер со всего мира.
Что такое криптоблок в прошивке, зачем он нужен и как его заменить

К 30-летнему юбилею DOOM: как два садиста, психопат и мормон создали одну из величайших игр в истории?

Level of difficultyEasy
Reading time8 min
Views32K

10 декабря 1993 года увидела свет новая игра от id Software. Мрачное название «DOOM» — «погибель, рок, обречённость» — сочеталось с брутальной обложкой, на которой человек в футуристичном шлеме отстреливался от наседающих на него рогатых демонов. Первая часть Doom ныне находится в тени своего легендарного и культового сиквела — но для своего времени она была настоящей революцией в геймдеве. А ещё это была первая игра на всё ещё очень вегетарианском рынке компьютерных игр США, где на экране были буквально реки крови и горы мяса. Не так уж натянув сову на глобус, можно сказать, что первый Doom буквально стал творением двух садистов, одного психопата и, что внезапно для такой компании, верующего мормона — которому просто нравилось делать игру, где массово карают чертей и бесов. Как родился Doom, и почему с такими создателями он не мог бы стать другим?

Все части цикла статей о создании DOOM:

Читать дальше →

Сложный был год

Level of difficultyEasy
Reading time12 min
Views23K
image

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

Из-за этого мы сейчас переживаем крупнейший передел рынка хостинга в России.

С 1 декабря новый федеральный закон запрещает заниматься хостингом тем, кто не в специальном реестре. В специальный реестр можно попасть, грубо говоря, если выполнить требования по хранению трафика клиентов и их авторизации по паспорту, «Госуслугам» или платёжной карте. Там куча нюансов, но примерно так.

Ещё в этом году в ЦОДы начало поступать полностью отечественное железо из отечественной компонентной базы и отечественных плат (на самом деле — нет), отвалилась страховка от киберрисков от AIG (вместе с AIG), и пришлось искать российский аналог. Были скандал и мир с Казахстаном при открытии двух новых площадок, мы взяли премию «Хостер года», запустили собственный бесплатный DNS (аналог Route53), перешли на OpenAPI в хостинге, открыли ещё две площадки: ЦОДы во Владивостоке и в Турции в Измире (это там, где было наводнение), запустили и сломали спутник (дважды), пережили крупную аварию и после неё ввели понятное SLA на доступность с денежной гарантией.

В общем, сложный был год. Налоги, катастрофы, проституция, бандитизм и недобор в армию. С последним мириться было нельзя… Простите, рассказываю по существу.
Читать дальше →

Information

Rating
Does not participate
Works in
Registered
Activity