Опубликовано

Новинка: “Microsoft SQL Server 2022”

Microsoft SQL Server 2022

Книга посвящена установке, настройке, администрированию и разработке баз данных с помощью СУБД MS SQL Server 2022. Материал сопровождается большим количеством примеров кода, которые можно использовать на практике. Рассмотрены основы языка запросов,  используемые типы данных, создание базы данных и основных ее объектов, средства отображения объектов и всех их характеристик. Показаны методы проектирования, создания и изменения таблиц; рассмотрены индексы, заполнение таблиц данными, изменение и удаление данных, выборка из базы, представления, транзакции, их характеристики и взаимодействие, хранимые процедуры и триггеры. Исходные коды примеров размещены на сайте издательства.

Эта книга в первую очередь предназначена тем, кто никогда не работал ни с какой версией MS SQL Server, а может быть, даже и вообще ни с какой системой управления базами данных (СУБД) — ни с реляционной, ни с сетевой, ни даже с иерархической, не говоря уж и о совсем простеньких (“настольных”) системах управления данными. Здесь вы не найдете сравнений настоящей версии сервера с предыдущими, детальных описаний того, что нового появилось в SQL Server 2022.

Я главным образом ориентируюсь на разработчиков баз данных (БД) и создателей программного продукта, требующего использования для своей работы баз данных, или на людей, которые собираются стать такими разработчиками и/или программистами.
Александр Бондарь

  • Общие сведения о SQL Server 2022
  • Принципы работы с базами данных
  • Создание базы данных и основных ее объектов
  • Проектирование, создание и изменение таблиц
  • Заполнение таблиц данными, изменение и удаление данных
  • Индексы
  • Представления
  • Транзакции, их характеристики и взаимодействие
  • Выборка данных
  • Хранимые процедуры, функции, определенные пользователем, триггеры
  • Средства отображения объектов и их характеристик

Книгу “Microsoft SQL Server 2022” можно купить со скидкой в интернет-магазине издательства “БХВ“.

Введение. 9

Содержание книги. 11

Дополнительные материалы.. 13

Глава 1. Инсталляция программных средств. 15

1.1. Инсталляция MS SQL Server 2022 Developer 15

1.2. Установка SQL Server Management Studio. 19

Глава 2. Общие сведения о SQL Server 2022. 23

2.1. Реляционные базы данных. 23

2.1.1. Таблицы.. 23

2.1.2. Представления. 29

2.1.3. Хранимые процедуры и триггеры.. 30

2.1.4. Пользователи, привилегии и роли базы данных. 31

2.1.5. Задание первичных ключей таблиц. 31

2.1.6. Транзакции. 32

2.1.7. 12 правил Кодда. 33

2.2. Реализация отношений в реляционной модели. 34

2.2.1. Отношение “один к одному”. 34

2.2.2. Отношение “один ко многим”. 35

2.2.3. Отношение “многие ко многим”. 35

2.3. Нормализация таблиц. 36

2.3.1. Цель нормализации таблиц. 36

2.3.2. Первая нормальная форма. 37

2.3.3. Вторая нормальная форма. 39

2.3.4. Третья нормальная форма. 39

2.3.5. Другие нормальные формы.. 40

2.3.6. Денормализация таблиц. 41

2.4. Проектирование баз данных. 41

2.5. Язык Transact-SQL.. 43

2.5.1. Синтаксис. 43

2.5.2. Основные сведения о составе языка Transact-SQL.. 51

Что дальше?. 53

Глава 3. Работа с базами данных. 55

3.1. Запуск и останов экземпляра сервера. 56

3.1.1. Запуск экземпляра сервера. 56

3.1.2. Останов экземпляра сервера. 57

3.2. Что собой представляет база данных в SQL Server 58

3.2.1. Системные базы данных. 59

3.2.2. Базы данных пользователей. 61

3.2.3. Некоторые характеристики базы данных. 62

3.2.4. Некоторые характеристики файлов базы данных. 64

3.3. Получение сведений о базах данных и их файлах в текущем экземпляре сервера. 65

3.3.1. Системное представление sys.databases. 65

3.3.2. Системное представление sys.master_files. 66

3.3.3. Системное представление sys.database_files. 68

3.3.4. Системное представление sys.filegroups. 69

3.3.5. Другие средства получения сведений об объектах базы данных. 69

3.4. Создание и удаление базы данных. 72

3.4.1. Использование операторов Transact-SQL для создания, отображения
и удаления баз данных. 72

3.4.2. Создание базы данных с использованием диалоговых средств
Management Studio. 112

3.5. Изменение базы данных. 116

3.5.1. Изменение базы данных в языке Transact-SQL.. 116

3.5.2. Изменение базы данных диалоговыми средствами Management Studio. 128

3.5.3. Удаление базы данных диалоговыми средствами Management Studio. 135

3.6. Создание автономной базы данных. 135

3.6.1. Установка допустимости автономных баз данных. 136

3.6.2. Создание автономной базы данных и пользователя средствами языка Transact-SQL   137

3.6.3. Создание автономной базы данных диалоговыми средствами
Management Studio. 138

3.6.4. Создание автономного пользователя в Management Studio. 139

3.6.5. Соединение с автономной базой данных в Management Studio. 140

3.7. Создание мгновенных снимков базы данных. 141

3.8. Схемы базы данных. 143

3.8.1. Работа со схемами в Transact-SQL.. 143

3.8.2. Работа со схемами в Management Studio. 146

3.9. Средства копирования и восстановления баз данных. 148

3.9.1. Использование операторов Transact-SQL для копирования/восстановления базы данных  148

3.9.2. Использование диалоговых средств Management Studio
для копирования/восстановления базы данных. 149

3.10. Домашнее задание. 153

Что дальше?. 154

Глава 4. Типы данных. 155

4.1. Классификация типов данных в SQL Server 156

4.2. Объявление локальных переменных. 158

4.3. Числовые типы данных. 159

4.3.1. Тип данных BIT. 161

4.3.2. Целочисленные типы данных TINYINT, SMALLINT, INT, BIGINT. 163

4.3.3. Дробные числа NUMERIC, DECIMAL, SMALLMONEY, MONEY. 165

4.3.4. Числа с плавающей точкой FLOAT, REAL. 169

4.3.5. Функции для работы с числовыми данными. 170

4.4. Символьные данные. 175

4.4.1. Символьные строки CHAR, VARCHAR.. 176

4.4.2. Символьные строки NCHAR, NVARCHAR.. 177

4.4.3. Типы данных VARCHAR(MAX), NVARCHAR(MAX), VARBINARY(MAX) 178

4.4.4. Строковые функции. 178

4.5. Типы данных даты и времени. 189

4.5.1. Описание типов данных даты и времени. 189

4.5.2. Действия с датами и временем.. 191

4.6. Двоичные данные. 201

4.7. Пространственные типы данных. 202

4.7.1. Тип данных GEOMETRY. 203

4.7.2. Тип данных GEOGRAPHY. 215

4.8. Другие типы данных. 220

4.8.1. Тип данных SQL_VARIANT. 220

4.8.2. Тип данных HIERARCHYID.. 224

4.8.3. Тип данных UNIQUEIDENTIFIER.. 229

4.8.4. Тип данных CURSOR.. 230

4.8.5. Тип данных XML. 237

4.9. Создание и удаление пользовательских типов данных. 249

4.9.1. Синтаксис оператора создания пользовательского типа данных. 250

4.9.2. Создание псевдонима средствами Transact-SQL.. 251

4.9.3. Создание псевдонима в диалоговых средствах Management Studio. 252

4.9.4. Создание пользовательского табличного типа данных средствами
Transact-SQL.. 253

4.9.5. Создание пользовательского табличного типа данных диалоговыми средствами Management Studio  257

4.9.6. Удаление пользовательского типа данных. 257

Что дальше?. 259

Глава 5. Работа с таблицами. 261

5.1. Синтаксис оператора создания таблицы.. 262

5.1.1. Общие характеристики таблицы.. 263

5.1.2. Определение столбца. 265

5.1.3. Ограничения столбца и ограничения таблицы.. 268

5.1.4. Вычисляемые столбцы.. 274

5.1.5. Набор столбцов. 275

5.2. Примеры простых таблиц. 276

5.3. Создание секционированных таблиц. 289

5.3.1. Синтаксические конструкции. 289

5.3.2. Пример создания секционированной таблицы.. 292

5.3.3. Отображение результатов создания таблицы.. 301

5.3.4. Изменение характеристик секционированной таблицы.. 305

5.4. Создание таблиц диалоговыми средствами. 307

5.4.1. Создание таблицы секционирования. 307

5.4.2. Создание таблицы секционирования, схемы секционирования
и функции секционирования. 317

5.5. Отображение состояния секционированных таблиц. 323

5.6. Файловые потоки. 324

5.7. Удаление таблиц. 330

5.7.1. Определение зависимостей таблицы.. 330

5.7.2. Удаление таблицы оператором DROP TABLE.. 333

5.7.3. Удаление таблицы диалоговыми средствами Manager Studio. 333

5.8. Изменение характеристик таблиц. 335

5.8.1. Изменение таблиц при использовании оператора Transact-SQL.. 336

5.8.2. Изменение таблиц средствами Management Studio. 341

5.8.3. Построение диаграммы базы данных. 366

Что дальше?. 368

Глава 6. Индексы.. 369

6.1. Отображение индексов. 370

6.2. Работа с индексами средствами Transact-SQL.. 371

6.2.1. Создание обычного (реляционного) индекса. 371

6.2.2. Создание индекса для представлений. 378

6.2.3. Создание columnstore индекса. 379

6.2.4. Создание индекса для столбца XML.. 380

6.2.5. Создание пространственного индекса. 385

6.2.6. Удаление индекса. 387

6.2.7. Изменение индекса. 388

6.3. Работа с индексами в диалоговых средствах Management Studio. 390

6.3.1. Создание индекса в Management Studio. 390

6.3.2. Удаление индекса в Management Studio. 394

6.3.3. Изменение индекса в Management Studio. 394

Что дальше?. 394

Глава 7. Добавление, изменение и удаление данных. 395

7.1. Обобщенное табличное выражение. 395

7.2. Добавление данных (оператор INSERT) 396

7.3. Изменение данных (оператор UPDATE) 403

7.4. Удаление данных (оператор DELETE) 407

7.5. Удаление строк таблицы (оператор TRUNCATE TABLE) 408

7.6. Добавление, изменение или удаление строк таблицы (оператор MERGE) 408

Что дальше?. 414

Глава 8. Выборка данных. 415

8.1. Оператор SELECT. 415

8.2. Оператор UNION.. 424

8.3. Операторы EXCEPT, INTERSECT. 424

8.4. Примеры выборки данных. 425

8.4.1. Список выбора. 425

8.4.2. Упорядочение результата (ORDER BY) 427

8.4.3. Условие выборки данных (WHERE) 428

8.4.4. Соединение таблиц. 436

8.4.5. Группировка результатов выборки (GROUP BY, HAVING) 444

8.5. Использование операторов UNION, EXCEPT, INTERSECT. 449

Что дальше?. 450

Глава 9. Представления. 451

9.1. Синтаксис операторов для представлений. 452

9.1.1. Создание представления. 452

9.1.2. Изменение представления. 453

9.1.3. Удаление представления. 453

9.2. Создание представлений в Transact-SQL.. 454

9.3. Создание представлений диалоговыми средствами Management Studio. 458

Что дальше?. 460

Глава 10. Транзакции. 461

10.1. Понятие и характеристики транзакций. 461

10.2. Операторы работы с транзакциями. 462

10.3. Уровни изоляции транзакции. 464

Что дальше?. 466

Глава 11. Хранимые процедуры, функции,
определенные пользователем, триггеры.. 467

11.1. Язык хранимых процедур и триггеров. 467

11.1.1. Блок операторов BEGIN/END.. 468

11.2. Хранимые процедуры.. 472

11.2.1. Создание хранимой процедуры.. 472

11.2.2. Изменение хранимой процедуры.. 474

11.2.3. Удаление хранимой процедуры.. 474

11.2.4. Использование хранимых процедур. 475

11.3. Функции, определенные пользователем.. 480

11.3.1. Создание функции. 480

11.3.2. Изменение функций. 481

11.3.3. Удаление функций. 482

11.3.4. Использование функций. 482

11.4. Триггеры.. 483

11.4.1. Создание триггеров. 483

11.4.2. Изменение триггеров. 485

11.4.3. Удаление триггеров. 486

11.4.4. Использование триггеров. 487

Приложения. 491

Приложение 1. Двенадцать правил Кодда. 493

Приложение 2. Зарезервированные слова Transact-SQL.. 495

Приложение 3. Утилита командной строки sqlcmd. 501

Приложение 4. Характеристики базы данных. 503

П4.1. Параметры Auto. 505

П4.2. Параметры доступности базы данных. 506

П4.3. Параметры автономной базы данных. 508

П4.4. Параметры восстановления. 509

П4.5. Общие параметры SQL.. 509

П4.6. Параметры компонента Service Broker 513

Приложение 5. Языки, представленные в SQL Server. 515

Приложение 6. Описание электронного архива. 517

Предметный указатель. 519

Бондарь Александр

Бондарь Александр Григорьевич — преподаватель, опытный технический писатель. Автор переводов на русский язык книг Х. Борри «Firebird. Руководство разработчика баз данных» и Д. Петковича «Microsoft SQL Server 2008. Руководство для начинающих», а также автор книг «InterBase и Firebird. Практическое руководство для умных пользователей и начинающих разработчиков», «Microsoft SQL Server 2012» и «Microsoft SQL Server 2014». Александр является прирожденным методистом, умеющим излагать сложные вопросы программирования доступным для читателя языком.

Опубликовано

Уникальная книга: “Хакерство. Физические атаки с использованием хакерских устройств”

Хакерство. Физические атаки с использованием хакерских устройств

Представляем уникальную книгу, подготовка которой заняла у нас очень много времени и потребовала значительных усилий. Но оно того стоило!
📚Книгу «Хакерство. Физические атаки с использованием хакерских устройств» написал Андрей Жуков — этичный хакер, пентестер, ведущий специалист по анализу защищенности в компании «Уральский центр систем безопасности» (УЦСБ).

Книга посвящена физическим атакам на беспроводные сети и компьютеры с использованием самодельных хакерских устройств и защите от них. Показан способ дампа памяти компьютера при помощи обычной флешки, метод перехвата сетевого трафика посредством зажимов-«крокодилов». Подробно освещены различные атаки BadUSB, продемонстрирован метод организации несанкционированного доступа к компьютеру при помощи 4G-модема и подключения к локальной сети через хакерское устройство на базе одноплатного компьютера. Описаны атаки на беспроводные сети и уличные IP-камеры с помощью самодельного устройства Wi-Fi Pineapple. Продемонстрирован способ атаки на сеть и устройства с использованием дрона, оборудованного одноплатным компьютером. Описана конструкция защищенного от помех квадрокоптера с управлением по мобильной сотовой сети. Рассказано о том, как превратить обычный мобильный телефон в «трекер» или хакерское устройство, позволяющее управлять гаражными воротами или шлагбаумами.

Для пентестеров и специалистов по информационной безопасности

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

 

Читатель узнает:

  • как сдампить оперативную память компьютера или ноутбука с помощью обычной флешки;
  • как сетевой трафик может быть перехвачен с использованием зажимов-«крокодильчиков»;
  • как хакеры похищают корпоративные пароли в метро и общественном транспорте;
  • как пролетающий мимо окна дрон может взломать компьютер в мгновение ока, даже если он расположен на 25-м этаже;
  • как построить на базе дешевого квадрокоптера такой «хакерский дрон», способный противостоять «глушилкам» и летать на десятки километров, не теряя связи с оператором;
  • как с помощью подключаемого устройства перехватывать сетевой трафик заблокированного компьютера;
  • как подключаться к IP-камерам на столбах;
  • как запустить Linux на телефоне, подключать к нему разнообразные хакерские устройства и управлять гаражными воротами или шлагбаумами, словно в компьютерной игре про хакеров.

Книгу “Хакерство. Физические атаки с использованием хакерских устройств” можно купить со скидкой в интернет-магазине издательства “БХВ“.

Жуков Андрей

Жуков Андрей Николаевич, пентестер с восьмилетним стажем. Ведущий специалист по анализу защищенности в компании «Уральский центр систем безопасности» (УЦСБ). Обладатель сертификатов OSCP, OSCE, OSWE. Автор статей в журналах «Хакер» и «PentestMagazine», докладов на международных конференциях Positive Hack Days и Zero Nights.

Опубликовано

Встречайте: “Ассемблер и программная модель процессоров x86/64”

Ассемблер и программная модель процессоров x86/64

Книга является практическим пособием по программной модели процессоров i80x86/64. Простейшие элементы этой модели (переменные, константы, методы адресации и система команд) изучаются с помощью ассемблера a86, отладчика d86. 32-битные возможности i80x86, включая защищенный режим, вентили, исключения и прерывания, привилегии, страничное преобразование, исключения, LDT и TSS, а также 64-битные режимы процессора x64 с исключениями и прерываниями в long mode изучаются с использованием ассемблера nasm.

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

Для программистов

Программирование на машинном уровне

  • Ассемблеры a86/a386
  • Netwide Assembler (nasm)
  • Система команд i80x86/64
  • 32-битный защищенный режим
  • 64-битные режимы

Книгу “Ассемблер и программная модель процессоров x86/64” можно купить со скидкой в интернет-магазине издательства “БХВ“.

Предисловие…………………………………………………………………………………………….. 9

Примечания………………………………………………………………………………………………………………………………… 11

Часть I. Реальный режим…………………………………………………………….. 13

Глава 1. Установка программ………………………………………………………………… 15

Установка и настройка Bochs…………………………………………………………………………………………………… 15

Формирование образа диска…………………………………………………………………………………………………….. 16

Настройка отладочного варианта Bochs………………………………………………………………………………… 18

Примечания………………………………………………………………………………………………………………………………… 18

Глава 2. Программирование данных……………………………………………………… 21

Вызов a86……………………………………………………………………………………………………………………………………. 21

Программирование последовательностей………………………………………………………………………………. 22

Программирование bmp-файла………………………………………………………………………………………………… 26

Примечания………………………………………………………………………………………………………………………………… 29

Глава 3. Данные, имена и типы……………………………………………………………… 31

Структура программы………………………………………………………………………………………………………………. 31

Директивы определения данных………………………………………………………………………………………………. 32

Обозначение чисел…………………………………………………………………………………………………………………….. 37

Символические обозначения чисел, выражения…………………………………………………………………….. 38

Переменные и метки…………………………………………………………………………………………………………………… 40

Типы имен…………………………………………………………………………………………………………………………………… 41

Типы и выражения……………………………………………………………………………………………………………………… 43

Алгоритм трансляции………………………………………………………………………………………………………………… 46

Повторное определение имен…………………………………………………………………………………………………… 50

Локальные имена……………………………………………………………………………………………………………………….. 51

Предопределенные имена…………………………………………………………………………………………………………. 52

Имя end……………………………………………………………………………………………………………………………………….. 52

Примечания………………………………………………………………………………………………………………………………… 54

Глава 4. Способы адресации………………………………………………………………….. 57

Данные процессора…………………………………………………………………………………………………………………… 57

Обозначения операндов машинных команд……………………………………………………………………………. 59

Способы адресации операндов………………………………………………………………………………………………… 60

Регистровая и непосредственная адресация……………………………………………………………………. 60

Адресация данных в памяти……………………………………………………………………………………………… 61

Прямая адресация…………………………………………………………………………………………………….. 61

Косвенная адресация……………………………………………………………………………………………….. 63

Ограничение на адресацию операндов в памяти……………………………………………………………. 67

Примечания………………………………………………………………………………………………………………………………… 68

Глава 5. Система команд i8086………………………………………………………………. 69

Способы адресации операндов………………………………………………………………………………………………… 69

Регистровая, непосредственная и прямая адресация……………………………………………………… 70

Косвенная адресация…………………………………………………………………………………………………………. 71

Косвенная адресация по значению одного регистра…………………………………………….. 71

Косвенная адресация по сумме значений двух регистров……………………………………. 71

Обзор системы команд………………………………………………………………………………………………………………. 71

Команды пересылки…………………………………………………………………………………………………………… 72

Арифметические команды…………………………………………………………………………………………………. 73

Логические команды………………………………………………………………………………………………………….. 74

Команды сдвигов и вращений…………………………………………………………………………………………… 74

Команды передачи управления………………………………………………………………………………………… 75

Адресация в командах передачи управления………………………………………………………… 76

Команды условных переходов………………………………………………………………………………… 77

Воздействие команд на флаги…………………………………………………………………………………………… 79

Строковые команды…………………………………………………………………………………………………………… 82

Примечания………………………………………………………………………………………………………………………………… 83

Глава 6. Программирование циклов………………………………………………………. 85

Поиск в массиве байтов…………………………………………………………………………………………………………….. 85

Поиск в массиве слов…………………………………………………………………………………………………………………. 87

Поиск байта со значением больше заданного………………………………………………………………………… 88

Подсчет байтов в заданном диапазоне значений…………………………………………………………………… 89

Алгоритмическое решение………………………………………………………………………………………………… 89

Табличное решение……………………………………………………………………………………………………………. 90

Примечания………………………………………………………………………………………………………………………………… 92

Глава 7. Примеры программ………………………………………………………………….. 93

Обработка данных на уровне битов………………………………………………………………………………………… 93

Программирование ввода-вывода……………………………………………………………………………………………. 95

Опережающие ссылки……………………………………………………………………………………………………….. 98

Упаковка четырехбитовых кодов…………………………………………………………………………………………… 100

Задания на составление программ………………………………………………………………………………………… 102

Задания первого уровня сложности……………………………………………………………………………….. 102

Варианты заданий………………………………………………………………………………………………….. 102

Задания второго уровня сложности……………………………………………………………………………….. 104

Примечания………………………………………………………………………………………………………………………………. 108

Глава 8. Математический сопроцессор…………………………………………………. 111

Окно FPU в d86…………………………………………………………………………………………………………………………. 111

Загрузка и выгрузка данных…………………………………………………………………………………………………… 112

Порядок двуместных операций………………………………………………………………………………………………. 114

Организация ветвлений…………………………………………………………………………………………………………… 117

Признаки в слове состояния……………………………………………………………………………………………………. 118

Настройки FPU…………………………………………………………………………………………………………………………. 120

Форматы действительных чисел……………………………………………………………………………………………. 121

Внутренний формат данных FPU……………………………………………………………………………………. 122

Стандартные форматы вещественных чисел………………………………………………………………… 124

Операции FPU…………………………………………………………………………………………………………………………… 125

Пересылки…………………………………………………………………………………………………………………………. 126

Загрузка данных……………………………………………………………………………………………………… 126

Команды выгрузки………………………………………………………………………………………………….. 128

Команда обмена……………………………………………………………………………………………………… 130

Арифметические операции……………………………………………………………………………………………… 130

Основные арифметические операции……………………………………………………………………. 131

Операции над знаковым битом……………………………………………………………………………… 132

Округление до целого…………………………………………………………………………………………….. 133

Получение остатка от деления………………………………………………………………………………. 134

Извлечение корня……………………………………………………………………………………………………. 135

Масштабирование………………………………………………………………………………………………….. 135

Операции сравнения и тестирования……………………………………………………………………. 135

Тригонометрические операции………………………………………………………………………………………. 137

Возведение в степень……………………………………………………………………………………………………….. 137

Возведение числа 2 в целую степень…………………………………………………………………….. 138

Возведение числа 2 в дробную степень………………………………………………………………… 138

Вычисление целой и дробной частей значения степени…………………………………….. 139

Возведение числа 2 в произвольную степень………………………………………………………. 139

Вычисление логарифмов………………………………………………………………………………………… 139

Команды управления………………………………………………………………………………………………………. 141

Сохранение и восстановление состояния……………………………………………………………………… 142

Задачи………………………………………………………………………………………………………………………………………. 143

Примечания………………………………………………………………………………………………………………………………. 145

Глава 9. Сегменты……………………………………………………………………………….. 149

Эффективный адрес…………………………………………………………………………………………………………………. 150

Базовый адрес и сегментные регистры………………………………………………………………………………….. 151

Перепрограммирование сегментных регистров……………………………………………………………………. 154

Регистр es………………………………………………………………………………………………………………………….. 154

Регистр ss…………………………………………………………………………………………………………………………… 156

Регистр cs………………………………………………………………………………………………………………………….. 157

Регистр ds………………………………………………………………………………………………………………………….. 159

Повторный запуск резидентной программы………………………………………………………………….. 160

Программные секции……………………………………………………………………………………………………….. 162

Префикс переназначения сегмента…………………………………………………………………………………. 167

Задачи………………………………………………………………………………………………………………………………………. 172

Примечания………………………………………………………………………………………………………………………………. 173

Глава 10. Исключения………………………………………………………………………….. 177

Таблица векторов…………………………………………………………………………………………………………………….. 177

Векторные вызовы…………………………………………………………………………………………………………………… 178

Исключения и прерывания……………………………………………………………………………………………………… 185

Ассемблер nasm……………………………………………………………………………………………………………………….. 189

Отладочные исключения………………………………………………………………………………………………………… 193

Примечания………………………………………………………………………………………………………………………………. 196

Глава 11. Внешние прерывания…………………………………………………………… 197

Системный таймер…………………………………………………………………………………………………………………… 197

Клавиатура………………………………………………………………………………………………………………………………. 201

Часы реального времени…………………………………………………………………………………………………………. 203

Примечания………………………………………………………………………………………………………………………………. 203

Глава 12. 32-битовые данные и адреса…………………………………………………. 205

Префиксы размерности операнда и адреса…………………………………………………………………………… 205

Косвенная адресация через 32-битовые регистры……………………………………………………….. 211

Новые команды………………………………………………………………………………………………………………… 213

Примечания………………………………………………………………………………………………………………………………. 215

Часть II. Защищенный режим………………………………………………….. 217

Глава 13. Код в защищенном режиме…………………………………………………… 219

Опыты с дескрипторами и защитой памяти………………………………………………………………………….. 225

Первые опыты с привилегиями……………………………………………………………………………………………….. 226

Переключение сегментов кода и вентили вызова…………………………………………………………………. 227

Обратное переключение режима……………………………………………………………………………………………. 231

Примечания………………………………………………………………………………………………………………………………. 232

Глава 14. Данные и стек………………………………………………………………………. 235

Дескрипторы данных………………………………………………………………………………………………………………. 235

Дескриптор стека…………………………………………………………………………………………………………………….. 238

Режим unreal…………………………………………………………………………………………………………………………….. 241

Адресная линия A20………………………………………………………………………………………………………………… 242

Привилегии сегментов данных……………………………………………………………………………………………….. 244

Примечания………………………………………………………………………………………………………………………………. 250

Глава 15. Исключения и прерывания…………………………………………………… 253

Дескрипторы прерываний и исключений………………………………………………………………………………. 253

Коды ошибок для исключений……………………………………………………………………………………………….. 258

Внешние прерывания………………………………………………………………………………………………………………. 259

Поле IOPL в регистре флагов………………………………………………………………………………………………….. 266

Примечания………………………………………………………………………………………………………………………………. 267

Глава 16. LDT и TSS…………………………………………………………………………….. 269

Дескрипторы LDT……………………………………………………………………………………………………………………. 269

Программное переключение контекста…………………………………………………………………………………. 272

Дескрипторы TSS…………………………………………………………………………………………………………………….. 276

Примечания………………………………………………………………………………………………………………………………. 285

Глава 17. Преобразование адресов……………………………………………………….. 287

Первый вариант трансляции адресов……………………………………………………………………………………. 288

Вариант PSE…………………………………………………………………………………………………………………………….. 292

Вариант PAE…………………………………………………………………………………………………………………………….. 295

Плоская модель памяти…………………………………………………………………………………………………………… 301

Примечания………………………………………………………………………………………………………………………………. 305

Глава 18. Привилегии………………………………………………………………………….. 307

Изменение уровня привилегий………………………………………………………………………………………………… 307

Вызов привилегированной процедуры………………………………………………………………………………….. 311

Обращение к портам ввода-вывода……………………………………………………………………………………….. 317

Привилегии при страничном отображении…………………………………………………………………………… 318

Примечания………………………………………………………………………………………………………………………………. 320

Часть III. 64-битовые режимы…………………………………………………… 321

Глава 19. Переход в режим совместимости…………………………………………… 323

Переход в режимы long…………………………………………………………………………………………………………… 323

Особенности режима совместимости…………………………………………………………………………………….. 328

Примечания………………………………………………………………………………………………………………………………. 330

Глава 20. Переход в 64-битовый режим………………………………………………… 331

Загрузчик ld0……………………………………………………………………………………………………………………………. 331

Применимость 64-битовых данных……………………………………………………………………………………….. 339

Примечания………………………………………………………………………………………………………………………………. 339

Глава 21. Особенности 64-битового режима…………………………………………. 341

64-битовые операнды……………………………………………………………………………………………………………… 342

Относительная адресация и перемещаемость………………………………………………………………………. 345

Селекторы fs и gs……………………………………………………………………………………………………………………… 349

Системные вызовы…………………………………………………………………………………………………………………… 352

Сегмент задачи в 64-битовом режиме……………………………………………………………………………………. 357

Обработка прерываний в 64-битовом режиме………………………………………………………………………. 359

Примечания………………………………………………………………………………………………………………………………. 370

Послесловие…………………………………………………………………………………………. 373

Приложения…………………………………………………………………………………… 375

Приложение 1. Компиляция Bochs……………………………………………………….. 377

Подготовка к компиляции для Windows и Linux……………………………………………………………………. 377

Компиляция для Windows……………………………………………………………………………………………………….. 378

Компиляция для Linux…………………………………………………………………………………………………………….. 379

Примечания………………………………………………………………………………………………………………………………. 380

Приложение 2. Инструментальные программы FreeDOS……………………… 381

Файловый менеджер………………………………………………………………………………………………………………… 381

Текстовый редактор edit………………………………………………………………………………………………………….. 382

Редактор памяти e32……………………………………………………………………………………………………………….. 382

Форматы отображения данных в d86……………………………………………………………………………………. 383

Приложение 3. Дополнительные опыты с FPU……………………………………… 384

Команда fisttp…………………………………………………………………………………………………………………………… 384

Формат BCD…………………………………………………………………………………………………………………………….. 385

Прерывания от i80x87……………………………………………………………………………………………………………… 385

Синхронизация процессора и сопроцессора………………………………………………………………………… 388

Расширение MMX……………………………………………………………………………………………………………………. 389

Примечания………………………………………………………………………………………………………………………………. 392

Приложение 4. Ошибки в a86/a386………………………………………………………. 393

Ошибки в a86……………………………………………………………………………………………………………………………. 393

Ошибки в a386………………………………………………………………………………………………………………………….. 394

Приложение 5. Описание электронного архива……………………………………. 395

Список источников………………………………………………………………………………. 397

Предметный указатель…………………………………………………………………………. 398

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

Опубликовано

Новинка: “SQL для анализа данных”

SQL для анализа данных

Рассказывается о возможностях SQL применительно к анализу данных. Сравниваются различные типы баз данных, описаны методы подготовки данных для анализа. Рассказано о типах данных, структуре SQL-запросов, профилировнии, структурировании и очистке данных. Описаны методы анализа временных рядов, трендов, приведены примеры анализа данных с учетом сезонности. Отдельные главы посвящены когортному анализу, текстовому анализу, выявлению и обработке аномалий, анализу результатов экспериментов и А/В-тестирования. Описано создание сложных наборов данных, комбинирование методов анализа. Приведены практические примеры анализа воронки продаж и потребительской корзины.

Для аналитиков, исследователей и специалистов по обработке данных

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

• Узнайте о ключевых шагах по подготовке данных к анализу
• Выполняйте анализ временных рядов
• Используйте когортный анализ для изучения изменений групп с течением времени
• Научитесь применять мощные функции SQL для анализа текста
• Выявляйте отклонения и аномалии в данных
• Установите причинно-следственную связь с помощью анализа экспериментов и результатов А/Б-тестирования
• Применяйте SQL для оценки эффективности воронки продаж

Книгу “SQL для анализа данных” можно купить со скидкой в интернет-магазине издательства “БХВ“.

Предисловие. 11

Условные обозначения. 12

Использование примеров кода. 13

Благодарности. 13

ГЛАВА 1. Анализ с помощью SQL.. 15

1.1. Что такое анализ данных. 15

1.2. Почему SQL. 18

Что такое SQL. 18

Преимущества SQL. 21

SQL против R или Python. 22

SQL как часть процесса анализа данных. 24

1.3. Типы баз данных. 26

Строчные базы данных. 27

Колоночные базы данных. 29

Другие типы хранилищ данных. 31

1.4. Заключение. 32

ГЛАВА 2. Подготовка данных для анализа. 33

2.1. Типы данных. 34

Типы в базах данных. 34

Структурированные и неструктурированные данные. 36

Количественные и качественные данные. 37

Первичные, вторичные и третичные данные. 38

Разреженные данные. 39

2.2. Структура SQL-запроса. 40

2.3. Профилирование: распределения. 43

Гистограммы и частоты.. 44

Биннинг. 46

n-тили. 49

2.4. Профилирование: качество данных. 52

Поиск дубликатов. 52

Исключение дубликатов с помощью GROUP BY и DISTINCT. 54

2.5. Подготовка: очистка данных. 56

Очистка данных с помощью CASE. 56

Преобразование типов. 59

Работа с null-значениями: функции coalesce, nullif, nvl 62

Отсутствующие данные. 65

2.6. Подготовка: структурирование данных. 69

Зависимость от конечной цели: для BI, визуализации, статистики
или машинного обучения. 70

Сворачивание с помощью оператора CASE. 71

Разворачивание с помощью оператора UNION.. 73

Операторы PIVOT и UNPIVOT. 75

2.7. Заключение. 77

ГЛАВА 3. Анализ временных рядов. 79

3.1. Работа с Date, Datetime и Time. 80

Преобразование часовых поясов. 80

Форматирование дат и временных меток. 83

Арифметические действия с датами. 87

Арифметические действия со временем.. 90

Объединение данных из разных источников. 91

3.2. Набор данных о розничных продажах. 92

3.3. Анализ трендов данных. 93

Простые тренды.. 94

Сравнение временных рядов. 96

Вычисление процента от целого. 105

Приведение к базовому периоду. 109

3.4. Скользящие временные окна. 114

Расчет скользящих временных окон. 116

Скользящие окна на разреженных данных. 122

Расчет накопительного итога. 125

3.5. Анализ с учетом сезонности. 127

Сравнение периодов: YoY и MoM.. 129

Сравнение периодов: этот же месяц в прошлом году. 132

Сравнение с несколькими предыдущими периодами. 137

3.6. Заключение. 140

ГЛАВА 4. Когортный анализ. 141

4.1. Составляющие когортного анализа. 141

4.2. Набор данных о законодателях. 144

4.3. Анализ удержания. 146

Общая кривая удержания. 148

Заполнение отсутствующих дат для большей точности. 152

Когорты, полученные из временного ряда. 158

Определение когорт по другой таблице. 164

Работа с разреженными когортами. 169

Когорты по датам, отличным от первой даты.. 174

4.4. Связанные когортные анализы.. 177

Выживаемость. 177

Возвращаемость или поведение при повторной покупке. 182

Накопительный итог. 188

4.5. Поперечный анализ через все когорты.. 192

4.6. Заключение. 201

ГЛАВА 5. Текстовый анализ. 203

5.1. Текстовый анализ и SQL. 203

Что такое текстовый анализ. 204

Как можно использовать SQL для текстового анализа. 204

Когда не стоит использовать SQL. 206

5.2. Набор данных о наблюдениях НЛО.. 206

5.3. Характеристики текста. 207

5.4. Разбор текста. 210

5.5. Преобразование текста. 216

5.6. Поиск в текстовых данных. 225

Подстановочные знаки: LIKE, ILIKE. 225

Точное соответствие: IN, NOT IN.. 231

Регулярные выражения. 234

5.7. Конкатенация и реорганизация. 251

Конкатенация строк. 251

Реорганизация текстовых полей. 255

5.8. Заключение. 259

ГЛАВА 6. Выявление аномалий. 261

6.1. Возможности SQL для обнаружения аномалий. 262

6.2. Набор данных о землетрясениях. 263

6.3. Поиск аномалий. 264

Сортировка для поиска аномалий. 265

Расчет процентилей и стандартных отклонений. 268

Поиск аномалий с помощью графиков. 276

6.4. Виды аномалий. 284

Аномальные значения. 284

Аномальное количество или частота. 288

Аномальное отсутствие данных. 293

6.5. Обработка аномалий. 295

Исследование аномалий. 295

Исключение аномальных записей. 296

Замена на альтернативные значения. 298

Изменение масштаба. 300

6.6. Заключение. 302

ГЛАВА 7. Анализ экспериментов. 303

7.1. Плюсы и минусы SQL для анализа экспериментов. 304

7.2. Набор данных о мобильной игре. 306

7.3. Типы экспериментов. 307

Эксперименты с бинарными результатами: тест хи-квадрат. 308

Эксперименты с непрерывными результатами: t-тест. 310

7.4. Спасение неудачных экспериментов. 313

Система назначения вариантов. 313

Выбросы.. 314

Метод временных рамок. 316

Эксперименты с повторным воздействием.. 317

7.5. Альтернативные анализы, когда контролируемые эксперименты невозможны   319

Анализ «до и после». 319

Анализ естественных экспериментов. 321

Анализ популяции около порогового значения. 323

7.6. Заключение. 324

ГЛАВА 8. Создание сложных наборов данных. 325

8.1. SQL для сложных наборов данных. 325

Преимущества использования SQL. 326

Перенос логики в ETL. 326

Перенос логики в другие инструменты.. 329

8.2. Упорядочивание кода. 330

Комментарии. 330

Регистр, отступы, круглые скобки и другие приемы форматирования. 332

Хранение кода. 335

8.3. Контроль над порядком вычислений. 335

Порядок выполнения операций SQL. 336

Подзапросы.. 339

Временные таблицы.. 342

Общие табличные выражения. 343

Расширения для группировки. 345

8.4. Управление размером набора данных и проблемы конфиденциальности. 349

Частичная выборка с помощью остатка от деления. 349

Уменьшение размерности. 351

Персональные данные и конфиденциальность. 356

8.5. Заключение. 358

ГЛАВА 9. Комбинирование методов анализа и полезные ресурсы.. 359

9.1. Анализ воронки продаж.. 359

9.2. Отток, отставшие и анализ разрывов. 361

9.3. Анализ потребительской корзины.. 366

9.4. Полезные ресурсы.. 368

Книги и блоги. 369

Наборы данных. 370

9.5. Заключение. 371

Об авторе. 373

Об обложке. 374

Предметный указатель. 375

Танимура Кэти

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

Опубликовано

Изучаем программирование на Kotlin для Android

Программирование на Kotlin для Android

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

Для программистов

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

Авторы приводят реализацию наиболее распространенных задач в нативной разработке для Android и показывают, как Kotlin помогает решить проблему параллелизма. Делая акцент на структурированном параллелизме, новой парадигме асинхронного программирования, книга помогает освоить одну из самых мощных конструкций Kotlin — сопрограммы.

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

Книгу “Программирование на Kotlin для Android” можно купить со скидкой в интернет-магазине издательства “БХВ“.

Об авторах. 11

Предисловие. 13

Кому адресована эта книга. 14

Почему мы написали эту книгу. 15

Как организована эта книга. 15

Условные обозначения и соглашения. 16

Примеры кода. 17

Благодарности. 17

ГЛАВА 1. Основы языка Kotlin. 19

Система типов Kotlin. 20

Примитивные типы. 20

Null-безопасность. 21

Тип Unit 23

Функциональные типы. 24

Обобщенные типы. 25

Переменные и функции. 25

Переменные. 26

Лямбда-выражения. 26

Функции-расширения. 27

Классы. 29

Инициализация класса. 29

Свойства. 31

Модификатор lateinit 32

Свойства с отложенной инициализацией. 34

Делегаты. 35

Объекты-компаньоны. 36

Классы данных. 37

Классы перечислений. 38

Запечатанные классы. 40

Модификаторы видимости. 41

Резюме. 42

ГЛАВА 2. Фреймворк коллекций Kotlin. 45

Основные понятия. 45

Совместимость с Java. 46

Изменяемость. 46

Перегруженные операторы. 48

Создание контейнеров. 49

Функциональное программирование. 50

Сравнение функционального и процедурного программирования:
простой пример. 50

Функциональное программирование в Android. 51

Функции-преобразователи. 52

Булевы функции. 52

Фильтры. 53

Функция map. 53

Функция flatMap. 55

Группировка. 56

Сравнение итераторов и последовательностей. 57

Пример. 59

Проблема. 59

Реализация. 60

Резюме. 66

ГЛАВА 3. Основы Android. 67

Стек Android. 67

Аппаратное обеспечение. 67

Ядро. 68

Системные службы. 68

Среда выполнения Android. 69

Приложения. 69

Прикладное окружение Android. 69

Намерения и фильтры намерений. 70

Контекст. 73

Компоненты приложения Android: строительные блоки. 75

Компонент Activity и его друзья. 76

Службы. 80

Провайдеры контента. 85

BroadcastReceiver 86

Архитектуры приложений Android. 88

MVC: основы. 88

Виджеты. 89

Локальная модель. 89

Паттерны Android. 90

Model-View-Intent 90

Model-View-Presenter 90

Model-View-ViewModel 91

Резюме. 92

ГЛАВА 4. Параллельное программирование в Android. 94

Потокобезопасность. 95

Атомарность. 95

Видимость. 96

Модель многопоточного выполнения Android. 97

Пропуск кадров. 98

Утечка памяти. 101

Инструменты для управления потоками. 103

Looper/Handler 104

Исполнители Executors и объекты ExecutorService. 106

Инструменты для управления заданиями. 107

JobScheduler 109

WorkManager 111

Резюме. 112

ГЛАВА 5. Потокобезопасность. 113

Пример проблемы, связанной с потокобезопасностью.. 113

Инварианты. 115

Мьютексы. 116

Потокобезопасные коллекции. 116

Привязка к потоку. 119

Конфликт потоков. 120

Сравнение блокирующего и неблокирующего вызовов. 121

Очереди работ. 122

Противодавление. 123

Резюме. 125

ГЛАВА 6. Организация параллелизма с использованием обратных вызовов. 127

Пример: функция обработки покупок. 128

Создание приложения. 130

Компонент ViewModel 130

Представление. 131

Реализация логики. 135

Обсуждение. 136

Ограничения модели многопоточного выполнения. 138

Резюме. 139

ГЛАВА 7. Сопрограммы.. 141

Что такое сопрограмма?. 141

Наша первая сопрограмма. 142

Функция async. 144

Краткий обзор структурированного параллелизма. 146

Связь “родитель — потомок” в структурированном параллелизме. 148

CoroutineScope и CoroutineContext 150

Функции, поддерживающие возможность приостановки. 155

Функции, поддерживающие возможность приостановки, “под капотом”. 156

Использование сопрограмм и функций, поддерживающих возможность
приостановки: практический пример. 160

Не ошибитесь с модификатором suspend. 163

Резюме. 164

ГЛАВА 8. Структурированный параллелизм и сопрограммы.. 166

Функции, поддерживающие возможность приостановки. 166

Настройка места действия. 167

Традиционный подход с использованием java.util.concurrent.ExecutorService. 168

Вспомним, что такое HandlerThread. 172

Использование приостанавливаемых функций и сопрограмм. 175

Сравнение приостанавливаемых и традиционной многопоточности: итоги. 179

Отмена. 179

Жизненный цикл сопрограмм. 180

Отмена сопрограммы. 182

Отмена задачи, делегированной сторонней библиотеке. 184

Сопрограммы, которые действуют согласованно, чтобы их можно было отменить. 188

Функцию delay() можно отменить. 190

Обработка отмены. 191

Причины отмены. 192

Супервизия. 195

Функция supervisorScope. 197

Параллельная декомпозиция. 197

Автоматическая отмена. 199

Обработка исключений. 199

Необработанные и открытые исключения. 199

Открытые исключения. 201

Необработанные исключения. 204

Резюме. 207

Размышления напоследок. 208

ГЛАВА 9. Каналы.. 209

Обзор каналов. 209

Рандеву-канал. 211

Неограниченный канал. 215

Объединенный канал. 216

Буферизованный канал. 217

Функция produce. 218

Взаимодействующие последовательные процессы. 219

Модель и архитектура. 219

Первая реализация. 220

Выражение select 225

Собираем все воедино. 227

Мультиплексор и демультиплексор. 228

Проверка производительности. 229

Противодавление. 231

Сходства с моделью акторов. 232

Последовательное выполнение внутри процесса. 232

Размышления напоследок. 233

Взаимоблокировки в CSP. 233

Каналы и взаимоблокировки. 236

Ограничения каналов. 236

“Горячие” каналы. 238

Резюме. 239

ГЛАВА 10. Потоки. 241

Введение в потоки. 241

Более реалистичный пример. 242

Операторы. 244

Терминальные операторы. 245

Примеры использования холодного потока. 246

Вариант 1: интерфейс с API на базе функции обратного вызова. 246

Вариант 2: параллельное преобразование потока значений. 251

Вариант 3: создание собственного оператора. 253

Обработка ошибок. 257

Блок try/catch. 257

Разделение ответственности важно. 260

Нарушение прозрачности исключения. 260

Оператор catch. 261

Материализация исключений. 264

Горячие потоки и SharedFlow. 267

Создаем SharedFlow. 268

Регистрируем подписчика. 268

Отправляем значения в SharedFlow. 269

Использование SharedFlow для потоковой передачи данных. 269

Использование SharedFlow в качестве шины событий. 275

StateFlow: специализированная версия SharedFlow. 276

Пример использования StateFlow. 277

Резюме. 279

ГЛАВА 11. Вопросы производительности и инструменты
профилирования Android. 280

Android Profiler 282

Network Profiler 285

CPU Profiler 291

Energy Profiler 301

Memory Profiler 303

Обнаружение утечек памяти с помощью LeakCanary. 308

Резюме. 312

ГЛАВА 12. Снижение потребления ресурсов за счет оптимизации производительности  314

Достижение плоской иерархии представлений с помощью ConstraintLayout 315

Сокращение количества операций рисования с помощью экземпляров
класса Drawable. 319

Минимизация данных в сетевых вызовах. 324

Организация пула и кэширование объектов Bitmap. 324

Избавляемся от ненужной работы. 326

Использование статических функций. 329

Минификация и обфускация с R8 и ProGuard. 329

Резюме. 331

Предметный указатель. 333

Нет фото

Майк Данн (Mike Dunn) работал ведущим инженером по мобильным технологиям в издательстве O’Reilly Media.Один из авторов книги «Нативная разработка мобильных приложений. Перекрестный справочник для iOS и Android».

 

 

Лоранс Пьер-Оливье

Пьер-Оливье Лоранс (Pierre-Olivier Laurence) — ведущий инженер-программист компании Safran Aircraft Engines, со штаб-квартирой в окрестностях Парижа.

 

 

G.Blake_Meike

Дж. Блейк Мик (G. Blake Meike) — старший инженер-программист компании Couchbase и автор нескольких книг, среди которых «Программирование под Android».

 

 

Amanda Hinchman-Dominguez

Аманда Хинчман-Домингес (Amanda Hinchman-Dominguez) — эксперт по языку Kotlin в программе Google Developer Expert. Работает разработчиком для Android в компании Groupon и является активным участником глобального сообщества Kotlin.

Опубликовано

Вышло 3 издание книги “Основы Lean UX”

Основы Lean UX

Книга посвящена методологии Lean UX, позволяющей проектировать на высоком уровне  первоклассные программные продукты в составе Agile-команд. Главный упор сделан на понятии «пользовательского восприятия» (user experience). Даны основы методологии Lean UX и принципы ее успешного внедрения в рабочую Agile-среду. Раскрыт процесс применения Lean UX с использованием  Lean UX Canvas и на наглядных примерах из практики дано описание каждого из его восьми этапов. Подробно рассмотрено сотрудничество проектировщиков с коллегами, не занимающимися проектированием, с применением  ряда  весьма популярных способов работы, таких как дизайн-спринты, системы проектирования и совместные исследования. Даны рекомендации по эффективной интеграции Lean UX в Agile-процесс. Рассмотрены конкретные приемы на уровнях как отдельных сотрудников, так и команды в целом,  позволяющие реально прижиться идеям Lean UX в организации.

Для разработчиков программных продуктов

Что, если мы обнаружим, что строим то, что никому не нужно? В таком случае какое значение имело то, что мы сделали это вовремя и в рамках бюджета?
Эрик Рис

Проектирование первоклассных программных продуктов в составе Agile-команд

Готельф и Сейден — ведущие специалисты в сфере производства программных продуктов. Благодаря совокупному опыту в области, охватывающей как самые динамичные технологические стартапы, так и столетние солидные компании, они дают предельно четкие рекомендации организациям, проходящим цифровую трансформацию. Эти рекомендации представляют реальные рецепты типа «давайте исправим это сейчас», исходящие от настоящих практикующих врачей, а не новомодную гомеопатическую панацею от кабинетных agile-знатоков.
 ДЖОН МАЕДА, старший вице-президент по взаимодействию с пользователями компании Everbridge

Книга по Lean UX навсегда изменила пути создания программных продуктов к лучшему. Демонстрируя компаниям-разработчикам программных систем способы их проектирования и постоянного совершенствования по мере становления и изменения клиентской аудитории, методология Lean UX позволяет создавать новое поколение не только привлекательных, но и весьма толковых продуктов
 КРИСТИНА ВОДТКЕ, лектор факультета компьютерных наук Стэнфордского университета и автор книги «Radical Focus»

В течение последних восьми лет прочтение книги по Lean UX было моей настоятельной рекомендацией для всех команд, изучающих приемы совместной работы, которые позволяют добиваться позитивного пользовательского восприятия. Эта последняя версия книги выходит за рамки прежнего повествования, закрепляя учебный материал в удобном для понимания формате и предоставляя примеры его практического применения. Считаю ее обязательной к прочтению для любой современной команды разработчиков программных продуктов.
 МЕЛИССА ПЕРРИ, генеральный директор компании Produx Labs, старший преподаватель Гарвардской школы бизнеса

В последнем издании книги по Lean UX Джефф и Джош еще раз показали, почему именно они были идейными лидерами в области проектирования на протяжении более десяти лет. Эта книга — вечная классика, место которой на книжной полке каждого проектировщика.
 ТЕРЕЗА ТОРРЕС, автор книги «Continuous Discovery Habits»

Книгу “Основы Lean UX, 3-е издание” можно купить со скидкой в интернет-магазине издательства “БХВ“.

Рецензии на третье издание книги…………………………………………………………. 13

Рецензии на предыдущие издания книги……………………………………………….. 15

Вступительное слово………………………………………………………………………………. 19

Благодарности……………………………………………………………………………………….. 25

От авторов……………………………………………………………………………………………… 27

Примечание от Джеффа…………………………………………………………………………………………………………….. 27

Примечание от Джоша………………………………………………………………………………………………………………. 27

От Джеффа и Джоша………………………………………………………………………………………………………………….. 28

Предисловие…………………………………………………………………………………………… 29

Что же такое Lean UX?………………………………………………………………………………………………………………. 29

Для кого предназначена книга по Lean UX?…………………………………………………………………………… 33

Что мы предлагаем в этой книге?……………………………………………………………………………………………… 33

ЧАСТЬ I. ПРЕДСТАВЛЕНИЕ И ПРИНЦИПЫ………………………………………. 35

Глава 1. Сейчас это актуально как никогда…………………………………………… 37

Проектирование немыслимо без постоянного развития………………………………………………………… 37

Глава 2. Принципы………………………………………………………………………………… 40

Основы Lean UX…………………………………………………………………………………………………………………………. 40

Так как же все-таки определить, что такое Lean UX?…………………………………………………………….. 43

Принципы Lean UX……………………………………………………………………………………………………………………. 43

Принципы организации команды……………………………………………………………………………………… 44

Принцип: Кросс-функциональность……………………………………………………………………….. 44

Принцип: Немногочисленность, специализированность, совмещенность………….. 44

Принцип: Самодостаточность и наделенность полномочиями……………………………. 45

Принцип: Ориентированность на решение задачи………………………………………………… 45

Принципы управления культурой разработки………………………………………………………………… 46

Принцип: Переход от сомнений к уверенности……………………………………………………… 46

Принцип: Нужны результаты, а не наработки………………………………………………………. 46

Принцип: Избавление от ненужного……………………………………………………………………….. 47

Принцип: Общее понимание…………………………………………………………………………………….. 47

Принцип: Отказ от “звездных” исполнителей…………………………………………………………. 47

Принцип: Допустимость неудачных решений……………………………………………………….. 48

Принципы управления процессом…………………………………………………………………………… 49

Принцип: Смысл здесь не в том, чтобы привычное делать быстрее……………………. 49

Принцип: Избегайте разбиений на этапы……………………………………………………………….. 49

Принцип: Ключ к гибкости — итерация…………………………………………………………………. 50

Принцип: Разбейте работу на малые части, чтобы снизить проектные риски……. 50

Принцип: Ведите непрерывные исследования……………………………………………………….. 50

Принцип: “Выходите на улицу”………………………………………………………………………………. 51

Принцип: Экстернализируйте свою работу…………………………………………………………… 51

Принцип: Реальные изделия важнее теоретических исследований……………………… 52

Принцип: Исходите из конечных бизнес-результатов…………………………………………… 52

Подведение итогов…………………………………………………………………………………………………………………….. 52

Глава 3. Результаты……………………………………………………………………………….. 53

В чем суть наших дел?………………………………………………………………………………………………………………. 53

История о результатах………………………………………………………………………………………………………. 54

Разбор истории: Изделия, результаты, воздействие……………………………………………………….. 55

Углубленный взгляд на результат…………………………………………………………………………… 56

Результаты, итерация и проверка…………………………………………………………………………………………….. 58

ЧАСТЬ II. ПРОЦЕСС ПРИМЕНЕНИЯ LEAN UX………………………………….. 61

Глава 4. Lean UX Canvas………………………………………………………………………… 63

Предположения в роли новых требований……………………………………………………………………………… 63

Lean UX Canvas…………………………………………………………………………………………………………………………. 65

Использование предписаний…………………………………………………………………………………………………….. 68

А когда нужно использовать Lean UX Canvas?………………………………………………………………. 68

Для чего Lean UX Canvas подходит лучше: для идей, выдвигаемых на начальном этапе, или для процесса поддержки инноваций?…………………………………………………………………………………………………………………………. 68

Кто должен работать с предписаниями?…………………………………………………………………………. 69

Сколько времени нужно потратить на проработку Lean UX Canvas?………………………….. 69

А нужно ли использовать все предписания, чтобы следовать методологии Lean UX?. 69

Проработка каждого раздела…………………………………………………………………………………………… 70

Учитывайте все обстоятельства………………………………………………………………………………. 70

Сравнение дистанционного и личного общения……………………………………………………. 71

Подведение итогов…………………………………………………………………………………………………………………….. 71

Глава 5. Блок 1: Бизнес-задача………………………………………………………………. 72

Проработка предписания………………………………………………………………………………………………………….. 73

Примеры постановки задачи…………………………………………………………………………………………………….. 75

На что следует обратить особое внимание…………………………………………………………………………….. 76

Глава 6. Блок 2: Результаты деятельности……………………………………………… 78

Использование пути потребителя…………………………………………………………………………………………….. 79

Тип пути потребителя: Пиратские метрики — Pirate Metrics…………………………………………. 79

Тип пути потребителя: Гора метрик — Metrics Mountain………………………………………………. 80

Стимуляция обсуждения бизнес-результатов с применением Горы метрик……….. 81

Тип пути потребителя: Пути обслуживания и карты потребительских историй…………. 82

Сопоставление результата и воздействия……………………………………………………………………….. 82

На что следует обратить особое внимание…………………………………………………………………………….. 84

Глава 7. Блок 3: Пользователи……………………………………………………………….. 86

Образ протоперсонажа……………………………………………………………………………………………………………… 88

Проработка предписания………………………………………………………………………………………………………….. 89

Проверка на ранней стадии………………………………………………………………………………………………. 90

На что следует обратить особое внимание…………………………………………………………………………….. 91

Глава 8. Блок 4: Результаты и преимущества, получаемые
пользователями……………………………………………………………………………………… 92

Проработка предписания………………………………………………………………………………………………………….. 93

На что следует обратить особое внимание…………………………………………………………………………….. 94

Глава 9. Блок 5: Решения………………………………………………………………………. 95

Проработка предписания………………………………………………………………………………………………………….. 95

Сопоставление выдвинутых идей…………………………………………………………………………………….. 96

Совместное проектирование: более структурированный подход………………………………… 96

Запуск Design Studio…………………………………………………………………………………………………………………… 97

Приготовления……………………………………………………………………………………………………………………. 97

Команда………………………………………………………………………………………………………………………………. 97

Процесс……………………………………………………………………………………………………………………………….. 97

Принадлежности………………………………………………………………………………………………………………… 98

Определение задачи и ограничений (15 минут)………………………………………………………………. 98

Выработка индивидуальных замыслов (10 минут)………………………………………………………… 98

Представление и критические оценки (по 3 минуты на человека)………………………………. 100

Попарная работа для пересмотра и уточнения идей (10 минут)…………………………………. 101

Выработка командного замысла (45 минут)…………………………………………………………………. 102

Использование результатов проработки……………………………………………………………………….. 102

На что следует обратить особое внимание…………………………………………………………………………… 103

Глава 10. Блок 6: Гипотезы………………………………………………………………….. 104

Проработка предписания……………………………………………………………………………………………………….. 105

Расстановка гипотез по приоритетности………………………………………………………………………………. 107

На что следует обратить особое внимание…………………………………………………………………………… 109

Глава 11. Блок 7: Что здесь самое важное, подлежащее осмыслению в первую очередь?            110

Проработка предписания……………………………………………………………………………………………………….. 111

На что следует обратить особое внимание…………………………………………………………………………… 111

Глава 12. Блок 8: MVP и проведение экспериментов……………………………. 112

Что такое MVP?……………………………………………………………………………………………………………………….. 112

Пример: Нужно ли запускать информационный бюллетень?……………………………………… 113

Создание MVP………………………………………………………………………………………………………………………….. 114

Создание MVP для выявления привносимой ценности………………………………………………… 114

Создание MVP, чтобы разобраться с реализацией идеи……………………………………………… 115

Ряд заключительных рекомендаций по созданию MVP……………………………………………….. 116

Кривая достоверности…………………………………………………………………………………………………….. 117

Примеры MVP…………………………………………………………………………………………………………………… 117

Тест исходной страницы………………………………………………………………………………………… 117

Фикция (также известная как “Кнопка в никуда”)………………………………………………… 119

Волшебник из страны Оз…………………………………………………………………………………………………. 121

Пример: Волшебник из страны Оз для Taproot Plus…………………………………………….. 121

Создание прототипов………………………………………………………………………………………………………………. 124

Бумажные прототипы……………………………………………………………………………………………………… 124

Экранные макеты с низкой степенью приближенности к продукту……………………………. 125

Экранные прототипы со средней и высокой степенью приближенности
к реальному продукту……………………………………………………………………………………………………… 126

MVP без кода……………………………………………………………………………………………………………………. 126

Прототипы с программным кодом и “живыми” данными…………………………………………….. 127

Что должно попасть в ваш прототип?……………………………………………………………………………. 128

Презентации и образцы…………………………………………………………………………………………………… 128

Пример: использование MVP-прототипа………………………………………………………………………. 128

Глава 13. Резюме………………………………………………………………………………….. 130

Применение Lean UX Canvas на предприятии……………………………………………………………………… 130

Validately: проверка посредством интервью и прототипа, созданного всего лишь
за два дня………………………………………………………………………………………………………………………………….. 132

Kaplan Test Prep: использование Lean UX для запуска нового бизнеса……………………………… 133

ЧАСТЬ III. СОТРУДНИЧЕСТВО…………………………………………………………. 137

Глава 14. Совместное проектирование…………………………………………………. 139

Совместное проектирование…………………………………………………………………………………………………… 140

Совместное проектирование: неформальный подход………………………………………………….. 141

Lean UX и дизайн-спринты……………………………………………………………………………………………… 143

Использование Design Sprints в Lean UX-процессе……………………………………………………….. 144

Дизайн-системы……………………………………………………………………………………………………………….. 145

Дизайн-системы: что скрывается в их названии?…………………………………………………………. 146

Ценность дизайн-систем………………………………………………………………………………………………………….. 147

Команды дизайн-систем — это те же разработчики программных продуктов…………. 148

Не нужно пропускать этап использования толстых маркеров……………………………………. 149

Практический пример: Дизайн-система GE…………………………………………………………………… 150

Сотрудничество с географически разбросанными командами…………………………………………… 153

Сотрудничество с распределенными командами…………………………………………………………. 153

Повышение эффективности сотрудничества…………………………………………………………………. 154

Подведение итогов…………………………………………………………………………………………………………………… 156

Глава 15. Обратная связь и исследования……………………………………………. 158

Проведение непрерывных и совместных исследований………………………………………………………. 158

Совместное исследование……………………………………………………………………………………………….. 159

Проведение совместного исследования на общем поле деятельности………………. 159

Пример проведения совместного исследования…………………………………………………… 161

Непрерывное обучение……………………………………………………………………………………………………. 161

Обращение к принципам………………………………………………………………………………………… 161

Постоянные исследования: работа вообще без исследований…………………………… 162

Непрерывное обучение в среде разработки: по три пользователя
каждый четверг……………………………………………………………………………………………………….. 163

Упростите среду тестирования……………………………………………………………………………… 164

Кто должен наблюдать за происходящим?………………………………………………………….. 164

Непрерывное исследование: Примеры…………………………………………………………………. 165

Вторники тестирования………………………………………………………………………………………….. 165

Осмысление исследования: командная работа…………………………………………………………….. 167

Запутанность, противоречивость и отсутствие ясности…………………………………….. 167

Выявление закономерностей по прошествии времени…………………………………………………. 168

Тестируйте уже имеющееся…………………………………………………………………………………… 169

Методы мониторинга при проведении непрерывных и совместных исследований….. 173

Служба поддержки клиентов…………………………………………………………………………………. 174

Получение отзывов при опросах на сайте……………………………………………………………. 174

Подведение итогов…………………………………………………………………………………………………………………… 176

Глава 16. Интеграция Lean UX и Agile…………………………………………………. 177

Проникнитесь Agile-процессом……………………………………………………………………………………………….. 178

Переопределение понятия “Готово”……………………………………………………………………………….. 179

Мы все еще являемся приверженцами поэтапных спринтов. Почему?……………………….. 182

Двуединая модель Agile…………………………………………………………………………………………………… 184

Dual-track работает только при условии, что все действуют в составе
единой команды………………………………………………………………………………………………………. 185

Планирование работы по методу Dual-track……………………………………………………….. 186

Использование Scrum-ритмов для выстраивания практики Lean UX…………………………………. 188

Цели спринта, цели разработки продукта и темы для нескольких спринтов…………….. 190

Начните тему с совместного проектирования……………………………………………………… 190

Встречи по планированию спринта……………………………………………………………………… 191

Экспериментальные истории…………………………………………………………………………………. 192

Расписание исследований пользовательских восприятий………………………………….. 193

Проектировщики должны принимать участие в планировании………………………………….. 194

Заинтересованные стороны и панель управления рисками………………………………………………… 195

Дорожные карты на основе результатов………………………………………………………………………………. 197

Частота ознакомлений…………………………………………………………………………………………………….. 199

Оценка прогресса…………………………………………………………………………………………………………….. 199

Lean UX и Agile на предприятии…………………………………………………………………………………………….. 200

Подведение итогов…………………………………………………………………………………………………………………… 203

ЧАСТЬ IV. LEAN UX В ВАШЕЙ ОРГАНИЗАЦИИ………………………………. 205

Глава 17. Осуществление организационных перемен…………………………… 209

Перемены………………………………………………………………………………………………………………………………….. 210

Перемены, вносимые в культуру поведения………………………………………………………………….. 211

Перемены, вносимые в организацию команды……………………………………………………………… 211

Перемены, вносимые в процесс………………………………………………………………………………………. 211

Перемена сознания: Будьте беспристрастны………………………………………………………………… 211

Перемена сознания: Приобретайте новые навыки……………………………………………………….. 212

Перемена сознания: Создавайте открытую рабочую среду для совместной работы. 213

Перемена сознания: Никаких выдающихся личностей………………………………………………… 214

Перемена сознания: Полюбите задачу, а не решение………………………………………………….. 215

Перемена сознания: Меняйте подходы, сложившиеся в агентстве……………………………… 216

Перемена сознания: Реально оценивайте свое окружение…………………………………………… 217

Перемена сознания: Думайте не о ролях, а о компетенциях……………………………………….. 217

Перемена сознания: Формируйте кросс-функциональные команды…………………………… 218

Перемена сознания: Формируйте небольшие команды……………………………………………….. 219

Перемена сознания: Научитесь работать с разобщенными командами…………………….. 219

Перемена сознания: Выстройте гибкие взаимоотношения со сторонними поставщиками……….. 220

Перемена сознания: Планируйте работу, нацеленную на конечные позитивные перемены, а не на материальные результаты………………………………………………………………………………………………………………………… 220

Перемена сознания: Остерегайтесь BDUF-проникновений в Agile-среды…………………… 221

Перемена сознания: Сначала выдайте скорость, а уж затем эстетику………………………. 223

Перемена сознания: Боритесь с UX-задолженностями………………………………………………… 224

Перемена сознания: Переосмыслите методы документирования……………………………….. 225

Перемена сознания: Контролируйте все, что делается выше и рядом с вами……………. 225

Глава 18. Применение методологии Lean UX в агентстве…………………….. 227

Чем вы собираетесь заниматься?……………………………………………………………………………………………. 227

Продажа услуг, оказываемых по методологии Lean UX, заключается в настройке клиентов на конкретные ожидания         229

Никто не хочет платить за эксперименты……………………………………………………………………………… 229

Итак, услуга продана! Осталось договориться со специалистами по закупкам……………….. 230

Теперь вы уже не аутсорсинговый партнер………………………………………………………………………….. 231

Краткие заметки о партнерах-разработчиках и о сторонних поставщиках……………………… 232

Подведение итогов…………………………………………………………………………………………………………………… 233

Глава 19. Последнее слово……………………………………………………………………. 234

Продукт, создающий другой продукт……………………………………………………………………………………. 235

Предметный указатель…………………………………………………………………………. 237

Джефф Готельд

Джефф Готельф (Jeff Gothelf) — дизайнер и практик Agile. Ведущий специалист по темам Agile UX и Lean UX, а также очень востребованным международный спикер. Является директором нью-йоркского офиса Neo. Ранее Джефф руководил командами в TheLadders, Publicis Modem, WebTrends, Fidelity и AOL.

 

 

Сейден Джош

Джош Сейден (Josh Seiden) уже более 20 лет создает различные технологические продукты. Лидер UX-дизайна, Джош работал в области аппаратного и программного обеспечения, потребительского и корпоративного, мобильного, веб- и настольного. Является директором Neo, а до этой должности руководил отделом дизайна продуктов в новаторской ком-пании Liquidnet с Уолл-стрит, а также руководил новаторскими коман-дами по дизайну взаимодействия в Cooper. Основатель и бывший пре-зидент Interaction Design Association.

Опубликовано

Новинка: “Kubernetes и сети. Многоуровневый подход”

Kubernetes и сети. Многоуровневый подход

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

 Для Linux-разработчиков, DevOps-инженеров и системных администраторов

 

Авторы помогут вам быстро познакомиться со всеми тонкостями, возникающими при развёртывании Kubernetes в больших контейнерных конфигурациях. Если хотите преуспеть в поддержке  продакшен-кластера и эффективно устранять в нём неполадки, то нужно уверенно различать абстракции, предоставляемые на каждом из уровней OSI. Как – читайте в этой книге.

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

 

Книгу “Kubernetes и сети. Многоуровневый подход” можно купить со скидкой в интернет-магазине издательства “БХВ“.

Предисловие…………………………………………………………………………………………….. 9

Просто еще один пакет?………………………………………………………………………………………………………………. 9

Для кого эта книга……………………………………………………………………………………………………………………….. 9

Что вы узнаете……………………………………………………………………………………………………………………………. 10

Обозначения, используемые в данной книге…………………………………………………………………………… 10

Использование примеров программ…………………………………………………………………………………………. 10

Благодарности…………………………………………………………………………………………………………………………… 11

Глава 1. Введение в сетевые технологии………………………………………………… 13

История сетевых технологий……………………………………………………………………………………………………. 13

Модель OSI…………………………………………………………………………………………………………………………………. 16

TCP/IP…………………………………………………………………………………………………………………………………………. 20

Уровень приложения………………………………………………………………………………………………………. 22

HTTP………………………………………………………………………………………………………………………… 22

Транспортный уровень………………………………………………………………………………………………….. 25

TCP…………………………………………………………………………………………………………………………… 25

TLS…………………………………………………………………………………………………………………………… 36

UDP………………………………………………………………………………………………………………………….. 38

Уровень межсетевого взаимодействия………………………………………………………………………….. 39

Протокол Интернета………………………………………………………………………………………………………. 39

Движение по сети……………………………………………………………………………………………………. 44

ICMP………………………………………………………………………………………………………………………… 47

Уровень канала данных…………………………………………………………………………………………………. 49

Снова наш веб-сервер…………………………………………………………………………………………………….. 54

Заключение………………………………………………………………………………………………………………………………… 56

Глава 2. Поддержка сети в ОС Linux……………………………………………………… 59

Базовые понятия………………………………………………………………………………………………………………………… 59

Сетевой интерфейс…………………………………………………………………………………………………………………….. 63

Интерфейс сетевого моста………………………………………………………………………………………………………… 64

Обработка пакетов в ядре Linux………………………………………………………………………………………………. 66

Netfilter (межсетевой фильтр)…………………………………………………………………………………………. 66

Conntrack…………………………………………………………………………………………………………………………. 70

Маршрутизация……………………………………………………………………………………………………………… 72

Высокоуровневая маршрутизация…………………………………………………………………………………………… 73

Утилита iptables………………………………………………………………………………………………………………. 74

Таблицы iptables…………………………………………………………………………………………………….. 75

Цепочки iptables……………………………………………………………………………………………………… 75

Подцепочки…………………………………………………………………………………………………………….. 79

Правила iptables…………………………………………………………………………………………………….. 80

Практическое применение iptables……………………………………………………………………….. 82

IPVS………………………………………………………………………………………………………………………………….. 85

eBPF…………………………………………………………………………………………………………………………………. 87

Средства сетевой диагностики…………………………………………………………………………………………………. 90

Безопасность…………………………………………………………………………………………………………………… 90

ping…………………………………………………………………………………………………………………………………… 91

traceroute…………………………………………………………………………………………………………………………. 92

dig…………………………………………………………………………………………………………………………………….. 93

telnet…………………………………………………………………………………………………………………………………. 95

nmap………………………………………………………………………………………………………………………………… 96

netstat……………………………………………………………………………………………………………………………….. 97

netcat………………………………………………………………………………………………………………………………… 98

Openssl……………………………………………………………………………………………………………………………… 99

cURL………………………………………………………………………………………………………………………………. 100

Заключение………………………………………………………………………………………………………………………………. 102

Глава 3. Основы работы с контейнерами…………………………………………….. 103

Введение в контейнеры……………………………………………………………………………………………………………. 103

Приложения…………………………………………………………………………………………………………………… 103

Гипервизор……………………………………………………………………………………………………………………. 104

Контейнеры…………………………………………………………………………………………………………………… 105

OCI…………………………………………………………………………………………………………………………. 108

LXC………………………………………………………………………………………………………………………… 109

runC……………………………………………………………………………………………………………………….. 109

containerd………………………………………………………………………………………………………………. 109

lmctfy…………………………………………………………………………………………………………………….. 110

rkt…………………………………………………………………………………………………………………………… 110

Docker……………………………………………………………………………………………………………………. 110

CRI-O…………………………………………………………………………………………………………………….. 111

Примитивы контейнеров…………………………………………………………………………………………………………. 113

Контрольные группы……………………………………………………………………………………………………. 113

Пространства имен………………………………………………………………………………………………………. 114

Задание пространств имен………………………………………………………………………………………….. 116

Основы сетей контейнеров……………………………………………………………………………………………………… 123

Сетевая модель Docker…………………………………………………………………………………………………. 132

Оверлейная сеть……………………………………………………………………………………………………………. 134

Сетевой интерфейс контейнера…………………………………………………………………………………… 135

Подключение контейнера к сети…………………………………………………………………………………………….. 137

Соединение контейнер-контейнер………………………………………………………………………………. 142

Взаимодействие между контейнерами на разных хостах………………………………………… 144

Заключение………………………………………………………………………………………………………………………………. 145

Глава 4. Cети в Kubernetes……………………………………………………………………. 147

Сетевая модель Kubernetes……………………………………………………………………………………………………… 147

Узел и конфигурация сети подов……………………………………………………………………………………………. 150

Изолированные сети…………………………………………………………………………………………………….. 151

Плоские сети…………………………………………………………………………………………………………………. 152

Островные сети…………………………………………………………………………………………………………….. 153

Конфигурация компонента kube-controller-manager…………………………………………………. 154

Kubelet………………………………………………………………………………………………………………………………………. 155

Готовность пода и ее проверка………………………………………………………………………………………………. 156

Спецификация интерфейса CNI……………………………………………………………………………………………… 162

Плагины CNI…………………………………………………………………………………………………………………………….. 163

Интерфейс IPAM…………………………………………………………………………………………………………… 164

Распространенные плагины CNI………………………………………………………………………………… 165

Компонент kube-proxy…………………………………………………………………………………………………………….. 170

Режим userspace……………………………………………………………………………………………………………. 171

Режим iptables……………………………………………………………………………………………………………….. 171

Режим IPVS……………………………………………………………………………………………………………………. 173

Режим kernelspace…………………………………………………………………………………………………………. 173

Сетевая политика…………………………………………………………………………………………………………………….. 173

Создание объекта NetworkPolicy с помощью Сilium…………………………………………………. 177

Группировка подов………………………………………………………………………………………………………. 182

Тип LabelSelector………………………………………………………………………………………………….. 183

Правила…………………………………………………………………………………………………………………………. 185

DNS                                                                                                                                                                 189

Двойной стек IPv4/ IPv6………………………………………………………………………………………………………….. 194

Заключение………………………………………………………………………………………………………………………………. 196

Глава 5. Сетевые абстракции в Kubernetes…………………………………………… 197

StatefulSet…………………………………………………………………………………………………………………………………. 198

Конечные точки……………………………………………………………………………………………………………………….. 200

Endpoint Slices…………………………………………………………………………………………………………………………… 204

Сервисы Kubernetes…………………………………………………………………………………………………………………. 208

NodePort…………………………………………………………………………………………………………………………. 209

ClusterIP…………………………………………………………………………………………………………………………. 212

Headless-сервис…………………………………………………………………………………………………………….. 219

Сервис ExternalName……………………………………………………………………………………………………. 221

Сервис LoadBalancer……………………………………………………………………………………………………. 222

Сервисы Kubernetes — устранение проблем……………………………………………………………… 228

Ингресс……………………………………………………………………………………………………………………………………… 229

Контроллеры и правила ингресса………………………………………………………………………………………….. 230

Задание правил ингресса…………………………………………………………………………………….. 236

Технология service mesh………………………………………………………………………………………………………….. 237

Заключение………………………………………………………………………………………………………………………………. 249

Глава 6. Kubernetes и облачные сети……………………………………………………. 251

Amazon Web Services……………………………………………………………………………………………………………….. 251

Сетевые сервисы AWS………………………………………………………………………………………………….. 251

Виртуальное частное облако……………………………………………………………………………… 252

Регионы и зоны доступности………………………………………………………………………………. 252

Подсеть………………………………………………………………………………………………………………….. 253

Таблицы маршрутизации……………………………………………………………………………………. 254

Эластичный сетевой интерфейс………………………………………………………………………….. 256

Эластичный IP-адрес…………………………………………………………………………………………… 256

Средства обеспечения безопасности…………………………………………………………………. 257

Устройства преобразования сетевых адресов………………………………………………….. 260

Шлюз Интернета………………………………………………………………………………………………….. 260

Эластичные балансировщики нагрузки…………………………………………………………….. 261

Эластичный сервис Kubernetes от Amazon………………………………………………………………… 264

Узлы EKS………………………………………………………………………………………………………………. 264

Режим EKS…………………………………………………………………………………………………………….. 265

Инструмент eksctl…………………………………………………………………………………………………. 268

CNI для виртуального облака в AWS…………………………………………………………………. 270

Ингресс-контроллер для AWS ALB…………………………………………………………………….. 272

Развертывание приложения в кластере AWS EKS…………………………………………………….. 274

Развертывание кластера EKS……………………………………………………………………………… 274

Развертывание тестового приложения……………………………………………………………….. 276

Тестирование сервиса LoadBalancer для веб-сервера……………………………………… 277

Развертывание и тестирование ингресс-контроллера для ALB………………………. 278

Уборка мусора……………………………………………………………………………………………………… 281

Вычислительное облако Google (GCP)…………………………………………………………………………………… 282

Сетевые сервисы GCP…………………………………………………………………………………………………… 282

Регионы и зоны……………………………………………………………………………………………………… 283

Виртуальное частное облако……………………………………………………………………………… 283

Подсеть………………………………………………………………………………………………………………….. 284

Маршруты и правила брандмауэров…………………………………………………………………. 285

Облачная балансировка нагрузки……………………………………………………………………… 285

Инстансы GCE………………………………………………………………………………………………………. 286

Google Kubernetes Engine (GKE)…………………………………………………………………………………… 286

GKE-узлы в облаке Google…………………………………………………………………………………… 287

Azure………………………………………………………………………………………………………………………………………….. 290

Сетевые сервисы Azure………………………………………………………………………………………………… 290

Базовая инфраструктура Azure…………………………………………………………………………… 291

Подсети…………………………………………………………………………………………………………………. 292

Таблицы маршрутизации……………………………………………………………………………………. 292

Публичные и частные IP-адреса………………………………………………………………………… 295

Группы сетевой безопасности…………………………………………………………………………….. 295

Взаимодействие вне пределов виртуальной сети……………………………………………… 297

Балансировщик нагрузки в Azure……………………………………………………………………….. 297

Azure Kubernetes Service……………………………………………………………………………………………….. 300

Плагин CNI для Аzure………………………………………………………………………………………….. 302

Ингресс-контроллер для шлюза приложения……………………………………………………. 303

Развертывание приложения с помощью Azure Kubernetes Service…………………………… 304

Развертывание кластера с помощью Azure Kubernetes Service………………………… 305

Соединение с кластером AKS и его конфигурирование……………………………………. 310

Развертывание веб-сервера…………………………………………………………………………………. 313

Заключительные замечания по AKS…………………………………………………………………… 315

Заключение………………………………………………………………………………………………………………………………. 315

Vallery-Lancey

Валлери Лэнси (Vallery Lancey) — инженер по распределённым системам, ранее отвечала за поддержку мультикластера Kubernetes в компании Lyft, работала ведущим DevOps-инженером в компании CheckFront (Британская Колумбия, Канада).

 

 

James Strong

Джеймс Стронг (James Strong) — директор по облачной интеграции в компании Contino, имеет опыт руководящей работы и консультирования многих крупных предприятий и финансовых институтов, участвует в работе конференций AWS User Group и Cloud-Native Louisville. Ранее работал системным администратором в Дейтонском университете, штат Огайо и в компании «GE Appliances».

Опубликовано

Встречайте индейские сказки

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

Лучшие охотники и следопыты узнали от обитателей диких лесов о том, как мышиная птица посмеялась над Лесовичком и откуда взялись селедка и каштаны, почему синицы дважды в год сходят с ума и как появилось бабье лето. Эти и другие лесные секреты посчастливилось услышать и Черному Волку — такое почетное имя индейцы дали писателю Эрнесту Сетон-Томпсону. Позже писатель собрал их в одну книгу необычных сказок. Впрочем, сказками их могут считать непосвященные бледнолицые, а для настоящих индейцев это самая что ни на есть правда.

Автор

Эрнест Сетон-Томпсон

Эрнест Сетон-Томпсон (1869–1946) — родился в Великобритании, но в 10 лет с семьей переехал в Канаду. Закончил художественный колледж Онтарио. Считается основателем анималистического жанра в литературе. Писатель организовывал экспедиции по лесам Америки, знакомил юных скаутов не только с правилами выживания в природе, но и с жизнью и обычаями индейцев.  Библиография Сетона-Томпсона состоит из восьми десятков книг о животных. Это не только научные работы, но и детские сказки, и фантастика.

Художник

Гончарова Елена
Елена Гончарова
Родилась и живу в Новосибирске, окончила Новосибирское художественное училище и Красноярский художественный институт. Занималась станковой живописью, а сейчас полностью посвятила себя иллюстрации.
Опубликовано

И снова классика: “Ашик-Кериб. Турецкая сказка”

Ашик-Кериб. Турецкая сказка

Известную во всем восточном мире сказку про бедного музыканта Ашик-Кериба записал и обработал для русского читателя великий  писатель Михаил Лермонтов.

Живущий в Тифлизе певец и музыкант  Ашик-Кериб влюбляется в дочь богатого турка. Из-за своей бедности он не может на ней жениться и поэтому обещает через семь лет вернуться богатым и уважаемым человеком. Девушка согласна ждать, но если Ашик-Кериб опоздает хоть на день, ей придется выйти замуж за купца, который давно к ней сватается. Годы разлуки не погасили чувства в сердцах влюбленных, но назначенный срок всё ближе, а Ашик-Кериб всё ещё так далеко от своей невесты.

Художник

Гульнара Фаляхова

Гульнара Фаляхова  представляет молодое поколение художников Башкирии. Ее работы, пронизанные духом тюркской культуры, украшают российские и зарубежные галереи.

 

Автор

Лермонтов Михаил Юрьевич

Михаил Юрьевич Лермонтов (1814–1841 гг.) — великий русский поэт и прозаик. Родился в семье офицера, но почти всё детство провел у бабушки в усадьбе Тарханы в Пензенской губернии. Учился в Московском университете. Популярность к поэту приходит вместе с выходом стихотворения «Смерть поэта» (1837 г.), посвященного смерти Александра Пушкина. За это произведение Лермонтов был арестован и отправлен в ссылку на Кавказ. Поэт обладал резким и непокорным характером, и в результате очередной ссоры был вызван на дуэль. Погиб от смертельной раны в Пятигорске.

Опубликовано

Представляем книгу: “Занимательная электроника. 7-е издание”

Занимательная электроника. 7-е издание

На практических примерах рассказано о том, как проектировать, отлаживать и изготавливать электронные устройства в домашних условиях. От физических основ электроники, описания устройства и принципов работы различных радиоэлектронных компонентов, советов по оборудованию домашней лаборатории автор переходит к конкретным аналоговым и цифровым схемам, включая устройства на основе микроконтроллеров. Приведены элементарные сведения по метрологии и теоретическим основам электроники. Дано множество практических рекомендаций: от принципов правильной организации электропитания до разводки плат и приобретения компонентов применительно к российским условиям. В 7-м издании обновлены многие разделы, содержавшие устаревшие сведения, подробнее рассказано об источниках тока для осветительных приборов,  измерениях электрических величин, генераторных схемах, импульсных источниках питания, добавлены новые примеры применения платформы Arduino, а также приведен пример усовершенствованного контроллера китайского производства для замены Arduino.

Для широкого круга любителей электроники

  • Начала начал электроники
  • Оборудуем домашнюю лабораторию
  • Транзисторы, резисторы, конденсаторы, дисплеи
  • Операционные усилители, импульсные источники питания
  • Аналоговые и логические схемы, микроконтроллеры
  • Arduino —электроника для домашнего мастера
  • Импортозамещение по-китайски: улучшенный аналог Arduino

Книгу “Занимательная электроника. 7-е издание” можно купить со скидкой в интернет-магазине издательства “БХВ“.

К читателю…………………………………………………………………………………………….. 13

Радиолюбительство — что это такое?…………………………………………………………………………………….. 15

Как пользоваться книгой?…………………………………………………………………………………………………………. 18

Как разрабатывать электронные схемы?………………………………………………………………………………… 19

Откуда взять информацию, как грамотно найти замену и где приобрести………………………….. 22

Часть I. Основы основ…………………………………………………………………. 25

Глава 1. Чем отличается ток от напряжения?…………………………………….. 27

Связь тока и напряжения…………………………………………………………………………………………………………… 28

Регулирование тока с помощью сопротивления…………………………………………………………………….. 31

Источники напряжения и тока………………………………………………………………………………………………….. 34

Глава 2. Джентльменский набор
Оборудуем домашнюю лабораторию……………………………………………………… 37

Мультиметр………………………………………………………………………………………………………………………………… 38

Источник питания………………………………………………………………………………………………………………………. 42

Осциллограф………………………………………………………………………………………………………………………………. 45

Глава 3. Хороший паяльник — половина успеха
Инструменты и технологические советы……………………………………………….. 51

Инструменты и материалы……………………………………………………………………………………………………….. 52

Паяльники…………………………………………………………………………………………………………………………… 55

Флюсы для пайки……………………………………………………………………………………………………………….. 57

Макетные платы………………………………………………………………………………………………………………………… 59

Печатные платы…………………………………………………………………………………………………………………………. 60

Монтаж……………………………………………………………………………………………………………………………………….. 62

Немного о проводах………………………………………………………………………………………………………………….. 70

Корпуса………………………………………………………………………………………………………………………………………. 72

Новые подходы в любительском конструировании……………………………………………………………….. 75

Проектирование схем и разводка плат…………………………………………………………………………….. 75

Редактор sPlan для разработки схем……………………………………………………………………….. 76

Программа для раскладки плат Sprint-Layout……………………………………………………….. 79

Изготовление плат…………………………………………………………………………………………………….. 81

Пайка заказных плат на основе SMD-компонентов………………………………………………. 82

Глава 4. Тригонометрическая электроника
О частотах, периодах, мощности, переменных напряжениях и токах и немного о сигналах      85

Мощность…………………………………………………………………………………………………………………………………… 89

Что показывал вольтметр?………………………………………………………………………………………………………… 90

Сигналы………………………………………………………………………………………………………………………………………. 93

О переменном токе и электропитании……………………………………………………………………………………… 94

Децибелы……………………………………………………………………………………………………………………………………. 95

Глава 5. Электроника без полупроводников
Резисторы, конденсаторы и схемы на их основе…………………………………….. 97

Резисторы……………………………………………………………………………………………………………………………………. 97

Переменные резисторы……………………………………………………………………………………………………. 103

Параллельное и последовательное соединение резисторов……………………………………….. 104

Конденсаторы………………………………………………………………………………………………………………………….. 106

Параллельное и последовательное включение конденсаторов………………………………….. 116

Конденсаторы в цепи переменного тока……………………………………………………………………….. 116

Дифференцирующие и интегрирующие цепи………………………………………………………………………… 117

Индуктивности…………………………………………………………………………………………………………………………. 119

Глава 6. Изобретение, которое потрясло мир
Диоды, транзисторы и простейшие схемы на их основе……………………….. 123

Диоды……………………………………………………………………………………………………………………………………….. 123

Транзисторы…………………………………………………………………………………………………………………………….. 125

Ключевой режим работы биполярного транзистора……………………………………………………. 128

Усилительный режим работы биполярного транзистора……………………………………………. 131

Включение транзистора с общим коллектором……………………………………………………………. 133

Стабильный усилительный каскад на транзисторе……………………………………………………… 134

Дифференциальный каскад…………………………………………………………………………………………….. 137

Полевые транзисторы……………………………………………………………………………………………………………… 138

Выбор транзисторов……………………………………………………………………………………………………………….. 144

Глава 7. Ошеломляющее разнообразие электронного мира
Реле, стабилитроны, светодиоды………………………………………………………….. 149

Электромагнитные реле………………………………………………………………………………………………………….. 149

Стабилитроны………………………………………………………………………………………………………………………….. 155

Оптоэлектроника и светодиоды……………………………………………………………………………………………… 158

Оптоэлектроника……………………………………………………………………………………………………………… 158

Светодиоды………………………………………………………………………………………………………………………. 160

Светодиодные индикаторы…………………………………………………………………………………………….. 163

ЖК-дисплеи……………………………………………………………………………………………………………………………… 165

Простейший уровнемер для водяных баков………………………………………………………………………….. 167

Часть II. Аналоговые схемы……………………………………………………. 171

Глава 8. Звуковой усилитель без микросхем
Классическая схема УМЗЧ…………………………………………………………………… 173

Схема базового УМЗЧ…………………………………………………………………………………………………………….. 174

Мощность усилителя……………………………………………………………………………………………………….. 177

Стабильность……………………………………………………………………………………………………………………. 178

О мощности выходных транзисторов…………………………………………………………………………….. 180

Проверка и отладка…………………………………………………………………………………………………………………. 180

Классы усилителей, или немного высшей математики………………………………………………………… 182

Действующее значение напряжения………………………………………………………………………………. 182

Классификация усилителей…………………………………………………………………………………………….. 182

О мощности и качестве звуковых усилителей………………………………………………………………………. 186

Глава 9. Правильное питание — залог здоровья
О питании электронных устройств………………………………………………………. 189

Электрохимические элементы………………………………………………………………………………………………… 189

Аккумуляторы………………………………………………………………………………………………………………….. 193

Вторичные линейные источники питания…………………………………………………………………………….. 197

Трансформаторы……………………………………………………………………………………………………………… 198

Расчет сетевого трансформатора…………………………………………………………………………………… 199

Простейший нестабилизированный однополярный источник питания……………………… 201

Стабилизаторы………………………………………………………………………………………………………………… 205

Интегральные стабилизаторы………………………………………………………………………………………… 207

Однополярный регулируемый источник питания…………………………………………………………. 210

Двухполярные источники питания………………………………………………………………………………………… 216

Простой трансформаторный…………………………………………………………………………………………… 216

Параллельный стабилизатор с искусственной средней точкой………………………………….. 217

Источники тока………………………………………………………………………………………………………………………… 218

Источники тока для питания светодиодов…………………………………………………………………….. 220

Источник тока на стабилизаторе LM317………………………………………………………………………. 221

Драйвер светодиодов на PT4115……………………………………………………………………………………. 223

Рассеивание тепла…………………………………………………………………………………………………………………… 224

Расчет радиатора через коэффициент теплоотдачи…………………………………………………….. 225

Расчет через значения термических сопротивлений…………………………………………………….. 227

Установка компонентов на радиаторы………………………………………………………………………….. 228

Принудительное охлаждение и элементы Пельтье………………………………………………………. 229

Импульсные источники питания…………………………………………………………………………………………….. 232

Как правильно питаться?………………………………………………………………………………………………………… 238

Глава 10. Тяжеловесы
Устройства для управления мощной нагрузкой……………………………………. 241

Базовая схема регулирования напряжения на нагрузке………………………………………………………. 243

Мощность в нагрузке при тиристорном управлении……………………………………………………. 245

Ручной регулятор мощности…………………………………………………………………………………………………… 247

Базовая схема регулятора (диммера)…………………………………………………………………………….. 247

Регулятор переменного напряжения с двумя тиристорами………………………………………….. 252

Регулятор с симистором………………………………………………………………………………………………….. 253

Бесконтактный метод измерения переменного тока…………………………………………………………….. 254

Помехи………………………………………………………………………………………………………………………………………. 256

Глава 11. Слайсы, которые стали чипами
О микросхемах…………………………………………………………………………………….. 259

Некоторые типовые узлы микросхем и особенности их эксплуатации……………………………… 263

Звуковые усилители на микросхемах……………………………………………………………………………………. 269

Мощный УМЗЧ………………………………………………………………………………………………………………… 270

Микроусилитель мощности…………………………………………………………………………………………….. 273

Глава 12. Самые универсальные
Обратная связь и операционные усилители…………………………………………. 275

Опасные связи………………………………………………………………………………………………………………………….. 276

Основные свойства системы с отрицательной обратной связью………………………………… 280

Базовые схемы усилителей на ОУ………………………………………………………………………………………….. 282

Неидеальность ОУ, ее последствия и борьба с ними……………………………………………………. 284

Дифференциальные усилители……………………………………………………………………………………….. 286

Другие распространенные схемы на ОУ……………………………………………………………………….. 289

Применение интегратора для измерения малых импульсных токов…………………………… 291

Аналоговый генератор……………………………………………………………………………………………………………. 293

Релейное регулирование и термостаты…………………………………………………………………………………. 296

Термостат вообще……………………………………………………………………………………………………………. 297

Простой термостат для аквариума………………………………………………………………………………… 301

О гистерезисе……………………………………………………………………………………………………………………. 304

Автомат включения освещения………………………………………………………………………………………. 306

Терморегулятор «для дома для семьи»………………………………………………………………………….. 308

Глава 13. Как измерить температуру?
Об измерениях, погрешностях и обработке результатов……………………….. 313

Основы термометрии……………………………………………………………………………………………………………….. 314

Датчики…………………………………………………………………………………………………………………………….. 315

Термисторы……………………………………………………………………………………………………………… 316

Металлические датчики…………………………………………………………………………………………. 318

Полупроводниковые датчики………………………………………………………………………………… 318

Методы измерения сопротивления………………………………………………………………………………………… 319

Очень точный лабораторный измеритель температуры……………………………………………………… 321

О метрологии и ошибках аналоговых схем…………………………………………………………………………… 323

Точность и разрешающая способность…………………………………………………………………………. 325

Систематические ошибки………………………………………………………………………………………………… 326

Случайные ошибки измерения и их оценка…………………………………………………………………… 326

Регрессия и метод наименьших квадратов…………………………………………………………………….. 331

Разновидности погрешностей…………………………………………………………………………………………. 333

Часть III. Цифровой век………………………………………………………………. 335

Глава 14. На пороге цифрового века
Математическая логика и ее представление в технических устройствах 337

Основные операции алгебры Буля…………………………………………………………………………………………. 340

Булева алгебра на выключателях и реле………………………………………………………………………. 343

То же самое, но на транзисторах и диодах…………………………………………………………………… 346

О двоичной и других системах счисления…………………………………………………………………………….. 348

Позиционные и непозиционные системы счисления. Десятичная система………………… 348

Двоичная и шестнадцатеричная системы……………………………………………………………………… 351

Перевод из одной системы счисления в другую……………………………………………………………. 352

Байты………………………………………………………………………………………………………………………………… 354

Запись чисел в различных форматах…………………………………………………………………………….. 356

Немного двоичной арифметики……………………………………………………………………………………………… 358

Отрицательные двоичные числа…………………………………………………………………………………….. 358

Дробные числа…………………………………………………………………………………………………………………………. 361

Коды, шифры и дешифраторы………………………………………………………………………………………………… 362

Код Грея……………………………………………………………………………………………………………………………. 365

Глава 15. Математическая электроника, или Игра в квадратики
Устройство логических микросхем и двоичные операции……………………. 369

ТТЛ……………………………………………………………………………………………………………………………………………. 370

Основные характеристики КМОП………………………………………………………………………………………….. 372

Характеристики различных серий КМОП…………………………………………………………………….. 374

Двоичный сумматор на логических микросхемах……………………………………………………………….. 381

Обработка двоичных сигналов с помощью логических элементов……………………………………. 386

Мультиплексоры/демультиплексоры и ключи……………………………………………………………………… 389

Глава 16. Устройства на логических схемах
Мультивибраторы, формирователи, триггеры, счетчики………………………. 391

Генераторы………………………………………………………………………………………………………………………………. 391

Схемы на основе триггера Шмитта………………………………………………………………………………… 397

Кварцевые генераторы……………………………………………………………………………………………………. 399

Формирователи импульсов…………………………………………………………………………………………………….. 403

Одновибраторы……………………………………………………………………………………………………………………….. 405

Схема периодического включения питания………………………………………………………………….. 408

Одновибраторы и генераторы на микросхеме 555………………………………………………………………. 410

Триггеры, регистры и счетчики………………………………………………………………………………………………. 415

Самый простой триггер…………………………………………………………………………………………………… 415

D-триггеры………………………………………………………………………………………………………………………… 418

Регистры……………………………………………………………………………………………………………………………. 420

Счетчики…………………………………………………………………………………………………………………………… 421

Цифровой лабораторный генератор……………………………………………………………………………………… 427

Глава 17. Откуда берутся цифры
Цифроаналоговые и аналого-цифровые преобразователи……………………. 431

Принципы оцифровки сигналов……………………………………………………………………………………………… 433

ЦАП…………………………………………………………………………………………………………………………………………… 436

АЦП…………………………………………………………………………………………………………………………………………… 440

АЦП параллельного действия…………………………………………………………………………………………. 440

АЦП последовательного приближения………………………………………………………………………….. 441

Интегрирующие АЦП………………………………………………………………………………………………………. 442

Цифровой термометр без микроконтроллеров……………………………………………………………………… 451

АЦП 572ПВ2 и ПВ5………………………………………………………………………………………………………….. 452

Практическая схема термометра……………………………………………………………………………………. 456

Часть IV. Микроконтроллеры…………………………………………………… 463

Глава 18. Начала микроэлектроники
Микропроцессоры, память и микроконтроллеры…………………………………. 465

Как работает микропроцессор?……………………………………………………………………………………………… 468

Лечение амнезии………………………………………………………………………………………………………………………. 475

Изобретаем простейшую ROM……………………………………………………………………………………….. 476

Общее устройство памяти……………………………………………………………………………………………….. 477

RAM…………………………………………………………………………………………………………………………………… 479

EPROM, EEPROM и флеш-память…………………………………………………………………………………… 480

Микроконтроллеры Atmel AVR……………………………………………………………………………………………… 484

Почему AVR?……………………………………………………………………………………………………………………. 485

Структура МК AVR…………………………………………………………………………………………………………. 486

Последовательные порты……………………………………………………………………………………………….. 488

Глава 19. Основы Arduino
Контроллеры, среда и примеры программирования……………………………… 491

Что такое Arduino?…………………………………………………………………………………………………………………… 492

Основные платы Arduino…………………………………………………………………………………………………………. 494

Установка среды программирования Arduino………………………………………………………………………. 499

Настройки Arduino IDE……………………………………………………………………………………………………. 503

Программы для Arduino…………………………………………………………………………………………………………… 504

Примеры программирования………………………………………………………………………………………………….. 511

Обмен через последовательный порт…………………………………………………………………………….. 511

Термостат на Arduino………………………………………………………………………………………………………. 515

Правильное подключение кнопки…………………………………………………………………………………… 518

Правильная мигалка на Ardiuno……………………………………………………………………………………… 522

Глава 20. Компоненты для Arduino
Как на Arduino делать устройства лучше фирменных………………………….. 525

Техническое задание……………………………………………………………………………………………………………….. 526

О выборе компонентов…………………………………………………………………………………………………….. 527

Интерфейс TWI (I2C)………………………………………………………………………………………………………………… 528

Датчики метеорологических параметров……………………………………………………………………………… 530

Датчики температуры и влажности……………………………………………………………………………….. 531

Барометры………………………………………………………………………………………………………………………… 534

Другие метеорологические датчики………………………………………………………………………………. 535

Особенности калибровки цифровых датчиков……………………………………………………………… 537

Часы………………………………………………………………………………………………………………………………………….. 538

Простейшие дисплеи……………………………………………………………………………………………………………….. 541

Подключение цифрового 4-разрядного дисплея к Arduino…………………………………………… 542

Часы на 4-разрядном дисплее…………………………………………………………………………………………. 543

Простой электронный термометр…………………………………………………………………………………… 546

Arduino и поразрядные матричные индикаторы…………………………………………………………………… 550

Схема подключения драйвера MAX6953 с I2C-интерфейсом……………………………………… 552

Программа………………………………………………………………………………………………………………………… 554

Работа с текстом на графическом дисплее MT-12864J………………………………………………………… 557

Подключение MT-12864J………………………………………………………………………………………………… 558

Русификация модуля MT-12864J……………………………………………………………………………………. 560

Строчные OLED-дисплеи………………………………………………………………………………………………………… 562

Контроллер WS0010 и библиотека LiquidCrystal…………………………………………………………. 563

Пишем по-русски……………………………………………………………………………………………………………… 565

Подключение строчных дисплеев Winstar…………………………………………………………………….. 566

Часы на основе OLED-дисплея……………………………………………………………………………………….. 568

Графические дисплеи Winstar…………………………………………………………………………………………………. 571

I2C-интерфейс для дисплеев Winstar………………………………………………………………………………………. 576

Передача данных по радиоканалу………………………………………………………………………………………… 579

Беспроводной UART: приемопередатчик HC-12………………………………………………………….. 579

Подключение передатчика и приемника RF link 433 MГц…………………………………………… 581

О режиме энергосбережения, Watchdog-таймере и питании метеостанции………………………. 587

Watchdog Timer………………………………………………………………………………………………………………… 588

О мерах по снижению энергопотребления…………………………………………………………………….. 592

Автономный датчик температуры/влажности……………………………………………………………………… 593

О конструктивном оформлении устройств на Arduino…………………………………………………………. 596

Глава 21. Применения Arduino
Избранные возможности платформы……………………………………………………. 599

Аналоговое управление внешними устройствами (ШИМ)………………………………………………….. 599

Принцип ШИМ-регулирования………………………………………………………………………………………. 600

ШИМ и Arduino………………………………………………………………………………………………………………… 601

Подбор MOSFET-ключей и драйверов для мощной нагрузки……………………………………… 604

Запись на SD-карту………………………………………………………………………………………………………………….. 607

Измерение частоты в Arduino…………………………………………………………………………………………………. 609

Метод первый — измерение частоты…………………………………………………………………………….. 610

Метод второй — измерение периода……………………………………………………………………………… 611

Ультразвуковой дальномер…………………………………………………………………………………………………….. 613

Пироэлектрический датчик…………………………………………………………………………………………………….. 615

Управляем с ИК-пульта от телевизора………………………………………………………………………………….. 618

Определение и применение кодов команд с ИК-пульта……………………………………………….. 618

Двухкнопочный плавный регулятор с запоминанием состояния……………………………………….. 621

Программа регулятора……………………………………………………………………………………………………. 623

О преимуществах и недостатках Arduino……………………………………………………………………………… 625

Глава 22. Персональный компьютер вместо паяльника
О программировании МК на ассемблере………………………………………………. 631

Некоторые дополнительные подробности архитектуры AVR……………………………………………. 632

Classic, Mega и Tiny………………………………………………………………………………………………………….. 632

Память программ…………………………………………………………………………………………………….. 633

Память данных (ОЗУ, SRAM)………………………………………………………………………………… 634

Энергонезависимая память данных (EEPROM)…………………………………………………… 635

Способы тактирования…………………………………………………………………………………………… 636

Параллельные порты ввода/вывода……………………………………………………………………… 638

Прерывания……………………………………………………………………………………………………………… 640

Таймеры-счетчики………………………………………………………………………………………………….. 642

Железо………………………………………………………………………………………………………………………………………. 644

Софт………………………………………………………………………………………………………………………………………….. 646

О конфигурационных битах……………………………………………………………………………………………………. 649

Примеры программирования………………………………………………………………………………………………….. 652

Самая простая программа………………………………………………………………………………………………. 653

Таймер без прерываний…………………………………………………………………………………………………… 657

Применение прерываний…………………………………………………………………………………………………. 661

Прерывание таймера по переполнению………………………………………………………………………… 664

Прерывание таймера по сравнению………………………………………………………………………………. 667

Арифметика многоразрядных чисел на ассемблере…………………………………………………………….. 669

Операции с числами в формате BCD……………………………………………………………………………… 673

Мощный инвертор на микроконтроллере……………………………………………………………………………… 676

Программная реализация ШИМ…………………………………………………………………………………….. 678

О схемотехнике инвертора……………………………………………………………………………………………… 683

Экономичный автономный датчик температуры…………………………………………………………………. 686

Глава 23. LGT8F328P, или импортозамещение по-китайски
Усовершенствованный аналог AVR и примеры его применения………….. 689

Общие особенности LGT8F328P на практике……………………………………………………………………….. 689

Документация…………………………………………………………………………………………………………………… 690

Что требуется для начала работы?………………………………………………………………………………… 690

Применение LGT8F328P для замены Arduino……………………………………………………………………….. 693

Стандартная мигалка и мигалка по кнопке…………………………………………………………………… 694

Правильная мигалка на LGT8F328P……………………………………………………………………… 695

Программный UART………………………………………………………………………………………………………… 696

Примеры использования расширенных функций LGT8F328P…………………………………………….. 698

Timer3………………………………………………………………………………………………………………………………… 698

Цифроаналоговый преобразователь……………………………………………………………………………… 699

Генератор «пилы»…………………………………………………………………………………………………… 700

Генератор синуса……………………………………………………………………………………………………. 702

Получение уникального идентификатора……………………………………………………………………… 703

Программирование LGT8F328P на ассемблере……………………………………………………………………. 704

Установка источника тактирования………………………………………………………………………………. 707

Мигалка с помощью Timer3……………………………………………………………………………………………. 709

Watchdog, энергосбережение и UART……………………………………………………………………………. 711

Приложения…………………………………………………………………………………… 713

Приложение 1. Резисторы и конденсаторы…………………………………………… 715

Международная цветная маркировка резисторов (с допуском 5 и 10%)…………………………… 715

Таблицы номиналов резисторов и конденсаторов……………………………………………………………….. 716

Приложение 2. Стандартные обозначения, размеры и характеристики некоторых гальванических элементов……………………………………………………………………………………………… 717

Приложение 3. Соответствие наименований и функциональности некоторых зарубежных и отечественных цифровых микросхем…………………………………………………… 719

Приложение 4. Словарь часто встречающихся аббревиатур и терминов. 722

Приложение 5. Единицы измерения и обозначения……………………………… 728

Физические величины и их единицы измерения по умолчанию………………………………………….. 728

Приставки и множители для образования десятичных кратных и дольных единиц…………. 729

Некоторые буквенные обозначения в электрических схемах……………………………………………… 729

Некоторые символические обозначения в электрических схемах……………………………………… 730

Символические обозначения мощности резисторов на схемах………………………………………….. 732

Приложение 6. Запись загрузчика и программирование Arduino Mini….. 734

Запись загрузчика (bootloader)……………………………………………………………………………………………….. 734

Arduino в роли ISP……………………………………………………………………………………………………………. 734

Запись загрузчика через любой ISP-программатор……………………………………………………… 737

Программирование Arduino Mini и Pro Mini………………………………………………………………………….. 738

Программирование Mini c помощью платы Arduino Uno…………………………………………….. 738

Программирование Mini через адаптер USB-UART……………………………………………………… 739

Программирование Arduino Mini через адаптер USB-UART
с автоматическим сбросом……………………………………………………………………………………………… 740

Литература и источники………………………………………………………………………. 743

Предметный указатель…………………………………………………………………………. 745

Ревич Юрий Всеволодович

Ревич Юрий Всеволодович – инженер-электронщик, журналист и писатель с многолетним стажем. Основной круг интересов – проектирование микроэлектронных устройств от принципиальной схемы до пользовательского интерфейса, информационные технологии, их влияние на современное общество, технологические инновации, история компьютеров. Автор 16 книг, в том числе «Занимательной электроники», выдержавшей 5 изданий в течение 15 лет, а также нескольких сотен публикаций в журналах, газетах и сетевых изданиях, в том числе ряда статей на портале Habr.ru.