Interprocess Communication with Macos
Build highly modular software in macOS that interacts deeply and intuitively with other programs. This book explores all techniques available for Inter-process communications (IPC) from high level macOS layers to deep kernel options while applying theoretical concepts into practical implementations on real world scenarios.You'll see how IPC techniques are used for exchanging data and messages among multiple threads in one or more processes, which may be running on one or more computers connected by a network or running locally. IPC methods can be divided into methods for message passing, synchronization, shared memory, and remote procedure calls (RPC). A poorly conceived IPC can even expose an entire network to over-the-network attacks. Despite the risks, processes and applications absolutely need to communicate with each other across your system and the network. You'll see how these communications facilitate information sharing, computational speedup, modularity, convenience, and privilege separation. In macOS, a program has a number of ways to communicate with other programs. These mechanisms for IPC often exist in different layers of the system. You'll examine how each has its own specific purposes, limitations, and intended scenarios. Some are more suitable than others for code written at a certain level of the system. For example, a kernel extension would not make use of Apple events. Additionally, the book reveals that different users have different rights when it comes to accessing files, changing system wide settings, and so on, depending on whether they are admin users or ordinary users. Running code with root or administrative privileges can intensify the dangers posed by security vulnerabilities. You'll learn that to elevate privileges safely, it is mandatory for the application to perform the task through a secure Helper process.What You'll LearnExpand the capabilities of your programs by sharing data within multiple applicationsUnderstand and dig deep into the world of Helper tools to create apps that need user privilege elevationEnhance the modularity of a system by allowing your applications to interact and share data with a websiteWho This Book Is ForSoftware engineers and architects designing and developing secure applications for macOS and iOS who have hands-on knowledge of Swift with XCode.
Mastering Swift Package Manager
Maintaining an iOS project often results in thousands of code files scattered around your folders. Did you ever wanted to reuse those files with other projects but found yourself making copies of Swift files? You are not alone! Many iOS developers struggle with this issue as well--unorganized projects, duplicated files, difficulty in testing, and long complication times. This book will show how Swift Package Manager can help you handle these problems by restructuring your project to make it efficient and straightforward. Swift Package Manager isn't magic, but you'll likely need a little guidance in using this nifty tool. You'll see how to reorganize projects smartly and efficiently, create your first Swift package, and learn what libraries are in this context. Then share your package with the rest of your projects. Next test your library's quality. And then take your library to the next level of power by including files that go beyond just code. By going over the methodology of big project organization, you will have the ability to extend your project into the future as Apple sees it. Make no mistake--the path for a modular and flexible project is not easy. With the help of Swift Package Manager, it becomes possible and worth it. What You'll LearnCreate a Swift package both from the command line and from Xcode Manage Swift packages in public and private Git repositories Build test suites to test integrations between packagesWho This Book Is For Senior iOS developers and team leaders who already have professional experience with Swift.
Application and Theory of Petri Nets and Concurrency
This book constitutes the proceedings of the 42nd International Conference on Application and Theory of Petri Nets and Concurrency, PETRI NETS 2021, which was held virtually in June 2021.The 22 full papers presented together with 2 keynote papers in this volume were carefully reviewed and selected from 39 submissions. The focus of the conference is on the following topics: application of concurrency to system design; games; verification; synthesis and mining; reachability and partial order; semantics; and tools.
End-User Development
This book constitutes the proceedings of the 8th International Conference on End-User Development, IS-EUD 2021, held in July 2021. Due to COVID-19 pandemic the conference was held virtually.The paper track received 26 submissions, of which 11 full and 4 short papers were selected after a rigorous double-blind review process. The papers focus on "Democratizing AI development", namely on EUD for AI-based systems, where end users are called-on to become end-user developers of intelligent agents, digital twins, collaborative systems and social robots.
React to Python
Learn to create responsive front-end web applications in Python using the React and Material-UI JavaScript libraries without having to program in JavaScript! How is this possible? By using the Transcrypt transpiler that turns your Python code into JavaScript.Let's face it, JavaScript is the way of the web, and Python doesn't run in a web browser. BUT, just like the popular TypeScript language that gets compiled into JavaScript to run in a web browser, Transcrypt does the same thing for Python. Because of the way Transcrypt maps Python data types and language constructs to JavaScript, your Python code is able to directly utilize the full ecosystem of JavaScript libraries that exist, taking advantage of existing web application technologies rather than trying to replace them.Using a Python-centric viewpoint, this book outlines the developer tools and software libraries needed to develop front-end web applications with Python, specifically focusing on the popular React library and open-source Material-UI library that includes a collection of React components based on Google's Material Design user interface specification. In addition to chapters covering how to implement specific application features, in a learn-by-doing fashion, the last section of the book walks you through building a fully functional example application from start to finish, giving you an idea of how everything fits together.While this book isn't necessarily meant for beginning programmers, if you are already familiar with Python and want to create front-end web applications but don't want to have to delve into the complexities of a full JavaScript ecosystem, don't want to have to keep switching back and forth between languages for the same full-stack application, or if you just don't care to program in JavaScript in general, the approach taken in this book gives you another option using Python.
NASA Formal Methods
This book constitutes the proceedings of the 13th International Symposium on NASA Formal Methods, NFM 2021, held virtually in May 2021.The 21 full and 3 short papers presented in this volume were carefully reviewed and selected from 66 submissions. The papers aim to identify challenges and provide solutions to achieve assurance in mission-critical and safety-critical systems. Examples of such systems include advanced separation assurance algorithms for aircraft, next-generation air transportation, autonomous rendezvous and docking of spacecraft, on-board software for unmanned aerial systems (UAS), UAS traffic management, autonomous robots, and systems for fault detection, diagnosis, and prognostics.
Multi-Site Network and Security Services with Nsx-T
Know the basics of network security services and other stateful services such as NAT, gateway and distributed firewalls (L2-L7), virtual private networks (VPN), load balancing (LB), and IP address management. This book covers these network and security services and how NSX-T also offers integration and interoperability with various other products that are not only created by VMware, but are also referred by VMware as third-party integrated vendors.With the integration of VMware vRealize Automation, you can automate full application platforms consisting of multiple virtual machines with network and security services orchestrated and fully automated.From the operational perspective, this book provides best practices on how to configure logging, notification, and monitoring features and teaches you how to get the required visibility of not only your NSX-T platform but also your NSX-T-enabled network infrastructure.Another key part of this book is the explanation of multi-site capabilities and how network and security services can be offered across multiple on-premises locations with a single management pane. Interface with public cloud services also is included. The current position of NSX-T operation in on-premises private clouds and the position and integration with off-premises public clouds are covered as well.This book provides a good understanding of integrations with other software to bring the best out of NSX-T and offer even more features and capabilities.What You Will LearnUnderstand the NSX-T security firewall and advanced securityBecome familiar with NAT, DNS, DHCP, and load balancing featuresMonitor your NSX-T environmentBe aware of NSX-T authentication and authorization possibilitiesUnderstand integration with cloud automation platformsKnow what multi-cloud integrations are possible and how to integrate NSX-T with the public cloud Who This Book Is ForVirtualization administrators, system integrators
So You Want To Be A Game Developer
Get ready to become a game developer! We'll be starting from the absolute basics, no prior experience with math, programming, or design is necessary. Along this journey, you'll learn real game development skills, how to use GameMaker Studio, hear from a wide variety of other game developers and artists, all while learning the skills you need to create the game of your dreams.
A Gentle Introduction to Statistics Using SAS Studio in the Cloud
Point and click your way to performing statistics! Many people are intimidated by learning statistics, but A Gentle Introduction to Statistics Using SAS Studio in the Cloud is here to help. Whether you need to perform statistical analysis for a project or, perhaps, for a course in education, psychology, sociology, economics, or any other field that requires basic statistical skills, this book teaches the fundamentals of statistics, from designing your experiment through calculating logistic regressions. Serving as an introduction to many common statistical tests and principles, it explains concepts in an intuitive way with little math and very few formulas. The book is full of examples demonstrating the use of SAS Studio's easy point-and-click interface accessed with SAS OnDemand for Academics, an online delivery platform for teaching and learning statistical analysis that provides free access to SAS software via the cloud. Topics included in this book are: How to access SAS OnDemand for Academics Descriptive statistics One-sample tests T tests (for independent or paired samples) One-way analysis of variance (ANOVA) N-way ANOVA Correlation analysis Simple and multiple linear regression Binary logistic regression Categorical data, including two-way tables and chi-square Power and sample size calculations Questions are provided to test your knowledge and practice your skills
Functional and Constraint Logic Programming
This book constitutes the refereed post-conference proceedings of the 28th International Workshop on Functional and Constraint Logic Programming, WFLP 2020, held in Bologna, Italy, in September 2020.Due to the COVID-19, the workshop was held online. From the 19 full papers submitted, 8 were accepted for presentation at the workshop. The accepted papers cover different programming areas of functional and logic programming, including code generation, verification, and debugging.
Model and Data Engineering
This book constitutes the refereed proceedings of the 10th International Conference on Model and Data Engineering, MEDI 2021, held in Tallinn, Estonia, in June 2021. The 16 full papers and 8 short papers presented in this book were carefully reviewed and selected from 47 submissions. Additionally, the volume includes 3 abstracts of invited talks. The papers cover broad research areas on both theoretical, systems and practical aspects. Some papers include mining complex databases, concurrent systems, machine learning, swarm optimization, query processing, semantic web, graph databases, formal methods, model-driven engineering, blockchain, cyber physical systems, IoT applications, and smart systems.Due to the Corona pandemic the conference was held virtually.
Agile Processes in Software Engineering and Extreme Programming
This open access book constitutes the proceedings of the 22nd International Conference on Agile Software Development, XP 2021, which was held virtually during June 14-18, 2021.XP is the premier agile software development conference combining research and practice. It is a unique forum where agile researchers, practitioners, thought leaders, coaches, and trainers get together to present and discuss their most recent innovations, research results, experiences, concerns, challenges, and trends. XP conferences provide an informal environment to learn and trigger discussions and welcome both people new to agile and seasoned agile practitioners. This year's conference was held with the theme "Agile Turns Twenty While the World Goes Online". The 11 full and 2 short papers presented in this volume were carefully reviewed and selected from 38 submissions. They were organized in topical sections named: agile practices; process assessment; large-scale agile; and short contributions.
Nonfunctional Requirements in Mobile Application Development
Nonfunctional Requirements in Mobile Application Development is an empirical study of how non-functional requirements get the attention of software engineers during the development of mobile apps, especially m-commerce apps, in relation to functional apps.
DevOps Leadership - Steps For the Introduction and Implementation of DevOps
DevOps is on everyone's lips. It is often presented in a very technical way, whether in terms of the methods and frameworks to be used or in terms of techniques and development frameworks. Martin J. Adams is a proven expert on agile approaches, especially on the topics of "leadership" and "organizational development". In this volume, he presents the most important methods in the context of DevOps and the resulting measures and methods for leaders who want to support their teams in being successful with DevOps and thus make a valuable contribution to the success of the company.
Software Metrics
Reflecting the immense progress in the development and use of software metrics in the past decades, this third edition provides an up-to-date, accessible, and comprehensive introduction to software metrics. This edition contains new material relevant to object-oriented design, design patterns, model-driven development, and agile development proc
Powershell Pocket Reference
This portable reference to PowerShell summarizes the command shell and scripting language and provides a concise guide to the many tasks that make PowerShell so useful. If you're a busy administrator and don't have time to plow through huge books or in-depth online searches, this is the ideal on-the-job tool. Written by PowerShell team member Lee Holmes and excerpted from his PowerShell Cookbook, this edition offers up-to-date coverage of Windows PowerShell 5.1 and open source PowerShell Core up to 7 and beyond. Beginning with a guided tour of PowerShell, this handy guide covers: PowerShell language and environment Regular expression reference XPath quick reference .NET string formatting .NET DateTime formatting Selected .NET classes and their uses WMI reference Selected COM objects and their uses Standard PowerShell verbs
Foundations of Object-Oriented Languages
A presentation of the formal underpinnings of object-oriented programming languages.In recent years, object-oriented programming has emerged as the dominant computer programming style, and object-oriented languages such as C++ and Java enjoy wide use in academia and industry. This text explores the formal underpinnings of object-oriented languages to help the reader understand the fundamental concepts of these languages and the design decisions behind them. The text begins by analyzing existing object-oriented languages, paying special attention to their type systems and impediments to expressiveness. It then examines two key features: subtypes and subclasses. After a brief introduction to the lambda calculus, it presents a prototypical object-oriented language, SOOL, with a simple type system similar to those of class-based object-oriented languages in common use. The text offers proof that the type system is sound by showing that the semantics preserves typing information. It concludes with a discussion of desirable features, such as parametric polymorphism and a MyType construct, that are not yet included in most statically typed object-oriented languages.
Parallel Programming Using C++
Foreword by Bjarne Stroustrup Software is generally acknowledged to be the single greatest obstacle preventing mainstream adoption of massively-parallel computing. While sequential applications are routinely ported to platforms ranging from PCs to mainframes, most parallel programs only ever run on one type of machine. One reason for this is that most parallel programming systems have failed to insulate their users from the architectures of the machines on which they have run. Those that have been platform-independent have usually also had poor performance. Many researchers now believe that object-oriented languages may offer a solution. By hiding the architecture-specific constructs required for high performance inside platform-independent abstractions, parallel object-oriented programming systems may be able to combine the speed of massively-parallel computing with the comfort of sequential programming. Parallel Programming Using C++ describes fifteen parallel programming systems based on C++, the most popular object-oriented language of today. These systems cover the whole spectrum of parallel programming paradigms, from data parallelism through dataflow and distributed shared memory to message-passing control parallelism. For the parallel programming community, a common parallel application is discussed in each chapter, as part of the description of the system itself. By comparing the implementations of the polygon overlay problem in each system, the reader can get a better sense of their expressiveness and functionality for a common problem. For the systems community, the chapters contain a discussion of the implementation of the various compilers and runtime systems. In addition to discussing the performance of polygon overlay, several of the contributors also discuss the performance of other, more substantial, applications. For the research community, the contributors discuss the motivations for and philosophy of their systems. As well, many of the chapters include critiques that complete the research arc by pointing out possible future research directions. Finally, for the object-oriented community, there are many examples of how encapsulation, inheritance, and polymorphism can be used to control the complexity of developing, debugging, and tuning parallel software.
CommonSensical Product Ownership
CommonSensical Approach To Product Ownership is a guide to simplify and demystify product ownership. This eBook is about blending the best practices of scrum and product ownership with a little common sense. As Product Owners, our experience and interactions with others have made us forget or put aside the basics and even forget things that were once simple and easy. My goal with this book and this series is to reconnect you with your own good thinking; your good friend and mine-Common Sense.I want you to realize there is nothing common about common senseI want you to learn from my mistakes and experienceI want you to learn how to balance the needs of the team and product with your available time and resourcesAfter reading this book you will: Learn What is Expected of a Product OwnerHave New Tricks For Managing Your Product BacklogImprove Your Communication & CollaborationLearn How To Say No and Deliver Bad NewsRecognize the Common Mistakes and How To Avoid ThemThis book is not meant to replace the basics of product ownership. It is about combining the best practices from centers of excellence, advice from industry experts, with some much needed common sense. By combining these principles you and your team will be more efficient and happier while delivering a first in class product.
Essential Typescript 4
Learn the essentials and more of TypeScript, a popular superset of the JavaScript language that adds support for static typing. TypeScript combines the typing features of C# or Java with the flexibility of JavaScript, reducing typing errors and providing an easier path to JavaScript development.Author Adam Freeman explains how to get the most from TypeScript 4 in this second edition of his best-selling book. He begins by describing the TypeScript language and the benefits it offers and then shows you how to use TypeScript in real-world scenarios, including development with the DOM API, and popular frameworks such as Angular and React. He starts from the nuts-and-bolts and builds up to the most advanced and sophisticated features.Each topic is covered clearly and concisely, and is packed with the details you need to be effective. The most important features are given a no-nonsense, in-depth treatment and chapters include common problems and teach you how to avoid them. What You Will LearnGain a solid understanding of the TypeScript language and toolsUse TypeScript for client- and server-side developmentExtend and customize TypeScriptTest your TypeScript codeApply TypeScript with the DOM API, Angular, React, and Vue.js Who This Book Is ForJavaScript developers who want to use TypeScript to create client-side or server-side applications
Practical Internet Server Configuration
Learn the skills to complete the full installation, configuration, and maintenance of an enterprise class internet server, no matter what Unix-like operating system you prefer. This book will rapidly guide you towards real system administration, with clear explanations along the way.After a chapter explaining the most important Unix basics, you will start with a vanilla server as delivered by a hosting provider and by the end of the book, you will have a fully functional and well-secured enterprise class internet server. You will also be equipped with the expertise needed to keep your server secured and up to date. All configuration examples are given for FreeBSD, Debian and CentOS, so you are free to choose your operating system. No single blueprint exists for an internet server, and an important part of the work of a system administrator consists of analyzing, interpreting and implementing specific wishes, demands and restrictions from different departmentsand viewpoints within an organization. Practical Internet Server Configuration provides the information you need to succeed as a sysadmin. What You'll Learn Configure DNS using Bind 9Set up Apache and NginxCustomize a mail server: IMAP (Dovecot) and SMTP (Postfix), spam filtering includedAuthenticate mail users using LDAPInstall and maintain MariaDB and PostgreSQL databasesPrepare SSL/TLS certificates for the encryption of web, mail and LDAP trafficSynchronize files, calendars and address books between devicesBuild a firewall: PF for FreeBSD and nftables for Linux Who This Book Is For This book can be used by aspiring and beginning system administrators who are working on personal servers, or more experienced system administrators who may know Unix well but need a reference book for the more specialized work that falls outside the daily routine. Basic understanding of Unix and working on the command line is necessary.
Requirements Engineering: Foundation for Software Quality
This book constitutes the proceedings of the 27th International Working Conference on Requirements Engineering - Foundation for Software Quality, REFSQ 2021, which was due to be held in Essen, Germany, in April 2021. Due to the COVID-19 pandemic the conference was held virtually in April 2021. The special focus of this year`s REFSQ 2021 conference are contributions emphasizing the importance of human values, such as privacy and fairness, when designing software-intensive systems as well as the challenges that intelligent and autonomous systems pose due to the tight interplay with humans.
Real Programming
Based on the Norwegian version, this is a book about real programming for real programmers. Or for those who have an interest in programming but have grown tired of the available selection in bookstores. Yes, they still exist. Bookstores, I mean. And books. Real programming has existed since the dawn of time, a.k.a. the mid 70s with the launch of the 6502 and Z80 CPUs. Back then, code was written by hackers in real languages like assembler and C. With the launch of the 68000 based Commodore Amiga in the 80s, another hacker revolution was born. Unfortunately, in the middle of the 90s the internet grew popular and ruined it. And then the smartphones ruined it all again in 2007. Someone had the dubious idea that programming should be easy and for everybody, and new programming languages and methods were developed with that in mind. Corneliusen and Julin claim the result was a disaster, since everything, at best, turned average: The code, the speed, the programmers, the managers, and the salary. And people still wonder why their smartphone batteries drain so quickly. Or why companies flush money down the toilet by writing software in programming languages similar to Duplo, and then run them in the cloud where they pay per CPU second used. Programming is like playing a guitar: It's possible to do it for years without becoming better than well below average. To be really good, everything has to be questioned. And that's what this book is about: Instead of forcing the reader to memorize complex methods and formulas, assorted problems are broken down to their essence and reassembled in new ways. Not because it's necessary, but because it's important to figure out how things work. The authors claim that by doing this, even the hardest problems become simple. Sometimes the presented solutions are improvements, and sometimes they're just entertaining. It should be noted that the book contains a lot of real code in C, Assembler, and GLSL for the architectures ARM and Neon, Intel SSE2 and AVX2, and the slightly obscure mega-multicore CPU formerly known as the Tilera TILE-Gx.
Modelling to Program
This book constitutes revised selected papers from the Second International Workshop on Modelling to Program, M2P 2020, held in Lappeenranta, Finland, in March 2020.The 10 papers presented were thoroughly reviewed and selected from 24 submissions. The papers provide a discussion on novel approaches to programming based on modelling approaches such as model-driven development (MDE, MDA, MDD) and conceptual-model programming and their future developments. The topics of the papers include notions of models that can be understood and used as programs, models-at-runtime, advanced conceptual modelling, conceptual-model programming, modelling foundation, transformation of models to programs, model suites/ensembles for programmers, modelling as the first step to programming and its revisions, advanced model-driven programming and software modernisation, modelling in applications.
Pure Data
The book is an overview of the theory and practice of Pure Data, with a glossary of terms and suggested tests that allow students to evaluate their progress. Comprehensive online support, running parallel to the explanations in the book, includes hundreds of sample patches, analyses, interactive sound-building exercises, and reverse engineering exercises. This book will provide a reader with skill and understanding in using Pure Data for sound design and musical composition.
How to Build Android Apps with Kotlin
Are you keen to get started building Android 11 apps, but don't know where to start? How to Build Android Apps with Kotlin is a comprehensive guide that will help kick-start your Android development practice.This book starts with the fundamentals of app development, enabling you to utilize Android Studio and Kotlin to get started building Android projects. You'll learn how to create apps and run them on virtual devices through guided exercises. Progressing through the chapters, you'll delve into Android's RecyclerView to make the most of lists, images, and maps, and see how to fetch data from a web service.Moving ahead, you'll get to grips with testing, learn how to keep your architecture clean, understand how to persist data, and gain basic knowledge of the dependency injection pattern. Finally, you'll see how to publish your apps on the Google Play store.You'll work on realistic projects that are split up into bitesize exercises and activities, allowing you to challenge yourself in an enjoyable and attainable way. You'll build apps to create quizzes, read news articles, check weather reports, store recipes, retrieve movie information, and remind you where you parked your car.By the end of this book, you'll have the skills and confidence to build your own creative Android applications using Kotlin.
Writing Maintainable Unit Tests
This book is for experienced software developers who want to improve upon their existing skills in writing unit tests. You will learn how to build loosely coupled, highly maintainable and robust unit tests that are trustworthy and improve the overall code quality of your software applications. The content of this book is based on 15+ years of experience with Test-Driven Development.Although the examples in this book are written in C#, the principles and guidance are broadly applicable to other platforms and programming environments as well (Java, Python, JavaScript, etc.). You will be able to universally apply this knowledge throughout the rest of your career.
Quantum Machine Learning with Python
Quickly scale up to Quantum computing and Quantum machine learning foundations and related mathematics and expose them to different use cases that can be solved through Quantum based algorithms.This book explains Quantum Computing, which leverages the Quantum mechanical properties sub-atomic particles. It also examines Quantum machine learning, which can help solve some of the most challenging problems in forecasting, financial modeling, genomics, cybersecurity, supply chain logistics, cryptography among others.You'll start by reviewing the fundamental concepts of Quantum Computing, such as Dirac Notations, Qubits, and Bell state, followed by postulates and mathematical foundations of Quantum Computing. Once the foundation base is set, you'll delve deep into Quantum based algorithms including Quantum Fourier transform, phase estimation, and HHL (Harrow-Hassidim-Lloyd) among others. You'll then be introduced to Quantum machine learning and Quantum deep learning-based algorithms, along with advanced topics of Quantum adiabatic processes and Quantum based optimization. Throughout the book, there are Python implementations of different Quantum machine learning and Quantum computing algorithms using the Qiskit toolkit from IBM and Cirq from Google Research.What You'll LearnUnderstand Quantum computing and Quantum machine learningExplore varied domains and the scenarios where Quantum machine learning solutions can be appliedDevelop expertise in algorithm development in varied Quantum computing frameworksReview the major challenges of building large scale Quantum computers and applying its various techniquesWho This Book Is ForMachine Learning enthusiasts and engineers who want to quickly scale up to Quantum Machine Learning
Powershell for Beginners
Learn the basic tools and commands to write scripts in PowerShell 7. This hands-on guide is designed to get you up and running on PowerShell quickly - introducing interactive menus, reading and writing files, and creating code that talks over the network to other scripts, with mini games to facilitate learning. PowerShell for Beginners starts with an introduction to PowerShell and its components. It further discusses the various tools and commands required for writing scripts in PowerShell 7, with learning reinforced by writing mini games. You will learn how to use variables and conditional statements for writing scripts followed by loops and arrays. You will then work with functions and classes in PowerShell. Moving forward, you will go through the PowerShell Console, customizing the title and text colors. Along the way you will see how to read a key press and make sound in PowerShell. The final sections cover game engine layout, how to build a title screen, and implementing the game design using code flow, title screens, levels, and much more. After reading the book you will be able to begin working with PowerShell 7 scripts and understand how to use its tools and commands effectively.What You Will LearnUse Microsoft Visual Studio Code to develop scriptsUnderstand variables, loops and conditional statements in PowerShellWork with scripts to develop a gameDiscover and use ASCII art generatorsComprehend game objects and codeCreate client-server scripts that communicate over a networkRead and write to filesCapture input from the keyboardMake PowerShell speak words to help the visually impairedCreate text-based adventure games Who This Book Is ForSoftware developers who want to start working with PowerShell scripts.
Learn ClojureScript
ClojureScript is a pragmatic functional programming language for building web applications. Whether you are an experienced JavaScript developer or a brand-new programmer, this book is your guide to creating impressive web apps in the simple and elegant ClojureScript language. The tutorial-style lessons are easy to follow at your own pace, and the practical capstone projects will reinforce what you have learned.By the end of the book, you will have created: - A weather forecast widget- A personal contact manager- A text-based adventure game- A group chat app- And more!
C++20 for Lazy Programmers
Ready to learn programming with less effort and more fun? Then do it the lazy way! C++20 for Lazy Programmers uses humor and fun to make you actually willing to read and eager to do the projects as you master the popular and powerful C++ language. Along the way it includes many features from the new C++20 standard, such as ranges, spans, format strings, the "spaceship" operator, and concepts (template parameter requirements), and provides brief introductions to modules and coroutines.With this unique method, you'll stretch your abilities with a variety of projects, including your own C++ arcade game. You'll construct your own classes, templates, and abstract data types. After reading and using this book you'll be ready to build real-world C++ applications and game projects on your own.What You Will Learn: The brand-new C++20 standardProgramming graphics and games with the SDL library, using SSDL, the "Simple SDL" wrapper libraryHow to use the most common C++ compilers -- Visual Studio for Windows, and g++ (with Unix or MinGW) -- and their associated debuggers"Anti-bugging" for easy fixes to common problems Sound practices for becoming a productive programmerHow to make your own big projects, including a C++-based arcade game The built-in Standard Template Library (STL) functions and classes for easy and efficient programmingPowerful data types including strings, stacks, vectors, and linked lists -- not by reading about them but by building them -- preparing you further for a career in programmingWho This Book Is ForAll who are new to C++, either self-learners or students in college-level courses.
Building Versatile Mobile Apps with Python and Rest
Develop versatile iOS and Android apps using Python withRESTful web services. Dive into full-stack development with Django, a powerfulPython framework, and React Native, the most in-demand JavaScript library.Begin by building a mobile app using the RESTful APIs andReact Native. Starting from scratch, create a database and serialize the datawith Django REST to serve APIs. Then build the front-end with React and mobileapps for iOS and Android with React Native. By the end of the book, you'll have developed three appspowered by Django-a desktop React app, an iOS app, and an Android app. Discoverthe whole process of developing apps from inception to distribution of an iOSapp in the Apple store and an Android app in the Google Play store. You will: Develop using the Model-View-Controller patternFacilitate the communications between the back-end andfront-end of web apps with HTTPDesign a robust front-end for an app with ReactCreate one back-end solution for both iOS and Androiddevices with Django
.Net Developer’s Guide to Augmented Reality in IOS
Attention .NET developers, here is your starting point for learning how to create and publish augmented reality (AR) apps for iOS devices. This book introduces and explores iOS augmented reality mobile app development specifically for .NET developers. The continued adoption and popularity of Xamarin, a tool that allows cross-platform mobile application development, opens up many app publishing opportunities to .NET developers that were never before possible, including AR development. You will use Xamarin to target Apple's augmented reality framework, ARKit, to develop augmented reality apps in the language you prefer-C#. Begin your journey with a foundational introduction to augmented reality, ARKit, Xamarin, and .NET. You will learn how this remarkable collaboration of technologies can produce fantastic experiences, many of them never before tried by .NET developers. From there you will dive into the fundamentals and then explore various topics and AR features. Throughout your learning, proof of concepts will be demonstrated to reinforce learning. After reading this book you will have the fundamentals you need, as well as an understanding of the overarching concepts that combine them. You will come away with an understanding of the wide range of augmented reality features available for developers, including the newest features included in the latest versions of ARKit. What You Will Learn Create rich commercial and personal augmented reality mobile appsExplore the latest capabilities of ARKitExtend and customize chapter examples for building your own amazing appsGraduate from traditional 2D UI app interfaces to immersive 3D AR interfacesWho This Book Is For Developers who want to learn how to use .NET and C# to create augmented reality apps for iOS devices. It is recommended that developers have some Xamarin experience and are aware of the cross-platform options available to .NET. A paid Apple developer account is not needed to experiment with the AR code samples on your devices.
Building Custom Tasks for SQL Server Integration Services
Build custom SQL Server Integration Services (SSIS) tasks using Visual Studio Community Edition and C#. Bring all the power of Microsoft .NET to bear on your data integration and ETL processes, and for no added cost over what you've already spent on licensing SQL Server. New in this edition is a demonstration deploying a custom SSIS task to the Azure Data Factory (ADF) Azure-SSIS Integration Runtime (IR). All examples in this new edition are implemented in C#. Custom task developers are shown how to implement custom tasks using the widely accepted and default language for .NET development. Why are custom components necessary? Because even though the SSIS catalog of built-in tasks and components is a marvel of engineering, gaps remain in the available functionality. One such gap is a constraint of the built-in SSIS Execute Package Task, which does not allow SSIS developers to select SSIS packages from other projects in the SSIS Catalog. Examples in this bookshow how to create a custom Execute Catalog Package task that allows SSIS developers to execute tasks from other projects in the SSIS Catalog. Building on the examples and patterns in this book, SSIS developers may create any task to which they aspire, custom tailored to their specific data integration and ETL needs. What You Will LearnConfigure and execute Visual Studio in the way that best supports SSIS task developmentCreate a class library as the basis for an SSIS task, and reference the needed SSIS assembliesProperly sign assemblies that you create in order to invoke them from your taskImplement source code control via Azure DevOps, or your own favorite tool setTroubleshoot and execute custom tasks as part of your own projectsCreate deployment projects (MSIs) for distributing code-complete tasksDeploy custom tasks to Azure Data Factory Azure-SSIS IRs in the cloudCreate advanced editors for custom task parameters Who This Book Is ForFor database administrators and developers who are involved in ETL projects built around SQL Server Integration Services (SSIS). Readers do not need a background in software development with C#. Most important is a desire to optimize ETL efforts by creating custom-tailored tasks for execution in SSIS packages, on-premises or in ADF Azure-SSIS IRs.
Computer Programming
Computer Programming Made Easy: With These 4 Titles You Can Reach Your Full PotentialDiscover the "Whys" and "Hows" of Computer Programming, this complete guide will walk you through the techniques used by the pros so you can get started the right way. The new amazing bundle by Ben Chan includes the following titles: Cyber SecurityPython for Data SciencePython for BeginnersSQL ProgrammingBreakthrough information, well-written. Easy to read. Here's what you will love about this bundle: Learn All the Essentials and Basic Ways to Avoid Cyber Risk for Your Business (Cybersecurity Guide for Beginners).The Crash Curse Guide for Beginners. Learn Right Now Python Coding, Data Analysis, and Computer Programming (for Women, Men, and Kids).Start Right Now to Learn Computer Programming with the Best Crash Course. Improve your Skills with Machine Learning, Data Analysis and Data Science.Learn the Ultimate Coding, Basic Rules of the Structured Query Language for Databases like Microsoft SQL Server (Step-By-Ste Computer Programming for Beginners).Get today your copy of Computer Programming: 4 Books in 1: SQL Programming, Python for Beginners, Python for Data Science, Cyber Security (Crash Course 2.0 for Kids and Adults). This bundle offers actionable strategies for you to master the art of Computer Programming starting today.Are you ready?Scroll up and click the "add to cart" button to buy now!
Effective Kotlin
This book is a guide for Kotlin developers on how to become an excellent Kotlin developer.Kotlin is a powerful and pragmatic language, but it's not enough to know about its features. You also need to know when they should be used and in what way. This book presents and explains in-depth the best practices for Kotlin development. Each item is presented as a clear rule of thumb, supported by detailed explanations and practical examples. It's a comprehensive guide of best practices for Kotlin code quality: safety, readability, code design and efficiency.What you will learn You will learn how to make better Kotlin development in terms of safety, readability, maintainability and performance. The book also covers some advanced topics like inline functions and classes, DSLs or platform types. Who this book is for This book was written for Kotlin developers who want to learn and understand how to write high-quality code. It assumes some experience with Kotlin or at least with Swift, Java or Scala. It is directed towards all kinds of Kotlin developers and isn't specific to mobile or backend development. The purpose of this book The purpose of Effective Kotlin is to teach and promote the best practices for Kotlin developers, as well as the way Kotlin features can and should be used to improve code.Reader TestimonialsRafal Kuźmiński: Well done! I've read a few items and I have to admit that I learned some interesting stuff. Great book: )Hanno G羹nther: Really love this book!
Xanpan
Xanpan is...a cross between XP and Kanban... is an example of a roll-your-own method... is distilled from Allan Kelly's own experiences running development teams and then helping multiple teams adopt Agile working methods and practices. Xanpan draws ideas from Kanban and Lean, XP and Scrum, product management and business analysis, and many other places. Allan tells the Xanpan story through a series of boards which tell the story of different teams. In between he fills in the principles, practices and thinking which together constitutes Xanpan. Allan's key points include: handling planned and unplanned work in fixed length iterationsthe importance of keeping quality high with technical practicesplanning beyond the iterationand why deadlines are more important than estimates. Online Reviews "Thoroughly enjoyed XanPan. Allan challenges unfounded assumptions and really unearths a simplicity to writing about Agile and effective ways of working."Amazon Review "This book, very concise, is a goldmine. In a very accurate way, it will guide you through the implementation of the best from Kanban and Scrum."Amazon Review - Mr. Umiastowski Nicolas "This book is an important contribution to the agile literature. It tackles the challenges that most teams face, head-on, by proposing alternatives that some might consider heretical. This sort of discussion is invaluable in the face of corporate certification of activities that promote blind faith and dogma rather than observation and critical thought."Amazon Review - Seb Rose "Having bounced back and forth between Kanban and Scrum (including a brief foray into Scrumban) it's great to finally come across an agile methodology that's designed to work in the real world, with all the joys that brings. Allen introduces Xanpan in a manner than is accessible to more than just techies and provides a useful set of tools which you can use 'as is', or customise to fit your team and process."Amazon Review - Dom Davis "An excellent book giving real examples and experiences of the adoption of lean and Kanban models within software development teams."Amazon Review - Belinda Waldock
How Open Source Ate Software
Learn how free software became open source and how you can sell open source software. This book provides a historical context of how open source has thoroughly transformed how we write software, how we cooperate, how we communicate, how we organize, and, ultimately, how we think about business values. This fully updated second edition includes an entire chapter on legal considerations such as trademarks and the latest happenings in open source licensing. It also expands on open hardware trends such as RISC-V, open governance, and the difference between community projects and commercial products, especially as seen through the lens of security. You'll look at project and community examples including Linux, BSD, Apache, and Kubernetes, understand the open source development model, and how open source has influenced approaches more broadly, even within proprietary software, such as open betas. You'll also examine the flipside, the "Second Machine Age," and thechallenges of open source-based business models. Today, open source serves as shorthand for much broader trends and behaviors. It's not just about a free (in all senses of the word) alternative to commercial software. It increasingly is the new commercial software. How Open Source Ate Software, second edition reveals how open source has much in common, and is often closely allied, with many other trends in business and society. You'll see how it enables projects that go beyond any individual company. That makes open source not just a story about software, but a story about almost everything. What You'll Learn The opportunities that open source creates and the challenges that come with themThe ways in which companies can create business models to successfully sell "free" softwareHow the open source development model works from creating communities to selling commercial productsThe important issues associated with open source project and product governance and licensingHow open source principles can apply more broadly to DevOps and other organizational practices Who This Book Is For Anyone who is contemplating building a community and a business around open source software.
14 Habits of Highly Productive Developers
Why This Book?You can learn the most popular frameworks, use the best programming languages, and work at the biggest tech companies, but if you cultivate bad habits, it will be hard for you to become a top developer.This book doesn't offer a straight path or pre-defined formula of success. This book is a result of a quest. A quest to uncover what habits can be cultivated to become a better software engineer."I wish I had access to this book while I was starting in the software industry. The information presented is not only logical, not only personal, but very well backed up by many expert opinions throughout the book. A must-read, for both beginners and experts alike." - Zachary Sohovich, Software Engineer at NikeWhat Will You Read?How to keep up with all the new technologiesWhat should you focus? Being a specialist or generalist?How to stay productive and not feel overwhelmedThe importance of estimating tasks correctlyHow to approach new side project ideasAnd much moreWho Should Read This Book?It doesn't matter if you're a Junior or Senior developer. It doesn't matter how experienced you are. This book can help you cultivate new habits or rethink existing behaviors.What's Inside?This is not a traditional book. You won't find the same format or structure that a regular book has. In fact, this book was designed to be as simple and objective as possible. You can follow the order of chapters, or you can read them individually. Everything is standalone and doesn't depend on previous knowledge.At the end of each chapter, you'll find a section marked as "Questions & Answers", where I interview senior developers and tech leads from various companies to understand how they got there. I went after tech giants such as Google, Amazon, Microsoft, and Adobe. Powerful startups such as GitHub, Spotify, Elastic, Segment, GoDaddy, and Shopify. All the way to established organizations such as Citibank, BlackBerry, and The New York Times.These people come from all over the world and have a pretty diverse background. From San Francisco to New York. From S瓊o Paulo to Montreal. From London to Stockholm. The idea is to present you not a one man's point of view, but a collection of insights on how to navigate your career.Who's The Author?Zeno Rocha is a Brazilian creator and programmer. He currently lives in Los Angeles, California, where he's the Chief Product Officer at Liferay Cloud. His lifelong appreciation for building software and sharing knowledge led him to speak in over 110 conferences worldwide. His passion for open source put him on the top 20 most active users on GitHub at age 22. Before moving to the US, Zeno developed multiple applications, mentored startups, and worked at major companies in Latin America, such as Globo and Petrobras.
Agile Leadership in the Scrum context (Updated for Scrum Guide V. 2020)
Are you a manager in an agile context and does your team work according to the Scrum framework? Scrum.org, as one of the largest international certifiers, has presented the Professional Agile Leadership (TM) (PAL E) certification, an approach that addresses the challenges and tasks of agile leadership in the context of Scrum. This approach is presented by the author, himself a consultant and trainer in this field for many years. The structure of the book is based on the topics covered in the exam. However, the book attaches great importance not only to pure exam preparation, but to focus on the feasibility in everyday life. This book is NOT an official textbook of Scrum.org - Professional Agile Leadership (TM) (PAL E) is a registered trademark of the named organization. It has been updated and adapted based on the statements of the Scrum Guide V. 2020.
Advances in Service-Oriented and Cloud Computing
This volume contains the technical papers presented in the workshops, PhD Symposium and EU Projects Track which took place at the 8th European Conference on Service-Oriented and Cloud Computing, ESOCC 2020, held in Heraklion, Crete, Greece, in September 2020: 1st International Workshop on Edge Adoption and Migration, EdgeWays 2020, 16th International Workshop on Engineering Service-Oriented Applications and Cloud Services, WESOACS 2020, ESOCC 2020 PhD Symposium, ESOCC 2020 EU Projects Track. Due to the COVID-19 pandemic the conference and workshops were held in a virtual format. The 17 full papers and 2 short papers were reviewed and selected from 22 submissions. The papers focus on specific topics in service-oriented and cloud computing domains such as limits and/or advantages of existing cloud solutions, future internet technologies, efficient and adaptive deployment and management of service-based applications across multiple clouds, novel cloud service migration practices and solutions, digitization of enterprises in the cloud computing era, federated cloud networking services.
Tools and Methods of Program Analysis
This book constitutes the refereed proceedings of the 5th International Conference on Tools and Methods for Program Analysis, TMPA 2019, held in Tbilisi, Georgia, in November 2019.The 14 revised full papers and 2 revised short papers presented together with one keynote paper were carefully reviewed and selected from 41 submissions. The papers deal with topics such as software test automation, static program analysis, verification, dynamic methods of program analysis, testing and analysis of parallel and distributed systems, testing and analysis of high-load and high-availability systems, analysis and verification of hardware and software systems, methods of building quality software, tools for software analysis, testing and verification.
Agile Objektorientierte Software-Entwicklung
Dieses Lehrbuch zeigt anhand eines durchg瓣ngigen Fallbeispiels wie Anwendungssoftware zur Optimierung von Gesch瓣ftsprozessen agil entwickelt werden kann. Auf der Basis eines agilen Vorgehensmodells werden Gesch瓣ftsprozesse modelliert, Anwendungsf瓣lle und User Stories abgeleitet sowie in iterativer Weise die Softwarel繹sung methodisch entworfen und auf der Jakarta EE Plattform beispielhaft implementiert. Dabei kommen Prinzipien und Praktiken agiler Vorgehensweisen zur Anwendung. Nach einer leichtgewichtigen Vorbereitungsphase steht die Entwicklungsphase mit zeitlich festgelegten Iterationen im Mittelpunkt. Die Anforderungen werden aus den Anwendungsf瓣llen der Gesch瓣ftsprozesse abgeleitet und gut verst瓣ndlich als User Stories beschrieben. Statische und dynamische UML-Modelle unterst羹tzen die Kommunikation beim Entwurf der User Stories. Mit Hilfe von Entwurfsmustern werden identifizierte System-Operationen systematisch umgesetzt. Die Entwurfsmuster werden an Beispielen vorgestellt und praktisch eingesetzt, so dass ein Software-System mit geringer Kopplung und hoher Wartbartkeit entsteht.Das durchg瓣ngige Beispiel zeigt anschaulich den Weg von der Problemstellung im Gesch瓣ftsprozess bis zur Java-Software-L繹sung Schritt f羹r Schritt auf. Zu jedem Kapitel werden Wiederholungsfragen und Aufgaben angeboten. Online stehen Quellcode und erg瓣nzende Lernhilfen zur Verf羹gung.
Software Engineering for Absolute Beginners
Start programming from scratch, no experience required. This beginners' guide to software engineering starts with a discussion of the different editors used to create software and covers setting up a Docker environment. Next, you will learn about repositories and version control along with its uses. Now that you are ready to program, you'll go through the basics of Python, the ideal language to learn as a novice software engineer. Many modern applications need to talk to a database of some kind, so you will explore how to create and connect to a database and how to design one for your app. Additionally you will discover how to use Python's Flask microframework and how to efficiently test your code. Finally, the book explains best practices in coding, design, deployment, and security. Software Engineering for Absolute Beginners answers the question of what topics you should know when you start out to learn software engineering. This book covers a lot of topics, and aims to clarify the hidden, but very important, portions of the software development toolkit.After reading this book, you, a complete beginner, will be able to identify best practices and efficient approaches to software development. You will be able to go into a work environment and recognize the technology and approaches used, and set up a professional environment to create your own software applications.What You Will LearnExplore the concepts that you will encounter in the majority of companies doing software development Create readable code that is neat as well as well-designed Build code that is source controlled, containerized, and deployable Secure your codebase Optimize your workspaceWho This Book Is For A reader with a keen interest in creating software. It is also helpful for students.
Aesthetic Programming
The book explores the technical as well as cultural imaginaries of programming from its insides. It follows the principle that the growing importance of software requires a new kind of cultural thinking - and curriculum - that can account for, and with which to better understand the politics and aesthetics of algorithmic procedures, data processing and abstraction. It takes a particular interest in power relations that are relatively under-acknowledged in technical subjects, concerning class and capitalism, gender and sexuality, as well as race and the legacies of colonialism. This is not only related to the politics of representation but also nonrepresentation: how power differentials are implicit in code in terms of binary logic, hierarchies, naming of the attributes, and how particular worldviews are reinforced and perpetuated through computation. It introduces and demonstrates the reflexive practice of aesthetic programming, engaging with learning to program as a way to understand and question existing technological objects and paradigms, and to explore the potential for reprogramming wider eco-socio-technical systems. The book itself follows this approach, and is offered as a computational object open to modification and reversioning.
Traefik API Gateway for Microservices
Use Traefik as a load balancer or a reverse proxy for microservices-based architecture. This book covers Traefik integration for microservices architecture concerns such as service discovery, telemetry, and resiliency.The book focuses on building an in-depth understanding of Traefik. It starts with the fundamentals of Traefik, including different load balancing algorithms available, and failure handling for application resiliency. Examples are included for the failure scenarios. TLS support is explained, including scenarios of TLS termination and TLS forwarding. Traefik supports TLS termination using Let's Encrypt. Traefik deployment in prominent microservices ecosystems is discussed, including Docker and Kubernetes.Traefik is a language-neutral component. This book presents examples of its deployment with Java-based microservices. The examples in the book show Traefik integration with Jaeger/Zipkin, Prometheus, Grafana, and FluentD. Also covered is Traefik for Python-based services and Java-based services deployed in the Kubernetes cluster. By the end of the book, you will confidently know how to deploy and integrate Traefik into prominent microservices ecosystems.What You Will LearnUnderstand Traefik basics and its componentsExplore different load balancing scenarios and TLS terminationConfigure service discovery, circuit breakers, timeouts, and throttlingMonitor Traefik using Prometheus and request tracing Who This Book Is ForDevelopers and project managers who have developed microservices and are deploying them in cloud and on-premise environments with Kubernetes or Docker. The book is not specifically written for any particular programming language. The examples presented use Java or Python.
Pro .Net 5 Custom Libraries
Leverage .NET 5, Microsoft's bold new cross-platform implementation, for developing your very own cross-platform custom data types and libraries for Windows, Linux, and macOS. The book starts with the purpose and benefits of a custom cross-platform model of .NET data types and its architectural implementation in detail. Next, you will learn fundamental operations such as the equality and inequality operations in .NET 5, demonstrated with sample projects in C#. Implementation of comparison and sorting operations is discussed next followed by a discussion on cloning operations. Here you will learn details of overriding the clone virtual method and its implementation. Moving forward, you will understand custom formatting with specialized .NET data types in various functions and how to implement it. You will then go through .NET reference types along with developing a custom library for working with the software project. Finally, you will explore .NET5 assemblies and modules followed by their APIs. After reading Pro .NET 5 Custom Libraries, you will be able to work on fundamental operations for productivity and quality in your designs of .NET 5 custom data types. What You Will Learn Work with .NET 5 assemblies Work with .NET 5 modules Understand the logical and physical organization of .NET 5 modules Implement custom .NET reference types from scratchImplement a custom .NET value type from scratchWho This Book Is ForSoftware developers working on .NET and .NET Core platform.