Scala – современный, мультипарадигменный язык программирования, позволяющий описывать типичные шаблоны программирования компактнее, выразительнее и безопаснее. Scala прекрасно сочетает в себе черты объектно-ориентированных и функциональных языков. Книга начинается с введения в основы конкурентного программирования в JVM и описания модели памяти в Java, а после демонстрирует основные строительные блоки для реализации конкурентных вычислений, такие как атомарные переменные, пулы потоков и конкурентные структуры данных. Затем рассматриваются разные высокоуровневые абстракции конкуренции, каждая из которых ориентирована на решение определенного класса задач, при этом затрагиваются самые последние достижения в поддержке асинхронного программирования. Также охватываются некоторые полезные шаблоны и способы использования описываемых приемов. В заключение дается краткий обзор применения разных библиотек поддержки конкуренции и демонстрируется возможность их совместного использования. Издание предназначено разработчикам с опытом программирования на Scala, но без опыта конкурентного и асинхронного программирования.
Книга представляет собой краткое, но обстоятельное введение в современные нейронные сети, искусственный интеллект и технологии глубокого обучения. В ней представлено более 20 работоспособных нейронных сетей, написанных на языке Python с использованием модульной библиотеки Keras, работающей поверх библиотек TensorFlow от Google или Theano от компании Lisa Lab. Описан функциональный API библиотеки Keras и возможности его расширения. Рассмотрены алгоритмы обучения с учителем (простая линейная регрессия, классический многослойный перцептрон, глубокие сверточные сети), а также алгоритмы обучения без учителя – автокодировщики и порождающие сети. Дано введение в технологию глубокого обучения с подкреплением и ее применение к построению игр со встроенным искусственным интеллектом. Издание предназначено для программистов и специалистов по анализу и обработке данных.
В книге рассмотрены все нововведения в Java 9. Приведена разработка приложений с использованием системы модулей. Описаны измененная модульная структура образа среды выполнения JDK/JRE, новые фабричные методы для создания коллекций, уведомления процессора об активном ожидании с целью оптимизации потребления ресурсов, новый API платформенно-зависимого рабочего стола, API реактивных потоков и др. Уделено внимание несовместимым изменениям в Java 9. Также рассказано об оболочке JShell, предназначенной для быстрого создания прототипа. Издание предназначено опытным Java-разработчикам, которым необходима миграция от Java 7 и 8 к Java 9.
Данная книга посвящена вопросам искусственного интеллекта (ИИ), то есть методам и технологиям, призванным сделать ПО более умным и полезным. Рассмотренные алгоритмы в основном предназначены для встраивания в другое программное обеспечение, что позволяет создавать программы, гибко подстраивающиеся под требования и привычки пользователя. Здесь описан ряд алгоритмов ИИ – нейронные сети, генетические алгоритмы, системы, основанные на правилах, нечеткая логика, алгоритмы муравья и умные агенты. Для каждого алгоритма приведены примеры реализации. Некоторые из этих приложений применяются на практике, другие относятся скорее к теоретическим изысканиям. Так или иначе, автор раскрывает секреты наиболее интересных алгоритмов ИИ, что делает их доступными для более широкой аудитории. Предполагается, что благодаря подробному описанию алгоритмов методики и технологии ИИ займут свое место в списке традиционных программ. Книга призвана помочь разработчикам использовать технологии ИИ при создании более умного программного обеспечения.
Надоело продираться через дебри малопонятных самоучителей по программированию? С этой книгой вы без груда усвоите азы Python и научитесь работать со структурами и функциями. В ходе обучения вы создадите свое собственное веб-приложение и узнаете, как управлять базами данных, обрабатывать исключения, пользоваться контекстными менеджерами, декораторами и генераторами. Все это и многое другое – во втором издании «Изучаем программирование на Python».
Никогда не программировали, но мечтаете научиться? Знаменитая на весь мир авторская методика Зеда Шоу поможет вам сделать первые шаги в освоении одного из самых увлекательных и востребованных сегодня языков – Python. Читайте упражнения, копируйте примеры и запускайте свои первые программы легко!
В связи с разрастающейся проблемой выработки полезных ископаемых в данной статье представлена разработка и анализ имитационной модели истощения запасов соли в среде iThink. Модель позволяет в зависимости от ряда входных данных сымитировать процесс добычи соли с отображением динамики истощения этих запасов в табличном и графическом виде по годам, а также посмотреть, как будут изменяться наряду с входными параметрами производительность скважин, число введенных в строй и законсервированных скважин и другие параметры, которые следует учитывать при планировании деятельности предприятия.
Первая публикация ноу-хау, позволяющего добиться общего видения в любой команде! Джим и Мишель Мак-Карти в течение ряда лет возглавляли команды разработчиков ПО в Microsoft. Весь накопленный опыт и последующие целенаправленные исследования десятков высокотехнологичных команд воплотились в методах и технологиях успешной командной работы. Впоследствии эти методы образовали набор паттернов, антипаттернов и протоколов группового взаимодействия. Превосходное сочетание жаргона программных паттернов и теории управления делает книгу лучшей из написанных на эту тему. Команда должна видеть перспективу, формированию которой и посвящена основная часть книги. Специальные главы отведены теме принятия решений. Известно, что один из признаков профессионализма – умение работать так, чтобы высокого результата достигала вся команда. Это умение необходимо не только менеджерам, руководящим работой команды, но и рядовым программистам. Научиться этому поможет данное издание.
Монументальный труд Марка Лутца представляет собой учебник по применению языка Python в системном администрировании, для создания графических интерфейсов и веб-приложений. Исследуются приемы работы с базами данных, программирования сетевых взаимодействий, создания интерфейсов для сценариев, обработки текста и многие другие. Несмотря на то, что на протяжении всей книги используется язык Python, тем не менее основное внимание уделяется не основам языка, а приемам решения практических задач. Второй том включает материалы по созданию сценариев для Интернета. Описывается порядок использования сетевых протоколов и инструментов электронной почты на стороне клиента, применение CGI-сценариев, рассматриваются приемы реализации веб-сайтов. Далее обсуждаются дополнительные темы, касающиеся разработки приложений на Python, а именно: технологии хранения информации между запусками программы – файлы DBM, сериализация объектов, хранилища объектов и интерфейсы Python к базам данных SQL; приемы реализации более сложных структур данных на Python – стеков, множеств, двоичных деревьев поиска, графов и др.; инструменты и приемы, используемые в языке Python для синтаксического анализа текстовой информации; приемы интеграции – расширение Python с помощью компилируемых библиотек и встраивание программного кода на Python в другие приложения.
В книге рассматриваются базисные теоретические основы, необходимые для построения компиляторов, основные технологические приемы и методы их реализации. В ней приведены различные варианты заданий для выполнения лабораторного практикума по курсу «Системное программное обеспечение», а также примеры выполнения этих заданий. В каждом примере подробно рассматриваются все особенности его выполнения, как на этапе подготовки необходимой математической базы, так и на этапе программной реализации. В лабораторных работах автор обращает внимание на основные сложности, связанные с ее выполнением, а также на возможные типичные ошибки и недочеты, дает рекомендации по возможностям программной реализации, отличным от кода, приводимого в примерах. Книга ориентирована на студентов, обучающихся в технических вузах по специальностям, связанным с вычислительной техникой. Но она будет также полезна всем, чья деятельность так или иначе касается разработки программного обеспечения.