Pull to refresh
86
0
Send message

Как работает Wi-fi. Часть 2. Физический уровень

Reading time12 min
Views44K
image

В предыдущей статье о Wi-Fi мы рассказывали об истории беспроводных сетей: первой беспроводной сети AlohaNet, коммерческой WaveLan и IEEE, который поспособствовал стандартизации беспроводных устройств. Вот, кстати, ссылочка на первую публикацию. В этой части цикла про Wi-Fi мы расскажем о сигнале, передающем информацию, а именно: как аналоговые электромагнитные волны передают цифровой сигнал, как модулируется сигнал и что такое мультиплексирование.
Читать дальше →
Total votes 13: ↑12 and ↓1+14
Comments5

Как работает Wi-fi. Часть 1. История беспроводных сетей

Reading time8 min
Views27K

На фотографиях выше изображены Джордж Антейл и Хеди Ламарр — два деятеля культуры (композитор и актриса) и по совместительству изобретатели. В определенных кругах эта пара известна своей концепцией передачи информации по радио, которая впоследствии нашла применение в Wi-fi, GPS, Bluetooth и… Короче, много где.

Во время Второй мировой войны Хеди и Джордж предложили систему для дистанционного управления торпедами. Как не иронично, основной проблемой управляемых торпед того времени была их система управления. Она работала на одной частоте, и если противник обнаруживал угрозу, то «бил» по слабому месту торпеды: отправлял помехи на несущей частоте.

Идея новаторов заключалась в том, чтобы отправлять сигнал частями на разных частотах. Сейчас эта концепция известна как псевдослучайная перестройка рабочей частоты. Технически синхронизацию частот предлагалось осуществлять с помощью пружинных двигателей. Ребята даже получили патент на свою разработку и предложили её армии США, но идею реализовали только в 60-х годах, уже после окончания действия патента.

Порой Хеди Ламарр называют «изобретательницей Wi-fi». Но, пожалуй, такой титул несколько преуменьшает вклад других, не менее значимых открытий, которые позволяют сидеть в интернете без провода. О том, как создавалась и развивалась технология Wi-fi, читайте под катом.
Читать дальше →
Total votes 24: ↑21 and ↓3+25
Comments1

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

Reading time7 min
Views46K
Прим. Эта статья была опубликована в майском номере 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 лучших алгоритмов в хронологическом порядке. (Все даты и имена стоит воспринимать как аппроксимацию первого порядка. Большинство алгоритмов формируются в течение времени при участии многих ученых).
Читать дальше →
Total votes 38: ↑37 and ↓1+46
Comments44

Авторизация в PostgreSQL. Часть 2. Безопасность на уровне строк

Reading time10 min
Views8.4K
image
Приветствую вас в очередном разборе инструментов авторизации PostgreSQL. В первых двух разделах предыдущей статьи мы обсуждали, чем интересна авторизация в PostgreSQL. Вот содержание этой серии материалов:

  • Роли и привилегии;
  • Безопасность на уровне строк (мы сейчас здесь);
  • Производительность безопасности на уровне строк (coming soon!);

В первой статье мы рассмотрели, как роли и предоставленные привилегии влияют на действия (запросы SELECT, INSERT, UPDATE и DELETE) в отношении объектов БД (таблиц, представлений и функций). Та статья закончилась небольшим клиффхэнгером: если вы создадите многопользовательское приложение, используя только роли и привилегии для авторизации, то ваши пользователи смогут удалять данные друг друга, а может и вообще друг друга. Необходим другой механизм, позволяющий ограничить пользователей чтением и изменением только собственных данных — механизм безопасности на уровне строк (RLS).
Читать дальше →
Total votes 11: ↑10 and ↓1+12
Comments2

Авторизация в PostgreSQL. Часть 1 — Роли и Привилегии

Reading time11 min
Views35K
image

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

Несмотря на важность темы, авторизация в базе данных являлась моим слабым местом в начале карьеры. NoSQL был самым крутым парнем на районе, а мир веб-разработки соблазняли фреймворки (например Rails), которые давали более приятный опыт разработки, нежели сложные SQL-скрипты. Но мир меняется. SQL и реляционные базы данных снова оказались в центре внимания, поэтому важно научиться пользоваться ими безопасно и эффективно. В этой серии статей я раскрою основные области авторизации в базах данных с акцентом на PostgreSQL, поскольку это одна из самых зрелых и функциональных СУБД с открытым исходным кодом.
Читать дальше →
Total votes 10: ↑7 and ↓3+6
Comments1

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

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

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

Вот поэтому мне нравится собирать редкие и старые книги по программированию. Это не хобби, благодаря которому вас будут приглашать на вечеринки. Но оно на удивление дешевое (спрос на бывшие в употреблении и устаревшие технические справочники невелик). И может принести немного удовольствия. Есть что-то причудливое в компьютерных книгах до эпохи Интернета, в их бумаге и грубой верстке. Каждая из них способна вызвать приятную ностальгию, даже если вы и не застали эпоху.
Читать дальше →
Total votes 22: ↑21 and ↓1+29
Comments18

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

Reading time4 min
Views15K

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

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

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

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

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

Reading time13 min
Views31K

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

DBaaS: друг или враг?

Reading time7 min
Views2.1K

Нажмите, чтобы узнать больше об авторе Matt Yonkovit.

Лесной пожар — это проявление могущественной силы природы. Он может все разрушить, а может дать начало новой жизни и способствовать положительному росту. 

Облачная база данных как услуга (DataBase-as-a-Service, DBaaS) обладает аналогичной двойственностью. 

«Сила» облака трансформировала нашу техническую инфраструктуру. Нигде это не проявляется так ярко, как в росте количества предложений DBaaS на рынке.

Мощные игроки рынка (такие, как Amazon Aurora, Azure SQL, Google Cloud SQL и MongoDB Atlas) быстро стали самым популярным для пользователей способом запуска базы данных в облаке. Но при неправильном развертывании или использовании перед пользователями могут возникать препятствия и проблемы. В своем последнем «Magic Quadrant» компания Gartner сделала стратегические предположения, что 75% всех БД будут развернуты или перемещены на облачные платформы, и только 5% облачных БД когда-либо рассматривались для возвращения в локальную среду. К 2023 году предпочтение к управлению данными в облаке приведет к сокращению количества поставщиков услуг, но в тоже время использование нескольких «облаков» усложнит управление данными и интеграцию. 
Читать дальше →
Total votes 6: ↑3 and ↓3+1
Comments0

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

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


Давайте выясним, как он работает
Читать дальше →
Total votes 30: ↑29 and ↓1+37
Comments23

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

Reading time5 min
Views6.7K
Меня, как разработчика, работа с цветами порой утомляет, но существуют проекты, упрощающие эту деятельность. 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 — это способ визуализации пикселей, да и разрабатывалась эта модель не для удобного «управления» значениями.
Читать дальше →
Total votes 32: ↑32 and ↓0+32
Comments6

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

Reading time7 min
Views55K

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

Утверждение Дойча лежит на пересечении многих философских вопросов, и многое из того, что он говорит, является скорее тезисом, чем синтезом (или объяснением, как он это называет). (прим. в данном контексте тезис и синтез является отсылкой к триаде Гегеля) Дойч стремительно защищает универсальность объяснительной способности человека, в том числе отрицая утверждение Докинза о том, что давление естественного отбора ограничивает способность к объяснению.
Читать дальше →
Total votes 41: ↑36 and ↓5+43
Comments116

Установка Kubernetes на домашнем сервере с помощью K3s

Reading time23 min
Views27K

Но зачем


Знаю, о чем вы думаете — Kubernetes? На домашнем сервере? Кто может быть настолько сумасшедшим? Что ж, раньше я согласился бы, однако недавно кое-что изменило мое мнение.


Я начал работать в небольшом стартапе, в котором нет DevOps разработчиков со знанием Kubernetes (в дальнейшем K8s), и даже будучи старым ненавистником K8s из-за его громоздкости, был вынужден признать, что мне не хватает его программного подхода к деплойментам и доступу к подам. Также должен признать, что азарт от укрощения настолько навороченного зверя давно будоражит меня. И вообще, K8s захватывает мир — так что лишние знания не навредят.

Читать дальше →
Total votes 12: ↑11 and ↓1+11
Comments9

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

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


Фотография кристалла микросхемы Philips QC100. Фото предоставленоEvilMonkeyDesignz.
Читать дальше →
Total votes 24: ↑24 and ↓0+24
Comments1

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

Reading time4 min
Views9.4K

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

Читать далее
Total votes 23: ↑23 and ↓0+23
Comments17

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

Reading time11 min
Views7.7K

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

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

Читать далее
Total votes 9: ↑8 and ↓1+10
Comments2

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

Reading time5 min
Views12K

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

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

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

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

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

Читать далее
Total votes 26: ↑17 and ↓9+12
Comments27

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

Reading time8 min
Views19K

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

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

Читать далее
Total votes 52: ↑47 and ↓5+56
Comments39

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

Reading time9 min
Views8.5K

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

Читать далее
Total votes 28: ↑28 and ↓0+28
Comments37

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

Reading time10 min
Views20K

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

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

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

Читать далее
Total votes 26: ↑22 and ↓4+25
Comments10

Information

Rating
Does not participate
Works in
Registered
Activity