Computer und IT
GraphQL
API-Design mit GraphQL für Um- und Einsteiger- Einführung in GraphQL und die GraphQL-Spezifikation- Beispielimplementierungen in Java und JavaScript- Vorteile und Unterschiede zu REST und anderen API-DesignsIn Anwendungen, bei denen es auf komplexe aber dennoch schlanke Datenabfragen ankommt, spielt GraphQL seine Vorteile aus. Dominik Kress gibt Ihnen dafür das nötige Wissen rund um API-Design und die GraphQL-spezifischen Datenmodelle an die Hand.Entwickler*innen, die bereits Erfahrungen mit APIs und beispielsweise REST gesammelt haben, können ihr Wissen auffrischen und dann direkt mit den Details von GraphQL starten.Zwei Praxisprojekte – eins in JavaScript und eins in Java – zeigen, wie Entwickler*innen mit den Besonderheiten von GraphQL umgehen können und wie ein Datenschema und die GraphQL-Spezifikation in der Praxis umgesetzt werden. Der Code der Projekte liegt auf GitHub zum Download bereit und lässt sich als idealen Ausgangspunkt für die ersten eigenen GraphQLProjekte nutzen. Dominik Kress ist Software Engineer mit Heimat im E-Commerce. In seiner langjährigen Arbeit bei der größten Retail-Gruppe Europas hilft er bei der Modernisierung der internationalen Onlineshop-Systeme. Bei der Transformation von einem klassischen On-Premise-Monolithen zu einer Cloud-basierten Self-Contained-Systems-Architektur entwickelte und vertiefte sich seine Liebe zum Thema APIs. Sowohl im Umfeld seiner Arbeit als auch in privaten Projekten probiert er sich leidenschaftlich gerne an neuen Technologien, Spezifikationen und Methodiken. Daher ist für ihn der Austausch von Wissen und Erfahrungen auf Veranstaltungen und Konferenzen, die er auch gerne selbst nebenbei organisiert, besonders wichtig.
Data Parallel C++
Learn how to accelerate C++ programs using data parallelism. This open access book enables C++ programmers to be at the forefront of this exciting and important new development that is helping to push computing to new levels. It is full of practical advice, detailed explanations, and code examples to illustrate key topics.Data parallelism in C++ enables access to parallel resources in a modern heterogeneous system, freeing you from being locked into any particular computing device. Now a single C++ application can use any combination of devices—including GPUs, CPUs, FPGAs and AI ASICs—that are suitable to the problems at hand.This book begins by introducing data parallelism and foundational topics for effective use of the SYCL standard from the Khronos Group and Data Parallel C++ (DPC++), the open source compiler used in this book. Later chapters cover advanced topics including error handling, hardware-specific programming, communication and synchronization, and memory model considerations.Data Parallel C++ provides you with everything needed to use SYCL for programming heterogeneous systems.WHAT YOU'LL LEARN* Accelerate C++ programs using data-parallel programming* Target multiple device types (e.g. CPU, GPU, FPGA)* Use SYCL and SYCL compilers * Connect with computing’s heterogeneous future via Intel’s oneAPI initiativeWHO THIS BOOK IS FORThose new data-parallel programming and computer programmers interested in data-parallel programming using C++.James Reinders is a consultant with more than three decades experience in Parallel Computing, and is an author/co-author/editor of nine technical books related to parallel programming. He has had the great fortune to help make key contributions to two of the world's fastest computers (#1 on Top500 list) as well as many other supercomputers, and software developer tools. James finished 10,001 days (over 27 years) at Intel in mid-2016, and now continues to write, teach, program, and do consulting in areas related to parallel computing (HPC and AI).Chapter 1: IntroductionSets expectation that book describes SYCL 1.2.1 with Intel extensions, and that most extensions are proof points of features that should end up in a future version of SYCL. Overview notion of different accelerator architectures doing well on different workloads, and introduce accelerator archs (but don’t overdo the topic). Overview/level setting on parallelism and relevant terminology, language landscape, SYCL history.• SYCL key feature overview (single source, C++, multi-accelerator) - intended to draw people in and show simple code• Language versions and extensions covered by this book• Mixed-architecture compute and modern architectures• Classes of parallelism• Accelerator programming landscape (OpenMP, CUDA, TBB, OpenACC, AMD HCC, Kokkos, RAJA)• Evolution of SYCLChapter 2: Where code executesDescribes which parts of code run natively on CPU versus on "devices". Differentiate between accelerator devices and the "host device". Show more code to increase reader familiarity with program structure.• Single source programming model• Built-in device selectors• Writing a custom device selectorChapter 3: Data management and ordering the uses of dataOverview the primary ways that data is accessible by both host and device(s): USM and buffers. Introduce command groups as futures for execution, and concept of dependencies between nodes forming a DAG.• Intro• Unified Shared Memory• Buffers• DAG mechanismChapter 4: Expressing parallelismThe multiple alternative constructs for expressing parallelism are hard to comprehend from the spec, and for anyone without major parallel programming experience. This chapter must position the parallelism mechanisms relative to each other, and leave the reader with a conceptual understanding of each, plus an understand of how to use the most common forms.• Parallelism within kernels• Overview of language features for expressions of parallelism• Basic data parallel kernels• Explicit ND-Range kernels• Hierarchical parallelism kernels• Choosing a parallelism/coding styleChapter 5: Error handlingSYCL uses C++-style error handling. This is different/more modern than people using OpenCL and CUDA are used to. This chapter must frame the differences, and provide samples from which readers can manage exceptions easily in their code.• Exception-based• Synchronous and asynchronous exceptions• Strategies for error management• Fallback queue mechanismChapter 6: USM in detailUSM is a key usability feature when porting code, from C++ for example. When mixed with differing hardware capabilities, the USM landscape isn’t trivial to understand. This key chapter must leave the reader with an understanding of USM on different hardware capabilities, what is guaranteed at each level, and how to write code with USM features.• Usability• Device capability levels• Allocating memory• Use of data in kernels• Sharing of data between host and devices• Data ownership and migration• USM as a usability feature• USM as a performance feature• Relation to OpenCL SVMChapter 7: Buffers in detailBuffers will be available on all hardware, and are an important feature for people writing code that doesn’t have pointer-based data structures, particularly when implicit dependence management is desired. This chapter must cover the more complex aspects of buffers in an accessible waym, including when data movement is triggered, sub-buffer dependencies, and advanced host/buffer synchronization (mutexes).• Buffer construction• Access modes (e.g. discard_write) and set_final_data• Device accessors• Host accessors• Sub-buffers for finer grained DAG dependencies• Explicit data motion• Advanced buffer data sharing between device and hostChapter 8: DAG scheduling in detailMust describe the DAG mechanism from a high level, which the spec does not do. Must describe the in-order simplifications, and common gotchas that people hit with the DAG (e.g. read data before buffer destruction and therefore kernel execution).• Queues• Common gotchas with DAGs• Synchronizing with the host program• Manual dependency managementChapter 9: Local memory and work-group barriers• "Local" memory• Managing "local" memory• Work-group barriersChapter 10: Defining kernels• Lambdas• Functors• OpenCL interop objectsChapter 11: Vectors• Vector data types• Swizzles• Mapping to hardwareChapter 12: Device-specific extension mechanism• TBDChapter 13: Programming for GPUs• Use of sub-groups• Device partitioning• Data movement• Images and samplers• TBDChapter 14: Programming for CPUs• Loop vectorization• Use of sub-groups• TBDChapter 15: Programming for FPGAs• Pipes• Memory controls• Loop controlsChapter 16: Address spaces and multi_ptr• Address spaces• The multi_ptr class• Intefacing with external codeChapter 17: Using libraries• Linking to external code• Exchanging data with librariesChapter 18: Working with OpenCL• Interoperability• Program objects• Build options• Using SPIR-V kernelsChapter 19: Memory model and atomics• The memory model• Fences• Buffer atomics• USM atomics
Machine Learning in the Oil and Gas Industry
Apply machine and deep learning to solve some of the challenges in the oil and gas industry. The book begins with a brief discussion of the oil and gas exploration and production life cycle in the context of data flow through the different stages of industry operations. This leads to a survey of some interesting problems, which are good candidates for applying machine and deep learning approaches. The initial chapters provide a primer on the Python programming language used for implementing the algorithms; this is followed by an overview of supervised and unsupervised machine learning concepts. The authors provide industry examples using open source data sets along with practical explanations of the algorithms, without diving too deep into the theoretical aspects of the algorithms employed. Machine Learning in the Oil and Gas Industry covers problems encompassing diverse industry topics, including geophysics (seismic interpretation), geological modeling, reservoir engineering, and production engineering.Throughout the book, the emphasis is on providing a practical approach with step-by-step explanations and code examples for implementing machine and deep learning algorithms for solving real-life problems in the oil and gas industry.WHAT YOU WILL LEARN* Understanding the end-to-end industry life cycle and flow of data in the industrial operations of the oil and gas industry* Get the basic concepts of computer programming and machine and deep learning required for implementing the algorithms used* Study interesting industry problems that are good candidates for being solved by machine and deep learning* Discover the practical considerations and challenges for executing machine and deep learning projects in the oil and gas industryWHO THIS BOOK IS FORProfessionals in the oil and gas industry who can benefit from a practical understanding of the machine and deep learning approach to solving real-life problems.Yogendra Pandey is a senior product manager at Oracle Cloud Infrastructure. He has more than 14 years of experience in orchestrating intelligent systems for the oil and gas, utilities, and chemical industries. He has worked in different capacities with oil and gas, and utilities companies, including Halliburton, ExxonMobil, and ADNOC. Yogendra holds a bachelor’s degree in chemical engineering from the Indian Institute of Technology (BHU), and a PhD from the University of Houston, with specialization in high-performance computing applications to complex engineering problems. He served as an executive editor for the Journal of Natural Gas Science and Engineering. Also, he has authored/co-authored more than 25 peer-reviewed journal articles, conference publications, and patent applications. He is a member of the Society of Petroleum Engineers.Ayush Rastogi is a data scientist at BPX Energy, Denver CO. His research interests are based on multi-phase fluid flow modeling and integrating physics-based and data-driven algorithms to develop robust predictive models. He has published his work in the field of machine learning and data-driven predictive modeling in the oil and gas industry. He has previously worked with Liberty Oilfield Services in the technology team in Denver, prior to which he worked as a field engineer in TX, ND, and CO as a part of his internship. He also has experience working as a petroleum engineering consultant in Houston, TX. Ayush holds a PhD in petroleum engineering with a minor in computer science from Colorado School of Mines, and is an active member of the Society of Petroleum Engineers.Sribharath Kainkaryam leads a team of data scientists and data engineers at TGS. Prior to joining TGS in 2018, he was a research scientist working on imaging and velocity model building challenges at Schlumberger. He graduated with a masters in computational geophysics from Purdue University and has an undergraduate degree from the Indian Institute of Technology, Kharagpur.Srimoyee Bhattacharya is a reservoir engineer in the Permian asset team in the Shell Exploration and Production Company. She has over 11 years of combined academic and professional experience in the oil and gas industry. She has worked in reservoir modeling, enhanced oil recovery, history matching, fracture design, production optimization, proxy modelling, and applications of multivariate analysis methods. She also worked with Halliburton as a research intern on digitalization of oil fields and field-wide data analysis using statistical methods. Srimoyee holds a PhD in chemical engineering from the University of Houston, and a bachelor’s degree from the Indian Institute of Technology, Kharagpur. She has served as a technical reviewer for the SPE Journal, Journal of Natural Gas Science and Engineering, and Journal of Sustainable Energy Engineering. She has authored/co-authored more than 25 peer-reviewed journal articles, conference publications, technical reports, and patent application.Luigi Saputelli is a reservoir management expert advisor to ADNOC and Frontender Corporation with over 28 years of experience. He worked in various operators and services companies around the world including PDVSA, Hess, and Halliburton. He is a founding member of the Real-time Optimization TIG and Petroleum Data-driven Analytics technical section of the Society of Petroleum Engineers, and recipient of the 2015 Society of Petroleum Engineers international production and operations award. He also received the 2007 employee of the year award from Halliburton. He has published more than 90 industry papers on applied technologies related to reservoir management, real-time optimization, and production operations. Saputelli is an electronic engineer with a masters in petroleum engineering, and a PhD in chemical engineering. He also serves as managing partner in Frontender Corporation, a petroleum engineering services firm based in Houston.MACHINE LEARNING IN THE OIL AND GAS INDUSTRY WITH PYTHONChapter 1: Towards Oil and Gas 4.0Chapter Goal: This chapter provides an overview of the digital transformation state-of-the-art in the Oil & Gas industry. The overview includes a literature review of the publications from the academic and industrial institutions, available in the public domain. It follows a theme of end-to-end Oil & Gas exploration and production project lifecycle.CHAPTER 2: PYTHON PROGRAMMING PRIMERChapter Goal: This chapter provides a brief primer of the Python programming language. The idea is to make the user familiar with the basic syntax on Python programming language. This chapter also briefly touches on the numpy, pandas, and a selected visualization (to be selected from matplotlib/seaborn/bokeh) library.CHAPTER 3: OVERVIEW OF MACHINE AND DEEP LEARNING CONCEPTSChapter Goal: This chapter introduces supervised and unsupervised machine learning concepts with the code examples using simplistic and clean data sets. The aim is to provide readers with understanding of practical concepts of different machine and deep learning algorithms, along with simple coding examples. Scikit-learn and Keras will be used for machine and deep learning code samples respectively.CHAPTER 4: GEOPHYSICS AND SEISMIC DATA PROCESSINGChapter Goal: This chapter will focus on using seismic data available from open data sources, e.g., Equinor Volve project, to provide two example applications for seismic data interpolation, and fault identification. Further, it will also discuss other problems, such as, horizon identification, and salt dome identification, without going in to too much details, while providing enough pointers and resources to the interested users.CHAPTER 5: GEOMODELINGChapter Goal: This chapter focuses on the geological modeling problems, including unsupervised learning for clustering different rock types based upon the petrophysical well logs, and estimation of the petrophysical properties away from the well locations by applying supervised machine learning techniques.CHAPTER 6: RESERVOIR ENGINEERINGChapter Goal: This chapter focused on the approaches for developing machine learning based proxy models to replace a full-physics reservoir simulator, and the use of these proxy models for generating production forecasts. The chapter will also cover related topics of interest including well placement optimization, and planning future wells based upon the historical production data.CHAPTER 7: PRODUCTION ENGINEERINGChapter Goal: This chapter will cover the topic of production modeling using machine learning methodologies. The topics will include identification of specific completion design for a well to achieve optimal production rates, and identifying the producing wells, which may benefit from the workover activities. A part of chapter will also provide methodology for equipment failure analytics, and predictive maintenance for production equipment, e.g., electrical submersible pumps (ESPs).CHAPTER 8: OPPORTUNITIES, CHALLENGES, AND EXPECTED FUTURE TRENDSChapter Goal: This chapters gleans over the challenges arising in the execution of the machine learning based digital transformation projects, the pitfalls leading to the project failure. Also, the opportunities that inherently lie in addressing these challenges are discussed from both the executive and practitioners’ perspective. Finally, an overview of the expected roadmap for the industry over the next decade will be discussed.
Beginning e-Textile Development
Electronic textiles (e-textiles) involves the combination of electronics and textiles to form "smart" textile products. It is an emerging technology with immense opportunities in the field of wearables fashion technology. And while there are many e-textile development platforms available on the market, this book uses the Wearic smart textile kit, a modular prototyping platform, to get you building projects and experiments easily and quickly.This book presents the essential skills required to get started developing e-textiles. The code presented is built using MakeCode blocks, an easy-to-use visual programming language. You'll use the BBC micro:bit microcontroller for all the projects, and with few exceptions, they require no soldering and wiring. In the end, you'll be able to apply and sew electronics to wearables, garments, and fabrics in this emerging technology.Beginning e-Textile Development presents the essential components to get you started with developing e-textiles.WHAT YOU'LL LEARN* Program with the BBC micro:bit* Add lights to your wearables using LED textiles* Use different textile sensors to measure heat, detect water, actuate attachments, and enable sense touch and pressure* Actuate attachments on wearables with muscle activity and heartbeat* Make chemistry-based color-changing fabrics using thermochromic pigments* Utilize Bluetooth Low Energy to send sensor data to mobile apps and WiFi to send sensor data to the ThingSpeak IoT analytics platform serviceWHO THIS BOOK IS FORBeginners to the e-textile industry seeking a comprehensive toolkit. Fashion designers, Makers, engineers, scientists, and students can all benefit from this book.Pradeeka Seneviratne is a software engineer with over 10 years of experience in computer programming and systems design. He is an expert in the development of Arduino and Raspberry Pi-based embedded systems and is currently a full-time embedded software engineer working with embedded systems and highly scalable technologies. Previously, Pradeeka worked as a software engineer for several IT infrastructure and technology servicing companies.Chapter 1. Getting StartedChapter Goal: This chapter will get you started with your Wearic Smart Textiles kit. It will also set the stage for the experiments and projects you will find in the following chapters. You will learn how to program the microcontroller using the Arduino IDE and MakeCode blocks.• Introduction to the wearable electronics• Introduction to the Wearic Smart Textiles kit• Setting up the development environment• Writing your first program to control the onboard LEDChapter 2. Making Wearables Attractive and Visible Using LightsChapter Goal: In this chapter, you will learn how to use the Wearic LED textile to add lights to your wearables. LEDs are a beautiful way to add light to wearable tech garments. Different lighting effects make your textile more attractive and highly visible. Sometimes LEDs use as indicators. You will learn basic sewing skills with conductive threads, basic electronics, and basic programming (to create different lighting effects). The skills you gain by this chapter will help you to follow the rest of the chapters.• Learn about the LED textile in detail• Applications in fashion and other industries• Testing: finding LED polarity, Use batteries and wires to test LEDs• Sewing LEDs onto the LED textile• Snapping LED textile to the expansion board• Programming: Creating light effects (i.e: blinking both LEDs, toggle LEDs, fading)• Controlling other types of LEDs (RGB, NeoPixels, etc)Chapter 3. Physical Controlling with ButtonsChapter Goal: In this chapter, you will learn how to use the Wearic Push-button textile to your wearables. A push-button textile consists of two soft-push buttons. By programming the microcontroller these buttons can be used to control actuators such as LEDs, heating textiles, wet textiles, etc. The skills you gain by this chapter will help you to follow the rest of the chapters.• Learn about the Push button textile• Applications in the fashion industry• Snapping Push-button textile to the expansion board• Programming: learning about different button status by controlling LEDSChapter 4. Staying WarmChapter Goal: In this chapter, you will learn how to use the Wearic Heating textile to keep your wearables warm. You will learn various techniques on how to program the heated textile to make different heating effects/experiences. By following this chapter the reader will able to make textiles by adding heating textiles, sensors, and LEDs (actuators).• Learn about the ‘Heating textile’ in detail• Alternatives/ Industrial applications• Testing: Use batteries and wires to test the heating textile• Snapping Heating textile to the expansion board• Programming: Controlling heating textile through the microcontroller• Programming: Using PWM to control the heating textile.• Programming: Using a feedback mechanism to keep the temperature at a specific level using a temperature sensor.• Programming: Putting them all together to build a heated mat with feedback LEDs.Chapter 5. Your Second SkinChapter Goal: In this chapter, you will learn how to use the Wearic textile pressure sensor to enable your wearable touch and pressure-sensitive. By following this chapter the reader will able to make textiles by adding pressure-sensitive textiles, sensors, and actuators.• Learn about the ‘Textile pressure sensor’ in detail.• Alternatives / Applications in fashion tech / Applications in medical• Snapping textile pressure sensor to the expansion board.• Programming: Sensing pressure, low and high-pressure levels• Programming: Using a pressure threshold level to control the LED textile• Programming: Occupancy detection• Making your own pressure sensorsChapter 6. Know When Your Garments is WetChapter Goal: In this chapter, you will learn how to use the Wearic wetness sensor to sense if your garments/wearables getting wet by water or any liquids. By following this chapter the reader will able to make textiles by adding wetness sensors, and actuators.• Learn about the ‘Wetness sensor’ in detail• Alternatives/ Applications in fashion tech / Applications in medical• Snapping wetness sensor to the expansion board.• Programming: Sensing wetness, exploring different wetness levels.• Programming: Using the wetness sensor to control the LED textile.Chapter 7. Muscle Activity and HeartbeatChapter Goal: In this chapter, you will learn to use Textile Skin Electrodes (EMG|EEG|ECG) to detect your muscle activity and heartbeat. By following this chapter the reader will able to make textiles by adding Skin Electrodes to activate different actuators by using muscle activity and heartbeat measures.• Learn about the Textile Skin Electrodes (EMG|EEG|ECG)• Wiring Textile Skin Electrodes• Programming: heartbeat LEDs• Programming: Muscle activated LEDsChapter 8. Color Changing FabricsChapter Goal: In this chapter, you will learn how to make color-changing fabrics by using the Wearic heated textile and temperature sensors (the skills you gained in chapter 4). You will learn how to apply thermochromic pigments onto the fabrics and build a control circuit using the Wearic textiles kit.• Introduction to Thermochromic/chemistry based color changing• Applications in the fashion industry• Choosing the correct thermochromic pigments• Applying thermochromic pigments onto the fabric• Direct powering• Programming: Temperature control
Azure SQL Revealed
Access detailed content and examples on Azure SQL, a set of cloud services that allows for SQL Server to be deployed in the cloud. This book teaches the fundamentals of deployment, configuration, security, performance, and availability of Azure SQL from the perspective of these same tasks and capabilities in SQL Server. This distinct approach makes this book an ideal learning platform for readers familiar with SQL Server on-premises who want to migrate their skills toward providing cloud solutions to an enterprise market that is increasingly cloud-focused.If you know SQL Server, you will love this book. You will be able to take your existing knowledge of SQL Server and translate that knowledge into the world of cloud services from the Microsoft Azure platform, and in particular into Azure SQL. This book provides information never seen before about the history and architecture of Azure SQL. Author Bob Ward is a leading expert with access to and support from the Microsoft engineering team that built Azure SQL and related database cloud services. He presents powerful, behind-the-scenes insights into the workings of one of the most popular database cloud services in the industry.WHAT YOU WILL LEARN* Know the history of Azure SQL* Deploy, configure, and connect to Azure SQL* Choose the correct way to deploy SQL Server in Azure* Migrate existing SQL Server instances to Azure SQL* Monitor and tune Azure SQL’s performance to meet your needs* Ensure your data and application are highly available* Secure your data from attack and theftWHO THIS BOOK IS FORThis book is designed to teach SQL Server in the Azure cloud to the SQL Server professional. Anyone who operates, manages, or develops applications for SQL Server will benefit from this book. Readers will be able to translate their current knowledge of SQL Server—especially of SQL Server 2019—directly to Azure. This book is ideal for database professionals looking to remain relevant as their customer base moves into the cloud.BOB WARD is a principal architect for the Microsoft Azure Data Server team, which owns the development for all SQL Server versions. He has worked for Microsoft for more than 27 years on every version of SQL Server shipped from OS/2 1.1 to SQL Server 2019, including Azure SQL. Bob is a well-known speaker on SQL Server, often presenting talks on new releases, internals, and performance at events such as PASS Summit, Red Hat Summit, Microsoft //build, SQLBits, SQLIntersection, Microsoft Inspire, and Microsoft Ignite. You can follow him at @bobwardms and linkedin.com/in/bobwardms. Bob is the author of the Apress books Pro SQL Server on Linux and SQL Server 2019 Revealed. 1. SQL Server Rises to the Clouds2. What is Azure SQL?3. SQL Server on Azure Virtual Machine4. Deploying Azure SQL5. Configuring Azure SQL6. Securing Azure SQL7. Monitoring and Tuning Performance for Azure SQL8. Availability for Azure SQL9. Completing Your Knowledge of Azure SQL10. Go Big with the Cloud
Learn Electronics with Raspberry Pi
Updated for the recent Raspberry Pi boards, including the Raspberry Pi 4, this new edition offers an all new digital logic circuits project, explaining the theory behind how digital electronics work while creating a new project for measuring temperature.Raspberry Pi is everywhere, it’s inexpensive, and it's a wonderful tool for teaching about electronics and programming. This book demonstrates how to make a variety of cool projects using the Pi with programming languages like Scratch and Python, with no experience necessary. You'll see how the Pi works, how to work with Raspbian Linux on the Pi, and how to design and create electronic circuits.You'll create projects like an arcade game, disco lights, and infrared transmitter, and an LCD display. You'll also learn how to control Minecraft's Steve with a joystick and how to build a Minecraft house with a Pi, and even how to control a LEGO train with a Pi. And, you'll build your own robot, including how to solder and even design a printed circuit board.Learning electronics can be tremendous fun — your first flashing LED circuit is a reason to celebrate! But where do you go from there, and how can you move into more challenging projects without spending a lot of money on proprietary kits? _Learn Electronics with Raspberry Pi_ shows you how to, and a lot more.WHAT YOU'LL LEARN* Design and build electronic circuits* Make fun projects like an arcade game, a robot, and a Minecraft controller* Program the Pi with Scratch and PythonWHO THIS BOOK IS FORMakers, students, and teachers who want to learn about electronics and programming with the fun and low-cost Raspberry Pi.Stewart Watkiss graduated from the University of Hull, United Kingdom, with a masters degree in electronic engineering. He has been a fan of Linux since first installing it on a home computer during the late 1990s. While working as a Linux system administrator, he was awarded Advanced Linux Certification (LPIC 2) in 2006, and created the Penguin Tutor website to help others learning Linux and working toward Linux certification.Stewart is a big fan of the Raspberry Pi. He owns several Raspberry Pi computers that he uses to help to protect his home (Internet filter), provide entertainment (XBMC), and teach programming to his two children. He also volunteers as a STEM ambassador, going into local schools to help support teachers and teach programming to teachers and children.Chapter 1 - Getting Started with Electronic CircuitsIntroduction to electronicsChapter 2 - All About Raspberry PiExplanation about Raspberry Pi and getting startedChapter 3 - Starting with the Basics: Programming with ScratchA first project introducing Scratch and simple electronicsCreates a controller for a gameChapter 4 - Using Python for Input and Output: GPIO ZeroIntroduction to GPIO Zero, switching larger loads.Disco light projectsChapter 5 - More Input and Output: Infrared Sensors and LCD DisplaysMotion sensor cameraTrue and False gameChapter 6 - Adding Control in Python and LinuxControl a lego trainRGB LEDsChapter 7 - Creating Video with a Pi CameraUsing infrared remote control to control cameraMaking those images into a stop-frame animationChapter 8 - Rolling Forward: Designing and Building a RobotCreating a simple wheeled robotControlling motors using H-BridgeMeasuring distance with ultrasonic range sensorUsing a wireless controllerChapter 9 - Customize Your Gameplay: Minecraft Hardware ProgrammingInterfacing between Minecraft and electronicsChapter 10 - Understanding Digital LogicHow logic gates workCombining logic gatesMeasuring temperature and displaying using a BCD to 7-segment decoderChapter 11 - Making Your Circuits PermanentSolderingCreating enclosuresMultimeter and OscilloscopeChapter 12 - Let the Innovation Begin: Designing Your Own CircuitsUnderstanding datasheetsCreating circuits in FritzingCreating a PCBPowering electronic projects
Cybercrime
Unter den Begriff Cybercrime werden Straftaten gefasst, die mittels Informa-tionstechnologie und IT-Strukturen begangen werden. Diese Delikte sind durch eine Vielzahl, vor dem Hintergrund der technischen Entwicklung stark wandelbarer, Tatbegehungsformen gekennzeichnet. Das mannigfache Spektrum dieser Phanomene umfasst: die Botnetzkriminalitat; den verbrecherischen Einsatz von Malware, Ransomware oder Scareware; Phishing, Pharming und Skimming; NFC-Betrug; Cybermobbing und Cybergrooming sowie vielfaltige Formen strafbarer Urheberrechtsverletzungen. Die Darstellung dieser und weiterer Spielarten der unterschiedlichen Erscheinungsformen von Cybercrime und ihre strafrechtliche Beurteilung bilden den Ausgangspunkt dieses Studienbriefs. In den nachfolgenden Kapiteln stehen die Ermittlungsmglichkeiten der Strafverfolgungsbehrden durch die Computerforensik und die Informationsgewinnung in Netzwerken im Fokus, gefolgt von Handlungsanweisungen zur polizeilichen Bekmpfung der Internetkriminalitt im sog. Ersten Angriff. In einem Ausblick wird zudem auf den ermittlungstechnischen Einsatz von Big-Data-Technologie aufmerksam gemacht. Als Einfhrungswerk richtet sich die Schrift in erster Linie an Praktiker, die einen Neueinstieg in die Materie suchen, sowie an Polizeibeamte in Ausbildung und Studium.
Basiswissen Medizinische Software (3. Auflg.)
Das Basiswerk für die Entwicklung von Software als Medizinprodukt. 3. überarbeitete und aktualisierte Auflage.Dieses Buch beschreibt den gesamten Lebenszyklus von Software als Medizinprodukt. Es deckt den kompletten CPMS-Lehrplan (Foundation Level) ab und ergänzt ihn durch weitere Informationen. Behandelt werden im Einzelnen:Rechtliche GrundlagenQualitäts- und Dokumentenmanagement (ISO 13485)Risikomanagement und -analyse (ISO 14971)Best Practices des Software Engineering (IEC 62304)Gebrauchstauglichkeit (Benutzungsschnittstellen und IEC 62366)Medizinische InformatikIT-Sicherheit bei MedizinproduktenDas Buch eignet sich zur individuellen Vorbereitung auf die CPMS-Zertifizierungsprüfung und als Begleitliteratur zu den entsprechenden Vorbereitungsschulungen.Die 3. Auflage wurde komplett überarbeitet und beinhaltet den aktuellen Stand der Normen und Richtlinien für die Medizintechnik.Über die Autoren:Professor Christian Johner unterrichtete an mehreren Hochschulen u.a. in Konstanz, Würzburg, Krems, St. Gallen und Stanford Software Engineering, Softwarearchitektur, Softwarequalitätssicherung und Medizinische Informatik. Am „Johner Institut“ bildet der promovierte Physiker im Rahmen von berufsbegleitenden Masterstudiengängen und Seminaren Personen aus, die IT-Lösungen für das Gesundheitswesen entwickeln, prüfen, anwenden und betreiben. Mit seiner Firma berät er Medizinproduktehersteller bei der Entwicklung, Qualitätssicherung und Zulassung von medizinischer Software.Matthias Hölzer-Klüpfel studierte Physik an der Universität Würzburg. Seit 2002 ist er als Entwickler, Berater und Projektleiter tätig. Er führte zahlreiche Medizintechnikprojekte durch und war dabei sowohl bei KMU-Firmen als auch in Großunternehmen im Einsatz. Heute ist er freiberuflicher Berater und unterstützt seine Kunden bei Fragen rund um die Software- und Systementwicklung in der Medizintechnik. Neben seinen beruflichen Tätigkeiten schloss er im Juli 2009 den Masterstudiengang „IT im Gesundheitswesen“ ab. Matthias Hölzer-Klüpfel ist Mitbegründer des Vereins „ICPMSB e.V.“, der die Grundlagen für die Zertifizierungen zum „Certified Professional for Medical Software“ erarbeitet, und Vorsitzender des Richtlinienausschusses „Medical SPICE“ im Verein Deutscher Ingenieure (VDI.)Sven Wittorf hat Elektro- und Informationstechnik an der TU Darmstadt studiert und einen Abschluss als Master of Science im Bereich IT im Gesundheitswesen. Er betreute und schulte Medizinproduktehersteller unterschiedlicher Größe beim Aufsetzen von deren Softwarentwicklungsprozessen. Seit 2012 ist er Geschäftsführender Gesellschafter der Medsoto GmbH, die Softwarewerkzeuge zur Unterstützung des normenkonformen und effizienten Arbeitens in der Medizintechnik erstellt und deren Einführung in Unternehmen begleitet. Er ist Gründungsmitglied des ICPMSB e. V. und Mitglied im nationalen Normungsgremium der IEC 62304 sowie im VDI Fachausschuss „Qualitätssicherung für Software in der Medizintechnik“.
Teach Yourself VISUALLY Chromebook
TEACH YOURSELF VISUALLY CHROMEBOOK IS YOUR ULTIMATE GUIDE TO GETTING THE MOST OUT OF YOUR CHROMEBOOK!Designed for ease of use and portable functionality, Chromebook is the device of choice for children, teens, and adults alike. Learn to setup and use your new Chromebook by configuring essential settings and connecting external devices.When you first open your Chromebook, you'll see several app icons sitting at the bottom of the screen. This area is called the Shelf, and it mimics the Windows taskbar. The Chrome OS Shelf shows which apps are running and provides an easy way to launch apps. To make the Chromebook your own you'll want to add your commonly used apps to the Shelf, and remove the ones you don't use.This guide will also teach you tips and tricks for how to share content with others from your Chromebook and how to download, run, and manage your applications!Chromebook is designed to be one of the most feature-rich and user-friendly solutions that allows users the portable functionality of a laptop and tablet running Chrome OS with the ability to run Android apps and Linux desktop apps.* Get started with Chromebook with over 800 full-color images* Master ChromeOS and get up and running in no time* Personalize your desktop backgroundGUY HART-DAVIS is the author of more than 100 computing books, including Teach Yourself VISUALLY iPhone, Teach Yourself VISUALLY MacBook, and Teach Yourself VISUALLY Google WorkspaceCHAPTER 1 GETTING STARTED WITH YOUR CHROMEBOOKUnderstanding the Chromebook Concept 4Explore Different Types of Chromebooks 6Set Up Your Chromebook 8Start Your Chromebook and Sign In 14Explore the Chrome OS Desktop 16Point, Click, and Scroll with the Touchpad 18Using the Touchscreen 20Using the Keyboard 21Using Keyboard Shortcuts 22Connect to a Wi‐Fi Network 24Give Commands 26Open, Close, and Manage Windows 28Work with Notifications 30Lock and Unlock Your Chromebook’s Screen 32Put Your Chromebook to Sleep and Wake It Up 34Sign Out and Sign Back In 36Shut Down Your Chromebook 38CHAPTER 2 CONFIGURING ESSENTIAL CHROMEBOOK SETTINGSConfigure the Shelf 42Configure the Launcher 44Change the Wallpaper 46Change the Display Scaling 48Configure the Night Light Settings 50Choose Power and Sleep Settings 52Set a Screen Lock for Security 54Configure the Keyboard 56Configure the Touchpad 58Configure Notifications and Do Not Disturb 60Configure Sound Settings 62Choose Which Pages to Display on Startup 64Customize the Default Chrome Theme 66Apply a Browser Theme to Chrome 68CHAPTER 3 CONFIGURING ACCESSIBILITY SETTINGSDisplay the Accessibility Settings 72Make the Screen Easier to See 74Zoom the Screen with the Magnifier Features 76Configure Keyboard Accessibility Settings 78Configure Mouse and Touchpad Accessibility Settings 80Configure Audio Accessibility Settings 82Configure Text‐to‐Speech Features 84CHAPTER 4 CONNECTING EXTERNAL DEVICESConnect and Use Bluetooth Devices 88Connect and Configure an External Mouse 90Connect and Configure a Second Display 92Connect a Printer and Print 94Using microSD Cards and USB Memory Sticks 96Cast Content to a Chromecast Device 98Connect Your Android Phone to Your Chromebook 102Connect to the Internet via Your Android Phone 104Connect to the Internet via USB Tethering 106CHAPTER 5 SHARING YOUR CHROMEBOOK WITH OTHERSEnable Guest Browsing 110Using a Chromebook in Guest Mode 112Configure the Sign‐In Screen 114Restrict the Users Who Can Sign In 116Implement Parental Controls 118Sign In Multiple Users and Switch Among Them 124CHAPTER 6 RUNNING AND MANAGING APPS AND EXTENSIONSUnderstanding Apps and Extensions 128Run an App 130Switch Among Open Windows 132Organize Your Windows with Desks 134Install an App from the Web Store 136Install an Extension 138Pin and Unpin Extensions 140Configure Settings for an Extension 141Manage and Remove Extensions 142Install an Android App 144Run an Android App 146Configure Preferences for Android Apps 148CHAPTER 7 MANAGING YOUR FILES AND FOLDERSUnderstanding Your File Storage Options 152Open the Files App and Explore Local Storage 154Explore Your Google Drive Storage 156Enable and Use Google Drive’s Offline Mode 158Work with Files on USB Drives or microSD Cards 160Connect Your Chromebook to a Network Drive 162Connect to Another Cloud File Service 164Open a File from Storage 168Change the Default App for a File Type 170Copy a File or Folder 172Move a File or Folder 174Rename a File or Folder 176CHAPTER 8 SURFING THE WEBGet Info on a File or Folder 177Search for a File or Folder 178Compress and Uncompress Files 180Recover a File from the Trash on Google Drive 182Open a Web Page 186Follow a Link to a Web Page 187Open Several Web Pages at Once 188Navigate Among Web Pages 190Return to a Recently Visited Page 192Play Music and Videos on the Web 194Set Your Search Engine 196Create Bookmarks for Web Pages 198Download Files 200Run a Safety Check in Chrome 202Configure Chrome for Security and Privacy 204CHAPTER 9 SENDING AND RECEIVING EMAILAdd External Email Accounts to Gmail 212Navigate the Gmail Interface 216Receive and Read Your Email Messages 218Send an Email Message 220Reply to a Message 222Forward a Message 224Include Formatting, Emojis, and Pictures in Messages 226Send an Email Message Using Confidential Mode 228Schedule a Message for Sending Later 229Send a File or a Link via Email 230Receive a File or a Link via Email 232View Email Messages by Conversations 236Block and Unblock Senders 238Create Email Filters 240CHAPTER 10 CHATTING AND CALLINGChat via Google Hangouts from Gmail 246Chat via Google Hangouts 248Video Chat via Google Hangouts 250Make Video Calls via Google Duo 252Set Up Google Messages for Web 254Chat from Your Chromebook Using Messages 256CHAPTER 11 ORGANIZING YOUR LIFEManage Your Google Account 260Open Google Calendar and Create a Shortcut 268Navigate the Google Calendar Interface 270Create a New Calendar 272Create an Event in Google Calendar 274Share a Calendar with Other People 276Subscribe to a Shared Calendar 278Open Google Contacts and Create a Shortcut 280Add Someone to Your Contacts 282Change a Contact’s Information 284Import Contacts into Google Contacts 286Merge and Fix Contacts 288Organize Your Contacts with Labels 290Track Your Commitments with Google Tasks 292Get Directions with Google Maps 296CHAPTER 12 ADVANCED MOVES AND TROUBLESHOOTINGKeep Your Chromebook Current with Updates 300Connect to a Remote Network via a VPN 302Using Remote Access and Remote Support 306Deal with Frozen Apps and Chrome Browser Tabs 310Using Task Manager for Troubleshooting 312Troubleshoot Network Problems 314Troubleshoot Wi‐Fi Connections 316Shut Down a Frozen Chromebook 318Powerwash Your Chromebook 320Recover Your Chromebook 322Index 326
Domain-Driven Laravel
Map concepts and ideas in domain-driven design (DDD) and transpose them into clean, testable, and quality code that is effective alongside the Laravel framework. This book teaches you how to implement the concepts and patterns present in DDD in the real world as a complete web application. With these tactics and concepts in place, you'll engage in a variety of example applications, built from the ground up, and taken directly from real-world domains.Begin by reviewing foundational stepping stones (with small, manageable examples to show proof of concepts as well as illustrations to conceptualize the more complex topics) of both DDD and Laravel. Specifically, such topics as entities, value objects, developing an ubiquitous language, DTOs, and knowledge discovery. Next, you will dive into some more advanced topics of DDD and use these concepts as a guide to make customizations to the default Laravel installation, giving you an understanding of why these alterations are vital to the DDD and Laravel platform. Finally, you will cover the very powerful Eloquent ORM that comes stock with Laravel and understand how it can be utilized to represent entities, handle repositories, and support domain events.Although there is a basic coverage chapter and a setup tutorial for Laravel (along with a high level intro about the components used within it), Domain-Driven Laravel is best suited to readers who have been at least exposed to the framework and have had the opportunity to tinker around with it.WHAT YOU'LL LEARN* Utilize a blazing-fast rapid development pipeline built from DDD building blocks and facilitated with Laravel* Implement value objects, repositories, entities, anti-corruption layers and others using Laravel as a web framework* Apply enhanced techniques for quick prototyping of complex requirements and quality results using an iterative and focused approach * Create a base framework (Laravel) that can serve as a template to start off any project* Gain insight on which details are important to a project’s success and how to acquire the necessary knowledge WHO THIS BOOK IS FORIdeal for for frontend/backend web developers, devops engineers, Laravel framework lovers and PHP developers hoping to learn more about either Domain Driven Design or the possibilities with the Laravel framework. Those with a working knowledge of plain PHP can also gain value from reading this book.JESSE GRIFFIN is a seasoned Laravel and Symfony developer who specializes in building e-commerce systems as well as add-ons for a variety of purposes and platforms related to shipping, packaging, warehouse management, inventory control, barcode systems, asset management/tracking, customer tracking as well as statistics and reporting. He has over 10 years of professional web application development experience and holds a bachelor's degree in computer science, although he’s been programming since he was 9 years old.DOMAIN-DRIVEN LARAVELPART 1: AN ODD COMBINATION1. Laying the Foundation2. Foundational Bootcamp3. Domain Driven What?4. Introduction to Laravel5. Advanced Laravel6. Architecting a Claim Processing System7. Modeling and Implementing the Domain8. Modularizing LaravelPART 2: A DOMAIN DRIVEN APPROACH9. A Domain Driven Approach to Claim Submission10. A Domain Driven Approach to Claim Validation11. Context MapsPART 3: TECHNICAL ASPECTS OF DDD12. DTOs, Entities, and Value Objects13. Domain Events14. Repositories15. Factories and Aggregates16. ServicesPART 4: DDD VIA LARAVEL17. Hexagon Driven Development18. Applying DDL in the Real World19. Conclusion and Additional Thoughts
Building Secure Firmware
Use this book to build secure firmware.As operating systems and hypervisors have become successively more hardened, malware has moved further down the stack and into firmware. Firmware represents the boundary between hardware and software, and given its persistence, mutability, and opaqueness to today’s antivirus scanning technology, it represents an interesting target for attackers.As platforms are universally network-connected and can contain multiple devices with firmware, and a global supply chain feeds into platform firmware, assurance is critical for consumers, IT enterprises, and governments. This importance is highlighted by emergent requirements such as NIST SP800-193 for firmware resilience and NIST SP800-155 for firmware measurement.This book covers the secure implementation of various aspects of firmware, including standards-based firmware—such as support of the Trusted Computing Group (TCG), Desktop Management Task Force (DMTF), and Unified Extensible Firmware Interface (UEFI) specifications—and also provides code samples and use cases. Beyond the standards, alternate firmware implementations such as ARM Trusted Firmware and other device firmware implementations (such as platform roots of trust), are covered.WHAT YOU WILL LEARN* Get an overview of proactive security development for firmware, including firmware threat modeling* Understand the details of architecture, including protection, detection, recovery, integrity measurement, and access control* Be familiar with best practices for secure firmware development, including trusted execution environments, cryptography, and language-based defenses* Know the techniques used for security validation and maintenanceWho This Book Is ForGiven the complexity of modern platform boot requirements and the threat landscape, this book is relevant for readers spanning from IT decision makers to developers building firmwareJIEWEN YAO is a principal engineer in the Intel Architecture, Graphics, and Software Group. He has been engaged as a firmware developer for over 15 years. He is a member of the UEFI Security sub team, and the TCG PC Client sub working group. He has presented at industry events such as the Intel Developer Forum, UEFI Plugfest, and RSA conference. He worked with co-author Vincent Zimmer to publish 30 “A Tour Beyond BIOS” technical papers for tianocore.org and firmware.intel.com. He holds 40 US patents.VINCENT ZIMMER is a senior principal engineer in the Intel Architecture, Graphics, and Software Group. He has been engaged as a firmware developer for over 25 years and leads the UEFI Security sub team. He has presented at industry events such as the Open Source Firmware Conference, Linux Fest Northwest, Intel Developer Forum, UEFI Plugfest, Open Compute Project Summit, BlackHat Las Vegas, BSides Seattle, Toorcon, and Cansecwest. In addition to collaborating with Jiewen Yao on many white papers, he has co-authored several books on firmware, papers, and over 400 issued US patents.PART 1: OVERVIEWCHAPTER 1: INTRODUCTION SECURITYThreat ModelDesignValidationCHAPTER 2: INTRODUCTION HOST FIRMWAREIndustry StandardBoot Flow / Phase hand-offMinimal Firmware RequirementHardware ROTCPU/silicon initPCI resource allocation.prepare platform info (memmap/ACPI)Jump to OS.Runtime Interface (SMM, UEFI Runtime, ASL)General Principle - Protect / Detect / RecoveryPART 2: BOOT SECURITYCHAPTER 3: FIRMWARE RESILIENCE - PROTECTIONFlash LockFlash Wear outCapsule Flow (*)Signed UpdateCHAPTER 4: FIRMWARE RESILIENCE - DETECTIONBoot Flow (*)Intel Boot GuardOBB VerificationUEFI Secure BootLocalRemoteTXT- SX(coreboot)CHAPTER 5: FIRMWARE RESILIENCE – RECOVERYRecovery Flow (*)Signed RecoveryTop SwapRollback, SVNsCHAPTER 6: OS/LOADER RESILIENCEPlatform RecoveryOS Recovery(Android Verified Boot)CHAPTER 7: TRUSTED BOOTMeasured Boot Flow (*)SRTM (Boot Guard)DRTM (TXT)TPM1.2/2.0Physical PresenceMOR / Secure MORCHAPTER 8: AUTHENTICATIONUser AuthenticationHDD PasswordOPAL PasswordCHAPTER 9: S3 RESUMES3 resume flow (*)LockBoxCHAPTER 10: DEVICE SECURITYPCI Bus (*)DMA protectionDevice MeasurementDevice AuthenticationDevice firmware updateCHAPTER 11: SILICON SECURITY CONFIGURATIONFlash SPI lockSMM LockBAR LockChapter: Supply Chain (Vincent)OEM/ODM/BIOS vendor/IHVOpen sourceFingerprintingManufacturing flow to shipmentPART 3: DATA SECURITYCHAPTER 12: UEFI KERNELDXE/PEI Core (*)Heap GuardStack GuardNX protectionEnclaveCHAPTER 13: MANAGEMENT MODESMM Core (*)SMM Communication (*)StandaloneMM (*)MMIO ProtectionSecure SMM CommunicationIntel Runtime ResilienceSTM (SMI Transfer Monitor)Chapter: UEFI Variable (Vincent)AuthenticationVariable LockVariable CheckVariable Quota ManagementConfidentialityIntegrity and RollbackTPM BindingRPMBRPMCPART 4: MISCELLANEOUSCHAPTER 14: GENERAL CODING PRACTICEBuffer OverflowBanned APIInteger OverflowSafeInt libChapter: Cryptograph (Vincent)Hash usage in firmwareEncryption usage in firmwareSigning & verification usage in firmwareChapter 15: Compiler Defensive TechnologyStack CookieNon-ExecutableAddress Space RandomizationControl Flow Integrity (CFI) / Control Flow Enforcement (CET)Runtime Check (stack/un-initialized data/integer overflow)Chapter: Race Condition (Vincent)BSP/AP handling in UEFIBSP/AP handling in SMMTOC/TOUCHAPTER 16: INFORMATION LEAKSide ChannelMDSSMMCHAPTER 17: PROGRAMMING LANGUAGEC LanguageRust LanguagePart: Security TestCHAPTER 18: HBFAHardware EmulationSecurity Unit TestFuzzing (AFL)Static analysisCHAPTER 19: CHIPSECConfiguration CheckSMI FuzzingVariable fuzzingWhitelisting/BlacklistingPART 5: OTHERCHAPTER 20: CONCLUSIONPART 6: APPENDICESSecure coding checklistSecure review checklistAPI summaryPART 7: REFERENCES
The LEGO Arduino Cookbook
Push into new fields of technology using LEGO and Arduino with the projects in this Cookbook. MINDSTORMS EV3 inventions don’t have to be confined to LEGO factory-made sensors. Incorporate a wide range of sensors, displays, LED arrays, actuators, and even a smartphone into your creations.Add amazing capabilities to your LEGOs by building things such as a metal detector, long-range lidar, audio spectrum analyzer, weather station, and a smartphone. Step-by-step instructions bring these new devices to life. You’ll work with the reliable and inexpensive Arduino UNO to take your projects even further and make them truly smart. Learn to set up and program your Arduino UNO. Then learn data communications protocols (I2C, SPI, and PWM) to link sensors to the Arduino. A variety of data communications techniques are also demonstrated on passing data between the Arduino and the MINDSTORMS EV3 Intelligent Brick.Equipped with these new tools, LEGO inventors can build vast new capabilities into their designs.WHAT YOU'LL LEARN* Interface new sensors, devices, and communications with LEGO Mindstorms EV3* Work with communication protocols of pulse width modulation (PWM), I2c, and SPI* Convert pulse width modulation to analog voltage with resistor and capacitor componentsWHO THIS BOOK IS FORTech savvy fans of LEGO projects and hardware hackers. Also coaches or students involved in a school science/technology project or design competition.GRADY KOCH emphasizes building things from LEGO that can be applied to practical use in science, engineering, or security. He is the author of LEGO Optics: Projects in Optical and Laser Science with LEGO, High-Tech LEGO: Projects in Science, Engineering, and Spycraft with Technic and Mindstorms EV3, and Secrets of Eli’s LEGO Collection. He also writes for and runs hightechlego.com, which features various LEGO technology projects. His day job since 1987 has been as a research engineer with NASA Langley Research Center. There he works with technology for remote sensing atmospheric phenomena. He holds a PhD in Electrical Engineering. And he holds three patents in the field of wind measurements with lidar.IntroductionChapter 1: The LEGO Arduino WorkstationThe ArduinoAssembling the LEGO Arduino WorkstationThe Breadboard and WiringFinal AssemblySummaryChapter 2: Programming the EV3 Intelligent BrickGetting Started with the MINDSTORMS EV3 Programming EnvironmentProgrammingExtra and Aftermarket Device BlocksMy BlocksSummaryChapter 3: Programming the ArduinoInstalling the Arduino Integrated Development EnvironmentNavigating the Arduino IDERunning a First SketchWorking with LibrariesWorking with FunctionsSummaryChapter 4: Sensors and ElectronicsMINDSTORMS Sensors and MotorsAftermarket MINDSTORM-Compatible SensorsArduino SensorsPulsewidth Modulation (PWM)Inter-Integrated Circuit (I2C) IntefaceSerial Peripheral Interface (SPI)Electronic ComponentsResistorsCapacitorsSummaryChapter 5: The LEGO Metal Detector—I2C Sensor with EV3 Analog InterfaceMounting the Grove Inductive SensorThe Low-Pass FilterWiring ConnectionsEV3 CodeArduino SketchResultsAlternate MountSummaryChapter 6: Programmable LEDs—I2C Controller with EV3 Analog InterfaceMounting the Qwiic LED StickWiring ConnectionsAnalog Signals from the EV3 Intelligent BrickArduino SketchResultsSummaryChapter 7: I2C Communication with the EV3 Intelligent BrickThe EV3 I2C BlockBits and BytesWiring ConnectionsReading Bytes into the EV3 Intelligent BrickEV3 Code for ReadingArduino Sketch for ReadingWriting Bytes from the EV3 Intelligent BrickEV3 Code for WritingArduino Sketch for WritingI2C ConflictsSummaryChapter 8: The LEGO Lidar—PWM Sensor with EV3 I2C InterfaceMounting the LidarWiring ConnectionsEV3 Code for 10-m Distance CapabilityArduino Sketch for 10-m Distance CapabilitySoftware Modification for 40-m Distance CapabilityExample Application for Scanning a SceneExample Application for Measuring a TreeAdding a Camera to Build the LEGO Traffic MonitorSummaryChapter 9: The LEGO Weather Station—SPI Sensor with EV3 I2C InterfaceMounting the Atmospheric SensorBuilding the LEGO Weather StationWiring ConnectionsEV3 CodeArduino SketchExample Applications for Diurnal Weather TrendsSummaryChapter 10: The LEGO Spectrum Analyzer—Arduino Shield with I2C Input to EV3Mounting the Spectrum ShieldBuilding the Spectral DisplayWiring ConnectionsEV3 CodeArduino SketchResultsSummaryChapter 11: The Favorite Color Machine—Arduino Shield with I2C Output from EV3Mounting the NeoPixel ShieldMounting the LEGO MotorsWiring ConnectionsEV3 CodeArduino SketchUsing the Favorite Color MachineSummaryChapter 12: Connecting MINDSTORMS to a SmartphoneMounting the 1Sheeld+Building the Tilt MimicWiring Connections for the Tilt MimicEV3 Code for the Tilt MimicArduino Sketch for the Tilt MimicSetting up the Smartphone for the Tilt MimicRunning the Tilt MimicThe Intrusion MonitorBuilding the Intrusion Monitor Sensor MountBuilding the Intrusion Monitor Smartphone StandWiring Connections for the Intrusion MonitorEV3 Code for the Intrusion MonitorArduino Sketch for the Intrusion MonitorSetting up the Smartphone for the Intrusion MonitorRunning the Intrusion MonitorSummaryAppendix: Parts ListsParts Used in Chapter 1 for the LEGO Arduino WorkstationParts Used in Chapter 5 for the LEGO Metal DetectorParts Used in Chapter 6 for Programmable LEDsParts Used in Chapter 8 for the LEGO LidarParts Used in Chapter 9 for the LEGO Weather StationParts Used in Chapter 10 for the LEGO Spectrum AnalyzerParts Used in Chapter 11 for the Favorite Color MachineParts Used in Chapter 12 for Connecting MINDSTORMS to a Smartphone
Practical System Programming with C
This book teaches system programming with the latest versions of C through a set of practical examples and problems. It covers the development of a handful of programs, implementing efficient coding examples.Practical System Programming with C contains three main parts: getting your hands dirty with multithreaded C programming; practical system programming using concepts such as processes, signals, and inter-process communication; and advanced socket-based programming which consists of developing a network application for reliable communication.You will be introduced to a marvelous ecosystem of system programming with C, from handling basic system utility commands to communicating through socket programming. With the help of socket programming you will be able to build client-server applications in no time.The “secret sauce” of this book is its curated list of topics and solutions, which fit together through a set of different pragmatic examples; each topic is covered from scratch in an easy-to-learn way. On that journey, you’ll focus on practical implementations and an outline of best practices and potential pitfalls. The book also includes a bonus chapter with a list of advanced topics and directions to grow your skills.WHAT YOU WILL LEARN* Program with operating systems using the latest version of C * Work with Linux* Carry out multithreading with C Examine the POSIX standards* Work with files, directories, processes, and signals* Explore IPC and how to work with itWHO THIS BOOK IS FORProgrammers who have an exposure to C programming and want to learn system programming. This book will help them to learn about core concepts of operating systems with the help of C programming..Sri Manikanta Palakollu is a programmer and software developer with experience in C, C++, Java, and Python as well as Linux, POSIX, and other operating system-level programming. He is a tech reviewer for various tech book publishers. Sri also contributes to various open source projects.1. Introduction to Linux Environment• Getting familiar with Linux Kernel• Linux Kernel V/S Other OS Kernels.• File Handling Utilities• Process Utilities• Network Utilities• Backup Utilities.2. Implementation of Multithreading with C• Introduction to Threads• Threads V/S process• Introduction to Multithreading.• Importance of Multithreading.• Support of Multithreading in C• Creation of threads.• Practical Examples of Multithreading.• Use cases of Multithreading.3. Getting Started with System Programming• Understanding the POSIX Standard.• Introduction to API’s• Importance of API’s• Inbuilt API’s in C4. Files and Directories• Basic concepts in files• Files meta i-nodes• System Calls for Files• I/O Operations for Files• File Permissions.• Soft and Hard Links• System call for Directories.5. Processes and Signals• Introduction to process Environment• Environment Variables• Kernel Support for Processes• Process Creation• Concept of the Zombie process• Concept of Orphan Process• System Calls for Process management• Introduction to Signals• System calls for signals• Types of Signals6. Inter process Communication (IPC)• Introduction to IPC• Types of IPC• Creation of Named PIPES• Creation of UN-Named PIPES• Concept of Message Queues• Implementation of Message Queues• Concept of Semaphore• Implementation of Semaphore.• API for Named and unnamed PIPES• API for Message Queues• API for Semaphore.7. Shared Memory• Introduction to Shared Memory.• Kernel Support for Shared Memory.• Implementation of Shared Memory.• API for Shared Memory.8. Socket Programming• Introduction to Sockets• IPC Over Networks• API for Socket Programming• OSI Layer Protocol• TCP/IP Protocol• Client Server Architecture.• System calls for Socket Programming.• Implementation of Single Client Server Architecture.• Implementation of Multiple Client Server Architecture.9. Advanced Topics and Directions.
Practical Glimpse
Learn how to edit images and create compelling digital art with Glimpse, the newest open source alternative to Adobe Photoshop and GIMP. This book explores Glimpse's broad selection of tools and features that can create beautiful (raster) digital art; painting, drawings, and art created from photos by applying one of the many filters to create artistic effects.You will quickly become acquainted with this powerful program and understand how to use workspace tools and layers. You will learn step-by-step how to correct exposure, digitally retouch and repair damaged photos, and handle just about any photo editing task—even colorizing grayscale images. Practice files are provided with step-by-step instructions to jump into photo editing and art creation.Glimpse is a powerful program that is a viable alternative to Adobe Photoshop and other proprietary software. The possibilities of the art one can create are almost limitless—get started with it using this book today.WHAT YOU'LL LEARN* Navigate the Glimpse workspace* Use layers, which are essential in any professional quality image editing program* Work with the varied tools that Glimpse offers* Enhance, retouch, and modify digital images* Restore and repair damaged family photos, and create composites such as replacing backgrounds* Create compelling digital artwork using the drawing tools and by applying artistic filtersWHO THIS BOOK IS FORAnyone desiring to learn serious image editing with Glimpse. It can be used by both fledgling and professional photographers, freelance graphic designers, students, genealogists, and more. Because it’s free, it can be especially advantageous to teachers, students, and small business owners on a budget.PHILLIP WHITT is an author, photo retouch professional and graphic designer. He is the author of several Apress books and video tutorials pertaining to image editing using GIMP and Adobe Photoshop Elements. He has edited, retouched, and restored countless digital images since the late 1990s. He has served both clients from the general public and a number of commercial clients over the years. In addition to over 20 years of image editing and graphic design experience, he also has an Expert Rating Certification in Adobe Photoshop Skills, and VTC certifications in GIMP and Scribus.PART I. ACQUIRING, INSTALLING, AND GETTING TO KNOW GLIMPSE1. An Overview of Glimpse2. Layers, Channels, Paths, and Undo History3. An Overview of the ToolsPART II. WORKING WITH DIGITAL PHOTOS4. Correcting Exposure and Contrast5. Enhancing, Correcting, and Working with Color6. Modifying, Retouching, and Restoring Photos7. Compositing ImagesPART III. CREATING DIGITAL ART.8. Drawing Basics9. Creating Digital Artwork.10. Using Artistic Filters
Systems and Network Infrastructure Integration
IT infrastructures are now essential in all areas and sectors of human activity; they are the cornerstone of any information system. Thus, it is clear that the greatest of care must be given to their design, implementation, security and supervision in order to ensure optimum functionality and better performance. Within this context, Systems and Network Infrastructure Integration presents the methodological and theoretical principles necessary to successfully carry out an integration project for network and systems infrastructures. This book is aimed at anyone interested in the field of networks in general. In particular, it is intended for students of fields relating to networks and computer systems who are called upon to integrate their knowledge and skills, gained throughout their academic study, into a comprehensive project to set up a complete infrastructure, while respecting the necessary specifications.SAIDA HELALI is a university lecturer in Information Technology (specializing in networks and information systems) at the Institut Supérieur des Etudes Technologiques de Radès (Tunisia). He holds an ACREDITE master's degree (Analysis, Conception and Research in the Domain of Educational Technology Engineering), which was jointly awarded by the Université de Cergy-Pontoise (France), the Université de MONS (Belgium) and the Université de Genève (Switzerland). In 2017, he was chair of the Tunisian branch of the IEEE Education Society and he is also an acting member of AIPU TUNISIE, an international association about university pedagogy.Preface ixCHAPTER 1. INTRODUCTION TO PROJECT MANAGEMENT 11.1. Introduction 11.2. Project management 21.3. Project management methods and tools 31.3.1. Gantt diagram 51.3.2. RACI (Responsible, Accountable, Consulted, Informed) matrix 51.3.3. The concept of specifications 61.4. Chapter summary 8CHAPTER 2. SIMULATING NETWORK ARCHITECTURES WITH GNS3 92.1. Introduction 92.2. Definition 102.3. Introduction to GNS3 112.3.1. Functionalities of GNS3 122.3.2. Limitations 122.3.3. GNS3 installation 122.3.4. Getting started with GNS3 132.4. Chapter summary 25CHAPTER 3. GREEN IT 273.1. Introduction 273.2. Introduction of concept 283.3. Green IT trigger factors 293.4. Benefits of Green IT 293.5. The lifecycle of ICTs 303.6. Mechanisms and technical solutions for the implementation of a Green IT infrastructure 313.7. Green IT labels and standards 333.8. Some examples of Eco-ICTs 343.9. Chapter summary 36CHAPTER 4. DESIGN OF NETWORK INFRASTRUCTURES 374.1. Introduction 374.2. The founding principles of networks 384.2.1. Definition and preliminaries 384.2.2. Classification of digital data networks 394.2.3. Components of a network 404.2.4. Measuring network performance 454.2.5. Concepts of collision domain/broadcast domain and VLANs 474.3. Methods and models of IT network design 484.3.1. Principles of structured engineering 484.4. Assessment of needs and choice of equipment 544.5. Chapter summary 56CHAPTER 5. NETWORK SERVICES 575.1. Introduction 575.2. DHCP service 585.2.1. Introduction 585.2.2. Operating principle 585.2.3. Renewal of lease 625.2.4. The concept of a DHCP relay 625.3. DNS service 635.3.1. Introduction 635.3.2. Operating principle 635.4. LDAP service 665.4.1. Introduction 665.4.2. LDAP protocol 675.4.3. LDAP directory 685.5. E-mail service 705.5.1. Introduction 705.5.2. Architecture and operating principle. 715.5.3. Protocols involved 725.6. Web server 735.6.1. Introduction 735.6.2. Operating principle 735.6.3. The principle of virtual hosting 745.7. FTP file transfer service 765.7.1. Definition 765.7.2. Operating principle 775.7.3. Types 775.8. Chapter summary 78CHAPTER 6. SYSTEM AND NETWORK SECURITY 796.1. Introduction 796.2. Definitions, challenges and basic concepts 806.3. Threats/attacks 826.3.1. Access attacks 826.3.2. Modification attacks 836.3.3. Saturation attacks 836.3.4. Repudiation attacks 836.4. Security mechanisms 836.4.1. Encryption tools 846.4.2. Antivirus programs 846.4.3. Firewalls/IDS and IPS 846.4.4. VPNs 866.4.5. Other means of security 896.5. Security management systems: norms and security policies 916.5.1. Norms 916.5.2. The idea of security policy 926.6. Chapter summary 93CHAPTER 7. VIRTUALIZATION AND CLOUD COMPUTING 957.1. Introduction 957.2. Virtualization 967.2.1. Definition 967.2.2. Benefits of virtualization 967.2.3. Areas of application 977.2.4. Categories of virtualization 1007.2.5. Limits of virtualization 1037.3. Cloud computing 1037.3.1. Definitions 1037.3.2. Leverage factors and generic principles 1047.3.3. Architecture models 1047.3.4. Types of cloud 1077.3.5. Areas of application 1097.3.6. Advantages and limitations 1107.4. Chapter summary 111CHAPTER 8. QUALITY OF SERVICE AND HIGH AVAILABILITY 1138.1. Introduction 1138.2. Quality of service 1148.2.1. Motivation 1148.2.2. Definition(s) 1158.2.3. Objectives of QoS 1168.2.4. Metrics of QoS 1178.2.5. General principles of QoS 1188.2.6. QoS mechanisms 1208.3. High availability 1418.3.1. Redundancy in the physical layer 1438.3.2. Redundancy in the data link layer 1438.3.3. Redundancy in the network layer 1498.3.4. Redundancy in the application layer 1548.4. Chapter summary 156CHAPTER 9. MONITORING SYSTEMS AND NETWORKS 1579.1. Introduction 1579.2. Main concepts of network and service supervision 1589.2.1. Definition 1589.2.2. Challenges of monitoring 1589.2.3. Typology 1599.3. Monitoring protocols 1619.3.1. SNMP protocol (Simple Network Management Protocol) 1619.3.2. WMI (Windows Management Instrumentation) 1649.3.3. WS-Management (Web Services for Management) 1649.3.4. IPMI (Intelligent Platform Management Interface) 1649.3.5. NetFlow/IPFIX 1659.3.6. Netconf 1659.4. Monitoring tools 1659.4.1. Commercial monitoring solutions (HP OpenView, Tivoli) and software publisher solutions 1669.4.2. Free monitoring solutions 1679.5. Chapter summary 171References 173Index 179
Learn Rails 6
Effectively learn and apply software development and engineering techniques to web application development using Rails 6 with this accelerated tutorial. This book teaches modern engineering practices including git flow, containerization, debugging, testing, and deployment. Along the way, you’ll see how to build a social network application and then deploy it on a cloud provider such as Amazon Web Services.After reading and using this book, you'll be able to effectively build and deploy your Rails application to the cloud. You’ll also have used the Ruby on Rails framework to carry out the rapid development of an idea into a product without sacrificing quality.WHAT YOU WILL LEARN* Use the Ruby on Rails 6 web development framework* Integrate Docker with your Ruby on Rails code* Apply software engineering techniques to learning the Rails framework* Design, build, and deploy a social networking application to the Amazon cloudWHO THIS BOOK IS FORBeginners with at least some prior programming experience. Ruby experience is helpful, but not required.ADAM NOTODIKROMO (formerly Adam Pahlevi Baihaqi) is a software engineer committed to creating working and technically well-written apps. With his colleagues in Indonesia and Germany, he is building their company together: Sonasign. He lives in Meguro, Tokyo to enjoy bowls of Yokohama-style ramen and also dry tantanmen. He works with kind teammates at Autify.PART 1: INTRODUCTION TO RUBY AND RAILSCHAPTER 1: HELLO, RAILS· The world before the Rails· Favorite things I gained from Rails· Increased Signal-to-Noise ratio· Testability since Day 1· Programmer happiness· Installing Docker on Windows· Installing Docker on Ubuntu Linux· Installing Docker on MacOS· Creating simple containerized Rails app· MVC architecture· Deploying to Heroku· Git workflowCHAPTER 2: RUBY QUICK CRASH COURSE· What kind of a language is Ruby?· Interactive console· Number· String· Making a Class· Public functions· Private and protected membership· Instance variables· Constants· Building on a Module· Everything is an Object· Date· Array· Hash· Symbol (after having experience building Hash with Symbol vs String)· Instantiating other objects· Make your own Block (simple way to introduce yield & block, and learn build simple DSL)· Thread· Meta-programmingPart 2: Building a Social Network· What are we building?· Use case diagram· Entity diagramCHAPTER 3: BUILDING THE MODELS· User model· Inserting data· Updating data· Seeking data· Destroying data· Unit-test the model with RSpec· Complex Query· Status model and Has One-to-One relationship· Friendship model and Many-to-Many relationship· Testing up the relationships· Adding validations· Updating table schemaCHAPTER 4: LOGIN CAPABILITIES· Installing Devise· Routing· Layout· Building Sign in and Sign up form· Wiring up the Sign out· Testing up the requestCHAPTER 5: BUILDING POST AND TIMELINE· Building the Timeline· Introduction to Helper· Post a Status!· Integration testing with Capybara· Debugging with PryCHAPTER 6: ADD AS FRIEND· AJAX request· Sending friendship request· Confirming friendship request· Sending email· Background processingCHAPTER 7: DEPLOYING TO AWS· Making an Amazon account· Making an ElasticBeanstalk instance· Setting up deploy script· Seeing it online· How to associate it with a domain name?CHAPTER 8: WHAT NEXT?· Mobile App?· API controllers· Staging environment
DevOps
DevOps, eine Zusammensetzung aus den Begriffen DEVelopment und IT OPerations, ist ein Ansatz, der in vielen Start-ups, aber auch in großen Konzernen erfolgreich ist. DevOps definiert das Zusammenspiel von IT-Entwicklung, IT-Betrieb und dem Kunden mithilfe von Kultur, Werkzeugen und Prozessen neu. Dieses essential vermittelt das Wichtigste, was man dazu wissen muss. Die Autoren sind DevOps-Master und beschäftigen sich seit vielen Jahren mit DevOps sowie der Optimierung von IT-Services.Jürgen Halstenberg ist als Berater und Trainer bei der Maxpert GmbH seit vielen Jahren Teil der DevOps-Community in Deutschland.Dr. Bernd Pfitzinger ist Senior Experte bei der Toll Collect GmbH, Buchautor und Autor zahlreicher Veröffentlichungen.Dr. Thomas Jestädt ist IT-Manager, Buchautor und Lehrbeauftragter an der Technischen Universität Berlin.Einleitung - wozu DevOps?. - Was ist DevOps? - Everything is a Remix. - DevOps-Aktivitäten. - Kulturelle organisationale und kommunikative Aspekte von DevOps. - Wie führt man DevOps ein? - oder: Machen ist wie Wollen, nur krasser!. - DevOps - Kritik. - Zusammenfassung.
Eigene Chatbots programmieren für Dummies Junior
In diesem Buch lernst du Schritt für Schritt, wie du mit dem kostenlosen MIT App Inventor einen Chatbot entwickelst. Du erfährst zuerst, was Chatbots eigentlich sind und dass diese als Alexa, Siri, Bixby, Cortana und Google schon um uns sind. Du gehst der Frage nach, auf welche Weise Chatbots intelligent sind. Die erste Chatbot-App, die du nach Anleitung entwickelst, beantwortet eine einfache Frage von dir. Am Ende erzählt der Chatbot Witze. Weitere Beispiele zeigen dir, was sonst noch alles möglich ist: Der Chatbot wird immer schlauer und geht immer besser auf seinen Chatpartner ein. Bestens geeignet für Kinder und Jugendliche ab 10 Jahren. Nadine Bergner ist Professorin für Didaktik der Informatik an der TU Dresden. Sie gründete 2010 das InfoSphere - Schülerlabor Informatik an der RWTH Aachen. Unter ihrer Leitung wurden fast 40 Informatikmodule für Schülerinnen und Schüler der Klassenstufen 3 bis 13 entwickelt, die von Eintagesworkshops bis hin zu einwöchigen Feriencamps reichen. Tausende Kinder und Jugendliche nahmen an den Workshops teil.Thiemo Leonhardt ist Postdoc an der TU Dresden im Bereich "Didaktik der Informatik". Sein wissenschaftliches Interesse gilt insbesondere den Themen e-Learning, Simulationen, Kompetenzentwicklung durch Lernspiele und Educational Datamining.EINLEITUNG 5Hallo, zukünftige Chatbot-Entwicklerin oder zukünftiger Chatbot-Entwickler! 5Über den MIT App Inventor 2 5Über dieses Buch 6Über dich 7Über die Symbole, die wir in diesem Buch verwenden 8KAPITEL 1: WAS SIND CHATBOTS? 9Was ist ein Chatbot? 10Smart Home – alles ist vernetzt 12Sind Chatbots intelligent? 13KAPITEL 2: DEIN ERSTER CHATBOT 15Account anlegen, einloggen, starten 16Starte dein erstes Chatbot-Projekt! 24Ein Chatbot muss bedient werden können: Das Design 25Mit Chatbots reden – die Funktionalität 34Schritt für Schritt zum ersten Gespräch 44Option 1: Den Chatbot auf deinem Smartphone oder Tablet testen 44Option 2: Nur das Design deines Chatbots mittels Emulator testen 50Übers Ziel hinaus – noch mehr Möglichkeiten 52KAPITEL 3: CHATBOTS FÜR EINSTEIGER 53Der Sprachverzerrer 54Der Musik-Chatbot 64Der Sensor-Chatbot 87Sensor-Chatbot mit Beschleunigungssensor 95Sensor-Chatbot mit Lichtsensor 102KAPITEL 4: FÜR FORTGESCHRITTENE 108Schnick-Schnack-Schnuck-Chatbot 109Spieldesign 110Der Chatbot spielt mit 113Timer-Chatbot 125Die Zeitanzeige 126Sensoren für den Timer-Chatbot 130Kommandos geben 132KAPITEL 5: CHATBOTS FÜR PROFIS 146Der Witze-Chatbot 147Das Design 147Die Programmierung 149Der Quiz-Chatbot 153Weitere Ideen 157KAPITEL 6: BLICK ZU DEN PROFIS 159Programmieren mit Tastatur 160Bis zum nächsten Mal 160Zum Wiederfinden 161Über die Autoren 165
Essential Excel 2019
Create, edit, sort, analyze, summarize, and format data as well as graph it in Excel 2019. Chock full of visuals, user-friendly instructions, and reader exercises, this in-depth guide makes it easy for you to get on the bandwagon taking advantage of this powerful software and what it can do. ESSENTIAL EXCEL 2019 doesn’t mess around. It provides the most clear and concise, but complete, information you need to successfully use the expansive features of Excel in your work environment.The second edition of this soup-to-nuts book delivers essential how-to and reference information for users who are new to Excel, those who want to continue building their Excel skills, or anyone who wants to get up to speed on the latest changes and features in Excel 2019. It is heavy on the practical examples and light on the theory, providing a step-by-step process of what you need to do when you are working with Excel. You will begin with the basics, advancing as each chapter builds on knowledge from previous chapters. You will appreciate real-life examples and exercises that reinforce what you have learned, and upon finishing the book, you will have the confidence to use much more than the typical 10% that most people use in Excel.WHAT YOU WILL LEARN* Create amazing visualizations of your data* Get up to speed on easy and accurate methods for entering data* Extract the information you want from imported data; manipulate and format it to meet your needs* Export your results to other programs or share with others in the cloud* Organize, summarize, filter, and consolidate your data in multiple ways* Audit, validate, and protect your dataWHO THIS BOOK IS FORAnyone new to Excel or looking to take better advantage of the advanced features of the platformDAVID SLAGER has been a computer programmer for four decades, with a focus on Excel. He also was head of the computer department of a college for many years. He is currently a software manager. David has worked with spreadsheets since their introduction. As a consultant, he developed major e-learning training projects for agriculture and steel businesses and designed a simulation program that trained feed market managers to use analytics to improve their market position. He enjoys working with analytics and solving problems and has taught learners of all ages and levels. David holds an MS in Education, specializing in Instructional Media Development, a BA in Organizational Management, and an associate’s degree in Accounting, as well as many certifications.ANNETTE SLAGER has been involved in data management and employee training in the non-profit and higher education sectors. She has been responsible for coordinating donor stewardship events and processes, and in overseeing information entered into the donor/alumni data system. She has transitioned systems from manual accounting and processing to shared databases, and created learning manuals and training for employees. Annette has a bachelor’s degree in English Literature and a post-baccalaureate certificate in Technical Writing.Chapter 1 – Becoming Acquainted with ExcelChapter 2 – Navigating and Working with WorksheetsChapter 3 – Best Ways to Enter Data and Edit DataChapter 4: Formatting and Aligning DataChapter 5: Different Ways of Viewing and Printing Your WorkbookChapter 6: Understanding BackstageChapter 7: Creating and Using FormulasChapter 8: Excel’s Pre-existing FunctionsChapter 9: Auditing, Validating, and Protecting Your DataChapter 10: Using Hyperlinks, Combining Text, and Working with theStatus BarChapter 11: Transferring and Duplicating Data to Other LocationsChapter 12: Working with TablesChapter 13: Working with ChartsChapter 14: Importing DataChapter 15: Using PivotTables and PivotChartsChapter 16: Geography and Stock Data TypesChapter 17: Enhancing Workbooks with MultimediaChapter 18: Icons, 3D Images and Object GroupingChapter 19: Automating Tasks with Macros
Software-Prüfung
Die Prüfung der Software – nicht nur des Codes, sondern auch aller Dokumente – ist nach der systematischen Entwicklung die wichtigste Voraussetzung, um gute Software-Produkte zu schaffen. Daran hat sich seit der ersten Auflage dieses Buches im Jahre 1991 nichts geändert, seit der gründlichen Überarbeitung für die fünfte Auflage im Jahre 2003 erst recht nicht.Unser Thema hat durch die Lancierung des Zertifizierungsschemas für Software-Tester in den letzten Jahren eine grössere Öffentlichkeit erhalten. In Deutschland vom German Testing Board e.V. (GTB) und in der Schweiz vom SAQ Swiss Testing Board (STB) erteilte Zertifikate basieren auf dem innerhalb des International Software Testing Qualifications Board (ISTQB) abgestimmten Schema. Mit der Überarbeitung für diese Auflage haben wir die wenigen Lücken gegenüber dem Lehrplan des Basiszertifikats (Foundation Level), die wir finden konnten, geschlossen. Was über den Lehrplan hinaus geht, haben wir, soweit wir es weiterhin für gut und gültig halten, nicht gestrichen.Die grundlegenden Aussagen zur Software-Prüfung haben Bestand. Das Buch wendet sich an die Praktiker. Wenn sie die Inhalte erlernen, können sie sich zertifizieren lassen. Wenn sie die Inhalte beherzigen, können sie ihren Unternehmen mehr Nutzen bringen und haben auch selbst mehr von der Arbeit: Kompetent verrichtete Arbeit führt zum Erfolg, und der macht Spass.
Building Better PowerShell Code
Learn to write better PowerShell code via short, example-driven tips. This book covers tips to make your PowerShell scripts faster and easier to read all while following proven best practices. Written by a six-time Microsoft MVP and one of the first Microsoft PowerShell MVPs with over a decade of PowerShell experience, Building Better PowerShell Code gives you easily digestible tips you can begin using immediately.The book starts with an overview of some of the most important tips the author can muster which segues into a deeper dive with dozens of examples throughout the book. It takes you through tips such as using community modules, writing better comments, thinking of PowerShell functions as building blocks, and more. You will also see how to use parameters the right way and how to create simple logging code to easily record script activity.You will learn not only how to write better code, but also how to implement some mindset tricks, such as being explicit and specific with code and how to write code that reads well. You’ll get into error handling and also how to make your scripts more secure. Finally, you’ll examine the concept of building PowerShell tools and how to build scripts for speed.Other tips and best practices include:* Building Pester tests* Improving performance through parallel processing * Writing cross-platform scripts* Using filtering properly After reading this book and applying these tips, you will have an expert coding mindset and be able to build PowerShell code that’s efficient, readable, and compliant with many best practices.WHAT YOU WILL LEARN* Implement error handling* Create a logging function* Use regular expressions to search stringsImplement parallel processingWHO THIS BOOK IS FORPowerShell script developers.Adam Bertram is a 20+ year veteran of IT and an experienced online business professional. He’s a consultant, Microsoft MVP, blogger, trainer, published author and content marketer for multiple technology companies.INTRODUCTIONCHAPTER 1. DO THE BASICSPlan Before you CodeDon’t Reinvent the WheelBuild Functions as Building BlocksBuild Re-usable ToolsDon’t Focus Purely on PerformanceBuild Pester testsImplement Error handlingBuild Manageable CodeDon’t Skimp on SecurityLog Script ActivityParameterize EverythingLimit Script and Function InputMaintain Coding StandardsCode in ContextReturn Informative OutputUnderstand Your CodeUse Version ControlWrite for Cross PlatformWrite for the Next PersonUse a Code EditorCHAPTER 2. DON’T REINVENT THE WHEELUse Community ModulesLeverage Others’ workCHAPTER 3: USE VISUAL STUDIO CODEPowerShell Integrated Scripting EnvironmentUsing Visual studio over PowerShell ISECHAPTER 4. PLAN BEFORE YOU CODEWrite Comments Before CodingUse your Code as a Todo ListCHAPTER 5. CREATE BUILDING BLOCKS WITH FUNCTIONSWrite Functions with One, Single GoalBuild Functions with Pipeline SupportSave Commonly-Used, Interactive Functions to Your ProfileCHAPTER 6. PARAMETERIZE EVERYTHINGDon’t Hardcode. Always Use ParametersUse Parameter Sets When All Parameters Should Not be Used at OnceUse a PSCredential Object Rather than a Separate Username and PasswordCHAPTER 7. LOG SCRIPT ACTIVITYUse a Logging FunctionClean up Verbose MessagesCHAPTER 8. BUILD WITH MANAGEABILITY IN MINDDRY: Don’t Repeat YourselfDon’t Store Configuration Items in CodeAlways Remove Dead CodeCHAPTER 9. BE SPECIFICUse Strict ModeDon’t Ignore ErrorsValidate Input ParametersExplicitly Define Parameter TypesEnforce Mandatory ParametersUse the #requires Statement .CHAPTER 10. WRITE FOR THE NEXT PERSONGive your Variables Meaningful NamesString SubstitutionDon’t use Aliases in a ScriptPut functions in Alphabetical Order in a ModuleExplain Regular Expressions with CommentsWrite Comment-Based HelpWeigh the Difference Between Performance and ReadabilityCHAPTER 11. HANDLE ERRORS GRACEFULLYForce Hard-Terminating ErrorsAvoid Using $?Copy $Error[0] to your Own VariableCHAPTER 12. DON’T SKIMP ON SECURITYSign ScriptsUse Scriptblock LoggingNever Store Sensitive Information in Clear Text in CodeDon’t use Invoke-ExpressionUse PowerShell Constrained Language ModeCHAPTER 13. STICK TO POWERSHELLUse Native PowerShell Where PossibleUse PowerShell standard cmdlet namingCHAPTER 14. BUILD TOOLSCode for PortablityWrap Command-Line Utilities in Functions .Force Functions to Return Common Object TypesEnsure Module Functions Cover all the VerbsCHAPTER 15. RETURN STANDARDIZED, INFORMATIVE OUTPUTUse Progress Bars WiselyLeave the Format Cmdlets to the ConsoleUse Write-VerboseUse Write-InformationEnsure a Command Returns One Type of ObjectOnly Return Necessary Information to the PipelineCHAPTER 16. BUILD SCRIPTS FOR SPEEDUse an ArrayList or GenericList .NET Class when Elements Need to be Added to an ArrayUse a Regular Expression to Search Multiple String ValuesDon’t use Write-Host in BulkDon’t use the PipelineUse the .foreach() and .where() Methods .Use Parallel Processing .Use the .NET StreamReader Class When Reading Large Text FilesCHAPTER 17: USE VERSION CONTROLCreate repositories based on a purposeCommit Code changes based on small goalsCreate a branch based on the futureCHAPTER 18. BUILD TESTSLearn the Pester BasicsLeverage Infrastructure TestsAutomate Pester TestsUse PSScriptAnalyzerCHAPTER 19. MISCELLANEOUS TIPSWrite for Cross Platform .Don’t Query the Win32_Product CIM ClassCreate a Shortcut to run PowerShell as Administrator . .Store ‘Formatable’ Strings for Use LaterUse Out-GridView for GUI-based Sorting and FilteringDon’t Make Automation Scripts InteractiveCHAPTER 20. SUMMARY
Beginning R 4
Learn how to use R 4, write and save R scripts, read in and write out data files, use built-in functions, and understand common statistical methods. This in-depth tutorial includes key R 4 features including a new color palette for charts, an enhanced reference counting system (useful for big data), and new data import settings for text (as well as the statistical methods to model text-based, categorical data).Each chapter starts with a list of learning outcomes and concludes with a summary of any R functions introduced in that chapter, along with exercises to test your new knowledge. The text opens with a hands-on installation of R and CRAN packages for both Windows and macOS. The bulk of the book is an introduction to statistical methods (non-proof-based, applied statistics) that relies heavily on R (and R visualizations) to understand, motivate, and conduct statistical tests and modeling.Beginning R 4 shows the use of R in specific cases such as ANOVA analysis, multiple and moderated regression, data visualization, hypothesis testing, and more. It takes a hands-on, example-based approach incorporating best practices with clear explanations of the statistics being done.You will:* Acquire and install R and RStudio* Import and export data from multiple file formats* Analyze data and generate graphics (including confidence intervals)* Interactively conduct hypothesis testing* Code multiple and moderated regression solutionsWHO THIS BOOK IS FORProgrammers and data analysts who are new to R. Some prior experience in programming is recommended.MATT WILEY is a tenured, associate professor of mathematics with awards in both mathematics education and honor student engagement. He earned degrees in pure mathematics, computer science, and business administration through the University of California and Texas A&M systems. He serves as director for Victoria College’s quality enhancement plan and managing partner at Elkhart Group Limited, a statistical consultancy. With programming experience in R, C++, Ruby, Fortran, and JavaScript, he has always found ways to meld his passion for writing with his joy of logical problem solving and data science. From the boardroom to the classroom, Matt enjoys finding dynamic ways to partner with interdisciplinary and diverse teams to make complex ideas and projects understandable and solvable.JOSHUA F. WILEY is a lecturer in the Monash Institute for Cognitive and Clinical Neurosciences and School of Psychological Sciences at Monash University and a senior partner at Elkhart Group Limited, a statistical consultancy. He earned his PhD from the University of California, Los Angeles, and his research focuses on using advanced quantitative methods to understand the complex interplays of psychological, social, and physiological processes in relation to psychological and physical health. In statistics and data science, Joshua focuses on biostatistics and is interested in reproducible research and graphical displays of data and statistical models. Through consulting at Elkhart Group Limited and former work at the UCLA Statistical Consulting Group, he has supported a wide array of clients ranging from graduate students, to experienced researchers, and biotechnology companies. He also develops or co-develops a number of R packages including varian, a package to conduct Bayesian scale-location structural equation models, and MplusAutomation, a popular package that links R to the commercial Mplus software.1: Installing R2: Installing Packages and Using Libraries3: Data Input and Output4: Working with Data5: Data and Samples6: Descriptive Statistics7: Understanding Probability and Distribution8: Correlation and Regression9: Confidence Intervals10: Hypothesis Testing11: Multiple Regression12: Moderated Regression13: Analysts of VarianceBibliography
SQL Server Data Automation Through Frameworks
Learn to automate SQL Server operations using frameworks built from metadata-driven stored procedures and SQL Server Integration Services (SSIS). Bring all the power of Transact-SQL (T-SQL) and Microsoft .NET to bear on your repetitive data, data integration, and ETL processes. Do this for no added cost over what you’ve already spent on licensing SQL Server. The tools and methods from this book may be applied to on-premises and Azure SQL Server instances. The SSIS framework from this book works in Azure Data Factory (ADF) and provides DevOps personnel the ability to execute child packages outside a project—functionality not natively available in SSIS.Frameworks not only reduce the time required to deliver enterprise functionality, but can also accelerate troubleshooting and problem resolution. You'll learn in this book how frameworks also improve code quality by using metadata to drive processes. Much of the work performed by data professionals can be classified as “drudge work”—tasks that are repetitive and template-based. The frameworks-based approach shown in this book helps you to avoid that drudgery by turning repetitive tasks into "one and done" operations. Frameworks as described in this book also support enterprise DevOps with built-in logging functionality.WHAT YOU WILL LEARN* Create a stored procedure framework to automate SQL process execution* Base your framework on a working system of stored procedures and execution logging* Create an SSIS framework to reduce the complexity of executing multiple SSIS packages* Deploy stored procedure and SSIS frameworks to Azure Data Factory environments in the cloudWHO THIS BOOK IS FORDatabase administrators and developers who are involved in enterprise data projects built around stored procedures and SQL Server Integration Services (SSIS). Readers should have a background in programming along with a desire to optimize their data efforts by implementing repeatable processes that support enterprise DevOps.ANDY LEONARD is Chief Data Engineer at Enterprise Data & Analytics, creator and Data Philosopher at DILM (Data Integration Lifecycle Management) Suite, an Azure Data Factory and SQL Server Integration Services trainer and consultant, and a BimlHero. He is a SQL Server database and data warehouse developer, community mentor, engineer, and farmer. Andy is co-author of SQL Server Integration Services Design Patterns, Data Integration Life Cycle Management with SSIS, and The Biml Book.KENT BRADSHAW is the founder or Tudor Data Solutions, LLC. With over 40 years of IT experience, he is a SQL Server database/ETL developer and database architect with a background is in Medicaid claims, public schools, government, retail, and insurance systems. In 2011, Kent founded Tudor Data Solutions, LLC to pursue new development opportunities which led to his association with Andy Leonard and Enterprise Data & Analytics. In 2017, Kent received the MPP certification for Data Science.PART I: STORED PROCEDURE-BASED DATABASE FRAMEWORKS1. Stored Procedures 1012. Automation with Stored Procedures3. Stored Procedure Orchestrators4. A Stored Procedure-Base Metadata-Driven FrameworkPART II: SSIS FRAMEWORKS5. A Simple Custom File-Based SSIS Framework6. Framework Execution Engine7. Framework Logging8. Azure-SSIS Integration Runtime9. Deploy A Simple Custom File-Based Azure-SSIS Framework10. Framework Logging in ADF11. Fault Tolerance in the ADF Framework
Learn Blockchain by Building One
As cryptocurrencies and their underlying data structure, blockchains, become further intertwined in our daily lives, a full understanding of them is essential to anyone who wants to keep up and remain informed of the future of finance. There is no better learning method than a hands-on one, and Learn Blockchain by Building One offers just that.Develop your own blockchain using Python with step-by-step instructions from author Daniel van Flymen, an expert in the field. You will come away with a confident working knowledge of popular cryptocurrencies such as Bitcoin and Ethereum and which foundations make them work. Through helpful exercises and real-world examples, you will understand the core concepts of peer-to-peer networking, proof of work, hashing, encryption, and digital signatures.Learn Blockchain by Building One gives you timely, real-world lessons in blockchain and cryptocurrencies that you will need as our modern society becomes increasingly digitally sophisticated. The lasting implications of such technology, including the security of personal transactions and the role of government regulation, are not to be underestimated. Stay ahead of the curve and become a confident blockchain builder now!WHAT YOU WILL LEARN* Develop a fully-fledged blockchain in Python* Obtain a ground-up understanding of of Proof of Work* Grasp core cryptographic concepts, such as hashing, encryption, and digital signatures* Understand how gossip protocols and peer-to-peer networking works by implementing a TCP client-server* Realize the differences and trade-offs between popular blockchains such as Bitcoin and EthereumWHO THIS BOOK IS FORThis book is aimed at intermediate programmers in any area from finance to academia. Readers should be comfortable reading and writing basic Python.Daniel van Flymen is currently a Director of Engineering at Candid in New York City. As a seasoned Python veteran, he’s a regular code contributor to popular open source projects, and is a guest on the Software Engineering Daily podcast, having been on popular episodes such as Understanding Bitcoin Transactions and Blockchain Engineering. He frequently writes on Medium and has a number of popular articles, such as “Learn Blockchains by Building One” and “Learn Blockchains using Spreadsheets.” He is passionate about making Bitcoin accessible to everyone through education.