Pull to refresh
87
0
Send message

10 лучших алгоритмов 20 века

Reading time7 min
Reach and readers53K
Прим. Эта статья была опубликована в майском номере 2000 года журнала SIAM. На рубеже веков появилась «мода» на подведение итогов уходящего столетия. И алгоритмы этой участи не избежали. В этой статье авторы делают обзор 10 лучших алгоритмов 20 века. Возможно, вам будет интересно узнать, какие алгоритмы, по мнению авторов списка, внесли наибольший вклад в развитие науки.

Algos — греческое слово, означающее боль. Algor — латинское слово, означающее холод. Но ни то, ни другое не является корнем слова «алгоритм», которое происходит от имени Аль-Хорезми – арабского ученого девятого века – чья книга «al-jabr wa’l muqabalah» (Китаб аль-джебр ва-ль-мукабала) переросла современные учебники по алгебре для средней школы. Аль-Хорезми подчеркивал важность методических процедур для решения задач. Будь он сегодня здесь, то, несомненно, был бы впечатлен вершинами математического метода, названного в его честь.

Часть из лучших алгоритмов компьютерной эры были освещены в январско-февральском выпуске 2000 года журнала Computing in Science & Engineering — совместном издании Американского института физики и Компьютерного общества IEEE. Приглашенные редакторы Jack Dongarra (Джек Донгарра) из Университета Теннесси и Francis Sullivan (Фрэнсис Салливан) из Института оборонного анализа составили список из 10 алгоритмов, который они назвали «Top Ten Algorithms of the Century».

«Мы попытались собрать 10 алгоритмов, оказавших наибольшее влияние на развитие и практику науки и техники в 20 веке», — пишут Донгарра и Салливан. По признанию авторов, как и в любом рейтинге, их выборы неизбежно будут спорными. Когда дело доходит до выбора лучшего алгоритма, кажется, что он и вовсе не существует.

Итак, вот список 10 лучших алгоритмов в хронологическом порядке. (Все даты и имена стоит воспринимать как аппроксимацию первого порядка. Большинство алгоритмов формируются в течение времени при участии многих ученых).
Читать дальше →

О старых книгах по программированию

Reading time6 min
Reach and readers20K
image
Как технари, мы постоянно находимся на фронте технологий: новые версии, новые стандарты, новые фреймворки, новые парадигмы. Во многом это хорошо. Многие результаты представляют собой ощутимое улучшение по сравнению с существующим положением дел. Специализация (например, степени бакалавра в области AI) ускоряет развитие перспективных областей, приближая будущее с захватывающими возможностями. До тех пор, пока наши многообещающие технологии находят эффективное применение.

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

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

Атака Ферма на RSA

Reading time4 min
Reach and readers19K

В 1643 году Пьер де Ферма предложил метод факторизации. Этот метод позволяет эффективно раскладывать целые числа на простые множители.

Алгоритм шифрования и подписи RSA основывается на том, что факторизация — это задача с высокой сложностью. Открытый ключ RSA содержит составное число (обычно называемое N), которое является произведение двух простых чисел (обычно p и q).

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

Я применил метод факторизации Ферма к большим наборам открытых ключей RSA. И я смог обнаружить небольшое количество уязвимых ключей, которые принадлежали принтерам Canon и Fujifilm (первоначально выпускавшихся под маркой Fuji Xerox). В этих устройствах используется криптографический модуль от компании Rambus.
Читать дальше →

Физика двоичной логики

Reading time13 min
Reach and readers53K

Вопрос «Как работает компьютер?» чрезвычайно многогранен и ответ на него зависит от выбранного уровня абстракции. Рассказ о компьютере может строиться вокруг прикладного ПО, операционной системы или архитектуры. Эта статья — попытка дать ответ на этот вопрос с точки зрения нижних уровней абстракции: логических схем и принципа их работы.
Читать дальше →

Toshiba T1100. Культовый ноутбук без жесткого диска

Reading time7 min
Reach and readers17K
Ноутбук, предназначенный «для мобильных профессионалов», до 8 часов автономной работы, по цене 1899 долларов… в 1985 году. Как такое возможно? Позвольте представить героя нашей истории, Toshiba T1100 Plus:


Давайте выясним, как он работает
Читать дальше →

HSLuv — удобное цветовое пространство для разработчиков

Reading time5 min
Reach and readers7.3K
Меня, как разработчика, работа с цветами порой утомляет, но существуют проекты, упрощающие эту деятельность. HSLuv — это один из таких проектов, и в рамках этой статьи я постараюсь объяснить, что это и как это может помочь разработчикам.

Проблема традиционных цветовых пространств


Традиционно в IT используются RGB или HSL.

Основная проблема этих цветовых моделей заключается в том, что они нелинейны с точки зрения человеческого восприятия.

RGB


Для примера возьмем равномерные ступенчатые градиенты RGB цветов.

  • градиент красного — это цвета #000, #100, #200, #FEE, #FFFи т.д.;
  • градиент зеленого — это цвета #000, #010, #020и т.д.;
  • градиент синего — это цвета #000, #001, #002и т.д.;
  • градиент желтого — это цвета #000, #110, #220и т.д.;
  • градиент голубого — это цвета #000, #011, #022и т.д.;
  • градиент пурпурного — это цвета #000, #101, #202и т.д.


Мы можем увидеть несколько вещей:

  • Яркость цветов увеличивается неравномерно: чем оттенок ближе к белому цвету, тем изменение яркости меньше;
  • Яркость разных цветов различается: синий намного темнее остальных;
  • Насыщенность также неравномерна: синий и красный выглядят «ненасыщенными» в правой части градиента.

Хорошо, RGB — это способ визуализации пикселей, да и разрабатывалась эта модель не для удобного «управления» значениями.
Читать дальше →

Инопланетная математика

Reading time7 min
Reach and readers57K

В «The Beginning of Infinity«* Дэвид Дойч утверждает, что человеческий мозг — это так называемый универсальный объяснитель. В этом утверждении заключено много различных смыслов, но основная идея состоит в том, что за пределами субъективного человеческого опыта существует объективная физическая реальность, которая подвластна законам природы, и человеческий мозг, благодаря эволюции, способен выявлять и определять любые законы природы (следовательно, универсальность) посредством формирования физических теорий, выраженных на языке математики и подтвержденных или опровергнутых с помощью эмпирических измерений.

Утверждение Дойча лежит на пересечении многих философских вопросов, и многое из того, что он говорит, является скорее тезисом, чем синтезом (или объяснением, как он это называет). (прим. в данном контексте тезис и синтез является отсылкой к триаде Гегеля) Дойч стремительно защищает универсальность объяснительной способности человека, в том числе отрицая утверждение Докинза о том, что давление естественного отбора ограничивает способность к объяснению.
Читать дальше →

Реверс-инжиниринг старой микросхемы OR/NOR

Reading time6 min
Reach and readers6K
Не так давно я получил фотографию кристалла загадочной схемы OQ100 [1] от EvilMonkeyDesignz. Я проанализировал её и обнаружил, что это чип логики, реализованный на быстрой ECL (эмиттерно-связанная логика) схеме и датируемый, вероятно, началом 1970-х годов. Чип содержит три логических элемента, два с 2 входами и один с 4 входами. Каждый элемент имеет неинвертированный и инвертированный выходы, работая как вентили OR и NOR. Эта статья резюмирует мои исследования. (Недавно я также проанализировал OQ104, другой чип из этой серии.)


Фотография кристалла микросхемы Philips QC100. Фото предоставленоEvilMonkeyDesignz.
Читать дальше →

Проактивные SIM-карты

Reading time4 min
Reach and readers10K

После столкновения с проактивными SMS-сообщениями от SIM-карты AT&T (перевод статьи тут) я решил проверить и другие SIM-карты. Не секрет, что практически все они поддерживают проактивные функции, но мне стало интересно, сколько карт используют их фактически.

Читать далее

Data-Oriented архитектура

Reading time11 min
Reach and readers9.3K

В архитектуре программного обеспечения существует один малоизвестный паттерн, заслуживающий большего внимания. Архитектура, ориентированная на данные, (data-oriented architecture, DOA) была впервые описана Радживом Джоши в отчете RTI 2007 года, а затем в 2017 году Кристианом Ворхемом и Эрихом Шикутой из Венского университета в статье iiWAS. DOA — это инверсия традиционной дихотомии между монолитным кодом и хранилищем данных (монолитная архитектура) с одной стороны, и небольшими распределенными независимыми компонентами с собственными хранилищами (микросервисы и сервис-ориентированная архитектура) с другой. В архитектуре, ориентированной на данные, монолитное хранилище данных является единственным источником состояния в системе, на которое воздействуют слабосвязанные микросервисы без состояния.

Мне повезло, что мой бывший работодатель выбрал такую необычную архитектуру. Это напомнило, что одни и те же вещи можно делать по-разному. Архитектура, ориентированная на данные, ни в коем случае не является панацеей; у нее есть собственный уникальный набор издержек и преимуществ. Однако я обнаружил, что многие крупные компании и экосистемы сталкиваются с проблемами, для устранения которых и предназначена данная архитектура.

Читать далее

Структура смартфона — иллюзия контроля

Reading time5 min
Reach and readers19K

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

1. “Процессор приложений”. Это устройство, на котором работает Android или iOS. С этой частью смартфона вы и взаимодействуете. Здесь запускаются и работают ваши приложения. Скорее всего, когда вы думаете о своём смартфоне, вы думаете о процессоре приложений.

2. “Baseband-процессор”. Это устройство управляет сотовой радиосвязью телефона. И под сотовой связью мы подразумеваем действительно сотовые технологии, такие как LTE, 5G и т.д., а не Wi-Fi. Процессор основной полосы частот отвечает за подключение и сброс телефонных звонков, сеансов передачи данных, обрабатывает СМС и выполняет другие функции сотовой связи, порой невидимые для пользователя, такие как “Управление мобильностью”.

3. SIM-карта. СИМ-карта представляет собой полную компьютерную систему (с процессором, памятью и файловой системой), работающую под управлением набора приложений и собственной ОС. Когда вы устанавливаете СИМ-карту, она становится неотъемлемой и активной частью вашего смартфона. 

Как у пользователя смартфона, у вас могла возникнуть иллюзия, что именно вы управляете своим телефоном. Но на самом деле, функциями вашего телефона управляет ПО этих трех систем, из которых только одна доступна вам напрямую.

Читать далее

Создание массива зеркал на 3D-принтере

Reading time8 min
Reach and readers20K

Недавно я сделал предложение руки и сердца одному прекрасному человеку с помощью шестигранной зеркальной штуковины, изображенной на фото. Мы оба большие нёрды, и мне хотелось сделать что-нибудь особенное, поэтому я спроектировал и распечатал на 3D-принтере зеркальный массив, чтобы задать заветный вопрос. Зеркала расположены под таким углом, что прямо перед закатом в нашу 8-ю годовщину они отражают свет заходящего солнца на землю, образуя слова «MARRY ME?»

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

Читать далее

Реверс-инжиниринг необычной модемной платы IBM 1965 года

Reading time9 min
Reach and readers9.1K

На винтажной плате IBM ниже есть большой металлический блок, который привлек мое внимание, поэтому я подробно разобрался в ней. Оказалось, что плата — это часть модема, а большая металлическая коробка - трансформатор. Этот материал рассказывает о том, что я в итоге узнал об этой плате, а также немного об истории модемов.

Читать далее

Reversing для чайников — ассемблер x86 и код на С (для начинающих/ADHD friendly)

Reading time10 min
Reach and readers28K

До того как заняться реверс-инжинирингом, исполняемые файлы казались мне черной магией. Я всегда интересовался, как все работает под капотом, как двоичный код представлен внутри .exe файлов, и насколько сложно модифицировать “исполняемый код” без доступа к исходникам.

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

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

Читать далее

Переработка отработанного ядерного топлива

Reading time6 min
Reach and readers18K

Переработка ОЯТ (отработанного ядерного топлива) — это явление далеко не новое. Что уж там, на заре атомной промышленности переработка ОЯТ была одним из ключевых этапов производства. Правда, использовалась она не в мирных целях, а для наработки оружейного плутония в рамках Манхэттенского проекта. Дело в том, что плутоний является побочным продуктом работы ядерного реактора с ураном в качестве топлива. После реактора отработанное топливо направлялось на переработку с целью выделения из него фракций плутония. 

Читать далее

Что AT&T отправляет на номер 1111340002?

Reading time6 min
Reach and readers32K

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

Весной 2021 года судебные представители обратились ко мне по поводу загадочного СМС на номер 1111340002. Это СМС-сообщение фигурировало в деле о причинении смерти по неосторожности с обвинениями в отвлечении внимания во время вождения. Вот, что я обнаружил…

TL;DR: драйвер AT&T СИМ-карты отправил СМС на номер 1111340002 с отчетом о том, что на телефоне было установлено автоматическое обновление ПО. Отправка сообщения не требовала никаких действий со стороны водителя. Чтобы разобраться в этом, потребовалось вызвать AT&T в суд и провести анализ в лабораторных условиях.

Читать далее

Радиоактивные отходы — что это такое и как с ними обращаются в России

Reading time8 min
Reach and readers30K

«Как Россия превратилась в мировую свалку ядерных отходов». «Россия вновь становится свалкой радиоактивного мусора?» И десяток других, похожих друг на друга заголовков, в которых фигурируют апокалиптичные суда с ядерными отходами, плывущие в Россию. Обычно так реагируют СМИ, когда в страну в очередной раз собираются завести что-то радиоактивное, например регенерированный уран из Франции или «урановые хвосты» из Германии. Вновь разгораются сражения в извечной войне экоактивистов и ядерщиков. И вновь жертвами становятся люди, для которых тонкости атомной индустрии такие же далекие, как и панды в Китае. Расставим точки над «i» и выясним, что является ядовитым мусором, а что — ценным сырьем. 

Читать далее

Первый смартфон на Android

Reading time4 min
Reach and readers11K

2007 год вряд ли когда-то перестанет ассоциироваться с огромным количеством неформальных субкультур и бесконечной ностальгией в духе “верните мне мой 2007”. Помимо этих, несомненно, замечательных вещей, 2007 год отметился и другим знаменательным событием — выпуск iPhone. Это не была революция в плане реализованных в нем технологий, однако именно он задал вектор развития мобильных устройств, с которым некоторые компании совладать не смогли. Например, Nokia — один из главных игроков рынка в нулевых; сейчас — скорее мем о самых крепких вещах во вселенной. А есть компании, которые, наоборот, смогли поймать новый тренд. Одна из таких компаний — Google. Эта статья о том, как и с чем Google вышла на рынок мобильных устройств.

Читать далее

Сценарий для апокалипсиса —  геомагнитная буря 1859 года

Reading time6 min
Reach and readers56K

В обыденном сознании последствия геомагнитных бурь ограничиваются головной болью и нарушением мобильной связи. Однако это справедливо лишь для слабых бурь. Вероятность же того, что мы станем свидетелями крупной чрезвычайно мала. Но на долю жителей 19 века и «местных путешественников во времени» всё же выпала такая участь. Речь идет о «Событии Каррингтона», геомагнитной бури 1859 года. В период слабой электрификации её последствия ограничились повреждениями телеграфной сети и, возможно, поломкой парочки «машин времени». По мнению некоторых экспертов, случись такая буря в наше время, она привела бы отключению электричества минимум на несколько месяцев. Рассмотрим подробнее природу события 1859 год.

Читать далее

Дизельгейт: экологическая афера стоимостью в 35 миллиардов долларов

Reading time6 min
Reach and readers45K

Стоянка “дефектных” автомобилей

В 2016 году Volkswagen AG получил Шнобелевскую премию по химии за изобретение хитроумного способа обманывать тесты на содержание в выхлопных газах окиси азота. Возможно, вы догадались, что речь идет о так называемом «Дизельгейте». Это мировой скандал, связанный с автомобилями концерна Volkswagen. В статье разберем, в чем конкретно заключалась суть и причина обмана, как все случайно вскрылось, чем все обернулось для Volkswagen и их клиентов.

Читать далее

Information

Rating
Does not participate
Registered
Activity