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

Вышла книга”Astra Linux. 30 уроков для начинающих”

Astra Linux. 30 уроков для начинающих

В книге  30 уроков для пользователей, начинающих осваивать популярный отечественный дистрибутив Astra Linux. С позиции пользователя описано решение типичных задач – от установки дистрибутива и настройки  графического интерфейса Fly до простейшего администрирования системы.  Рассмотрены настольные приложения, такие как офисный пакет LibreOffice, графический редактор GIMP, мультимедиа-программы для просмотра видео и воспроизведения музыки. Приведены инструкции по запуску Windows-приложений и установке популярных мессенджеров (Skype, Telegram, Viber) на компьютер. Также затронуты  вопросы, установки ОС на физический и виртуальный компьютер, подключения двух мониторов и других дополнительных устройств. Для закрепления материала даны контрольные вопросы и самостоятельные упражнения.

Для широкого круга пользователей

Осваиваем отечественный дистрибутив Astra Linux

В книге  30 уроков для пользователей, начинающих осваивать популярный отечественный дистрибутив Astra Linux, который широко внедряется в последнее время с целью замены Microsoft Windows. С позиции пользователя описано решение типичных задач – от установки дистрибутива до простейшего администрирования системы. Рассмотрены настольные приложения, такие как офисный пакет LibreOffice, мультимедиа-программы для просмотра видео и воспроизведения музыки. Приведены инструкции по запуску Windows-приложений и установке популярных мессенджеров.  Дополнительно затронуты  вопросы, установки операционной системы на физический и виртуальный компьютер, подключения двух мониторов и других дополнительных устройств. Для закрепления материала даны контрольные вопросы и самостоятельные упражнения.

  • Установка системы
  • Кастомизация графического интерфейса Fly
  • Настройка и защита сети
  • Установка мессенджеров Viber, Telegram, Skype
  • Мультимедиа-программы
  • Офисный пакет LibreOffice
  • Графический редактор GIMP
  • Подключение смартфона к компьютеру (iPhone, Android)
  • Начальные навыки администрирования
  • Работа с устройствами: подключение принтера, жесткого диска и дополнительного монитора

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

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

Часть I. Начало работы………………………………………………………………… 13

Урок 1. Установка дистрибутива……………………………………………………………. 15

1.1. Получение дистрибутива…………………………………………………………………………………………………… 15

1.2. Подготовка к установке……………………………………………………………………………………………………… 16

1.2.1. Подготовка к установке на физический компьютер………………………………………………. 16

Создание загрузочной флешки……………………………………………………………………………….. 16

Загрузка дистрибутива с USB-накопителя…………………………………………………………….. 18

1.2.2. Подготовка к установке на виртуальный компьютер……………………………………………. 18

Установка гостевой операционной системы…………………………………………………………. 23

1.3. Выбор типа установки……………………………………………………………………………………………………….. 23

1.4. Выбор способа переключения раскладки клавиатуры…………………………………………………… 25

1.5. Установка имени компьютера……………………………………………………………………………………………. 25

1.6. Создание локального пользователя………………………………………………………………………………….. 26

1.7. Установка часового пояса…………………………………………………………………………………………………. 28

1.8. Разметка жесткого диска……………………………………………………………………………………………………. 29

1.9. Выбор компонентов системы…………………………………………………………………………………………….. 37

1.10. Дополнительные настройки ОС………………………………………………………………………………………. 39

1.11. Установка загрузчика GRUB и завершение установки…………………………………………………. 40

1.12. Выбор уровня защищенности………………………………………………………………………………………….. 42

1.13. Самостоятельные упражнения………………………………………………………………………………………… 46

Урок 2. Интерфейс пользователя, вход в систему и завершение работы…. 47

2.1. Меню загрузчика………………………………………………………………………………………………………………… 47

2.2. Вход в систему…………………………………………………………………………………………………………………….. 49

2.3. Рабочий стол Fly…………………………………………………………………………………………………………………. 50

2.4. Настройка автоматического входа в систему………………………………………………………………….. 52

2.5. Завершение работы…………………………………………………………………………………………………………….. 52

2.6. Контрольные вопросы и самостоятельные упражнения…………………………………………………. 55

Урок 3. Кастомизация интерфейса пользователя……………………………………. 56

3.1. Настройка панели быстрого запуска……………………………………………………………………………….. 56

3.2. Настройка панели задач……………………………………………………………………………………………………. 57

3.2.1. Смена расположения панели задач………………………………………………………………………… 57

3.2.2. Изменение размера панели задач……………………………………………………………………………. 57

3.2.3. Делаем панель задач компактнее……………………………………………………………………………. 59

3.2.4. Автоматическое сокрытие панели задач……………………………………………………………….. 60

3.3. Переключатель рабочих столов………………………………………………………………………………………… 60

3.4. Изменение разрешения рабочего стола……………………………………………………………………………. 62

3.5. Смена обоев…………………………………………………………………………………………………………………………. 63

3.6. Изменение темы оформления……………………………………………………………………………………………… 65

3.7. Изменение параметров блокировки…………………………………………………………………………………… 67

3.8. Панель управления……………………………………………………………………………………………………………… 67

3.8.1. Редактирование главного меню………………………………………………………………………………. 70

3.8.2. Изменение раскладки клавиатуры………………………………………………………………………….. 71

3.8.3. Менеджер устройств………………………………………………………………………………………………… 72

3.8.4. Изменение параметров электропитания…………………………………………………………………. 72

3.9. Контрольные вопросы и самостоятельные упражнения…………………………………………………. 74

Урок 4. Командная строка……………………………………………………………………… 75

4.1. Способы доступа к командной строке……………………………………………………………………………… 75

4.2. Автодополнение командной строки………………………………………………………………………………….. 76

4.3. Получение справки по команде…………………………………………………………………………………………. 77

4.4. Некоторые базовые команды Linux………………………………………………………………………………….. 77

4.4.1. Перенаправление ввода/вывода……………………………………………………………………………… 77

4.4.2. Команда clear — очистка экрана……………………………………………………………………………. 79

4.4.3. Команды free и df — информация о системных ресурсах…………………………………….. 79

4.4.4. Команды w, who и whoami — информация о пользователях………………………………… 80

4.4.5. Команды top и htop — вывод информации о запущенных процессах………………… 80

4.4.6. Команды more и less — постраничный вывод……………………………………………………….. 83

4.5. Самостоятельные упражнения………………………………………………………………………………………….. 83

Часть II. Сеть и Интернет……………………………………………………………… 85

Урок 5. Настройка соединения с Интернетом………………………………………… 87

5.1. Настройка подключения по локальной сети……………………………………………………………………. 87

5.2. Подключаемся по Wi-Fi………………………………………………………………………………………………………. 89

5.3. Используем сторонние DNS……………………………………………………………………………………………….. 91

5.4. Файлы конфигурации сети в Linux……………………………………………………………………………………. 92

5.5. Самостоятельные упражнения………………………………………………………………………………………….. 94

Урок 6. Защита соединения с помощью VPN…………………………………………. 95

6.1. Вкратце о VPN…………………………………………………………………………………………………………………….. 95

6.2. Настройка VPN в Astra Linux…………………………………………………………………………………………….. 96

6.3. Самостоятельные упражнения………………………………………………………………………………………… 102

Урок 7. Конфигурация сети………………………………………………………………….. 103

7.1. Имена сетевых интерфейсов…………………………………………………………………………………………….. 103

7.2. Сервис network-manager: перезапуск сети……………………………………………………………………… 104

7.3. Утилита nm-connection-editor………………………………………………………………………………………….. 105

7.4. Маршрутизация………………………………………………………………………………………………………………… 107

7.4.1. Просмотр таблицы маршрутизации……………………………………………………………………… 108

7.4.2. Изменение таблицы маршрутизации……………………………………………………………………. 109

7.4.3. Сохранение маршрутов после перезапуска системы…………………………………………. 111

7.5. Команды диагностики сети……………………………………………………………………………………………… 112

7.6. Самостоятельные упражнения………………………………………………………………………………………… 114

Урок 8. Настройка брандмауэра…………………………………………………………… 115

8.1. Немного теории: что такое брандмауэр?……………………………………………………………………….. 115

8.2. Базовая настройка UFW…………………………………………………………………………………………………… 117

8.3. Создание правил для сервисов………………………………………………………………………………………… 119

8.4. Разрешаем IP-адреса………………………………………………………………………………………………………… 120

8.5. Запрещаем IP-адреса и службы………………………………………………………………………………………. 120

8.6. Удаление/сброс правил……………………………………………………………………………………………………. 120

8.7. Графический конфигуратор брандмауэра……………………………………………………………………… 121

8.8. Самостоятельные упражнения………………………………………………………………………………………… 123

Часть III. Программы и приложения…………………………………….. 125

Урок 9. Установка программ и приложений…………………………………………. 127

9.1. Способы установки программ в Linux……………………………………………………………………………. 127

9.2. Репозитории пакетов………………………………………………………………………………………………………… 129

9.3. Программы для управления пакетами……………………………………………………………………………. 130

9.3.1. Программа apt………………………………………………………………………………………………………… 130

9.3.2. Графический менеджер пакетов Synaptic…………………………………………………………….. 133

9.4. Снапы…………………………………………………………………………………………………………………………………. 137

9.4.1. Теория……………………………………………………………………………………………………………………… 137

9.4.2. Практика………………………………………………………………………………………………………………….. 138

9.5. Самостоятельные упражнения………………………………………………………………………………………… 142

Урок 10. Приложения для работы с Интернетом…………………………………… 143

10.1. Установка мессенджеров Skype, Viber, Telegram…………………………………………………………. 143

10.1.1. Установка Skype…………………………………………………………………………………………………. 143

10.1.2. Установка мессенджера Viber (альтернативный способ установки пакетов). 147

10.1.3. Установка Telegram……………………………………………………………………………………………. 150

10.2. Веб-браузер Chromium…………………………………………………………………………………………………… 153

10.3. Торрент-клиент……………………………………………………………………………………………………………….. 153

10.4. Нужен ли вам почтовый клиент?…………………………………………………………………………………… 158

10.5. Контрольные вопросы и самостоятельные упражнения…………………………………………….. 158

Урок 11. Офисные приложения……………………………………………………………. 159

11.1. Текстовый процессор……………………………………………………………………………………………………… 159

11.1.1. Создание нового документа………………………………………………………………………………. 159

11.1.2. Открытие и сохранение документов…………………………………………………………………. 161

11.1.3. Ввод, выделение и форматирование текста……………………………………………………… 163

Ввод текста…………………………………………………………………………………………………………. 163

Выделение текста……………………………………………………………………………………………….. 166

Форматирование текста…………………………………………………………………………………….. 166

11.1.4. Дополнительные панели инструментов……………………………………………………………. 167

11.1.5. Работа с буфером обмена………………………………………………………………………………….. 168

11.1.6. Вставка картинок……………………………………………………………………………………………….. 168

11.1.7. Параметры абзаца……………………………………………………………………………………………… 170

11.1.8. Нумерованные и маркированные списки…………………………………………………………. 172

11.1.9. Таблицы………………………………………………………………………………………………………………. 174

11.1.10. Проверка правописания…………………………………………………………………………………… 176

11.1.11. Несколько колонок…………………………………………………………………………………………… 177

11.2. Электронная таблица…………………………………………………………………………………………………….. 178

11.2.1. Ввод данных в ячейки………………………………………………………………………………………… 179

11.2.2. Выделение ячеек…………………………………………………………………………………………………. 181

11.2.3. Адреса ячеек и диапазоны данных…………………………………………………………………… 182

11.2.4. Функции LibreOffice Calc……………………………………………………………………………………. 182

11.2.5. Диаграммы………………………………………………………………………………………………………….. 186

11.3. Создание PDF-документа……………………………………………………………………………………………….. 190

11.4. Самостоятельные упражнения………………………………………………………………………………………. 191

Урок 12. Мультимедиаприложения. Кодеки…………………………………………. 192

12.1. Установленные мультимедиаприложения……………………………………………………………………. 192

12.2. Воспроизведение музыки……………………………………………………………………………………………….. 193

12.2.1. В аудиоплеере Clementine…………………………………………………………………………………. 193

12.2.2. В плеере Qmmp…………………………………………………………………………………………………… 194

12.3. Воспроизведение видео………………………………………………………………………………………………….. 195

12.4. Решение проблем…………………………………………………………………………………………………………….. 196

12.5. Самостоятельные упражнения………………………………………………………………………………………. 197

Урок 13. Просмотр и редактирование фотографий……………………………….. 198

13.1. Утилита Gwenview………………………………………………………………………………………………………….. 198

13.1.1. Изменение размера фото……………………………………………………………………………………. 199

13.1.2. Поворот и отражение фотографии……………………………………………………………………. 201

13.1.3. Кадрирование……………………………………………………………………………………………………… 202

13.1.4. Устранение эффекта красных глаз……………………………………………………………………. 203

13.2. Графический редактор GIMP………………………………………………………………………………………… 204

13.2.1. Загрузка и сохранение изображений………………………………………………………………… 205

13.2.2. Основные инструменты GIMP…………………………………………………………………………… 206

Инструменты выделения……………………………………………………………………………………. 208

Инструменты рисования……………………………………………………………………………………. 216

Инструменты цвета…………………………………………………………………………………………….. 218

Цветовой баланс…………………………………………………………………………………………………. 218

Инструменты преобразования………………………………………………………………………….. 222

Прочие инструменты………………………………………………………………………………………….. 225

13.3. Самостоятельные упражнения………………………………………………………………………………………. 225

Урок 14. Интеграция компьютера со смартфоном………………………………… 226

14.1. Необходимость интеграции…………………………………………………………………………………………… 226

14.2. Интеграция с Android-смартфоном……………………………………………………………………………….. 226

14.2.1. Беспроводной способ…………………………………………………………………………………………. 226

14.2.2. Используем кабель для передачи файлов………………………………………………………… 231

14.3. Интеграция с iPhone………………………………………………………………………………………………………… 232

14.4. Самостоятельные упражнения………………………………………………………………………………………. 236

Урок 15. Проект Wine: запуск Windows-приложений……………………………. 237

15.1. Установка Wine……………………………………………………………………………………………………………….. 238

15.2. Настройка Wine после установки…………………………………………………………………………………. 239

15.3. Установка и запуск Windows-программы…………………………………………………………………….. 240

15.4. Самостоятельные упражнения………………………………………………………………………………………. 243

Часть IV. Файловая система……………………………………………………. 245

Урок 16. Работа с файлами и каталогами…………………………………………….. 247

16.1. Особенности файловой системы Linux…………………………………………………………………………. 247

16.1.1. Имена файлов в Linux…………………………………………………………………………………………. 247

16.1.2. Файлы и устройства…………………………………………………………………………………………… 248

16.1.3. Стандартные каталоги Linux…………………………………………………………………………….. 249

16.2. Команды для работы с файлами и каталогами……………………………………………………………. 249

16.2.1. Работа с файлами……………………………………………………………………………………………….. 249

16.2.2. Работа с каталогами…………………………………………………………………………………………… 251

16.3. Использование ссылок. Команда ln………………………………………………………………………………. 253

16.3.1. Жесткие и мягкие ссылки……………………………………………………………………………………. 253

16.3.2. Создание ссылок…………………………………………………………………………………………………. 254

16.3.3. Определение ссылок…………………………………………………………………………………………… 254

16.3.4. Удаление файлов и жесткие ссылки………………………………………………………………….. 255

16.3.5. Разница между копированием и созданием жесткой ссылки………………………….. 256

16.4. Команды поиска файлов: find, which и locate………………………………………………………………. 256

16.5. Графический файловый менеджер………………………………………………………………………………… 258

16.5.1. Знакомство с программой………………………………………………………………………………….. 258

16.5.2. Копирование файлов и каталогов…………………………………………………………………….. 259

16.5.3. Перемещение файлов и каталогов…………………………………………………………………….. 260

16.5.4. Переименование файлов и каталогов……………………………………………………………….. 261

16.5.5. Создание файлов и каталогов……………………………………………………………………………. 261

16.5.6. Изменение прав доступа к файлам и каталогам………………………………………………. 261

16.5.7. Удаление файлов и каталогов…………………………………………………………………………… 263

16.6. Сжатие и распаковка……………………………………………………………………………………………………… 263

16.7. Самостоятельные упражнения………………………………………………………………………………………. 263

Урок 17. Работа со сменными носителями. Монтирование…………………… 265

17.1. Корневая файловая система………………………………………………………………………………………….. 265

17.2. Монтирование и размонтирование……………………………………………………………………………….. 266

17.3. Файлы устройств и монтирование………………………………………………………………………………… 267

17.3.1. Жесткие диски…………………………………………………………………………………………………….. 267

17.3.2. Приводы оптических дисков……………………………………………………………………………… 268

17.3.3. Флешки и внешние жесткие диски…………………………………………………………………….. 269

17.4. Параметры монтирования файловых систем……………………………………………………………….. 270

17.5. Монтирование разделов при загрузке………………………………………………………………………….. 271

17.6. Идентификаторы UUID…………………………………………………………………………………………………… 273

17.7. Самостоятельные упражнения………………………………………………………………………………………. 275

Урок 18. Особые операции с файловой системой…………………………………. 276

18.1. Монтирование ISO-образа…………………………………………………………………………………………….. 276

18.2. Создание файловой системы…………………………………………………………………………………………. 277

18.3. Проверка и восстановление файловой системы…………………………………………………………… 277

18.4. Смена корневой файловой системы………………………………………………………………………………. 278

18.5. Ограничение скорости CD/DVD…………………………………………………………………………………….. 278

18.6. Монтирование каталога к каталогу……………………………………………………………………………… 278

18.7. Примеры использования команды dd……………………………………………………………………………. 279

18.7.1. Копирование файлов с помощью dd…………………………………………………………………. 279

18.7.2. Разделение файла на несколько частей……………………………………………………………. 280

18.7.3. Создание резервной копии жесткого диска……………………………………………………… 281

18.7.4. Создание архива с резервной копией всего жесткого диска…………………………… 281

18.7.5. Уничтожение всех данных раздела жесткого диска……………………………………….. 281

18.8. Самостоятельные упражнения………………………………………………………………………………………. 282

Урок 19. Права доступа………………………………………………………………………… 283

19.1. Концепция прав доступа………………………………………………………………………………………………… 283

19.2. Смена владельца файла…………………………………………………………………………………………………. 288

19.3. Групповое изменение прав доступа……………………………………………………………………………… 288

19.4. Специальные права доступа: SUID и SGID………………………………………………………………….. 288

19.5. Атрибуты файла. Запрет изменения файла………………………………………………………………….. 289

19.6. Контрольные вопросы и самостоятельные упражнения…………………………………………….. 290

Урок 20. Управление учетными записями пользователей…………………….. 291

20.1. Пользователь root……………………………………………………………………………………………………………. 291

20.2. Команда sudo………………………………………………………………………………………………………………….. 294

20.3. Команда su………………………………………………………………………………………………………………………. 296

20.4. Создание и удаление пользователей…………………………………………………………………………….. 296

20.5. Группы пользователей…………………………………………………………………………………………………… 298

20.6. Конфигуратор Политика безопасности………………………………………………………………………. 299

20.6.1. Включение ввода пароля для sudo……………………………………………………………………. 305

20.6.2. Блокировка перезагрузки и выключения для пользователей…………………………. 305

20.6.3. Задание глобального счетчика неудачных попыток входа…………………………… 305

20.6.4. Задание сложности пароля……………………………………………………………………………….. 305

20.7. Контрольные вопросы и самостоятельные упражнения…………………………………………….. 306

Урок 21. Шифрование файловой системы……………………………………………. 307

21.1. Шифрование с помощью ECryptfs…………………………………………………………………………………. 307

21.2. Флешка для хранения пароля………………………………………………………………………………………… 310

21.3. Самостоятельные упражнения………………………………………………………………………………………. 311

Часть V. Аппаратные средства………………………………………………… 313

Урок 22. Получение информации о ПК. Псевдофайловые системы………. 315

22.1. Виртуальная файловая система sysfs…………………………………………………………………………… 315

22.2 Виртуальная файловая система proc…………………………………………………………………………….. 319

22.2.1. Информационные файлы……………………………………………………………………………………. 319

22.2.2. Файлы, позволяющие изменять параметры ядра…………………………………………….. 321

22.2.3. Файлы, изменяющие параметры сети……………………………………………………………….. 321

22.2.4. Файлы, изменяющие параметры виртуальной памяти……………………………………. 322

22.2.5. Файлы, позволяющие изменить параметры файловых систем………………………. 322

22.2.6. Сохранение произведенных изменений……………………………………………………………. 323

22.3. Самостоятельные упражнения………………………………………………………………………………………. 323

Урок 23. Подключение принтера………………………………………………………….. 324

23.1. Подключение принтера………………………………………………………………………………………………….. 324

23.2. Печать проверочной страницы……………………………………………………………………………………… 329

23.3. Печать первого документа…………………………………………………………………………………………….. 329

23.4. Установка опций печати………………………………………………………………………………………………… 329

23.5. Самостоятельные упражнения………………………………………………………………………………………. 331

Урок 24. Настройка жесткого диска…………………………………………………….. 332

24.1. Физическое подключение жесткого диска……………………………………………………………………. 332

24.2. Разметка жесткого диска………………………………………………………………………………………………… 333

24.3. Монтирование новых разделов…………………………………………………………………………………….. 337

24.4. Контрольные вопросы и самостоятельные упражнения…………………………………………….. 338

Урок 25. Подключение двух мониторов……………………………………………….. 339

25.1. Физическое подключение двух мониторов к компьютеру………………………………………….. 339

25.2. Настройка системы………………………………………………………………………………………………………… 341

25.3. Контрольные вопросы……………………………………………………………………………………………………. 347

Часть VI. Cистемное администрирование…………………………. 349

Урок 26. Нештатные ситуации…………………………………………………………….. 351

26.1. Разбор нештатной ситуации………………………………………………………………………………………….. 351

26.2. Восстановление пароля root………………………………………………………………………………………….. 354

26.3. Чтение логов……………………………………………………………………………………………………………………. 355

26.3.1. Установка времени……………………………………………………………………………………………… 356

26.3.2. Просмотр и фильтрация логов…………………………………………………………………………… 356

26.3.3. Фильтр по дате……………………………………………………………………………………………………. 356

26.3.4. Фильтр по сервису………………………………………………………………………………………………. 357

26.3.5. Фильтр по пути……………………………………………………………………………………………………. 358

26.3.6. Фильтр по процессу или пользователю……………………………………………………………. 358

26.3.7. Просмотр сообщений ядра………………………………………………………………………………… 358

26.3.8. Фильтр по уровню ошибки………………………………………………………………………………… 358

26.3.9. Журналы в реальном времени…………………………………………………………………………… 359

26.4. Самостоятельные упражнения………………………………………………………………………………………. 359

Урок 27. Процесс загрузки системы……………………………………………………… 360

27.1. Назначение загрузчика………………………………………………………………………………………………….. 360

27.2. Конфигурационный файл GRUB2…………………………………………………………………………………. 361

27.3. Установка пароля загрузчика……………………………………………………………………………………….. 364

27.4. Загрузка с ISO-образов…………………………………………………………………………………………………… 366

27.5. Загрузка Windows……………………………………………………………………………………………………………. 367

27.6. Восстановление загрузчика GRUB/GRUB2…………………………………………………………………. 367

27.7. Запрет загрузки в режиме восстановления. Задание тайм-аута………………………………… 368

27.8. Самостоятельные упражнения………………………………………………………………………………………. 369

Урок 28. Системные службы………………………………………………………………… 370

28.1. Сервисы, службы, демоны……………………………………………………………………………………………… 370

28.2. Терминология systemd……………………………………………………………………………………………………. 372

28.3. Управление службами в Astra Linux……………………………………………………………………………… 373

28.4. Самостоятельные упражнения………………………………………………………………………………………. 375

Урок 29. Выполнение команд по расписанию………………………………………. 376

29.1. Редактирование основной таблицы расписания планировщика……………………………….. 376

29.2. Редактирование пользовательской таблицы расписания…………………………………………… 378

29.3. Добавление собственной записи в таблицу расписания…………………………………………….. 379

29.4. Использование панели управления для редактирования таблицы расписания……….. 381

29.5. Самостоятельные упражнения………………………………………………………………………………………. 383

Урок 30. Автоматизация задач……………………………………………………………… 384

30.1. Настройка оболочки………………………………………………………………………………………………………. 384

30.2. Пример простейшей автоматизации……………………………………………………………………………… 386

30.3. Привет, мир!…………………………………………………………………………………………………………………….. 387

30.4. Использование переменных в собственных сценариях………………………………………………. 388

30.5. Передача параметров сценарию…………………………………………………………………………………… 389

30.6. Массивы и bash……………………………………………………………………………………………………………….. 390

30.7. Циклы……………………………………………………………………………………………………………………………….. 390

30.8. Условные операторы……………………………………………………………………………………………………… 391

30.9. Функции…………………………………………………………………………………………………………………………… 392

30.10. Примеры сценариев………………………………………………………………………………………………………. 393

30.10.1. Сценарий мониторинга журнала………………………………………………………………….. 393

30.10.2. Переименование файлов………………………………………………………………………………… 393

30.10.3. Преобразование систем счисления……………………………………………………………….. 394

30.10.4. Проверка прав пользователя…………………………………………………………………………. 394

30.10.5. Генератор имени временного файла…………………………………………………………….. 395

30.10.6. Проверка свободного дискового пространства с уведомлением по электронной почте            395

30.11. Самостоятельные упражнения……………………………………………………………………………………. 396

Заключение………………………………………………………………………………………….. 397

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

Евгений Андреев, инженер-программист и системный администратор. Имеет более чем двадцатилетний опыт работы с операционной системой Linux в самых различных вариантах – от встраиваемых систем до серверов

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

Представляем книгу “Конвейеры данных. Карманный справочник”

Конвейеры данных. Карманный справочник

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

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

Сбор и обработка данных для аналитики

Конвейеры данных — это фундамент успеха в анализе данных.

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

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

Дополнительные материалы (примеры кода, упражнения и т.д.) доступны для загрузки по адресу https://github.com/jamesdensmore/datapipelinesbook

  •  Что такое конвейер данных и как он работает
  •  Как данные перемещаются и обрабатываются в современной инфраструктуре, включая облачные платформы
  • Популярные инструменты и продукты, применяемые для построения конвейеров
  • Как конвейеры помогают закрыть потребности в аналитике и отчетности
  • Вопросы обслуживания, тестирования и предупреждения сбоев конвейеров данных

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

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

Для кого эта книга………………………………………………………………………………… 1

Условные обозначения, используемые в этой книге………………………….. 2

Скачивание примеров кода………………………………………………………………….. 3

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

Глава 1. Введение в конвейеры данных……………………… 5

Что такое конвейеры данных?…………………………………………………………….. 5

Кто строит конвейеры данных?…………………………………………………………… 6

Основы SQL и хранилища данных…………………………………………… 7

Python и/или Java………………………………………………………………………. 7

Распределенные вычисления……………………………………………………. 7

Основы системного администрирования………………………………… 8

Понимание общих целей…………………………………………………………… 8

Зачем создавать конвейеры данных?…………………………………………………. 8

Как строятся конвейеры?……………………………………………………………………… 9

Глава 2. Современная инфраструктура данных………… 11

Разнообразие источников данных…………………………………………………….. 12

Принадлежность исходной системы……………………………………… 12

Интерфейс сбора и структура данных………………………………….. 13

Объем данных………………………………………………………………………….. 15

Чистота и достоверность данных………………………………………….. 15

Задержка и пропускная способность исходной системы……. 17

Облачные хранилища данных и озера данных……………………………….. 17

Инструменты сбора данных………………………………………………………………. 18

Инструменты преобразования и моделирования данных………………. 19

Платформы для оркестровки рабочих процессов……………………………. 21

Направленные ациклические графы (DAG)………………………….. 22

Настройка вашей инфраструктуры данных…………………………………….. 23

Глава 3. Стандартные шаблоны конвейеров данных.. 25

Шаблоны ETL и ELT………………………………………………………………………….. 25

Преимущество ELT перед ETL………………………………………………………….. 27

Подшаблон EtLT…………………………………………………………………………………. 30

ELT в анализе данных………………………………………………………………………… 31

ELT в науке о данных…………………………………………………………………………. 32

ELT для информационных продуктов и машинного обучения………. 33

Этапы конвейера для машинного обучения…………………………. 33

Включение обратной связи в конвейер………………………………….. 35

Дополнительная литература по конвейерам
машинного обучения………………………………………………………………. 36

Глава 4. Сбор данных: начнем с извлечения…………….. 37

Настройка среды Python……………………………………………………………………. 38

Настройка облачного хранилища файлов………………………………………. 40

Извлечение данных из БД MySQL…………………………………………………….. 43

Полное или инкрементное извлечение таблицы MySQL……… 44

Репликация двоичного журнала данных MySQL…………………. 54

Извлечение данных из БД PostgreSQL………………………………………………. 64

Полное или инкрементное извлечение таблицы Postgres…….. 65

Репликация данных с использованием журнала упреждающих записей        67

Извлечение данных из MongoDB………………………………………………………. 68

Извлечение данных из REST API………………………………………………………. 74

Сбор потоковых данных с помощью Kafka и Debezium…………………. 79

Глава 5. Сбор данных: загрузка в хранилище…………… 83

Настройка хранилища Amazon Redshift в качестве места назначения        83

Загрузка данных в хранилище Redshift……………………………………………. 85

Инкрементные и полные загрузки……………………………………………………… 89

Загрузка данных, извлеченных из журнала CDC……………………………. 92

Настройка хранилища Snowflake в качестве пункта назначения…. 94

Загрузка данных в хранилище Snowflake………………………………………… 96

Использование вашего файлового хранилища в качестве
озера данных………………………………………………………………………………………. 98

Фреймворки с открытым исходным кодом……………………………………….. 99

Коммерческие альтернативы…………………………………………………………… 100

Глава 6. Преобразование данных……………………………. 103

Неконтекстные преобразования……………………………………………………… 104

Удаление дубликатов записей в таблице……………………………. 104

Парсинг URL-адресов…………………………………………………………… 109

Когда лучше выполнять преобразование?…………………………………….. 113

Основы моделирования данных……………………………………………………… 114

Ключевые термины моделирования данных………………………. 114

Моделирование полностью обновляемых данных……………. 115

Медленно меняющиеся измерения для полностью обновленных данных       119

Моделирование инкрементно собираемых данных…………… 122

Моделирование данных только для добавления……………….. 127

Моделирование данных об изменениях……………………………… 137

Глава 7. Оркестровка конвейеров…………………………… 143

Направленные ациклические графы………………………………………………. 143

Настройка и знакомство с Apache Airflow……………………………………… 144

Установка и настройка…………………………………………………………. 145

База данных Airflow………………………………………………………………. 146

Веб-сервер и пользовательский интерфейс……………………………………. 148

Планировщик…………………………………………………………………………. 152

Исполнители………………………………………………………………………….. 152

Операторы……………………………………………………………………………… 153

Создание DAG Airflow………………………………………………………………………. 154

Простой DAG…………………………………………………………………………. 154

Конвейер ELT и DAG…………………………………………………………….. 157

Дополнительные задачи конвейера………………………………………………… 162

Оповещения и уведомления………………………………………………….. 162

Проверка данных…………………………………………………………………… 163

Расширенные конфигурации оркестровки……………………………………… 163

Связанные и несвязанные задачи конвейера………………………. 164

Когда следует разделять DAG……………………………………………… 164

Координация нескольких DAG с сенсорами……………………….. 165

Управляемые варианты развертывания Airflow…………………………….. 168

Другие фреймворки для оркестровки……………………………………………… 169

Глава 8. Проверка данных в конвейерах………………… 171

Проверяйте раньше, проверяйте чаще……………………………………………. 171

Качество данных исходной системы…………………………………… 172

Риски процесса сбора данных……………………………………………… 173

Проверка данных с участием аналитиков………………………….. 174

Простой фреймворк проверки данных……………………………………………. 175

Простой фреймворк проверки данных………………………………… 175

Структура проверочного теста……………………………………………. 179

Запуск проверочного теста………………………………………………….. 181

Использование фреймворка в DAG Airflow…………………………. 182

Когда нужно остановить конвейер, а когда предупредить и продолжить       183

Дополнения к фреймворку……………………………………………………. 185

Примеры проверок……………………………………………………………………………. 189

Дубликаты записей после сбора данных……………………………. 190

Неожиданное изменение числа строк после сбора
данных……………………………………………………………………………………. 191

Колебания значения показателя………………………………………….. 194

Коммерческие и открытые фреймворки проверки данных…………… 199

Глава 9. Передовые методы обслуживания
конвейеров……………………………………………………………… 201

Как реагировать на изменения в исходных системах…………………… 201

Добавление абстракции……………………………………………………….. 201

Поддержка контрактов данных……………………………………………. 202

Ограничения схемы при чтении…………………………………………… 204

Масштабирование сложности конвейеров…………………………………….. 206

Стандартизация сбора данных……………………………………………. 206

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

Обеспечение целостности зависимостей…………………………….. 211

Глава 10. Измерение и мониторинг производительности конвейера            215

Ключевые показатели конвейера……………………………………………………. 215

Подготовка хранилища данных……………………………………………………… 216

Структура данных………………………………………………………………… 216

Журналирование и получение данных о производительности……. 217

Получение истории выполнения DAG из Airflow………………… 218

Добавление журналирования в инструмент проверки данных 222

Преобразование данных о производительности…………………………… 228

Коэффициент успешного выполнения DAG………………………… 229

Отслеживание времени выполнения DAG…………………………… 230

Объем выполненных тестов и доля успешных
результатов……………………………………………………………………………. 232

Оркестровка конвейера производительности………………………………… 235

DAG конвейера производительности…………………………………… 235

Раскрытие информации о производительности…………………………….. 237

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

Об авторе………………………………………………………………… 241

Об изображении на обложке…………………………………… 243

Денсмор Джеймс

Джеймс Денсмор (James Densmore) — технический директор HubSpot, а также основатель и главный консультант Data Liftoff. Он имеет более чем 10-летний опыт руководства группами данных и построения инфраструктуры данных в Wayfair, O’Reilly Media, HubSpot и Degreed. Джеймс получил степень бакалавра компьютерных наук в Северо-Восточном университете и степень магистра делового администрирования в Бостонском колледже.

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

Новинка: “Современная разработка игр на Unity”

Современная разработка игр на Unity

Базовая книга об игровом движке Unity для разработки 2D- и 3D-игр на языке C# с применением специальных сценариев и библиотек. Рассмотрены базовые вопросы программирования игр: прототипирование, создание визуальных эффектов, разработка физики, оформление интерфейса, повышение производительности и отзывчивости программы. Уделено внимание специфике игрового движка Unity, подготовке игр к релизу, работе со скриптами на C#, юзабилити, развитию и усовершенствованию игр-прототипов.

Для разработчиков игр, компьютерной графики и мобильных приложений

Изучите Unity и научитесь им пользоваться для создания потрясающих видеоигр!

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

Поскольку Unity богат полезнейшими функциями, а с инструментарием движка очень удобно работать, он идеально подойдёт вам, чтобы освоиться в игровой индустрии.

В этой книге:

  • Всё, что требуется знать о геймдизайне, процессах разработки игр и движках Unity 2D и 3D
  • Несложные пошаговые инструкции по проектированию игровых систем, проработке геймплея и повышению производительности
  • Подсказки и советы по разработке прототипов, релизу игр и оттачиванию удобства интерфейса

Перейдите по ссылке https://rebrand.ly/49fe95, чтобы скачать примеры кода и цветные изображения к книге.
Примеры кода для книги также размещены на сайте GitHub. Если код будет обновлен, изменения отобразятся в данном репозитории GitHub.

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

  • Научитесь пользоваться игровым редактором Unity и ресурсами Unity для создания 3D-анимаций и игр
  • Освойте важные концепции, которые пригодятся при разработке игр в различных жанрах
  • Разберитесь со встроенными в Unity элементами пользовательского интерфейса, системами рендеринга, игровой физики и графики
  • Создавайте собственный оригинальный геймплей и игровые элементы, пользуясь скриптами на языке C#
  • Узнайте, как довести до совершенства уже имеющийся прототип игры

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

Об авторе……………………………………………………………………………………………….. 14

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

Предисловие…………………………………………………………………………………………… 16

Примеры кода и цветные изображения………………………………………………….. 19

Глава 1. Движок Unity……………………………………………………………………………. 20

Содержание главы…………………………………………………………………………………………………………………….. 22

Цель главы………………………………………………………………………………………………………………………………….. 22

Unity в общих чертах…………………………………………………………………………………………………………………. 22

Установка Unity…………………………………………………………………………………………………………………………. 23

Дополнительные возможности и учебные материалы…………………………………………………………… 25

Наш первый проект……………………………………………………………………………………………………………………. 27

Интерфейс редактора Unity………………………………………………………………………………………………………. 29

Панели Scene и Game…………………………………………………………………………………………………………. 30

Сцена…………………………………………………………………………………………………………………………………… 31

Панель Hierarchy………………………………………………………………………………………………………………… 31

Панель Inspector…………………………………………………………………………………………………………………. 33

Объекты GameObject………………………………………………………………………………………………………….. 34

Размещение объектов на сцене…………………………………………………………………………………………. 34

Перемещение объектов………………………………………………………………………………………………………. 37

Кнопка Play………………………………………………………………………………………………………………………… 39

Добавление второго объекта…………………………………………………………………………………………….. 40

Использование Visual Studio……………………………………………………………………………………………………… 42

Проверяем все на практике……………………………………………………………………………………………………….. 44

Дополнительно: наглядная работа со сценариями………………………………………………………………… 45

Заключение………………………………………………………………………………………………………………………………… 46

Вопросы……………………………………………………………………………………………………………………………………… 46

Основные понятия……………………………………………………………………………………………………………………… 47

Глава 2. Компоненты и префабы……………………………………………………………. 49

Содержание главы…………………………………………………………………………………………………………………….. 49

Цель главы………………………………………………………………………………………………………………………………….. 49

Подробно о компонентах………………………………………………………………………………………………………….. 50

Примеры компонентов………………………………………………………………………………………………………………. 50

Добавление компонентов к объекту…………………………………………………………………………………………. 53

Класс MonoBehaviour……………………………………………………………………………………………………………….. 53

Сценарий для компонента PlayerController……………………………………………………………………………. 54

Расширение компонентов в редакторе Unity…………………………………………………………………………… 57

Добавляем возможность прыжка……………………………………………………………………………………………… 59

Создание и генерация префабов в игре……………………………………………………………………………………. 60

Создаем реалистичную монетку………………………………………………………………………………………………. 61

Обнаружение столкновений……………………………………………………………………………………………………… 62

Триггеры……………………………………………………………………………………………………………………………………… 63

Превращение объекта в префаб……………………………………………………………………………………………….. 65

Генерация множества монет…………………………………………………………………………………………………….. 66

Дополнительные преимущества префабов……………………………………………………………………………… 69

Сообщения об отладке………………………………………………………………………………………………………………. 69

Основы разработки игр: итерирование и прототип геометрии……………………………………………… 70

Заключение………………………………………………………………………………………………………………………………… 71

Вопросы……………………………………………………………………………………………………………………………………… 71

Основные понятия……………………………………………………………………………………………………………………… 72

Глава 3. Основы боевой системы…………………………………………………………… 74

Содержание главы…………………………………………………………………………………………………………………….. 74

Цель главы………………………………………………………………………………………………………………………………….. 74

Основы разработки игр: риск и вознаграждение……………………………………………………………………. 75

Подсистемы………………………………………………………………………………………………………………………………… 75

Создание системы управления здоровьем………………………………………………………………………………. 76

Раскадровка получения урона…………………………………………………………………………………………………. 81

Шипы: первая опасность…………………………………………………………………………………………………………… 83

Компонент HealthModifier………………………………………………………………………………………………………… 88

Создаем простой снаряд…………………………………………………………………………………………………………… 91

Визуализация урона………………………………………………………………………………………………………………….. 95

Менеджер игровых сессий………………………………………………………………………………………………………… 98

Заключение………………………………………………………………………………………………………………………………. 101

Вопросы……………………………………………………………………………………………………………………………………. 101

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

Глава 4. Знакомство с пользовательским интерфейсом………………………… 103

Содержание главы…………………………………………………………………………………………………………………… 103

Цель главы………………………………………………………………………………………………………………………………… 104

Игровые поток и процесс………………………………………………………………………………………………………… 104

Распределение игрового потока…………………………………………………………………………………………….. 104

Система пользовательского интерфейса Unity……………………………………………………………………… 106

Объект Image…………………………………………………………………………………………………………………….. 107

Объект Text (TextMeshPro)……………………………………………………………………………………………….. 107

Объект Button (TextMeshPro)…………………………………………………………………………………………… 107

Объект Canvas………………………………………………………………………………………………………………….. 108

Ассеты шрифтов……………………………………………………………………………………………………………….. 108

Привязка элементов…………………………………………………………………………………………………………. 108

Растягивание объектов…………………………………………………………………………………………………….. 109

Холст главного меню………………………………………………………………………………………………………………. 109

Компонент Rect Transform……………………………………………………………………………………………….. 109

Компонент Canvas……………………………………………………………………………………………………………. 111

Компонент Canvas Scaler………………………………………………………………………………………………… 112

Главное меню: добавление элементов пользовательского интерфейса…………………………….. 113

Предустановки привязок…………………………………………………………………………………………………. 115

Главное меню: добавление сценария…………………………………………………………………………….. 120

Главное меню: действия для кнопок………………………………………………………………………………. 121

Добавление сцен в настройки сборки…………………………………………………………………………….. 122

Базовый HUD-интерфейс………………………………………………………………………………………………………… 124

Сценарий MainGameHUD………………………………………………………………………………………………… 129

Окончание игры……………………………………………………………………………………………………………………….. 131

Заключение………………………………………………………………………………………………………………………………. 134

Вопросы……………………………………………………………………………………………………………………………………. 134

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

Глава 5. Основы разработки………………………………………………………………… 136

Содержание главы…………………………………………………………………………………………………………………… 136

Цель главы………………………………………………………………………………………………………………………………… 137

Важность вех……………………………………………………………………………………………………………………………. 137

Критикуйте!……………………………………………………………………………………………………………………………… 137

Управляем камерой…………………………………………………………………………………………………………………. 139

Улучшение уровня…………………………………………………………………………………………………………………… 142

Профессиональные инструменты…………………………………………………………………………………………… 144

Разработка уровня…………………………………………………………………………………………………………………… 146

Лучшие враги…………………………………………………………………………………………………………………………… 149

Взрывное исчезновение…………………………………………………………………………………………………………… 151

Азы разработки игр: постоянство………………………………………………………………………………………….. 154

Поиск багов………………………………………………………………………………………………………………………………. 154

Бездонная пропасть…………………………………………………………………………………………………………. 154

Снаряды с багами…………………………………………………………………………………………………………….. 155

Бесконечный боезапас…………………………………………………………………………………………………….. 156

Экспорт сборки………………………………………………………………………………………………………………………… 157

Заключение………………………………………………………………………………………………………………………………. 159

Вопросы……………………………………………………………………………………………………………………………………. 160

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

Глава 6. Управление физическими явлениями……………………………………… 162

Обзор главы……………………………………………………………………………………………………………………………… 162

Цель главы………………………………………………………………………………………………………………………………… 162

Система физики Unity………………………………………………………………………………………………………………. 163

Компоненты физики…………………………………………………………………………………………………………………. 163

Базовые формы коллайдеров………………………………………………………………………………………………….. 163

Коллайдер на основе мешей…………………………………………………………………………………………… 165

Компонент RigidBody………………………………………………………………………………………………………………. 165

Сочленения………………………………………………………………………………………………………………………………. 166

Программирование физики……………………………………………………………………………………………………… 169

Игровой процесс: передвигаемые блоки……………………………………………………………………………….. 173

Игровой процесс: движущиеся платформы…………………………………………………………………………… 176

Игровой процесс: трамплины…………………………………………………………………………………………………. 179

Игровой процесс: область ветра наносит удар…………………………………………………………………….. 180

Передача теней………………………………………………………………………………………………………………………… 184

Палитра игрового процесса……………………………………………………………………………………………………. 186

Заключение………………………………………………………………………………………………………………………………. 187

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

Контрольные вопросы…………………………………………………………………………………………………………….. 188

Глава 7. Увлекательные анимации………………………………………………………. 190

Содержание главы…………………………………………………………………………………………………………………… 190

Цель главы………………………………………………………………………………………………………………………………… 191

Принципы анимации……………………………………………………………………………………………………………….. 191

Создание основного героя………………………………………………………………………………………………………. 194

Поза покоя………………………………………………………………………………………………………………………………… 200

Панель Animation…………………………………………………………………………………………………………………….. 200

Ключевые кадры и интерполяция………………………………………………………………………………………….. 202

Циклы бега……………………………………………………………………………………………………………………………….. 207

Анимация в действии……………………………………………………………………………………………………………….. 212

Организация файлов………………………………………………………………………………………………………………… 215

Заключение………………………………………………………………………………………………………………………………. 216

Вопросы……………………………………………………………………………………………………………………………………. 216

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

Глава 8. Искусственный интеллект противников………………………………… 218

Содержание главы…………………………………………………………………………………………………………………… 218

Искусственный интеллект……………………………………………………………………………………………………….. 218

Простые противники……………………………………………………………………………………………………………….. 219

Компонент AIBrain…………………………………………………………………………………………………………… 221

Тип UnityEvent и события искусственного интеллекта………………………………………………… 223

Выслеживание игрока……………………………………………………………………………………………………… 224

Настройка искусственного интеллекта…………………………………………………………………………. 226

Навигационный меш………………………………………………………………………………………………………… 230

Агенты NavMesh……………………………………………………………………………………………………………….. 231

Тестирование противника……………………………………………………………………………………… 233

Заключение………………………………………………………………………………………………………………………………. 234

Вопросы……………………………………………………………………………………………………………………………………. 235

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

Глава 9. Создание системы вооружения……………………………………………….. 237

Содержание главы…………………………………………………………………………………………………………………… 237

Цель главы………………………………………………………………………………………………………………………………… 238

Палки и камни………………………………………………………………………………………………………………………….. 238

Сцена-песочница для тестирования оружия…………………………………………………………………………. 238

Снаряжение персонажа оружием…………………………………………………………………………………………… 245

Компонент Weapon………………………………………………………………………………………………………………….. 247

Настройка оружия ближнего боя…………………………………………………………………………………………… 248

Настройка оружия дальнего боя……………………………………………………………………………………………. 250

Эффект отбрасывания……………………………………………………………………………………………………………… 251

Анимация атаки……………………………………………………………………………………………………………….. 251

Шлейфы…………………………………………………………………………………………………………………………………….. 255

Продвинутые боевые приемы…………………………………………………………………………………………………. 256

Заключение………………………………………………………………………………………………………………………………. 257

Вопросы……………………………………………………………………………………………………………………………………. 258

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

Глава 10. Звуковое сопровождение………………………………………………………. 260

Содержание главы…………………………………………………………………………………………………………………… 260

Цель главы………………………………………………………………………………………………………………………………… 261

Аудиокомпоненты……………………………………………………………………………………………………………………. 261

Аудиослушатель………………………………………………………………………………………………………………. 261

Источник звука…………………………………………………………………………………………………………………. 261

Источники музыки и звуковых эффектов……………………………………………………………………………….. 263

Наём музыканта……………………………………………………………………………………………………………….. 263

Библиотеки Royalty Free………………………………………………………………………………………………….. 263

Бесплатные аудиофайлы………………………………………………………………………………………………… 263

Магазин Unity Asset Store………………………………………………………………………………………………… 263

Импорт аудиофайлов………………………………………………………………………………………………………………. 267

Создание менеджера звука……………………………………………………………………………………………… 269

Основы объемного звучания…………………………………………………………………………………………………… 271

Объемное звуковое сопровождение предметов…………………………………………………………….. 273

Объемное звуковое сопровождение оружия………………………………………………………………….. 276

Мастеринг звука с помощью аудиомикшеров………………………………………………………………. 277

Поддержка разных платформ…………………………………………………………………………………………………. 279

Заключение………………………………………………………………………………………………………………………………. 279

Вопросы……………………………………………………………………………………………………………………………………. 280

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

Глава 11. Улучшение графики……………………………………………………………… 281

Содержание главы…………………………………………………………………………………………………………………… 281

Цель главы………………………………………………………………………………………………………………………………… 282

Художественные инструменты Unity…………………………………………………………………………………….. 282

Загрузка дополнительных материалов…………………………………………………………………………………. 283

Инструмент ProBuilder……………………………………………………………………………………………………………. 285

Создание фигур………………………………………………………………………………………………………………… 286

Создание полифигур………………………………………………………………………………………………………… 287

Сглаживание…………………………………………………………………………………………………………………….. 287

Редактор материалов………………………………………………………………………………………………………. 287

UV-редактор……………………………………………………………………………………………………………………… 288

Центральная поворотная точка……………………………………………………………………………………… 289

Выдавливание меша клавишей <Shift>………………………………………………………………………….. 289

Кирпичные блоки…………………………………………………………………………………………………………………….. 291

Привязка к сетке и размещение ассетов…………………………………………………………………………………. 294

Префабы для постройки уровней…………………………………………………………………………………………… 296

Китбашинг………………………………………………………………………………………………………………………………… 301

Скайбокс…………………………………………………………………………………………………………………………………… 304

Генерация тумана……………………………………………………………………………………………………………………. 306

Очистка рабочего пространства……………………………………………………………………………………………. 307

Постобработка…………………………………………………………………………………………………………………………. 308

Заключение………………………………………………………………………………………………………………………………. 312

Вопросы……………………………………………………………………………………………………………………………………. 312

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

Глава 12. Системы частиц……………………………………………………………………. 315

Содержание главы…………………………………………………………………………………………………………………… 315

Цель главы………………………………………………………………………………………………………………………………… 315

Обзор эффектов частиц……………………………………………………………………………………………………………. 316

Заполнение трехмерного пространства………………………………………………………………………………… 317

Эффекты оружия………………………………………………………………………………………………………………………. 323

Эффекты взрывов……………………………………………………………………………………………………………………… 330

Пакет Unity Particle Pack………………………………………………………………………………………………………… 339

Заключение………………………………………………………………………………………………………………………………. 342

Вопросы……………………………………………………………………………………………………………………………………. 342

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

Глава 13. Прогресс игрока……………………………………………………………………. 345

Содержание главы…………………………………………………………………………………………………………………… 345

Цель главы………………………………………………………………………………………………………………………………… 346

Кривая сложности……………………………………………………………………………………………………………………. 346

Управление сложностью…………………………………………………………………………………………………………. 348

Адаптация и обучение игрока………………………………………………………………………………………………… 348

Режим обучения……………………………………………………………………………………………………………………….. 349

Освещение пути……………………………………………………………………………………………………………………….. 350

Обучение игрока………………………………………………………………………………………………………………. 354

Проверка навыков игрока……………………………………………………………………………………………….. 358

Испытания и мастерство…………………………………………………………………………………………………. 360

Ритмизация………………………………………………………………………………………………………………. 361

Деревья прогрессии………………………………………………………………………………………………… 362

Достижения……………………………………………………………………………………………………………… 362

Новая расширенная игра……………………………………………………………………………………….. 362

Карта мира………………………………………………………………………………………………………………. 363

Заключение………………………………………………………………………………………………………………………………. 368

Вопросы……………………………………………………………………………………………………………………………………. 369

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

Глава 14. Пользовательский опыт……………………………………………………….. 371

Содержание главы…………………………………………………………………………………………………………………… 371

Цель главы………………………………………………………………………………………………………………………………… 372

Что такое опыт взаимодействия?……………………………………………………………………………………………. 372

Влияние интерфейса на опыт взаимодействия……………………………………………………………………… 373

Иконографика…………………………………………………………………………………………………………………………… 373

Типографика…………………………………………………………………………………………………………………………….. 377

Подсказки в игровом мире………………………………………………………………………………………………………. 379

О важности первых 10 минут………………………………………………………………………………………………….. 385

Ознакомительный уровень……………………………………………………………………………………………………… 385

Достижение победы…………………………………………………………………………………………………………………. 389

Плавный переход между сценами………………………………………………………………………………………….. 394

Заключение………………………………………………………………………………………………………………………………. 398

Вопросы……………………………………………………………………………………………………………………………………. 399

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

Глава 15. 2D в сравнении с 3D……………………………………………………………… 401

Содержание главы…………………………………………………………………………………………………………………… 402

Цель главы………………………………………………………………………………………………………………………………… 402

2D- и 3D-игры…………………………………………………………………………………………………………………………… 402

Создание 2D-проекта………………………………………………………………………………………………………………. 403

Спрайты……………………………………………………………………………………………………………………………………. 405

Листы спрайтов……………………………………………………………………………………………………………………….. 408

Карты плиток…………………………………………………………………………………………………………………………… 410

Исследование затерянной гробницы……………………………………………………………………………………… 416

Физика и перемещение в 2D-играх…………………………………………………………………………………………. 418

Анимация в 2D-играх………………………………………………………………………………………………………………. 419

Кинематографическая камера………………………………………………………………………………………………… 422

Сила параллакса……………………………………………………………………………………………………………………… 425

Заключение………………………………………………………………………………………………………………………………. 426

Вопросы……………………………………………………………………………………………………………………………………. 427

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

Глава 16. Игровые жанры……………………………………………………………………. 429

Содержание главы…………………………………………………………………………………………………………………… 429

Цель главы………………………………………………………………………………………………………………………………… 430

Масштабы проектов………………………………………………………………………………………………………………… 430

Сайд-скроллеры и платформеры……………………………………………………………………………………………. 431

Игры с видом сверху………………………………………………………………………………………………………………… 435

Шутеры от первого лица…………………………………………………………………………………………………………. 438

Игры от третьего лица…………………………………………………………………………………………………………….. 441

Ролевые игры……………………………………………………………………………………………………………………………. 443

Стратегии…………………………………………………………………………………………………………………………………. 444

Головоломки…………………………………………………………………………………………………………………………….. 445

Креативные сочетания концепций…………………………………………………………………………………………. 446

Ожидания игроков……………………………………………………………………………………………………………………. 448

Заключение………………………………………………………………………………………………………………………………. 449

Вопросы……………………………………………………………………………………………………………………………………. 450

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

Глава 17. Платформы и издание…………………………………………………………… 451

Содержание главы…………………………………………………………………………………………………………………… 451

Цель главы………………………………………………………………………………………………………………………………… 452

Выбор платформы…………………………………………………………………………………………………………………… 452

Windows/macOS/Linux…………………………………………………………………………………………………………….. 453

Мобильные устройства…………………………………………………………………………………………………………… 454

Консоли…………………………………………………………………………………………………………………………………….. 458

WebGL………………………………………………………………………………………………………………………………………. 459

Устройства виртуальной/дополненной реальности…………………………………………………………….. 460

Публикация игры……………………………………………………………………………………………………………………… 462

Сотрудничество с издателями игр…………………………………………………………………………………………. 463

Заключение………………………………………………………………………………………………………………………………. 464

Вопросы……………………………………………………………………………………………………………………………………. 465

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

Глава 18. От идеи к финалу………………………………………………………………….. 467

Содержание главы…………………………………………………………………………………………………………………… 467

Цель главы………………………………………………………………………………………………………………………………… 468

Препроизводство……………………………………………………………………………………………………………………… 468

Проектная документация………………………………………………………………………………………………………… 469

Бумажные прототипы……………………………………………………………………………………………………………… 471

Концепт-арт……………………………………………………………………………………………………………………………… 472

Макеты……………………………………………………………………………………………………………………………………… 474

Будьте креативны…………………………………………………………………………………………………………………….. 475

Управление проектом……………………………………………………………………………………………………………… 477

Вертикальный срез………………………………………………………………………………………………………………….. 479

Тестирование игры………………………………………………………………………………………………………………….. 479

Аналитика………………………………………………………………………………………………………………………………… 480

Приоритеты отзывов……………………………………………………………………………………………………………….. 481

Вехи, динамика и моральный дух………………………………………………………………………………………….. 482

Ранний доступ………………………………………………………………………………………………………………………….. 484

Маркетинг………………………………………………………………………………………………………………………………… 485

Выпуск в производство¼ и не только!………………………………………………………………………………….. 487

Заключение………………………………………………………………………………………………………………………………. 488

Вопросы……………………………………………………………………………………………………………………………………. 488

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

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

Scott Tykoski

Скотт Тыкоски (Scott Tykoski) более 23 лет работает в индустрии видеоигр, принимал участие в создании и распространении более 25 игр и приложений на различных платформах (ПК, мобильные устройства, Xbox, Meta Quest 2, HoloLens). Скотт возглавлял несколько команд разработчиков и за свою карьеру занимал практически все возможные должности: разработчик, художник, дизайнер, писатель, аниматор, продюсер, маркетолог. Он регулярно выступает с лекциями об игровом дизайне в школах и на местных встречах разработчиков игр.

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

Долгожданная новинка от Льва Лурье: “Роковые женщины Серебряного века. По материалам судебных процессов”

Роковые женщины Серебряного века. По материалам судебных процессов

ероини этой книги сейчас практически забыты, но каждая в свое время стали сенсацией и сыграла в жизни России роковую роль.  Они сводили с ума мужчин, разоряли, планировали невероятные убийства и доводили министров до каторги. В основу книги положены сенсационные судебные дела начала XX века Марии Тарновской, Ольги фон Штейн, Екатерины Сухомлиновой, Марии Пуаре. В настоящем издании частично использованы материалы книги «Хищницы» (издательство «БХВ-Петербург», 2012).

 Для широкого круга читателей

… «Серебряный век» стал для России временем нерешительных мужчин и роковых женщин.

В начале XX века казалось императорская Россия будет существовать вечно. 47-летний Владимир Ленин в январе 1917 года говорил молодым швейцарским социал-демократам: «Революция, конечно, произойдет, но не на глазах моего поколения». И вдруг все рассыпалось мгновенно и, как оказалось, окончательно.
Один из признаков угасания старого режима — ослабление воли правящей элиты. «Серебряный век» стал для России временем нерешительных мужчин и роковых женщин.

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

«Неизвестная» — картина русского художника Ивана Крамского 

«Неизвестная» — картина русского художника Ивана Крамского (1837—1887), написанная в 1883 году и являющаяся частью собрания Государственной Третьяковской галереи.

 

 

Об авторе

 

Лев Лурье — историк и журналист. Обладатель «Анциферовской премии» за лучшее исследование истории Петербурга и «Золотого пера» за достижения в журналистике. Один из основателей Санкт-Петербургской классической гимназии. В 2006–2009 возглавлял Дирекцию документального вещания ТРК «Петербург — Пятый канал», вел авторские передачи «Культурный слой» и «Живая история». Автор 15 книг, среди которых «Над вольной Невой. От блокады до „оттепели“», «Поздние Ленинградцы. От застоя до перестройки», «22 смерти, 63 версии», «Петербург Достоевского. Исторический путеводитель».

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

Генерирование несколько тонов одновременно с помощью Arduino

По материалам главы 9 («Работа со звуком») книги “Arduino. Большая книга рецептов, 3-е изд.” (авторы Джепсон Брайан, Марголис Майкл, Уэлдин Николас Роберт).

Arduino. Большая книга рецептов, 3-издание

ЗАДАЧА

Требуется генерировать одновременно два звука. Библиотека Tone среды Arduino IDE поддерживает воспроизведение только одного тона на стандартных платах, но мы хотим создавать одновременно два тона. При этом следует отметить, что плата Mega оснащена большим количеством таймеров и способна воспроизводить до шести тонов одновременно.

РЕШЕНИЕ

Возможности библиотеки Tone среды Arduino IDE ограничены одновременным воспроизведением лишь одного тона. Это объясняется тем, что для каждого тона требуется использовать отдельный таймер, и хотя стандартная плата Arduino оснащена тремя таймерами, один из них занят функцией millis(), а еще один требуется для работы с сервомашинками. Чтобы решить эту проблему, здесь применена библиотека Tone с расширенными возможностями разработки Бретта Хагмана (Brett Hagman), который также является и разработчиком функции tone(). Его библиотека позволяет генерировать одновременно несколько тонов. Библиотеку можно загрузить с ее веб-страницы Github (https://github.com/bhagman/Tone) или же просто установить с помощью Менеджера библиотек.

В листинге 9.4 приводится код скетча, который проигрывает часть мелодии «Twinkle, Twinkle Little Star» с теми же самыми нотами, но в двух октавах.

Листинг 9.4. Скетч для воспроизведения нескольких тонов одновременно на стандартной плате Arduino

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
/*
* Скетч Dual Tones
* Проигрывает фрагмент мелодии "Twinkle, Twinkle Little Star" в двух октавах
*/
 
#include &lt;Tone.h&gt;
int notes1[] = {NOTE_C3, NOTE_C3, NOTE_G3, NOTE_G3, NOTE_A4, NOTE_A4,
NOTE_G3, NOTE_F3, NOTE_F3, NOTE_E3, NOTE_E3, NOTE_D3,
NOTE_D3, NOTE_C3 };
int notes2[] = {NOTE_C3, NOTE_C3, NOTE_G3, NOTE_G3, NOTE_A4, NOTE_A4,
NOTE_G3, NOTE_F3, NOTE_F3, NOTE_E3, NOTE_E3, NOTE_D3,
NOTE_D3, NOTE_C3 };
const byte scoreLen = sizeof(notes1)/sizeof(notes1[0]); // Количество нот
// Тоны можно объявить в виде массива
Tone notePlayer[2];
 
void setup(void)
{
notePlayer[0].begin(11);
notePlayer[1].begin(12);
}
 
void loop(void)
{
for (int i = 0; i &lt; scoreLen; i++)
{
notePlayer[0].play(notes1[i]);
delay(100); // Небольшая пауза перед проигрыванием следующей ноты
notePlayer[1].play(notes2[i]);
delay(400);
notePlayer[0].stop();
notePlayer[1].stop();
delay(30);
}
delay(1000);
}

Обсуждение работы решения и возможных проблем

Чтобы смешать два выходных сигнала разной частоты на одном динамике, сигналы с выходных контактов платы Arduino подаются на один из контактов динамика через резисторы номиналом 500 Ом. Второй контакт динамика подключается на «землю» (контакт GND платы Arduino), как показано на схемах для предыдущих решений (например, на рис. 9.3).

Подключение динамика для воспроизведения тонов разной частоты и длительности

Рис. 9.3. Подключение динамика для воспроизведения тонов разной частоты и длительности

На стандартных платах Arduino для генерирования первого тона задействуется таймер 2 (в результате чего подача ШИМ-сигнала на контакты 9 и 10 платы будет невозможна), а для генерирования второго сигнала — таймер 1 (что делает невозможным использование библиотеки Servo, а также подачу ШИМ-сигнала на контакты 11 и 12). На платах Mega для каждого тона используется отдельный таймер
в следующем порядке: 2, 3, 4, 5, 1, 0. На момент подготовки книги эта библиотека поддерживает возможности, реализуемые архитектурой AVR, и не поддерживается платами с микроконтроллерами ARM и платами MegaAVR — такими как платы Arduino Uno WiFi R2 и Nano Every.

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

Хотя на плате Arduino возможно одновременно воспроизводить три тона, а на плате Mega — более чем шесть, это создает проблемы для нормальной работы функций delay() и millis(). Поэтому для надежности рекомендуется одновременно воспроизводить только два тона на плате Arduino или пять на плате Mega.
Опубликовано

Новинка: “Проектирование в T-FLEX CAD в задачах и примерах”

Проектирование в T-FLEX CAD в задачах и примерах

Книга представляет собой учебное пособие для студентов технических направлений вузов и колледжей, а также обучающихся индустриальных центров компетенций и воспитанников кванториумов, но будет полезна и инженерам, решившим перейти к использованию T-FLEX CAD с других систем проектирования. Первая часть книги посвящена двумерному цифровому моделированию в T-FLEX CAD и направлена на формирование уверенных практических навыков, необходимых для последующего перехода к 3D. Вторая часть посвящена трехмерному цифровому моделированию в T-FLEX CAD и направлена на формирование практических навыков 3D-проектирования цифровых моделей изделий машиностроения. После рассмотрения каждого примера построения чертежа, детали или сборки читателю предлагается широкий спектр вариантов представленного в главе типа цифровых моделей в виде заданий для самостоятельной разработки.

Для инженеров и студентов технических вузов и колледжей

Включена в Единый реестр российских программ.

Книга представляет собой  учебное пособие для студентов технических направлений вузов и колледжей, а также обучающихся индустриальных центров компетенций и воспитанников кванториумов, но будет полезна и инженерам, решившим перейти к использованию T-FLEX CAD с других систем проектирования.

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

Учебное пособие позволяет за короткое время достичь высокопродуктивного уровня владения T-FLEX CAD и направлено на подготовку специалистов, способных самостоятельно приобретать цифровые инженерные компетенции для последующего применения их в практической деятельности.

  • Цифровое моделирование в T-FLEX CAD
  • 2D-моделирование: электронные чертежи
  • 3D-моделирование: детали и сборки
  • Пошаговые алгоритмы действий
  • Детально иллюстрированные практические примеры
  • Широкий спектр вариантов цифровых моделей в виде заданий для самостоятельной разработки

T-FLEX CAD — полнофункциональная российская система автоматизированного проектирования, объединяющая в себе возможности 2D и 3D моделирования со средствами создания и оформления чертежей и конструкторской документации в соответствии с ЕСКД и зарубежными стандартами (ISO, DIN, ANSI). Включена в Единый реестр российских программ.

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

О книге ………………………………………………………………………………………………………. 9
Предисловие …………………………………………………………………………………………….. 11
ЧАСТЬ I. Двумерное цифровое моделирование …………..15
Глава 1. Цифровая модель № 1 …………………………………………………………….. 17
1.1. Пример разработки ……………………………………………………… 17
Этап № 1. Запуск программы T-FLEX CAD и создание нового
документа. …………………………………………………………………………………….. 17
Этап № 2. Установка параметров чертежа и координатной сетки ……….. 19
Этап № 3. Построение чертежа ……………………………………………………….. 22
Этап № 4. Нанесение на чертеж элементов оформления —
простановка осей …………………………………………………………………………… 33
Этап № 5. Управление отображением чертежа ………………………………….. 35
1.2. Варианты для разработки …………………………………………….. 36
Глава 2. Цифровая модель № 2 ………………………………………………………….57
2.1. Пример разработки ……………………………………………………… 57
Этап № 1. Запуск программы T-FLEX CAD
и создание нового документа ………………………………………………………….. 57
Этап № 2. Установка параметров чертежа и координатной сетки ……….. 57
Этап № 3. Построение чертежа ……………………………………………………….. 58
Этап № 4. Управление отображением чертежа ………………………………….. 63
2.2. Варианты для разработки …………………………………………….. 69
Глава 3. Цифровая модель № 3 ………………………………………………………….89
3.1. Пример разработки ……………………………………………………… 89
Этап № 1. Запуск программы T-FLEX CAD
и создание нового документа ………………………………………………………….. 89
4 Оглавление
Этап № 2. Установка параметров чертежа и координатной сетки ……….. 89
Этап № 3. Построение чертежа ……………………………………………………….. 89
Этап № 4. Нанесение на чертеж элементов оформления
(штриховок, размеров, обозначений вида) ……………………………………….102
Этап № 5. Управление отображением чертежа ………………………………….107
3.2. Варианты для разработки …………………………………………… 111
Глава 4. Цифровая модель № 4………………………………………………………….121
4.1. Пример разработки ……………………………………………………. 121
Этап № 1. Запуск программы T-FLEX CAD
и создание нового документа ………………………………………………………….121
Этап № 2. Установка параметров чертежа и координатной сетки ……….121
Этап № 3. Построение чертежа ……………………………………………………….121
Этап № 4. Нанесение на чертеж элементов оформления —
простановка осей …………………………………………………………………………..127
Этап № 5. Нанесение на чертеж элементов оформления —
простановка размеров …………………………………………………………………….129
Этап № 6. Управление отображением чертежа ………………………………….132
4.2. Варианты для разработки …………………………………………… 133
Глава 5. Цифровая модель № 5 ……………………………………………………….. 143
5.1. Пример разработки ……………………………………………………. 143
Этап № 1. Запуск программы T-FLEX CAD
и создание нового документа ………………………………………………………….143
Этап № 2. Установка параметров чертежа и координатной сетки ……….143
Этап № 3. Построение главного вида чертежа ………………………………….143
Этап № 4. Построение сечения Е–Е ……………………………………………….166
Этап № 5. Построение сечения Д–Д ……………………………………………….167
Этап № 6. Построение выносного элемента «Ж (4:1)» ………………………174
Этап № 7. Нанесение на главный вид элементов оформления …………..181
Этап № 8. Нанесение элементов оформления на сечение Е–Е,
сечение Д–Д, выносной элемент «Ж (4:1)» …………………………………….. 209
Этап № 9. Окончательное оформление чертежа ……………………………… 209
Этап № 10. Управление отображением чертежа ………………………………..213
5.2. Варианты для разработки …………………………………………… 216
Оглавление 5
Глава 6. Цифровая модель № 6 ………………………………………………………. 225
6.1. Пример разработки ……………………………………………………. 225
Этап № 1. Запуск программы T-FLEX CAD
и создание нового документа ………………………………………………………… 225
Этап № 2. Установка параметров чертежа и координатной сетки ……… 225
Этап № 3. Построение чертежа ……………………………………………………… 225
Этап № 4. Управление отображением чертежа ………………………………… 229
6.2. Варианты для разработки …………………………………………… 244
ЧАСТЬ II. Трехмерное цифровое моделирование ……..255
Глава 7. Цифровая модель № 1 ………………………………………………………….257
7.1. Пример № 1 разработки …………………………………………….. 257
Подготовительный этап. Запуск программы T-FLEX CAD
и создание нового документа ………………………………………………………… 257
Этап № 1. Построение вертикальной части детали,
состоящей из трех компонентов (рис. 7.30 (1–9)) ……………………………. 260
Этап № 2. Построение цилиндрического компонента,
связывающего вертикальную и горизонтальную часть детали
(рис. 7.30 (10–13)) ………………………………………………………………………… 265
Этап № 3. Построение горизонтальной части детали,
состоящей из трех компонентов (рис. 7.30 (14–23)) ………………………… 267
Этап № 4. Построение сквозного выреза в вертикальной
части детали (рис. 7.30 (24–28)) …………………………………………………….. 270
Этап № 5. Построение сквозного выреза в горизонтальной
части детали (рис. 7.30 (24), рис. 7.30 (29–32)) ………………………………….271
Этап № 6. Построение трех отверстий (рис. 7.30 (33–36)) ……………….. 273
Завершающий этап. Управление отображением ……………………………… 275
7.2. Пример № 2 разработки …………………………………………….. 295
Подготовительный этап. Запуск программы T-FLEX CAD
и создание нового документа ………………………………………………………… 295
Этап № 1. Построение вертикальной части детали,
состоящей из четырех компонентов (рис. 7.47 (1–10)) …………………….. 296
Этап № 2. Построение поперечного цилиндрического компонента
(рис. 7.47 (11–15)) ………………………………………………………………………… 298
Этап № 3. Построение отверстия со шпоночным пазом
(рис. 7.47 (16–20)) ………………………………………………………………………… 300
6 Оглавление
Этап № 4. Построение оставшихся отверстий (рис. 7.47 (21–27)) …….. 302
Завершающий этап. Управление отображением ……………………………… 305
7.3. Варианты для разработки …………………………………………… 320

Глава 8. Цифровая модель № 2 ……………………………………………………….. 361
8.1. Пример № 1 разработки …………………………………………….. 361
Подготовительный этап. Запуск программы T-FLEX CAD
и создание нового документа ………………………………………………………….361
Этап № 1. Построение горизонтального основания детали
со скруглениями и линейными массивами выталкиваний
и отверстий (рис. 8.33 (1–12)) ……………………………………………………….. 363
Этап № 2. Построение вертикальной части детали
(рис. 8.33 (13–23)) ………………………………………………………………………… 369
Этап № 3. Построение симметричных поперечных
цилиндрических компонентов с фасками (рис. 8.33 (24–31)) …………… 373
Этап № 4. Построение линейных и круговых массивов
отверстий в вертикальной части детали (рис. 8.33 (32–41)) ……………… 377
Этап № 5. Построение сквозного прямоугольного выреза
в вертикальной части детали (рис. 8.33 (42–45)) ……………………………… 382
Этап № 6. Построение оставшихся отверстий (рис. 8.33 (46–49)) …….. 384
Завершающий этап. Управление отображением ……………………………… 386
8.2. Пример № 2 разработки …………………………………………….. 412
Подготовительный этап. Запуск программы T-FLEX CAD
и создание нового документа ………………………………………………………….412
Этап № 1. Построение одной четверти сферического усеченного
тонкостенного купола детали (рис. 8.57 (1–10)) ……………………………….413
Этап № 2. Построение одной четверти горизонтального
основания детали (рис. 8.57 (11–19)) ……………………………………………….416
Этап № 3. Симметричное восстановление целой детали
(рис. 8.57 (20–24)) ………………………………………………………………………….419
Этап № 4. Построение вертикального цилиндрического
компонента детали с отверстиями (рис. 8.57 (25–37)) ……………………….421
Завершающий этап. Управление отображением ……………………………… 426
8.3. Варианты для разработки …………………………………………… 446
Глава 9. Цифровая модель № 3 ……………………………………………………….487
9.1. Пример разработки ……………………………………………………. 487
Подготовительный этап. Запуск программы T-FLEX CAD
и создание нового документа ………………………………………………………… 487
Оглавление 7
Этап № 1. Сопряжение деталей: якорь 1, крюк 2, пробка 3,
прокладка 4, контргайка 5 (рис. 9.54 (1–28)) …………………………………… 488
Этап № 2. Сопряжение деталей: пробка 6, пластина 7,
стандартные изделия (болт 8, шайба 9, гайка 10), контргайка 11 —
и построение одного кругового одномерного массива на основе
болтового соединения (рис. 9.54 (29–80)) ………………………………………. 498
Этап № 3. Сопряжение деталей: распорка 12, прокладка 13,
контргайка 14 — и построение двух линейных двумерных массивов:
1) на основе детали 12; 2) на основе сопряжения деталей 13 и 14
(рис. 9.54 (81–104)) ………………………………………………………………………..519
Этап № 4. Симметричное восстановление всей сборки
(рис. 9.54 (105–110)) …………………………………………………………………….. 528
Завершающий этап. Управление отображением ……………………………… 532
9.2. Вариант № 1 для разработки ………………………………………. 588
9.3. Вариант № 2 для разработки ………………………………………. 601
9.4. Вариант № 3 для разработки ………………………………………. 625
Заключение ………………………………………………………………………………………….. 653

Тюльпинова Нина

Тюльпинова Нина Владимировна  —  кандидат технических наук, доцент. Автор 4 учебных пособий, 242 учебно-методических изданий и 42 научных трудов.

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

Имитация ИК-сигналов управления пульта ДУ

Раздел из главы 10 “Дистанционное управление” из книги “Arduino. Большая книга рецептов, 3-е изд.” (авторы Джепсон Брайан, Марголис Майкл, Уэлдин Николас Роберт)

Arduino. Большая книга рецептов, 3-издание

ЗАДАЧА

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

Для приема платой Arduino сигналов пульта ДУ используется модуль приемника ИК-сигналов. На рынке широко представлены приемники ИК-сигнала TSOP38238, TSOP4838, PNA4602 и TSOP2438. Первые три эти приемника имеют одинаковую схему расположения контактов, а у приемника TSOP2438 выводы питания (+5 В и GND) поменяны местами. При использовании какого-либо иного приемника ИК-сигналов уточните схему расположения его контактов в справочном листке (datasheet) на него и подключите его к плате Arduino, как там указано. Подключение приемников TSOP38238, TSOP4838 и PNA4602 к плате Arduino показано в схеме на рис. 10.1.

C:\Users\acer\Documents\#Electronics\Магазин электроники\фрагменты из книг\2788. Arduino Cookbook. Recipes to Begin, Expand, and Enhance\verstka\pic\10\10.1.png

Рис. 10.1. Подключение приемника ИК-сигнала к плате Arduino

РЕШЕНИЕ

Для решения этой задачи к плате Arduino нужно подключить пять кнопок и инфракрасный светодиод, как показано на рис. 10.2.

Скетч для управления этой схемой приводится в листинге 10.4. Для управления устройством в нем используются коды кнопок из скетча, приведенного в решении из разд. 10.2 (см. листинг 10.2). Коды для управления вашим устройством, скорее всего, будут другими, поэтому узнайте их, исполнив скетч из разд. 10.2, а затем замените ими коды в скетче из листинга 10.4. Нажатие одной из пяти кнопок выбирает и отправляет требуемый код.

Листинг 10.4. Скетч для эмулирования ИК-пульта ДУ

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
/*
* Скетч irSend
* Требует подключения ИК-светодиода к контакту 3
* и 5 кнопок к контактам 6-10
*/
#include &lt;IRremote.h&gt; // Подключаем библиотеку IRremote
const int numberOfKeys = 5;
const int firstKey = 6; // Номер первого из пяти последовательных
// контактов, к которым подключаются кнопки
bool buttonState[numberOfKeys];
bool lastButtonState[numberOfKeys];
long irKeyCodes[numberOfKeys] =
{
0x18E758A7, //0 key
0x18E708F7, //1 key
0x18E78877, //2 key
0x18E748B7, //3 key
0x18E7C837, //4 key
};
 
IRsend irsend;
void setup()
{
for (int i = 0; i &lt; numberOfKeys; i++)
{
buttonState[i] = true;
lastButtonState[i] = true;
int physicalPin=i + firstKey;
pinMode(physicalPin, INPUT_PULLUP); // Включаем внутренние повышающие резисторы
}
Serial.begin(9600);
}
 
void loop()
{
for (int keyNumber=0; keyNumber&lt;numberOfKeys; keyNumber++)
{
int physicalPinToRead = keyNumber + firstKey;
buttonState[keyNumber] = digitalRead(physicalPinToRead);
if (buttonState[keyNumber] != lastButtonState[keyNumber])
{
if (buttonState[keyNumber] == LOW)
{
irsend.sendSony(irKeyCodes[keyNumber], 32);
Serial.println("Sending"); // Посылаем команду
}
lastButtonState[keyNumber] = buttonState[keyNumber];
}
}
}

C:\Users\acer\Documents\#Electronics\Магазин электроники\фрагменты из книг\2788. Arduino Cookbook. Recipes to Begin, Expand, and Enhance\verstka\pic\10\10.2.png

Рис. 10.2. Подключение кнопок и инфракрасного светодиода к плате Arduino

Увидеть невооруженным глазом отправляемые коды невозможно, поскольку инфракрасный свет невидим для человеческого глаза.

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

Обсуждение работы решения и возможных проблем

Скетч Arduino управляет удаленным устройством, включая и выключая инфракрасный светодиод таким образом, чтобы имитировать сигналы, посылаемые ИК-пультом ДУ от этого устройства. Характеристики используемого ИК-свето­диода не являются критическими. Информация по подбору подходящего компонента приводится в приложении 1.

Преобразование числовых кодов в мигания ИК-светодиода реализует библиотека IRremote. Для этого в скетче требуется создать экземпляр объекта этой библиотеки. Такой экземпляр для управления светодиодом, подключенным к контакту 3 (выбирать контакт для подключения светодиода не представляется возможным, поскольку этот параметр жестко закодирован в библиотеке), создается следующей строкой кода:

IRsend irsend;
В зависимости от используемой платы Arduino, ИК-светодиод может потребоваться подключить к иному контакту, чем 3. Например, для плат Teensy 3.x ИК-светодиод надо подключать к контакту 5. Более подробная информация на этот счет содержится в файле README библиотеки IRremote (https://oreil.ly/XOfdd). Если для вашей платы ИК-светодиод нужно подключать к одному из контактов, который в скетче решения используется для подключения кнопок (контакты 6–10), следует взять другой диапазон номеров контактов для подключения кнопок.

Для хранения диапазона значений кодов управления в скетче используется массив irKeyCodes (см. также решение разд. 2.4). Скетч отслеживает состояние пяти кнопок и при обнаружении нажатия одной из них посылает соответствующий код кнопки следующим оператором:

irsend.sendSony(irKeyCodes[keyNumber], 32);

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

При передаче функции кода кнопки из массива в конце кода также передается число, сообщающее функции количество битов в коде. Префикс 0x перед определениями кодов в массиве irKeyCodes в начале скетча означает шестнадцатеричный формат этих чисел (подробная информация о шестнадцатеричных числах приводится в главе 2). Каждый символ шестнадцатеричного числа представляет 4-битное значение. Восемь шестнадцатеричных цифр кода означает 32 бита.

Светодиод к плате Arduino подключается через токоограничивающий резистор (подробная информация о применении токоограничивающих резисторов со светодиодами приводится во введении главы 7 (разд. 7.0)).

Зону действия передатчика можно увеличить, используя несколько светодиодов или более мощный светодиод.

Дополнительная информация

Дополнительная информация по управлению светодиодами приведена в главе 7.

Проект необычного ИК-пульта дистанционного управления для телевизоров представлен на веб-странице https://oreil.ly/7BzKh.

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

Представляем Чеченские сказки

Чеченские сказки

Множество народов заселяют горы Кавказа. Характер и нрав чеченцев можно узнать, прочитав их сказки, в которых рассказывается об истинных ценностях этого древнего народа: сострадании, правдивости, щедрости, смелости, трудолюбии.
Сборник сказок создан известным фольклористом и исследователем традиционной культуры народов России и Восточной Европы Виктором Гацаком в результате его многочисленных экспедиций на Кавказ.

Для младшего школьного возраста

…о храбрых джигитах, верных своему слову и встающих на защиту слабых

Чеченские сказки

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

Фольклорист

Виктор Михайлович Гацак

Виктор Михайлович Гацак (19332014) — фольклорист, исследователь традиционной культуры народов России и Восточной Европы. Закончил Кишенёвский универститет, проводил экспедиции в Македонии, на Украине и Горном Алтае.

Художник

Жунина Анастасия

Анастасия Жунина родилась в Нижнем Новгороде. Закончила Нижегородское художественное училище. В 2015 году стала студенткой Санкт-Петербургского государственного академического института живописи, скульптуры и архитектуры им. Репина. Обучалась в монументальной мастерской профессора Александра Кировича Быстрова.

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

Вышла книга “Node.js: разработка приложений в микросервисной архитектуре с нуля”

Node.js: разработка приложений в микросервисной архитектуре с нуля

Базовая книга по построению микросервисной архитектуры с практическими примерами на Node.js. Также рассмотрена работа с оркестратором Kubernetes и контейнерами Docker в среде Docker Compose. Разобраны основные принципы и техники разработки распределенных систем, в частности показано, как написать и развернуть три микросервиса, управлять СУБД, настроить брокер сообщений Kafka, внедрить кэш Redis. Объяснены паттерны проектирования. Особое внимание уделено распределенным транзакциям и разворачиванию микросервисов на удаленном сервере. Показано, как обеспечить расширяемость и отказоустойчивость приложений, как успешно бороться с усложнением клиентских интерфейсов, поддерживая высокую скорость загрузки страниц и приложений и не забывая о том, чтобы сайт оставался красивым и удобным в использовании. Электронный архив на сайте издательства содержит дополнительные материалы к книге.

Для начинающих веб-разработчиков

Микросервисы на JavaScript: осваиваем аккуратную декомпозицию

Современная практика enterprise-разработки и возникающие вызовы связаны, прежде всего, с обеспечением отказоустойчивости и расширяемости приложений. Сложно рассчитывать на реализацию таких качеств без применения микросервисной архитектуры. В книге по порядку рассматривается создание целого приложения с нуля. На материале готового продукта показано, как написать и развернуть три микросервиса, управлять СУБД, настроить брокер сообщений Kafka, внедрить кэш Redis и объединить эти решения в среде Docker-Compose и оркестраторе Kubernetes. Все паттерны, актуальные при проектировании микросервисов для веб-архитектуры, разобраны на практических примерах.

Книга интересна в качестве вводной по микросервисам на Node.js и будет полезна как начинающим разработчикам, пользующимся стеком JavaScript, так и опытным архитекторам, занятым модернизацией архитектуры с применением микросервисов.

Электронный архив с дополнительными материалами, не вошедшими в печатную версиюкнигу, можно скачать по ссылке https://zip.bhv.ru/ 9785977519359.zip, а также со страницы книги на сайте bhv.ru

Вы узнаете, как:

  • разрабатывать микросервисы на Node.js
  • выстраивать синхронное и асинхронное взаимодействие между микросервисами,
  • выполнять распределенные транзакции,
  • организовать взаимодействие между микросервисами,
  • использовать паттерны проектирования,
  • разворачивать микросервисы в облаке,
  • использовать и настраивать Docker, Docker-Compose,
  • настраивать Kubernetes в удаленной среде.

Для кого эта книга?

Основное внимание в ней уделяется именно практическим навыкам написания микросервисов. Она пригодится тем, кто достаточно глубоко владеет знаниями о JavaScript и TypeScript. Упор делается именно на конкретный стек технологий: Node.js, NestJS, PostgreSQL, Kafka, Redis, Docker, Docker-Compose, Kubernetes и некоторые другие. Желательно, чтобы у вас был опыт написания приложений на NestJS, т. к. глубоко в сами технологии мы погружаться не станем. Главный акцент сделан на микросервисах, проблемах, с которыми вы можете столкнуться при их разработке, и путях их решения.

Обзор Node.js
Node.js — это в первую очередь платформа, позволяющая применять язык Java-Script для бэкенда. Веб-разработку в наши дни невозможно представить без Java-Script. Это основной язык и инструмент фронтенд-разработчика. С него начинается TypeScript и всевозможные фреймворки, ускоряющие разработку, — например, такие как ReactJS, Angular, Vue. Однако фронтенд не может жить без бэкенда, и долгое время в роли бэкенда для веб-разработки использовались в основном PHP и Java.
Node.js стоит, как говорится, на двух китах: библиотеке libuv и движке V8 от Google, применяемом в браузере.

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

Введение………………………………………………………………………………………………….. 7

Для кого эта книга?……………………………………………………………………………………………………………………… 7

Обзор Node.js………………………………………………………………………………………………………………………………… 7

Выбор фреймворка: NestJS или Express.js?……………………………………………………………………………… 10

Сравнение монолитной и микросервисной архитектуры………………………………………………………. 13

Список литературы и источников……………………………………………………………………………………………. 14

Глава 1. Разработка первого микросервиса (User)………………………………….. 15

Настройка локального окружения…………………………………………………………………………………………… 15

Редактор кода и плагины…………………………………………………………………………………………………… 15

Node.js и пакетные менеджеры…………………………………………………………………………………………. 16

NVM…………………………………………………………………………………………………………………………………….. 18

Установка NestJS………………………………………………………………………………………………………………… 19

Git…………………………………………………………………………………………………………………………………………. 21

Codestyle……………………………………………………………………………………………………………………………… 23

Docker и Docker-Compose………………………………………………………………………………………………….. 24

Тестирование API………………………………………………………………………………………………………………. 27

Вывод………………………………………………………………………………………………………………………………….. 29

Создание структуры проекта……………………………………………………………………………………………………. 29

Подключение необходимых библиотек…………………………………………………………………………………… 37

Переменные окружения……………………………………………………………………………………………………… 37

ORM…………………………………………………………………………………………………………………………………….. 39

Swagger………………………………………………………………………………………………………………………………… 45

Библиотеки сlass-transformer и class-validator………………………………………………………………… 47

Настройка ESLint………………………………………………………………………………………………………………………. 48

Проектирование базы данных PostgreSQL………………………………………………………………………………. 52

Что такое «база данных» и какие они бывают?………………………………………………………………. 52

Нормализация данных………………………………………………………………………………………………………. 54

Первая нормальная форма (1НФ)……………………………………………………………………………. 54

Вторая нормальная форма (2НФ)……………………………………………………………………………. 55

Третья нормальная форма (3НФ)…………………………………………………………………………….. 56

Разработка бизнес-логики и маршрутизации для модуля User……………………………………………… 57

Тестирование микросервиса…………………………………………………………………………………………………….. 74

Список литературы и источников……………………………………………………………………………………………. 77

Глава 2. Разработка микросервиса авторизации и аутентификации (Auth) 79

Теоретический обзор способов авторизации и аутентификации………………………………………….. 79

Аутентификация, идентификация и авторизация……………………………………………………………. 79

Аутентификация по паролю……………………………………………………………………………………………… 80

Аутентификация по сертификатам…………………………………………………………………………………… 81

Аутентификация по одноразовым паролям…………………………………………………………………….. 82

Аутентификация по ключам доступа……………………………………………………………………………….. 83

Аутентификация по токенам……………………………………………………………………………………………… 83

Базовые меры предосторожности от возможных уязвимостей……………………………………………… 85

Переполнение буфера………………………………………………………………………………………………………… 86

Состояние гонки…………………………………………………………………………………………………………………. 86

Атаки проверки ввода………………………………………………………………………………………………………… 86

Атаки аутентификации………………………………………………………………………………………………………. 87

Атаки авторизации…………………………………………………………………………………………………………….. 87

Атаки на стороне клиента…………………………………………………………………………………………………. 88

Разработка модуля Auth……………………………………………………………………………………………………………. 88

Список литературы и источников………………………………………………………………………………………….. 101

Глава 3. Способы взаимодействия между микросервисами………………….. 103

HTTP-протокол………………………………………………………………………………………………………………………… 103

Модель OSI……………………………………………………………………………………………………………………….. 103

Физический уровень……………………………………………………………………………………………….. 104

Канальный уровень………………………………………………………………………………………………… 104

Сетевой уровень……………………………………………………………………………………………………… 105

Транспортный уровень…………………………………………………………………………………………… 105

Сеансовый уровень…………………………………………………………………………………………………. 105

Уровень представления………………………………………………………………………………………….. 106

Прикладной уровень………………………………………………………………………………………………. 106

Устройство HTTP-протокола………………………………………………………………………………………….. 106

Структура HTTP-запроса………………………………………………………………………………………. 107

Cтруктура HTTP-ответа…………………………………………………………………………………………. 108

gRPC………………………………………………………………………………………………………………………………………….. 108

RabbitMQ………………………………………………………………………………………………………………………………….. 112

Apache Kafka……………………………………………………………………………………………………………………………. 115

Redis………………………………………………………………………………………………………………………………………….. 117

Разработка интеграции сервисов Auth и Account…………………………………………………………………. 118

Список литературы и источников………………………………………………………………………………………….. 136

Глава 4. Разработка модуля Transaction……………………………………………….. 137

Проектирование базы данных………………………………………………………………………………………………… 137

Нормальная форма Бойса — Кодда (НФБК) — частная форма
третьей нормальной формы…………………………………………………………………………………………….. 137

Четвертая нормальная форма…………………………………………………………………………………………. 139

Пятая нормальная форма………………………………………………………………………………………………… 139

Доменно-ключевая нормальная форма………………………………………………………………………….. 140

Шестая нормальная форма……………………………………………………………………………………………… 140

Понятия миграций и транзакций в контексте базы данных PostgreSQL……………………………… 141

Миграции………………………………………………………………………………………………………………………….. 141

Индексы…………………………………………………………………………………………………………………………….. 144

Транзакции……………………………………………………………………………………………………………………….. 150

ACID…………………………………………………………………………………………………………………………. 151

Параллельные транзакции…………………………………………………………………………………….. 151

Уровни изоляции транзакций в SQL……………………………………………………………………… 152

Разработка модуля Transaction………………………………………………………………………………………………. 153

Интеграция Transaction и Account………………………………………………………………………………………….. 167

Проблема распределенных транзакций………………………………………………………………………………… 183

Двухфазная фиксация………………………………………………………………………………………………………. 184

Saga……………………………………………………………………………………………………………………………………. 185

Реализация паттерна Saga……………………………………………………………………………………… 186

Список литературы и источников………………………………………………………………………………………….. 209

Глава 5. Развертывание микросервисов……………………………………………….. 211

Обертывание микросервисов в docker-контейнеры………………………………………………………………. 225

Масштабирование при помощи оркестратора Kubernetes………………………………………………….. 238

Заключение………………………………………………………………………………………………………………………………. 247

Список литературы и источников………………………………………………………………………………………….. 247

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

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

Попова Юлия Юрьевна, практикующий инженер-программист, занимающейся разработкой коммерческих продуктов более 5 лет.

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

Новинка: “Python. Красивые задачи для начинающих”

Python. Красивые задачи для начинающих

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

Для начинающих программистов

Python — это красиво!

Главная причина популярности языка Python — его лаконичность, простота и выразительность. Один и тот же алгоритм на этом языке можно запрограммировать по-разному – так, что будет казаться, будто программа написана на разных языках. В этой книге приводятся алгоритмы решения задач на Python, которые автор считает красивыми — все они имеют несколько вариантов решений и формируют алгоритмическое мышление. Эти алгоритмы – часть хорошего IT-образования. Рассмотрев предложенные задачи, знакомый с основами Python читатель сможет проверить, действительно ли он умеет программировать, а изучив их решения, значительно улучшит свои алгоритмические навыки. Ценность книги состоит в том, что в ней приводится детальное пошаговое описание процесса написания программы для решения каждой поставленной задачи.

  • Структурное программирование
  • Динамическое программирование
  • Объектно-ориентированное программирование
  • Функциональное программирование

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

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

На кого рассчитана эта книга?………………………………………………………………………………………………… 10

Структура книги………………………………………………………………………………………………………………………… 11

Благодарности…………………………………………………………………………………………………………………………… 12

Глава 1. Условия……………………………………………………………………………………. 13

1.1. Квадратное уравнение, комплексные корни…………………………………………………………………….. 13

Задача………………………………………………………………………………………………………………………………….. 13

1.2. Кирпич и дыра в стене………………………………………………………………………………………………………… 18

Задача………………………………………………………………………………………………………………………………….. 18

Версия 1……………………………………………………………………………………………………………………… 19

Версия 2……………………………………………………………………………………………………………………… 20

Версия 3……………………………………………………………………………………………………………………… 21

Глава 2. Структурное программирование………………………………………………. 23

2.1. Полупроходной балл………………………………………………………………………………………………………….. 23

Задача 1………………………………………………………………………………………………………………………………. 23

Версия 1……………………………………………………………………………………………………………………… 24

Версия 2……………………………………………………………………………………………………………………… 25

Задача 2………………………………………………………………………………………………………………………………. 28

Версия 3……………………………………………………………………………………………………………………… 28

Версия 4……………………………………………………………………………………………………………………… 29

Задача 3………………………………………………………………………………………………………………………………. 31

Версия 5……………………………………………………………………………………………………………………… 32

2.2. Метеостанция……………………………………………………………………………………………………………………… 33

Задача………………………………………………………………………………………………………………………………….. 33

Версия 1……………………………………………………………………………………………………………………… 34

Версия 2……………………………………………………………………………………………………………………… 37

2.3. Седловина матрицы……………………………………………………………………………………………………………. 40

Задача………………………………………………………………………………………………………………………………….. 40

2.4. Максимальный квадрат в матрице, заполненный нулями………………………………………………. 43

Задача………………………………………………………………………………………………………………………………….. 43

2.5. Чемпионат по игре в тетрис……………………………………………………………………………………………….. 46

Задача………………………………………………………………………………………………………………………………….. 46

2.6. Проверка правильности расстановки скобок…………………………………………………………………… 51

Задача………………………………………………………………………………………………………………………………….. 51

Глава 3. Функции………………………………………………………………………………….. 57

3.1. Решето Эратосфена и числа-близнецы…………………………………………………………………………….. 57

Задача………………………………………………………………………………………………………………………………….. 57

3.2. Решето Сундарама……………………………………………………………………………………………………………… 65

Задача………………………………………………………………………………………………………………………………….. 65

3.3. Лесенка………………………………………………………………………………………………………………………………… 67

Задача………………………………………………………………………………………………………………………………….. 67

3.4. Линейный и медианный фильтры………………………………………………………………………………………. 73

Задача 1………………………………………………………………………………………………………………………………. 73

Задача 2………………………………………………………………………………………………………………………………. 84

3.5. Алгоритм Евклида………………………………………………………………………………………………………………. 85

Задача………………………………………………………………………………………………………………………………….. 85

3.6. Гипероператоры…………………………………………………………………………………………………………………. 91

Задача………………………………………………………………………………………………………………………………….. 91

3.7. Ханойские башни……………………………………………………………………………………………………………… 102

Задача……………………………………………………………………………………………………………………………….. 102

3.8. Отображения списков……………………………………………………………………………………………………….. 109

Задача……………………………………………………………………………………………………………………………….. 109

Глава 4. Поиск в длину и ширину, бэктрекинг,
динамическое программирование………………………………………………………… 119

4.1. Лабиринт……………………………………………………………………………………………………………………………. 119

Задача 1…………………………………………………………………………………………………………………………….. 120

Версия 1…………………………………………………………………………………………………………………… 120

Версия 2…………………………………………………………………………………………………………………… 125

Версия 3…………………………………………………………………………………………………………………… 130

Версия 4…………………………………………………………………………………………………………………… 134

Задача 2…………………………………………………………………………………………………………………………….. 139

4.2. Задача о восьми ферзях……………………………………………………………………………………………………. 143

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

Версия 1…………………………………………………………………………………………………………………… 143

Версия 2…………………………………………………………………………………………………………………… 156

4.3. Поиск индекса элемента в списке……………………………………………………………………………………. 161

Задача……………………………………………………………………………………………………………………………….. 161

Версия 1…………………………………………………………………………………………………………………… 161

Версия 2…………………………………………………………………………………………………………………… 162

Версия 3…………………………………………………………………………………………………………………… 163

4.4. Сжатие строки…………………………………………………………………………………………………………………… 167

Задача……………………………………………………………………………………………………………………………….. 167

4.5. Укладка рюкзака………………………………………………………………………………………………………………. 176

Задача……………………………………………………………………………………………………………………………….. 176

4.6. Подпоследовательность максимальной длины……………………………………………………………… 180

Задача……………………………………………………………………………………………………………………………….. 181

Версия 1…………………………………………………………………………………………………………………… 181

Версия 2…………………………………………………………………………………………………………………… 184

Версия 3…………………………………………………………………………………………………………………… 186

Версия 4…………………………………………………………………………………………………………………… 191

4.7. Палиндром наибольшей длины……………………………………………………………………………………….. 199

Задача……………………………………………………………………………………………………………………………….. 199

4.8. Гиперсфера………………………………………………………………………………………………………………………… 208

Задача……………………………………………………………………………………………………………………………….. 209

Глава 5. Объектно-ориентированное программирование…………………….. 219

5.1. Графы с помощью словарей…………………………………………………………………………………………….. 219

Задача 1…………………………………………………………………………………………………………………………….. 220

Задача 2…………………………………………………………………………………………………………………………….. 220

Задача 3…………………………………………………………………………………………………………………………….. 224

Задача 4…………………………………………………………………………………………………………………………….. 225

Задача 5…………………………………………………………………………………………………………………………….. 226

Задача 6…………………………………………………………………………………………………………………………….. 227

Задача 7…………………………………………………………………………………………………………………………….. 228

Задача 8…………………………………………………………………………………………………………………………….. 228

5.2. Родословное древо……………………………………………………………………………………………………………. 230

Задача 1…………………………………………………………………………………………………………………………….. 230

Задача 2…………………………………………………………………………………………………………………………….. 238

Задача 3…………………………………………………………………………………………………………………………….. 243

5.3. Период в числовой последовательности………………………………………………………………………… 252

Задача……………………………………………………………………………………………………………………………….. 252

Версия 1…………………………………………………………………………………………………………………… 252

Версия 2…………………………………………………………………………………………………………………… 253

Версия 3…………………………………………………………………………………………………………………… 254

5.4. Треугольник Паскаля и сочетания………………………………………………………………………………….. 257

Задача 1…………………………………………………………………………………………………………………………….. 257

Задача 2…………………………………………………………………………………………………………………………….. 259

Отступление про функторы……………………………………………………………………………………. 262

5.5. Гиперкуб в многомерном пространстве………………………………………………………………………….. 266

Задача……………………………………………………………………………………………………………………………….. 266

Глава 6. Функциональное программирование……………………………………… 287

6.1. Интеграл…………………………………………………………………………………………………………………………….. 288

Задача……………………………………………………………………………………………………………………………….. 288

6.2. Отображения, сохраняющие внутреннюю структуру…………………………………………………… 298

Общая задача……………………………………………………………………………………………………………………. 298

Задача 1…………………………………………………………………………………………………………………………….. 299

Задача 2…………………………………………………………………………………………………………………………….. 302

Задача 3…………………………………………………………………………………………………………………………….. 304

6.3. Цепочки функций………………………………………………………………………………………………………………. 305

Задача……………………………………………………………………………………………………………………………….. 305

6.4. Монады……………………………………………………………………………………………………………………………… 309

Задача……………………………………………………………………………………………………………………………….. 309

6.5. Карринг……………………………………………………………………………………………………………………………… 319

Задача……………………………………………………………………………………………………………………………….. 319

6.6. Функторы…………………………………………………………………………………………………………………………… 331

Задача……………………………………………………………………………………………………………………………….. 331

Выводы по главам 3, 4 и 6……………………………………………………………………………………………………….. 342

Глава 7. Сюрреализм……………………………………………………………………………. 345

7.1. Фрактальные списки…………………………………………………………………………………………………………. 345

7.2. Фрактальный словарь………………………………………………………………………………………………………. 346

7.3. Бесконечные вызовы функции…………………………………………………………………………………………. 346

7.4. Функтор с бесконечными вызовами………………………………………………………………………………… 347

Заключение………………………………………………………………………………………….. 349

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

Добряк Павел Вадимович

Добряк Павел Вадимович — кандидат технических наук, преподаватель Уральского федерального университета. Проводит занятия по различным языкам программирования, базам данных, искусственному интеллекту и проектированию информационных систем. Репетитор по математике и информатике.