Обновить
2K+
88

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

50
Подписчики
Отправить сообщение

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

Время на прочтение7 мин
Охват и читатели54K
Прим. Эта статья была опубликована в майском номере 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 лучших алгоритмов в хронологическом порядке. (Все даты и имена стоит воспринимать как аппроксимацию первого порядка. Большинство алгоритмов формируются в течение времени при участии многих ученых).
Читать дальше →

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

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

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

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

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

Время на прочтение4 мин
Охват и читатели19K

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

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

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

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

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

Время на прочтение13 мин
Охват и читатели59K

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

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

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


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

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

Время на прочтение5 мин
Охват и читатели7.5K
Меня, как разработчика, работа с цветами порой утомляет, но существуют проекты, упрощающие эту деятельность. 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 — это способ визуализации пикселей, да и разрабатывалась эта модель не для удобного «управления» значениями.
Читать дальше →

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

Время на прочтение7 мин
Охват и читатели58K

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

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

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

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


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

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

Время на прочтение4 мин
Охват и читатели10K

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

Читать далее

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

Время на прочтение11 мин
Охват и читатели9.7K

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

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

Читать далее

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

Время на прочтение5 мин
Охват и читатели21K

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

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

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

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

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

Читать далее

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

Время на прочтение8 мин
Охват и читатели20K

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

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

Читать далее

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

Время на прочтение9 мин
Охват и читатели9.2K

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

Читать далее

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

Время на прочтение10 мин
Охват и читатели29K

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

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

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

Читать далее

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

Время на прочтение6 мин
Охват и читатели19K

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

Читать далее

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

Время на прочтение6 мин
Охват и читатели32K

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

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

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

Читать далее

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

Время на прочтение8 мин
Охват и читатели31K

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

Читать далее

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

Время на прочтение6 мин
Охват и читатели58K

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

Читать далее

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

Время на прочтение6 мин
Охват и читатели46K

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

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

Читать далее

Атанасов против Мокли: судебный спор о патенте на ENIAC

Время на прочтение8 мин
Охват и читатели2.9K

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

Читать далее

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность