Скачать книги категории «Программирование»

Вероятностное программирование на практике

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

Издание рассчитано на широкий круг читателей: специалистов по анализу данных и машинному обучению, программистов, студентов вузов и др.

Виртуальная реальность в Unity

Книга позволит вам освоить разработку виртуальной реальности в Unity – наиболее популярном на сегодняшний день игровом движке. Вы узнаете, как использовать Unity для разработки VR-приложений, поддерживающих такие устройства, как Oculus Rift и Google Cardboard, позволяющих взаимодействовать с виртуальными мирами. Книга расскажет вам, как создать ряд интересных и занимательных VR-проектов. Вы научитесь управлять игровым движком Unity 3D с помощью редактора Unity и сценариев на C#. К концу книги, вы сможете с помощью Unity создать ряд многофункциональных интерактивных примеров восприятия виртуальной реальности.

Наиболее эффективное использование С++. 35 новых рекомендаций по улучшению ваших программ и проектов

Автор книги «Наиболее эффективное использование C++» предлагает 35 новых способов улучшения ваших программ. Основываясь на своем многолетнем опыте, С. Мейерс объясняет, как писать наиболее эффективные программы: надежные, совместимые, переносимые и пригодные для повторного использования, то есть программы, безупречные во всех отношениях.

Настоящая книга описывает приемы, которые позволяют значительно повысить производительность программ, выбрав оптимальное соотношение затрат времени/памяти на различные операции. Здесь вы найдете примеры обработки исключений и анализ их влияния на структуру и поведение классов и функций C++, а также варианты практического применения новых возможностей языка, таких как тип bool, ключевые слова mutable и explicit, пространства имен, шаблоны функций членов, стандартная библиотека шаблонов и многое другое.

Квантовые вычисления и функциональное программирование

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

Книга будет интересна всякому, кто интересуется новыми веяниями в области теории вычислений и смежных наук.

Изучаем Spark. Молниеносный анализ данных

Объем обрабатываемых данных во всех областях человеческой деятельности продолжает расти быстрыми темпами. Существуют ли эффективные приемы работы с ним? В этой книге рассказывается об Apache Spark, открытой системе кластерных вычислений, которая позволяет быстро создавать высокопроизводительные программы анализа данных. C помощью Spark вы сможете манипулировать огромными объемами данных посредством простого API на Python, Java и Scala.

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

Дизайн и эволюция языка С++

В книге, написанной создателем языка C++ Бьерном Страуструпом, представлено описание процесса проектирования и разработки языка программирования C++.

Здесь изложены цели, принципы и практические ограничения, наложившие отпечаток на структуру и облик C++, обсужден дизайн недавно добавленных в язык средств: шаблонов, исключений, идентификации типа во время исполнения и пространств имен. Автор анализирует решения, принятые в ходе работы над языком, и демонстрирует, как правильно применять «реальный объектно-ориентированный язык программирования».

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

Обработка естественного языка на Java

Обработка естественного языка (Natural Language Procession – NLP) представляет собой важную область разработки прикладного ПО и, с учетом современных задач ИТ, в будущем эта важность будет только возрастать. Уже сейчас наблюдается рост потребности в приложениях, работающих с естественными языками на основе NLP-методик.

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

Обработка изображений с помощью OpenCV

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

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

Издание предназначено программистам, знакомым с языком С++ и желающим изучить методы обработки изображений с помощью библиотеки OpenCV.

Обработка неструктурированных текстов. Поиск, организация и манипулирование

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

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

Осваиваем язык Julia

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

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

Основы анимации в Unity

Unity является самодостаточным, интегрированным движком для разработки игр, который предоставляет готовые к применению функции для создания интерактивного 3D-контента. Это игровой движок, соединенный с многофункциональной и сложной системой анимации Mecanim. Данная книга содержит описание мощных инструментов анимации и способов их применения в Unity. Сначала рассматриваются основные идеи, а затем примеры их практического использования для создания анимации в режиме реального времени в играх. В издании собрано множество полезных советов для создания анимации профессионального качества, а также для разработки быстрых интерактивных сцен. Каждая глава посвящена одной из областей анимации, от установки и событий до анимации персонажей и систем частиц.

Прочтя эту книгу, вы сможете в полной мере использовать возможности системы Mecanim и Unity.

Параллельное и конкурентное программирование на языке Haskell

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

Автор Саймон Марлоу проведёт вас по этому пути, сопровождая его большим количеством примеров, с которыми можно самостоятельно экспериментировать, запуская, изменяя и расширяя. Книга делится на две части, посвящённые таким инструментам, как Parallel Haskell и Concurrent Haskell, включённые в неё упражнения позволят вам научиться:

  • выражать параллелизм в языке Haskell средствами монады Eval и стратегий вычислений;
  • распараллеливать обычный код на языке Haskell в монаде Par;
  • организовывать параллельные вычисления с массивами на основе библиотеки Repa;
  • использовать библиотеку Accelerate для запуска вычислений на графических процессорах;
  • работать с базовыми интерфейсами для написания конкурентного кода;
  • реализовывать высокопроизводительные конкурентные сетевые серверы;
  • писать распределённые программы, запускающиеся на множестве машин сети.

Построение систем машинного обучения на языке Python

Применение машинного обучения для лучшего понимания природы данных – умение, необходимое любому современному разработчику программ или аналитику. Python – замечательный язык для создания приложений машинного обучения. Благодаря своей динамичности он позволяет быстро производить разведочный анализ данных и экспериментировать с ними. Обладая первоклассным набором библиотек машинного обучения с открытым исходным кодом, Python дает возможность сосредоточиться на решаемой задаче и в то же время опробовать различные идеи.

Книга начинается с краткого введения в предмет машинного обучения и знакомства с библиотеками NumPy, SciPy, scikit-learn. Но довольно быстро авторы переходят к более серьезным проектам с реальными наборами данных, в частности, тематическому моделированию, анализу корзины покупок, облачным вычислениям и др.

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

Практическое использование Common Lisp

В отличие от основной массы литературы про Lisp, эта книга не просто рассказывает о ряде возможностей языка, предоставляя читателю самостоятельно осваивать их на практике. Здесь будут описаны все функции языка, которые понадобятся вам для написания реальных программ. Более трети книги посвящено разработке нетривиальных программ – статистического фильтра для спама, библиотеки для разбора двоичных файлов и сервера для трансляции музыки в формате MP3 через сеть, включающего в себя базу данных (MP3-файлов) и веб-интерфейс.

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

Программирование в Win32 API на Visual Basic

Книга излагает основные сведения о системном программировании на Visual Basic и дает необходимую информацию о назначении функций Win32 API. Среда VB наиболее эффективна для быстрой разработки приложений, однако за простоту в создании программ приходится платить снижением эффективности, потерей гибкости и управляемости. Здесь описывается, как можно обойти требования Visual Basic, обращаясь непосредственно к интерфейсу прикладного программирования Win32. Обсуждается широкий круг практических задач от самых простых, таких как получение основной системной информации, добавление позиций табуляции в окне со списком, запись и извлечение данных в/из реестра или индивидуальных файлов инициализации, до весьма сложных – модификации класса управляющих элементов с целью реализации заданного поведения, установки ловушек для отслеживания и изменения работы мыши или клавиатуры и т.д.

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

Данное издание адресовано профессиональным программистам на Visual Basic, заинтересованным в том, чтобы включить возможности системных сервисов Windows в свои приложения.

Программирование компьютерного зрения на языке Python

Если вы хотите разобраться в основах теории и алгоритмов компьютерного зрения, то эта книга – как раз то, что вам нужно. Вы узнаете о методах распознавания объектов, трехмерной реконструкции, обработке стереоизображений, дополненной реальности и других приложениях компьютерного зрения. Изложение сопровождается понятными примерами на языке Python. При этом объяснения даются в общих чертах, без погружения в сухую теорию.

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

Разработка веб-приложений с использованием Flask на языке Python

В этой книге вы изучите популярный микрофреймворк Flask на пошаговых примерах создания законченного приложения социального блогинга. Автор книги Мигель Гринберг познакомит вас с основными функциональными возможностями фреймворка и покажет, как расширять приложения дополнительными веб-технологиями, такими как поддержка миграции базы данных и взаимодействия с веб-службами.

Вместо того чтобы навязывать строгие правила, как это делают другие фреймворки, Flask оставляет за вами свободу принятия решений. Если вы имеете опыт программирования на языке Python, данная книга покажет вам, как можно воспользоваться такой свободой творчества!

Разработка геоприложений на языке Python

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

Книга предоставляет обзор главных геопространственных понятий, источников геоданных и наборов инструментов для геообработки. Рассмотрены приемы хранения и доступа к пространственным данным. Показано создание собственного интерфейса со скользящей картой в рамках веб-приложения. Подробно описано создание редактора геоданных на основе географического модуля GeoDjango для веб-платформы Django.

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

Семь моделей конкуренции и параллелизма за семь недель. Раскрываем тайны потоков

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

Использование паттерна «абстрактная фабрика» в реализации модуля валидации и преобразования данных интерпретатора BlockSet

В работе показана архитектура модуля обработки данных, используемого в интерпретаторе декларативного языка моделирования BML. В статье дается теоретическое обоснование и рассматривается практическое применение элемента «Block» в рамках языка BML.

В работе также описывается архитектура класса элемента и его дочерних классов, дается детальное обоснование использования паттерна «абстрактная фабрика».

Проверка точности интервального прогнозирования на основе доверительных оценок вероятностей

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

Все результаты в данной статье получены с использованием свободно распространяемого языка программирования для статистической обработки данных «R», на базе которого создан специальный программный комплекс для конечного пользователя.

Программирование без дураков

Хотите научиться программировать «less wrong»? Тогда эта книга – для вас. Ведь программирование – это во многом коммуникация. Стиль программирования, именование, комментирование, работа с чужим кодом – зачастую соглашения складываются именно там, где строгая регламентация на уровне языка программирования отсутствует. Познакомьтесь с разнообразными традициями, существующими в различных языках программирования, узнайте, как, практически не спотыкаясь, передвигаться по этой пересеченной местности. Со знанием дела и юмором авторы погружаются в обсуждение ложных путей, неверных суждений и ошибок, тем самым значительно облегчая жизнь любому начинающему и бывалому программисту.

Программирование на Python. Том II. 4-е издание

Монументальный труд Марка Лутца представляет собой учебник по применению языка Python в системном администрировании, для создания графических интерфейсов и веб-приложений. Исследуются приемы работы с базами данных, программирования сетевых взаимодействий, создания интерфейсов для сценариев, обработки текста и многие другие. Несмотря на то, что на протяжении всей книги используется язык Python, тем не менее основное внимание уделяется не основам языка, а приемам решения практических задач.

Второй том включает материалы по созданию сценариев для Интернета. Описывается порядок использования сетевых протоколов и инструментов электронной почты на стороне клиента, применение CGI-сценариев, рассматриваются приемы реализации веб-сайтов. Далее обсуждаются дополнительные темы, касающиеся разработки приложений на Python, а именно: технологии хранения информации между запусками программы – файлы DBM, сериализация объектов, хранилища объектов и интерфейсы Python к базам данных SQL; приемы реализации более сложных структур данных на Python – стеков, множеств, двоичных деревьев поиска, графов и др.; инструменты и приемы, используемые в языке Python для синтаксического анализа текстовой информации; приемы интеграции – расширение Python с помощью компилируемых библиотек и встраивание программного кода на Python в другие приложения.

Программируем командный дух

Первая публикация ноу-хау, позволяющего добиться общего видения в любой команде! Джим и Мишель Мак-Карти в течение ряда лет возглавляли команды разработчиков ПО в Microsoft. Весь накопленный опыт и последующие целенаправленные исследования десятков высокотехнологичных команд воплотились в методах и технологиях успешной командной работы. Впоследствии эти методы образовали набор паттернов, антипаттернов и протоколов группового взаимодействия. Превосходное сочетание жаргона программных паттернов и теории управления делает книгу лучшей из написанных на эту тему. Команда должна видеть перспективу, формированию которой и посвящена основная часть книги. Специальные главы отведены теме принятия решений.

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