C++

121
Ebook

Learning C++ Functional Programming. Explore functional C++ with concepts like currying, metaprogramming and more

Wisnu Anggoro

Functional programming allows developers to divide programs into smaller, reusable components that ease the creation, testing, and maintenance of software as a whole. Combined with the power of C++, you can develop robust and scalable applications that fulfill modern day software requirements. This book will help you discover all the C++ 17 features that can be applied to build software in a functional way.The book is divided into three modules—the first introduces the fundamentals of functional programming and how it is supported by modern C++. The second module explains how to efficiently implement C++ features such as pure functions and immutable states to build robust applications. The last module describes how to achieve concurrency and apply design patterns to enhance your application’s performance. Here, you will also learn to optimize code using metaprogramming in a functional way.By the end of the book, you will be familiar with the functional approach of programming and will be able to use these techniques on a daily basis.

122
Ebook
123
Ebook

LLVM Techniques, Tips, and Best Practices Clang and Middle-End Libraries. Design powerful and reliable compilers using the latest libraries and tools from LLVM

Min-Yih Hsu

Every programmer or engineer, at some point in their career, works with compilers to optimize their applications. Compilers convert a high-level programming language into low-level machine-executable code. LLVM provides the infrastructure, reusable libraries, and tools needed for developers to build their own compilers. With LLVM’s extensive set of tooling, you can effectively generate code for different backends as well as optimize them.In this book, you’ll explore the LLVM compiler infrastructure and understand how to use it to solve different problems. You’ll start by looking at the structure and design philosophy of important components of LLVM and gradually move on to using Clang libraries to build tools that help you analyze high-level source code. As you advance, the book will show you how to process LLVM IR – a powerful way to transform and optimize the source program for various purposes. Equipped with this knowledge, you’ll be able to leverage LLVM and Clang to create a wide range of useful programming language tools, including compilers, interpreters, IDEs, and source code analyzers.By the end of this LLVM book, you’ll have developed the skills to create powerful tools using the LLVM framework to overcome different real-world challenges.

124
Ebook

Machine Learning for OpenCV 4. Intelligent algorithms for building image processing apps using OpenCV 4, Python, and scikit-learn - Second Edition

Aditya Sharma, Vishwesh Ravi Shrimali, Michael Beyeler

OpenCV is an opensource library for building computer vision apps. The latest release, OpenCV 4, offers a plethora of features and platform improvements that are covered comprehensively in this up-to-date second edition.You'll start by understanding the new features and setting up OpenCV 4 to build your computer vision applications. You will explore the fundamentals of machine learning and even learn to design different algorithms that can be used for image processing. Gradually, the book will take you through supervised and unsupervised machine learning. You will gain hands-on experience using scikit-learn in Python for a variety of machine learning applications. Later chapters will focus on different machine learning algorithms, such as a decision tree, support vector machines (SVM), and Bayesian learning, and how they can be used for object detection computer vision operations. You will then delve into deep learning and ensemble learning, and discover their real-world applications, such as handwritten digit classification and gesture recognition. Finally, you’ll get to grips with the latest Intel OpenVINO for building an image processing system.By the end of this book, you will have developed the skills you need to use machine learning for building intelligent computer vision applications with OpenCV 4.

125
Ebook

Mastering Android NDK. Master the skills you need to develop portable, highly-functional Android applications using NDK

Viktor Latypov, Viktor Latypov, Sergey Kosarevsky

Android NDK is used for multimedia applications that require direct access to system resources. NDK is also the key for portability, which in turn allows a reasonably comfortable development and debugging process using familiar tools such as GCC and Clang toolchains.This is a hands-on guide to extending your game development skills with Android NDK. The book takes you through many clear, step-by-step example applications to help you further explore the features of Android NDK and some popular C++ libraries and boost your productivity by debugging the development process.Through the course of this book, you will learn how to write portable multi-threaded native code, use HTTP networking in C++, play audio files, use OpenGL ES 3, and render high-quality text. Each chapter aims to take you one step closer to building your application. By the end of this book, you will be able to create an engaging, complete gaming application.

126
Ebook

Mastering C++ Multithreading. Write robust, concurrent, and parallel applications

Maya Posch

Multithreaded applications execute multiple threads in a single processor environment, allowing developers achieve concurrency. This book will teach you the finer points of multithreading and concurrency concepts and how to apply them efficiently in C++.Divided into three modules, we start with a brief introduction to the fundamentals of multithreading and concurrency concepts. We then take an in-depth look at how these concepts work at the hardware-level as well as how both operating systems and frameworks use these low-level functions. In the next module, you will learn about the native multithreading and concurrency support available in C++ since the 2011 revision, synchronization and communication between threads, debugging concurrent C++ applications, and the best programming practices in C++.In the final module, you will learn about atomic operations before moving on to apply concurrency to distributed and GPGPU-based processing. The comprehensive coverage of essential multithreading concepts means you will be able to efficiently apply multithreading concepts while coding in C++.

127
Ebook

Mastering C++ Programming. Modern C++ 17 at your fingertips

Jeganathan Swaminathan

C++ ? ?has ? ?come ? ?a ? ?long ? ?way ? ?and ? ?has ? ?now ? ?been ? ?adopted ? ?in ? ?several ? ?contexts. Its ? ?key ? ?strengths ? ?are ? ?its ? ?software ? ?infrastructure ? ?and ? ?resource-constrained applications. ? ?The ?C++ ? ?17 ? ?release ? ?will ? ?change ? ?the ? ?way ? ?developers ? ?write code, ? ?and ? ?this ? ?book ? ?will ? ?help ?you ? ?master ? ?your ? ?developing ? ?skills ? ?with ? ?C++. With ? ?real-world, ? ?practical ? ?examples ? ?explaining ? ?each ? ?concept, ? ?the ? ?book ? ?will begin ? ?by ? ?introducing ? ?you ? ?to ? ?the ? ?latest ? ?features ? ?in ? ?C++ ? ?17. ? ?It ? ?encourages clean ? ?code ? ?practices ? ?in ? ?C++ ? ?in ? ?general, ? ?and ? ?demonstrates ? ?the ? ?GUI app-development ? ?options ? ?in ? ?C++. ? ?You’ll ? ?get ? ?tips ? ?on ? ?avoiding ? ?memory ? ?leaks using ? ?smart-pointers. ? ?Next, ? ?you’ll ? ?see ? ?how ? ?multi-threaded ?programming can ? ?help ? ?you ? ?achieve ? ?concurrency ? ?in ? ?your ? ?applications. Moving ? ?on, ? ?you’ll ? ?get ? ?an ? ?in-depth ? ?understanding ? ?of ? ?the ? ?C++ ? ?Standard Template ? ?Library. ? ?We ? ?show ? ?you ? ?the ? ?concepts ? ?of ? ?implementing ? ?TDD ? ?and BDD ? ?in ? ?your ? ?C++ ? ?programs, ? ?and ? ?explore ? ?template-based ? ?generic programming, ? ?giving ? ?you ? ?the ? ?expertise ? ?to ? ?build ? ?powerful ? ?applications. Finally, ? ?we’ll ? ?round ? ?up ? ?with ? ?debugging ? ?techniques ? ?and ? ?best ? ?practices.By ? ?the ? ?end ? ?of ? ?the ? ?book, ? ?you’ll ? ?have ? ?an ? ?in-depth ? ?understanding ? ?of ? ?the language ? ?and ? ?its ? ?various ? ?facets.

128
Ebook

Mastering OpenCV 3. Get hands-on with practical Computer Vision using OpenCV 3 - Second Edition

Shervin Emami, David Millán Escrivá, Daniel Lelis Baggio, Roy Shilkrot, ...

As we become more capable of handling data in every kind, we are becoming more reliant on visual input and what we can do with those self-driving cars, face recognition, and even augmented reality applications and games. This is all powered by Computer Vision.This book will put you straight to work in creating powerful and unique computer vision applications. Each chapter is structured around a central project and deep dives into an important aspect of OpenCV such as facial recognition, image target tracking, making augmented reality applications, the 3D visualization framework, and machine learning. You’ll learn how to make AI that can remember and use neural networks to help your applications learn.By the end of the book, you will have created various working prototypes with the projects in the book and will be well versed with the new features of OpenCV3.

129
Ebook

Mastering Qt 5. Create stunning cross-platform applications using C++ with Qt Widgets and QML with Qt Quick - Second Edition

Guillaume Lazar, Robin Penea

Qt 5.11 is an app development framework that provides a great user experience and develops full capability applications with Qt Widgets, QML, and even Qt 3D. Whether you're building GUI prototypes or fully-fledged cross-platform GUI applications with a native look and feel, Mastering Qt 5 is your fastest, easiest, and most powerful solution. This book addresses various challenges and teaches you to successfully develop cross-platform applications using the Qt framework, with the help of well-organized projects.Working through this book, you will gain a better understanding of the Qt framework, as well as the tools required to resolve serious issues, such as linking, debugging, and multithreading. You'll start off your journey by discovering the new Qt 5.11 features, soon followed by exploring different platforms and learning to tame them. In addition to this, you'll interact with a gamepad using Qt Gamepad. Each chapter is a logical step for you to complete in order to master Qt.By the end of this book, you'll have created an application that has been tested and is ready to be shipped.

130
Ebook

Mastering Rust. Learn about memory safety, type system, concurrency, and the new features of Rust 2018 edition - Second Edition

Rahul Sharma, Vesa Kaihlavirta

Rust is an empowering language that provides a rare combination of safety, speed, and zero-cost abstractions. Mastering Rust – Second Edition is filled with clear and simple explanations of the language features along with real-world examples, showing you how you can build robust, scalable, and reliable programs. This second edition of the book improves upon the previous one and touches on all aspects that make Rust a great language. We have included the features from latest Rust 2018 edition such as the new module system, the smarter compiler, helpful error messages, and the stable procedural macros. You’ll learn how Rust can be used for systems programming, network programming, and even on the web. You’ll also learn techniques such as writing memory-safe code, building idiomatic Rust libraries, writing efficient asynchronous networking code, and advanced macros. The book contains a mix of theory and hands-on tasks so you acquire the skills as well as the knowledge, and it also provides exercises to hammer the concepts in. After reading this book, you will be able to implement Rust for your enterprise projects, write better tests and documentation, design for performance, and write idiomatic Rust code.

131
Ebook

Mastering SFML Game Development. Inject new life and light into your old SFML projects by advancing to the next level

Raimondas Pupius

SFML is a cross-platform software development library written in C++ with bindings available for many programming languages. It provides a simple interface to the various components of your PC, to ease the development of games and multimedia applications. This book will help you become an expert of SFML by using all of its features to its full potential. It begins by going over some of the foundational code necessary in order to make our RPG project run. By the end of chapter 3, we will have successfully picked up and deployed a fast and efficient particle system that makes the game look much more ‘alive’. Throughout the next couple of chapters, you will be successfully editing the game maps with ease, all thanks to the custom tools we’re going to be building. From this point on, it’s all about making the game look good. After being introduced to the use of shaders and raw OpenGL, you will be guided through implementing dynamic scene lighting, the use of normal and specular maps, and dynamic soft shadows. However, no project is complete without being optimized first. The very last chapter will wrap up our project by making it lightning fast and efficient.

132
Ebook

Mastering the C++17 STL. Make full use of the standard library components in C++17

Arthur O'Dwyer

Modern C++ has come a long way since 2011. The latest update, C++17, has just been ratified and several implementations are on the way.This book is your guide to the C++ standard library, including the very latest C++17 features. The book starts by exploring the C++ Standard Template Library in depth. You will learn the key differences between classical polymorphism and generic programming, the foundation of the STL. You will also learn how to use the various algorithms and containers in the STL to suit your programming needs. The next module delves into the tools of modern C++. Here you will learn about algebraic types such as std::optional, vocabulary types such as std::function, smart pointers, and synchronization primitives such as std::atomic and std::mutex. In the final module, you will learn about C++'s support for regular expressions and file I/O. By the end of the book you will be proficient in using the C++17 standard library to implement real programs, and you'll have gained a solid understanding of the library's own internals.

133
Ebook

Microsoft Visual C++ 2012. Praktyczne przykłady

Mariusz Owczarek

Microsoft Visual C++ 2012? To nic trudnego! Poznaj składnię języka C++ i nowości wprowadzane przez standard C++11 Naucz się wykorzystywać typy i konstrukcje programistyczne Dowiedz się, jak tworzyć aplikacje oparte na Windows API i .NET Framework Dostępne od niedawna środowisko Visual C++ 2012 oferuje użytkownikom szereg zupełnie nowych możliwości. Dzięki wprowadzeniu obsługi standardu C++11 i zwiększeniu przejrzystości oraz uniwersalności kodu źródłowego rozwiązanie ugruntowało swoją renomę nowoczesnego i nieustannie rozwijanego narzędzia programistycznego do wszechstronnych zastosowań. Ulepszone i dostosowane do nowych wymagań z powodzeniem może konkurować z innymi środowiskami obecnymi na rynku. Potwierdzają to również takie posunięcia producenta, jak zapewnienie wsparcia dla twórców programów działających w systemie Windows 8 i aplikacji mobilnych uruchamianych na platformie Windows Phone. "Microsoft Visual C++ 2012. Praktyczne przykłady" to doskonały przewodnik dla osób chcących poznać język C++ i zacząć pisać programy w środowisku Visual C++. Książka zawiera dokładny opis składni standardowego języka C++, a także praktyczne wskazówki dotyczące tworzenia aplikacji wykorzystujących Windows API oraz .NET Framework. Podręcznik prezentuje nie tylko podstawowe konstrukcje języka i sposoby ich stosowania, lecz także wprowadza czytelnika w bardziej zaawansowane zagadnienia związane z tworzeniem aplikacji działających w systemach operacyjnych Windows. Każdy omawiany tutaj temat został zilustrowany przykładem umożliwiającym praktyczne utrwalenie poznanych wiadomości teoretycznych. Instalacja i obsługa środowiska Microsoft Visual C++ Struktura programów C++ i konstrukcje języka Przegląd instrukcji i typów wbudowanych Podstawy techniki obiektowej Korzystanie z Windows API Tworzenie aplikacji wyposażonych w GUI Obsługa operacji na plikach Programowanie wielowątkowe Używanie komponentów .NET Framework Chcesz nauczyć się szybko działać w nowym Visual C++? Jesteś na dobrej drodze!

134
Ebook

Microsoft Visual Studio 2012. Programowanie w C i C++

Radosław Sokół

Dołącz do najlepszych, zacznij programować w C i C++! Poznaj środowisko Microsoft Visual Studio 2012! Odkryj uniwersalne narzędzia programistyczne! Naucz się programować w językach C i C++! Informatyka w obecnym kształcie nie mogłaby istnieć bez języków C i C++. Oba miały ogromne znaczenie dla powstania współczesnych systemów operacyjnych i oprogramowania użytkowego. Od systemu UNIX, poprzez Linuksa, aż po różne wersje systemu Windows — wszystkie środowiska w mniejszym lub większym stopniu zostały zbudowane za pomocą C lub C++. Prosta składnia tych języków, ich wysoka wydajność i ogromne możliwości zapewniły im wierną rzeszę profesjonalnych użytkowników, wielką popularność w instytucjach naukowych oraz liczne „potomstwo” w postaci języków programowania wykorzystujących mechanizmy i konstrukcje wprowadzone po raz pierwszy właśnie w C i C++. Jeśli chcesz poznać podstawy programowania przy użyciu najpopularniejszego narzędzia do tworzenia aplikacji dla Windows, nie mogłeś lepiej trafić! Książka Microsoft Visual Studio 2012. Programowanie w C i C++ wprowadzi Cię w świat programowania proceduralnego w C i zorientowanego obiektowo w C++. Dowiesz się, jak zainstalować i wykorzystywać środowisko Visual Studio 2012, poznasz techniki stosowane przez programistów oraz nauczysz się samodzielnie budować programy. Uważna lektura pozwoli Ci opanować języki C i C++ w takim stopniu, aby dalsza nauka nie stanowiła najmniejszego problemu. Przeczytaj i poznaj: metody instalacji i konfiguracji środowiska Visual Studio 2012 sposoby kompilacji, budowania, poprawiania i uruchamiania programów strukturę kodu programów i konstrukcje programistyczne w językach C i C++ instrukcje warunkowe, operatory i funkcje operacje wejścia-wyjścia, strumienie oraz działania na zbiorach danych podstawy programowania zorientowanego obiektowo dziedziczenie i polimorfizm, szablony i iteratory oraz obsługę sytuacji wyjątkowych Programowanie to nic trudnego, przekonaj się o tym jeszcze dziś!

135
Ebook

Modern C++: Efficient and Scalable Application Development. Leverage the modern features of C++ to overcome difficulties in various stages of application development

Richard Grimes, Marius Bancila

C++ is one of the most widely used programming languages. It is fast, flexible, and used to solve many programming problems.This Learning Path gives you an in-depth and hands-on experience of working with C++, using the latest recipes and understanding most recent developments. You will explore C++ programming constructs by learning about language structures, functions, and classes, which will help you identify the execution flow through code. You will also understand the importance of the C++ standard library as well as memory allocation for writing better and faster programs.Modern C++: Efficient and Scalable Application Development deals with the challenges faced with advanced C++ programming. You will work through advanced topics such as multithreading, networking, concurrency, lambda expressions, and many more recipes.By the end of this Learning Path, you will have all the skills to become a master C++ programmer.This Learning Path includes content from the following Packt products:• Beginning C++ Programming by Richard Grimes• Modern C++ Programming Cookbook by Marius Bancila• The Modern C++ Challenge by Marius Bancila

136
Ebook

Modern C++ Programming Cookbook. Master C++ core language and standard library features, with over 100 recipes, updated to C++20 - Second Edition

Marius Bancila

C++ has come a long way to be one of the most widely used general-purpose languages that is fast, efficient, and high-performance at its core.The updated second edition of Modern C++ Programming Cookbook addresses the latest features of C++20, such as modules, concepts, coroutines, and the many additions to the standard library, including ranges and text formatting. The book is organized in the form of practical recipes covering a wide range of problems faced by modern developers.The book also delves into the details of all the core concepts in modern C++ programming, such as functions and classes, iterators and algorithms, streams and the file system, threading and concurrency, smart pointers and move semantics, and many others. It goes into the performance aspects of programming in depth, teaching developers how to write fast and lean code with the help of best practices.Furthermore, the book explores useful patterns and delves into the implementation of many idioms, including pimpl, named parameter, and attorney-client, teaching techniques such as avoiding repetition with the factory pattern. There is also a chapter dedicated to unit testing, where you are introduced to three of the most widely used libraries for C++: Boost.Test, Google Test, and Catch2.By the end of the book, you will be able to effectively leverage the features and techniques of C++11/14/17/20 programming to enhance the performance, scalability, and efficiency of your applications.

137
Ebook

Modern C++ Programming Cookbook. Recipes to explore data structure, multithreading, and networking in C++17

Marius Bancila

C++ is one of the most widely used programming languages. Fast, efficient, and flexible, it is used to solve many problems. The latest versions of C++ have seen programmers change the way they code, giving up on the old-fashioned C-style programming and adopting modern C++ instead.Beginning with the modern language features, each recipe addresses a specific problem, with a discussion that explains the solution and offers insight into how it works. You will learn major concepts about the core programming language as well as common tasks faced while building a wide variety of software. You will learn about concepts such as concurrency, performance, meta-programming, lambda expressions, regular expressions, testing, and many more in the form of recipes. These recipes will ensure you can make your applications robust and fast.By the end of the book, you will understand the newer aspects of C++11/14/17 and will be able to overcome tasks that are time-consuming or would break your stride while developing.

138
Ebook

Modern CMake for C++. Discover a better approach to building, testing, and packaging your software

Rafał Świdziński

Creating top-notch software is an extremely difficult undertaking. Developers researching the subject have difficulty determining which advice is up to date and which approaches have already been replaced by easier, better practices. At the same time, most online resources offer limited explanation, while also lacking the proper context and structure.This book offers a simpler, more comprehensive, experience as it treats the subject of building C++ solutions holistically. Modern CMake for C++ is an end-to-end guide to the automatization of complex tasks, including building, testing, and packaging. You'll not only learn how to use the CMake language in CMake projects, but also discover what makes them maintainable, elegant, and clean. The book also focuses on the structure of source directories, building targets, and packages. As you progress, you’ll learn how to compile and link executables and libraries, how those processes work, and how to optimize builds in CMake for the best results. You'll understand how to use external dependencies in your project – third-party libraries, testing frameworks, program analysis tools, and documentation generators. Finally, you'll get to grips with exporting, installing, and packaging for internal and external purposes.By the end of this book, you’ll be able to use CMake confidently on a professional level.

139
Ebook

Modern CMake for C++. Effortlessly build cutting-edge C++ code and deliver high-quality solutions - Second Edition

Rafał Świdziński, Alexander Kushnir

Modern CMake for C++ isn't just another reference book, or a repackaging of the documentation, but a blueprint to bridging the gap between learning C++ and being able to use it in a professional setting. It's an end-to-end guide to the automation of complex tasks, including building, testing, and packaging software.This second edition is significantly rewritten, restructured and refreshed with latest additions to CMake, such as support of C++20 Modules.In this book, you'll not only learn how to use the CMake language in CMake projects but also discover how to make those projects maintainable, elegant, and clean. As you progress, you'll dive into the structure of source directories, building targets, and packages, all while learning how to compile and link executables and libraries. You'll also gain a deeper understanding of how those processes work and how to optimize builds in CMake for the best results. You'll discover how to use external dependencies in your project – third-party libraries, testing frameworks, program analysis tools, and documentation generators. Finally, you'll gain profi ciency in exporting, installing, and packaging for internal and external purposes.By the end of this book, you'll be able to use CMake confi dently at a professional level.

140
Ebook

Nowoczesne aplikacje internetowe. MongoDB, Express, AngularJS, Node.js

Jeff Dickey

Poznaj nowe podejście do aplikacji internetowych! Tradycyjne aplikacje internetowe składały się z dwóch elementów — ciężkiego back-endu odpowiadającego za przetwarzanie danych, ich walidację i przechowywanie oraz z klienta, którego zadaniem była prosta komunikacja z użytkownikiem. To rozwiązanie rodziło liczne kłopoty — przede wszystkim ze skalowaniem. Od nowoczesnych aplikacji użytkownicy wymagają najwyższej wydajności, niezawodności, możliwości działania w trybie offline oraz wygody użytkowania. Tradycyjne podejście do tworzenia aplikacji już się nie sprawdza. Potrzebujesz czegoś nowego! Na ratunek przychodzi drużyna — MongoDB, Express, AngularJS oraz Node.js. Dzięki temu zestawowi narzędzi będziesz w stanie stworzyć zaawansowaną aplikację z wygodnym interfejsem użytkownika oraz szerokimi możliwościami skalowania. Wystarczy, że sięgniesz po tę książkę i przyswoisz sobie zawartą w niej wiedzę. W publikacji znajdziesz odpowiedź na wiele pytań: Dlaczego warto wybrać AngularJS? Czym się charakteryzują bazy NoSQL? W jakich sytuacjach bazy NoSQL są lepsze od tradycyjnych baz relacyjnych? Dlaczego Node.js jest tak szybki? Ponadto nauczysz się budować wydajne API, integrować Node.js z AngularJS, automatyzować zadania za pomocą pakietu Gulp oraz korzystać z zaawansowanych mechanizmów autoryzacji. Na sam koniec zaznajomisz się z dobrymi praktykami — testami API, klienta oraz uruchomisz przygotowaną aplikację na serwerze produkcyjnym. Ta książka jest doskonałą lekturą, która zaprezentuje Ci każdy z elementów nowoczesnej aplikacji internetowej. Dzięki tej książce: Poznasz możliwości AngularJS oraz Node.js Przekonasz się, dlaczego warto wybrać MongoDB Przygotujesz praktyczne API w Node.js Poznasz narzędzie Gulp Wykorzystasz JSON Web Token do uwierzytelniania Przetestujesz aplikację Nauczysz się tworzyć nowoczesne aplikacje internetowe! Aplikacje internetowe już nigdy nie będą takie same! Jeff Dickey — wszechstronny programista sieciowy. Doświadczenie zdobywał przy pracy z licznymi start-upami z okolic San Francisco i Los Angeles. Obecnie prowadzi zespoły programistów i opracowuje projekty. Unika biurokracji, jest zaangażowany w serię spotkań Code for America Brigade w Los Angeles.

141
Ebook

Nowoczesny C++. Zbiór praktycznych zadań dla przyszłych ekspertów

Marius Bancila

C++ jest dojrzałym językiem programowania, od wielu lat wykorzystywanym przez profesjonalnych programistów do wielu różnych zastosowań, włączając w to pisanie gier, programowanie GUI czy tworzenie złożonych aplikacji użytkowych. Zaprojektowano go pod kątem maksymalizowania wydajności, jest więc najczęściej wybieranym językiem w sytuacjach, w których najważniejsza jest efektywność działania kodu. Aby jednak wykorzystać te zalety C++, trzeba nauczyć się nim posługiwać. A biegłość w posługiwaniu się językiem programowania przychodzi dzięki regularnym ćwiczeniom i ciągłemu testowaniu nabytych umiejętności. Innymi słowy, trzeba rozwiązywać jak najwięcej różnorodnych, rzeczywistych i praktycznych zadań problemowych. W tej książce zawarto zestaw 100 zadań o różnym poziomie trudności, ułożonych w taki sposób, aby podczas rozwiązywania móc skorzystać z bogactwa standardowej biblioteki C++ oraz z wielu zewnętrznych bibliotek wieloplatformowych. Zadania rozmieszczono w 12 rozdziałach, z których każdy dotyczy określonego tematu. Są to problemy, których odpowiednie rozwiązanie warunkuje poprawne działanie aplikacji, takie jak bezpieczna komunikacja, szyfrowanie i autoryzacja danych, korzystanie z wątków i funkcji asynchronicznych czy implementacja algorytmów współbieżnych. Proponowane zagadnienia zostały dokładnie opisane, uwzględniono również szereg zaleceń, wyjaśnień i wskazówek. Na wypadek gdyby wykonanie któregoś zadania sprawiało trudności, do książki dołączono kod źródłowy przykładowych rozwiązań. Ważniejsze zagadnienia ujęte w książce: serializacja i deserializacja danych JSON i XML praca z bazą danych SQLite implementacja takich struktur jak bufor cykliczny i kolejka priorytetowa usługi REST i HTTP wzorce projektowe w rozwiązywaniu problemów Oto C++. Podejmiesz wyzwanie i napiszesz kod!

142
Ebook

Od matematyki do programowania. Wszystko, co każdy programista wiedzieć powinien

Wiesław Rychlicki

"Wędrówka do źródła kodu" Popularna definicja programowania określa je jako "proces projektowania, tworzenia, testowania i utrzymywania kodu źródłowego programów komputerowych lub urządzeń mikroprocesorowych".   Wspomniany kod źródłowy może być napisany w różnych językach programowania, z użyciem określonych reguł. Każdy z języków pozwala na wykorzystanie odpowiednich stylów programowania, a wybór konkretnego języka może zależeć od indywidualnych upodobań, polityki firmy lub funkcji, jakie końcowa aplikacja ma realizować. W zasadzie nie istnieje odpowiedź na pytanie, który z języków jest najlepszy. Dlatego w tej książce nie znajdziesz typowego abecadła. Zapoznasz się za to z danym problemem, a następnie programem komputerowym służącym do jego rozwiązania. Jeśli chcesz wreszcie rozpocząć przygodę z programowaniem i nawiązać dialog ze swoim komputerem, ta publikacja jest właśnie dla Ciebie! Różnorodne obliczenia, mniej lub bardziej skomplikowane, znane Ci z lekcji matematyki lub nieznacznie wykraczające poza program nauczania, stanowią tutaj podstawę do zdobywania informacji na temat programowania w wybranych językach. Wybrane zadania zaprezentowane są w popularnych językach programowania: Pascal, C i C++. Stosowane algorytmy wymagają także sięgnięcia po różne funkcje matematyczne, dostępne standardowo w bibliotekach języków programowania oraz konstruowane na podstawie wzorów. Zostań informatycznym poliglotą. Programuj każdego dnia!

143
Ebook

OpenCV 3 Computer Vision Application Programming Cookbook. Recipes to make your applications see - Third Edition

Robert Laganiere

Making your applications see has never been easier with OpenCV. With it, you can teach your robot how to follow your cat, write a program to correctly identify the members of One Direction, or even help you find the right colors for your redecoration.OpenCV 3 Computer Vision Application Programming Cookbook Third Edition provides a complete introduction to the OpenCV library and explains how to build your first computer vision program. You will be presented with a variety of computer vision algorithms and exposed to important concepts in image and video analysis that will enable you to build your own computer vision applications.This book helps you to get started with the library, and shows you how to install and deploy the OpenCV library to write effective computer vision applications following good programming practices. You will learn how to read and write images and manipulate their pixels. Different techniques for image enhancement and shape analysis will be presented. You will learn how to detect specific image features such as lines, circles or corners. You will be introduced to the concepts of mathematical morphology and image filtering. The most recent methods for image matching and object recognition are described, and you’ll discover how to process video from files or cameras, as well as how to detect and track moving objects. Techniques to achieve camera calibration and perform multiple-view analysis will also be explained. Finally, you’ll also get acquainted with recent approaches in machine learning and object classification.

144
Ebook

OpenCV 3. Komputerowe rozpoznawanie obrazu w C++ przy użyciu biblioteki OpenCV

Adrian Kaehler, Gary Bradski

Komputerowe rozpoznawanie obrazów przechodzi dziś fazę burzliwego rozwoju. Przyczyniają się do tego ogromna popularność cyfrowych aparatów fotograficznych, wielka liczba grafik zgromadzonych w obszernych internetowych bazach danych, a przede wszystkim coraz doskonalsze algorytmy przetwarzania obrazu. W rozwijaniu tej technologii wielką rolę odegrała biblioteka OpenCV, usprawniając pracę setek tysięcy ludzi. OpenCV 3.x ułatwia efektywne rozwijanie projektów dzięki opartej na języku C++ spójnej architekturze, która doskonale działa na wielu platformach. Ta książka, przeznaczona dla osób znających język C++, jest praktycznym wprowadzeniem do otwartej biblioteki OpenCV w wersji 3.x. Zawiera też podstawowe informacje na temat komputerowego rozpoznawania obrazu, co powinno ułatwić efektywne posługiwanie się tą biblioteką. Sama biblioteka OpenCV została przedstawiona w sposób umożliwiający bardzo szybkie rozpoczęcie pracy. Książka ułatwia naturalne zrozumienie działania algorytmów, dzięki czemu projektowanie i debugowanie aplikacji nie powinno sprawiać problemów. W ten sposób książka ta staje się świetnym przygotowaniem do zgłębienia bardziej zaawansowanych zagadnień komputerowego rozpoznawania obrazu i uczenia maszynowego. Najważniejsze zagadnienia: Przegląd biblioteki OpenCV i zawarte w niej funkcje Praca z plikami obrazów, filmów i danych oraz przekształcanie obrazów Ważniejsze algorytmy do pracy na obrazach Punkty kluczowe: wykrywanie i filtrowanie Trójwymiarowe widzenie, ruch, określanie pozycji Uczenie maszyn w OpenCV OpenCV: poznaj i stosuj algorytmy przetwarzania obrazów! Adrian Kaehler jest naukowcem i założycielem start-upów. Zajmuje się uczeniem maszynowym, modelowaniem statystycznym i komputerowym rozpoznawaniem obrazu. Pracuje w Intel Corporation i w Laboratorium Sztucznej Inteligencji Uniwersytetu Stanforda. Współzakładał Silicon Valley Deep Learning Group. Gary Rost Bradski jest naukowcem i konsultantem. Zajmuje się robotyką, uczeniem maszynowym i komputerowym rozpoznawaniem obrazów. Pracuje w Laboratorium Sztucznej Inteligencji Uniwersytetu Stanforda. Współtworzył takie biblioteki jak Open Source Computer Vision Library, Machine Learning Library i Probabilistic Network Library (PNL).