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

“Основы искусственного интеллекта в примерах на Python. Самоучитель. 2-е изд.”

Основы искусственного интеллекта в примерах на Python. Самоучитель. 2-е изд.

Описаны инструментальные средства для разработки приложений искусственного интеллекта. Даны основы языка программирования Python. Раскрыты основные понятия и определения искусственного интеллекта. Рассмотрены вопросы программной реализации элементов нейронной сети и построения многослойных нейронных сетей. Большое внимание уделено применению специализированных библиотек PyBrain, Scikit-learn, Keras, TensorFlow для формирования структуры нейронных сетей и их обучения, и библиотек ImageAI и OpenCV для обработки изображений. Материал иллюстрирован простыми и понятными примерами, демонстрирующими использование предварительно обученных нейронных сетей для распознавания объектов на изображениях, создания собственных наборов данных, формирования структуры сети, ее обучения и практического применения. Во 2-м издании обновлены программные коды и версии библиотек, улучшены рисунки, учтены пожелания читателей и исправлены ошибки.
Электронное приложение-архив, доступное на сайте издательства, содержит листинги описанных в книге примеров.
издании обновлены программные коды и версии библиотек, улучшены рисунки, учтены пожелания читателей и исправлены ошибки.

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

  • Необходимые основы языка Python
  • Элементы искусственного интеллекта
  • Разработка приложений искусственного интеллекта
  • Инструментальные средства и полезные библиотеки
  • Новые версии ПО и библиотек
  • Программная реализация нейронных сетей
  • Библиотеки PyBrain, Scikit-learn, Keras, TensorFlow, ImageAI, OpenCV
  • Наглядные примеры нейронных сетей, их обучения и использования

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

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

Глава 1. Инструментальные средства для разработки приложений искусственного интеллекта           15

1.1. Интерпретатор Python………………………………………………………………………………………………………… 16

1.1.1. Установка Python в Windows…………………………………………………………………………………… 17

1.1.2. Установка Python в Linux………………………………………………………………………………………… 19

1.1.3. Проверка интерпретатора Python…………………………………………………………………………… 20

1.2. Интерактивная среда разработки программного кода PyCharm…………………………………… 20

1.2.1. Установка PyCharm в Windows……………………………………………………………………………….. 21

1.2.2. Установка PyCharm в Linux…………………………………………………………………………………….. 23

1.2.3. Проверка PyCharm……………………………………………………………………………………………………. 24

1.3. Установка пакетов в Python с использованием менеджера пакетов pip………………………… 26

1.3.1. Где взять отсутствующий пакет?…………………………………………………………………………….. 27

1.3.2. Менеджер пакетов pip в Python……………………………………………………………………………….. 27

1.3.3. Использование pip…………………………………………………………………………………………………….. 28

Установка пакета……………………………………………………………………………………………………… 28

Удаление пакета………………………………………………………………………………………………………. 29

Обновление пакетов…………………………………………………………………………………………………. 29

Просмотр установленных пакетов…………………………………………………………………………. 29

Поиск пакета в репозитории……………………………………………………………………………………. 29

1.4. Интерактивная среда разработки интерфейса PyQt………………………………………………………… 30

1.5. Краткие итоги главы…………………………………………………………………………………………………………… 33

Глава 2. Основы языка программирования Python………………………………… 34

2.1. Первая программа в среде интерпретатора Python…………………………………………………………. 35

2.2. Оконная форма как основа интерфейса……………………………………………………………………………. 39

2.3. Подключение Windows-формы к программе на Python…………………………………………………… 43

2.4. Сборка исполняемого файла на Python под Windows……………………………………………………… 47

2.5. Базовые конструкции языка Python…………………………………………………………………………………… 51

2.5.1. Переменные……………………………………………………………………………………………………………….. 51

2.5.2. Функции…………………………………………………………………………………………………………………….. 53

2.5.3. Массивы (списки)……………………………………………………………………………………………………… 58

2.5.4. Условия и циклы……………………………………………………………………………………………………….. 60

Условия……………………………………………………………………………………………………………………… 60

Циклы………………………………………………………………………………………………………………………… 61

2.5.5. Классы и объекты…………………………………………………………………………………………………….. 64

Классы………………………………………………………………………………………………………………………. 65

Объекты…………………………………………………………………………………………………………………….. 67

2.5.6. Создание классов и объектов на примере автомобиля…………………………………………. 69

2.5.7. Программные модули………………………………………………………………………………………………. 72

Установка модуля…………………………………………………………………………………………………….. 72

Подключение и использование модуля………………………………………………………………….. 73

2.6. Краткие итоги главы…………………………………………………………………………………………………………… 74

Глава 3. Элементы искусственного интеллекта……………………………………… 75

3.1. Основные понятия и определения искусственного интеллекта………………………………………. 76

3.2. Искусственный нейрон как основа нейронных сетей………………………………………………………. 77

3.2.1. Функция единичного скачка……………………………………………………………………………………. 83

3.2.2. Сигмоидальная функция активации……………………………………………………………………….. 85

3.2.3. Гиперболический тангенс………………………………………………………………………………………… 87

3.3. Нейронные сети…………………………………………………………………………………………………………………… 88

3.3.1. Однослойные нейронные сети…………………………………………………………………………………. 90

3.3.2. Многослойные нейронные сети………………………………………………………………………………. 90

3.4. Обучение нейронных сетей………………………………………………………………………………………………… 92

3.4.1. Что такое обучение сети?………………………………………………………………………………………… 92

3.4.2. Обучающая выборка………………………………………………………………………………………………… 93

3.4.3. Тестовая выборка……………………………………………………………………………………………………… 94

3.4.4. Обучение с учителем………………………………………………………………………………………………… 94

3.4.5. Обучение без учителя………………………………………………………………………………………………. 95

3.5. Краткие итоги главы…………………………………………………………………………………………………………… 95

Глава 4. Программная реализация элементов нейронной сети……………….. 96

4.1. Персептроны……………………………………………………………………………………………………………………….. 96

4.2. Классификация персептронов…………………………………………………………………………………………. 100

4.2.1. Персептрон с одним скрытым слоем…………………………………………………………………….. 100

4.2.2. Однослойный персептрон……………………………………………………………………………………… 100

4.2.3. Виды персептронов………………………………………………………………………………………………… 105

4.3. Роль персептронов в нейронных сетях……………………………………………………………………………. 106

4.4. Линейная разделимость объектов…………………………………………………………………………………… 109

4.5. Решение задач классификации объектов на основе логических функций…………………… 112

4.6. Урок 1. Учим персептрон понимать изображения…………………………………………………………. 117

4.6.1. Распознавание цифр……………………………………………………………………………………………….. 119

4.7. Урок 2. Учим персептрон подбирать веса связей…………………………………………………………… 123

4.8. Дельта-правило…………………………………………………………………………………………………………………. 139

4.9. Линейная аппроксимация………………………………………………………………………………………………… 142

4.10. Учим персептрон классифицировать объекты. Обучение без учителя……………………… 148

4.11. Адаптивные линейные нейроны……………………………………………………………………………………. 157

4.12. Краткие итоги главы………………………………………………………………………………………………………. 171

Глава 5. Построение многослойных нейронных сетей………………………….. 172

5.1. Исследуем простейший искусственный нейрон…………………………………………………………….. 172

5.2. Программируем простейший искусственный нейрон……………………………………………………. 177

5.3. Строим сеть из нейронов………………………………………………………………………………………………….. 179

5.4. Обучаем нейронную сеть…………………………………………………………………………………………………. 182

5.5. Последовательность шагов проектирования нейронных сетей……………………………………. 193

5.6. Краткие итоги главы…………………………………………………………………………………………………………. 196

Глава 6. Полезные библиотеки для создания нейронных сетей на Python 197

6.1. Виды специализированных библиотек…………………………………………………………………………… 198

6.1.1. NumPy……………………………………………………………………………………………………………………… 198

6.1.2. Pandas………………………………………………………………………………………………………………………. 198

6.1.3. matplotlib…………………………………………………………………………………………………………………. 198

6.1.4. Theano……………………………………………………………………………………………………………………… 199

6.1.5. TensorFlow……………………………………………………………………………………………………………….. 199

6.1.6. Keras…………………………………………………………………………………………………………………………. 199

6.1.7. PyBrian…………………………………………………………………………………………………………………….. 200

6.2. Библиотека для построения нейронных сетей PyBrain…………………………………………………. 200

6.2.1. Общие сведения о библиотеке PyBrain…………………………………………………………………. 200

6.2.2. Термины и определения в библиотеке PyBrain……………………………………………………. 203

6.2.3. Установка (подключение) библиотеки PyBrain…………………………………………………… 205

6.2.4. Основы работы с библиотекой PyBrain………………………………………………………………… 207

6.2.5. Работа с наборами данных в библиотеке PyBrain………………………………………………. 209

6.2.6. Пример создания нейронной сети с библиотекой PyBrain………………………………….. 219

6.3. Библиотека scikit-learn для создания и обучения нейронных сетей…………………………….. 223

6.3.1. Наборы данных в библиотеке scikit-learn…………………………………………………………….. 227

6.3.2. Обучающие и тестовые наборы данных в библиотеке scikit-learn…………………….. 230

6.3.3. Предварительный анализ наборов данных…………………………………………………………. 231

6.3.4. Обучение нейронной сети с библиотекой scikit-learn………………………………………….. 234

6.3.5. Оценка качества обучения моделей в библиотеке scikit-learn……………………………. 237

6.3.6. Персептрон и библиотека scikit-learn……………………………………………………………………. 238

6.3.7. Классификаторы на основе логистической регрессии в библиотеке scikit-learn. 244

6.4. Библиотека Keras и сверточные нейронные сети…………………………………………………………… 250

6.4.1. Общие сведения о библиотеке Keras…………………………………………………………………….. 250

6.4.2. Сверточные нейронные сети…………………………………………………………………………………. 251

6.4.3. Строим сверточную нейронную сеть с библиотекой Keras………………………………… 256

6.5. Нейронные сети с библиотекой TensorFlow……………………………………………………………………. 271

6.5.1. Строим простую нейронную сеть с библиотекой TensorFlow……………………………. 272

6.5.2. Строим нейронную сеть для классификации изображений
с библиотекой TensorFlow……………………………………………………………………………………………….. 277

6.6. Краткие итоги главы…………………………………………………………………………………………………………. 295

Глава 7. Создание нейронных сетей обработки изображений:
библиотека ImageAI……………………………………………………………………………… 297

7.1. Классы распознавания и обнаружения объектов на изображениях……………………………. 298

7.1.1. Распознавание объектов в изображениях: класс ImageClassification……………….. 298

Функция .setModelTypeAsMobileNetV2()………………………………………………………………. 301

Функция .setModelTypeAsResNet50()…………………………………………………………………….. 301

Функция .setModelTypeAsInceptionV3()………………………………………………………………… 301

Функция .setModelTypeAsDenseNet121()………………………………………………………………. 301

Функция .setModelPath()………………………………………………………………………………………… 301

Функция .loadModel()…………………………………………………………………………………………….. 302

Функция .classifyImage()…………………………………………………………………………………………. 302

7.1.2. Обнаружение и извлечение объектов из изображений: класс ObjectDetection…. 307

Функция .setModelTypeAsRetinaNet()……………………………………………………………………. 308

Функция .setModelTypeAsYOLOv3()……………………………………………………………………….. 308

Функция .setModelTypeAsTinyYOLOv3()………………………………………………………………… 308

Функция .setModelPath()………………………………………………………………………………………… 309

Функция .loadModel()…………………………………………………………………………………………….. 309

Функция .detectObjectsFromImage()………………………………………………………………………. 309

Функция .CustomObjects()………………………………………………………………………………………. 312

Функция .detectCustomObjectsFromImage()………………………………………………………….. 314

7.2. Классы распознавания объектов в видеофайлах и видеопотоках……………………………….. 320

7.2.1. Обнаружение объектов в видеофайлах и видеопотоках с видеокамер:
класс VideoObjectDetection……………………………………………………………………………………………… 320

Функция .setModelTypeAsRetinaNet()……………………………………………………………………. 321

Функция .setModelTypeAsYOLOv3()……………………………………………………………………….. 321

Функция .setModelTypeAsTinyYOLOv3()………………………………………………………………… 321

Функция .setModelPath()………………………………………………………………………………………… 322

Функция .loadModel()…………………………………………………………………………………………….. 322

Функция .detectObjectsFromVideo()………………………………………………………………………. 322

7.2.2. Примеры программы распознавания объектов в видеофайлах…………………………. 324

7.2.3. Пример программы распознавания объектов в видеопотоках с видеокамер……. 327

7.2.4. Пример программы с пользовательскими функциями для распознавания объектов в видеофайлах               329

7.3. Обучение нейронных сетей на пользовательских наборах данных……………………………. 341

7.3.1. Обучение нейронной сети на пользовательском наборе данных:
класс ClassificationModelTraining………………………………………………………………………………….. 341

Функция .setModelTypeAsMobileNetV2()………………………………………………………………. 343

Функция .setModelTypeAsResNet50()…………………………………………………………………….. 343

Функция .setModelTypeAsInceptionV3()………………………………………………………………… 343

Функция .setModelTypeAsDenseNet121()………………………………………………………………. 344

Функция .setDataDirectory()…………………………………………………………………………………… 344

Функция .trainModel()…………………………………………………………………………………………….. 344

7.3.2. Пример программы обучения нейронной сети на пользовательском наборе данных          346

7.4. Применение пользовательских нейронных сетей с библиотекой ImageAI…………………. 350

7.4.1. Поиск пользовательских объектов в изображениях:
класс CustomImageClassification…………………………………………………………………………………….. 350

Функция .setModelTypeAsResNet50()…………………………………………………………………….. 350

Функция .setModelTypeAsInceptionV3()………………………………………………………………… 351

Функция .setModelTypeAsDenseNet121()………………………………………………………………. 351

Функция .setModelPath()………………………………………………………………………………………… 351

Функция .setJsonPath()…………………………………………………………………………………………… 351

Функция .loadModel()…………………………………………………………………………………………….. 351

Функция .classifyImage()…………………………………………………………………………………………. 352

7.4.2. Пример программы поиска пользовательских объектов в изображениях………… 353

7.5. Нейронные сети с архитектурой YOLOv3 для обнаружения объектов в изображениях 355

7.5.1. Обучение пользовательской модели: класс Custom.DetectionModelTrainer…….. 355

Метод .setModelTypeAsYOLOv3()…………………………………………………………………………… 358

Метод .trainer.setDataDirectory()………………………………………………………………………….. 358

Метод .trainer.setTrainConfig()……………………………………………………………………………… 358

Функция .trainer.evaluateModel()………………………………………………………………………….. 360

7.5.2. Обнаружение и извлечение пользовательских объектов из изображений:
класс CustomObjectDetection…………………………………………………………………………………………… 361

Метод .setModelTypeAsYOLOv3()…………………………………………………………………………… 364

Метод .setModelPath()……………………………………………………………………………………………. 364

Метод .setJsonPath()………………………………………………………………………………………………. 364

Метод .loadModel()………………………………………………………………………………………………… 364

Метод .detectObjectsFromImage()………………………………………………………………………….. 364

7.5.3. Обнаружение и извлечение пользовательских объектов из видеопотоков с видеокамер: класс CustomVideoObjectDetection……………………………………………………………………………………………. 367

Метод .setModelTypeAsYOLOv3()…………………………………………………………………………… 370

Метод .setModelPath()……………………………………………………………………………………………. 370

Метод .setJsonPath()………………………………………………………………………………………………. 370

Метод .loadModel()………………………………………………………………………………………………… 370

Метод .detectObjectsFromVideo()………………………………………………………………………….. 370

7.5.4. Формирование пользовательского обучающего набора данных:
приложение LabelImg………………………………………………………………………………………………………. 374

7.5.5. Пример программы обучения модели YOLOv3 на пользовательском наборе данных        383

7.5.6. Пример программы распознавания с помощью пользовательской модели YOLOv3……….. 384

7.6. Краткие итоги главы…………………………………………………………………………………………………………. 386

Глава 8. Создание приложений для обработки изображений:
библиотека OpenCV……………………………………………………………………………… 387

8.1. Обученные классификаторы Хаара для распознавания объектов в изображениях…… 388

8.2. Пример программы поиска лиц на фотографиях…………………………………………………………… 390

8.3. Пример программы поиска лиц в видеопотоках с видеокамер…………………………………….. 392

8.4. Пример программы распознавания глаз на фотографиях…………………………………………….. 393

8.5. Пример программы распознавания эмоций на изображениях……………………………………… 395

8.6. Пример программы распознавания автомобильных номеров на изображениях……….. 397

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

8.8. Пример программы распознавания движущихся автомобилей в транспортном потоке 402

8.9. Пример программы распознавания различных объектов из одного программного кода 403

8.10. Пример программы распознавания пешеходов на изображениях
с использованием OpenCV и HOG-детекторов…………………………………………………………….. 405

8.11. Пример программы распознавания пешеходов на видео с использованием OpenCV и HOG-детекторов               408

8.12. Распознавание конкретных людей на фотографиях в OpenCV………………………………….. 409

8.12.1. Пример программы для обучения модели распознавания лиц по фотографиям 412

8.12.2. Пример программы распознавания лиц конкретных людей на фотографиях. 419

8.13. Создание пользовательской модели распознавания людей в видеопотоке с видеокамеры в OpenCV     423

8.13.1. Пример программы формирования обучающей выборки пользователя для тренировки модели распознавания конкретных людей………………………………………………………………………………………………………….. 423

8.13.2. Пример программы обучения модели на основе обучающей выборки пользователя     425

8.13.3. Программа распознавания лиц людей на основе обучающей выборки пользователя    427

8.14. Краткие итоги главы………………………………………………………………………………………………………. 430

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

Список литературы………………………………………………………………………………. 440

Книги…………………………………………………………………………………………………………………………………………. 440

Электронные ресурсы……………………………………………………………………………………………………………… 440

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

Постолит

Постолит Анатолий Владимирович — доктор технических наук, профессор, академик Российской академии транспорта, лауреат Всероссийского конкурса «Инженер года». Профессиональный программист, автор книг компьютерной тематики, в том числе «Python, Django и Bootstrap для начинающих» и более 120 научных публикаций. Профессор Московского государственного автомобильно-дорожного технического университета (МАДИ). Занимался разработкой и внедрением информационных систем для транспортного комплекса Москвы и Московской области, для транспортного обслуживания зимних Олимпийских игр в г. Сочи, систем оплаты проезда и информирования пассажиров городского общественного транспорта. Специализируется на создании информационных систем на основе MS SQL Server, MS Visual Studio, Bluetooth-технологий, веб-приложений, а также систем искусственного интеллекта, обработки изображений и компьютерного зрения.

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

Новинка: “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 г.), посвященного смерти Александра Пушкина. За это произведение Лермонтов был арестован и отправлен в ссылку на Кавказ. Поэт обладал резким и непокорным характером, и в результате очередной ссоры был вызван на дуэль. Погиб от смертельной раны в Пятигорске.