Zum Hauptinhalt springen Zur Suche springen Zur Hauptnavigation springen

Programmierung

Produkte filtern

Produktbild für Job Ready Java

Job Ready Java

PREPARE YOURSELF TO TAKE ON NEW AND EXCITING JAVA PROGRAMMING CHALLENGES WITH THIS ONE-STOP RESOURCEJob Ready Java delivers a comprehensive and foundational approach to Java that is immediately applicable to real-world environments. Based on the highly regarded and effective Software Guild Java Bootcamp: Object Oriented Programming course, this book teaches you the basic and advanced Java concepts you will need at any entry-level Java position.With the “Pulling It Together” sections, you’ll combine and integrate the concepts and lessons taught by the book, while also benefiting from:* A thorough introduction to getting set up with Java, including how to write, compile, and run Java programs with or without a Java IDE * Practical discussions of the basics of the Java language, including syntax, program flow, and code organization * A walk through the fundamentals of Object-Oriented Programming including Classes, Objects, Interfaces, and Inheritance, and how to leverage OOP in Java to create elegant code. * Explorations of intermediate and advanced Java concepts, including Maven , unit testing, Lambdas, Streams, and the Spring Framework Perfect for Java novices seeking to make a career transition, Job Ready Java will also earn a place in the libraries of Java developers wanting to brush up on the fundamentals of their craft with an accessible and up-to-date resource.HAYTHEM BALTI, PHD, is Director of Curriculum at Wiley’s Software Guild and mthree. He has created courses used by thousands of Software Guild Students in Java, Python, Go, and other development and data science competencies. He earned his doctorate in Computer Engineering and Computer Science from the University of Louisville.ALAN GALLOWAY is Director of Instruction at Wiley’s Software Guild and mthree. H:e supervises a team of instructors who deliver large-scale training programs in technology.About the Authors vAbout the Technical Writer viiAbout the Technical Editors viiAcknowledgments ixIntroduction xxvPART I: GETTING SET UP 1LESSON 1: INSTALLING JAVA 2The Java Universe 3The Java Development Kit 3The Java Virtual Machine 4The Java Runtime Environment 5Installing OpenJDK 5Installing OpenJDK on Microsoft Windows 6Checking for an Existing JDK on Windows 6Installing OpenJDK 7Verifying the Installation 10Installing OpenJDK on macOS 13Checking for an Existing JDK on macOS 13Installing OpenJDK 13Verifying the Installation 17Creating Your First Java Program 17Writing the Program 18Compiling and Running the Program 19Dealing with Syntax Errors 21Using the Compiler and Java Virtual Machine 22Summary 22LESSON 2: INSTALLING A DEVELOPMENT ENVIRONMENT: NETBEANS 24Getting Started 25Understanding the Value of an IDE 25Using the Source Code Editor 25Using the Build Automation Tools 26Using the Debugger 26Installing NetBeans 27Using an Installer 27Installing on Windows 28Installing on macOS 32Installing Binaries 37Installing Binaries on Windows 40Adding the JDK 42Running NetBeans 44Summary 45LESSON 3: USING AN INTEGRATED DEVELOPMENT ENVIRONMENT 46Using an IDE 47Creating a New Project 48Coding the “Hello, World!” Program 53Compiling the Code in NetBeans 57Running the Program 59Using the Debugging Tools 60Compilation and Syntax Errors 61Runtime and Logic Errors 63Understanding Source Control 67Summary 69PART II: BASICS OF OBJECT ORIENTED PROGRAMMING 70LESSON 4: USING PROGRAM STATEMENTS AND VARIABLES 71Approach 72Concepts 73Computers 73Data vs. Information 73Programs and Programming 74Models and Metaphors 74Objects 74Specifications 75Syntax vs. Semantics 75Language Building Blocks 75Comments 75Single-Line Comments 76Multiline Comments 76Doc Comments 77Using Comments 78Identifiers 79Data Types 80Statically Typed Languages 81Type Conversion 81Literals 82Variables 82Constants 84Operators and Expressions 84Three Flavors of Operators 85Operator Precedence 88Pulling It All Together: Mathematical Expressions and Operators 89Summary 93Exercises 93Exercise 1: ABeginning.java 94Exercise 2: ProjectGutenberg.java 95Exercise 3: CommentingCode.java 97Exercise 4: AllTheMath.java 98Exercise 5: BucketsOfFun.java 100LESSON 5: COLLECTING AND PARSING INPUT FROM THE USER 103Console Input and Output 104Adder Version 1 104Adder Version 2 106Declaring and Initializing Our Variables 106Setting Up a Scanner Object 106Understanding the Command Line 107Getting the Values from the User 108Going from Strings to Integers 108Adding the Numbers Together 109Using Loops to Gather User Input 111Parsing Data 112Dealing with Bad Numbers: NumberFormatException 113Scanner Problems 115Summary 121Exercises 121Exercise 1: Quest for the User Input 121Exercise 2: Don’t Forget to Store It 123Exercise 3: Passing the Turing Test 124Exercise 4: Healthy Hearts 125Exercise 5: Mini Mad Libs 126LESSON 6: PULLING IT ALL TOGETHER: BUILDING A USEFUL PROGRAM 127Planning the Program 128Identifying the Variables 128Planning the Steps 128Creating the Code 129Declaring the Variables 129Getting Input 130Converting the Strings 131Calculating the Area and Perimeter 132Calculating the Cost 133Displaying the Results 133Running the Program 135Summary 135Exercises 136Exercise 1: Mapping Instructions to Code 136Exercise 2: Adding Prompts for Costs 136Exercise 3: Adding Multiple Windows 136Exercise 4: Adding Validation 137LESSON 7: CONTROLLING PROGRAM FLOW 138What Can Our Code Do? 139Decisions and Boolean Expressions 139if Statements 139if-else Statements 142Chaining if-else Statements 144Evaluating Multiple Conditions 146Conditional-And and Conditional-Or Operators 147Exclusive-Or 149Ternary or Conditional Operator 150switch Statement 151Falling Through with a switch Statement 153Comparing for Equal Strings 155Summary 158Exercises 159Exercise 1: What Month is It? 159Exercise 2: Guess Me 159Exercise 3: Birthstones 160Exercise 4: Trivia Night 161Exercise 5: Space Rustlers 162Exercise 6: Picky Eater 163Exercise 7: Field Day 165LESSON 8: LOOPING PROGRAM FLOW 167Loops 167Using while Loops 168Initializing the while Loop 171Incrementing the while Loop 171Breaking a Loop 172Using do-while Loops 174Making do-while Shine 176Using for Loops 179Initializing the for Loop 181Terminating the for Loop 181Incrementing a for Loop 181Summary 184Exercises 184Exercise 1: Surfacing in BewareTheKraken.java 185Exercise 2: Do or Do Not 185Exercise 3: Guess Me Finally 186Exercise 4: for and Twenty Blackbirds 187Exercise 5: Spring Forward, Fall Back 188Exercise 6: for Times 189Exercise 7: for Times for 189Exercise 8: Nesting for Loops 190Exercise 9: Traditional Fizz Buzz 191LESSON 9: UNDERSTANDING FLOWCHARTS AND ALGORITHMS 193Flowchart Basics 194Sequences 194Branches 195Loops 196Flowcharting 197Flowchart Example 197Summary 198Exercises 200Exercise 1: A Guessing Game 200A Possible Flowcharting Solution 201The Guessing Game Flowchart 201The Guessing Game Code 203LESSON 10: ADDING RANDOMNESS TO YOUR PROGRAMS 207Initializing the Random Object 208Including the Random Class 208Seeding Random Numbers 208Generating Random Integers 209Generating Random Doubles 210Revisiting the Number Guessing Game 212Other Random Options 215Summary 215Exercises 215Exercise 1: A Little Chaos 216Exercise 2: Opinionator—Making Random Choices 217Exercise 3: High Roller 219Exercise 4: Coin Flipper 220Exercise 5: Guess Me More 220Exercise 6: Fortune Cookie 221LESSON 11: DEBUGGING 222Creating a File to Debug 222Setting Breakpoints 224Stepping through Code 226Running the Debugger 226Examining Variables 229The Console and the Debugger 232Summary 234Exercises 234Exercise 1: Odd Odd Numbers 234Exercise 2: A Simple Question of If 235LESSON 12: ADDING METHODS 237Why Methods? 238Defining Methods 238Method Signature 239Method Naming Conventions 239Return Values 240Using Return Values 241Input Parameters 242Matching Number of Parameters 244Matching Parameter Types 245Passing Parameters 246Method Forms 248No Return Value, No Parameters 248Return Value, No Parameters 248No Return Value, One or More Parameters 249Return Value, One or More Parameters 249The staticKeyword 249Pulling It All Together 250Identifying the Similarities 252Identifying the Differences 252Creating the Method 252Setting the Name 252Determining Parameters 253Setting a Return Type 253Our Basic Definition 253Our Method Body 254Using the Method 255Scope 257Debugging and Step Into 259Setting a Breakpoint in a Method 260Stepping into Code 262Debugging and Scope 265Summary 265Exercises 265Exercise 1: Method to the Madness 266Exercise 2: Return to Sender 267Exercise 3: MatchWork 268Exercise 4: Barely Controlled Chaos 269LESSON 13: ORGANIZING WITH ARRAYS 272What is an Array? 273Types of Arrays 274Element vs. Index 275Declaring Arrays 276Single-Dimensional Arrays 276Rectangular Arrays 276Jagged Arrays 277Initializing Arrays 277Initializing a Single-Dimensional Array 278Initializing a Rectangular Array 279Initializing a Jagged Array 280Accessing Array Elements 281Accessing Elements in a Single-Dimensional Array 281Accessing Elements in a Multidimensional Array 283Accessing Elements in a Jagged Array 284Iterating through Arrays 284Iterating through Multidimensional and Jagged Arrays 286Sum the Elements of an Array 288Looping Back to Front, with a Twist 289Printing Pairs of Elements 290Changing the Size of an Array 291Dealing with Errors 293Summary 293Exercises 294Exercise 1: A Rainbow 294Exercise 2: Still Positive 295Exercise 3: Fruit Basket 296Exercise 4: Simple Combination 297Exercise 5: Hidden Nuts 297Exercise 6: Summative Sums 298PART III: FUNDAMENTALS OF CLASSES AND OBJECTS 299LESSON 14: OBJECT-ORIENTED CONCEPTS 300Abstraction 301Object Orientation 301Types 302Public Interface/Private Implementation 302Encapsulation and Data Hiding 303Single Responsibility Principle and Cohesion 303Delegation 304Summary 304LESSON 15: CREATING CLASSES AND TYPES 305Creating New Types 305Classes vs. Objects 307Properties, Accessors, and Mutators 307Dot Operator 308this Keyword 309Methods/Behaviors 309Constructors 309Object Instantiation and Method Invocation 311Static Keyword 312Static and the Main Method 313Static and Constant Values 313Static and Utility Methods 314Pulling It All Together 315Creating a New Class 316Going Static 320When to Go Static 323Existing Static Methods 325Summary 325Exercises 326Exercise 1: Class Modeling 327Exercise 2: Refactoring 328Exercise 3: A Multiclass Problem 330LESSON 16: MANAGING STORAGE AND MEMORY 331Programs and Memory 331The Stack 332The Heap 334Garbage Collection 338Reference and Null Values 339Summary 341LESSON 17: EXPLORING INTERFACES, COMPOSITION, AND INHERITANCE 342How Do These Tools Help? 343Interfaces 344Composition and Inheritance 345Composition 345Inheritance 346Using Interfaces, Composition, and Inheritance 346Summary 347LESSON 18: DIVING INTO INTERFACES 348What is an Interface? 349Declaring an Interface 349Implementing an Interface 350Interface Restrictions 352Implementing Multiple Interfaces 352Extending an Interface 354Interfaces and Polymorphism 356Summary 357LESSON 19: DIVING INTO COMPOSITION 358What is Composition? 359Book without Composition 359Book with Composition 360Summary 362Exercises 362Exercise 1: Classroom Composition 362Exercise 2: Cookbook 363LESSON 20: DIVING INTO INHERITANCE 365Everything Extends Object 366Terminology 366Access Control 367Inheritance 368Code Reuse through Inheritance 371Method Overloading 371Method Overriding 373Constructors 375Polymorphism 380Calling Methods Polymorphically 382Abstract Base Classes 383Summary 383Exercises 383Exercise 1: Working with Shape 384LESSON 21: UNDERSTANDING COLLECTIONS 385Collections in Java 385Javadoc 386Collections Framework Structure 387Interface vs. Implementation 389Iterator 390Commonly Used Interfaces in the Collections Framework 390Quick Look at List 390ArrayList 390Stack 391Quick Look at Set 391HashSet 391TreeSet 392Quick Look at Map 392HashMap 392TreeMap 392Summary 393LESSON 22: INTRODUCTION TO LISTS 394List 394Types of Lists 395ArrayList 395LinkedList 395Stack 397Understanding Generics 397Using Lists 398Instantiating a List 398Adding Items to a List 401Accessing Items in a List 402Inserting Items into a List 403Removing Items from a List 403Enhanced Approaches to Access List Items 405The Enhanced for Loop and Lists 406Visiting Each Element: Iterators 407Creating an Iterator 407Using the Iterator 408Summary 410Exercises 410Exercise 1: Three Threes 410Exercise 2: Mixed-Up Animals 411LESSON 23: EXPLORING MAPS 412Map Interface 412HashMap 413Creating and Adding Entries to a Map 413Instantiating a Map 413Adding Data to a Map 414Manipulating with Entries in a Map 415Looking Up Values in a Map 415Replacing Data in a Map 417Removing Values from a Map 417Getting Keys and Listing Mapped Values in a Map 417Listing All the Keys 417Listing All the Values Key by Key 420Listing All the Values: Value Collection 421Summary 423Exercises 423Exercise 1: State Capitals 423Exercise 2: A Reusable User I/O Class 424Exercise 3: Student Quiz Scores 427LESSON 24: USING SIMPLE FILE INPUT AND OUTPUT 429Data Storage and Representation 430File Format, Marshaling, and Unmarshaling 431Student Class 432File Format Example 433Marshaling and Unmarshaling Approach 433Simple File I/O 434Writing to a File 435Exceptions 436The OutFile.txt File 437Reading from a File 438Summary 440Exercises 440Exercise 1: Creating State Capitals 441Exercise 2: Hashing the State Capitals 442Exercise 3: A State Guessing Game 442Exercise 4: Objectifying States 443LESSON 25: APPLYING APPLICATION DESIGN 446CRUD Applications 447Using a Tiered Design 448The Basic Tiers 448The Model-View-Controller Pattern 448Packages 449Software Development Lifecycle Overview 450Waterfall 450Iterative Development 451Agile Development 451Project Lifecycle 452Phase 1: Inception 452Phase 2: Elaboration 452Phase 3: Construction 453Phase 4: Transition 453Iterations 453Summary 454LESSON 26: HANDLING EXCEPTIONS 455Exception Handling 456Catch or Specify Requirement 459Exception Types 459Handling (Catching) Exceptions 459try Block 459catch Block 461finally Block 462Specifying and Throwing Exceptions 464Exception Translation and Encapsulation 465Summary 466Exercises 466Exercise 1: Keep On Asking 466Exercise 2: Arrays Gone Bad 466Exercise 3: Exiting Gracefully 468LESSON 27: PULLING IT ALL TOGETHER: BUILDING THE CLASS ROSTER APP 469Application Requirements and Use Cases 470Understanding theApplication Structure 470Interface Relationships 471Composition Relationships 472Inheritance Relationships 472Classes and Interfaces in Our Application 472MVC Rules of the Game 473Construction Approach 473Setting Up the Class Roster Application Shell 474Creating the Menu System 477UserIO and UserIOConsoleImpl 478ClassRosterController 482App 483ClassRosterView 484ClassRosterController 485Adding a Student Use Case 487Student (DTO) 487ClassRosterDao and ClassRoster-DaoFileImpl 488ClassRosterDao 488ClassRosterDaoFileImpl 490ClassRosterView 491ClassRosterController 493Viewing All Students Use Case 494ClassRosterDaoFileImpl 494ClassRosterView 495ClassRosterController 496Getting a Student Use Case 497ClassRosterDaoFileImpl 498ClassRosterView 498ClassRosterController 499Removing a Student Use Case 501ClassRosterDaoFileImpl 501ClassRosterView 501ClassRosterController 502Handling Unknown Command and Exiting 504ClassRosterView 504ClassRosterController 504Working with Dependency Injection 506Implementation 507ClassRosterController 507ClassRosterView 508App 508Handling Application Exceptions 509ClassRosterDaoException 509Adding File Persistence 512ClassRosterDaoFileImpl 512Constants 512unmarshalStudent 513loadRoster 514marshalStudent 516writeRoster 517addStudent 518getAllStudents 519getStudent 520removeStudent 520ClassRosterDao 521ClassRosterView 522ClassRosterController 522Create roster.txt 525Summary 527Exercises 527Exercise 1: DVD Library Update 527Exercise 2: Electronic Address Book 528PART IV: INTERMEDIATE JAVA 531LESSON 28: EXPLORING THE SERVICE LAYER 532The Role of the Service Layer 532Service Layer Exceptions 534Service Layer API Design 534New Business Rules 534Create a Student 535Define the Method Signature 535Define the Return Type 535Define the Errors That Might Occur in This Method 535Service Layer Methods for Getting Students 536Get All Students 536Get a Single Student 537Remove a Student 537Summary 537LESSON 29: PULLING IT ALL TOGETHER: CODING THE CLASS ROSTER SERVICE LAYER 538Create a Service Layer Interface 539Create New Exceptions 542ClassRosterDuplicateIdException 542ClassRosterDataValidation Exception 543Refactor/Rename ClassRoster-DaoException 543Create the Service Layer Implementation 546Constructor and DAO Member 547Validating Student Data 547Create Student 548Get All Students 549Get One Student 549Remove Student 550Modify the Controller 550Replace Member Field 551Modify Constructor 551Replace Calls to DAO Methods with Calls to the Service Layer Method 551Modify the App 553Add the Audit Log Feature 554Audit DAO Interface and Implementation 554Modify the Service Layer 556Add Member Field 556Modify the Constructor 556Modify createStudent 556Modify removeStudent 557Modify App 558Summary 559LESSON 30: DOING UNIT TESTING 560Unit Testing 561Types of Unit Testing 561Black-Box vs. Glass-Box Testing 562Stateful vs. Stateless Components 562Test-Driven Development and Red/Green/Refactor 562Test Stubs 563JUnit 563Test Setup and Teardown 563Annotations 564Asserts 564Given/When/Then 564Stateless Unit Testing 565What Makes a Good Unit Test? 565Designing a Test Plan 565Happy Llama Test Plan 567Implementing Unit Tests 568Creating the Test Class 568Writing Happy Llama Tests 569Running JUnit Tests 571Summary 575LESSON 31: TESTING STATEFUL CODE 577Unit Testing Stateful Code 578Separating Production and Test Data 579Adding hashCode and equals to Student 580Adding toString to Student 582Creating the Test Class 583The Set Up and Tear Down Methods 584Arrange/Act/Assert for Stateful Code 585Class Roster DAO Test Design 586Add Student 586Get Student 588ClassRosterDaoTest: Adding and Getting a Student 589Get All Students 590ClassRosterDaoTest: Adding and Getting All Students 590Remove Student 592ClassRosterDaoTest: Adding and Removing Students 592Unit Testing the Service Layer 594Planning the Test Design 595Creating the Test Class 595Creating the DAO Stubs 596ClassRosterAuditDaoStubImpl 597ClassRosterDaoStubImpl 597Test Setup 599Test Implementation 600testCreateValidStudent 600testCreateStudentDuplicateId 601testCreateStudentInvalidData 602testGetAllStudents 603testGetStudent 603testRemoveStudent 604Summary 605Exercises 605Exercise 1: Testing the Address Book App 605Exercise 2: Testing the DVD Library 606LESSON 32: INCLUDING MAGIC NUMBERS AND ENUMS 607Magic Numbers 608Enums 608Creating Enums for Fixed Constants 609Using Enums 609Getting Values from an Enum 611Enum Members 612Summary 616Exercises 616Exercise 1: How Many Days until Friday? 617Exercise 2: Playing Cards 617LESSON 33: MANIPULATING DATES AND TIMES 618ISO Calendar 619Human Time and Machine Time 619Local and Zoned Classes 619Periods and Duration 620Working with LocalDate Objects 620Creating LocalDates 620Converting Dates to and from Strings 622Formatting Dates 623Using Localization 625Getting the Time with LocalDateTime 626Working with Date Calculations 628Calculating Dates in the Future and Past 628Calculating the Time between Two Dates 630Working with Legacy Dates 632Converting Date Objects 632Converting a GregorianCalendar Object 633Summary 635Exercises 635Exercise 1: Birthday Calculator 635Exercise 2: It’s The End of the World as We Know It 636Exercise 3: Tracking Your Time 636LESSON 34: USING THE BIGDECIMAL CLASS 638Exploring BigDecimal 639Constructing BigDecimals 639Understanding Scale 641Understanding Rounding Modes 641Working with BigDecimal 642Setting Scale 642Setting Scale without Rounding Mode 643Rounding BigDecimals 643Doing Calculations with BigDecimals 645Dividing BigDecimals 646Summary 648Exercises 648Exercise 1: Interest Calculator 648Exercise 2: Car Lot Service Layer 649LESSON 35: WORKING WITH LAMBDAS AND STREAMS 653Using Aggregate Operations 654Understanding Pipelines and Streams 654Streams vs. Iteration 655Exploring Lambdas 655Working with Stream and Lambda Syntax 655The forEach() Stream Method 656The filter Stream Method 660The map Stream Method 661The collect Stream Method 663Further Syntax 664Summary 665Exercises 665Exercise 1: Only the Young 665Exercise 2: DVD Library Update 666PART V: ADVANCED JAVA 667LESSON 36: WORKING WITH THE SPRING FRAMEWORK 668Dependency Injection and Programming to Interfaces 669Why Spring? 670Understanding the Spring Approach 670Plain Old Java Objects 671Templates 671Pulling It All Together: Spring DI in Action 673Spring DI with XML 674XML Configuration File 675Update the App Class 676Spring DI with Annotations 677Class Annotations 678Summary 681LESSON 37: INTRODUCING MAVEN 682What is Maven? 683Project Object Model 683Project Identification 685Dependencies 685Build Settings 686Dependency Management 686Maven Lifecycle 687Summary 687LESSON 38: PULLING IT ALL TOGETHER: BUILDING THE CLASS ROSTER WITH SPRING 689Include the Spring Libraries 690How Do I Know What My Dependency Entry Should Be? 691Add Spring Configuration Files 692Convert the App Class to Use Spring 693Defining Beans 694Modifying the App Class 696Convert the Unit Tests to Use Spring 697Defining Beans 698Modifying the Test Class Constructor 699Exception Conditions 700Summary 701Exercises 701Exercise 1: DVD Library 701PART VI: APPENDICES 702APPENDIX A: CODE CHECKLIST 703Functionality 703Style 703APPENDIX B: JAVA CONCEPTS STUDY LIST 705Variables 705Methods 705Arrays 706Making Decisions 706Loops 706Java/JVM 706Objects 707Interfaces 708Inheritance 708N-Tier Design 708Collections 709Exceptions 709Lambdas/Streams 709Spring Core 709APPENDIX C: AGILE APPROACH CHECKLIST FOR CONSOLE CRUD APPLICATIONS 710Assumptions 710Requirement Steps 711Design Steps 711Construction Steps 712Index 714

Regulärer Preis: 25,99 €
Produktbild für Machine Learning mit Python (3. Auflg.)

Machine Learning mit Python (3. Auflg.)

Das umfassende Praxis-Handbuch für Data Science, Deep Learning und Predictive Analytics in 3. Auflage 03/2021.Mit diesem Buch erhalten Sie eine umfassende Einführung in die Grundlagen und den effektiven Einsatz von Machine-Learning- und Deep-Learning-Algorithmen und wenden diese anhand zahlreicher Beispiele praktisch an. Dafür setzen Sie ein breites Spektrum leistungsfähiger Python-Bibliotheken ein, insbesondere Keras, TensorFlow 2 und Scikit-learn. Auch die für die praktische Anwendung unverzichtbaren mathematischen Konzepte werden verständlich und anhand zahlreicher Diagramme anschaulich erläutert.Die dritte Auflage dieses Buchs wurde für TensorFlow 2 komplett aktualisiert und berücksichtigt die jüngsten Entwicklungen und Technologien, die für Machine Learning, Neuronale Netze und Deep Learning wichtig sind. Dazu zählen insbesondere die neuen Features der Keras-API, das Synthetisieren neuer Daten mit Generative Adversarial Networks (GANs) sowie die Entscheidungsfindung per Reinforcement Learning.Ein sicherer Umgang mit Python wird vorausgesetzt.Aus dem Inhalt:Trainieren von Lernalgorithmen und Implementierung in PythonGängige Klassifikationsalgorithmen wie Support Vector Machines (SVM), Entscheidungsbäume und Random ForestNatural Language Processing zur Klassifizierung von FilmbewertungenClusteranalyse zum Auffinden verborgener Muster und Strukturen in Ihren DatenDeep-Learning-Verfahren für die BilderkennungDatenkomprimierung durch DimensionsreduktionTraining Neuronaler Netze und GANs mit TensorFlow 2Kombination verschiedener Modelle für das Ensemble LearningEinbettung von Machine-Learning-Modellen in WebanwendungenStimmungsanalyse in Social NetworksModellierung sequenzieller Daten durch rekurrente Neuronale NetzeReinforcement Learning und Implementierung von Q-Learning-AlgorithmenInhalt & Leseprobe (PDF-Link)

Regulärer Preis: 49,99 €
Produktbild für SAP Conversational AI

SAP Conversational AI

Lassen Sie Bots für sich sprechen! Ob Kundenservice oder digitaler Assistent – mit diesem Buch lernen Sie, wie Sie mit SAP Conversational AI eigene Chatbots programmieren. Die Autoren führen Sie durch alle Phasen der Entwicklung vom Training des Bots bis zur Anbindung an die SAP-Systeme. Sie erhalten wertvolle Tipps zur Auswahl geeigneter Anwendungsfälle sowie für Monitoring und Optimierung. Aus dem Inhalt: Conversational User ExperienceTerminologie und GrundkonzepteSAP Conversational AIFrage-und-Antwort-Bots (Q&A) und reguläre BotsChatbots trainieren, verbinden und verbessernAnwendungsfälleDeployment und Betrieb von BotsFallback und DisambiguierungBerechtigungen und Datenschutz   Einleitung ... 15 TEIL I.  Einführung ... 21   1.  Ziele und Einsatzgebiete von Conversational User Experience ... 23        1.1 ... Was ist Conversational User Experience? ... 23        1.2 ... Terminologie und Grundkonzepte ... 26        1.3 ... Geschichte der Chatbots ... 38        1.4 ... Chatbot vs. digitaler Assistent ... 41        1.5 ... Zusammenfassung ... 46   2.  Einführung in SAP Conversational AI ... 47        2.1 ... Die Plattform SAP Conversational AI im Überblick ... 48        2.2 ... Verwaltungs- und Einstellungsmöglichkeiten im Benutzerprofil ... 57        2.3 ... Arten von Bots ... 71        2.4 ... Erste Schritte zur Erstellung eines Chatbots ... 73        2.5 ... Verwendung vordefinierter Chatbot-Bestandteile ... 80        2.6 ... Zusammenfassung ... 82 TEIL II.  Entwicklung eines Chatbots ... 83   3.  Einen Chatbot trainieren ... 85        3.1 ... Überblick über die Registerkarte »Train« ... 86        3.2 ... Gesprächsabsichten mit Intents definieren ... 95        3.3 ... Das Entitätenkonzept ... 100        3.4 ... Entitätsanreicherungen hinzufügen ... 115        3.5 ... Das Datenset testen ... 120        3.6 ... Unterstützte Sprachen ... 122        3.7 ... Anwendung von NLP-Technologien ... 123        3.8 ... Training des Beispiel-Bots ... 125        3.9 ... Zusammenfassung ... 129   4.  Einen Chatbot aufbauen ... 131        4.1 ... Überblick über die Registerkarte »Build« ... 132        4.2 ... Skills verwalten ... 138        4.3 ... Trigger verwenden ... 145        4.4 ... Voraussetzungen definieren ... 150        4.5 ... Aktionen erstellen ... 155        4.6 ... Zusammenfassung ... 177   5.  Den Chatbot verbinden ... 179        5.1 ... Bereitstellungskanäle ... 179        5.2 ... SAP Conversational AI Web Client ... 189        5.3 ... Fallback-Kanäle ... 194        5.4 ... Slack-Kanal für den Beispiel-Bot konfigurieren ... 197        5.5 ... Zusammenfassung ... 200   6.  Den Chatbot verbessern ... 201        6.1 ... Einträge filtern ... 202        6.2 ... Protokoll der Sprachverarbeitung auswerten ... 204        6.3 ... Verwendungsmetriken ... 208        6.4 ... Trainingsanalyse ... 212        6.5 ... Konversationsprotokolle ... 218        6.6 ... Zusammenfassung ... 220   7.  Bot-Einstellungen ... 221        7.1 ... Einstellungen eines Chatbots ... 223        7.2 ... Versionen ... 234        7.3 ... Umgebungen verwenden ... 240        7.4 ... Zusammenfassung ... 245   8.  Frage-Antwort-Bots ... 247        8.1 ... Frage-Antwort-Bot trainieren ... 249        8.2 ... Frage-Antwort-Bots bauen ... 256        8.3 ... Frage-Antwort-Bot verbessern ... 259        8.4 ... Einen eigenen Frage-Antwort-Bot erstellen ... 261        8.5 ... Zusammenfassung ... 266 TEIL III.  Fortgeschrittene Chatbot-Konzepte ... 267   9.  Weiterführende Konzepte ... 269        9.1 ... Laufzeitverhalten eines Chatbots testen ... 269        9.2 ... Nutzung von API-Endpunkten ... 275        9.3 ... Feinheiten des Laufzeitverhaltens eines Chatbots ... 288        9.4 ... Mehrsprachigkeit und Ermittlung der Sprache ... 298        9.5 ... Skill-Disambiguierung ... 303        9.6 ... Zusammenfassung ... 308 10.  Das Bot-Entwicklungsprojekt -- ein Praxisbeispiel ... 309        10.1 ... Von der Idee zum Chatbot-Projekt ... 310        10.2 ... Vor Beginn der Implementierung ... 317        10.3 ... Implementierung des Chatbots ... 331        10.4 ... Den fertigen Bot bereitstellen ... 347        10.5 ... Zusammenfassung ... 352 11.  Integration von SAP Conversational AI ... 353        11.1 ... Integration externer Ressourcen ... 354        11.2 ... Integration in die SAP Integration Suite ... 369        11.3 ... Integration ins SAP Fiori Launchpad ... 381        11.4 ... Berechtigungskonzept und Single Sign-on ... 391        11.5 ... Konfiguration eines SAP-S/HANA-Frontend-Servers ... 394        11.6 ... Automatisierte Tests der Enterprise Edition ... 396        11.7 ... Zusammenfassung ... 404 12.  Ausblick und zukünftige Technologien ... 405        12.1 ... Zukünftige Funktionalität von SAP Conversational AI ... 405        12.2 ... Trends im Bereich der künstlichen Intelligenz ... 408        12.3 ... Trends im Bereich Conversational User Experience ... 412        12.4 ... Zusammenfassung ... 414   A.  Glossar ... 419   B.  Literaturverzeichnis ... 421   C.  Das Autorenteam ... 425   Index ... 427

Regulärer Preis: 79,90 €
Produktbild für Objektorientierte Programmierung

Objektorientierte Programmierung

Komplexe Projekte solide strukturieren, tragfähige Designs erstellen, guten Code schreiben und wartbare Software liefern: Dafür brauchen Entwickler ein Repertoire, aus dem Objektorientierung nicht wegzudenken ist. In diesem Buch finden Sie alles, was Sie brauchen, um sich gründlich einzuarbeiten und die Prinzipien der OOP zur Basis Ihrer eigenen Arbeit zu machen. Die Autoren erläutern alle Themen anschaulich und verständlich anhand einer Vielzahl typischer Beispiele. Mit UML-Diagrammen und gut kommentierten Codebeispielen in den gängigsten objektorientierten Sprachen bringen sie Ihnen die Umsetzung nahe. Da so manches lehrreiche Detail erst auftaucht, wenn Sie konkrete Probleme lösen, ziehen sie viele praktische Anwendungsfälle heran und geben immer wieder Tipps, wie Sie bad smells vermeiden und sauberen Code schreiben. Anhand eines größeren Projekts bekommen Sie zudem einmal von Anfang bis Ende gezeigt, wie Sie objektorientierte Programmierung konsequent realisieren können. So profitieren Sie von der langjährigen Erfahrung der Autoren mit allen Aspekten der Entwicklung komplexer Software. Aus dem Inhalt: Prinzipien des objektorientierten EntwurfsKapselung von DatenPolymorphieStruktur objektorientierter SoftwareKlassen und PrototypenKonkrete und abstrakte DatentypenBeziehungen zwischen ObjektenKlassen von Werten und ObjektenVererbungsbeziehungenMehrfachvererbungStatische und dynamische KlassifizierungPersistenzErzeugung und Zerstörung von ObjektenObjekte in Aktion und in InteraktionObjekte als VertragspartnerModule als konfigurierbare und änderbare KomponentenMVCAspekte und ObjektorientierungBeispielprojektGlossar   Materialien zum Buch ... 12   1.  Einleitung ... 13        1.1 ... Was ist Objektorientierung? ... 13        1.2 ... Hallo liebe Zielgruppe ... 14        1.3 ... Was bietet dieses Buch (und was nicht)? ... 16        1.4 ... Warum überhaupt Objektorientierung? ... 22   2.  Die Basis der Objektorientierung ... 27        2.1 ... Die strukturierte Programmierung als Vorläufer der Objektorientierung ... 28        2.2 ... Die Kapselung von Daten ... 31        2.3 ... Polymorphie ... 33        2.4 ... Die Vererbung ... 34   3.  Die Prinzipien des objektorientierten Entwurfs ... 39        3.1 ... Prinzip 1: Prinzip einer einzigen Verantwortung ... 40        3.2 ... Prinzip 2: Trennung der Anliegen ... 46        3.3 ... Prinzip 3: Wiederholungen vermeiden ... 48        3.4 ... Prinzip 4: offen für Erweiterung, geschlossen für Änderung ... 51        3.5 ... Prinzip 5: Trennung der Schnittstelle von der Implementierung ... 54        3.6 ... Prinzip 6: Umkehr der Abhängigkeiten ... 57        3.7 ... Prinzip 7: mach es testbar ... 63   4.  Die Struktur objektorientierter Software ... 65        4.1 ... Die Basis von allem: das Objekt ... 65        4.2 ... Klassen: Objekte haben Gemeinsamkeiten ... 85        4.3 ... Beziehungen zwischen Objekten ... 120        4.4 ... Klassen von Werten und Klassen von Objekten ... 137   5.  Vererbung und Polymorphie ... 155        5.1 ... Die Vererbung der Spezifikation ... 155        5.2 ... Polymorphie und ihre Anwendungen ... 195        5.3 ... Die Vererbung der Implementierung ... 242        5.4 ... Mehrfachvererbung ... 265        5.5 ... Statische und dynamische Klassifizierung ... 295   6.  Persistenz ... 305        6.1 ... Serialisierung von Objekten ... 305        6.2 ... Speicherung in Datenbanken ... 306        6.3 ... Abbildung auf relationale Datenbanken ... 313        6.4 ... Normalisierung und Denormalisierung ... 326   7.  Abläufe in einem objektorientierten System ... 343        7.1 ... Erzeugung von Objekten mit Konstruktoren und Prototypen ... 344        7.2 ... Fabriken als Abstraktionsebene für die Objekterzeugung ... 355        7.3 ... Objekte löschen ... 404        7.4 ... Objekte in Aktion und in Interaktion ... 419        7.5 ... Kontrakte: Objekte als Vertragspartner ... 463        7.6 ... Exceptions: wenn der Kontrakt nicht eingehalten werden kann ... 480   8.  Module und Architektur ... 511        8.1 ... Module als konfigurierbare und änderbare Komponenten ... 511        8.2 ... Die Präsentationsschicht: Model, View, Controller (MVC) ... 520   9.  Aspekte und Objektorientierung ... 533        9.1 ... Trennung der Anliegen ... 533        9.2 ... Aspektorientiertes Programmieren ... 545        9.3 ... Anwendungen der Aspektorientierung ... 556        9.4 ... Annotations ... 569 10.  Objektorientierung am Beispiel: eine Webapplikation in JavaScript ... 579        10.1 ... OOP in JavaScript ... 581        10.2 ... Die Anwendung im Überblick ... 589        10.3 ... Das Framework ... 594        10.4 ... Die Applikation ... 612        10.5 ... Ein Fazit -- und was noch übrig bleibt ... 636   Anhang ... 639   A.  Verwendete Programmiersprachen ... 641   B.  Glossar ... 661   C.  Die Autoren ... 675   Index ... 677

Regulärer Preis: 49,90 €
Produktbild für Der Computer erscheint im Holozän

Der Computer erscheint im Holozän

Die sieben Weltwunder wurden bereits in der Antike beschrieben, etwa zur selben Zeit wie die mechanische Rechenhilfe Abacus, ein Zählrahmen mit Holz- oder Glasperlen. Dieses Buch beschreibt und diskutiert die sieben Weltwunder der IT, ohne die unsere digitale Wirtschaft und Gesellschaft kaum überlebensfähig scheint: Computermaus, Datenbanken, Kryptografie, Graphgrammatiken, Internet, Blockchain und Soft Computing.Jedes Weltwunder der IT wird kurz charakterisiert, bevor Anwendungsoptionen für Wirtschaft und Gesellschaft exemplarisch aufgezeigt und gewürdigt werden.Das Werk richtet sich an alle, die sich mit der digitalen Transformation auseinandersetzen. Es soll helfen, digitale Entwicklungen im eigenen Unternehmen, in der Verwaltung oder im öffentlichen wie im privaten Leben zu positionieren und zu reflektieren.ANDREAS MEIER hat Musik an der Musikakademie in Wien und Mathematik an der ETH in Zürich studiert, wo er doktorierte und habilitierte. Er arbeitete in internationalen Forschungsinstitutionen und Organisationen und war an der Universität Fribourg, Schweiz für eBusiness und eCommerce verantwortlich. Er gründete und leitete das Forschungszentrum Fuzzy Management Methods (FMsquare.org).FABRICE TSCHUDI hat Kommunikationswissenschaften an der Universität Fribourg und Wirtschaftsinformatik an der Universität Bern studiert. Er setzt sich für eine Vision von digitalen Systemen ein, die zu einer lebensdienlichen Wirtschaft und Gesellschaft im Sinne von nachhaltigem Wohlergehen beitragen. Er begleitet Organisationen auf dem Weg zu „wertvoller Digitalisierung“ und ist überzeugt, dass partizipative Lern- und Arbeitsformate hierfür ein zentraler Erfolgsfaktor sind.De septem mundi miraculis - Vom Abacus zur digitalen Rechenmaschine - Die 7 Weltwunder der IT - Wo führt die Reise hin? - Literatur

Regulärer Preis: 49,99 €
Produktbild für Beginning Rust Programming

Beginning Rust Programming

QUICKLY LEARN THE ROPES WITH THE RUST PROGRAMMING LANGUAGE USING THIS PRACTICAL, STEP-BY-STEP GUIDEIn Beginning Rust Programming, accomplished programmer and author Ric Messier delivers a highly practical, real-world guide to coding with Rust. Avoiding dry, theoretical content and “Hello, world”-type tutorials of questionable utility, the book dives immediately into functional Rust programming that takes advantage of the language’s blazing speed and memory efficiency.Designed from the ground up to give you a running start to using the multiparadigm system programming language, this book will teach you to:* Solve real-world computer science problems of practical importance * Use Rust’s rich type system and ownership model to guarantee memory-safety and thread-safety * Integrate Rust with other programming languages and use it for embedded devices Perfect for programmers with some experience in other languages, like C or C++, Beginning Rust Programming is also a great pick for students new to programming and seeking a user-friendly and robust language with which to start their coding career.ABOUT THE AUTHORRIC MESSIER is Senior Information Security Consultant with FireEye Mandiant. He is an author, consultant, and educator who holds GCIH, GSEC, CEH, and CISSP certifications and has published several books on information security and digital forensics. He is familiar with a wide variety of languages, including BASIC, Pascal, C, C++, C#, Rexx, Perl, Python, Java, Go, Swift, and Objective-C. VISIT US AT WROX.COM FOR FREE CODE SAMPLES.Introduction xixCHAPTER 1: GAME OF LIFE: THE BASICS 1Game of Life: The Program 2Starting with Cargo 4Putting the Pieces Together 5Bringing In External Functionality 5Namespaces 6Generating the Game Grid 7Dissecting Main 8Defining Functions 8Defining Variables 9Datatypes 11Arrays 12Control Structures 14Looking at More Function Functions 16Returning Values 16Passing Parameters 18Scope 21Compiling Programs 22Summary 24Exercises 25Additional Resources 25CHAPTER 2: EXTENDED LIFE 27Understanding Ownership 28Extending Life 30Adding Modules 32Working with Command-Line Arguments 34Option Types 36Reading from Files 39Extracting Values 41Populating from the Vector 42Outputting to the Terminal 43Using Colors 44Printing Generations 44Summary 46Exercises 48Additional Resources 48CHAPTER 3: BUILDING A LIBRARY 49References 50First Pass 53Traits and Implementations 56Self-Identification 60The Rest 60Second Pass 62The Driver 65Summary 67Exercises 69Additional Resources 69CHAPTER 4: HANGMAN 71Our Data 74The Traits 77Implementations 79Using the Option Enum 82Finishing Up the Implementation 83Reading Files and Selecting Words 84Handling Errors Concisely 85Generics and Bounds 87A Vector of Lines 88The Rest of the Story 90Initialization 91Playing the Game 92Summary 94Exercises 95Additional Resources 95CHAPTER 5: IN CONCURRENCE 97The Dining Philosophers 98Mutexes and Semaphores 101Interprocess Communications 103The Main Event 106Unix Sockets 107File and Directory Handling 109Closures 112Threading in the Main 114Creating Streams 115Cryptographic Hashing 116Creating Threads 117Summary 118Exercises 119Additional Resources 119CHAPTER 6: CLIENTS AND SERVERS 121Planning 123Network Programming 125Programming Sockets 128Rust TCP Server 131Handling Requests 134Operating System Calls 137Summary 139Exercises 140Additional Resources 140CHAPTER 7: CLIENT-SIDE APPLICATIONS 141Encryption 142Encryption Algorithms 144Going Hybrid 145Encryption Algorithms 147Transport Layer Security (TLS) 147TLS Server 151Remote Access Client 154Creating the Connection 156Validating Input 157Regular Expressions 157The Final Function 159Summary 163Exercises 164Additional Resources 164CHAPTER 8: GOING RELATIONAL 165Application Architectures 166n-Tier Applications 167Microservices 169Model-View-Controller 171Databases 172Structured Query Language 172Server or Embedded 175Accessing Databases 176Writing a Database Program 177Main and Modules 178Database Functions 183Adding Records 184Listing Records 186Summary 189Exercises 190Additional Resources 190CHAPTER 9: NO(SQL) GOING 191Assertions 192Design by Contract 195NoSQL 198Working with MongoDB 202Inserting Data 202Reading in Data from a File 206Populating the Database 207Retrieving Values 209Summary 213Exercises 214Additional Resources 214CHAPTER 10: WEB COMMUNICATIONS 215Style Guides 216Hypertext Transfer Protocol 219Programmatic Communication 222Web Communication Over TLS 227Client Communication 229Jumping Ahead 232Jumping Back 237Summary 238Exercises 239Additional Resources 240CHAPTER 11: WEB SERVER 241Offensive vs. Defensive Programming 242Web Application Communications 245Web Application Parameters 245Asynchronous JavaScript and XML 248Representational State Transfer 249APIs in Node.js and Python 250API Server in Rust 252Rust Rocket 255Summary 262Exercises 262Additional Resources 263CHAPTER 12: GETTING TO THE SYSTEM 265Extending Functionality 266Windows Registry 272Programmatic Access to the Registry 275Using Rust to Access the Registry 277System Information with Rust 282Persistence (for Fun) 287Summary 289Exercises 290Additional Resources 290CHAPTER 13: DEVICE PROGRAMMING 291Logging 292Using syslog 292Using Windows Event Logs 299Working with Raspberry Pi 305Lighting Lights 310Reading GPIO 315Summary 318Exercises 319Additional Resources 319CHAPTER 14: COLLECTING STUFF 321Arrays and Vectors 322Linked Lists 329Stacks 333Queues 336Sorting 337Search Trees 340Summary 345Exercises 346Additional Resources 346CHAPTER 15: ODDS AND SODS 347Unit Testing 348Testing Types 350Test Plans 351Unit Tests 353Recursion 360Machine Learning 364Chatbots 366Neural Networks 369Summary 371Exercises 373Additional Resources 373Index 375

Regulärer Preis: 32,99 €
Produktbild für Python Challenge

Python Challenge

Ihr persönlicher Python-Coach: Fit für Prüfung, Job-Interview und Praxis – mit 100 Aufgaben und MusterlösungenMit 100 Übungsaufgaben und Programmierpuzzles inklusive Lösungen zum Knobeln und Erweitern Ihrer Kenntnisse bietet Ihnen die »Python Challenge« ein kurzweiliges Lernen, eine fundierte Vorbereitung auf die nächste Prüfung oder ein Jobinterview. Dabei werden viele praxisrelevante Themengebiete wie Strings, Datenstrukturen, Rekursion, Arrays usw. berücksichtigt.Jedes Themengebiet wird in einem eigenen Kapitel behandelt, wobei zunächst kurz auf die Grundlagen eingegangen wird. Danach folgen rund 10 bis 15 Übungsaufgaben verschiedener Schwierigkeitsgrade.So lassen sich die Python-Programmierkenntnisse effektiv verbessern. Dabei helfen insbesondere detaillierte Musterlösungen inklusive der genutzten Algorithmen zu allen Aufgaben. Ebenso werden von Michael Inden alternative Lösungswege beschrieben, aber auch mögliche Fallstricke und typische Fehler im Python-Code analysiert.Abgerundet wird das Buch durch drei Anhänge. Einer beschäftigt sich mit dem Python-Kommandozeileninterpreter, der zum Ausprobieren der Codeschnipsel und Beispiele des Buchs oftmals hilfreich ist. Der zweite gibt einen Überblick über Pytest zum Unit Testen und Prüfen der Lösungen. Der dritte erläutert die O-Notation zur Abschätzung der Performance.Leseproben:Einleitung — DownloadInhaltsverzeichnis — DownloadStrings (Auszug) — DownloadSuchen und Sortieren (Auszug) — DownloadZusatzmaterial:Python_Challenge_Import — DownloadPythonChallenge — Download

Regulärer Preis: 34,90 €
Produktbild für MATLAB Recipes

MATLAB Recipes

Learn from state-of-the-art examples in robotics, motors, detection filters, chemical processes, aircraft, and spacecraft. With this book you will review contemporary MATLAB coding including the latest MATLAB language features and use MATLAB as a software development environment including code organization, GUI development, and algorithm design and testing.Features now covered include the new graph and digraph classes for charts and networks; interactive documents that combine text, code, and output; a new development environment for building apps; locally defined functions in scripts; automatic expansion of dimensions; tall arrays for big data; the new string type; new functions to encode/decode JSON; handling non-English languages; the new class architecture; the Mocking framework; an engine API for Java; the cloud-based MATLAB desktop; the memoize function; and heatmap charts._MATLAB Recipes: A Problem-Solution Approach, Second Edition__ _provides practical, hands-on code snippets and guidance for using MATLAB to build a body of code you can turn to time and again for solving technical problems in your work. Develop algorithms, test them, visualize the results, and pass the code along to others to create a functional code base for your firm.WHAT YOU WILL LEARN* Get up to date with the latest MATLAB up to and including MATLAB 2020b* Code in MATLAB* Write applications in MATLAB* Build your own toolbox of MATLAB code to increase your efficiency and effectivenessWHO THIS BOOK IS FOREngineers, data scientists, and students wanting a book rich in examples using MATLAB.MICHAEL PALUSZEK is the co-author of MATLAB Recipes published by Apress. He is President of Princeton Satellite Systems, Inc. (PSS) in Plainsboro, New Jersey. Mr. Paluszek founded PSS in 1992 to provide aerospace consulting services. He used MATLAB to develop the control system and simulation for the Indostar-1 geosynschronous communications satellite, resulting in the launch of PSS's first commercial MATLAB toolbox, the Spacecraft Control Toolbox, in 1995. Since then he has developed toolboxes and software packages for aircraft, submarines, robotics, and fusion propulsion, resulting in PSS's current extensive product line. He is currently leading a US Army research contract for precision attitude control of small satellites and working with the Princeton Plasma Physics Laboratory on a compact nuclear fusion reactor for energy generation and propulsion.Prior to founding PSS, Mr. Paluszek was an engineer at GE Astro Space in East Windsor, NJ. At GE he designed the Global Geospace Science Polar despun platform control system and led the design of the GPS IIR attitude control system, the Inmarsat-3 attitude control systems and the Mars Observer delta-V control system, leveraging MATLAB for control design. Mr. Paluszek also worked on the attitude determination system for the DMSP meteorological satellites. Mr. Paluszek flew communication satellites on over twelve satellite launches, including the GSTAR III recovery, the first transfer of a satellite to an operational orbit using electric thrusters. At Draper Laboratory Mr. Paluszek worked on the Space Shuttle, space station and submarine navigation. His space station work included designing of control moment gyro based control systems for attitude control. Mr. Paluszek received his bachelors in electrical engineering, and master's and engineer’s degrees in aeronautics and astronautics from the Massachusetts Institute of Technology. He is author of numerous papers and has over a dozen US patents.STEPHANIE THOMAS is the co-author of MATLAB Recipes, published by Apress. She received her bachelor's and master's degrees in aeronautics and astronautics from the Massachusetts Institute of Technology in 1999 and 2001. Ms. Thomas was introduced to PSS's Spacecraft Control Toolbox for MATLAB during a summer internship in 1996 and has been using MATLAB for aerospace analysis ever since. She built a simulation of a lunar transfer vehicle in C++, LunarPilot, during the same internship. In her nearly 20 years of MATLAB experience, she has developed many software tools including the Solar Sail Module for the Spacecraft Control Toolbox; a proximity satellite operations toolbox for the US Air Force; collision monitoring Simulink blocks for the Prisma satellite mission; and launch vehicle analysis tools in MATLAB and Java, to name a few. She has developed novel methods for space situation assessment such as a numeric approach to assessing the general rendezvous problem between any two satellites implemented in both MATLAB and C++. Ms. Thomas has contributed to PSS's Attitude and Orbit Control textbook, featuring examples using the Spacecraft Control Toolbox, and written many software user guides. She has conducted SCT training for engineers from diverse locales such as Australia, Canada, Brazil, and Thailand and has performed MATLAB consulting for NASA, the US Air Force, and the European Space Agency.PART I CODING IN MATLAB1 CODING HANDBOOK2 MATLAB STYLE3 VISUALIZATION4 INTERACTIVE GRAPHICS5 TESTING AND DEBUGGING6 CLASSESPART II APPLICATIONS7 THE DOUBLE INTEGRATOR8 ROBOTICS9 ELECTRIC MOTORS10 FAULT DETECTION11 CHEMICAL PROCESSES12 AIRCRAFT13 SPACECRAFT14 AUTOMOBILES

Regulärer Preis: 62,99 €
Produktbild für JavaScript für Ungeduldige

JavaScript für Ungeduldige

Der schnelle Einstieg in modernes JavaScript.»JavaScript für Ungeduldige« ist ein vollständiger und dennoch prägnanter Leitfaden für modernes JavaScript, bis zu ES2020. Wenn Sie mit Sprachen wie Java, C#, C oder C++ umgehen können, werden Sie mit diesem Buch schnell mit JavaScript produktiv arbeiten können, ohne sich lange mit veralteten Konzepten rumschlagen zu müssen.Cay S. Horstmann deckt alles ab, was Sie über JavaScript wissen müssen, und liefert Inhalte in kleinen Häppchen, die das Lernen angenehm machen. Die praktischen Einblicke und praxisnahen Codebeispiele helfen Ihnen, die Vorteile von modernem JavaScript zu nutzen, und dabei häufige Fallstricke und veraltete Funktionen zu meiden.Das bietet »JavaScript für Ungeduldige«:Sie lernen schnell die Grundlagen von modernem JavaScript Sie vermeiden veraltete Techniken, die unnötige Komplexität und Risiken mitbringen Sie machen das Beste aus funktionalen, objektorientierten und asynchronen Programmierstilen Sie verwenden Module, um komplexe Programme effizient zu organisieren und auszuführen Sie verstehen fortgeschrittene JavaScript-Techniken, wie Metaprogrammierung und Generatoren Sie erfahren, wie Sie Ihren JavaScript-Code mit TypeScript sicherer machen

Regulärer Preis: 32,90 €
Produktbild für Beginning Mathematica and Wolfram for Data Science

Beginning Mathematica and Wolfram for Data Science

Enhance your data science programming and analysis with the Wolfram programming language and Mathematica, an applied mathematical tools suite. The book will introduce you to the Wolfram programming language and its syntax, as well as the structure of Mathematica and its advantages and disadvantages.You’ll see how to use the Wolfram language for data science from a theoretical and practical perspective. Learning this language makes your data science code better because it is very intuitive and comes with pre-existing functions that can provide a welcoming experience for those who use other programming languages.You’ll cover how to use Mathematica where data management and mathematical computations are needed. Along the way you’ll appreciate how Mathematica provides a complete integrated platform: it has a mixed syntax as a result of its symbolic and numerical calculations allowing it to carry out various processes without superfluous lines of code. You’ll learn to use its notebooks as a standard format, which also serves to create detailed reports of the processes carried out.WHAT YOU WILL LEARN* Use Mathematica to explore data and describe the concepts using Wolfram language commands* Create datasets, work with data frames, and create tables* Import, export, analyze, and visualize data* Work with the Wolfram data repository * Build reports on the analysis* Use Mathematica for machine learning, with different algorithms, including linear, multiple, and logistic regression; decision trees; and data clusteringWHO THIS BOOK IS FORData scientists new to using Wolfram and Mathematica as a language/tool to program in. Programmers should have some prior programming experience, but can be new to the Wolfram language.JALIL VILLALOBOS ALVA is a Wolfram language programmer and Mathematica user. He graduated with a degree in engineering physics from the Universidad Iberoamericana in Mexico City. His research background comprises quantum physics, bionformatics, proteomics, and protein design. His academic interests cover the topics of quantum technology, bioinformatics, machine learning, stochastic processes, and space engineering. During his idle hours he likes to play soccer, swim, and listen to music.1. Introductiona. What is Data science?b. Data science and Statisticsc. Data scientist2. Introduction to Mathematicaa. Why Mathematica?b. Wolfram Languagec. Structure of Mathematicad. Notebookse. How Mathematica worksf. Input Form3. Data Manipulationa. Listsb. Lists of objectsc. Manipulating listsd. Operations with listse. Indexed Tablesf. Working with data framesg. Datasets4. Data Analysisa. Data Import and exportb. Wolfram data repositoryc. Statistical Analysisd. Visualizing datae. Making reports5. Machine learning with Wolfram Languagea. Linear Regressionb. Multiple Regressionc. Logistic Regressiond. Decision Tresse. Data Clustering6. Neural networks with Wolfram Languagea. Network Data and structureb. Network Layersc. Perceptron Modeld. Multi-layer Neural Networke. Using preconstructed nets from Wolfram Neural net repositoryf. LeNet Neural net for text recognition

Regulärer Preis: 56,99 €
Produktbild für Modern C for Absolute Beginners

Modern C for Absolute Beginners

Learn the C programming language easily and in a straightforward way. This book teaches the basics of C, the C Standard Library, and modern C standards. No previous programming experience is required.C is a language that is as popular today as it was decades ago. C covers a wide variety of domains. It can be used to program a microcontroller, or to develop an entire operating system. This book is an effort to introduce the reader to the C programming language in a concise and easy to follow manner.The author takes you through the C programming language, the Standard Library, and the C standards basics. Each chapter is the right balance of theory and code examples.After reading and using this book, you'll have the essentials to start programming in modern C.WHAT YOU WILL LEARN* The C programming language fundamentals* The C Standard Library fundamentals* New C Standards features* The basics of types, operators, statements, arrays, functions, and structs* The basics of pointers, memory allocation, and memory manipulation* Take advantage of best practices in CWHO THIS BOOK IS FORBeginner or novice programmers who wish to learn the C programming language. No prior programming experience is required.SLOBODAN DMITROVIĆ is a software consultant, trainer, and entrepreneur. He is the CEO and founder of “Clear Programming Paradigm”, an LLC that provides outsourcing and training services. Slobodan’s ability to summarize complex topics and provide insightful training made him a sought after consultant for the automotive, fintech, and other industries. Slobodan has a strong interest in C, C++, software architecture, training, and R&D.Part I: The C Programming LanguageChapter 1: IntroductionChapter 2: Our First ProgramChapter 3: Types and DeclarationsChapter 4: ExercisesChapter 5: OperatorsChapter 6: ExpressionsChapter 7: StatementsChapter 8: ExercisesChapter 9: ArraysChapter 10: PointersChapter 11: Command-line ArgumentsChapter 12: ExercisesChapter 13: FunctionsChapter 14: ExercisesChapter 15: StructuresChapter 16: UnionsChapter 17: Conditional ExpressionChapter 18: TypedefChapter 19: Const QualifierChapter 20: EnumerationsChapter 21: Function PointersChapter 22: ExercisesChapter 23: PreprocessorChapter 24: ExerciesChapter 25: Dynamic Memory AllocationChapter 26: Storage and ScopeChapter 27: ExercisesChapter 28: Standard Input and OutputChapter 29: File Input and OutputChapter 30: ExercisesChapter 31: Header and Source FilesPart II: The C Standard LibraryChapter 32: Introduction to C Standard LibraryPart III: Modern C StandardsChapter 33: Introduction to C 11 StandardsChapter 34: The C 17 StandardChapter 35: The Upcoming C2X StandardPart IV: Dos and Don'tsChapter 36: Do Not Use the gets FunctionChapter 37: Initialize Variables Before Using ThemChapter 38: Do Not Read Out of BoundsChapter 39: Do Not Free the Allocated Memory TwiceChapter 40: Do Not Cast the Result of mallocChapter 41: Do Not Overflow a Signed IntegerChapter 42: Cast a Pointer to void* When Printing Through printfChapter 43: Do Not Divide by ZeroChapter 44: Where to Use Pointers?Chapter 45: Prefer Functions to Function-like MacrosChapter 46: Static Global NamesChapter 47: What to Put in Header Files?Part V: AppendicesAppendix A: LinkageAppendix B: Time and DateAppendix C: Bitwise OperatorsAppendix D: Numeric LimitsAppendix E: Summary and Advice

Regulärer Preis: 56,99 €
Produktbild für Mach was mit Python & Raspberry Pi!

Mach was mit Python & Raspberry Pi!

Spielerisch programmieren lernen und mit DIY-Projekten durchstarten. Entwickle deine Python-Anwendungen für den Raspberry Pi!Der Raspberry Pi ist ein preiswerter, leistungsfähiger Mini-Computer. Python ist eine leicht erlernbare, vielseitig einsetzbare Programmiersprache. Im Doppelpack sind sie die perfekte Spielwiese für alle Elektronik- und Programmierneulinge, die darauf brennen, ihre DIY-Projekte in die Tat umzusetzen.Dieses Buch führt dich auf spielerische Weise in die Python-Programmierung für den Raspberry Pi ein. Zahlreiche Beispielprojekte versetzen dich Schritt für Schritt in die Lage, deine eigenen Anwendungen für den RasPi zu entwickeln.Folgende Themen erwarten dich:Raspbian- und Python 3-Installation, Raspberry Pi-FernsteuerungEntwicklungsumgebungen im Einsatz: IDLE, Thonny und GeanyGrundlagen der Python-Programmierung: Abfragen, Schleifen, Funktionen, Variablen, Debugging&Co.Python-Anwendungen für den Raspberry Pi: von der Konsolen- und GUI-Programmierung über Grafik- und Soundanwendungen bis zur App- und WebprogrammierungDie Beispielprojekte aus dem Buch: Zahlenratespiel, Vokabeltrainer, Analoguhr, Taschenrechner, Spieleprogrammierung, Webradio, To-do-App und Wetter-AppLeseprobe (PDF-Link)

Regulärer Preis: 29,99 €
Produktbild für PHP 8 Revealed

PHP 8 Revealed

Discover the new and updated features of PHP 8, such as the JIT compiler, union types, and attributes, with code examples of each. For each feature, the author includes real-life cases for its use and explains its benefits.WHAT YOU WILL LEARN* Utilize the new features of PHP 8 and modern development technologies* Work with the JIT compiler in PHP 8* Discover PHP 8 using real-life cases* Increase your available resources to become more valuable in your development teamWHO THIS BOOK IS FORExperienced PHP programmers new to PHP 8.GUNNARD ENGEBRETH began coding at the age of 11 through a “Learning BASIC” book given to him by his father. Technology was changing fast and Gunnard rode the wave from 1200 to 56k baud modems. Logging in to BBSs, Prodigy, Compuserve, Delphi and IRC he could see the world changing and he wanted to be a part of it. He soon got involved in the ansi/demo scene, making several application generators for many groups in the 90’s. Visual Basic was the next language of choice allowing him to develop “tools” for online systems such as AOL. This introduced many aspects of development, security and UI while they were still in their infancy. Once the WWW arrived via Mindspring in Atlanta, Ga. Gunnard quickly joined in the race for the web. Learning HTML, PERL and Linux (Slackware at the time) he began to build his skill-set which lead to a full-time Sysadmin position at the age of 20 (2000) at Activegrams/Silverpop. Gunnard has moved around the IT industry from SAN/NAS storage at IBM to custom Wordpress sites for marketing companies, but one thing has stayed the same, a passion for learning and problem solving. Gunnard also DJ’s Drum and Bass as Section31, Playing drums and baking bread (doughcode.com).1. Getting Started2. Setting up your development environment3. Devilbox4. Vagrant5. PHP 8 The Basics6. Whats newJIT compilerunion typesattributesThe nullsafe operatorNamed argumentsAttributesMatch expressionConstructor property promotionNew static return typeNew mixed typeThrow expressionInheritance with private methodsWeak mapsAllowing ::class on objectsNon-capturing catchesTrailing comma in parameter listsCreate DateTime objects from interfaceNew Stringable interfaceNew str_contains() function New str_starts_with() and str_ends_with() functionsNew fdiv() functionNew get_debug_type() functionNew get_resource_id() functionAbstract methods in traits improvementsObject implementation of token_get_all()Variable syntax tweaksType annotations for internal functionsext-json always available7. Breaking ChangesConsistent type errorsReclassified engine warningsThe @ operator no longer silences fatal errorsDefault error reporting levelDefault PDO error modeConcatenation precedenceStricter type checks for arithmetic and bitwise operators Reflection method signature changesStable sortingFatal error for incompatible method signatures8. FrameworksLaravelSlimPHPComposerSymphony9. The AdvancedMaintaining codeGithubGitlab Git workflowsCode StylePSR7phpDoc10. Refactoring and optimizationA. Giving Back

Regulärer Preis: 39,99 €
Produktbild für Using Displays in Raspberry Pi Projects

Using Displays in Raspberry Pi Projects

This book is about Raspberry Pi 4 display projects. The book starts by explaining how to install the latest Raspbian operating system on an SD card, and how to configure and use the GPIO ports. The core of the book explains the following topics in simple terms with fully tested and working example projects:> Simple LED projects> Bar graph LED projects> Matrix LED projects> Bitmap LED projects> LED strips> LCDs> OLED displays> E-paper displays> TFT displays> 7-inch touch screen> GUI Programming with TkinderOne unique feature of this book is that it covers almost all types of display that readers will need to use in their Raspberry Pi-based projects. The operation of each project is fully given, including block diagrams, circuit diagrams, and commented full program listings. It is therefore an easytask to convert the given projects to run on other popular platforms, such as Arduino or PIC microcontrollers. Python program listings of all Raspberry Pi projects developed in this book are available for download at Elektor.com. Readers can use these programs in their projects. Alternatively, they can modify the programs to suit their applications.Prof. Dr. Dogan Ibrahim is a Fellow of the Institution of Electrical Engineers. He is the author of over 60 technical books, published by publishers including Wiley, Butterworth, and Newnes. He is the author of over 250 technical papers, published in journals, and presented in seminars and conferences.

Regulärer Preis: 29,99 €
Produktbild für ABAP-Entwicklung für SAP S/4HANA

ABAP-Entwicklung für SAP S/4HANA

Entwickeln Sie moderne ABAP-Anwendungen mit dem Programmiermodell für SAP Fiori! Dieses Buch zeigt Ihnen, wie Sie das neue Modell ab SAP NetWeaver 7.5 anwenden können, um zukunftssicher zu entwickeln. Sie lernen die wesentlichen Konzepte wie Code-Pushdown und Simplifizierung kennen, erfahren, wie Sie mit CDS und Business-Objekten umgehen, und gestalten Ihre eigenen Fiori-Oberflächen. Inklusive Neuerungen in SAPUI5-Version 1.74 und neuen SAP-Fiori-Elements-Funktionen. Aus dem Inhalt: Architektur moderner ABAP-AnwendungenNeue ABAP-SyntaxCore Data Services (CDS)SAP Fiori ElementsBusiness Object Processing Framework (BOPF)OData und SAP GatewaySAP-S/4HANA-ReadinessSperrkonzept und BerechtigungenAnalytische und transaktionale AnwendungenAgile Entwicklung   Geleitwort ... 13   Vorwort ... 15   Einleitung ... 17   1.  Architektur moderner ABAP-Anwendungen ... 23        1.1 ... Eigenschaften und Architektur von SAP S/4HANA ... 23        1.2 ... Entwicklung von Unternehmensanwendungen mit SAP S/4HANA ... 34        1.3 ... Entwicklung auf Basis von SAP NetWeaver 7.50 ... 46   2.  Das neue ABAP-Programmiermodell für SAP Fiori ... 53        2.1 ... ABAP-Entwicklungsumgebung und -Syntax ... 53        2.2 ... Einsatzszenarien des ABAP-Programmiermodells ... 59        2.3 ... Core Data Services ... 66        2.4 ... Entwicklung von OData-Services mit SAP Gateway ... 91        2.5 ... Code Pushdown auf die SAP-HANA-Datenbank ... 101   3.  Anwendungsentwicklung im Kontext von SAP S/4HANA ... 111        3.1 ... Simplifizierung und das Principle of One von SAP ... 111        3.2 ... Simplifizierungsgrundsätze für eigene Anwendungsentwicklung ... 121        3.3 ... SAP-S/4HANA-Readiness von Anwendungen ... 129        3.4 ... Sicherheit von Anwendungen ... 141        3.5 ... Anwendungsentwicklung und der SAP-Standard ... 152        3.6 ... Automatisierte und manuelle Qualitätsprüfungen ... 154   4.  Entwicklung von Geschäftsobjekten ... 163        4.1 ... Datenmodellierung ... 164        4.2 ... Transaktionale Core Data Services ... 173        4.3 ... BOPF-Metamodell ... 184        4.4 ... BOPF-Implementierung ... 200        4.5 ... Namenskonventionen ... 223        4.6 ... Entwicklung einer Benutzeroberfläche mit SAP Fiori Elements ... 226   5.  Techniken der Anwendungsentwicklung ... 237        5.1 ... Sperrkonzept ... 237        5.2 ... BOPF-Puffermanagement ... 250        5.3 ... LUW-Konzept ... 265        5.4 ... Protokollierung ... 269        5.5 ... Berechtigungssteuerung ... 289        5.6 ... Tests ... 296   6.  Entwicklung transaktionaler Benutzeroberflächen ... 327        6.1 ... Floorplans ... 329        6.2 ... SAP Fiori Elements ... 333        6.3 ... Annotationen ... 338        6.4 ... SAP Fiori Tools ... 417        6.5 ... Freestyle-Entwicklung von SAP-Fiori-Apps ... 422        6.6 ... Draft-Konzept ... 430        6.7 ... Ausblick auf das ABAP-RESTful-Programmiermodell ... 444   7.  Operative Analytik ... 459        7.1 ... Grundlagen ... 460        7.2 ... Analytische Core Data Services ... 461        7.3 ... Visualisierung mit der Analytical List Page ... 488        7.4 ... Weitere Möglichkeiten der Visualisierung ... 514   8.  Management von ABAP-Entwicklungsprojekten ... 521        8.1 ... Notwendige Skills ... 522        8.2 ... Architekturmanagement ... 523        8.3 ... Agile Entwicklung, Continuous Integration und Delivery ... 526        8.4 ... Technische Schulden ... 545   Anhang ... 549        A ... Technical Architecture Modeling ... 551        B ... Das Enterprise Procurement Model ... 555        C ... Literaturverzeichnis ... 561        D ... Die Autoren ... 563   Index ... 565

Regulärer Preis: 79,90 €
Produktbild für Programming Algorithms in Lisp

Programming Algorithms in Lisp

Master algorithms programming using Lisp, including the most important data structures and algorithms. This book also covers the essential tools that help in the development of algorithmic code to give you all you need to enhance your code.Programming Algorithms in Lisp shows real-world engineering considerations and constraints that influence the programs that use these algorithms. It includes practical use cases of the applications of the algorithms to a variety of real-world problems.WHAT YOU WILL LEARN* Program algorithms using the Lisp programming language* Work with data structures, arrays, key-values, hash-tables, trees, graphs, and more* Use dynamic programming * Program using strings* Work with approximations and compression WHO THIS BOOK IS FORIntermediate Lisp programmers wanting to do algorithms programming. A very experienced non-Lisp programmer may be able to benefit from this book as well.VSEVOLOD DOMKIN from Kyiv, Ukraine is a Lisp programmer and enthusiast, a natural language processing researcher, an occasional writer/blogger, and a teacher.IntroductionAlgorithmic ComplexityA Crash Course in LispEssential Data StructuresArraysLinked ListsKey-ValuesDerivative Data StructuresTreesGraphsStringsSelected AlgorithmsApproximationCompressionSynchronizationAfterword

Regulärer Preis: 36,99 €
Produktbild für Practical Rust Web Projects

Practical Rust Web Projects

Go beyond the basics of Rust and build web and serverless cloud applications. The applications explained in this practical book include web sites, RESTful APIs, a real-time web chat application, and frontend application with WebAssembly. Each chapter is organized in the following format: what this kind of application looks like; requirements for the example program; an introduction to the Rust libraries used; step-by-step implementation of the example program, including common pitfalls and best practices; and a brief comparison of libraries and frameworks in the same domain.This book will open your eyes to the world of practical web applications of Rust. After reading the book, you will be able to apply your Rust knowledge to build your own web projects.WHAT YOU WILL LEARN* Build dynamic websites with databases* Build RESTful APIs* Write a WebSocket server that can power a real-time chat app in Rust* Discover the benefits of serverless computing using Amazon Web Service's Rust support* Compile Rust to WebAssembly for high-performance frontend applicationsWHO THIS BOOK IS FORA reader with basic Rust knowledge, wishing to learn more about how to apply Rust in a real-world scenario. A developer who is evaluating the possibility to build their next project in Rust.Shing Lyu is a software engineer who is passionate about open source software. He's been working on Rust professionally at Mozilla, on the Firefox (Gecko) and Servo browser engine project. Currently, he is working at DAZN, a sports streaming platform as a backend developer, with a focus on AWS and serverless technology. Shing has worked for many world famous brands like Mozilla, Booking, and Intel. And, he is also active in the open source community. Being one of the founders of the Taiwan Rust community, he loves to share his enthusiasm for Rust with people.Chapter 1, IntroductionThis chapter gives a short introduction to why Rust is a solid tool for building all kinds of application, and a brief overview of the format and organization of the book.● Introduction● Why Rust?● Who should read this book?● Chapters overviewChapter 2, Developing websitesThis chapter will cover how to use popular web frameworks to build static and dynamic websites. We'll also touch how to build RESTful API and common requirements in web backend programming: database, authentication and authorization● What are we going to build? (A web version of the cat breed dictionary, first a static site and then server-side rendering )● Serving a static website● Generate dynamic content with templates● Fetching data from databases● Authentication and authorization● SummaryChapter 3, REST APIs● What are we going to build? (A web version of the cat breed dictionary, with a single-page app + REST API)● Defining the API with Open API specification● Building a static frontend with AJAX calls● Building a RESTful API● Serialize/Deserialize JSON● SummaryChapter 4, Chatting in realtime with WebSocketThis chapter will discuss how to build a WebSocket server that can power a real-time chat application in Rust● What are we going to build? (A chat app for cats in people can send all kinds of cat noises)● What is WebSocket● Enabling two way communication● Implementing the chat application● SummaryChapter 5, Going serverlessThis chapter will demonstrate the benefit of serverless computing using AWS's experimental Rust support.● What is serverless?● What are we going to build? (Serverless version of Chapter 4)● Pros and cons of serverless● Setting up an AWS account● Building a lambda function with Rust● Exposing the API Gateway● Cleaning it up● SummaryChapter 6, High performance web frontend using WebAssemblyThis chapter will talk about how to compile Rust to WebAssembly and make it work together with JavaScript in the web frontend● What is WebAssembly? (We'll implement the bottleneck of Book 1 Chapter 4 in WebAssembly to speed it up)● What are we going to build?● How to compile Rust to WebAssembly?● Exposing Rust function to JavaScript● Passing native data type between Rust and JavaScript● Manipulating DOM from Rust● SummaryChapter 7, Advanced topicsThis chapter will discuss other more advanced use of Rust. Each section will introduce one application, existing projects for that kind of application and their status. But we'll not go into the detail as the previous chapters.● Web scraping/Web crawling● Browser engine - Servo● Conclusion

Regulärer Preis: 36,99 €
Produktbild für Patterns in the Machine

Patterns in the Machine

Discover how to apply software engineering patterns to develop more robust firmware faster than traditional embedded development approaches. In the authors’ experience, traditional embedded software projects tend towards monolithic applications that are optimized for their target hardware platforms. This leads to software that is fragile in terms of extensibility and difficult to test without fully integrated software and hardware. Patterns in the Machine focuses on creating loosely coupled implementations that embrace both change and testability.This book illustrates how implementing continuous integration, automated unit testing, platform-independent code, and other best practices that are not typically implemented in the embedded systems world is not just feasible but also practical for today’s embedded projects.After reading this book, you will have a better idea of how to structure your embedded software projects. You will recognize that while writing unit tests, creating simulators, and implementing continuous integration requires time and effort up front, you will be amply rewarded at the end of the project in terms of quality, adaptability, and maintainability of your code.WHAT YOU WILL LEARN* Incorporate automated unit testing into an embedded project* Design and build functional simulators for an embedded project* Write production-quality software when hardware is not available* Use the Data Model architectural pattern to create a highly decoupled design and implementation* Understand the importance of defining the software architecture before implementation starts and how to do it* Discover why documentation is essential for an embedded project* Use finite state machines in embedded projectsWHO THIS BOOK IS FORMid-level or higher embedded systems (firmware) developers, technical leads, software architects, and development managers.John Taylor has been an embedded developer for over 29 years. He has worked as a firmware engineer, technical lead, system engineer, software architect, and software development manager for companies such as Ingersoll Rand, Carrier, Allen-Bradley, Hitachi Telecom, Emerson, and several start-up companies. He has developed firmware for products that include HVAC control systems, telecom SONET nodes, IoT devices, micro code for communication chips, and medical devices. He is the co-author of five US patents and holds a bachelor’s degree in mathematics and computer science.Wayne Taylor has been a technical writer for 25 years. He has worked with companies such as IBM, Novell, Compaq, HP, EMC, SanDisk, and Western Digital. He has documented compilers, LAN driver development, storage system deployment and maintenance, and dozens of low-level and system-management APIs. He also has ten years of experience as a software development manager. He is the co-author of two US patents and holds master’s degrees in English and human factors. He is a co-author of OS/2 and NetWare Programming (Van Nostrand Reinhold, 1995).1: Introduction2: Core Concepts3: Design Theory For Embedded Programming4: Persistent Storage Example5: Software Architecture6: Automated Unit Testing7: Functional Simulator8: Continuous Integration9: Data Model10: Finite State Machines11: Documentation12: File Organization and Naming13: More About Late Bindings14: Main and Initialization15: More Best Practices16: Example Code17: Rules For DevelopmentAppendix A: TerminologyAppendix B: UML Cheat SheetAppendix C: Notation for State MachinesAppendix D: Coding ConventionsAppendix E: Why C++

Regulärer Preis: 46,99 €
Produktbild für Pro Cryptography and Cryptanalysis with C++20

Pro Cryptography and Cryptanalysis with C++20

Develop strong skills and a passion for writing cryptography algorithms and security schemes/modules using C++ 20 and its new features. You will find the right methods of writing advanced cryptographic algorithms (such as, elliptic curve cryptography algorithms, lattice-based cryptography, searchable encryption, and homomorphic encryption), examine internal cryptographic mechanisms, and discover common ways in which the algorithms could be implemented and used correctly in practice.The authors avoid the complexities of the mathematical background by explaining its mathematical basis in terms that a programmer can easily understand. They show how “bad” cryptography creeps in during implementation and what “good” cryptography should look like. They do so by showing and comparing the advantages and disadvantages based on processing time, execution time, and reliability.WHAT YOU WILL LEARN* Understand where and why cryptography is used and how it gets misused * Discover what modern cryptography algorithms and methods are used for * Design and implement advanced cryptographic mechanisms * See how C++20 and its new features are impacting the future of implementing cryptographic algorithms* Practice the basics of public key cryptography, including ECDSA signatures and more* Find out how most of the algorithms can be brokenWHO THIS BOOK IS FORProfessional programmers, developers, and software engineers who are developing cryptography algorithms and security schemes/modules in C++. Prior C++ programming and IDE experience and some basic experience of cryptography concepts (symmetric and asymmetric) highly recommended.MARIUS IULIAN MIHAILESCU, PHD is CEO at Dapyx Solution Ltd., a company based in Bucharest, Romania and involved in information security- and cryptography-related research projects. He is a lead guest editor for applied cryptography journals and a reviewer for multiple publications with information security and cryptography profiles. He authored and co-authored more than 30 articles in conference proceedings, 25 articles in journals, and three books. For more than six years he has served as a lecturer at well-known national and international universities (University of Bucharest, “Titu Maiorescu” University, Kadir Has University in, Istanbul, Turkey). He has taught courses on programming languages (C#, Java, C++, Haskell), and object-oriented system analysis and design with UML, graphs, databases, cryptography and information security. He served for three years as IT officer at Royal Caribbean Cruises Ltd. where he dealt with IT infrastructure, data security, and satellite communications systems. He received his PhD in 2014 and his thesis was on applied cryptography over biometrics data. He holds two MSc in information security and software engineering.STEFANIA LOREDANA NITA, PHD is a software developer at the Institute of Computer Science of the Romanian Academy and a PhD with her thesis on advanced cryptographic schemes using searchable encryption and homomorphic encryption. She has served more than two years as an assistant lecturer at the University of Bucharest where she taught courses on subjects such as advanced programming techniques, simulation methods, and operating systems. She has authored and co-authored more than 15 workpapers at conferences and journals, and has authored two books on he Haskell programming language. She is a lead guest editor for special issues on information security and cryptography such as Advanced Cryptography and Its Future: Searchable and Homomorphic Encryption. She holds an MSc in software engineering and two BSc in computer science and mathematics.Part I: Foundations1: Introduction2: Cryptography Fundamentals3: Mathematical Background and Its Applicability4: Large Integer Arithmetic5: Floating Point Arithmetic6: New Features in C++207: Secure Coding Guidelines8: Cryptography Libraries in C/C++20Part II: Pro Cryptography9: Elliptic Curve Cryptography10: Lattice-based Cryptography11: earchable Encryption12: Homomorphic Encryption13: (Ring) Learning with Errors Cryptography14: Chaos-based Cryptography15: Big Data Cryptography16:Cloud Computing CryptographyPart III: Pro Cryptanalysis17: Getting Started with Cryptanalysis18: Cryptanalysis Attacks and Techniques19: Linear and Differential Cryptanalysis20: Integral Cryptanalysis21: Brute Force and Buffer Overflow Attacks22: Text Characterization23: Implementation and Practical Approach of Cryptanalysis Methods

Regulärer Preis: 52,99 €
Produktbild für Kotlin

Kotlin

Das umfassende Handbuch - mit Crashkurs für Java-Umsteiger.Die Programmiersprache Kotlin ist das neue Schweizer Taschenmesser in der Softwareentwicklung. Ob Backend-Entwicklung oder mobile Apps, ob objektorientierte Paradigmen oder funktionale Programmierung mit Lambdas: Kotlin vereint die Stärken zahlreicher beliebter Sprachen zu einem modernen Werkzeug für alle Fälle. In diesem umfassenden Handbuch gibt Ihnen Michael Kofler einen Einblick in alle Sprachfeatures von Kotlin und zeigt Ihnen, wie Sie zeitgemäße Software entwickeln. Sie brauchen keine Java-Vorkenntnisse, sollten aber solide Programmiererfahrung mitbringen. Dieses Buch zeigt Ihnen die vielen Vorteile von Kotlin. Nach der Lektüre werden Sie verstehen, warum es in Zukunft für die Android-Entwicklung heißt: Kotlin first!Leseprobe (PDF-Link)

Regulärer Preis: 49,90 €
Produktbild für Android-Apps programmieren (3. Auflg.)

Android-Apps programmieren (3. Auflg.)

Professionelle App-Entwicklung mit Android Studio 4 - der praktische Einstieg.Mit diesem Buch erhalten Sie einen praktischen Einstieg in die Android-App-Programmierung mit Java. Sie lernen alles, was für die professionelle App-Entwicklung wichtig ist: von den Grundbausteinen einer App über die Layout-Erstellung mit XML bis hin zum Einsatz von Datenbanken.Der Autor führt Sie anhand eines durchgängigen Praxisbeispiels durch den gesamten Entwicklungsprozess einer App und zeigt Ihnen, wie Sie Android Studio effektiv einsetzen. Dabei lernen Sie Schritt für Schritt, wie Sie Daten verarbeiten und mit Room in einer Datenbank speichern, Apps mit mehreren Bildschirmseiten programmieren, Dialoge anzeigen, Berechtigungen abfragen, mit Hintergrundprozessen arbeiten, Internet-Services einbinden und vieles mehr.Abschließend erläutert der Autor, wie Sie Ihre App testen und im Google Play Store sowie auf der eigenen Website veröffentlichen. Darüber hinaus zeigt er Ihnen verschiedene Möglichkeiten der Monetarisierung auf.Grundkenntnisse in objektorientierter Programmierung, idealerweise mit Java, sowie im Umgang mit XML werden vorausgesetzt.Aus dem Inhalt:Grundlagen der App-ProgrammierungEinführung in Android StudioGradle als Build-SystemProjektanlageLayouts erstellen mit XMLActivities und SeitennavigationEinbinden einer SQLite-Datenbank mit RoomExport von DatenDialogeDatenverarbeitung im HintergrundBerechtigungenTrennung von Layout, Layout-Logik und Programmlogik mit Android-BindingInternet-Services einbindenAutomatisierte Tests und Unit TestingApp veröffentlichenPraktisches GlossarÜber den Autor:Eugen Richter hat langjährige Schulungserfahrung u.a. als Dozent an der Münchener Volkshochschule und als Ausbilder im Unternehmen. Sein thematischer Schwerpunkt liegt dabei auf der nativen Entwicklung von Apps für Android, der Cross-Plattform-Entwicklung mit Xamarin, der Cloud-Entwicklung mit .Net Core sowie auf dem Einsatz von DevOps.Inhaltsverzeichnis & Leseprobe (PDF-Link)

Regulärer Preis: 29,99 €
Produktbild für Android 11 (6. Auflg.)

Android 11 (6. Auflg.)

Das Praxisbuch für professionelle Android-Apps in der 6. Auflage 2020.Sie möchten Android-Apps für Smartphones und Tablets entwickeln? Dann ist dieses Buch genau das Richtige für Sie. Ob GUI, Bluetooth, Kamera, Multimedia, Kontakte oder GPS – hier lernen Sie die Grundlagen, um robuste und performante Apps zu entwickeln. In 80 Beispielprojekten finden Sie Erfolgsrezepte für die App-Entwicklung, die Sie wirklich weiterbringen. Top-aktuell zu Android 11, mit Einstieg in Android Studio 4. Alle Beispiele sind in Kotlin programmiert, der neuen offiziellen Sprache für die Android-Entwicklung. Inkl. Kotlin-Crashkurs mit den wichtigsten Sprachelementen und Konzepten.Leseprobe (PDF-Link)

Regulärer Preis: 39,90 €
Produktbild für Pro Spring MVC with WebFlux

Pro Spring MVC with WebFlux

Explore the designs of the Spring MVC and WebFlux frameworks, and apply similar designs and techniques to your own code. Along with detailed analysis of the code and functionality, this book includes numerous tips and tricks to help you get the most out of Spring MVC, WebFlux, and Java-based web application development in general using Spring. You’ll see how Spring MVC is a modern web application framework built upon the latest Spring Framework 5 and Spring Boot 2. Spring MVC is suitable for building reusable web controller modules that encapsulate rich page navigation rules.Pro Spring MVC with WebFlux takes great care in covering every inch of Spring MVC with WebFlux to give you the complete picture. Along with all the best-known features of these frameworks, you’ll discover some new hidden treasures. You’ll also learn how to correctly and safely extend the frameworks to create customized solutions.This book is for anyone who wishes to write robust, modern, and useful web applications with the Spring Framework. After reading and using this book, you'll become proficient with Spring MVC and be able to apply it to your own Java web applications and microservices.WHAT YOU WILL LEARN* Use Spring MVC with WebFlux to build Java-based web applications* Employ the various Spring MVC architectures* Work with controllers and routing functions* Build microservices and web services using Spring MVC and REST* Create reactive web applications using Spring WebFlux* Secure Spring MVC and Spring WebFlux* Deploy your Spring MVC application to the cloudWho This Book Is ForThose with at least some prior experience with Java web application development. Some previous experience with Spring Boot or the Spring Framework is recommended.MARTEN DEINUM is a submitter on the open source Spring Framework project. He is also a Java/software consultant working for Conspect. He has developed and architected software, primarily in Java, for small and large companies. He is an enthusiastic open source user and longtime fan, user and advocate of the Spring Framework. He has held a number of positions including software engineer, development lead, coach, and also as a Java and Spring trainer.IULIANA COSMINA is currently a software engineer for Cloudsoft Edinburgh. She has been writing Java code since 2002. She has contributed to various types of applications, including experimental search engines, ERPs, track and trace, and banking. During her career, she has been a teacher, a team leader, a software architect, a DevOps professional, and a software manager.She is a Springcertified Professional, as defined by Pivotal, the makers of Spring Framework, Boot, and other tools, and considers Spring the best Java framework to work with.When she is not programming, she spends her time reading, blogging, learning to play piano, traveling, hiking, or biking.1: Setting Up A Local Development Environment2: Spring Framework Fundamentals3: Web Application Architecture4: Spring MVC Architecture5: Implementing Controllers6: Implementing Controllers - Advanced7: REST and AJAX8: Resolving and Implmenting Views9: Introduction to Spring WebFlux10: Building Reactive Applications with Spring WebFlux11: Securing WebFlux Applications12: Spring Security13: Spring Applications in the Cloud

Regulärer Preis: 56,99 €
Produktbild für Advanced Programming with STM32 Microcontrollers

Advanced Programming with STM32 Microcontrollers

This book is project-based and aims to teach the software tools behind STM32 microcontroller programming. Author Majid Pakdel has developed projects using various different software development environments including Keil MDK, IAR Embedded Workbench, Arduino IDE and MATLAB. Readers should be able to use the projects as they are, or modify them to suit to their own needs. This book is written for students, established engineers, and hobbyists. STM32 microcontroller development boards including the STM32F103 and STM32F407 are used throughout the book. Readers should also find it easy to use other ARM-based development boards.Majid Pakdel was born in Mianeh, Iran in 1981. He received his BSc, MSc and PhD in electrical engineering from Amirkabir University of Technology, Isfahan University of Technology and the University of Zanjan respectively. He was a guest PhD student at Aalborg University in 2015-16.

Regulärer Preis: 24,99 €