Inne - Програмування

569
Eлектронна книга

The Art of Writing Efficient Programs. An advanced programmer's guide to efficient hardware utilization and compiler optimizations using C++ examples

Fedor G. Pikus

The great free lunch of performance taking care of itself is over. Until recently, programs got faster by themselves as CPUs were upgraded, but that doesn't happen anymore. The clock frequency of new processors has almost peaked, and while new architectures provide small improvements to existing programs, this only helps slightly. To write efficient software, you now have to know how to program by making good use of the available computing resources, and this book will teach you how to do that.The Art of Efficient Programming covers all the major aspects of writing efficient programs, such as using CPU resources and memory efficiently, avoiding unnecessary computations, measuring performance, and how to put concurrency and multithreading to good use. You'll also learn about compiler optimizations and how to use the programming language (C++) more efficiently. Finally, you'll understand how design decisions impact performance.By the end of this book, you'll not only have enough knowledge of processors and compilers to write efficient programs, but you'll also be able to understand which techniques to use and what to measure while improving performance. At its core, this book is about learning how to learn.

570
Eлектронна книга

The Complete Edition - Software Engineering for Real-Time Systems. A software engineering perspective toward designing real-time systems

Jim Cooling

From air traffic control systems to network multimedia systems, real-time systems are everywhere. The correctness of the real-time system depends on the physical instant and the logical results of the computations. This book provides an elaborate introduction to software engineering for real-time systems, including a range of activities and methods required to produce a great real-time system.The book kicks off by describing real-time systems, their applications, and their impact on software design. You will learn the concepts of software and program design, as well as the different types of programming, software errors, and software life cycles, and how a multitasking structure benefits a system design.Moving ahead, you will learn why diagrams and diagramming plays a critical role in the software development process. You will practice documenting code-related work using Unified Modeling Language (UML), and analyze and test source code in both host and target systems to understand why performance is a key design-driver in applications.Next, you will develop a design strategy to overcome critical and fault-tolerant systems, and learn the importance of documentation in system design.By the end of this book, you will have sound knowledge and skills for developing real-time embedded systems.

571
Eлектронна книга

The Complete Rust Programming Reference Guide. Design, develop, and deploy effective software systems using the advanced constructs of Rust

Rahul Sharma, Vesa Kaihlavirta, Claus Matzinger

Rust is a powerful language with a rare combination of safety, speed, and zero-cost abstractions. This Learning Path is filled with clear and simple explanations of its features along with real-world examples, demonstrating how you can build robust, scalable, and reliable programs.You’ll get started with an introduction to Rust data structures, algorithms, and essential language constructs. Next, you will understand how to store data using linked lists, arrays, stacks, and queues. You’ll also learn to implement sorting and searching algorithms, such as Brute Force algorithms, Greedy algorithms, Dynamic Programming, and Backtracking. As you progress, you’ll pick up on using Rust for systems programming, network programming, and the web. You’ll then move on to discover a variety of techniques, right from writing memory-safe code, to building idiomatic Rust libraries, and even advanced macros. By the end of this Learning Path, you’ll be able to implement Rust for enterprise projects, writing better tests and documentation, designing for performance, and creating idiomatic Rust code.This Learning Path includes content from the following Packt products:• Mastering Rust - Second Edition by Rahul Sharma and Vesa Kaihlavirta• Hands-On Data Structures and Algorithms with Rust by Claus Matzinger

572
Eлектронна книга

The DevOps 2.3 Toolkit. Kubernetes: Deploying and managing highly-available and fault-tolerant applications at scale

Viktor Farcic

Building on The DevOps 2.0 Toolkit, The DevOps 2.1 Toolkit: Docker Swarm, and The DevOps 2.2 Toolkit: Self-Sufficient Docker Clusters, Viktor Farcic brings his latest exploration of the DevOps Toolkit as he takes you on a journey to explore the features of Kubernetes.The DevOps 2.3 Toolkit: Kubernetes is a book in the series that helps you build a full DevOps Toolkit. This book in the series looks at Kubernetes, the tool designed to, among other roles, make it easier in the creation and deployment of highly available and fault-tolerant applications at scale, with zero downtime.Within this book, Viktor will cover a wide range of emerging topics, including what exactly Kubernetes is, how to use both first and third-party add-ons for projects, and how to get the skills to be able to call yourself a “Kubernetes ninja.” Work with Viktor and dive into the creation and exploration of Kubernetes with a series of hands-on guides.

573
Eлектронна книга

The Reinforcement Learning Workshop. Learn how to apply cutting-edge reinforcement learning algorithms to a wide range of control problems

Alessandro Palmas, Emanuele Ghelfi, Dr. Alexandra Galina Petre, Mayur Kulkarni, ...

Various intelligent applications such as video games, inventory management software, warehouse robots, and translation tools use reinforcement learning (RL) to make decisions and perform actions that maximize the probability of the desired outcome. This book will help you to get to grips with the techniques and the algorithms for implementing RL in your machine learning models.Starting with an introduction to RL, youÔÇÖll be guided through different RL environments and frameworks. YouÔÇÖll learn how to implement your own custom environments and use OpenAI baselines to run RL algorithms. Once youÔÇÖve explored classic RL techniques such as Dynamic Programming, Monte Carlo, and TD Learning, youÔÇÖll understand when to apply the different deep learning methods in RL and advance to deep Q-learning. The book will even help you understand the different stages of machine-based problem-solving by using DARQN on a popular video game Breakout. Finally, youÔÇÖll find out when to use a policy-based method to tackle an RL problem.By the end of The Reinforcement Learning Workshop, youÔÇÖll be equipped with the knowledge and skills needed to solve challenging problems using reinforcement learning.

574
Eлектронна книга

Trino Profesjonalny przewodnik. SQL w dowolnej skali, w dowolnym magazynie i w dowolnym środowisku

Matt Fuller, Manfred Moser, Martin Traverso

Za pomocą Trino, wysoce wydajnego, rozproszonego silnika zapytań SQL, przeprowadzisz szybkie, interaktywne analizy różnorodnych źródeł danych. W drugim wydaniu tego praktycznego przewodnika dowiesz się, jak analizować dane w miejscu, w którym się znajdują, niezależnie czy jest to jezioro danych obsługiwane przez system Hive, nowoczesny lakehouse obsługiwany przez tabele Iceberg lub usługę Delta Lake, inny system, taki jak Cassandra, Kafka lub SingleStore, czy może relacyjna baza danych, taka jak PostgreSQL lub Oracle. Analitycy, inżynierowie oprogramowania i produkcji dowiedzą się, jak zarządzać Trino, jak go używać i tworzyć za jego pomocą nowe rozwiązania, a także jak uczynić to narzędzie kluczowym elementem swojej platformy danych. Autorzy, Matt Fuller, Manfred Moser i Martin Traverso pokazują, jak w jednym zapytaniu Trino połączyć dane z wielu źródeł, aby dokonać analizy danych z całej organizacji. - Poznasz przypadki użycia Trino i narzędzia, za pomocą których połączysz się z Trino, aby przeszukiwać i przetwarzać ogromne ilości danych. - Dowiesz się, jak działa Trino, uwzględniając sposoby łączenia się ze źródłami danych i ich przeszukiwania za pomocą instrukcji SQL, operatorów, funkcji i innych mechanizmów - Wdrożysz i zadbasz o zabezpieczenie Trino na dużą skalę, będziesz monitorować obciążenie, dostrajać zapytania i dołączać dodatkowe aplikacje - Dowiesz się, jak inne organizacje z powodzeniem wykorzystują Trino "Trino odgrywa kluczową rolę w analizie danych w witrynie Pinterest. Ta książka opisuje najważniejsze aspekty Trino, począwszy od przypadków użycia, po wykorzystanie Trino w wielkoskalowych projektach." -Ashish Kumar Singh Lider techniczny, Big Data Query Processing Platform, Pinterest "Ta książka jest obowiązkową lekturą dla firm, które chcą unowocześnić swój stos technologiczny do analizy danych." -Jay Kreps Współtwórca Apache Kafka oraz współzałożyciel firmy Confluent i jej dyrektor ds. technicznych Matt Fuller jest współzałożycielem firmy Starburst, zajmującej się analizą danych. Manfred Moser jest rzecznikiem społeczności, pisarzem, szkoleniowcem i inżynierem oprogramowania w firmie Starbust. Martin Traverso jest współzałożycielem fundacji Trino Software Foundation, dyrektorem ds. technicznych w firmie Starburst i współtwórcą Trino.

575
Eлектронна книга

Tworzenie aplikacji dla systemu Windows 8. Zaprojektuj, napisz i opublikuj swoją aplikację

Rafał Madycki, Michał Guzowski, Maciej Jaskólski

Aplikacje dla systemu Windows 8 - podejmij wyzwanie! Jak pisać aplikacje dla systemu Windows 8 z wykorzystaniem API Windows Runtime? Jak stworzyć pożądane opcje i nadać aplikacji wygląd zgodny z zasadami nowoczesnego stylu projektu Microsoft? Jak wykorzystać usługi online i opublikować aplikację w sieci? Tworzenie aplikacji dla nowego systemu operacyjnego firmy Microsoft to całkiem ciekawa (a czasem także intratna) perspektywa dla programistów chcących dotrzymać kroku zmieniającym się technologiom i wyjść naprzeciw potrzebom użytkowników. Platforma Windows 8, z zupełnie odmienionym interfejsem, oferuje nowe możliwości, m.in. w zakresie wykorzystania ekranów dotykowych czy integracji między aplikacją i systemem, ale jednocześnie wymaga od projektantów dostosowania się do nowych reguł gry, by pisane przez nich aplikacje nie odbiegały jakością, wyglądem i sposobem działania od reszty elementów charakterystycznych dla tej wersji systemu Windows. Jeśli chcesz pisać takie programy i umieszczać je w Sklepie Windows, koniecznie musisz zacząć od tej książki. Dzięki niej zbudujesz od podstaw własną aplikację! Znajdziesz tu informacje na temat platformy tworzenia aplikacji dla systemu Windows 8, nauczysz się budować układ aplikacji, projektować jej wygląd i zapewniać funkcjonalność. Zrozumiesz, jak ważne są kwestie zarządzania danymi i ich wymiany, jak wykorzystać potęgę internetu do wspomagania pracy Twojej aplikacji, jak działają zadania w tle. Dowiesz się także, jak opublikować gotową aplikację w Sklepie Windows. Prawda, że warto? Platforma tworzenia aplikacji w systemie Windows 8 Wymagania certyfikacyjne aplikacji dla systemu Windows 8 Tworzenie aplikacji dla systemu Windows 8 Wygląd aplikacji Możliwości aplikacji dla systemu Windows 8 Zarządzanie danymi i synchronizacja z chmurą Współpraca z usługami online Powiadomienia Zadania w tle Publikacja w Sklepie Windows Bądź na bieżąco, twórz aplikacje dla systemu Windows 8!

576
Eлектронна книга

Tworzenie aplikacji dla Windows. Od prostych programów do gier komputerowych

Paweł Borkowski

Poznaj tajniki tworzenia aplikacji dla Windows Jak określić położenie, rozmiar i styl okna? Jak tworzyć wątki aplikacji za pomocą funkcji CreateThread? Jak definiować biblioteki? Dev-C++ to zintegrowane środowisko programistyczne, którego niewątpliwym atutem są tzw. DevPaki, czyli rozszerzenia programu, pozwalające korzystać z różnych bibliotek, szablonów i narzędzi. Środowisko Dev-C++ wspomaga także pracę nad nowym projektem Windows -- gotowym kodem tworzącym okno z obsługą podstawowych komunikatów. Wszystko to sprawia, że mamy do czynienia z wygodnym i funkcjonalnym środowiskiem, zarówno dla początkujących, jak i zaawansowanych programistów. Z książki "Tworzenie aplikacji dla Windows. Od prostych programów do gier komputerowych" może skorzystać każdy, kto chce nauczyć się programowania: zarówno studenci kierunków informatycznych, jak i osoby, które nie mają takiego przygotowania. Podręcznik kolejno odsłania poszczególne elementy wiedzy programistycznej -- od najprostszych po najbardziej zaawansowane. Dowiesz się więc, jak wprowadzać niewielkie zmiany w kodzie, jak projektować aplikacje wielowątkowe i definiować biblioteki, jak budować duże, składające się z kilku plików projekty, aby na koniec samodzielnie stworzyć grę komputerową. Instalacja środowiska Dev-C++ Tworzenie narzędzia pióro Obsługa map bitowych Obsługa komunikatów myszy i klawiatury Obiekty sterujące w oknie Menu i plik zasobów Projektowanie aplikacji wielowątkowych Biblioteki statyczne i dynamiczne Multimedia Programowanie gier Naucz się programowania i twórz własne gry!