Programmierung
Beginning Kotlin
This book introduces the Kotlin programming skills and techniques necessary for building applications. You'll learn how to migrate your Java programming skills to Kotlin, a Java Virtual Machine (JVM) programming language.The book starts with a quick tour of the Kotlin language and gradually walks you through the language in greater detail over the course of succeeding chapters. You’ll learn Kotlin fundamentals like generics, functional programming, type system, debugging, and unit testing. Additionally, with the book’s freely downloadable online appendices, you’ll discover how to use Kotlin for building Spring Boot applications, data persistence, and microservices.WHAT YOU WILL LEARN* Learn the Kotlin language, its functions, types, collections, generics, classes, and more* Dive into higher-order functions, generics, debugging, and unit testing* Apply the fundamentals of Kotlin to Spring Boot * Add Hibernate to your Spring Boot application for persistence and data accessibility * Take advantage of functional programming available in KotlinWHO THIS BOOK IS FORJava developers who are new to Kotlin and want to leverage Kotlin, particularly for building Spring Boot apps.TED HAGOS is the CTO and Data Protection Officer of RenditionDigital International (RDI), a software development company based out of Dublin. Before he joined RDI, he had various software development roles and also spent time as a trainer at IBM Advanced Career Education, Ateneo ITI, and Asia Pacific College. He spent many years in software development dating back to Turbo C, Clipper, dBase IV, and Visual Basic. Eventually, he found Java and spent many years working with it. Nowadays, he’s busy with full-stack JavaScript, Android, and Spring applications.Part 1: Kotlin1. Setup2. Tour of the Kotlin language3. Functions4. Types5. Higher order functions6. Collections7. Generics8. Classes9. Unit Testing10. Java InteroperabilityPart 2: Spring Boot11. Spring and SpringBoot12. Setup13. Getting started with a projecta. Using the project initializrb. Auto restarting an appc. Views and backing beansd. Views and controller functionse. Servicesf. Posting to a controllerg. Dependency Injection14. Functional Programminga. Overviewb. Function parametersc. Listsd. Filter and flatMape. Reduce and Foldf. Maps15. Hibernatea. Adding the dependenciesb. Entitiesc. Persisting to a database16. Reflectiona. Overviewb. Ins
Beginning Go Programming
Understand and write programs in Go, a multi-paradigm language with built-in features for concurrent programming. This book enables developers to build software that is simple, reliable, and efficient. It'll also help beginners to start programming Go-based applications.Beginning Go Programming begins by explaining the programming fundamentals of the Go language, including basic syntax, data type and structures, and the use of functions and methods. Next, it covers string formatting, Unicode data handling, and how to use regular expressions in Go. Further, it discusses how to encode and decode JSON formatted data for Go applications, and how to work with HTTP in Go. It concludes by exploring concurrency and covering the most powerful features of Go, as well as tips and tricks related to it.After reading this book and working through its practical examples, you will be ready to begin programming your own Go-based applications.WHAT YOU WILL LEARN* Understand the fundamentals of the Go programming language* Master the different features of Go and how to implement real-life scenarios using the language* Work with text in Go, such as string formatting and Unicode data handling* Work with HTTP in GoWHO THIS BOOK IS FORProgrammers and developers looking to learn Go programming language concepts for efficient application building.RUMEEL HUSSAIN, has a Bachelors Degree in Computer Science and is presently working as a Senior Blockchain Developer and Senior Tech Evangelist at BNB Chain (UAE), supporting the development and growth of the ecosystem. He is an information technology enthusiast with more than five years of experience leading and implementing blockchain applications and architectures, analyzing and refactoring modern programming languages like Go, troubleshooting cloud infrastructure, and assessing security risks. His current work is focused on leveraging blockchain technology and crypto to achieve the full potential of Web3 applications.MARYAM ZULFIQAR has four years of research experience and has a Masters Degree in Computer Science. She is currently working as a Tech Martian in BNB Chain (Pakistan Region). She also works as a Senior Researcher and Developer. She is passionate about developer education, especially in sharing her knowledge on topics that are "the talk of the town" in the technology field. She has also worked in the capacity of researcher and team lead roles for HEC-funded projects targeted at community growth and welfare.Chapter 1: Introduction to GoChapter Goal: Provides an overview of the Go programming language in terms of its basic features.No of pages:Sub -Topics:● Is GoLang Static-Typed or Compiled?● Is Go Object-Oriented?● Features that make Go lang the premium choice for programming● Features excluded from Go lang● Go programsChapter 2: Go BasicsChapter Goal: This chapter is intended to cover the programming fundamentals of the Go programming language. Covering basic syntax, program structure, data types, data structures, statements, functions, I/O from files, concurrency, and error handling.No of pages:Sub - Topics○ Overview■ Ancestors of Go○ Go Syntax○ Installing Go○ Go playground○ Using IDE for developing Go applications○ Getting started with programming Go applications■ Hello world!■ Different parts of Go programs■ Executing Go program■ Keywords○ Variables■ Variable data types■ Naming conventions■ Declaring variables■ Taking user input● Using scanf● Using scanln● Using bufio■ Math operators and packages● The math package● Dates and times● Operator precedence in Go○ Memory management & reference values■ New vs make● Incorrect memory allocation example● Correct memory allocation example■ Memory deallocation○ Pointers Data Type■ What is a pointer■ Declaring pointers■ Comparison with Java and C-style languages○ Ordered values in arrays and slices■ Arrays in Go● Declaring arrays● Initialising arrays● Accessing array elements● Querying the size of array● Multi-dimensional arrays [not included yet]■ Slices in Go● Defining a slice● The len() and cap() functions● Nil slice● Sub-slicing● append() and copy() functions● Sorting slices○ Maps■ Defining maps■ Adding entries in a map object■ Deleting entries from a map object■ Iterating over stored values in a map object■○ Structs Data Type■ Defining a struct■ Accessing structure members■ Structures as function arguments■ Pointers to structures○ Program flow■ If statement■ Switch statement■ For statement■ Goto statement○ Functions■ Defining a function■ Calling a function■ Returning multiple values from Function■ Function arguments■ Methods○ Read/Write text files■ Write text files■ Read text files○ HTTP Package○ JSON○ Go Recipes: Basics programming fundamentals■ Overview■ Numbers and slice in Go■ Working with maps in Go■ Go error handling■ Defer and panic recovery○ Hands-On challengeChapter 3: Working with TextChapter Goal: In this chapter, we will discuss how to work with text in Go language. Specifically, we will cover the string formatting, Unicode data handling, and how to use regular expressions in Go language.No of pages:Sub -Topics● Go String formatting and working with unicode● Case insensitive comparisons in Go● Regular expressions and reading text files with Go● Hands-On challengeChapter 4: Structs, Methods, and InterfacesChapter Goal: In this chapter, we will provide exercise related to the usage of structs, methods, and interfaces.No of pages:Sub -Topics:● Overview● Go structs, methods and interfaces○ Structs○ Methods○ Interfaces● Empty interface and working with iota in Go○ JSON Encoding/Decoding○ Generics● Hands-on challengeChapter 5: Working with JSONChapter Goal: In this chapter, we will discuss working with JSON, especially, how to encode and decode the JSON formatted data for use in Go applications.No of pages:Sub -Topics:● Overview● Unmarshalling JSON with GO● Parsing complex JSON with Go● Marshalling JSON with Go● Dealing with zero and missing values in Go● Using mapstructure to handle arbitrary JSONChapter 6: HTTPChapter Goal: In this chapter, we cover on how to work with HTTP in Go language. No of pages:Sub -Topics● Overview● HTTP calls in Go● Authentication and Writing an HTTP server in Go● REST with gorilla/mux● Hands-on challengeChapter 7: ConcurrencyChapter Goal: Go has rich support for concurrency using goroutines and channels. In this chapter, we discuss the most powerful feature of the Go Language, i.e., concurrency.No of pages:Sub -Topics● Understanding goroutines○ Converting sequential code to concurrent in Go● Using Goroutines with shared resources○ Seeing how shared resources impact goroutines○ Accessing shared resources using mutual exclusion○ Using atomic counters for modifying shared resources● Synchronizing Goroutines○ Timeouts in Go○ sync.WaitGroup and sync.Once○ Using a pool of goroutines○ sync/atomic● Hands-on ChallengeChapter 8: Tips & TricksChapter Goal: this chapter we cover different tips and tricks related to the Go language.No of pages:Sub -Topics● Alternate ways to import packages○ goimports○ Organization● Custom constructors● Breaking down code into packages● Sets● Dependency package management● Using errors● Quick look at some compiler’s optimizations● Set the build id using git’s SHA● How to see what packages my app imports● Iota: Elegant Constants○ Auto Increment○ Custom Types
Beginning Programming with Python For Dummies
CREATE SIMPLE, EASY PROGRAMS IN THE POPULAR PYTHON LANGUAGEBeginning Programming with Python For Dummies is the trusted way to learn the foundations of programming using the Python programming language. Python is one of the top-ranked languages, and there’s no better way to get started in computer programming than this friendly guide. You’ll learn the basics of coding and the process of creating simple, fun programs right away. This updated edition features new chapters, including coverage of Google Colab, plus expanded information on functions and objects, and new examples and graphics that are relevant to today’s beginning coders. Dummies helps you discover the wealth of things you can achieve with Python.* Employ an online coding environment to avoid installation woes and code anywhere, any time * Learn the basics of programming using the popular Python language * Create easy, fun projects to show off your new coding chops * Fix errors in your code and use Python with external data sets Beginning Programming with Python For Dummies will get new programmers started—the easy way.JOHN MUELLER is an experienced technology writer with more than 100 titles to his name. He has experience with networking, AI, data, and programming. He is the author of the previous editions of Beginning Programming with Python For Dummies and many other For Dummies titles. Introduction 1PART 1: GETTING STARTED WITH PYTHON 7Chapter 1: Talking to Your Computer 9Chapter 2: Working with Google Colab 23Chapter 3: Interacting with Python 41Chapter 4: Writing Your First Application 57Chapter 5: Performing Magic 79PART 2: TALKING THE TALK 93Chapter 6: Storing and Modifying Information 95Chapter 7: Managing Information 107Chapter 8: Making Decisions 127Chapter 9: Performing Repetitive Tasks 143Chapter 10: Dealing with Errors 157PART 3: PERFORMING COMMON TASKS 187Chapter 11: Interacting with Packages 189Chapter 12: Working with Strings 215Chapter 13: Managing Lists 239Chapter 14: Collecting All Sorts of Data 257Chapter 15: Creating and Using Classes 279PART 4: PERFORMING ADVANCED TASKS 301Chapter 16: Storing Data in Files 303Chapter 17: Sending an Email 321PART 5: THE PART OF TENS 337Chapter 18: Ten Amazing Programming Resources 339Chapter 19: Ten Ways to Make a Living with Python 349Chapter 20: Ten Tools That Enhance Your Python Experience 357Chapter 21: Ten (Plus) Libraries You Need to Know About 369Index 379
Programming for Absolute Beginners
New programmers start here...this book introduces students or aspiring professionals to the world of computer programming using JavaScript and related technologies. This book doesn't just teach the basics of programming, but also all of the tools that new programmers need to get started, including the basics of making web pages and how the Internet works.Programming for Absolute Beginners offers practice problems, activities, and a host of resources to get new programmers started, plus a large glossary of terms introduced in the book and that a new programmer might encounter when learning on their own. No special software is required; this book will help you regardless of what your computer setup is, and source code will be freely available via GitHub.WHAT YOU WILL LEARN* How computers work* How computers communicate over networks* How web pages are built with HTML and CSS* How JavaScript works* How JavaScript interacts with web pages* Intermediate JavaScript topics such as recursion and scoping* Using JavaScript for network communicationWHO THIS BOOK IS FORAnyone wanting to begin computer programming, including students who need to learn the fundamentals and early professionals who want to go back and revisit the basics.JONATHAN BARTLETT is a software developer, researcher, and writer. His first book, Programming from the Ground Up, has been required reading in computer science programs from DeVry to Princeton. He has been the sole or lead author for eight books on topics ranging from computer programming to calculus. He is a technical lead for ITX, where his specialty is getting stuck projects unstuck. He is a senior software developer for McElroy Manufacturing, spearheading projects in web, mobile, and embedded software. He is now the author of several Apress books including Electronics for Beginners and more.Chapter 1: Introduction.-Part I: Computers, Data, and Communication.-Chapter 2: A Short History of Computers.-Chapter 3: How Computers Communicate.-Chapter 4: How a Computer Looks at Data.-Chapter 5: How Computers Work.- Part II: Basic Ingredients for Web Programming.-Chapter 6: The HTML File Format.-Chapter 7: Introduction to Cascading Style Sheets.-Chapter 8: Your First JavaScript Program.-Part III: JavaScript Fundamentals.-9: Basic JavaScript Syntax.-Chapter 10: Introducing Functions and Scope.-Chapter 11: Grouping Values Together with Objects and Arrays.-Chapter 12: Interacting with Web Pages.-Part IV: Intermediate JavaScript.-Chapter 13: Recursive Functions and the Stack.-Chapter 14: Manipulating Functions and Scopes.-Chapter 15: Intermediate Objects.-Part V: Programming Applications.-Chapter 16: Modernizing JavaScript.-Chapter 17: Working With Remote Services (APIs).-Chapter 18: Writing Server-Side JavaScript.-Chapter 19: Conclusion.-Appendix A: Glossary.-Appendix B: Operating System and Browser Specifics.-Appendix C: The JavaScript Toolbox on Docker.-Appendix D: Character Encoding Issues.-Appendix E: Additional Machine Language Programs.
Beginning Spring Boot 3
Learn the Spring Boot 3 micro framework and build your first Java-based cloud-native applications and microservices. Spring Boot is the lightweight, nimbler cousin to the bigger Spring Framework, with plenty of "bells and whistles." This updated edition includes coverage of Spring Native, which will help you speed up your Spring Boot applications, as well as messaging with Spring Boot, Spring GraphQL, Spring Data JDBC and reactive relational database connectivity (R2DBC) with SQL.This new edition also covers enhancements to actuator endpoints, MongoDB 4.0 support, layered JAR and WAR support, support to build OCI images using Cloud Native Build Packs, changes to the DataSource initialization mechanism, and how bean validation support has moved to a separate spring-boot-validation-starter module. This book will teach you how to work with relational and NoSQL databases for data accessibility using Spring Boot with Spring Data, how to persist data with the Java Persistence APIs (JPA), MyBatis, and much more. You'll learn how to enhance your native cloud or web applications with other APIs such as REST and how to build reactive web applications using Spring Boot with WebFlux.Finally, you'll learn how to test applications using JUnit 5, as well as how to secure and deploy your application or service to cloud providers like Heroku. After reading Beginning Spring Boot 3, you'll have the skills needed to start building your own Spring Boot cloud-native, Java-based applications and microservices with confidence, and to take the next steps in your career.WHAT YOU WILL LEARN* Explore the Spring Boot 3 micro framework using Spring Native for faster, better performance* Build cloud-native Java applications and microservices with Spring Boot* Work with relational and NoSQL databases using Boot with Spring Data* Create reactive web applications using Spring's WebFlux* Secure, test, and deploy applications and servicesWHO THIS BOOK IS FORIT professionals such as cloud architects, infrastructure administrators, and network/cloud operatorsSIVA PRASAD REDDY KATAMAREDDY is a Software Architect with 16 years of experience in building scalable distributed enterprise applications. He has worked in banking and e-commerce domains using Java, Kotlin, GoLang, SpringBoot, JPA/Hibernate, MicroServices, REST APIs, SQL, and NoSQL Databases. His current technical focus is on modern architectures, including MicroServices, CI/CD, and DevOps, as well as infrastructure automation using Jenkins, Terraform, AWS CDK and Pulumi.SAI SUBRAMANYAM UPADHYAYULA is a passionate software engineer who likes to share his knowledge about Java and Spring Boot through his blog and YouTube Channel, "Programming Techie." He has experience working with a variety of technologies, including Java, Kotlin, Typescript, Spring Boot, JPA/Hibernate, MongoDB, Angular, and Golang. He also dabbles with DevOps-related activities by working with Jenkins and AWS.Chapter - 1: Introduction to Spring BootChapter - 2: Getting Started with Spring BootChapter - 3: Spring Boot EssentialsChapter - 4: Web Applications with Spring BootChapter - 5: Working with JDBCChapter - 6: Working with MyBatisChapter - 7: Working with JOOQChapter - 8: Working with JPAChapter - 9: Working with MongoDBChapter - 10: Building REST APIs Using Spring BootChapter - 11: Reactive Programming Using Spring WebFluxChapter - 12: Securing Web ApplicationsChapter - 13: Spring Boot ActuatorChapter - 14: Testing Spring Boot ApplicationsChapter - 15: GraphQL with Spring BootChapter - 16: Deploying Spring Boot ApplicationsChapter - 17: Spring Boot AutoconfigurationChapter - 18: Creating a Custom Spring Boot StarterChapter - 19: Spring Boot With Kotlin, Scala, and GroovyChapter - 20: Introducing JHipsterChapter - 21: Spring Native
Pro Cloud Native Java EE Apps
This professional guide to Java-based cloud native apps DevOps dives deeper into building and deploying production ready cloud native apps using the increasingly popular open source Eclipse MicroProfile framework, Jakarta EE 10 APIs and the most popular Kubernetes container orchestration tool.After a quick overview of Jakarta EE and MicroProfile, Pro Cloud Native Java EE Apps starts you on your way by walking you through a cloud-native Jakarta EE-based application case study that will be forged piece-by-piece over the course of the book. Next, you'll interject dependencies and data persistence capabilities as microservices to go with the case study app that you are building.Next, you'll employ the REST API using Jakarta REST APIs and the MicroProfile RESTClient. You'll also explore ways to add resilience to your app, keep count with metrics, check on your app's health, secure your app, and test and complete your production-ready cloud-native app.Finally, you'll dive into migrating a monolith to become a production ready cloud-native app. After reading this book, you'll be able to build your own production ready cloud-native Java app using Jakarta EE and MicroProfile.WHAT YOU WILL LEARN* Build and deploy a production-ready cloud-native Java app using MicroProfile, Jakarta EE and Kubernetes* Migrate a monolith app to become a cloud-native app* Employ Jakarta EE APIs such as Persistence, CDI and more* Leverage the MicroProfile framework* Explore configurations, resilience, metrics, health, security, and more for your cloud-native appsWHO THIS BOOK IS FORThose software developers and programmers with at least some prior experience using Jakarta EE, MicroProfile. At least some prrior Java experience is expected.LUQMAN SAEED is currently an enterprise Java developer and independent software development trainer. His almost two decades of industrial experience spans management and leadership positions across various sectors, including software development and teaching. He started with PHP as a hobby and now does enterprise Java development full time. He is currently in the production process of the second edition of the much popular Java Enterprise Edition 8 for Beginners course on Udemy, this time updated and revised for Jakarta EE. His passion is helping software development teams get productive with the powerful, modern, intuitive, and easy-to-use Jakarta EE enterprise development platform.GHAZY ABDALLAH is a passionate enterprise Java developer, founder of the Java User Group Sudan (SudanJUG), and a tinkerer. He enjoys the use of modern cloud infrastructure to deliver enterprise applications and site reliability engineering. He spends his time learning and teaching the latest in cloud-native development.Chapter 1 - The Theory of Jakarta EE and MicroProfileThis chapter will discuss the history of Java EE through to the current Jakarta EE (version10). It will also explore the origins of the Eclipse MicroProfile (version 5) project and how itcomplements Jakarta EE with a set of cloud native APIs.Chapter 2 - Enterprise Java, MIcroservices and the CloudThis chapter will discuss the evolution of enterprise Java applications, containerization andthe role of Kubernetes and how Jakarta EE and MicroProfile provide the APIs to developcloud native applications in an enterprise context. The chapter will also discuss the cloudnative enterprise Java ecosystem (Quarkus, etc).Chapter 3 - Introducing the Cloud Native Jakarta EE ExampleThis chapter will develop a, fully functional cloud native Jakarta EE/MP monolithapp deployed to a Kubernetes cluster. It will showcase the three core Jakarta EE APIs : CDI,Jakarta REST and Jakarta Persistence along with complementary APIs from MicroProfile.The app will set the stage and discussion context for the rest of the book.Chapter 4 - Managing Dependencies with CDIThis chapter will discuss how to manage application dependencies with the Contexts andDependency Injection API.Chapter 5 - Persistence with Jakarta EE PersistenceThis chapter will discuss how to persist data to a relational database using the JakartaPersistence API.Chapter 6 - REST with Jakarta EE REST APIThis chapter will discuss creating and consuming REST services with the Jakarta REST APIand the MicroProfile RESTClient.Chapter 7 - Managing ConfigurationsThis chapter will discuss how to manage application configurations with MicroProfile ConfigAPIChapter 8 - Resilience with Fault Tolerance APIThis chapter will discuss building resilience into applications with the Fault Tolerance MP APIChapter 9 - Keeping Count with MetricsThis chapter will discuss how to create and consume different kinds of applications metricswith the MicroProfile Metrics APIChapter 10 - Taking a Pulse with Heal CheckThis chapter will discuss how to create health checks for applications with the MicroProfileHealth Check APIChapter 11 - Security with JWTThis chapter will discuss how to secure RESTful applications with Keycloak and MicroProfileJWT API.Chapter 12 - Testing with TestContainersThis chapter discusses different ways of testing cloud native applications withTestContainers and other libraries.Chapter 13 - Completing A Production Ready Cloud Native Jakarta EE App (sewntogether from chapter 3 to now)This chapter will put together all that has been discussed up to this point in the book andhow it all fits together for a monolith app.Chapter 14 - Cloud Native Jakarta EE Capstone ProjectThis chapter will refactor out the monolith app built up to this point in the book to a set ofmicroservices running in a Kubernetes cluster.
Arduino-Workshops (2. Auflg.)
Eine praktische Einführung mit 65 Projekten in aktualisierter 2. Auflage.In »Arduino-Workshops« erfahren Sie, wie diese Add-ons funktionieren und wie man sie einsetzt. Sie starten mit einem Überblick über das Arduino-System und gehen dann rasch zu den verschiedenen elektronischen Komponenten und Konzepten über. Zahlreiche Beispielprojekte vertiefen das Gelernte Schritt für Schritt und helfen Ihnen, dieses Wissen anzuwenden. Je tiefer Sie in die Materie eindringen, desto raffinierter und anspruchsvoller werden die Projekte.Unter den 65 Projekten des Buches finden sich nützliche Dinge wie:ein digitales Thermometer mit LCD-Anzeigeein GPS-Logger, der Daten Ihrer Reise für Google Maps aufzeichnetein handliches Testgerät zum Messen von Batteriespannungeneine Tastatursperre, die nur mit Geheimcode aufgehoben werden kannAußerdem lernen Sie, Spielzeug und Spiele zu entwickeln, beispielsweise:eine elektronische Version des klassischen sechsseitigen Würfelsein binäres Quiz, das Ihre Fähigkeiten zur Umwandlung von Zahlen testetein Fahrzeug mit Fernbedienung und Kollisionserkennung»Arduino-Workshops« führt Sie in die Welt der Mikroelektronik ein und lehrt Sie die Tricks und Design-Prinzipien eines erfahrenen Profis.Über den Autor:John Boxall ist seit über 26 Jahren in den Bereichen Elektronikdesign, Vertrieb und E-Commerce tätig. In seiner Freizeit schreibt er Arduino-Tutorials und veröffentlicht regelmäßig Reviews zu Arduino-Projekten und -Zubehör bei www.tronixstuff.com.
Introducing RavenDB
Simplify your first steps with the RavenDB NoSQL Document Database. This book takes a task-oriented approach by showing common problems, potential solutions, brief explanations of how those solutions work, and the mechanisms used. Based on real-world examples, the recipes in this book will show you how to solve common problems with Raven Query Language and will highlight reasons why RavenDB is a great choice for fast prototyping solutions that can sustain increasing amounts of data as your application grows.Introducing RavenDB includes code and query examples that address real-life challenges you’ll encounter when using RavenDB, helping you learn the basics of the Raven Query Language more quickly and efficiently. In many cases, you’ll be able to copy and paste the examples into your own code, making only minor modifications to suit your application. RavenDB supports many advanced features, such full-text search, graph queries, and timeseries; recipes in the latter portion of the book will help you understand those advanced features and how they might be applied to your own code and applications.After reading this book, you will be able to employ RavenDB’s powerful features in your own projects.WHAT YOU WILL LEARN* Set up and start working with RavenDB* Model your objects for persistence in a NoSQL document database* Write basic and advanced queries in the Raven Query Language * Index your data using map/reduce techniques * Implement techniques leading to highly performant systems * Efficiently aggregate data and query on those aggregations WHO THIS BOOK IS FORDevelopers accustomed to relational databases who are about to enter a world of NoSQL databases. The book is also for experienced programmers who have used other non-relational databases and want to learn RavenDB. It will also prove useful for developers who want to move away from using Object-Relational Modeling frameworks and start working with a persistence solution that can store object graphs directly. DEJAN MILIČIĆ is a consultant with more than 20 years’ experience as a professional software developer. His experience includes designing, writing, and maintaining applications, focusing on software architecture and backend development. He advocates domain-driven Design, behavior-driven development, functional programming, and API-first development.Miličić’s passion for RavenDB goes back to 2015, when he started using this NoSQL database for small hobby projects and quickly realized it is applicable to a wide range of applications. He specializes in RavenDB because it is well suited for fast prototyping and development of everything from line-of-business applications to large enterprise distributed systems. 1. Getting Started with RavenDB2. Document Modeling3. Querying4. Indexes5. Map Indexes6. MapReduce Indexes7. Full-Text Search
Programmieren und zeichnen mit Python für Dummies Junior (2. Auflg.)
Bunte Spiralen, Schneeflocken unter dem Mikroskop, 3D-Bilder? Mit diesem Buch lernst du, immer schönere Bilder mit dem Computer zu zeichnen. Es fängt ganz leicht an: Zuerst lässt du die Schildkröte, die deinen Pinsel hält, einfach nur über den Bildschirm laufen. Als nächstes bringst du ihr bei, ein Dreieck zu zeichnen. Wenn du ein Dreieck zeichnen kannst, kannst du auch ganz viele zeichnen, denn die Schildkröte nimmt dir die Arbeit ab. Dann kombinierst du Dreiecke zu Mosaiken und lässt Blumen und Bäume wachsen. Noch nicht genug? Zeichne 3D-Bilder und optische Täuschungen, animiere die Schildkröte, lasse sie Futter suchen oder steuere sie durch ein Labyrinth. Du hast noch mehr Ideen für eigene Bilder oder Spiele? Dieses Buch liefert dir die Python-Programmierbefehle dazu.Bestens geeignet für Kinder und Jugendliche ab 12 Jahre.Claudia Ermel leitet an der Technischen Universität Berlin das Schülerlabor dEIn-Labor, wo Workshops für Kinder und Jugendliche zu Themen aus Elektrotechnik und Informatik durchgeführt werden.Olga Runge entwickelt im dEIn-Labor Programme für Informatik-Schülerworkshops und betreut Programmier- und Robotikkurse.EINFÜHRUNG 8Hallo, zukünftige Python-Programmierer! 8Über Schlangen und Schildkröten 8Über dieses Buch 8Über dich 10Über die Symbole, die wir in diesem Buch verwenden 10KAPITEL 1: AUF DIE PLÄTZE ... 12Computer und Programmiersprachen 13Python auf deinem Computer 17Python installieren 18Python-Symbol auf dem Bildschirm erstellen 18Dein erstes Python-Programm 19Python als Taschenrechner 20Programme für die Ewigkeit 20Programme speichern 21Programme ausführen 22Altes Programm laden 22Das kannst du jetzt 23KAPITEL 2: DIE SCHILDKRÖTE 24Wie Bilder auf dem Bildschirm entstehen 24Dein erstes Schildkrötenbild 26Schildkröte, zeige dich! 27Lauf, Schildkröte, lauf! 27Schildkröte, dreh dich um! 27Die Welt wird bunt 30Durch dick und dünn 30Schildkrötenbilder als Programmdateien 31Weniger Änderungen mit Variablen 32Mach schneller, Schildkröte! 34Flächen füllen 34Die Schildkröte springt im Dreieck 36Manche Kleeblätter bringen Glück 37Das kannst du jetzt 37KAPITEL 3: FIGUREN STYLEN 38Vom Eckigen zum Runden 39Zeilen einsparen mit Schleifen 40Mit for-Schleifen Dinge mehrmals tun 40Mit while-Schleifen Dinge so lange tun, bis sich was ändert 42Wenn-dann-sonst 43Wo ist die Schildkröte? 43Die Schildkröte kehrt um ... 46... und läuft zurück 46Noch mehr Zeilen sparen mit Funktionen 47Funktionen variabel machen 49Viele Vielecke 51Von Vielecken zu Vieleckblumen 53Mandalas als Ausmalbilder 55Figuren ausdrucken 56Zufallsbilder 57Figuren zufällig erscheinen lassen ... 57... und zufällig färben 58Das kannst du jetzt 60KAPITEL 4: STERNE UND MEHR 61Sterne in Flaggen 62Sterne mit fünf Zacken 62Noch mehr Zacken 66Gitternetzsterne 68Listen führen, um sich Dinge zu merken 69Weniger Gitter im Netz 73Noch mehr Gitternetzfiguren: Die Kardioide 76Von Sternen zu Spiralnebeln 79Das kannst du jetzt 84KAPITEL 5: SCHACHTELFIGUREN 85Schachtelquadrat 86Schachbrettvariationen 89Dreiecksgeschichten 91Bäume und Wälder 95Es schneit 97Chinesische Drachen 102Fliegende Teppiche 106Das kannst du jetzt 109KAPITEL 6: DAS SPIEL »SNAKE« 110Von Schildkröten zu Schlangen 110Die Spielregeln 111Das Design des Spiels 112Es kommt Bewegung in die Schlange 113Bewegung macht hungrig: Die Schlange sucht Futter 116Fressen macht groß und stark: Die Schlange wächst 121Zu viel Fressen ist ungesund: Die Schlange stirbt 124Ideen für Erweiterungen 127Mehr Tempo 127Highscore 127Durch die Wand gehen 128Das kannst du jetzt 129KAPITEL 7: DAS MISTHAUFEN-SPIEL 130Phase 1: Das Design des Spiels 131Initialisierung von Spielfeld und Stift 131Misthaufen erzeugen und auf dem Spielfeld verteilen 132Misthaufen mit Abstand 134Phase 2: Das Spiel 137Der Stift wird aktiv 138Ab durch die Haufen 141Auweia, die Linie wird berührt 144Ideen für Erweiterungen 147Rückwärtsgang verboten 148Game-Over-Anzeige 148Gewonnen-Anzeige 149Freeze 149Das kannst du jetzt 150KAPITEL 8: DAS PARKOUR-SPIEL 151Das Design des Spiels 152Die Parkour-Strecke 154Eine Fliese wird verlegt 154Fliesen durch Pfeiltasten aneinanderreihen 155Die Schildkröte wird aktiv 157Die Navigation durch den Parkour 158Auf »Los!« geht‘s los 159Baustopp während des Rennens 161Stupse die Schildkröte an 162Berührungen spüren und rot werden 162Punkte sammeln und anzeigen 163Parkour-Strecken von der Stange 165Eine Parkour-Strecke speichern 165Eine gespeicherte Parkour-Strecke laden 168Ideen für Erweiterungen 171Spielhilfe 171Spielfeldränder beachten 171Aktuelle Größe des Spielfensters berücksichtigen 172Das kannst du jetzt 172KAPITEL 9: EXPERIMENTE IN 3D 173Tunnelbilder 174Fluchtpunkt-Perspektive 175Jetzt wird es krumm 175Körper zusammensetzen 178Muscheln, Meer und mehr 183Schnecken und Muscheln 183Schwimmringe 185Bälle und Buddelförmchen 186Optische Täuschungen 189Linien strecken und stauchen 189Drehende Scheiben und pochende Herzen 193Springende Bälle 196Das kannst du jetzt 198Wichtige Befehle 200Zum Wiederfinden 218Über die Autorinnen 222
Beginning MATLAB and Simulink
Employ essential tools and functions of the MATLAB and Simulink packages, which are explained and demonstrated via interactive examples and case studies. This revised edition covers features from the latest MATLAB 2022b release, as well as other features that have been released since the first edition published.This book contains dozens of simulation models and solved problems via m-files/scripts and Simulink models which will help you to learn programming and modelling essentials. You’ll become efficient with many of the built-in tools and functions of MATLAB/Simulink while solving engineering and scientific computing problems.Beginning MATLAB and Simulink, Second Edition explains various practical issues of programming and modelling in parallel by comparing MATLAB and Simulink. After studying and using this book, you'll be proficient at using MATLAB and Simulink and applying the source code and models from the book's examples as templates for your own projects in data science or engineering.WHAT YOU WILL LEARN* Master the programming and modelling essentials of MATLAB and Simulink* Carry out data visualization with MATLAB* Build a GUI and develop App with MATLAB* Work with integration and numerical root finding methods* Apply MATLAB to differential equations-based models and simulations* Use MATLAB and Simulink for data science projectsWHO THIS BOOK IS FOREngineers, programmers, data scientists, and students majoring in engineering and scientific computing who are new to MATLAB and Simulink.SULAYMON L. ESHKABILOV, PhD is an assistant professor in the Department of Agricultural and Biosystems Engineering at North Dakota State University. He obtained a Master of Engineering degree from Tashkent Automobile Road Institute, a Master of Sciences from Rochester Institute of Technology, NY, and a PhD from the Cybernetics Institute of Academy Sciences of Uzbekistan in 1994, 2001 and 2005, respectively. He was an associate professor at Tashkent Automobile Road Institute from December 2006 through January 2017. He held visiting professor and researcher positions at Ohio and North Dakota State Universities, for 2010/2011 and Johannes Kepler University, from January through September 2017. He teaches a number of courses, including “Instrumentation and Measurement,” “System Modelling with MATLAB,” “Machine Design Analysis,” “Agricultural Power,” and “Advanced MATLAB/Simulink Modelling” for undergraduate and graduate students.His research interests are image processing, machine learning applications, mechanical vibrations, micro-electro-mechanical systems, mechatronic system design, and simulation of system dynamics. He has developed simulation and data analysis models for various image data, additive manufacturing process optimization, vibrating systems, autonomous vechicle control, and studies of mechanical properties of bones. He is an author of four books devoted to MATLAB/Simulink applications for Mechanical Engineering students and Numerical Analysis. He has worked as an external academic expert for the European Commission to assess academic projects from 2009 through 2022.1. Introduction to MATLAB.-2. Programming Essentials.-3. Graphical User Interface Model Development.-4. MEX files, C/C++ and Standalone Applications.-5. Simulink Modeling Essentials.-6. Plots.-7. Matrix Algebra.-8. Ordinary Differential Equations.
RISC-V Assembly Language Programming using ESP32-C3 and QEMU
With the availability of free and open source C/C++ compilers today, you might wonder why someone would be interested in assembler language. What is so compelling about the RISC-V Instruction Set Architecture (ISA)? How does RISC-V differ from existing architectures? And most importantly, how do we gain experience with the RISC-V without a major investment? Is there affordable hardware available?The availability of the Espressif ESP32-C3 chip provides a way to get hands-on experience with RISC-V. The open sourced QEMU emulator adds a 64-bit experience in RISC-V under Linux. These are just two ways for the student and enthusiast alike to explore RISC-V in this book.The projects in this book are boiled down to the barest essentials to keep the assembly language concepts clear and simple. In this manner you will have "aha!" moments rather than puzzling about something difficult. The focus in this book is about learning how to write RISC-V assembly language code without getting bogged down. As you work your way through this tutorial, you'll build up small demonstration programs to be run and tested. Often the result is some simple printed messages to prove a concept. Once you've mastered these basic concepts, you will be well equipped to apply assembly language in larger projects.Warren Gay is a datablocks.net senior software developer, writing Linux internet servers in C++. He got involved with electronics at an early age, and since then he has built microcomputers and has worked with MC68HC705, AVR, STM32, ESP32 and ARM computers, just to name a few.
Python 3
* EINFÜHRUNG IN ALLE SPRACHGRUNDLAGEN: KLASSEN, OBJEKTE, VERERBUNG, KOLLEKTIONEN, DICTIONARIES* BENUTZUNGSOBERFLÄCHEN UND MULTIMEDIAANWENDUNGEN MIT PYQT, DATENBANKEN, XML, INTERNET-PROGRAMMIERUNG MIT CGI, WSGI UND DJANGO* WISSENSCHAFTLICHES RECHNEN MIT NUMPY, PARALLELE VERARBEITUNG GROẞER DATENMENGEN, DATENVISUALISIERUNG MIT MATPLOTLIB* ÜBUNGEN MIT MUSTERLÖSUNGEN ZU JEDEM KAPITELDie Skriptsprache Python ist mit ihrer einfachen Syntax hervorragend für Einsteiger geeignet, um modernes Programmieren zu lernen. Mit diesem Buch erhalten Sie einen umfassenden Einstieg in Python 3 und lernen darüber hinaus auch weiterführende Anwendungsmöglichkeiten kennen. Michael Weigend behandelt Python von Grund auf und erläutert die wesentlichen Sprachelemente. Er geht dabei besonders auf die Anwendung von Konzepten der objektorientierten Programmierung ein.Insgesamt liegt der Schwerpunkt auf der praktischen Arbeit mit Python. Ziel ist es, die wesentlichen Techniken und dahinterstehenden Ideen anhand zahlreicher anschaulicher Beispiele verständlich zu machen. Zu typischen Problemstellungen werden Schritt für Schritt Lösungen erarbeitet. So erlernen Sie praxisorientiert die Programmentwicklung mit Python und die Anwendung von Konzepten der objektorientierten Programmierung.Alle Kapitel enden mit einfachen und komplexen Übungsaufgaben mit vollständigen Musterlösungen.Der Autor wendet sich sowohl an Einsteiger als auch an Leser, die bereits mit einer höheren Programmiersprache vertraut sind.AUS DEM INHALT:* Datentypen, Kontroll-strukturen, Funktionen, Generatoren* Modellieren mit Sequenzen, Dictionaries und Mengen* Klassen, Objekte, Vererbung, Polymorphie* Module nutzen und auf PyPI veröffentlichen* Zeichenketten und reguläre Ausdrücke* Datenmodellierung, Datenbanken, XML und JSON* Grafische Benutzungsoberflächen mit tkinter und PyQt* Threads und Events, Bildverarbeitung mit PIL* Systemfunktionen, Testen und Performance-Analyse* CGI, WSGI und Rapid Web-Development mit Django * Wissenschaftliche Projekte mit NumPy* Datenvisualisierung mit Matplotlib und Messwerterfassung* Parallele Programmierung: Pipes, Queues, PoolsMichael Weigend hat an der Universität Potsdam in Informatik promoviert. Er war für mehr als 30 Jahre als Lehrer tätig und hat 20 Jahre lang an der FernUniversität Hagen Seminare zur Didaktik der Informatik gegeben. An der Universität Münster hält er im Rahmen eines Lehrauftrags Vorlesungen zur Python-Programmierung. Michael Weigend engagiert sich in mehreren nationalen und internationalen Communities für den Computer-Einsatz in der Bildung, darunter Constructionism, International Federation for Information Processing (TC 3 Computers in Education) , Bebras - International Contest on Informatics and Computational Thinking. Er hat über 60 wissenschaftliche Artikel veröffentlicht und mehrere Bücher zu den Themen Programmierung, Web Development und visuelle Modellierung geschrieben.
Secure Web Application Development
Cyberattacks are becoming more commonplace and the Open Web Application Security Project (OWASP), estimates 94% of sites have flaws in their access control alone. Attacks evolve to work around new defenses, and defenses must evolve to remain effective. Developers need to understand the fundamentals of attacks and defenses in order to comprehend new techniques as they become available. This book teaches you how to write secure web applications.The focus is highlighting how hackers attack applications along with a broad arsenal of defenses. This will enable you to pick appropriate techniques to close vulnerabilities while still providing users with their needed functionality.Topics covered include:* A framework for deciding what needs to be protected and how strongly* Configuring services such as databases and web servers* Safe use of HTTP methods such as GET, POST, etc, cookies and use of HTTPS* Safe REST APIs* Server-side attacks and defenses such as injection and cross-site scripting* Client-side attacks and defenses such as cross-site request forgery* Security techniques such as CORS, CSP* Password management, authentication and authorization, including OAuth2* Best practices for dangerous operations such as password change and reset* Use of third-party components and supply chain security (Git, CI/CD etc)WHAT YOU'LL LEARN** Review the defenses that can used to prevent attacks* Model risks to better understand what to defend and how* Choose appropriate techniques to defend against attacks* Implement defenses in Python/Django applicationsWHO THIS BOOK IS FOR* Developers who already know how to build web applications but need to know more about security* Non-professional software engineers, such as scientists, who must develop web tools and want to make their algorithms available to a wider audience.* Engineers and managers who are responsible for their product/company technical security policyMATTHEW BAKER is the Head of Scientific Software and Data Management at ETH Zurich, Switzerland’s leading science and technology university, He leads a team of engineers developing custom software to support STEM research projects, as well as teaches computer science short courses. Having over 25 years of experience developing software, he has worked as a developer, systems administrator, project manager and consultant in various sectors from banking and insurance, science and engineering, to military intelligence.1. Introduction2. The Hands-On Environment3. Threat Modelling4. Transport and Encryption5. Installing and Configuring Services6. APIs and Endpoints7. Cookies and User Input8. Cross-Site Requests9. Password Management10. Authentication and Authorization11. OAuth212. Logging and Monitoring13. Third-Party and Supply Chain Security14. Further Resources.
R 4 Data Science Quick Reference
In this handy, quick reference book you'll be introduced to several R data science packages, with examples of how to use each of them. All concepts will be covered concisely, with many illustrative examples using the following APIs: readr, dibble, forecasts, lubridate, stringr, tidyr, magnittr, dplyr, purrr, ggplot2, modelr, and more.With R 4 Data Science Quick Reference, you'll have the code, APIs, and insights to write data science-based applications in the R programming language. You'll also be able to carry out data analysis. All source code used in the book is freely available on GitHub..WHAT YOU'LL LEARN* Implement applicable R 4 programming language specification features* Import data with readr* Work with categories using forcats, time and dates with lubridate, and strings with stringr* Format data using tidyr and then transform that data using magrittr and dplyr* Write functions with R for data science, data mining, and analytics-based applications* Visualize data with ggplot2 and fit data to models using modelrWHO THIS BOOK IS FORProgrammers new to R's data science, data mining, and analytics packages. Some prior coding experience with R in general is recommended. Thomas Mailund is an associate professor at Aarhus University, Denmark. He has a background in math and computer science. For the last decade, his main focus has been on genetics and evolutionary studies, particularly comparative genomics, speciation, and gene flow between emerging species. He has published Beginning Data Science in R, Functional Programming in R, and Metaprogramming in R with Apress as well as other books on R and C programming.1. Introduction2. Importing Data: readr3. Representing Tables: tibble4. Reformatting Tables: tidyr5. Pipelines: magrittr6. Functional Programming: purrr7. Manipulating Data Frames: dplyr8. Working with Strings: stringr9. Working with Factors: forcats10. Working with Dates: lubridate11. Working with Models: broom and modelr12. Plotting: ggplot213. Conclusions
Beginning Software Engineering
DISCOVER THE FOUNDATIONS OF SOFTWARE ENGINEERING WITH THIS EASY AND INTUITIVE GUIDEIn the newly updated second edition of Beginning Software Engineering, expert programmer and tech educator Rod Stephens delivers an instructive and intuitive introduction to the fundamentals of software engineering. In the book, you’ll learn to create well-constructed software applications that meet the needs of users while developing the practical, hands-on skills needed to build robust, efficient, and reliable software. The author skips the unnecessary jargon and sticks to simple and straightforward English to help you understand the concepts and ideas discussed within. He also offers you real-world tested methods you can apply to any programming language. You’ll also get:* Practical tips for preparing for programming job interviews, which often include questions about software engineering practices* A no-nonsense guide to requirements gathering, system modeling, design, implementation, testing, and debugging* Brand-new coverage of user interface design, algorithms, and programming language choicesBeginning Software Engineering doesn’t assume any experience with programming, development, or management. It’s plentiful figures and graphics help to explain the foundational concepts and every chapter offers several case examples, Try It Out, and How It Works explanatory sections. For anyone interested in a new career in software development, or simply curious about the software engineering process, Beginning Software Engineering, Second Edition is the handbook you’ve been waiting for. ROD STEPHENS is a former Microsoft MVP, programmer, and award-winning instructor who speaks regularly at programming conferences and users’ group meetings. He has written more than 250 magazine articles as well as 37 books that have been translated into at least ten different languages on topics including C#, Python, and other languages. He runs the popular C# Helper and VB Helper web sites. Introduction xxviiPART I: SOFTWARE ENGINEERING STEP- BY- STEPChapter 1: Software Engineering From 20,000 Feet 3Chapter 2: Before the Beginning 15Chapter 3: the Team 29Chapter 4: Project Management 53Chapter 5: Requirements Gathering 81Chapter 6: High- Level Design 117Chapter 7: Low- Level Design 155Chapter 8: Security Design 185Chapter 9: User Experience Design 209Chapter 10: Programming 245Chapter 11: Algorithms 273Chapter 12: Programming Languages 307Chapter 13: Testing 327Chapter 14: Deployment 359Chapter 15: Metrics 371Chapter 16: Maintenance 401PART II: PROCESS MODELSChapter 17: Predictive Models 427Chapter 18: Iterative Models 445Chapter 19: Rad 465PART III: ADVANCED TOPICSChapter 20: Software Ethics 523Chapter 21: Future Trends 547Appendix: Solutions to Exercises 559Glossary 631Index 663
Introducing Micronaut
The microservice architecture has been adopted by many developer teams around the world. To be successful, it's crucial that you understand how to program a microservice and get it running in the cloud. This book will walk you through the process of how to build, test, and deploy a Java-based Micronaut microservice to the Oracle Cloud with GitHub Actions.You'll learn how to create a Virtual Machine (with both the Oracle Cloud Infrastructure (OCI) CLI and the OCI Gradle Plugin), as well as create and deploy the microservice as a Docker container that can be stored in Oracle Container Infrastructure Registry (OCIR) and deployed to an Oracle Kubernetes Engine (OKE) cluster. The microservice will use Micronaut Data for persistence, Testcontainers for testing, and Liquibase to manage your Oracle DB production schema.After reading or using this book, you'll be able to build, test and deploy your first microservices using the Micronaut framework, Oracle Cloud and more.WHAT YOU'LL LEARN* Build and deploy Java-based microservices using Micronaut and Oracle Cloud* Run tests and publishing reports* Deploy to Oracle Cloud using OCI CLI and the OCI Gradle plug-in* Add a persistence tier to the microservice* Distribute a microservice with persistenceWHO THIS BOOK IS FORProgrammers and software developers with experience in Java and microservices programming who are new to Micronaut.Todd Sharp is a software/web developer advocate for Oracle focusing on Oracle Cloud. He works with Micronaut and other Java frameworks to build, test and deploy microservices, web services and other web applications. He has worked with dynamic Java scripting languages, JVMs and various JavaScript frameworks for more than 14 years, originally with ColdFusion and more recently with Java/Groovy/Grails on the server side.1. Creating a Micronaut Application & Getting Started with GitHub Actions2. Building & Publishing a JAR3. Running Tests and Publishing Test Reports4. Deploying a Microservice to the Oracle Cloud with GitHub Actions and the OCI CLI5. Deploying a Microservice to the Oracle Cloud with GitHub Actions and the OCI Gradle Plugin6. Adding a Persistence Tier to the Microservice7. Testing the Persistence Tier with Testcontainers8. Deploying the Microservice with a Tested Persistence Tier in Place9. Deploying the Microservice as a Docker Container10. Deploying the Microservice Docker Container to Kubernetes.
Beginning Software Engineering
DISCOVER THE FOUNDATIONS OF SOFTWARE ENGINEERING WITH THIS EASY AND INTUITIVE GUIDEIn the newly updated second edition of Beginning Software Engineering, expert programmer and tech educator Rod Stephens delivers an instructive and intuitive introduction to the fundamentals of software engineering. In the book, you’ll learn to create well-constructed software applications that meet the needs of users while developing the practical, hands-on skills needed to build robust, efficient, and reliable software. The author skips the unnecessary jargon and sticks to simple and straightforward English to help you understand the concepts and ideas discussed within. He also offers you real-world tested methods you can apply to any programming language. You’ll also get:* Practical tips for preparing for programming job interviews, which often include questions about software engineering practices* A no-nonsense guide to requirements gathering, system modeling, design, implementation, testing, and debugging* Brand-new coverage of user interface design, algorithms, and programming language choicesBeginning Software Engineering doesn’t assume any experience with programming, development, or management. It’s plentiful figures and graphics help to explain the foundational concepts and every chapter offers several case examples, Try It Out, and How It Works explanatory sections. For anyone interested in a new career in software development, or simply curious about the software engineering process, Beginning Software Engineering, Second Edition is the handbook you’ve been waiting for. ROD STEPHENS is a former Microsoft MVP, programmer, and award-winning instructor who speaks regularly at programming conferences and users’ group meetings. He has written more than 250 magazine articles as well as 37 books that have been translated into at least ten different languages on topics including C#, Python, and other languages. He runs the popular C# Helper and VB Helper web sites. Introduction xxviiPART I: SOFTWARE ENGINEERING STEP- BY- STEPCHAPTER 1: SOFTWARE ENGINEERING FROM 20,000 FEET 3Requirements Gathering 4High- Level Design 5Low- Level Design 6Development 6Testing 7Deployment 9Maintenance 10Wrap- Up 10Everything All at Once 11Summary 12What You Learned in This Chapter 13CHAPTER 2: BEFORE THE BEGINNING 15Document Management 16Historical Documents 19Email 19Code 22Code Documentation 22Application Documentation 25Summary 26What You Learned in This Chapter 27CHAPTER 3: THE TEAM 29Team Features 30Clear Roles 30Effective Leadership 30Clear Goals 31Consensus 32Open Communication 32Support for Risk- Taking 33Shared Accountability 33Informal Atmosphere 34Trust 34Team Roles 34Common Roles 35More- Specialized Roles 36Informal Roles 36Roles Wrap- Up 37Team Culture 37Interviews 40Interview Puzzles 40The Bottom Line 41Physical Environment 41Creativity 41Office Space 43Ergonomics 43Work- Life Balance 45Collaboration Software 46Searching 46Overload 47Outsourcing 47Summary 48What You Learned in This Chapter 50CHAPTER 4: PROJECT MANAGEMENT 53Executive Support 54Project Management 56PERT Charts 57Critical Path Methods 62Gantt Charts 65Scheduling Software 67Predicting Times 68Get Experience 69Break Unknown Tasks into Simpler Pieces 70Look for Similarities 71Expect the Unexpected 71Track Progress 73Risk Management 74Summary 76What You Learned in This Chapter 79CHAPTER 5: REQUIREMENTS GATHERING 81Requirements Defined 82Clear 82Unambiguous 83Consistent 84Prioritized 84Verifiable 88Words to Avoid 89Requirement Categories 89Audience- Oriented Requirements 90Business Requirements 90User Requirements 90Functional Requirements 91Nonfunctional Requirements 92Implementation Requirements 92FURPS 92FURPS+ 93Common Requirements 96Gathering Requirements 96Listen to Customers (and Users) 97Use the Five Ws (and One H) 98Who 98What 98When 98Where 98Why 99How 99Study Users 99Refining Requirements 100Copy Existing Systems 101Clairvoyance 102Brainstorm 103Recording Requirements 106UML 107User Stories 107Use Cases 108Prototypes 108Requirements Specification 109Validation and Verification 110Changing Requirements 110Digital Transformation 111What to Digitize 111How to Digitize 112Summary 113What You Learned in This Chapter 116CHAPTER 6: HIGH- LEVEL DESIGN 117The Big Picture 118What to Specify 119Security 119Hardware 120User Interface 121Internal Interfaces 122External Interfaces 123Architecture 124Monolithic 124Client/Server 125Component- Based 127Service- Oriented 128Data- Centric 130Event- Driven 130Rule- Based 130Distributed 131MIX and Match 132Reports 133Other Outputs 134Database 135Audit Trails 136User Access 136Database Maintenance 137NoSQL 137Cloud Databases 138Configuration Data 138Data Flows and States 139Training 139UML 141Structure Diagrams 142Behavior Diagrams 145Activity Diagrams 145Use Case Diagram 146State Machine Diagram 147Interaction Diagrams 148Sequence Diagram 148Communication Diagram 150Timing Diagram 150Interaction Overview Diagram 151UML Summary 151Summary 151What You Learned in This Chapter 152CHAPTER 7: LOW- LEVEL DESIGN 155Design Approaches 156Design- to- Schedule 157Design- to- Tools 158Process- Oriented Design 158Data- Oriented Design 159Object- Oriented Design 159Hybrid Approaches 159High, Low, and Iterative Design 160OO Design 160Identifying Classes 161Building Inheritance Hierarchies 162Refinement 163Generalization 165Hierarchy Warning Signs 167Object Composition 167Database Design 168Relational Databases 168First Normal Form 170Second Normal Form 174Third Normal Form 176Higher Levels of Normalization 179When to Optimize 180Summary 180What You Learned in This Chapter 182CHAPTER 8: SECURITY DESIGN 185Security Goals 186Security Types 186Cybersecurity 188Shift- Left Security 189Malware Menagerie 189Phishing and Spoofing 193Social Engineering Attacks 195Crapware 197Password Attacks 198User Access 201Countermeasures 201Cyber Insurance 202Summary 203What You Learned in This Chapter 207CHAPTER 9: USER EXPERIENCE DESIGN 209Design Mindset 210UI vs. UX 210UX Designers 211Platform 212User Skill Level 214Beginners and Beyond 216Configuration 217Hidden Configuration 218Models 219Metaphors and Idioms 220Case Study: Microsoft Word 221Design Guidelines 225Allow Exploration 225Make the Interface Immutable 227Support Commensurate Difficulty 227Avoid State 228Make Similar Things Similar 228Provide Redundant Commands 230Do the Right Thing 231Show Qualitative Data, Explain Quantitative Data 232Give Forms Purpose 232Gather All Information at Once 233Provide Reasonable Performance 234Only Allow What’s Right 235Flag Mistakes 235Form Design 236Use Standard Controls 236Decorating 237Displaying 237Arranging 237Commanding 238Selecting 238Entering 239Display Five Things 240Arrange Controls Nicely 241Summary 241What You Learned in This Chapter 242CHAPTER 10: PROGRAMMING 245Tools 246Hardware 246Network 247Development Environment 248Source Code Control 249Profilers 249Static Analysis Tools 249Testing Tools 249Source Code Formatters 250Refactoring Tools 250Training 250Collaboration Tools 250Algorithms 251Top- Down Design 252Programming Tips and Tricks 255Be Alert 255Write for People, Not the Computer 255Comment First 256Write Self- Documenting Code 259Keep It Small 259Stay Focused 261Avoid Side Effects 261Validate Results 262Practice Offensive Programming 264Use Exceptions 266Write Exception Handlers First 266Don’t Repeat Code 267Defer Optimization 267Summary 269What You Learned in This Chapter 270CHAPTER 11: ALGORITHMS 273Algorithm Study 274Algorithmic Approaches 275Decision Trees 275Knapsack 275The Eight Queens Problem 276Exhaustive Search 277Backtracking 278Pruning Trees 279Branch and Bound 279Heuristics 280Greedy 281Divide and Conquer 282Recursion 283Dynamic Programming 285Caching 287Randomization 287Monte Carlo Algorithms 287Las Vegas Algorithms 288Atlantic City Algorithms 289State Diagrams 289Design Patterns 290Creational Patterns 291Structural Patterns 291Behavioral Patterns 292Design Pattern Summary 293Parallel Programming 293Artificial Intelligence 295Definitions 295Learning Systems 296Natural Language Processing 297Artificial Neural Network 297Deep Learning 297Expert System 298Artificial General Intelligence 298Algorithm Characteristics 301Summary 302What You Learned in This Chapter 304CHAPTER 12: PROGRAMMING LANGUAGES 307The Myth of Picking a Language 308Language Generations 311First Generation 311Second Generation 311Third Generation (3GL) 312Fourth Generation 313Fifth Generation 314Sixth Generation 314IDEs 315Language Families 316Assembly 316Imperative 317Procedural 317Declarative 318Object- Oriented 318Functional 319Specialized 319Language Family Summary 319The Best Language 319Summary 323What You Learned in This Chapter 324CHAPTER 13: TESTING 327Testing Goals 329Reasons Bugs Never Die 330Diminishing Returns 330Deadlines 330Consequences 330It’s Too Soon 330Usefulness 331Obsolescence 331It’s Not a Bug 331It Never Ends 332It’s Better Than Nothing 333Fixing Bugs Is Dangerous 333Which Bugs to Fix 334Levels of Testing 334Unit Testing 335Integration Testing 336Regression Testing 337Automated Testing 337Component Interface Testing 338System Testing 339Acceptance Testing 340Other Testing Categories 341Testing Techniques 342Exhaustive Testing 342Black- Box Testing 343White- Box Testing 344Gray- Box Testing 344Testing Habits 345Test and Debug When Alert 345Test Your Own Code 346Have Someone Else Test Your Code 346Fix Your Own Bugs 348Think Before You Change 349Don’t Believe in Magic 349See What Changed 350Fix Bugs, Not Symptoms 350Test Your Tests 350How to Fix a Bug 351Estimating Number of Bugs 351Tracking Bugs Found 352Seeding 353The Lincoln Index 353Summary 355What You Learned in This Chapter 357CHAPTER 14: DEPLOYMENT 359Scope 360The Plan 361Cutover 362Staged Deployment 362Gradual Cutover 363Incremental Deployment 365Parallel Testing 365Deployment Tasks 365Deployment Mistakes 366Summary 368What You Learned in This Chapter 370CHAPTER 15: METRICS 371Wrap Party 372Defect Analysis 372Species of Bugs 373Discoverer 373Severity 374Creation Time 374Age at Fix 374Task Type 375Defect Database 376Ishikawa Diagrams 376Software Metrics 379Qualities of Good Attributes and Metrics 381Using Metrics 382Process Metrics 384Project Metrics 384Things to Measure 385Size Normalization 387Function Point Normalization 389Count Function Point Metrics 390Multiply by Complexity Factors 391Calculate Complexity Adjustment Value 392Calculate Adjusted FP 394Summary 395What You Learned in This Chapter 398CHAPTER 16: MAINTENANCE 401Maintenance Costs 402Task Categories 404Perfective Tasks 404Feature Improvements 406New Features 406The Second System Effect 407Adaptive Tasks 408Corrective Tasks 410Preventive Tasks 414Clarification 414Code Reuse 415Improved Flexibility 416Bug Swarms 417Bad Programming Practices 417Individual Bugs 418Not Invented Here 418Task Execution 419Summary 420What You Learned in This Chapter 423PART II: PROCESS MODELSCHAPTER 17: PREDICTIVE MODELS 427Model Approaches 428Prerequisites 428Predictive and Adaptive 429Success and Failure Indicators for Predictive Models 430Advantages and Disadvantages of Predictive Models 431Waterfall 432Waterfall with Feedback 433Sashimi 434Incremental Waterfall 436V- model 438Software Development Life Cycle 439Summary 442What You Learned in This Chapter 444CHAPTER 18: ITERATIVE MODELS 445Iterative vs. Predictive 446Iterative vs. Incremental 448Prototypes 449Types of Prototypes 451Pros and Cons 451Spiral 453Clarifications 455Pros and Cons 456Unified Process 457Pros and Cons 459Rational Unified Process 459Cleanroom 460Cowboy Coding 461Summary 461What You Learned in This Chapter 463CHAPTER 19: RAD 465RAD Principles 467James Martin RAD 470Agile 471Self- Organizing Teams 473Agile Techniques 474Communication 474Incremental Development 475Focus on Quality 478XP 478XP Roles 479XP Values 480XP Practices 481Have a Customer On-Site 481Play the Planning Game 482Use Stand- Up Meetings 483Make Frequent Small Releases 483Use Intuitive Metaphors 484Keep Designs Simple 484Defer Optimization 484Refactor When Necessary 485Give Everyone Ownership of the Code 485Use Coding Standards 486Promote Generalization 486Use Pair Programming 486Test Constantly 486Integrate Continuously 486Work Sustainably 487Use Test- Driven and Test- First Development 487Scrum 488Scrum Roles 489Scrum Sprints 490Planning Poker 491Burndown 492Velocity 494Lean 494Lean Principles 494Crystal 495Crystal Clear 498Crystal Yellow 498Crystal Orange 499Feature- Driven Development 500FDD Roles 501FDD Phases 502Develop a Model 502Build a Feature List 502Plan by Feature 503Design by Feature 503Build by Feature 504FDD Iteration Milestones 504Disciplined Agile Delivery 506DAD Principles 506DAD Roles 506DAD Phases 507Dynamic Systems Development Method 508DSDM Phases 508DSDM Principles 510DSDM Roles 511Kanban 512Kanban Principles 513Kanban Practices 513Kanban Board 514Summary 515What You Learned in This Chapter 517PART III: ADVANCED TOPICSCHAPTER 20: SOFTWARE ETHICS 523Ethical Behavior 524IEEE- CS/ACM 524ACS 525CPSR 526Business Ethics 527Nada 528Hacker Ethics 529Hacker Terms 530Responsibility 531Gray Areas 533Software Engineering Dilemmas 535Misusing Data and the Temptation of Free Data 535Disruptive Technology 536Algorithmic Bias 537False Confidence 537Lack of Oversight 538Getting Paid 539Thought Experiments 539The Tunnel Problem 540The Trolley Problem 542Summary 544What You Learned in This Chapter 545CHAPTER 21: FUTURE TRENDS 547Security 548UX/UI 549Code Packaging 550Cloud Technology 551Software Development 552Algorithms 553Tech Toys 554Summary 555What You Learned in This Chapter 556Appendix: Solutions to Exercises 559Glossary 631Index 663
The Absolute Beginner's Guide to Python Programming
Written as an illustrated, step-by-step guide, this book will introduce you to Python with examples using the latest version of the language.You'll begin by learning to set up your Python environment. The next few chapters cover the basics of Python such as language classifications, Python language syntax, and how to write a program. Next, you will learn how to work with variables, basic data types, arithmetic, companion, and Boolean operators, followed by lab exercises. Further, the book covers flow control, using functions, and exception handling, as well as the principles of object-oriented programming and building an interface design. The last section explains how to develop a game by installing PyGame and how to use basic animation, and concludes with coverage of Python web development with web servers and Python web frameworks.The Absolute Beginners Guide to Python Programming will give you the tools, confidence, and inspiration to start writing Python programs. If you are a programmer, developer, or a student, or someone who wants to learn on their own, this book is for you.WHAT YOU WILL LEARN* Gain an understanding of computer programming * Understand different data and data types* Work with Classes and OOP* Build interfaces, simple games, and web development with PythonWHO THIS BOOK IS FORSoftware programmers, developers or students, or anyone who wants to learn Python programming on their own. With over 20 years’ experience in the computer industry, Kevin Wilson has made a career out of technology and showing others how to use it. After earning a master's degree in computer science, software engineering, and multimedia systems, Kevin has held various positions in the IT industry including graphic & web design, digital film & photography, programming & software engineering, developing & managing corporate networks, building computer systems, and IT support. He currently teaches computer science at college and works as an IT trainer in England while researching for his PhD. CHAPTER 1: WHAT IS PYTHON.Goal: About Python, what it is, how to set up the interpreter on machineSub-topicsSetting UpCHAPTER 2: THE BASICSGoal: Covers basics, syntax, writing a basic program and executing the codeSub-topicsLanguage ClassificationLow-Level LanguageHigh-Level LanguagePython Language SyntaxReserved WordsIdentifiersIndentationCommentsInputOutputEscape CharactersWriting a ProgramCHAPTER 3: WORKING WITH DATAGoal: Covers data types: integers, lists, strings, etc, etc , variables, operatorsSub-topicsVariablesLocal VariablesGlobal VariablesBasic Data TypesIntegersFloating Point NumbersStringsListsTwo Dimensional ListsSetsTuplesDictionariesCasting Data TypesArithmetic OperatorsOperator PrecedencePerforming ArithmeticComparison OperatorsBoolean OperatorsBitwise OperatorsLab ExercisesCHAPTER 4: FLOW CONTROLGoal: Explains flow control, sequence, if/elif, for/whileSub-topicsSequenceSelectionif...elseelifIteration (Loops)For loopWhile loopBreak and ContinueLab ExercisesCHAPTER 5: HANDLING FILESGoal: Explains file handling, reading files, writing to files, text files, binary filesFile TypesText FileBinaryText File OperationsOpen FilesWrite to a FileRead from a FileBinary File OperationsOpen FilesWrite to a FileRead a FileRandom File AccessLab ExercisesCHAPTER 6: USING FUNCTIONSSub-topicsDeclaring FunctionsRecursionLab ExercisesCHAPTER 7: EXCEPTION HANDLINGGoal: Covers exception and error handlingSub-topicsTypes of ExceptionCatching ExceptionsRaising your Own ExceptionsCHAPTER 8: OBJECT ORIENTED PROGRAMMINGGoal: OOP principles, classes, objects and inheritanceSub-topicsPrinciples of OOPEncapsulationInheritancePolymorphismAbstractionClasses & ObjectsClass InheritancePolymorphic ClassesMethod OverridingCHAPTER 9: BUILDING AN INTERFACEGoal: Building an interface using tkinterSub-topicsCreating a WindowAdding WidgetsMenusThe CanvasImagesButtonsMessage BoxesText FieldListboxCheckboxLabelsLabel FrameInterface DesignCHAPTER 10: DEVELOPING A GAMESub-topicsInstalling PyGameOpening a WindowAdding an ImageThe Game LoopThe Event LoopShapesBasic AnimationCHAPTER 11: PYTHON WEB DEVELOPMENTSub-topicsWeb ServersExecuting a ScriptPython Web FrameworksQUICK REFERENCEData TypesNumeric OperatorsComparison OperatorsBoolean OperatorsString OperatorsList OperatorsDictionary OperatorsString MethodsList MethodsDictionary MethodsFunctionsFilesConditionalMulti ConditionalWhile LoopFor LoopLoop ControlModulesBuilt in FunctionsDeclare a ClassChild ClassCreate ObjectCall Object Method
Modern C Up and Running
Learn how to program in modern C, from the basics through the advanced topics required for proficiency. This book is the fastest path to C fluency for anyone experienced in a general-purpose programming language. From start to finish, code examples highlight the idioms and best practices behind efficient, robust programs in a variety of areas.The book opens with a thorough coverage of syntax, built-in data types and operations, and program structure. C has quirks and presents challenges, which are covered in detail. The coverage of advanced features is what sets this book apart from others. Among the advanced topics covered are floating-point representation in the IEEE 754 standard; embedded assembly language in C code for overflow detection; regular expressions, assertions, and internationalization; WebAssembly through C; and software libraries for C and other clients.Memory efficiency and safety are the two major challenges in C programming, and you’ll explore these challenges through a series of C examples. Arrays and structures, which are the means to high-level data representation, are covered in connection with pointers, which provide efficiency. The book again uses code examples in covering networking and wire-level security; concurrency (multiprocessing and multithreading); instruction-level parallelism; and interprocess communication through shared memory and files, pipes, message queues, and signals.Many books introduce C, but few also explain how to use it properly and optimally. Essential C does just that.WHAT YOU'LL LEARN* Accelerate your path to C mastery with this book for experienced programmers* Refresh your approach to program structure and data types* Dive into aggregates and pointers using modern C language* Revisit storage classes and scope* Dive into concurrency (multiprocessing and multithreading) and instruction-level parallelism* Finish with regular expressions, assertions, signals, locales and moreWHO THIS BOOK IS FORProfessional programmers or software developers who has prior experience with C or in general wanting an accelerated learning guide to modern C programming language.Martin Kalin has a Ph.D. from Northwestern University and is a professor in the College of Computing and Digital Media at DePaul University. He has co-written a series of books on C and C++ and written a book on Java for programmers. He enjoys commercial programming and has co-developed large distributed systems in process scheduling and product configuration.1. Program Structure2. Basic Data Types3. Aggregates and Pointers4. Storage Classes5. Input and Output6. Networking7. Concurrency and Parallelism8. Miscellaneous Topics
Usability und User Experience Design
Gute Usability und User Experience sind niemals Zufall. Dahinter stecken systematische Prozesse und Know-how aus verschiedenen Disziplinen. Produkte zu schaffen, die Menschen nicht nur leicht und sicher bedienen können, sondern rundum schätzen – wenn das Ihr professionelles Ziel ist, sind Sie hier richtig. Lernen Sie mit diesem Handbuch das Fach gründlich kennen, vertiefen Sie Ihre Expertise oder steigen Sie in eine stärker datengetriebene Arbeitsweise ein. Die Autoren sind erfolgreiche Spezialisten für die Usability und UX technischer Produkte. Sie stellen Ihnen Grundlagen aus Psychologie und Design vor und geben Ihnen ein umfassendes Methodenrepertoire an die Hand. Inklusive praktischer Auswahlhilfe und konkreter Anleitungen. So evaluieren und optimieren Sie Ihre Produkte oder unterstützen Ihre Kunden mit professionellen Usability- und UX-Projekten. Für B2B, B2C, verschiedene Branchen und Budgets haben Sie damit immer eine effiziente Methode parat. Dr. Michaela Kauer-Franz und Dr. Benjamin Franz betreuen auch komplexe Anwendungen und solche mit speziellen Anforderungen wie Medizinprodukte. Profitieren Sie von ihrem Erfahrungsschatz! Aus dem Inhalt: Übersicht über Prozesse und VorgehenDer richtige "Mindset"User Researcher Skills: Beobachten, Fragenstellen, ZuhörenPsychologische GrundlagenNutzer*innen, Kund*innen und wirDesigngrundlagenData Driven UX DesignInhaltspunktLösungen evaluierenEin Glossar mit allen wichtigen Fachbegriffen 1. Für wen ist dieses Buch? Warum und wie sollten Sie das Buch lesen? ... 21 1.1 ... Für wen ist dieses Buch geschrieben? ... 21 1.2 ... Warum sollten Sie dieses Buch lesen? ... 22 1.3 ... Wie sollten Sie dieses Buch lesen? ... 26 1.4 ... Ihre ständigen Begleiter: Unsere drei Beispiele ... 27 2. Die wichtigsten Begriffe und ihre Historie ... 33 2.1 ... Die (Vor-)Geschichte von Usability und User Experience ... 33 2.2 ... Usability und User Experience Design -- die Kernbegriffe ... 40 2.3 ... Das Zusammenspiel von Ergonomie, Usability und User Experience ... 52 3. Usability und User Experience als Erfolgsfaktor herausragender Produkte ... 67 3.1 ... Was ist der Return on Investment (ROI)? ... 68 3.2 ... Metriken für den unternehmerischen Erfolg ... 68 3.3 ... ROI planen statt ROI »entdecken« ... 75 3.4 ... Unterschiede zwischen Metriken für den unternehmerischen Erfolg im B2C- vs. B2B-Bereich ... 78 3.5 ... Was sind typisch erreichbare ROIs durch Usability und User Experience Design? ... 80 3.6 ... Praxisbeispiel: Messung des ROI bei MoveHub ... 83 3.7 ... Praxisbeispiel: Messung des ROI bei BusinessBooster ... 84 3.8 ... Praxisbeispiel: Messung des ROI bei Healthyfy ... 86 4. Wie »mache« ich Usability und User Experience Design? ... 87 4.1 ... Die Norm ISO 9241-210 -- Menschzentrierte Gestaltung interaktiver Systeme ... 88 4.2 ... Design Thinking ... 95 4.3 ... Minimum Viable Product (MVP) -- das kleinste, sinnvolle Produkt ... 108 4.4 ... Double Diamond ... 113 4.5 ... Usability Engineering bei Medizinprodukten nach der Norm IEC 62366-1 ... 117 4.6 ... Gemeinsamkeiten der beschriebenen Verfahren ... 120 5. Data-Driven UX Design ... 127 5.1 ... Das Ziel des Data-Driven UX Design-Prozesses ... 128 5.2 ... Der Data-Driven UX Design-Prozess (3DUX) im Überblick ... 129 5.3 ... Die Flexibilitäts- und Risikomatrix -- oder: Wie viele Daten brauchen Sie wirklich? ... 143 5.4 ... Objektive versus subjektive Daten ... 151 5.5 ... Quantitative versus qualitative Daten ... 154 5.6 ... Daten kritisch bewerten ... 155 5.7 ... Schnelle Hilfestellung zur Einordnung ... 160 6. Ein hilfreiches Mindset für Usability und User Experience Design ... 165 6.1 ... Annahmen vs. Wissen ... 166 6.2 ... Die Nutzer wissen nicht, was sie wollen! ... 182 6.3 ... Die wichtigsten Skills der User Researcher: beobachten, Fragen stellen, zuhören ... 190 6.4 ... Gestaltung als lernbarer Prozess ... 204 6.5 ... Testen und Unternehmenskultur ... 208 7. Grundlagen ... 211 7.1 ... Psychologische Grundlagen -- keine Angst, es geht um Menschen ... 211 7.2 ... Wahrnehmung -- die menschliche Sensorik ... 212 7.3 ... Menschliche Informationsverarbeitung ... 253 7.4 ... Designgrundlagen ... 275 8. Der Data-Driven UX Design-Prozess im Detail -- Vorbereitung ... 343 8.1 ... Die Planung des Data-Driven UX Design-Prozesses ... 344 8.2 ... Integration von Data-Driven UX Design in agile Entwicklungsprojekte ... 353 8.3 ... Den Aufwand von Data-Driven UX Design angemessen auswählen ... 357 9. Der Data-Driven UX Design-Prozess im Detail -- Nutzungskontextanalyse ... 361 9.1 ... Welche Fragen muss die Nutzungskontextanalyse beantworten? ... 362 9.2 ... Was ist überhaupt der Nutzungskontext? ... 364 9.3 ... Methoden der Nutzungskontextanalyse ... 376 9.4 ... Analytische Methoden der Nutzungskontextanalyse ... 423 9.5 ... Praxisbeispiele zur Kontextanalyse ... 443 10. Der Data-Driven UX Design-Prozess im Detail -- Nutzungsanforderungen spezifizieren ... 455 10.1 ... Betrachten Sie Ihre Personas oder Empathy Maps ... 456 10.2 ... Use Cases und User Stories -- wie es nicht geht und wie es doch geht ... 458 10.3 ... Von der User Story zur Anforderung ... 466 10.4 ... Anforderungen formulieren für MoveHub ... 475 10.5 ... Anforderungen formulieren für BusinessBooster ... 477 10.6 ... Anforderungen formulieren für Healthyfy ... 479 11. Der Data-Driven UX Design-Prozess im Detail -- Gestaltungslösungen entwickeln ... 481 11.1 ... Erinnerung: Was ist das Ziel der Gestaltung und wie gehen wir dabei vor? ... 481 11.2 ... Design Research ... 482 11.3 ... Vom Groben zum Feinen ... 486 11.4 ... Grundsätzliche Lösungsmöglichkeiten entwickeln ... 487 11.5 ... Arbeit mit Prototypen ... 491 11.6 ... Wireframes ... 496 11.7 ... Die Qualität von User-Interface-Konzepten mit dem Designgrid prüfen ... 543 11.8 ... Screenflows ... 546 11.9 ... Klickdummys ... 548 11.10 ... Desktop, Mobile oder Smartwatch first? ... 554 11.11 ... Responsive Design ... 559 11.12 ... Visual Design ... 560 11.13 ... Ausflug: Low-Code und No-Code ... 573 11.14 ... Beispiel: Mögliche Design-Steps für MoveHub ... 574 11.15 ... Beispiel: Mögliche Design-Steps für BusinessBooster ... 576 11.16 ... Beispiel: Mögliche Design-Steps für Healthyfy ... 577 12. Der Data-Driven UX Design-Prozess im Detail -- Gestaltungslösungen evaluieren ... 581 12.1 ... Formatives vs. summatives Testen ... 581 12.2 ... Wissenslücken identifizieren ... 586 12.3 ... Nutzerevaluation vs. Expertenevaluation ... 587 12.4 ... Remote vs. vor Ort ... 589 12.5 ... Test-Cases gestalten ... 593 12.6 ... Die vorgestellten Methoden ... 598 12.7 ... Der Usability- und der User Experience-Test ... 599 12.8 ... Usability und User Experience-Sprint ... 609 12.9 ... Rapid User-Tests ... 615 12.10 ... A/B-Testing ... 620 12.11 ... UX-Benchmarking ... 625 12.12 ... 5-Sekunden-Test ... 630 12.13 ... Standardisierte Fragebögen ... 635 12.14 ... Analyse von quantitativen Nutzungsdaten ... 648 12.15 ... Webtracking/Klickanalyse ... 652 12.16 ... Tagebuchstudie ... 653 12.17 ... Card Sorting ... 660 12.18 ... Experten-Review ... 665 12.19 ... Assoziationsraumtest (ARTTest) ... 670 12.20 ... Eyetracking ... 673 12.21 ... Physiologische Messverfahren ... 680 12.22 ... Fehler analysieren mithilfe der Root-Cause-Analyse ... 683 12.23 ... Aus den Daten lernen und begründete Entscheidungen treffen ... 689 12.24 ... Evaluationen in der Medizinprodukteentwicklung ... 692 12.25 ... Beispiel: Evaluationsmethoden für MoveHub ... 693 12.26 ... Beispiel: Evaluationsmethoden für BusinessBooster ... 694 12.27 ... Beispiel: Evaluationsmethoden für Healthyfy ... 697 13. Design, Get Data, Repeat -- wann ist Schluss? ... 699 13.1 ... Den Übergang anhand der Qualität bestimmen ... 700 13.2 ... Den Übergang anhand der Zeit bestimmen ... 702 13.3 ... Nachsteuern ja oder nein? Die Flexibilitäts- und Risikomatrix als Hilfestellung ... 703 13.4 ... Den richtigen Ansatz wählen ... 704 13.5 ... So geht es weiter mit MoveHub, der B2C-Mobilitäts-App für jede Gelegenheit ... 706 13.6 ... So geht es weiter mit BusinessBooster, dem B2B-CRM-BI-Tool für kleine und mittelständische Unternehmen ... 706 13.7 ... So geht es weiter mit Healthyfy, dem Vermittlungsportal für Gesundheitsexperten (B2B- und B2C-Medizinprodukt) ... 707 14. Entscheidungsmatrix für die Methodenauswahl ... 709 14.1 ... Fragestellungen ... 710 15. Wrap-up und Fazit ... 719 15.1 ... Es geht um die Nutzenden ... 719 15.2 ... Usability und User Experience Design ist interdisziplinär ... 720 15.3 ... User Experience designt man nicht, sondern sie wird erlebt ... 720 15.4 ... Der Weg zu einem herausragenden Produkt ist iterativ ... 721 15.5 ... Man fängt zwar irgendwann mit Usability und User Experience Design an, aber man hört nie wieder damit auf ... 721 15.6 ... Gestalten Sie anhand von Daten ... 722 15.7 ... Schlusswort und Aufruf zur Mitgestaltung ... 722 Anhang ... 725 A ... Glossar ... 725 B ... Literaturverzeichnis ... 738 Index ... 746
Programming and GUI Fundamentals
PROGRAMMING AND GUI FUNDAMENTALSDISCOVER THE FOUNDATIONS OF TCL PROGRAMMING AND GUI DEVELOPMENTProgramming and GUI Fundamentals: Tcl-Tk for Electronic Design Automation (EDA), delivers a comprehensive exploration of the major design challenges and potential present in application and tool development with Tcl-Tk. Accessibly written and easy-to-understand, the book can be used by students at a variety of levels, as well as researchers and working professionals. The authors present the fundamental concepts of Tcl programming and graphic user interface (GUI) development using images, and photographs, assisting with concept understanding and retention. They describe real-time system designs and offer students and designers the opportunity to learn about critical concepts in scripting and GUI development. Readers will learn to design their own GUI, place and package widgets on the GUI, and allow EDA professionals, chip designers and students to code and design in TCL-TK. They will also benefit from:* A thorough introduction to scripting languages and wish interpreters, including their fundamental concepts, TCL tips and tricks, and command, variable, and procedure examples* Comprehensive explorations of the TCL data structure, including datatypes, strings and commands, lists and commands, and arrays and commands* Practical discussions of TCL control flow, including conditional commands, multi-condition commands, and loop commands* In-depth examinations of file input/output processing, including TCL file read-write, open and close commands, gets, and puts.Perfect for undergraduate and graduate students studying programming or computer science, as well as professionals working on electronic design automation and chip design, Programming and GUI Fundamentals: Tcl-Tk for Electronic Design Automation (EDA) is also an indispensable resource for programming professionals seeking to upskill. SUMAN LATA TRIPATHI, PHD, is Professor of VLSI Design at Lovely Professional University. She is a Senior Member of the IEEE and obtained her doctorate in Microelectronics and VLSI Design from Motilal Nehru National Institute of Technology, Allahabad, India. ABHISHEK KUMAR, PHD, is Associate Professor at Lovely Professional University. He received his doctorate in VLSI Design for Low Power and Secured Architecture from Lovely Professional University, Punjab, India. JYOTIRMOY PATHAK is Assistant Professor at Lovely Professional University, Punjab India. He has published over 10 research papers, holds 9 patents, and 1 copyright. Author BiographiesChapter 1 - IntroductionChapter 2 – Basic CommandChapter 3 - Program Flow ControlChapter 4 - Tcl Data StructureChapter 5 - Tcl Object-Oriented ProgrammingChapter 6: File ProcessingChapter 7: Toolkit WidgetChapter 8 - Binding Command and Other WidgetChapter 9 - Canvas Widget and Tk CommandsChapter 10 - Tcl-Tk for EDA ToolIndex
Python für Excel
Befreien Sie sich aus dem Chaos der riesigen Arbeitsmappen, Tausenden von Formeln und hässlichen VBA-HacksExcel ist nach wie vor ein unverzichtbares Analysetool und hat in den letzten Jahren viele neue Funktionen hinzubekommen, doch die Automatisierungssprache VBA hat sich nicht parallel weiterentwickelt. Viele Excel-Poweruser nutzen daher bereits Python, um Routinearbeiten zu automatisieren. Felix Zumstein zeigt in diesem praktischen Leitfaden erfahrenen Excel-Benutzerinnen und -Benutzern, wie sich Python als Skriptsprache für Excel effizient verwenden lässt.Dieses Buch bietet Ihnen einen schnell zugänglichen Einstieg in Python, sodass Sie direkt in die Praxis starten können:Verwenden Sie Python ohne fortgeschrittene ProgrammierkenntnisseArbeiten Sie mit modernen Tools wie Jupyter-Notebooks und Visual Studio CodeNutzen Sie pandas zum Erfassen, Bereinigen und Analysieren von Daten und ersetzen Sie typische Excel-BerechnungenAutomatisieren Sie mühsame Aufgaben wie die Konsolidierung von Excel-Arbeitsmappen und das Erstellen von Excel-BerichtenSetzen Sie xlwings ein, um interaktive Excel-Tools zu erstellen, die Python als Berechnungsmodul verwendenVerbinden Sie Excel mit Datenbanken und CSV-Dateien und rufen Sie mit Python-Code Daten aus Internetquellen abVerwenden Sie Python als Universalwerkzeug, um VBA, Power Query und Power Pivot zu ersetzenAutor:Felix Zumstein ist der Schöpfer und Betreuer von xlwings, einem beliebten Open-Source-Paket, das die Automatisierung von Excel mit Python unter Windows und macOS ermöglicht. Er organisiert auch die xlwings-Treffen in London und New York City, um eine breite Palette innovativer Lösungen für Excel zu fördern.Als CEO von xltrail, einem Versionskontrollsystem für Excel-Dateien, hat er mit Hunderten von Anwendern gesprochen, die Excel für geschäftskritische Aufgaben verwenden, und ist daher mit den typischen Excel-Anwendungsfällen und -Problemen in verschiedenen Branchen bestens vertraut.Zielgruppe:Excel-Praktiker*innenBusiness-Analyst*innenVBA-Entwickler*innenData ScientistsLeseprobe (PDF-Link)
Test Your Skills in C# Programming
Review the fundamental constructs in C# using Q&As and program segments to boost your confidence and gain expertise. This book will help you analyze your programs more efficiently and enhance your programming skills.The book is divided into three parts, where you will learn the fundamentals, object-oriented programming, and some advanced features of C#. In the first part, you will review C# and .NET basics along with the important constructs such as strings, arrays, and structures. In the second part, you'll review the concepts of object-oriented programming in detail. Here, you will go through various program segments in class and objects, inheritance, polymorphism, abstraction, encapsulation, and much more. You will also analyze the output of the given programs with the help of Q&A sections. The uses of interfaces, static class, and exception handling are discussed in the book along with some other important concepts in C#. In the third and last part, you will learn advanced features of C# programming such as delegates, events, lambdas, generics, and multithreading. Here, you'll also cover some of the latest features of C#.After reading this book, you will be able to analyze and apply the basic and frequently used features along with the advanced features of C#.WHAT WILL YOU LEARN* Understand the core and some of the latest features in C#* Review your programming skills along with some of the latest features in C#* Know how object-oriented programming (OOP) is used in C#* Get up and running on the advanced features of C# such as delegates, lambdas, generics, and moreWHO THIS IS BOOK FORProgrammers with basic knowledge of C#VASKARAN SARCAR obtained his Master of Engineering in software engineering from Jadavpur University, Kolkata (India) and an MCA from Vidyasagar University, Midnapore (India). He was a National Gate Scholar (2007-2009) and has more than 12 years of experience in education and the IT industry. Vaskaran devoted his early years (2005-2007) to the teaching profession at various engineering colleges, and later he joined HP India PPS R&D Hub Bangalore. He worked there until August 2019. At the time of his retirement from HP, he was a Senior Software Engineer and Team Lead at HP. To follow his dream and passion, Vaskaran is now an independent full-time author. Other Apress books by him include: _Java Design Patterns Third Edition, _Simple and Efficient Programming in C#, _Design Patterns in C# Second Edition, __Getting Started with Advanced C#, __Interactive Object-Oriented Programming in Java Second Edition,__ __Java Design Patterns Second Edition, __Design Patterns in C#, __Interactive C#, __Interactive Object-Oriented Programming in Java, _Java Design Patterns.PART I FUNDAMENTALSCHAPTER 1: LANGUAGE BASICSCHAPTER GOAL: THIS CHAPTER DISCUSSES THE FOLLOWING TOPICS:The important concepts in .NETThe basic programming constructs in C#.Use of some useful data types including the var type.Use of some useful operators and explicit-casting.Use of the selection statements and case guards.Use of iteration statements.Use of the jump statements.Use of the ternary operator.No of pages: 28SUB - TOPICS NCHAPTER 2: STRING AND ARRAYSCHAPTER GOAL:ONCE YOU FINISH THIS CHAPTER, YOU CAN ANSWER THE FOLLOWING QUESTIONS AND RELATED AREAS:How can you use string datatype in your program?How can you use the common in-built methods from the String class?How a String variable is different from a StringBuilder?How can you convert a string to an int?How can you use nullable reference type in a program?How to create arrays in C#?What are the different types of C# arrays and how to use them?How to use common in-built methods from the System.Array class?How can you iterate over a string or an array?NO OF PAGES 23SUB - TOPICS NACHAPTER 3: ENUMERATION AND STRUCTURESCHAPTER GOAL: This chapter discusses the following topics:The enum fundamentalsFlags enumerationDefaut value expressionsThe struct fundamentalsNon-destructive mutationsNO OF PAGES: 26SUB - TOPICS NAPART II OBJECT-ORIENTED PROGRAMMINGCHAPTER 4: CLASS AND OBJECTSCHAPTER GOAL: This chapter focuses on the following topics:Classes and objects creations.Instance fields and methods.Constructors and their usage.Optional parameters.Object initializers.Nested classes.The uses of private, internal, and public modifiers inside a class.NO OF PAGES: 17SUB - TOPICS NACHAPTER 5: INHERITANCECHAPTER GOAL: This chapter covers the following topics:Inheritance and types.Method and constructor overloading.Method overriding.Use of virtual, override, and new keywords.Use of the sealed keyword.Introductory discussion on covariance and contravarianceNO OF PAGES 33Sub - Topics NAChapter 6: PolymorphismCHAPTER GOAL: This chapter helps you to review:Polymorphism and its benefits.Abstract classes and their uses.Interfaces and their uses.Different types of interfaces.Writing polymorphic codes using abstract classes and interfacesNO OF PAGES: 30SUB - TOPICS NAChapter 7: EncapsulationCHAPTER GOAL: This chapter covers the following topics:What is encapsulation? How is it different from an abstraction?Properties and their usage.Different ways to create a property.The usage of the get and set accessors.Virtual and abstract properties.The discussion of the init accessor.Indexers and their usage.How can the indexers and properties work with an interface?Discussion on different aspects of properties and indexers.NO OF PAGES: 26SUB - TOPICS NAChapter 8: Exception HandlingCHAPTER GOAL: This chapter covers the following topics:Exception and its uses in C# programming.Use of the try, catch, and finally blocks.Use of multiple catch blocks in a program.Use of a general catch block.How to throw and re-throw an exception.Use of exception filters.Custom exception class and its usage.NO OF PAGES: 23SUB - TOPICS NAChapter 9: Useful ConceptsChapter Goal: Q&A and program segments on some useful constructs such as casting and boxing, static class and methods, passing value type by value, passing value type by references(using ref and out keyword), extension methods, and so on.NO OF PAGES: 15-25+SUB - TOPICS NAPart III Advanced Features Chapter 10: DelegatesCHAPTER GOAL: This chapter covers the following topics:Delegates and their usesMulticast delegatesSome commonly used in-built delegatesCovariance and contravariance using delegatesNO OF PAGES: 20SUB - TOPICS NAChapter 11: EventsCHAPTER GOAL: This chapter helps you to review your understanding of events and discusses the following:Events creation and their uses.How to pass the event data.Use of event accessors.Use of interface events (both implicit and explicit).Simplified coding with events.NO OF PAGES: 22SUB - TOPICS NAChapter 12: LambdasCHAPTER GOAL: This chapter focuses on this and covers the following topics:Lambda expressions and their useExpression-bodied membersUse of local variables inside lambda expressions.Event handling using lambda expressions.Use of a static lambda.Understanding natural type.NO OF PAGES: 22SUB - TOPICS NACHAPTER 13: GENERICSCHAPTER GOAL: This chapter focuses on the following topics:The motivation behind generics.The fundamentals of generic programs.Use of generic interfaces.Use of generic constraints.Use of covariance and contravariance using generics.Self-referencing generic type.Experimenting with generic method’s overloading and overriding.Analyzing the static data in the context of generics.NO OF PAGES: 35SUB - TOPICS NACHAPTER 14: MULTITHREADINGChapter Goal: Upon completion of this chapter, you’ll be able to answer the following questions:What are the threads and how can you create them?What is a multithreaded program? How does it differ from a single-threaded application?Why are the ThreadStart and ParameterizedThreadStart delegates important in thread programming?How to block a thread using Sleep or Join methods?How can you use lambda expressions in a multithreaded program?How to use important Thread class members?How a foreground thread is different from a background thread?What is synchronization and why is it needed?How can you implement thread safety in C# using lock statements?How can you implement an alternative approach to lock statements using Monitor’s Entry and Exit Method?What is a deadlock and how can you detect the deadlock in your system?What is the purpose of using the ThreadPool class? What are the associative pros and cons of using it?How to cancel a running thread in the managed environment?And many more.NO OF PAGES: 40SUB - TOPICS NACHAPTER 15: MISCELLANEOUSCHAPTER GOAL: Q&A and program segments on the related latest features that are covered in the previous chapters and any other important topics(if any).NO OF PAGES: 10-20+SUB - TOPICS NA
Practical Haskell
Get a practical, hands-on introduction to the Haskell language, its libraries and environment, and to the functional programming paradigm that is fast growing in importance in the software industry. This updated edition includes more modern treatment of Haskell's web framework and APIs.This book contains excellent coverage of the Haskell ecosystem and supporting tools, including Cabal and Stack for managing projects, HUnit and QuickCheck for software testing, WAI and Elm to develop the back end and front end of web applications, Persistent and Esqueleto for database access, and parallel and distributed programming libraries.You’ll see how functional programming is gathering momentum, allowing you to express yourself in a more concise way, reducing boilerplate, and increasing the safety of your code. Haskell is an elegant and noise-free pure functional language with a long history, having a huge number of library contributors and an active community.This makes Haskell the best tool for both learning and applying functional programming, and Practical Haskell, Third Edition takes advantage of this to show off the language and what it can do. Free source code available on the Apress GitHub page for this book.WHAT YOU WILL LEARN* Get started programming with Haskell* Examine the different parts of the language* Gain an overview of the most important libraries and tools in the Haskell ecosystem* Apply functional patterns in real-world scenarios* Understand monads and monad transformers* Proficiently use laziness and resource managementWHO THIS BOOK IS FORExperienced programmers who may be new to the Haskell programming language. However, some prior exposure to Haskell is recommended.ALEJANDRO SERRANO MENA has more than a decade of experience as a developer, trainer, and researcher in functional programming, with an emphasis on Haskell and related languages. He holds a Ph.D. from Utrecht University on the topic of error message customization in compilers. He's an active member of the community, maintaining a few open-source projects, writing books about Haskell, and collaborating on podcasts and conferences.PART I: FIRST STEPS1. Going Functional2. Declaring the Data Model3. Increasing Code Reuse4. Using Containers and Type Classes5. Laziness and Infinite StructuresPART II: DATA MINING6. Knowing Your Clients Using Monads7. More Monads: Now for Recommendations8. Working in Several CoresPART III: RESOURCE HANDLING9. Dealing with Files: IO and Conduit10. Building and Parsing Text11. Safe Database Access12. Web ApplicationsPART IV: DOMAIN SPECIFIC LANGUAGES13. Strong Types14. Interpreting Offers with AttributesPART V: ENGINEERING THE STORE15. Documenting, Testing, and Verifying16. Architecting Your Application17. Looking Further