Computer programming / software engineering Books

2176 products


  • Programmieren mit dem Calliope mini für Dummies

    Wiley-VCH Verlag GmbH Programmieren mit dem Calliope mini für Dummies

    2 in stock

    Book SynopsisSieht er nicht schön aus - der Calliope mini? Sechseckig und voller Technik. Vielleicht arbeitest du damit in der Schule? Ja, das ist ein echter Computer. Du kannst ihn mit Programmen zum Leben erwecken. Bring seine Lämpchen zum Leuchten! Spiele Töne, komponiere Lieder! Baue eine Alarmanlage oder ein Thermometer! Bestimmt hast du ganz viele eigene Ideen. Wir helfen dir, dass du dich zuerst einmal auf dem Calliope mini zurechtfindest, der Rest geht dann fast von allein. Bestens geeignet für Kinder ab 8 Jahre.Trade Review"... Das Buch erklärt auf einfache, verständliche und kindgerechte Weise alle Schritte der Programmierung ..." (Linux-Magazin 3/2018)Table of ContentsEinführung 6 Hallo lieber Fan des Calliope mini! 6 Über den Calliope mini 6 Über dieses Buch 8 Über dich 9 Über die Symbole, die wir in diesem Buch verwenden 9 Kapitel 1: Der Calliope mini 11 Was kann der Calliope mini? 11 Bauteile des Calliope mini 13 Den Calliope mini programmieren 18 Der PXT-Editor 22 Kreative Möglichkeiten 26 Kapitel 2: Das erste Projekt 27 Programmieren in fünf Schritten 28 Ein Projekt -- zwei Teilprojekte 29 Teilprojekt 1: Name auf Knopfdruck 30 Schritt 1 -- Projektidee 30 Schritt 2 -- Planung 31 Schritt 3 -- Programmierung 35 Übertragen des Programms auf den Calliope mini 39 Schritt 4 -- Testen 46 Schritt 5 -- Erweitern 47 Teilprojekt 2: Musik durch Schütteln 48 Schritt 1 -- Projektidee 48 Schritt 2 -- Planung 48 Schritt 3 -- Programmierung 49 Schritt 4 -- Testen 49 Schritt 5 -- Erweitern 50 Projekt speichern 51 Projekt weiterbearbeiten 52 Den Calliope mini mit Strom versorgen 54 Kapitel 3: Für Einsteiger 56 Farbenwelt 57 Projektidee 57 Planung 58 Programmierung 58 Testen 62 Erweiterung 63 Die Sirene 66 Projektidee 66 Planung 67 Programmierung 68 Testen 71 Erweiterung 72 Kapitel 4: Für Könner 74 Die musikalische Alarmanlage 76 Projektidee 76 Planung 76 Programmierung 77 Testen 81 Erweiterung 83 Das Farbthermometer 91 Projektidee 92 Planung 92 Programmierung 93 Testen 94 Erweiterung 96 Kapitel 5: Für Profis 104 Zähler beim Seilchenspringen 105 Projektidee 105 Planung 105 Programmierung 106 Testen 108 Erweiterung 110 Balance halten 112 Projektidee 112 Planung 112 Kennenlernen des Lagesensors 114 Programmierung und Testen 118 Erweiterung 126 Kapitel 6: Calliope-Extras 128 Bluetooth, lass den Calliope sprechen 129 Weitere Anschlüsse und Sensoren 132 Kapitel 7: Mehr wissen 134 Sprache der Profis 134 Programmieren auf der Tastatur 136 Arduino und Raspberry Pi 138 Auf Wiedersehen . 139 Zum Wiederfinden 140 Über die Autoren 143

    2 in stock

    £12.91

  • Java Alles-in-einem-Band für Dummies

    Wiley-VCH Verlag GmbH Java Alles-in-einem-Band für Dummies

    1 in stock

    Book SynopsisDieses Buch ist für alle, die tief in die Java-Programmierung einsteigen möchten. Dennoch werden keine Programmierkenntnisse vorausgesetzt. Lernen Sie zunächst, wie Sie das Java Development Kit installieren und welche Java-Elemente es gibt. Machen Sie sich dann mit Methoden und objektorientierter Programmierung vertraut. Werfen Sie Exceptions, sammeln Sie Datenelemente in flexiblen Arrays und programmieren Sie Fenster, Mäuse und Grafik. Merken Sie was? Unversehens sind Sie zum Profi geworden. Datenspeicherung, Datenbankzugriff und der Umgang mit XML-Dateien sind genauso wie die Parallelverarbeitung mit Threads und die Netzwerkprogrammierung keine Hürde mehr. Programmieren lernt man in erster Linie dadurch, dass man es tut: Deshalb sind Aufgaben vorhanden. Die Lösungen dazu und alle Codebeispiele des Buchs stehen zum Download zur Verfügung.

    1 in stock

    £24.95

  • C# für Dummies

    Wiley-VCH Verlag GmbH C# für Dummies

    1 in stock

    Book SynopsisC# ist eine der am meisten genutzten Programmiersprachen, doch wie den Ein- oder Umstieg schaffen? Genau dabei hilft Ihnen dieses Buch. Nachdem Sie sich zunächst die notwendigen Grundlagen erarbeitet haben, lernen Sie auch alles Notwendige über LINQ, XML und ADO.NET. Anschließend werden Sie sicher durch das Schreiben Ihrer ersten eigenen .NET-Anwendung geleitet. Noch nicht genug? Kapitel zu fortgeschrittenen .NET-Techniken wie die dynamische Programmierung oder die Task Parallel Library runden das Buch ab.Table of ContentsÜber den Autor 11 Einleitung 23 Über dieses Buch 23 Wie dieses Buch aufgebaut ist 24 Symbole, die in diesem Buch verwendet werden 26 Wie es weiter geht 27 Teil I: Los geht’s 29 Kapitel 1 Grundlagen und Einführung 31 Grundlagen der Programmierung 31 Warum programmieren wir eigentlich? 32 Programmiersprachen 33 .NET-Plattformarchitektur 37 Wie funktioniert eine .NET-Sprache? 39 Das .NET-Framework 42 Die Programmiersprache C# 44 Das Prinzip der objektorientierten Programmierung 44 Objekte und ihre Klassen 44 Abstraktion 47 Kapselung 48 Vererbung 48 Polymorphie 49 Kapitel 2 Entwicklungswerkzeuge und Tools 53 Ein Programm erstellen 53 Microsoft Visual Studio 2019 Community Edition 59 Ihr erstes eigenes Projekt 60 Der Marktplatz für fertige Lösungen: NuGet 71 Kapitel 3 Das ABC der Sprache C# 75 Bezeichner 75 Namenskonventionen 76 Schlüsselwörter 78 Anweisungen 79 Kommentare 79 Datentypen, Variablen und Konstanten 82 Deklaration von Variablen 84 Das Schlüsselwort var oder Typinferenz 86 Konstanten deklarieren 88 Zugriff und Verwendung von Variablen 89 Wert- und Referenztypen 90 Weitere Datentypen 97 Gültigkeitsbereiche von Variablen 100 Konvertieren von Datentypen 101 Was ist eine Methode? 110 Übergeben von Parametern 112 Methoden mit Rückgabewert 115 Methoden ohne Rückgabewert 117 Namensräume 119 Wo finde ich was? 121 Verwendung von Namensräumen 122 Alias für einen Namensraum 124 Kapitel 4 Operatoren und Programmsteuerung 127 Operatoren 127 Rechenoperatoren 128 Zuweisungsoperatoren 132 Logische Operatoren 133 Den Programmablauf steuern: Verzweigungen und Kontrollstrukturen 136 if-Anweisung 137 switch-Anweisung und -Ausdruck 144 Vorgänge wiederholen: Schleifen 148 for-Schleife 149 while-Schleife 151 do-while-Schleife 155 foreach-Schleife 157 Sie haben es sich anders überlegt? 158 Kapitel 5 Zeichenfolgen, Arrays und Datumswerte 161 Zeichen und Zeichenfolgen 161 String-Variablen deklarieren 162 String-Interpolation und kombinierte Formatierung 164 Zeichenfolgen analysieren 166 Zeichenfolgen manipulieren 168 Sonderzeichen in Zeichenfolgen 170 StringBuilder: Wenn Geschwindigkeit eine Rolle spielt 172 Formatierung von Zeichenfolgen 173 Arrays 178 Arrays deklarieren 179 Arrays erzeugen 179 Arrays initialisieren 180 Zugriff auf Array-Elemente 182 Eigenschaften und Methoden von Arrays 185 Datums- und Zeitberechnungen 188 Die DateTime-Struktur 188 Die TimeSpan-Struktur 192 Praxisbeispiele 193 Kapitel 6 Objektorientierte Programmierung mit C# 197 Klassen, Eigenschaften und Methoden 197 Klassen 198 Eigenschaften 198 Objekte 204 Methoden und Konstruktoren 205 Statische Klassen 207 Vererbung 210 Ober- und Unterklassen 210 Methoden überschreiben 212 Der Zugriff auf die Member der Basisklasse mit base 213 Abstrakte Klassen 214 Interfaces 216 Kapitel 7 Fehler passieren, macht aber nichts: Ausnahmebehandlung 221 Mit Ausnahmen umgehen 222 Wie man einen Fehler »fängt«! 225 Der Parameter einer catch-Klausel 226 Ausnahmetypen 228 Fehler auslösen 231 Eigene Fehlerklassen erstellen 232 Kapitel 8 Weitere Sprachfeatures 235 Delegates 235 Anonyme Methoden 239 Lambda-Ausdrücke 240 Ereignisse – was geht ab? 242 Ereignisse registrieren und behandeln 243 Ereignisse veröffentlichen 244 Generics – generische Datentypen 247 Generische Klassen, Methoden und Eigenschaften 248 Generische Auflistungen 251 Nette Helfer: Attribute 259 Sie wollen mehr? Erweiterungsmethoden 261 Teil II: Weitere Sprachfeatures von C# 265 Kapitel 9 Zugriffe auf das Dateisystem 267 Klassen für den Zugriff auf das Dateisystem 267 Arbeiten mit Verzeichnissen 269 Arbeiten mit Dateien 276 Nicht bei der Ausnahmebehandlung sparen! 280 Praxisbeispiele 282 Verzeichnisgröße ermitteln 282 Kopieren von Verzeichnissen 284 Kapitel 10 Dateizugriff und Streams 287 Arbeiten mit Dateien 287 Text-Dateien erstellen, lesen und ändern 288 Arbeiten mit Streams 291 Lesen und Schreiben 293 Datei mit einem Stream schreiben 296 Komprimieren von Dateien mit .NET-Klassen 297 Neues ZIP-Archiv erzeugen 298 Alle Dateien eines ZIP-Archivs extrahieren 300 Objekte serialisieren 301 Im Binärformat serialisieren 302 XML 306 JSON-Dateien 308 Kapitel 11 Asynchrone und parallele Programmierung 313 Grundlagen und Begrifflichkeiten 314 Asynchrone Programmiermuster 318 Programmieren mit Threads 318 Die TPL – Task Parallel Library 331 Ein gutes Team: async und await 342 Kapitel 12 Daten abfragenmit LINQ 349 LINQ-Grundlagen 349 Die Basis für LINQ-Abfragen 351 Abfragen mit LINQ 353 Die alternativen Schreibweisen von LINQ-Abfragen 358 Die wichtigsten Abfrageoperatoren 359 Ergebnis filtern (where-Operator) 359 Ergebnis sortieren (orderby-Operator) 362 Ergebnis partitionieren (skip- und take-Operator) 363 Doppelte Einträge löschen (distinct-Operator) 365 Aggregat-Operatoren 366 Praxisbeispiele 367 CSV-Datei mit LINQ einlesen 367 Kapitel 13 Grundlagen von ADO.NET 371 Vorbereitungen 372 Installation der Datenbank 372 Beispieldaten importieren 374 Datenbankzugriffe mit ADO.NET 377 Verbindung zur Datenbank herstellen 378 Datensätze abfragen 381 Datensätze einfügen 386 Datensätze aktualisieren 388 Datensätze löschen 390 Das DataSet und der DataAdapter 392 Der DataAdapter –die Brücke zu den Daten 393 Asynchrone Datenbankzugriffe 404 Teil III: Eine eigene C#-Anwendung schreiben 411 Kapitel 14 Fehlersuche und Softwarequalität 413 Welche Fehlerarten gibt es überhaupt? 414 Fehler zur Compiletime (Übersetzungszeit) 414 Fehler zur Runtime (Laufzeit) – Bugs 414 Der Debugger 415 Ein paar Grundlagen 415 Überprüfen von Code und Variablen zur Laufzeit 416 Überprüfen von Zeichenfolgen in der Schnellansicht 421 Anzeigen von Rückgabewerten einer Funktion 422 Attributed Debugging 423 Dem Fehler auf die Schliche kommen – der Stacktrace 425 Codequalität verbessern 427 Suchen Sie nach roten und grünen Schlangenlinien 428 Achten Sie auf die Glühbirne 430 Kapitel 15 Benutzeroberfläche mit Windows Forms 433 Grundgerüst einer Windows-Forms-Anwendung 434 Die Datei Program.cs 435 Die Dateien Form1.cs und Form1.Designer.cs 436 Benutzeroberfläche erstellen 439 Steuerelemente verwenden 440 Ereignisse von Steuerelementen 443 Windows-Forms-Anwendung: Ja oder Nein? 449 Kapitel 16 Moderne Oberflächen mit WPF und XAML 451 Meine erste WPF-Anwendung 452 XAML –Extended Application Markup Language 454 Logischer und visueller Elementbaum in WPF 457 Layout in WPF 458 Ereignisse in WPF 470 Commands 473 Ressourcen in WPF 476 Ressourcen in separate Datei auslagern 479 Das gewisse Etwas: Styles 481 Was ist ein Style? 482 Templates 487 Databinding –die Benutzeroberfläche mit Daten versorgen 491 Die Richtung des Bindings: Wie Daten aktualisiert werden 493 Der UpdateSourceTrigger: Wann Daten aktualisiert werden 494 Teil IV: Fortgeschrittene Techniken in C# und WPF 497 Kapitel 17 Fortgeschrittene Techniken rund um die WPF 499 Das Beispielprogramm 499 Das MVVM-Entwurfsmuster 501 Das Model 503 Das ViewModel 503 Datenbeschaffung 510 Eigene Commands implementieren 511 Kapitel 18 Modulare Anwendung auf Basis von C# und WPF – ein Beispiel 517 Die Beispielanwendung 518 Vorbereitungen und Erstellung der Solution 520 Styling der Anwendung 524 Das Dependency-Injection-Entwurfsmuster 527 Dynamische Oberflächen mit Prism-Regionen 529 Erstellung eines UserControls 533 Registrierung von Views 535 Erstellung eines Prism-Moduls 536 Anlegen des Projekts für das Modul 537 Erstellen der Benutzeroberfläche 538 Registrierung des Moduls 544 Austausch- und wiederverwendbare Komponenten 545 Registrierung und Verwendung der Klasse 547 Fazit –Was haben Sie jetzt gewonnen? 549 Teil V: Der Top-Ten-Teil 551 Kapitel 19 Zehn Dinge in C#, die Sie wirklich lernen und verwenden sollten! 553 Initialisierer für Objekte und Collections 553 Automatisch implementierte Eigenschaften initialisieren 554 null-coalescing Operator ?? 555 String-Interpolation für dynamische Zeichenfolgen 555 Null-conditional Operator 556 nameof()-Ausdruck 557 is- und as-Operatoren 558 Zeichenfolgen mit String.IsNullOrEmpty() überprüfen 559 break- und continue-Anweisung 560 TryParse für die Umwandlung von Zeichenketten 561 Kapitel 20 Zehn nützliche Open-Source-Projekte 563 MahApps.Metro: Verpassen Sie Ihrer Anwendung den Metro-Style 563 Modern UI for WPF (MUI) 563 MaterialDesignInXamlToolkit 564 Extended WPF Toolkit™ 564 WPFLocalizationExtension 564 ResXManager 565 Prism 565 Sammlung von Erweiterungsmethoden 565 Modern UI Icons 566 Material Design Icons 566 Stichwortverzeichnis 567

    1 in stock

    £23.70

  • LabVIEW für Dummies

    Wiley-VCH Verlag GmbH LabVIEW für Dummies

    1 in stock

    Book SynopsisGanz unverhofft müssen Sie sich mit LabVIEW beschäftigen? Dieses Buch hilft Ihnen dabei sich in diesem grafischen Programmiersystem zurechtzufinden. Die Autorinnen erklären Ihnen die Grundlagen von grafischer Programmierung und erläutern was Virtuelle Instrumente (VIs) sind. Sie führen Sie in die Arbeit in Projekten mit LabVIEW ein, zeigen Ihnen was Sie bei der Fehlersuche beachten sollten, wie Sie Datentypen und Datenstrukturen verwenden und vieles mehr. Dabei kommt auch das klassische Programmieren nicht zu kurz und so werden Sie sich schneller als Sie denken in LabVIEW zurechtfinden.Table of ContentsÜber die Autoren 9 Melanie von der Crone 9 Corinna Meiwald 9 Idee zum Buch 9 Einleitung 19 Über dieses Buch 19 Konventionen in diesem Buch 19 Was Sie nicht lesen müssen 20 Törichte Annahme über den Leser 20 Wie dieses Buch aufgebaut ist 21 Symbole, die in diesem Buch verwendet werden 22 Wie es weitergeht 22 Teil I: Die Entwicklungsumgebung in LabVIEW 23 Kapitel 1: LabVIEW – die etwas andere Art der Programmierung 25 Datenflussprinzip 26 Benutzeroberfläche 28 Frontpanel und dessen Elemente 30 Menüleiste vom Frontpanel 30 Starten, Beenden, Pausieren 31 Beschriftungen 32 Ausrichten der Elemente 32 Hilfen 33 Blockdiagramm 34 Menüleiste im Blockdiagramm 35 Debugging 35 Clean_Up Diagram 36 Connector Pane 36 Werkzeuge und Paletten 36 Tools Palette 37 Controls Palette 39 Functions Palette 42 Kontextmenü 43 Kontextmenü im Frontpanel 44 Kontextmenü im Blockdiagramm 48 Drähte im Blockdiagramm 50 Einstellung von Programmeigenschaften 51 Regeln für die Programmierung in LabVIEW 60 Übungen zu LabVIEW 60 Lösungen zu LabVIEW 61 Kapitel 2: Black Jack 1 63 Struktogramme 63 Anweisungsblock 64 Schleifen 64 Fallunterscheidungen 65 Beispiel für ein Struktogramm 65 Black Jack-Regeln 66 Spielablauf 68 Struktogramm für Black Jack 69 Kapitel 3: Wenn der Umfang zunimmt: Arbeiten in Projekten 73 Was ist ein Projekt in LabVIEW? 73 Hierarchien 76 LabVIEW Librarys (Bibliotheken) 77 Abhängigkeiten (Dependencies) in Projekten 79 Fehler beim Starten eines VIs (LOAD WARNING SUMMARY) 84 Build-Spezifikationen 86 Übungen 87 Lösungen 88 Teil II: Grundlagen der Programmierung 89 Kapitel 4: Datentypen in LabVIEW und wofür sie verwendet werden 91 Grundlagen zur Zahlendarstellung 92 Numerische Datentypen 95 Vorzeichenlose Ganzzahlen (U8, U16, U32, U64) 96 Vorzeichenbehaftete Ganzzahlen (I8, I16, I32, I64) 97 Überlauf und Unterlauf 98 Gleitpunktzahlen 99 Numerische Elemente in LabVIEW 102 Boolesche Daten 104 Strings & Pfade 107 String 107 Pfade 110 Rings und Enums 113 Bilder und Farben 117 Picture 117 Color Box 117 Variant 120 Arrays 122 Cluster 128 Custom Control (CC) 131 Zugriffe auf Datentypen in LabVIEW 135 Property Nodes 136 Invoke Nodes 139 Variable in LabVIEW 140 Übungen 146 Lösungen 147 Erstellen eines Custom Controls für Black Jack 148 Kapitel 5: Funktionen, VIs und VIM 149 Einfache numerische Funktionen 151 Coercion Dot 155 Vergleichsfunktionen 156 Boolesche Funktionen 157 And und Nand 157 Or, Nor, Exclusive Or und Not Exclusive Or 158 Not 160 Compound Arithmetic 160 2D Picture-Funktionen 161 Variant-Funktionen 165 To Variant 165 Set Variant Attribute 166 Get Variant Attribute 168 String- und Pfadfunktionen 169 String Length 170 Concatenate Strings 170 String Subset 171 Formatbezeichner für Strings 172 Build & Strip Path 178 Array-Funktionen 179 Initialize Array 179 Index Array 180 Shuffle 1D Array.vim 183 Delete From Array 183 Build Array 185 Transpose 2D Array 187 Sort 1D Array.vim 188 Reverse 1D Array 189 Insert Into Array 190 Cluster-Funktionen 194 Unbundle (By Name) 195 Bundle (By Name) 197 Veränderung von Daten im Cluster 199 Konvertierung von Datentypen 200 Konvertierung numerischer Datentypen 200 Konvertierung von Strings 204 Black Jack 211 Funktion zum Karten mischen 211 Funktionen für den Vorgang des Kartenziehens 211 Funktionen für die Bewertung des Spiels 212 Kapitel 6: Das Programm bekommt eine Struktur 217 Schleifen 217 For-Schleife 218 While-Schleife 222 Entscheidungsstrukturen 224 Select/Auswahl 224 Case-Struktur 226 Tunnel & Shift Register 231 Indexing Enabled (Indexing)/Indexing Disabled (Last Value) 232 Leerer Tunnel & USE DEFAULT IF UNWIRED 233 Concatenating Tunnel 233 Conditional Tunnel 235 Shift Register 237 Unterprogramm (SubVI) 242 Sequenz 247 Ereignisstruktur 250 Timing-Funktionen 254 Tick Count (ms) 255 High Resolution Relative Seconds.vi 256 Wait (ms) 257 Wait Until Next ms Multiple 258 Unterschied zwischen Wait (ms) und Wait Until Next ms Multiple 259 State Machine (Zustandsautomat) 260 Grundlagen zur State Machine (Zustandsautomat) 260 Realisierung einer State Machine in LabVIEW 261 Übungen zu Schleifen, Shift Register und Timing 263 Übungen zu For-Schleifen 263 Übungen zu While-Schleifen 264 Übungen zu Shift Registern 265 Übungen zu Timing 266 Aufgaben zu Automaten 266 Lösungen zu den Übungsaufgaben 266 State Machine beim Black Jack 270 Die For-Schleife bei Black Jack 275 Die Ereignisstruktur bei Black Jack 275 Der CROUPIER‘S GAME-Case bei Black Jack 280 Kapitel 7: Black Jack 2 283 Programmbeschreibung 283 VI Analyzer-Toolkit 291 Analyze VIs 293 Kapitel 8: Wenn gar nichts funktioniert: Debugging und Errorhandling 301 Fehler zur Erstellungszeit 301 Ausführungsfehler 303 Highlight Execution 303 Sonden-Werkzeug 304 Verbindungswerte speichern 305 Setzen von Breakpoints 306 Programmcode schrittweise ausführen (Single Stepping) 307 Fehlerbehandlung in LabVIEW 309 Fehler-Cluster 309 Fehler-Ring 311 Simple Error Handler.vi 314 Clear Errors.vi 315 Case-Struktur mit Error 315 Übungen 316 Lösungen 316 Teil III: Datenverarbeitung und Ansteuerung Kapitel 9: Datenverarbeitung 319 Verarbeitung von Dateien in LabVIEW 319 Öffnen und Schließen von Dateien 321 Open/Create/Replace File 321 Close File 325 Textdateien 325 Read (from) Text File 326 Write (to) Text File 327 Tabellenkalkulation 329 Write Delimited Spreadsheet.vi 329 Read Delimited Spreadsheet.vi 332 Diagramme und Graphen 334 Waveform Chart und Waveform Graph 335 XY Graph 343 Intensity Chart∖Graph 345 Formula Node 347 Übungsaufgaben zu Datenverarbeitung 351 Files 351 Textdateien 351 Tabellenkalkulation 351 Diagramme und Graphen 351 Formula Node 352 Lösungen zu Datenverarbeitung 353 Files 353 Textdateien 353 Tabellenkalkulation 355 Diagramme und Graphen 355 Formula Node 356 Kapitel 10: Hardwaresteuerung 357 National Instruments Measurement and Automation Explorer (NI MAX) 357 VISA 363 Treiber einbinden 366 Teil IV: Top-Ten Part 371 Kapitel 11: Zehn gängige Schnitzer beim Programmieren in LabVIEW 373 Beschriftung 376 Wire verläuft unter Element 377 Initialisierung 378 Property Nodes 378 Dokumentation 378 Icon 379 Kommentare 379 Coercion Dot 379 Wire verläuft von rechts nach links 380 Buntes Frontpanel 380 Abbildungsverzeichnis 381 Stichwortverzeichnis 393

    1 in stock

    £23.70

  • C für Dummies

    Wiley-VCH Verlag GmbH C für Dummies

    2 in stock

    Book SynopsisC erfreut sich als Klassiker unter den Programmiersprachen großer Beliebtheit, denn es steckt nach wie vor in vielen Betriebssystemen, Schnittstellen und Treibern, aber auch in Compilern und neueren eingebetteten Systemen. Wer C lernen und dabei auch noch Spaß haben möchte, sollte zu diesem Buch vom Urvater der Dummies, Dan Gookin, greifen. Mit viel Humor und vielen anschaulichen Beispielen macht er die Programmiersprache C lebendig.Table of ContentsÜber den Autor 11 Einleitung 29 Was bringt es, C zu lernen? 29 Über dieses Buch 30 Programme in diesem Buch 30 Törichte Annahmen über den Leser 31 Wie dieses Buch aufgebaut ist 32 Teil I: Das erste Programm 32 Teil II: Grundlegendes Sprachverständnis 32 Teil III: Einfache Datenstrukturen und Zeiger 32 Teil IV: Daten speichern und verwalten 32 Teil V: Der Top-Ten-Teil 32 Symbole, die in diesem Buch verwendet werden 33 Schlussgedanken 33 Teil I: Das erste Programm 35 Kapitel 1 In zehn Schritten zum ersten Compiler 37 Die Installation der IDE 37 Code::Blocks installieren 38 Die Compilereinstellungen 40 Ihr erstes Programm 43 Welches C hätten Sie gern? 43 An die Tastatur! 44 Den C-Code eingeben 46 Ihr Programm erstellen 48 Ihr Programm ausführen 48 Ein Wort zu Code::Blocks und Spenden 49 Kapitel 2 Der (zumeist harmlose) Einstieg 51 Die kurze und banale Geschichte von C 51 Wie aus einer süßen kleinen Textdatei ein Programm wird 52 Der Entwicklungsprozess in C 53 Der Quelltext (oder auch Sourcecode) 54 Der Compiler 54 Der Linker 56 Das erste C-Programm – eine alte Tradition 56 Speichern! Kompilieren! Linken! Starten! 57 Die notwendigen Editier- und Kompilierkünste 58 Die Quelltextdatei ändern 59 Neukompilierung (oder: Spielʼs nochmal in der Sprache C) 60 Raus mit den alten Sachen, lasst uns was Neues machen 60 Mit Fehlern auf Du und Du 61 Mist! Ein Fehler Aber bevor Sie aus dem Fenster springen … 61 Junge, was ʼn Fehler! 63 Das fehlerhafte Programm reparieren 64 Die fürchterlichen Linkerfehler 65 Linkerfehler beheben 66 Wie die Sprache C aussieht 67 Der große Zusammenhang 67 Stückliste 69 Die Sprache C mit ihren Schlüsselwörtern 70 Andere Sprachelemente von C 71 Eingaben und Ausgaben (die hier mal was Gutes sind) 72 Stellen Sie sich bei Herrn Computer vor 72 Die Belohnung! 73 Erst das Chaos, dann die Ordnung 75 Der C-Compiler räumt sein Zimmer nicht auf 75 Was aufheben, was wegwerfen? 75 Organisation ist alles! 76 Wichtige C-Regeln, an die Sie nie denken werden 77 Das hilfreiche Regelprogramm 77 Zeit für eine Bonusrunde 78 Kapitel 3 Einfache C-Programme basteln 81 printf (wer bei print an Drucken denkt, liegt falsch) 81 Ein anderes »printf macht was Lustiges«-Programm 82 Noch mehr lustige Texte 83 Einige Escape-Sequenzen 85 Das f steht für formatiert 85 Richtʼ Euch! 86 scanf – lassen Sie Ihren Scanner trotzdem aus! 88 scanf richtig einsetzen 89 scanf im scharfen Einsatz 91 Kleine Änderungen an Whoru.c 92 Das Wunder von %s 93 Zeit für Experimente 93 Bemerkungen, Kommentare und Vorschläge 95 Darf ich um einen kurzen Kommentar bitten? 95 Kommentarstile 96 Wieso sind Kommentare notwendig? 96 Bizzare Kommentare 97 Kommentare als Schalter 98 Vermeidung »verschachtelter« Kommentare 99 fgets und puts 100 Und tschüss scanf, willkommen fgets 101 Ein unfreundliches Programmbeispiel 101 Das finstere Geheimnis der Sprache C 101 Sichere Dateneingaben 102 put – put – putputput – puts 103 Noch eine doofe Spielerei 104 puts und Variablen 105 Licht! Kamera! Action! puts und fgets die Zweite 105 Mehr Spaß mit printf 107 Das alte »Text mit printf ausgeben« 108 Die Escape-Sequenzen von printf 108 Das Deluxe-Testprogramm für Escape-Sequenzen 109 Weitere Tests mit Printfun 110 Wieder mal die Komplexität des printf-Formats 111 Die Konvertierungszeichen von printf 112 Kapitel 4 Variablen und Mathe 115 Die sich ständig ändernde Variable 115 Strings ändern sich 116 Willkommen in der Welt der numerischen Variablen 117 Benutzung der ersten Integervariablen 118 Zuweisung von Werten an numerische Variablen 119 Die Eingabe von Zahlen über die Tastatur 120 Wie alt war Methusalem? 122 Mehr numerische Variablen und ein bisschen Mathe 124 Wieder auf der Jagd 124 Eine Portion Mathe 125 Wie lange brauchen Sie, um Methusalems Rekord zu brechen? 126 Methusalem: Bonusrunde! Jedes Los ein Gewinn! 127 Das unmittelbare Ergebnis 128 Diskurse, Diskussionen und die Definition von Variablen 129 »Warum muss ich eine Variable definieren?« 130 Verbotene und erlaubte Variablennamen 131 Vordefinieren von Variablen 131 Ein x-beliebiges Beispiel für Variablen 133 Mehrfachdeklarationen 134 Konstanten und Variablen 135 Träume von Freiheit und mehr Konstanz 135 Eine praktische Abkürzung 136 Das Schlüsselwort const 137 Der dritte Weg 138 Malen mit Zahlen 140 Zahlen in C 140 Wieso nimmt man int? 142 Mit oder ohne Vorzeichen – das ist hier die Frage 142 Wie bringt man eine Zahl eigentlich zum Fließen? 143 »Hey EIX32A, lass uns mal ein Fließkommaprogramm schreiben!« 144 Die Sache mit der E-Notation 145 Doppelt so groß wie float? Das ist double! 147 Bringen Sie Ihren Zahlen Format bei! 148 Die etwas andere Variable: char 149 Variablen mit einzelnen Zeichen 149 Variablen mit Zeichen abfüllen 151 Kitzelt eine Tasteneingabe den Computer? 151 Zeichenvariablen als Werte 152 Die erste wirkliche Mathestunde 154 Ein sehr knapper Überblick über die Operatoren 154 Das alte »Wie groß bist du?«-Programm 155 Heimtückische Änderungen an unserer Größenberechnung 156 Die hohe Kunst des Inkrementierens 157 Weniger lustig: Gewichtszunahme 157 Bonusprogramm! (Irgendwann nützt es Ihnen was) 158 Wer hat den Vortritt? 160 Ein Beispiel aus einer Examensklausur 160 Punktrechnung vor Strichrechnung 161 Klammern haben den Vortritt 162 Teil II: Grundlegendes Sprachverständnis 165 Kapitel 5 Wir stehen vor einer großen Entscheidung 167 Die mächtige if-Anweisung 168 Der Computer als Genie 168 Das Schlüsselwort if ganz aus der Nähe 170 Eine Anmerkung zur Schreibweise der if-Anweisung 174 Die endgültige Lösung für die Steuerproblematik 174 Gut, wennʼs nicht wahr ist, was ist es dann? 176 Mit einem else alle Möglichkeiten abdecken 176 Eine Anmerkung zur Schreibweise 179 Der Sonderfall else-if und viel mehr Entscheidungen 180 if mit Zeichen und Strings 181 Die zahlenlose Welt von if 181 Was ist größer: S oder T, $ oder -? 182 if und der Vergleich von Strings 183 Wie schreibt man richtig in C? Lektion 1 183 Immer von oben nach unten 184 Formatierungen des Quellcodes 184 Einrückungen, Teil 2 185 Vergessen wir kurz die Formatierung 186 Andere Möglichkeiten 186 for knüpft Schleifen 187 Wiederholte Wiederholungen 189 for formt die Schleifen 190 Wie in der Grundschule: Zählen bis 100 192 Schleifen fabrizieren 194 Endlich – das nützliche ASCII-Programm 194 Vorsicht, Endlosschleifen! 195 Schleifen gewaltsam abbrechen 197 Das Schlüsselwort break 198 Abkürzungen und die Kunst des Inkrementierens 199 Kryptische C-Operatoren, Teil 1: ++ 199 Bahn frei, jetzt komm ich! 200 Rückwärtszählen: nelhäz sträwkcüR 201 Rückwärtszählen passt sehr gut zum for 202 Kryptische C-Operatoren, Teil 2: −− 202 Eine abschließende Verbesserung von Ollyolly.c 203 Je mehr Inkrement, desto mehr Wahnsinn 204 Schleifen mit Sprüngen 204 Kryptische C-Operatoren, Teil 3: Jetzt wird’s verrückt 205 Kapitel 6 Ihre persönlichen Funktionen 207 Die allererste Funktion schreiben 207 Dieses Programm braucht eine Funktion 209 Die nützliche Funktion idiot() 210 Das Tao der Funktionen 211 Zur Namensgebung von Funktionen 212 Ein Wort zum Prototyping 213 Variablen innerhalb von Funktionen 215 Bomben frei mit dem Bomber-Programm 215 Bringt die doppelte Variable Bomber.c zur Explosion? 216 Ein weiterführendes Beispiel 217 Brüderliches Teilen von Werten mithilfe globaler Variablen 219 Eine globale Variable erzeugen 219 Ein Beispiel für eine globale Variable 220 Funktionen ein Päckchen mit auf den Weg geben 222 Funktionen mit einer echten Funktion 224 Wie man einer Funktion einen Wert schickt 225 Unbedingt lesen: Variablenwirrwarr vermeiden 226 Mehr als einen Wert an eine Funktion übergeben 226 Wie man Strings an Funktionen übergibt 228 Funktionen mit Ergebnissen 230 Endlich sagt der Computer mal was Gutes über Sie 231 Fehlerbeseitigung in Iq.c mit dem beliebten Typecasting-Trick 232 Mit return zurück an den Absender 234 Gib dem Mann mal einen Bonus! 235 Das Zwiebelschalenprinzip 237 Funktionen arbeiten von innen nach außen 238 Veränderungen am Programm Iq.c 239 Ein gängiges Beispiel für if 240 Das alte Spiel mit den Zufallszahlen 241 Benutzung der rand-Funktion 242 Zufallszahlen initialisieren 244 Mehr Zufall im Zufallsprogramm 245 Verbesserungen am Zufallszahlenprogramm 246 Der teuflische Dr Modulo 248 Die Würfel sind gefallen 250 Kapitel 7 Feinschliff für die C-Künste 253 Dieses Zeug drängelt sich immer vor (der Rest folgt dem #) 253 Bitte vergiss mein nicht! 254 Ihre eigene h-Datei erstellen 257 Wofür #define gut ist 259 Makros erwähnen wir besser erst gar nicht 260 Wie man Eingaben vom Benutzer bekommt 262 Die Tastatur abhören 262 Das fürchterliche Ratespiel 263 Die Shell beklauen (wie man die Kommandozeile abhört) 265 Da gehen einem die Argumente aus – main passiert das nie 266 Also, irgendwelche Argumente dafür? 267 Anzeige der Argumente 268 Wiederholungen sind gut 270 Ihr Gewicht auf dem Mond 272 Noch mehr ifs 274 Auswertung von mehreren Bedingungen in if-Abfragen 275 Wer ist schlauer? Melvin oder Poindexter? 277 Gutes p, schlechtes P 279 Weitere Weisheiten 280 Nun zu den schlechten Nachrichten 280 Mehr über Variablen 281 Typecasting und andere Probleme 281 Grundlagen der Typumwandlung 282 Die lange und die kurze Form 282 Die Konfusion weicht allmählich 283 signed und unsigned 284 unsigned Variablen haben eine negative Einstellung 285 Faire und unfaire Variablen 286 Ein anderes Kapitel über Zahlen (die Sache mit der Hexerei) 286 Zahlensysteme und ihre Basis 287 Hexereien 288 Inhaltsverzeichnis 21 Kapitel 8 Schleifen knüpfen 291 Fakten zu while-Schleifen 291 Die erste Schleife binden 292 Das Schlüsselwort while 293 Was ist besser geeignet: while oder for? 295 Tausche unschönes for(;;) gegen elegantes while 296 Den Spieß umgedreht: do-while-Schleifen 297 while macht Kopfstände – do-while 298 De-tail von do-while 300 Trau niemals dem User – ein Fehler in Countdown.c 301 Die garantiert richtige Eingabe 302 Der bizarre Fall while TRUE (und sonstige Kuriositäten) 303 Fragestunde 303 Feintuning für Yorn.c 305 »Kochen, bis es gar ist« 306 Yorn.c als Funktion 307 Verschachtelte Schleifen und anderer Unsinn für Angeber 309 Verschachtelte Anwendungen 310 Schleifen und das heimtückische switch-case 311 Die Lösung mit switch-case 313 Der alte Trick mit switch-case 315 Eine besondere Beziehung zwischen while und switch-case 318 Kapitel 9 Zwischenstand und Reste essen 321 Selbsttest via Hallo, Welt! 321 Das Hallo-Welt-Programm 322 Weiter geht’s – ein närrisches Hallo-Welt-Programm 322 Halt die Welt an, ich möchte aussteigen! 323 Die Behandlung der Überbleibsel 326 Die Lösung mittels while-Schleife 328 Mehr über die math.h-Library 329 Die Probleme in einer höheren Potenz 330 Autsch! Wurzeln ziehen 333 Lästige Mathematik? – Sie packen das 334 Etwas wahrhaft Merkwürdiges zum Schluss 335 Die Gefahren der Benutzung von a++ 336 Ja, und das Gleiche gilt für -- 337 Wiederholung des ++a-Phänomens 338 goto-Anweisung – nein danke 338 Was ist nun goto? 339 Ein Beispiel, wie man goto nicht verwenden sollte 340 Alternativen zu goto 342 Und tschüss … – das Programm verlassen 344 exit – der Notausgang 344 Zuletzt das berüchtigte Ask-Programm 345 Eine sinnlose Batchdatei als Beispiel 348 Teil III: Einfache Datenstrukturen und Zeiger 349 Kapitel 10 Arrays und Strings 351 Wozu Arrays? 351 Wie man Arrays benutzt 352 Ein einfaches Programm, bevor es zu langweilig wird 353 Arrays in C erstellen 354 Auf die Elemente eines Arrays zugreifen 356 Werte an ein Array zuweisen 357 Alt, aber brauchbar 359 Strings und Arrays 362 Das Ende eines Strings (das Nullbyte) 363 Köder auslegen 364 Die Falle 366 Gegen den Buffer-Overflow 367 Arrays jeder Sorte 369 Sortier mich, aber schnell 369 Sortieren 371 Eine unverschämt große Menge Zahlen sortieren 373 Kapitel 11 Strings und so Zeugs 377 Strings und Zeichen 377 Das Programm »Mach mich GROSS« 378 Eine bessere Möglichkeit, einen String zu durchlaufen 380 Ein total verdrehter String 382 Texte verflechten 384 Strings in C kopieren 386 Strings zerlegen 387 Sesam öffne dich 390 Stringmanipulationen 392 Strings verbinden 392 Die Stringfunktionen zusammengefasst 395 Arrays jenseits der ersten Dimension 395 Vereinbarung eines zweidimensionalen Arrays 396 Vereinbarung eines initialisierten zweidimensionalen Arrays 397 Zugriff auf die Elemente eines zweidimensionalen Arrays 399 Ein Array aus Strings 400 Arrays in der Grauzone 404 Dreidimensionale String-Arrays 406 Wieder hinter den sieben Bergen bei den sieben Zwergen 407 Kapitel 12 Die finstersten Aspekte von C: Zeiger 411 Ein unhandliches und starres Speicherkonzept 411 Land kaufen, aber kein Haus bauen 412 Mehr oder weniger gefräßige Variablen 414 Die Größe eines Arrays berechnen 416 Lange Rede, kurzer Sinn 417 Adresse, Adresse, Adresse 418 Ein etwas simples Programm als brauchbares Beispiel 418 Hallo, Herr Zeiger! 420 Das zweite Metric-Programm 421 Die Vereinbarung der Zeigervariablen 422 Zeiger zum Speichern von Adressen benutzen 423 Was weiß nun das Programm? 423 Oh Schreck – eine kleine Übung zur Selbstkontrolle 425 Nun die Adresse der letzten Variablen 425 Mehr Zeiger, mehr Speicher, Wahnsinn ohne Ende 427 Römische Zahlen (und wieder eine Ausnahme) 430 Noch mehr Römer 432 Das total verdorbene Römer-Programm 433 Und nun das Sternchen, bitte schön 434 Rückblick 434 Zeiger, die zeigen und schauen 435 Der Zeiger als neugieriger Postbote 435 Noch mehr Durcheinander mit den *-Zeigern 437 Ein Zeiger und mehrere Variablen 438 Zeiger und Arrays 439 Ein Array mit einem Zeiger durchlaufen 440 Nun eine wahrhaft schwer zu knackende Nuss 442 Zeiger, Klammern, Arithmetik – puh 443 Zeiger sollen Arrays nicht ersetzen 444 Zeit, einen Schnitt zu machen 445 Die Beziehung zwischen Zeigern und Array-Klammern 446 Beseitigung aller Spuren der Array-Notation 447 Ungläubige können ja nachprüfen 447 Weitere Prüfung 448 Zum guten Schluss: Der Hauptunterschied zwischen Zeigern und Arrays 448 Kapitel 13 Erste Anwendungen der Zeiger 451 Zeiger und Strings 451 Eine unmögliche Art, einen String auszugeben 451 Eine bessere Möglichkeit, einen String anzuzeigen 453 Mehr Tricks 454 Noch mehr Tricks 454 Ein allerletzter Trick 455 Die Tiefen der Bibliotheksdefinitionen 456 Oh! String! String! String! 457 Noch so eine irreführende Sache 458 Vereinbarung eines Strings mit einem char-Zeiger 460 Übergabe von Zeigern an Funktionen 461 Rückblick zu Zeiger-Problemen 461 Botschaften aus dem Jenseits 463 Übergabe von Arrays an und von Funktionen 468 Übergabe eines char-Arrays an eine Funktion 469 Die verbotenen Vokale 470 Übergabe beliebiger Arrays an Funktionen 473 Analyse der caffeine-Funktion 476 Funktionen, die ihre Variablen töten 477 Arrays aus Zeigern 478 Zeiger und Arrays 478 Ein String-Zeiger-Array erzeugen 479 Ein Beispielprogramm 481 Das Zeiger-Array der Kommandozeile 482 Was zum Kuckuck ist das nun? 483 Zeiger (auch in Arrays) sind Variablen 485 Sortieren von Strings mit Zeigern 486 Ein einfaches und falsches Sortierprogramm 486 Was war falsch? 488 Die entsetzlichen Indirekt-Zeiger 488 Sortieren von Strings nach allen Zeichen 491 Kapitel 14 Alles über Strukturen 497 Mehrfachvariablen 497 Das Leben ohne Strukturen 498 Mit Arrays geht es nicht viel besser 500 Wir brauchen eine Karteikarte 501 Fakten zu Strukturen 503 Noch einmal das Passwort-Programm 506 Arrays aus Strukturen 508 Alles in einem Array 510 Der Rest der Mannschaft von Oz 511 Strukturkomponenten kopieren 514 Strukturen und Funktionen 518 Ein spezieller Rückblick: Vereinbarung einer globalen Variablen 519 Hey, Funktion, hier kommt eine Struktur! 519 Verschachtelte Strukturen 522 Rückgabe einer Struktur aus einer Funktion 524 Großer Dank gilt der Funktion malloc 530 Ein Beispiel ohne zusätzlichen Speicherplatz 531 Oh malloc, gib mir mehr Platz 532 Borgen und nicht wiedergeben ist wie gestohlen 533 Nun die richtige Speicherbereitstellung für Howdy.c 535 Strukturen und (schon wieder!) Zeiger 537 Was Sie brauchen, um eine Struktur im Speicher anzulegen 537 Das erste Programm mit Zeiger und Struktur 538 Eine leere Zeigerhülle 541 Teil IV: Daten speichern und verwalten 543 Kapitel 15 Die Festplatte als Diener 545 Hello Disk! 545 Ein kleines Textstück auf die Platte schreiben 546 Wie die Arbeit mit Dateien funktioniert 547 Etwas aus einer Datei lesen 550 Versehentliches Überschreiben verhindern 552 Binär oder Text – das ist hier die Frage 555 Ein eigenes type-Programm 555 Ein Dump erstellen 558 Formatierte Ein-/Ausgabe 560 Die formatierte Ausgabe 561 Formatierte Eingabe aus Dateien 562 Ein Array in eine Datei schreiben 563 Ein Array aus der Datei lesen 564 Daten lesen und schreiben 566 Das Grundgerüst für ein Programm zum Speichern von Strukturen 566 Eine Struktur in eine Datei schreiben 568 Die Funktion write_info 569 Die read_info-Funktion 571 Kapitel 16 Dynamische Datenstrukturen 575 Dynamische Arrays 575 Arrays mit variabler Länge 576 I’ werd’ narrisch: variable Stringlängen 578 Kurzer Rückblick zur Datenspeicherung 580 Wie verkettete Listen arbeiten 582 Die erste Struktur 583 Eine Struktur mehr und der Link darauf 584 Und nun der Rest 586 Die NULL kennzeichnet das Ende 588 Kapitel 17 Die Geburt unserer Datenbank 591 Das unvermeidliche Bankkontenprogramm 591 Das BANK-Programm 591 Was bereits funktioniert 595 Datensätze aus Listen löschen 597 Überflüssige Datensätze entfernen 598 Die Funktion deleteAccount() 599 Die Arbeitsweise der Funktion deleteAccount 601 Einmal vom Speicher zur Disk und zurück 602 Die Liste auf Platte speichern 602 Eine verkettete Liste von Platte laden 604 Teil V: Der Top-Ten-Teil 607 Kapitel 18 Cehn Gründe für C im Jahr 2020, 2021, 2022 … 609 C++, C#, Java, PHP und die anderen {} 609 C ist schlank 609 C ist Fahren ohne ABS und ESP 610 C ist die Sprache der APIs und Kernel 611 C ist 31337 611 C ist die Sprache der Aufzüge und Kühlschränke 611 C ist allgegenwärtig 612 C ist die Sprache der Schnittstellen 612 C treibt die Dinge voran 612 C ist wichtig … 612 Kapitel 19 Zehn Empfehlungen zum Schreiben unlesbarer Programme 613 Lügen Sie in den Kommentaren 613 Verwenden Sie möglichst kurze Variablennamen 614 Nutzen Sie Copy&Paste ausgiebig 614 Stöbern Sie im Thesaurus 614 Legen Sie sich niemals fest 615 Wenn’s mit dem Englisch hapert 615 Ziehen Sie Schreibfehler konsequent durch 615 Seien Sie modern und geben Sie Ihren Quellcode frei 616 Finden Sie Workarounds für eigene Fehler 616 Verzichten Sie auf lesbare Codeformatierungen 617 Kapitel 20 Zehn nützliche Internetadressen zu C 619 Stackoverflow 619 A Programmer’s Heaven 619 Codeguru.com 619 C for Dummies 620 Nachschlagewerk zur Bibliothek 620 Noch ein Nachschlagewerk 620 Der C-Standard 620 Der Compiler – Code::Blocks 620 Visual Studio Express Editions 621 c++.net 621 Stichwortverzeichnis 625

    2 in stock

    £22.50

  • Stop-Motion-Trickfilme selber machen für Dummies

    Wiley-VCH Verlag GmbH Stop-Motion-Trickfilme selber machen für Dummies

    7 in stock

    Book SynopsisYouTube-Videos schauen kann jeder, aber einen Stop-Motion-Trickfilm selbst produzieren? Das ist ganz einfach: Denke dir eine Geschichte aus und bastle aus einfachen Materialien Figuren. Lass die Puppen tanzen und vermische Wirklichkeit und Fantasie. Hintergründe und Ton-Dateien bieten wir dir zum Download an. Im Buch findest du außerdem jede Menge Tipps zu Beleuchtung, Geräuschen, Anordnung der Figuren und Spezialeffekten. Sei kreativ, bearbeite die Filme am Computer weiter und verblüffe Freunde und Familie mit deinem Video. Wir zeigen dir Schritt für Schritt, wie es geht. Bestens geeignet für Kinder und Jugendliche ab 8 Jahre.Trade Review"Diese ... leicht verständliche Anleitung zum Erstellen von Trickfilmen in Stop-Motion-Technik liegt hier in einer wesentlich überarbeiteten Auflage vor.... Ausgetauscht wurde die "animate-it!" Software gegen die Software "I can animate 2". Weiter mit dabei ist das kostenlose "Shotcut" für die Verarbeitung von Digitalphotos zu Trickfilmsequenzen.... Eine gut gelungene, leicht verständliche Einführung in ein gefragtes, auch für Workshops geeignetes Thema. (EKZ am 24.April 2023)Table of ContentsEinführung 7 Über dieses Buch 8 Über dich 8 Über die Symbole, die wir in diesem Buch verwenden 9 Kapitel 1: Dein erster Film 11 Wie funktioniert ein Film 12 Daumenkino 12 Thaumatrop 14 Mutoskop 15 Was ist Stop Motion? 15 Auf die Plätze, fertig, los! 17 Arten von Stop- Motion- Trickfilmen 18 3D- Stop- Trickfilm 19 Legetrickfilm 23 Pixilation 25 Kapitel 2: Das brauchst du 27 Aufnahmegeräte 28 Smartphone oder Tablet 29 Notebook oder Computer mit Webcam 30 Digitalkamera 30 Stop- Motion- Programme 31 Apps für Smartphones oder Tablets 31 Software für Notebooks oder PCs 32 Software bei Aufnahme mit der Digitalkamera 32 Zubehör 33 Stativ 34 Legetrickfilm- Stativ 37 Stativ für die Pixilations- Technik 39 Fernauslöser 39 Licht 39 Tonaufnahmegerät 40 Material 41 Für das Filmset 41 Für die Figuren 43 Für die Animation 46 Kapitel 3: Von Profis lernen 49 Worauf es beim Animieren ankommt 50 Natürliche Bewegungen 50 Natürlicher Ausdruck 51 Spezialeffekte 52 So bekommst du gute Fotos 56 Die Drittel- Regel 56 Einstellungsgrößen 57 Perspektiven 61 Achtung, Gesetz! 63 Das Hausrecht 63 Das Recht am eigenen Bild 64 Das Urheberrecht 64 Kapitel 4: Deine Filmidee 69 Am Anfang war die Idee 69 So kommst du von der Idee zur Story 73 Kapitel 5: Vorbereitungen 77 Drehbuch und Storyboard 77 Kulissen, Figuren und Filmutensilien bauen 82 Die Kulisse 82 Die Figuren 86 Die Filmutensilien 87 Filmset 87 Wähle einen Drehort 87 Baue dein Filmset auf 89 Baue die Kamera auf 91 Kapitel 6: Film ab! 93 Aufnahme mit Smartphone oder Tablet 94 Die ersten Aufnahmen 95 Ist es Zeit für einen Dialog? 99 Abspielgeschwindigkeit einstellen 104 Titel und Abspann einfügen 105 Passende Geräusche zum Film 107 Die Hintergrundmusik wählen 109 Tonspur bearbeiten 110 Fertig? 111 Aufnahme mit Notebook oder PC mit Stop Motion Studio Pro 113 Herunterladen der App 114 Öffnen und Erstellen eines neuen Films 115 Die Aufnahmeoberfläche 115 Aufnehmen und hinzufügen von Bildern und Musik 116 Geschwindigkeit ändern 118 Vertonung 118 Musik und fertige Toneffekte einfügen 119 Titel und Abspann 119 Software I can animate 2 120 Die ersten Aufnahmen 122 Gib deiner Story einen Namen! 126 Sprache aufnehmen 126 Bearbeite deine erste Tonspur 127 Szenen mit Geräuschen untermalen 128 Die Hintergrundmusik wählen 128 Fertig? 129 Aufnahme mit der Digitalkamera 129 Die ersten Aufnahmen 130 Bilder am Computer zusammenführen 130 Szenen mit Geräuschen untermalen 132 Ton kürzen 134 Ton bearbeiten 134 Ton löschen 136 Fertig? 137 Kapitel 7: Veröffentlichen 139 Auf YouTube 140 Auf Vimeo 143 Auf juki 146 Nach dem Film ist vor dem Film 152 Wichtige Wörter 155 Zum Wiederfinden 159 Über die Autorinnen 163

    7 in stock

    £13.99

  • Coding Alles-in-einem-Band für Dummies

    Wiley-VCH Verlag GmbH Coding Alles-in-einem-Band für Dummies

    2 in stock

    Book SynopsisWenn Sie Webseiten oder mobile Apps entwickeln möchten, dann ist dieses Buch wie für Sie gemacht! Auch ganz ohne Vorkenntnisse steigen Sie einfach ein und lernen die einzelnen Programmiersprachen und Technologien jeweils für sich und im Zusammenspiel kennen und einsetzen. Angefangen beim grundlegenden Aufbau einer Webseite mit HTML, CSS und JavaScript über die Entwicklung mobiler Apps für iOS- und Android-Geräte mit Flutter bis hin zur Verarbeitung der Daten mit Python: Hier ist einfach mehr für Sie drin! Wenn Sie sich einen breiten Überblick über die Webentwicklung und Programmierung verschaffen wollen, dann werfen Sie am besten gleich einen Blick in dieses Buch ...Table of ContentsÜber die Autoren 9 Einführung 31 Teil I: Programmieren – Erste Schritte. 35 Kapitel 1: Was ist Programmierung?. 37 Kapitel 2: Programmieren für das Internet. 49 Kapitel 3: Programmierer werden. 63 Teil II: Grundlegende Web- Programmierung. 73 Kapitel 4: Grundlegendes HTML 75 Kapitel 5: Mehr aus HTML herausholen. 95 Kapitel 6: Stylisch mit CSS. 111 Kapitel 7: Die nächsten Schritte mit CSS. 133 Kapitel 8: Responsive Layouts mit Flexbox 157 Kapitel 9: Styling mit Bootstrap. 175 Teil III: Fortgeschrittene Webcodierung 193 Kapitel 10: Was ist JavaScript? 195 Kapitel 11: Ihr erstes JavaScript- Programm. 207 Kapitel 12: Variablen. 225 Kapitel 13: Arrays verstehen 243 Kapitel 14: Operatoren, Ausdrücke und Anweisungen 255 Kapitel 15: Schleifen und Verzweigungen 271 Kapitel 16: Funktionen 285 Kapitel 17: Objekte erstellen und verwenden. 303 Kapitel 18: Steuerung des Browsers mit dem Window- Objekt. 319 Kapitel 19: Manipulation von Dokumenten mit dem DOM. 333 Kapitel 20: Ereignisse in JavaScript 353 Kapitel 21: Eingaben und Ausgaben. 365 Kapitel 22: Callbacks und Funktionsabschlüsse 379 Kapitel 23: AJAX und JSON. 391 Teil IV: Mobile Apps erstellen. 407 Kapitel 24: Was ist Flutter?. 409 Kapitel 25: Ihren Computer für die Entwicklung mobiler Anwendungen einrichten. 425 Kapitel 26: »Hallo« von Flutter. 459 Kapitel 27: Hello again…. 493 Kapitel 28: Dinge geschehen lassen 517 Kapitel 29: Layouts. 549 Kapitel 30: Interaktion mit dem Benutzer 587 Kapitel 31: Navigation, Listen und andere Leckerbissen. 623 Kapitel 32: Mittendrin statt nur dabei …. 669 Teil V: Erste Schritte mit Python. 691 Kapitel 33: Python – Erste Schritte. 693 Kapitel 34: Eine Python- Distribution installieren. 705 Kapitel 35: Mit echten Daten arbeiten 723 Teil VI: Datenanalyse mit Python. 745 Kapitel 36: Datenaufbereitung. 747 Kapitel 37: Datengestaltung. 773 Kapitel 38: MatPlotLib – ein Crashkurs. 791 Kapitel 39: Datenvisualisierung. 807 Abbildungsverzeichnis 825 Stichwortverzeichnis 837

    2 in stock

    £28.45

  • Multiplan 3.0

    Springer Fachmedien Wiesbaden Multiplan 3.0

    1 in stock

    Book SynopsisVor dem eigentlichen Arbeitsbeginn mit Multiplan sollten Sie emtge Vorarbeiten durchführen. Das betrifft das Formatieren einer Diskette, das Laden des Software-Pakets Multiplan, das Verstehen des Bild­ schirmaufhaus und der Tastatur. 1.1 Formatieren einer leeren Diskette Sie benötigen zum Arbeiten mit Multiplan mindestens die Programm­ diskette und eine Diskette, auf der Ihre Daten (Datendiskette) ab­ gespeichert werden können. Um Ihre Daten auf einer Diskette speichern zu können, muß diese vorher formatiert werden. Sie können eine Diskette folgendermaßen formatieren: 1. Schalten Sie Ihr Gerät ein. 2. Legen Sie die Betriebssystemdiskette in Laufwerk A: ein. 3. Legen Sie die leere Diskette ins Laufwerk B: ein. 4. Wenn Sie auf dem Bildschirm die Anzeige A> sehen, ist Ihr Be­ triebssystem geladen und Sie können den Befehl zum Formatieren eingeben. 5. Schreiben Sie hinter die Anzeige A> die Anweisung formal b: und drücken Sie die Return-Taste. WICHTIG: Bitte bedenken Sie bei der Eingabe: Jeder Befehl muß mit der Return­ Taste bestätigt werden. Der Computer akzeptiert die Befehle nur, wenn diese mit der Return-Taste bestätigt worden sind. 6. Danach erhalten Sie die Auskunft, daß Sie die Diskette in Laufwerk B einlegen und eine beliebige Taste zur Durchführung des Befehls betätigen sollen. 7. Es erscheint auf dem Bildschirm die Anzeige, daß das System die Diskette formatiert. 8. Das System teilt Ihnen außerdem mit, wann die Formatierung abgeschlossen ist.Table of Contents1 Einleitung.- 2 Das Arbeitsblatt Maschinenstundensatz.- 3 Das Arbeitsblatt Geld.- 4 Das Arbeitsblatt Überprüfung des Etats.- 5 Das Arbeitsblatt Rechnungserstellung.- 6 Das Arbeitsblatt Urlaub.- 7 Anwendung der Befehle Bewegen, Ordnen, Einfügen und Löschen.- 8 Multiplan mit der Mouse und Softwarepaketen.- Anhang A.- Anhang B.- Sachwortverzeichnis.

    1 in stock

    £43.69

  • Springer-Verlag Berlin and Heidelberg GmbH & Co. KG Proceedings / Parcella 1988: Fourth International Workshop on Parallel Processing by Cellular Automata and Arrays, Berlin, GDR, October 17-21, 1988

    15 in stock

    Book SynopsisThis volume contains selected papers for the Parcella '88, the Fourth International Workshop on "Parallel Processing by Cellular Automata and Arrays" held in Berlin from October 17 to 21, 1988. The profile of the Parcella workshop series is focused on problems of processing by regular structures, i.e. their "flexibilization" or adapting to "irregular" algorithms and, closely related to this, on the "regularization" of algorithms for their embedding into regular structures. It seems that these problems will have an increasing priority within the list of central problems in parallelization and will determine the profile of Parcella for the next years.Table of ContentsMultiprocessor arrays: Topology, efficiency and fault-tolerance.- Unsolved theoretical problems in homogeneous structures.- On simultaneous realizations of boolean functions, with applications.- Parallel microprogramming as a tool for multi-microprocessor systems.- A survey of parallel computational geometry algorithms.- Parallel memories for straight line and rectangle access.- Programming with active data.- Prolog implementations for cellular architectures.- Modular highly-parallel computation and architectures.- Parallel computation and supercomputers and applications.- Fast parallel algorithms and the complexity of parallelism (basic issues and recent advances).- Process-structured architectures to transform information flowing through.- Basic research for cellular processing.- Parallel algorithms in image processing.- VLSI arrays implementing parallel line-drawing algorithms.- Parallel conflict-free optimal access to complete extended q-ary trees.- Systolic preconditioning algorithms for the jacobi iterative solution of sparse linear systems.- Multiprocessor systems for large numerical applications.- Systolic array for eigenvalue of jacobi matrix.- A transitive closure algorithm for a 16-state cellprocessor.- Control of sensory processing — A hypothesis on and simulation of the architecture of an elementary cortical processor.- Bounds for l-selection and related problems on grids of processors.- Recursive design of communication schemes for parallel computation with relacs.- Solution of dense systems of linear equations using cellular processors.- Running order statistics on a bit-level systolic array.- Realization of sets of permutations by permutation networks.- Simulation of learning networks.- Given's rotation on an instruction systolic array.- Worst case analysis for reducing algorithms on instruction systolic arrays with simple instruction sets.- Self-checking processing elements in cellular arrays.- Cellular diagnostic in parallel systems.- Reliable networks for boolean functions with small complexity.- Pipeline-automata — A model for acyclic systolic systems.

    15 in stock

    £44.99

  • Algorithms and Data Structures: The Basic Toolbox

    Springer-Verlag Berlin and Heidelberg GmbH & Co. KG Algorithms and Data Structures: The Basic Toolbox

    1 in stock

    Book SynopsisAlgorithms are at the heart of every nontrivial computer application, and algorithmics is a modern and active area of computer science. Every computer scientist and every professional programmer should know about the basic algorithmic toolbox: structures that allow efficient organization and retrieval of data, frequently used algorithms, and basic techniques for modeling, understanding and solving algorithmic problems. This book is a concise introduction addressed to students and professionals familiar with programming and basic mathematical language. Individual chapters cover arrays and linked lists, hash tables and associative arrays, sorting and selection, priority queues, sorted sequences, graph representation, graph traversal, shortest paths, minimum spanning trees, and optimization. The algorithms are presented in a modern way, with explicitly formulated invariants, and comment on recent trends such as algorithm engineering, memory hierarchies, algorithm libraries and certifying algorithms. The authors use pictures, words and high-level pseudocode to explain the algorithms, and then they present more detail on efficient implementations using real programming languages like C++ and Java. The authors have extensive experience teaching these subjects to undergraduates and graduates, and they offer a clear presentation, with examples, pictures, informal explanations, exercises, and some linkage to the real world. Most chapters have the same basic structure: a motivation for the problem, comments on the most important applications, and then simple solutions presented as informally as possible and as formally as necessary. For the more advanced issues, this approach leads to a more mathematical treatment, including some theorems and proofs. Finally, each chapter concludes with a section on further findings, providing views on the state of research, generalizations and advanced solutions.Trade Review"This is another mainstream textbook on algorithms and data structures, mainly intended for undergraduate students and professionals … . The two-layer index table is also detailed and helpful. I do enjoy reading the informative sections of historical notes and further findings at the end of each chapter. … This book is very well written, with the help of … clear figures and tables, as well as many interesting and inspiring examples." Zhizhang Shen, Zentralblatt MATH, Vol. 1146, 2008"... the book develops the basic fundamental principles underlying their design and analysis without sacrificing depth or rigor. The authors' insight, knowledge and active research on algorithms and data structures provide a very solid approach to the book. I particularly liked their "as informally as possible and as formally as necessary" writing style, and I enjoyed a lot their decision to not only discuss classical results, but to broaden the view to alternative implementations, memory hierarchies and libraries, which transmits novelty and increases interest...I think that this book will be a superb addition particularly useful for teachers of undergraduate courses, to graduate students in Computer Science, and to researchers that work, or intend to work, with algorithms." Jordi Petit, Computer Science Review 3, 2009 "Mehlhorn and Sanders write well, and the well-organized presentation reflects their experience and interest in the various topics... it is an excellent reference, and could possibly be used in a transition course, serving students coming to graduate CS courses from other technical fields. [...]This text is intended for undergraduate computer science (CS) majors, and focuses on algorithm analysis. … it is an excellent reference, and could possibly be used in a transition course, serving students coming to graduate CS courses from other technical fields. Finally, the book contains interesting tidbits that are not readily available elsewhere." M. G. Murphy, ACM Computing Reviews, October 2008"A 'Toolbox' should be portable, practical, and useful. This book is all these, covering a nice swath of the classic CS algorithms but addressing them in a way that is accessible to the student and practitioner. Furthermore, it manages to incorporate interesting examples as well as subtle examples of wit compressed into its 300 pages. Although it is not tied to any one language or library, it provides practical references to efficient open-source implementations of many of the algorithms and data structures; these should be the first refuge of the commercial developer. I can easily recommend this book as an intermediate undergraduate text, a refresher for those of us who only dimly remember our intermediate undergraduate courses, and as a reference for the professional development craftsman." Hal C. Elrod, SIGACT News Book Review Column 42(4) 2011Table of ContentsAppetizer: Integer Arithmetics.- Representing Sequences by Arrays and Linked Lists.- Hash Tables and Associative Arrays.- Sorting and Selection.- Priority Queues.- Sorted Sequences.- Graph Representation.- Graph Traversal.- Shortest Paths.- Minimum Spanning Trees.- Generic Approaches to Optimization.

    1 in stock

    £52.24

  • Springer-Verlag Berlin and Heidelberg GmbH & Co. KG Mathematik für Informatiker: Algebra, Analysis, Diskrete Strukturen

    1 in stock

    Book SynopsisDas Buch bietet einen idealen Einstieg in die Mathematik: Jedes Kapitel beginnt mit konkreten und vertrauten Begriffen oder Situationen. Davon ausgehend abstrahieren die Autoren schrittweise bis sie zu den Begriffen der modernen Mathematik kommen. Dabei wird auf Anwendungen mit einem engen Bezug zur Informatik wie etwa Routenplaner oder Codierungstheorie eingegangen. Das Buch ist so angelegt, dass jeder der drei Teile (Algebra, Analysis und Diskrete Strukturen) unabhängig voneinander gelesen und verstanden werden kann.Trade ReviewAus den Rezensionen: “Das vorliegende Buch bietet eine klassische Einführung in die für Informatiker relevante Bereiche der Mathematik: Algebra ... Analysis ... Diskrete Strukturen ... Insgesamt handelt es sich um eine nette Bereicherung der aktuellen Literatur zu diesem Thema und ich kann es nur jedem Interessierten empfehlen.“ (G. TESCHL, Monatshefte für Mathematik, October/2010, Vol. 161, Issue 3, S. 335)Table of ContentsAlgebra.- Zahlen.- Lineare Algebra.- Analysis.- Reelle Zahlen und Folgen.- Funktionen.- Diskrete Strukturen.- Diskrete Mathematik.- Grundlagen der Mathematik.

    1 in stock

    £27.99

  • Raspberry Pi im Informatik- und

    Springer Fachmedien Wiesbaden Raspberry Pi im Informatik- und

    1 in stock

    Book SynopsisDieses Buch beschreibt erprobte und evaluierte Unterrichtssequenzen zum Experimentieren mit dem Raspberry Pi im Informatik- und Technikunterricht der Sekundarstufe. Ausgehend von den Zielen eines modernen Informatikunterrichts wird gezeigt, wie eine interessen- und motivationsfördernde Raspberry-Pi Lernumgebung aussehen kann. Neben konkreten und differenzierten Unterrichtseinheiten, mit denen sich Schülerinnen und Schüler experimentell die Grundbausteine von Algorithmen erschließen können, werden Unterrichtseinheiten für fortgeschrittene Lernende sowie Projekte vorgestellt. Die vorgestellten Konzepte unterstützen Lehrerinnen und Lehrer wirkungsvoll bei der Konzeption des eigenen Unterrichts, können aber auch als Selbstlernmodule genutzt werden.Table of ContentsDidaktik der Informatik - Die MicroBerry-Lernumgebung - Unterrichtseinheit im Rahmen der MicroBerry-Lernumgebung - Lernsequenzen zur Unterrichtseinheit „Grundelemente von Algorithmen“ - Beschreibung des Projektskripts zur Unterstützung der Projektphase - Projektideen - Evaluationsergebnisse

    1 in stock

    £25.19

  • UML 2 kompakt: mit Checklisten

    Spektrum Akademischer Verlag UML 2 kompakt: mit Checklisten

    1 in stock

    Book Synopsis

    1 in stock

    £17.09

  • Not Avail Geschichten Vom Scrum: Von Sprints,

    3 in stock

    Book Synopsis

    3 in stock

    £12.30

  • Out of stock

    £999.99

  • Out of stock

    £999.99

  • 1 in stock

    £46.42

  • O'Reilly Verlag Einstieg in Regulare Ausdrucke

    Out of stock

    Book Synopsis

    Out of stock

    £999.99

  • Not Avail UML @ Classroom: Eine Einfhrung in Die

    1 in stock

    Book Synopsis

    1 in stock

    £22.41

  • Samurai Media Limited Bison: The Yacc-compatible Parser Generator

    1 in stock

    1 in stock

    £23.28

  • Apress Building Distributed Systems with Go and NATS

    2 in stock

    Book Synopsis1. Overview of Distributed Systems.- 2. Distributed Communication Basics.- 3. NATS Fundamentals.- 4. A Working System.- 5. Anatomy of a Service.- 6. DDD (Domain-Driven Design).- 7. Hexagonal Architecture.- 8. Sample Service.- 9. A Whole System vs a Bunch of Services.- 10. DDD for Systems.- 11. Fully Synchronous Systems.- 12. Aynchronous Systems.- 13. Reactive Systems.- 14. A Working System.

    2 in stock

    £53.99

  • APRESS L.P. Deep Learning with Rust

    7 in stock

    7 in stock

    £49.49

  • Computers and People Essays from the Profession

    John Wiley & Sons Inc Computers and People Essays from the Profession

    Book SynopsisThis book is a selection of essays on relevant topics already published in Computer. The more general essays have been selected for each section, a general introduction has been written, and each section is introduced by a fairly lengthy essay depicting the general area and serving as a prelude the more particular essays in each section.Trade Review"This collection of timeless, thought-provoking essays will appeal to computer users of all levels and ages." (CHOICE, May 2007) "The 34 essays that comprise the heart if his book reveal a humans and judicious mind dedicated to raising his profession." (Times Higher Education Supplement, 23rd February 2007) "…I enthusiastically recommend these well-written essays as food for thought for computer professionals, teachers, students, and the interested general public." (Computing Reviews.com, February 1, 2006)Table of ContentsPreface. The Context. The Background. The Chapters. 1. The Basis of Computing. 2. Computing So Far. 3. Computers and Education. 4. Computing and Professions. 5. The Potential of Computing. 6. Facing the Future. Technical Details. Index.

    £61.16

  • ModelDriven Software Development

    John Wiley & Sons Inc ModelDriven Software Development

    Book SynopsisModel-Driven Software Development (MDSD) is currently a highly regarded development paradigm among developers and researchers. With the advent of OMG's MDA and Microsoft's Software Factories, the MDSD approach has moved to the centre of the programmer's attention, becoming the focus of conferences such as OOPSLA, JAOO and OOP.Table of ContentsPart I: Introduction. 1. Introduction. 2. MDSD – Basic Ideas and Terminology. 3. Case Study: A Typical Web Application. 4. Concept Formation. 5. Classification. Part II: Domain Architectures. 6. Metamodeling. 7. MDSD-Capable Target Architectures. 8. Building Domain Architectures. 9. Code Generation Techniques. 10. Model Transformation Techniques. 11. MDSD Tools: Roles, Architecture, Selection Criteria, and Pointers. 12. The MDA Standard. Part III: Processes and Engineering. 13. MDSD Process Building Blocks and Best Practices. 14. Testing. 15. Versioning. 16. Case Study: Embedded Component Infrastructures. 17. Case Study: An Enterprise System. Part IV: Management. 18. Decision Support. 1.9 Organizational Aspects. 20. Adoption Strategies for MDSD. References. Index.

    £38.00

  • Coding Theory Algorithms Architectures and

    John Wiley & Sons Inc Coding Theory Algorithms Architectures and

    Book SynopsisOne of the most important key technologies for digital communication systems as well as storage media is coding theory. It provides a means to transmit information across time and space over noisy and unreliable communication channels.Trade Review"This text provides a unified framework for presenting coding-theory algorithms, signal-processing architectures, and accompanying applications." (Computing Reviews, June 16, 2008) "This book should provide a concise overview of channel coding and applications." (Zentralblatt MATH, 2008)Table of ContentsPreface. 1 Introduction. 1.1 Communication Systems. 1.2 Information Theory. 1.2.1 Entropy. 1.2.2 Channel Capacity. 1.2.3 Binary Symmetric Channel. 1.2.4 AWGN Channel. 1.3 A Simple Channel Code. 2 Algebraic Coding Theory. 2.1 Fundamentals of Block Codes. 2.1.1 Code Parameters. 2.1.2 Maximum Likelihood Decoding. 2.1.3 Binary Symmetric Channel. 2.1.4 Error Detection and Error Correction. 2.2 Linear Block Codes. 2.2.1 Definition of Linear Block Codes. 2.2.2 Generator Matrix. 2.2.3 Parity Check Matrix. 2.2.4 Syndrome and Cosets. 2.2.5 Dual Code. 2.2.6 Bounds for Linear Block Codes. 2.2.7 Code Constructions. 2.2.8 Examples of Linear Block Codes. 2.3 Cyclic Codes. 2.3.1 Definition of Cyclic Codes. 2.3.2 Generator Polynomial. 2.3.3 Parity Check Polynomial. 2.3.4 Dual Codes. 2.3.5 Linear Feedback Shift Registers. 2.3.6 BCH Codes. 2.3.7 Reed-Solomon Codes. 2.3.8 Algebraic Decoding Algorithm. 2.4 Summary. 3 Convolutional Codes. 3.1 Encoding of Convolutional Codes. 3.1.1 Convolutional Encoder. 3.1.2 Generator Matrix in Time-Domain. 3.1.3 State Diagram of a Convolutional Encoder. 3.1.4 Code Termination. 3.1.5 Puncturing. 3.1.6 Generator Matrix in D-Domain. 3.1.7 Encoder Properties. 3.2 Trellis Diagram and Viterbi’s Algorithm. 3.2.1 Minimum Distance Decoding. 3.2.2 Trellises. 3.2.3 Viterbi Algorithm. 3.3 Distance Properties and Error Bounds. 3.3.1 Free Distance. 3.3.2 Active Distances. 3.3.3 Weight Enumerators for Terminated Codes. 3.3.4 Path Enumerators. 3.3.5 Pairwise Error Probability. 3.3.6 Viterbi Bound. 3.4 Soft Input Decoding. 3.4.1 Euclidean Metric. 3.4.2 Support of Punctured Codes. 3.4.3 Implementation Issues. 3.5 Soft Output Decoding. 3.5.1 Derivation of APP Decoding. 3.5.2 APP Decoding in the Log-Domain. 3.6 Convolutional Coding in Mobile Communications. 3.6.1 Coding of Speech Data. 3.6.2 Hybrid ARQ. 3.6.3 EGPRS Modulation and Coding. 3.6.4 Retransmission Mechanism. 3.6.5 Link Adaptation. 3.6.6 Incremental Redundancy. 3.7 Summary. 4 Turbo Codes. 4.1 LDPC Codes. 4.1.1 Codes Based on Sparse Graphs. 4.1.2 Decoding for the Binary Erasure Channel. 4.1.3 Log-Likelihood Algebra. 4.1.4 Belief Propagation. 4.2 A First Encounter with Code Concatenation. 4.2.1 Product Codes. 4.2.2 Iterative Decoding of Product Codes. 4.3 Concatenated Convolutional Codes. 4.3.1 Parallel Concatenation. 4.3.2 The UMTS Turbo Code. 4.3.3 Serial Concatenation. 4.3.4 Partial Concatenation. 4.3.5 Turbo Decoding. 4.4 EXIT Charts. 4.4.1 Calculating an EXIT Chart. 4.4.2 Interpretation. 4.5 Weight Distribution. 4.5.1 Partial Weights. 4.5.2 ExpectedWeight Distribution. 4.6 Woven Convolutional Codes. 4.6.1 Encoding Schemes. 4.6.2 Distance Properties of Woven Codes. 4.6.3 Woven Turbo Codes. 4.6.4 Interleaver Design. 4.7 Summary. 5 Space-Time Codes. 5.1 Introduction. 5.1.1 Digital Modulation Schemes. 5.1.2 Diversity. 5.2 Spatial Channels. 5.2.1 Basic Description. 5.2.2 Spatial Channel Models. 5.2.3 Channel Estimation. 5.3 Performance Measures. 5.3.1 Channel Capacity. 5.3.2 Outage Probability and Outage Capacity. 5.3.3 Ergodic Error Probability. 5.4 Orthogonal Space-Time Block Codes. 5.4.1 Alamouti’s Scheme. 5.4.2 Extension to more than two Transmit Antennas. 5.4.3 Simulation Results. 5.5 Spatial Multiplexing. 5.5.1 General Concept. 5.5.2 Iterative APP Preprocessing and Per-Layer Decoding. 5.5.3 Linear Multi-Layer Detection. 5.5.4 Original Bell Labs Layered Space Time (BLAST) Detection. 5.5.5 QL Decomposition and Interference Cancellation. 5.5.6 Performance of Multi-Layer Detection Schemes. 5.5.7 Unified Description by Linear Dispersion Codes. 5.6 Summary. A. Algebraic Structures. A.1 Groups, Rings and Finite Fields. A.1.1 Groups. A.1.2 Rings. A.1.3 Finite Fields. A.2 Vector Spaces. A.3 Polynomials and Extension Fields. A.4 Discrete Fourier Transform. B. Linear Algebra. C. Acronyms. Bibliography. Index.

    £95.36

  • Programming MultiAgent Systems in Agentspeak

    John Wiley & Sons Inc Programming MultiAgent Systems in Agentspeak

    Book SynopsisJason is an Open Source interpreter for an extended version of AgentSpeak a logic-based agent-oriented programming language written in Java. It enables users to build complex multi-agent systems that are capable of operating in environments previously considered too unpredictable for computers to handle. Jason is easily customisable and is suitable for the implementation of reactive planning systems according to the Belief-Desire-Intention (BDI) architecture. Programming Multi-Agent Systems in AgentSpeak using Jasonprovides a brief introduction to multi-agent systems and the BDI agent architecture on which AgentSpeak is based. The authors explain Jason's AgentSpeak variant and provide a comprehensive, practical guide to using Jason to program multi-agent systems. Some of the examples include diagrams generated using an agent-oriented software engineering methodology particularly suited for implementation using BDI-based programming languages. ThTrade Review"This essential guide to ArgentSpeak and Jason will be invaluable to senior undergraduate and post-graduate students." (Zentralblatt Math 1132, August 2008)Table of ContentsPreface. 1 Introduction. 1.1 Autonomous Agents. 1.2 Characteristics of Agents. 1.3 Multi-Agent Systems. 1.4 Hello World! 2 The BDI Agent Model. 2.1 Agent-Oriented Programming. 2.2 Practical Reasoning. 2.3 A Computational Model of BDI Practical Reasoning. 2.4 The Procedural Reasoning System. 2.5 Agent Communication. 3 The Jason Agent Programming Language. 3.1 Beliefs. 3.2 Goals. 3.3 Plans. 3.4 Example: A Complete Agent Program. 3.5 Exercises. 4 Jason Interpreter. 4.1 The Reasoning Cycle. 4.2 Plan Failure. 4.3 Interpreter Configuration and Execution Modes. 4.4 Pre-Defined Plan Annotations. 4.5 Exercises. 5 Environments. 5.1 Support for Defining Simulated Environments. 5.2 Example: Running a System of Multiple Situated Agents. 5.3 Exercises. 6 Communication and Interaction. 6.1 Available Performatives. 6.2 Informal Semantics of Receiving Messages. 6.3 Example: Contract Net Protocol. 6.4 Exercises. 7 User-Defined Components. 7.1 Defining New Internal Actions. 7.2 Customising the Agent Class. 7.3 Customising the Overall Architecture. 7.4 Customising the Belief Base. 7.5 Pre-Processing Directives. 7.6 Exercises. 8 Advanced Goal-Based Programming. 8.1 BDI Programming. 8.2 Declarative (Achievement) Goal Patterns. 8.3 Commitment Strategy Patterns. 8.4 Other Useful Patterns. 8.5 Pre-Processing Directives for Plan Patterns. 9 Case Studies. 9.1 Case Study I: Gold Miners. 9.2 Case Study II: Electronic Bookstore. 10 Formal Semantics. 10.1 Semantic Rules. 10.2 Semantics of Message Exchange in a Multi-Agent System. 10.3 Semantic Rules for Receiving Messages. 10.4 Semantics of the BDI Modalities for AgentSpeak. 11 Conclusions. 11.1 Jason and Agent-Oriented Programming. 11.2 Ongoing Work and Related Research. 11.3 General Advice on Programming Style and Practice. A Reference Guide. A.1 EBNF for the Agent Language. A.2 EBNF for the Multi-Agent Systems Language. A.3 Standard Internal Actions. A.4 Pre-Defined Annotations. A.5 Pre-Processing Directives. A.6 Interpreter Configuration. Bibliography.

    £70.16

  • Metamodelling for Software Engineering

    Wiley Metamodelling for Software Engineering

    Book SynopsisThis book focuses on metamodelling as a discipline, exploring its foundations, techniques and results. It presents a comprehensive metamodel that covers process, product and quality issues under a common framework. Issues covered include: An explanation of what metamodelling is and why it is necessary in the context of software engineering.Table of ContentsPreface vii CHAPTER 1 – Software Development Methodologies and Metamodelling 1 1.1 What is a Methodology? 2 1.2 Metamodelling Needs 11 1.3 What is Metamodelling? 17 1.4 Summary 18 References 19 CHAPTER 2 – Modelling Infrastructure 21 2.1 Models and Modelling 21 2.2 Modelling Languages 26 2.3 Categorization Issues 36 2.4 The Relationship Between Models and Metamodels 42 2.5 Infrastructure 44 2.6 Summary 48 References 48 CHAPTER 3 – Using Metamodels 53 3.1 Metamodelling for Modelling Languages 53 3.2 Metamodelling for Processes 58 3.3 Metamodelling for Development Methodologies 62 3.4 Metamodelling for Model Transformation 65 3.5 Using a Metamodelling Infrastructure 68 3.6 Summary 72 References 72 CHAPTER 4 – Problems with Traditional Approaches and Current Products 75 4.1 Terminology and Culture Clashes 76 4.2 Linguistic and Ontological Metamodels 79 4.3 Process and Modelling Conflicts 83 4.4 The Quality Aspect 95 4.5 Solutions and Guidelines 104 4.6 Summary 106 References 106 CHAPTER 5 – New Approaches to Metamodelling 111 5.1 Deep Instantiation-Based Metamodelling 112 5.2 Powertype-Based Metamodelling 114 5.3 Comparison of Powertype Modelling and Potency 126 5.4 Summary 129 References 130 CHAPTER 6 – Software Engineering Metamodel for Development Methodologies 133 6.1 General Philosophy and Scope 133 6.2 High-Level View 141 6.3 Process Aspects 144 6.4 Modelling Aspects – Product Classes 148 6.5 People Aspects – Producer Classes 151 6.6 Linking Process and Product Aspects 153 6.7 Support Classes 154 6.8 Classes in ISO/IEC 24744 155 6.9 Extending the ISO/IEC 24744 Metamodel 157 6.10 Summary 161 References 161 CHAPTER 7 – Creating and Using a Methodology Generated from the Metamodel 163 7.1 Creating a Powertype-Based Methodology from its Metamodel 165 7.2 The Endeavour Domain 175 7.3 Summary 178 References 179 APPENDIX – Proposed Notation for ISO/IEC 24744 181 Index 203

    £56.00

  • VBA for Dummies

    John Wiley & Sons Inc VBA for Dummies

    Book SynopsisVBA helps you put your computer in its place Write programs that automate tasks and make Office 2007 work better for you If your computer is becoming your boss instead of your servant, start using VBA to tell it what to do! Here''s the latest on the VBA IDE and program containers, debugging and controlling your programs, working with multiple applications using a single program, and the most exciting stuff -- programming for all the Office 2007 applications. Discover how to Customize an application''s interface Quick-launch a VBA program Store and modify information Use VBA with the Ribbon Understand object-oriented programming Avoid runtime errors Table of ContentsIntroduction 1 Part I: An Overview of VBA 7 Chapter 1: Getting to Know VBA 9 Chapter 2: Your First VBA Program 33 Part II: Learning the Ropes 49 Chapter 3: Writing Structured VBA Programs 51 Chapter 4: Storing and Modifying Information 79 Chapter 5: Creating Structured Programs 111 Chapter 6: Trapping Errors and Squashing Bugs 133 Chapter 7: Interacting with the User 155 Part III: Expanding Your VBA Horizons 179 Chapter 8: Object-Oriented Programming 181 Chapter 9: Working with Arrays and Collections 205 Chapter 10: Working with Disk Files 229 Chapter 11: VBA Programming with XML 239 Part IV: Programming for Applications 255 Chapter 12: VBA Programming in Office 257 Chapter 13: VBA Programming in Word 277 Chapter 14: VBA Programming in Excel 305 Chapter 15: VBA Programming in Access 329 Chapter 16: Applications that Work Together 355 Part V: The Part of Tens 379 Chapter 17: Ten Kinds of VBA Resources 381 Chapter 18: Ten Ways to Update Your Old VBA Code Quickly 389 On the Web Bonus Chapter 1: VBA Programming in FrontPage BC1 Bonus Chapter 2: VBA Programming in Visio BC25 Bonus Chapter 3: Ten Really Cool Things You Can Do with VBA BC43 Index 397

    £22.09

  • Programming Mobile Devices

    John Wiley & Sons Inc Programming Mobile Devices

    Book SynopsisWith forewords by Jan Bosch, Nokia and Antero Taivalsaari, Sun Microsystems. Learn how to programme the mobile devices of the future! The importance of mobile systems programming has emerged over the recent years as a new domain in software development. The design of software that runs in a mobile device requires that developers combine the rules applicable in embedded environment; memory-awareness, limited performance, security, and limited resources with features that are needed in workstation environment; modifiability, run-time extensions, and rapid application development. Programming Mobile Devices is a comprehensive, practical introduction to programming mobile systems. The book is a platform independent approach to programming mobile devices: it does not focus on specific technologies, and devices, instead it evaluates the component areas and issues that are common to all mobile software platforms. This text will enable the designer to proTable of ContentsForeword by Jan Bosch. Foreword by Antero Taivalsaari. Preface. Acknowledgments. 1 Introduction. 1.1 Motivation. 1.2 Commonly Used Hardware and Software. 1.3 Development Process. 1.4 Chapter Overview. 1.5 Summary. 1.6 Exercises. 2 Memory Management. 2.1 Overview. 2.2 Strategies for Allocating Variables to Memory. 2.3 Design Patterns for Limited Memory. 2.4 Memory Management in Mobile Java. 2.5 Symbian OS Memory Management. 2.6 Summary. 2.7 Exercises. 3 Applications. 3.1 What Constitutes an Application? 3.2 Workflow for Application Development. 3.3 Techniques for Composing Applications. 3.4 Application Models in Mobile Java. 3.5 Symbian OS Application Infrastructure. 3.6 Summary. 3.7 Exercises. 4 Dynamic Linking. 4.1 Overview. 4.2 Implementation Techniques. 4.3 Implementing Plugins. 4.4 Managing Memory Consumption Related to Dynamically Linked Libraries. 4.5 Rules of Thumb for Using Dynamically Loaded Libraries. 4.6 Mobile Java and Dynamic Linking. 4.7 Symbian OS Dynamic Libraries. 4.8 Summary. 4.9 Exercises. 5 Concurrency. 5.1 Motivation. 5.2 Infrastructure for Concurrent Programming. 5.3 Faking Concurrency. 5.4 MIDP Java and Concurrency. 5.5 Symbian OS and Concurrency. 5.6 Summary. 5.7 Exercises. 6 Managing Resources. 6.1 Resource-Related Concerns in Mobile Devices. 6.2 Common Concerns. 6.3 MIDP Java. 6.4 Symbian OS. 6.5 Summary. 6.6 Exercises. 7 Networking. 7.1 Introduction. 7.2 Design Patterns for Networking Environment. 7.3 Problems with Networking Facilities and Implementations. 7.4 MIDP Java and Web Services. 7.5 Symbian OS and Bluetooth Facilities. 7.6 Summary. 7.7 Exercises. 8 Security. 8.1 Overview. 8.2 Secure Coding and Design. 8.3 Infrastructure for Enabling Secured Execution. 8.4 Security Features in MIDP Java. 8.5 Symbian OS Security Features. 8.6 Summary. 8.7 Exercises. References. Index.

    £59.80

  • Developing MultiAgent Systems with JADE Wiley

    John Wiley & Sons Inc Developing MultiAgent Systems with JADE Wiley

    Book SynopsisLearn how to employ JADE to build multi-agent systems! JADE (Java Agent DEvelopment framework) is a middleware for the development of applications, both in the mobile and fixed environment, based on the Peer-to-Peer intelligent autonomous agent approach.Trade Review"As a guide, this book is much better than online documentation because it's more comprehensive." (IEEE Distributed Systems Online) "…a comprehensive book that covers a wide range of topics related to agent-based programming with JADE." (Computing Reviews.com, October 1, 2007)Table of ContentsThe Authors ix List of Contributors xi Preface xiii 1 Introduction 1 2 Agent Technology Overview 3 2.1 About agents 3 2.2 The Foundation for Intelligent, Physical Agents (FIPA) 10 3 The JADE Platform 29 3.1 Brief history 29 3.2 JADE and the agents paradigm 30 3.3 JADE architecture 32 3.4 Compiling the software and launching the platform 34 3.5 JADE packages 37 3.6 Message transport service 39 3.7 Admin and debugging tools 42 4 Programming with JADE – Basic Features 51 4.1 Creating agents 51 4.2 Agent tasks 57 4.3 Agent communication 65 4.4 Agent discovery: the yellow pages service 72 4.5 Agents with a GUI 75 5 Programming with JADE – Advanced Features 77 5.1 Ontologies and content languages 77 5.2 Composing behaviours to create complex tasks 91 5.3 Threaded behaviours 99 5.4 Interaction protocols 100 5.5 Interacting with the AMS 107 5.6 Starting JADE from an external Java application 111 6 Agent Mobility 115 6.1 Agent mobility 115 6.2 Intra-platform mobility 117 6.3 Inter-platform mobility service 119 6.4 Usage of the JADE mobility services 121 7 JADE Internal Architecture 131 7.1 Distributed coordinated filters 131 7.2 Creating a JADE kernel service 136 8 Running JADE Agents on Mobile Devices 145 8.1 Main limitations of the mobile environment 145 8.2 The LEAP add-on 146 8.3 The split container execution mode 150 8.4 Developing MIDP agents 154 8.5 LEAP add-on advanced 161 9 Deploying a Fault-Tolerant JADE Platform 173 9.1 The main replication service 173 9.2 Attaching the DF to a relational DB 176 10 The JADE Web Services Integration Gateway 181 10.1 Web service technology 181 10.2 The utility of agent and Web service integration 182 10.3 The WSIG architecture 182 10.4 Installation requirements 184 10.5 WSIG installation procedure 185 10.6 WSIG operation 186 10.7 Example 1: Web service client invokes an agent service 193 10.8 Example 2: Agent service invokes a Web service 203 11 Agent-Society Configuration Manager and Launcher 207 11.1 Basic terms and concepts 207 11.2 Book-trading example 209 11.3 Distributed deployment 215 11.4 The XML meta-model 218 11.5 Inside the ASCML 220 11.6 Distributed monitoring, logging and debugging 222 11.7 Outlook 223 12 JADE Semantics Framework 225 12.1 FIPA-SL language 226 12.2 Interpretation engine 230 12.3 Basic semantic agent 231 12.4 Specializing the interpretation activity 234 12.5 Customizing belief handling 237 12.6 Handling Actions 240 12.7 Synthesizing standard and advanced use of the JSA 245 12.8 Conclusions 245 13 A Selection of Other Relevant Tools 247 13.1 The Bean Generator 247 13.2 Jademx 250 13.3 The Java Sniffer 251 13.4 JADEX – engineering goal-oriented agents 254 Appendix A Command Line Options 259 A.1 Syntax 259 A.2 Options to launch containers and main containers 260 A.3 General Options 261 A.4 Options of the JADE kernel-level services 262 A.5 Options related to MTPs 265 A.6 Options to configure the yellow page DF service 267 A.7 Options specific to the JADE-LEAP platform 268 A.8 Extending the command line with user-defined options 269 Appendix B List of Symbols and Acronyms 271 Bibliography 275 References 275 FIPA Specifications 278 Index 281

    £79.16

  • Developing Java Software

    John Wiley & Sons Inc Developing Java Software

    Book SynopsisThis significantly updated new edition of Developing Java Software is a thorough presentation of object-oriented design and programming concepts using the Java 5 programming language. The book takes the reader from the basics of using Java 5 to the creation of complete, object-oriented programs. Following an objects early' approach, the core elements of the Java language are covered, including the use of recently added features such as generics. The encouragement of the proper creation and use of classes, and the demonstration of the strategies used to create good quality code are at the core of this book. You will learn how Java programs work and how they can be designed and implemented in an organized and systematic way. In addition, the book addresses how a Java programming project should be managed and introduces the Ant build tool and the Subversion version control system. Testing has always been an important part of Developing Java Software. This edition provides new cTable of ContentsPreface. Part 1 Programming with Objects and Classes. 1 Introduction. 1.1 The Start. 1.2 A (Very!) Short History of Java. 1.3 Being at the Right Place at the Right Time. 1.4 What is Java? 1.5 Abstraction: The Critical Core of Programming. 1.6 The Java 2 Platform. 1.7 Java is Architecture Neutral. 1.8 Java and its Jokes. 1.9 Summary. 2 Programming Fundamentals. 2.1 Introduction. 2.2 Abstraction and the Big Picture. 2.3 Statement Sequences. 2.4 Iteration. 2.5 Selection. 2.6 State. 2.7 Writing a Simple Java Program. 2.8 Comments. 2.9 Output Statements. 2.10 Input Statements. 2.11 Interactive Programs. 2.12 Summary. Self-review Questions. Programming Exercises. Challenges. 3 Adding Structure. 3.1 Introduction. 3.2 Abstraction and Encapsulation. 3.3 Methods. 3.4 Writing Programs with Methods. 3.5 Procedural Decomposition. 3.6 Encapsulation. 3.7 Some More Operators. 3.8 Some More Control Statements. 3.9 Some More Example Programs. 3.10 Summary. 4 Introducing Containers. 4.1 Introduction. 4.2 Arrays. 4.3 Container Classes. 4.4 Data Files. 4.5 Summary. 5 Drawing Pictures. 5.1 Introduction. 5.2 Creating Drawings. 5.3 Properties of Drawings. 5.4 Drawing Text. 5.5 Example Programs. 5.6 Summary. 6 Classes and Objects. 6.1 Introduction. 6.2 Creating New Data Types. 6.3 Generic Classes. 6.4 Method Names and Scope. 6.5 Object Initialization. 6.6 Objects and References. 6.7 Static Variables and Methods. 6.8 Example Classes. 6.9 Programming with Classes and Objects. 6.10 Enumerated Types. 6.11 An Example—Creating Bridge Hands. 6.12 Summary. 7 Class Relationships. 7.1 Introduction. 7.2 Association. 7.3 Inheritance. 7.4 Reuse: Inheritance vs. Association. 7.5 Inheritance Hierarchies. 7.6 Interfaces and Type Conformance. 7.7 Comparing Objects for Equality. 7.8 Nested Classes. 7.9 Packages. 7.10 Class Matrix Revisited. 7.11 Reusability and Components. 7.12 Summary. 8 Exceptions. 8.1 What’s the Problem? 8.2 Kinds of Errors. 8.3 Representing Exceptions. 8.4 Throwing an Exception. 8.5 Catching Exceptions. 8.6 The Finally Block. 8.7 Plan to Use Exceptions. 8.8 Some Examples. 8.9 Summary. 9 Introducing Concurrency with Threads. 9.1 Doing More Than One Thing At Once. 9.2 Threads. 9.3 Using Threads. 9.4 Thread Synchronization. 9.5 Thread Scheduling. 9.6 Example Programs. 9.7 Summary. 10 User Interfaces. 10.1 Introduction. 10.2 Core GUI Concepts. 10.3 Text Input with a GUI. 10.4 A Very Simple Text Editor. 10.5 Menus. 10.6 Painting. 10.7 Summary. Part 2 The Process of Programming. 11 The Programming Process. 11.1 Introduction. 11.2 Why Object-oriented? 11.3 Development Tasks. 11.4 Testing Strategies. 11.5 UML Class, Object and Sequence Diagrams. 11.6 Practice and Experience. 11.7 Summary. 12 Unit Testing. 12.1 Introduction. 12.2 Unit Testing—A First Example. 12.3 The Core Principles of Unit Testing. 12.4 Test-driven Development. 12.5 The TestNG Framework. 12.6 Extending the Person Class. 12.7 Summary. 13 Test-driven Programming Strategies. 13.1 Introduction. 13.2 Getting Started—Searching for Files. 13.3 The GUI. 13.4 The Complete Searcher. 13.5 Summary. 14 Programming Tools. 14.1 Introduction. 14.2 Project Structure. 14.3 Ant—The Build Tool. 14.4 Version Control. 14.5 Integrated Development Environments. 14.6 Summary. Part 3 Case Studies in Developing Programs. 15 Introducing the Case Studies. 15.1 Introduction. 15.2 The Case Studies. 15.3 The Presentations of the Case Studies. 16 Contacts Book. 16.1 Introduction. 16.2 Wading In. 16.3 Stepping Back—Some Research. 16.4 Data Storage. 16.5 A GUI Design. 16.6 Displaying the List of Contacts. 16.7 Menus and Action. 16.8 More to Do. 17 Pedestrian Crossing Simulation. 17.1 Introduction. 17.2 The Initial Problem Specification. 17.3 The Initial Thinking. 17.4 A First Pass. 17.5 Getting GUI. 17.6 GUIer and GUIer. 17.7 Control… We Have a Problem. 17.8 Onward. 17.9 Summary. Part 4 The Java Programming Language in Detail. 18 A Java Language Reference. 18.1 Introduction. 18.2 Syntax and Semantics. 18.3 The Presentation. 18.4 The Example Programs. 18.5 Summary. 19 Variables, Types and Expressions. 19.1 Introduction. 19.2 Comments. 19.3 Identifiers. 19.4 Unicode Escapes. 19.5 Literals. 19.6 Types. 19.7 Scope. 19.8 Variables. 19.9 Expressions and Operators. 19.10 Source Files. 19.11 Summary. 20 Flow Control. 20.1 Introduction. 20.2 Selection. 20.3 Iteration. 20.4 Transfer Statements. 20.5 Recursion. 20.6 Summary. 21 Classes and Packages. 21.1 Introduction. 21.2 Classes. 21.3 Top-Level Classes. 21.4 Nested Classes. 21.5 Enumerated Types. 21.6 Packages. 21.7 Static Import. 21.8 Summary. 22 Inheritance and Interfaces. 22.1 Introduction. 22.2 Inheritance. 22.3 Interfaces. 22.4 Annotations. 22.5 Summary. 23 Exception Handling. 23.1 Introduction. 23.2 Summary. 24 Threads and Concurrency. 24.1 Introduction. 24.2 Class Thread. 24.3 Synchronized Methods. 24.4 Synchronized Statement. 24.5 Summary. Part 5 Endmatter. Appendix A Glossary. Appendix B The CRC Method. Appendix C The Online Documentation. Appendix D Running Java Programs. Appendix E Class Input. Appendix F Class FileInput. Appendix G Class FileOutput. Appendix H Class DrawFrame. Appendix I Class DrawPanel. Appendix J Bibliography. Index.

    £54.10

  • ObjectOriented Analysis and Design

    John Wiley & Sons Inc ObjectOriented Analysis and Design

    Book SynopsisCovering the breadth of this core topic, Object--Oriented Analysis and Design provides a thorough grounding in object--oriented concepts, the software development process, UML and multi--tier technologies.Trade Review"This is an excellent book...a book I greatly enjoyed reading..." (Visual Systems Journal, October 2005)Table of Contents1. Introduction. Part I: Setting the Scene. 2. Object Concepts. 3. Inheritance. 4. Type Systems. 5. Software Development Methodologies. Part II: Understanding the Problem. 6. Gathering Requirements. 7. Analyzing the Problem. Part III: Designing the Solution. 8. Designing the System Architecture. 9. Choosing Technologies. 10. Designing the Subsystems. 11. Reusable Design Patterns. 12. Specifying the Interfaces of Classes. 13. Continuous Testing. Appendix A: Ripple Summary. Appendix B: iCoot Case Study. Appendix C: Summary of UML Notation Used. Bibliography. Index.

    £43.65

  • Professional Java Native Interfaces with SWT

    Wiley Professional Java Native Interfaces with SWT

    Book SynopsisProfessional Java Native Interfaces takes a solutions--based approach to show how SWT/JFace works and how to harness these two interface--building tools. Each common component is discussed, providing useful, practical ideas and tips and techniques to make working easier.Table of ContentsAbout the Author. Introduction. Part I: Fundamentals. Chapter 1: Overview of Java UI Toolkits and SWT/Jface. Chapter 2: SWT/JFace Mechanisms. Chapter 3: Jump Start with SWT/Jface. Chapter 4: SWT Event Handling, Threading, and Displays. Chapter 5: Basic SWT Widgets. Chapter 6: Layouts. Part II: Design Basics. Chapter 7: Combos and Lists. Chapter 8: Text Controls. Chapter 9: Menus, Toolbars, Cool Bars, and Actions. Chapter 10: Tables. Chapter 11: Trees. Chapter 12: Dialogs. Part III: Dynamic Controls. Chapter 13: Scales, Sliders, and Progress Bars. Chapter 14: Other Important SWT Components. Chapter 15: SWT Graphics and Image Handling. Chapter 16: Drag and Drop and the Clipboard. Chapter 17: Printing. Chapter 18: JFace Windows and Dialogs. Part IV: Application Development. Chapter 19: JFace Wizards. Chapter 20: Creating a Text Editor with JFace Text. Chapter 21: Eclipse Forms. Chapter 22: Programming OLE in Windows. Chapter 23: Drawing Diagrams with Draw2D. Chapter 24: Sample Application. Index.

    £28.80

  • Puzzles for Programmers and Pros

    John Wiley & Sons Inc Puzzles for Programmers and Pros

    Book SynopsisPuzzles for Programmers and Pros.Table of ContentsAcknowledgments v Introduction xi Part I: Mind Games 1 We can't all be winners. 3 Sweet Tooth 4 Byzantine Bettors 6 A Touch of Luck 8 Information Gain 10 Reach for the Sky! 12 Pork Politics 14 Social Games 15 Escape Management 19 Flu Math 21 Imagination rules... 23 Whipping Ice 24 Optimal Jargon 29 Using Your Marbles 31 Flipping Colors 33 Scheduling Tradition 34 Fractal Biology 35 As Easy as Pie 37 Getting on the right side of luck 41 Lucky Roulette 42 Legal Logic 44 The Box Chip Game 47 Feedback Dividends 49 What are you thinking? 53 Number Clues 54 Mind Games 56 Refuse and Reveal 59 A Biting Maze 61 Mad Mix 63 Doing more with less 65 Dig That! 66 Preferential Romance 68 No Change for the Holidays 71 Quiet in the Depths 73 Solutions 74 Solution to Sweet Tooth 74 Solution to Byzantine Bettors 74 Solution to A Touch of Luck 76 Solution to Information Gain 78 Solution to Reach for the Sky! 78 Solution to Pork Politics 79 Solution to Social Games 80 Solution to Escape Management 81 Solution to Flu Math 83 Solution to Whipping Ice 84 Solution to Optimal Jargon 86 Solution to Using Your Marbles 88 Solution to Flipping Colors 89 Solution to Scheduling Tradition 90 Solution to Fractal Biology 91 Solution to As Easy as Pie 94 Solution to Lucky Roulette 96 Solution to Legal Logic 96 Solution to The Box Chip Game 97 Solution to Feedback Dividends 102 Solution to Number Clues 103 Solution to Mind Games 104 Solution to Refuse and Reveal 108 Solution to A Biting Maze 110 Solution to Mad Mix 112 Solution to Dig That! 113 Solution to Preferential Romance 116 Solution to No Change for the Holidays 117 Solution to Quiet in the Depths 118 Part II: The Secret of the Puzzle 121 Order the Ages 126 Urban Planning 128 Solution to Urban Planning 129 Finding a Schedule That Works 131 Solution to Finding a Schedule That Works 132 Picturing the Treasure 133 Solution to Picturing the Treasure 135 Sudoku 138 Solution to Sudoku 146 Number Encoding 147 Solution to Number Encoding 149 Selective Greed 150 Solution to Selective Greed 155 Sweet Packs 156 Solution to Sweet Packs 158 Revisiting a Traveling Salesman 159 Solution to Revisiting a Traveling Salesman 163 Overloaded Scheduling and Freezing Crystals 164 Solution to Overloaded Scheduling and Freezing Crystals 170 Wordsnakes 171 Solution to Wordsnakes 173 Maximal Friends 174 Solution to Maximal Friends 176 Winning at the Slots 177 Solution to Winning at the Slots 179 Understanding Dice 181 Solution to Understanding Dice 183 Bait and Switch 184 Solution to Bait and Switch 186 Part III: Faithful Foes 189 Index 221

    £14.39

  • Software Architecture

    John Wiley & Sons Inc Software Architecture

    Book SynopsisSoftware architecture is foundational to the development of large, practical software-intensive applications. This brand-new text covers all facets of software architecture and how it serves as the intellectual centerpiece of software development and evolution. Critically, this text focuses on supporting creation of real implemented systems. Hence the text details not only modeling techniques, but design, implementation, deployment, and system adaptation -- as well as a host of other topics -- putting the elements in context and comparing and contrasting them with one another. Rather than focusing on one method, notation, tool, or process, this new text/reference widely surveys software architecture techniques, enabling the instructor and practitioner to choose the right tool for the job at hand. Software Architecture is intended for upper-division undergraduate and graduate courses in software architecture, software design, component-based software engineering, and distributed systemsTable of Contents1 The Big Idea 1 1.1 The Power of Analogy: The Architecture of Buildings, 2 1.1.1 Limitations of the Analogy, 5 1.1.2 So, What’s the Big Idea?, 6 1.2 The Power and Necessity of Big Ideas: The Architecture of the Web, 7 1.3 The Power of Architecture in the Small: Architecture on the Desktop, 12 1.4 The Power of Architecture in Business: Productivity and Product Lines, 15 1.5 End Matter, 20 1.6 Review Questions, 21 1.7 Exercises, 21 1.8 Further Reading, 21 2 Architectures in Context: The Reorientation of Software Engineering 23 2.1 Fundamental Understandings, 24 2.2 Requirements, 25 2.3 Design, 29 2.3.1 Design Techniques, 31 2.4 Implementation, 33 2.4.1 Implementation Strategies, 35 2.5 Analysis and Testing, 38 2.6 Evolution and Maintenance, 40 2.7 Processes, 42 2.7.1 The Turbine Visualization, 43 2.7.2 Example Process Depictions, 49 2.8 End Matter, 52 2.9 Review Questions, 53 2.10 Exercises, 54 2.11 Further Reading, 55 3 Basic Concepts 57 3.1 Terminology, 58 3.1.1 Architecture, 58 3.1.2 Component, 68 3.1.3 Connector, 70 3.1.4 Configuration, 72 3.1.5 Architectural Style, 72 3.1.6 Architectural Pattern, 73 3.2 Models, 75 3.3 Processes, 75 3.4 Stakeholders, 79 3.5 End Matter, 79 3.6 Review Questions, 80 3.7 Exercises, 80 3.8 Further Reading, 81 4 Designing Architectures 83 4.1 The Design Process, 85 4.2 Architectural Conception, 87 4.2.1 Fundamental Conceptual Tools, 87 4.2.2 The Grand Tool: Refined Experience, 90 4.3 Refined Experience in Action: Styles and Architectural Patterns, 91 4.3.1 Domain Specific Software Architectures, 93 4.3.2 Architectural Patterns, 94 4.3.3 Introduction to Styles, 99 4.3.4 Simple Styles, 102 4.3.5 More Complex Styles, 124 4.3.6 Discussion: Patterns and Styles, 137 4.3.7 Design Recovery, 139 4.4 Architectural Conception in Absence of Experience: Unprecedented Design, 144 4.5 Putting it All Together: Design Processes Revisited, 149 4.5.1 Insights from Requirements, 150 4.5.2 Insights from Implementation, 151 4.6 End Matter, 152 4.7 Review Questions, 153 4.8 Exercises, 154 4.9 Further Reading, 154 5 Connectors 157 5.1 Connectors in Action: A Motivating Example, 159 5.2 Connector Foundations, 161 5.3 Connector Roles, 163 5.4 Connector Types and Their Variation Dimensions, 164 5.4.1 Procedure Call Connectors, 165 5.4.2 Event Connectors, 166 5.4.3 Data Access Connectors, 167 5.4.4 Linkage Connectors, 168 5.4.5 Stream Connectors, 169 5.4.6 Arbitrator Connectors, 170 5.4.7 Adaptor Connectors, 170 5.4.8 Distributor Connectors, 171 5.5 Example Connectors, 172 5.5.1 Event-Based Data Distribution Connectors, 173 5.5.2 Grid-Based Data Distribution Connectors, 174 5.5.3 Client-Server–Based Data Distribution Connectors, 175 5.5.4 P2P-Based Data Distribution Connectors, 176 5.6 Using the Connector Framework, 176 5.6.1 Selecting Appropriate Connectors, 177 5.6.2 Detecting Mismatches, 180 5.7 End Matter, 181 5.8 Review Questions, 182 5.9 Exercises, 183 5.10 Further Reading, 183 6 Modeling 185 6.1 Modeling Concepts, 186 6.1.1 Stakeholder-Driven Modeling, 186 6.1.2 Basic Architectural Concepts, 188 6.1.3 Elements of the Architectural Style, 189 6.1.4 Static and Dynamic Aspects, 190 6.1.5 Functional and Non-Functional Aspects, 191 6.2 Ambiguity, Accuracy, and Precision, 191 6.2.1 Ambiguity, 192 6.2.2 Accuracy and Precision, 192 6.3 Complex Modeling: Mixed Content and Multiple Views, 194 6.3.1 Views and Viewpoints, 194 6.3.2 Consistency among Views, 196 6.4 Evaluating Modeling Techniques, 198 6.5 Specific Modeling Techniques, 199 6.5.1 Generic Techniques, 199 6.5.2 Early Architecture Description Languages, 209 6.5.3 Domain- and Style-Specific ADLs, 221 6.5.4 Extensible ADLs, 229 6.6 When Systems Become Too Complex to Model, 242 6.7 End Matter, 243 6.8 Review Questions, 246 6.9 Exercises, 246 6.10 Further Reading, 246 7 Visualization 249 7.1 Visualization Concepts, 250 7.1.1 Canonical Visualizations, 250 7.1.2 Textual Visualizations, 251 7.1.3 Graphical Visualizations, 253 7.1.4 Hybrid Visualizations, 255 7.1.5 The Relationship between Visualizations and Views, 255 7.2 Evaluating Visualizations, 259 7.2.2 Constructing a Visualization, 261 7.2.3 Coordinating Visualizations, 264 7.2.4 Beyond Design: Using Visualization Dynamically, 266 7.3 Common Issues in Visualization, 268 7.3.1 Same Symbol, Different Meaning, 268 7.3.2 Differences without Meaning, 269 7.3.3 Decorations without Meaning, 269 7.3.4 Borrowed Symbol, Different Meaning, 270 7.4 Evaluating Visualization Techniques, 272 7.5 Techniques, 272 7.5.1 Textual Visualizations, 272 7.5.2 Informal Graphical Editors, 274 7.5.3 UML: The Unified Modeling Language, 276 7.5.4 Rapide, 280 7.5.5 The Labeled Transition State Analyzer (LTSA), 282 7.5.6 xADL 2.0, 284 7.6 End Matter, 288 7.7 Review Questions, 289 7.8 Exercises, 290 7.9 Further Reading, 290 8 Analysis 291 8.1 Analysis Goals, 295 8.1.1 Completeness, 295 8.1.2 Consistency, 296 8.1.3 Compatibility, 302 8.1.4 Correctness, 303 8.2 Scope of Analysis, 303 8.2.1 Component- and Connector-Level Analysis, 304 8.2.2 Subsystem- and System-Level Analysis, 305 8.2.3 Data Exchanged in the System or Subsystem, 307 8.2.4 Architectures at Different Abstraction Levels, 308 8.2.5 Comparison of Two or More Architectures, 310 8.3 Architectural Concern being Analyzed, 310 8.4 Level of Formality of Architectural Models, 312 8.5 Type of Analysis, 313 8.6 Level of Automation, 314 8.7 System Stakeholders, 315 8.8 Analysis Techniques, 317 8.8.1 Inspections and Reviews, 317 8.8.2 Model-Based Analysis, 322 8.8.3 Simulation-Based Analysis, 328 8.9 End Matter, 333 8.10 Review Questions, 334 8.11 Exercises, 335 8.12 Further Reading, 336 9 Implementation 337 9.1 Concepts, 338 9.1.1 The Mapping Problem, 338 9.1.2 Architecture Implementation Frameworks, 340 9.1.3 Evaluating Frameworks, 343 9.1.4 Middleware, Component Models, and Application Frameworks, 343 9.1.5 Building a New Framework, 346 9.1.6 Concurrency, 347 9.1.7 Generative Technologies, 348 9.1.8 Ensuring Architecture-to-Implementation Consistency, 349 9.2 Existing Frameworks, 350 9.2.1 Frameworks for the Pipe-and-Filter Architectural Style, 350 9.2.2 Frameworks for the C2 Architectural Style, 352 9.3 Examples, 360 9.3.1 Implementing Lunar Lander in the Pipe-and-Filter Style using the java.io Framework, 360 9.3.2 Implementing Lunar Lander in the C2-Style Using the Lightweight C2 Framework, 366 9.4 End Matter, 377 9.5 Review Questions, 378 9.6 Exercises, 378 9.7 Further Reading, 379 10 Deployment and Mobility 381 10.1 Overview of Deployment and Mobility Challenges, 385 10.2 Software Architecture and Deployment, 387 10.2.1 Basic Concepts, 388 10.2.2 Deployment Activities, 388 10.2.3 Tool Support, 402 10.3 Software Architecture and Mobility, 405 10.3.1 Basic Concepts, 405 10.3.2 Mobility Paradigms, 405 10.3.3 Challenges in Migrating Code, 406 10.4 End Matter, 408 10.5 Review Questions, 409 10.6 Exercises, 409 10.7 Further Reading, 410 11 Applied Architectures and Styles 413 11.1 Distributed and Networked Architectures, 414 11.1.1 Limitations of the Distributed Systems Viewpoint, 415 11.2 Architectures for Network-Based Applications, 416 11.2.1 The REpresentational State Transfer Style (REST), 416 11.2.2 Commercial Internet-Scale Applications, 422 11.3 Decentralized Architectures, 424 11.3.1 Shared Resource Computation: The Grid World, 425 11.3.2 Peer-to-Peer Styles, 426 11.3.3 Summary Notes on Latency and Agency, 432 11.4 Service-Oriented Architectures and Web Services, 433 11.5 Architectures from Specific Domains, 437 11.5.1 Robotics, 437 11.5.2 Wireless Sensor Networks, 443 11.6 End Matter, 443 11.7 Review Questions, 445 11.8 Exercises, 445 11.9 Further Reading, 446 12 Designing for Non-Functional Properties 447 12.1 Efficiency, 450 12.1.1 Software Components and Efficiency, 451 12.1.2 Software Connectors and Efficiency, 453 12.1.3 Architectural Configurations and Efficiency, 455 12.2 Complexity, 459 12.2.1 Software Components and Complexity, 460 12.2.2 Software Connectors and Complexity, 463 12.2.3 Architectural Configurations and Complexity, 464 12.3 Scalability and Heterogeneity, 467 12.3.1 Software Components and Scalability, 468 12.3.2 Software Connectors and Scalability, 471 12.3.3 Architectural Configurations and Scalability, 473 12.4 Adaptability, 475 12.4.1 Software Components and Adaptability, 475 12.4.2 Software Connectors and Adaptability, 476 12.4.3 Architectural Configurations and Adaptability, 477 12.5 Dependability, 478 12.5.1 Software Components and Dependability, 480 12.5.2 Software Connectors and Dependability, 480 12.5.3 Architectural Configurations and Dependability, 481 12.6 End Matter, 483 12.7 Review Questions, 484 12.8 Exercises, 484 12.9 Further Reading, 485 13 Security and Trust 487 13.1 Security, 489 13.2 Design Principles, 492 13.3 Architectural Access Control, 497 13.3.1 Access Control Models, 498 13.3.2 Connector-Centric Architectural Access Control, 499 13.4 Trust Management, 508 13.4.1 Trust, 509 13.4.2 Trust Model, 510 13.4.3 Reputation-Based Systems, 510 13.4.4 Architectural Approach to Decentralized Trust Management, 514 13.5 End Matter, 522 13.6 Review Questions, 523 13.7 Exercises, 523 13.8 Further Reading, 524 14 Architectural Adaptation 525 14.1 Concepts of Architecture-Centric Adaptation, 526 14.1.1 Sources and Motivations for Change, 526 14.1.2 Shearing Layers, 529 14.1.3 Structural Elements Subject to Change, 532 14.1.4 Change Agents and Context, 535 14.1.5 Architecture: The Central Abstraction, 539 14.2 A Conceptual Framework for Architectural Adaptation, 539 14.3 Techniques for Supporting Architecture-Centric Change, 542 14.3.1 Basic Techniques Corresponding to Activities of the Conceptual Framework, 542 14.3.2 Architectures/Styles that Support Adaptation, 551 14.3.3 The Special Problems of On-the-Fly and Autonomous Adaptation, 557 14.4 End Matter, 561 14.5 Review Questions, 562 14.6 Exercises, 563 14.7 Further Reading, 563 15 Domain-Specific Software Engineering 565 15.1 Domain-Specific Software Engineering in a Nutshell, 570 15.1.1 Similar Problems, Similar Solutions, 570 15.1.2 Viewing DSSE through the Prism of Domain, Business, and Technology, 573 15.2 Domain-Specific Software Architecture, 574 15.2.1 Domain Knowledge, 574 15.2.2 Canonical Requirements, 585 15.2.3 Canonical Solution Strategies—Reference Architectures, 588 15.2.4 Product Lines and Architecture, 591 15.2.5 Product-Line Concepts, 592 15.2.6 Specifying the Architecture of a Product Line, 594 15.2.7 Capturing Variations over Time, 559 15.2.8 Using Product Lines as Tools for What-If Analysis, 600 15.2.9 Implementing Product Lines, 602 15.2.10 Unifying Product Architectures with Different Intellectual Heritage, 604 15.2.11 Organizational Issues in Creating and Managing Product Lines, 606 15.3 DSSAs, Product Lines, and Architectural Styles, 606 15.4 DSSE Examples, 608 15.4.1 Koala and Consumer Electronics, 608 15.4.2 Software-Defined Radios, 611 15.5 End Matter, 616 15.6 Review Questions, 618 15.7 Exercises, 618 15.8 Further Reading, 619 16 Standards 621 16.1 What Are Standards?, 622 16.1.1 Why Use Standards?, 623 16.1.2 Drawbacks of Standards, 624 16.1.3 When to Adopt, 625 16.2 Specific Standards, 627 16.2.1 Conceptual Standards, 627 16.2.2 Notational Standards, 639 16.2.3 SysML, 641 16.2.4 Standard Tools, 645 16.2.5 Telelogic System Architect, 647 16.3 Process Standards, 648 16.3.1 Rational Unified Process, 648 16.3.2 Model-Driven Architecture, 650 16.4 End Matter, 651 16.5 Review Questions, 653 16.6 Exercises, 653 16.7 Further Reading, 654 17 People, Roles, and Teams 655 17.1 Who Are Software Architects?, 657 17.1.1 Architect as a Software Designer, 658 17.1.2 Architect as a Domain Expert, 658 17.1.3 Architect as a Software Technologist, 659 17.1.4 Architect as a Standards Compliance Expert, 660 17.1.5 Architect as a Software Engineering Economist, 661 17.1.6 Some Bad Habits, 661 17.2 What Do Software Architects Do?, 663 17.2.1 Develop Project Strategy, 663 17.2.2 Design Systems, 664 17.2.3 Communicate with Stakeholders, 664 17.2.4 Lead, 664 17.3 How Do Software Architects Work?, 665 17.3.1 Balance of Skills, 665 17.3.2 Allegiance to the Project, 666 17.3.3 Allegiance to the Organization, 667 17.3.4 Duration of Involvement, 668 17.3.5 Team Structure, 669 17.4 How Do Software Architects Relate to Other Stakeholders?, 669 17.4.1 Architects and Engineers, 670 17.4.2 Architects and Managers, 671 17.4.3 Other Stakeholders, 671 17.5 Remaining Challenges, 673 17.6 End Matter, 673 17.7 Review Questions, 674 17.8 Further Reading, 674 Bibliography 675 Index 691

    £138.65

  • Mastering UNIX Shell Scripting 2e Bash Bourne and

    John Wiley & Sons Inc Mastering UNIX Shell Scripting 2e Bash Bourne and

    Book SynopsisUNIX expert Randal K. Michael guides you through every detail of writing shell scripts to automate specific tasks. Each chapter begins with a typical, everyday UNIX challenge, then shows you how to take basic syntax and turn it into a shell scripting solution. Covering Bash, Bourne, and Korn shell scripting, this updated edition provides complete shell scripts plus detailed descriptions of each part. UNIX programmers and system administrators can tailor these to build tools that monitor for specific system events and situations, building solid UNIX shell scripting skills to solve real-world system administration problems.Table of ContentsAcknowledgments xxv Introduction xxvii Part One The Basics of Shell Scripting Chapter 1 Scripting Quick Start and Review 3 Chapter 2 24 Ways to Process a File Line-by-Line 67 Chapter 3 Automated Event Notification 131 Chapter 4 Progress Indicators Using a Series of Dots, a Rotating Line, or Elapsed Time 143 Part Two Scripts for Programmers, Testers, and Analysts Chapter 5 Working with Record Files 157 Chapter 6 Automated FTP Stuff 187 Chapter 7 Using rsync to Efficiently Replicate Data 219 Chapter 8 Automating Interactive Programs with Expect and Autoexpect 291 Chapter 9 Finding Large Files and Files of a Specific Type 325 Chapter 10 Process Monitoring and Enabling Pre-Processing, Startup, and Post-Processing Events 335 Chapter 11 Pseudo-Random Number and Data Generation 369 Chapter 12 Creating Pseudo-Random Passwords 401 Chapter 13 Floating-Point Math and the bc Utility 433 Chapter 14 Number Base Conversions 475 Chapter 15 hgrep: Highlighted grep Script 515 Chapter 16 Monitoring Processes and Applications 527 Part Three Scripts for Systems Administrators Chapter 17 Filesystem Monitoring 553 Chapter 18 Monitoring Paging and Swap Space 603 Chapter 19 Monitoring System Load 641 Chapter 20 Monitoring for Stale Disk Partitions (AIX-Specific) 677 Chapter 21 Turning On/Off SSA Identification Lights 697 Chapter 22 Automated Hosts Pinging with Notification of Failure 723 Chapter 23 Creating a System-Configuration Snapshot 741 Chapter 24 Compiling, Installing, Configuring, and Using sudo 777 Chapter 25 Print-Queue Hell: Keeping the Printers Printing 809 Chapter 26 Those Pesky Sarbanes-Oxley (SOX) Audits 851 Chapter 27 Using Dirvish with rsync to Create Snapshot-Type Backups 867 Chapter 28 Monitoring and Auditing User Keystrokes 935 Appendix A What’s on the Web Site 955 Index 977

    £54.62

  • C 2008 For Dummies For Dummies S

    John Wiley & Sons Inc C 2008 For Dummies For Dummies S

    Book SynopsisCompanion Web site has sample code and extra stuff Create console apps, discover delegates and events, and explore interfaces C# is a powerful programming language that has become a favorite tool of Visual Studio programmers, and this friendly guide will get you up to speed on the newest version -- painlessly.Table of ContentsIntroduction. Part I: Getting Started with C#. Chapter 1: Creating Your First C# Console Application. Part II: Basic C# Programming. Chapter 2: Living with Variability — Declaring Value-Type Variables. Chapter 3: Smooth Operators. Chapter 4: Getting into the Program Flow. Chapter 5: Lining Up Your Ducks with Collections. Chapter 6: Pulling Strings. Part III: Using Objects. Chapter 7: Showing Some Class. Chapter 8: We Have Our Methods. Chapter 9: Let Me Say This about this. Chapter 10: Object-Oriented Programming — What’s It All About? Part IV: Object-Oriented Programming. Chapter 11: Holding a Class Responsible. Chapter 12: Inheritance — Is That All I Get? Chapter 13: Poly-what-ism? Chapter 14: Interfacing with the Interface. Part V: Now Showing in C# 3.0. Chapter 15: Delegating Those Important Events. Chapter 16: Mary Had a Little Lambda Expression. Chapter 17: LINQing Up with Query Expressions. Part VI: The Part of Tens. Chapter 18: Ten Common Build Errors (And How to Fix Them). Index.

    £21.24

  • Introductory Programming with Simple Games

    John Wiley & Sons Inc Introductory Programming with Simple Games

    7 in stock

    Book SynopsisThis is an excellent resource for programmers who need to learn Java but aren't interested in just reading about concepts.Introduction toJava Programming with Gamesfollows a spiral approach to introduce concepts and enable them to write game programs as soon as they start. It includes code examples and problems that are easy to understand and motivates them to work through to find the solutions. This game-motivated presentation will help programmers quickly apply what they've learned in order to build their skills.Table of ContentsAcknowledgments. Forward. 1 Getting Started: What's in a Game? 1.1 Learning From Simple Computer Games. 1.2 What's In a Game? 1.3 Active and Passive: Rule Followers. 1.4 Running a Game. 1.5 Strategies: Winning a Game. 1.6 What Is in a Computer Program? 1.7 Summary. 1.8 Chapter Review Exercises. 2 Designing Your First Program. 2.1 BasketBall. 2.2 Java. 2.3 Creating Executable Programs. 2.4 Problem Solving. 2.5 FANG. 2.6 Finishing Up BasketBall. 2.7 Summary. 2.8 Chapter Review Exercises. 2.9 Programming Problems. 3 FANG: A Survey of Classes. 3.1 How Computers Work. 3.2 FANG Basics. 3.3 Examining a Public Protocol. 3.4 Summary. 3.5 Chapter Review Exercises. 3.6 Programming Problems. 4 Deciding What Happens: if. 4.1 A Simplest Game. 4.2 Computer Program (Game) Design. 4.3 Sequence. 4.4 Selection. 4.5 Finishing NewtonsApple. 4.6 Summary. 4.7 Chapter Review Exercises. 4.8 Programming Problems. 5 Components: Names, Types, Expressions. 5.1 Chance in Games. 5.2 One More Sprite: CompositeSprite. 5.3 Java Types. 5.4 Calculating with the Computer. 5.5 Naming Things in Java. 5.6 Finishing EasyDice. 5.7 Summary. 5.8 Chapter Review Exercises. 5.9 Programming Problems. 6 Rules: Methods, Parameters, and Design. 6.1 A Simple Arcade Game: SoloPong. 6.2 Top-down Design. 6.3 Delegation: Methods. 6.4 Expressions Redux. 6.5 Finishing Up SoloPong. 6.6 Summary. 6.7 Chapter Review Exercises. 6.8 Programming Problems. 7 Components Meet Rules: Classes. 7.1 Playing Together. 7.2 Abstraction: Defining New Types. 7.3 Finishing the Game. 7.4 Summary. 7.5 Chapter Review Exercises. 7.6 Programming Problems. 8 Collections: ArrayList and Iteration. 8.1 Flu Pandemic Simulator. 8.2 Console I/O: The System Object. 8.3 Iteration. 8.4 Collections: One and Many. 8.5 ArrayList Is an Object. 8.6 Finishing the Flu Simulation. 8.7 Summary. 8.8 Chapter Review Exercises. 8.9 Programming Problems. 9 Multidimensional Data Structures. 9.1 Rescue Mission. 9.2 Inheritance. 9.3 Multidimensional Collections. 9.4 Animation. 9.5 Finishing Rescue Mission. 9.6 Summary. 9.7 Chapter Review Exercises. 9.8 Programming Problems. 10 Scanner and String: Character Input. 10.1 Designing Hangman. 10.2 Starting Programs. 10.3 Different Iteration. 10.4 String Manipulation. 10.5 Reading Files. 10.6 Finishing Hangman. 10.7 Summary. 10.8 Chapter Review Exercises. 10.9 Programming Problems. 11 Console I/O: Games without FANG. 11.1 Another Dice Game: Pig. 11.2 Pure Console I/O. 11.3 Sorting a Collection. 11.4 Finishing Pig. 11.5 Summary. 11.6 Chapter Review Exercises. 11.7 Programming Problems. 12 More Streams: Separating Programs and Data. 12.1 Outsmarting the Player: Twenty Questions. 12.2 Reading and Writing Files. 12.3 Data-driven Programs. 12.4 Encoding Objects to Read or Write Them. 12.5 Finishing the Game. 12.6 Summary. 12.7 Chapter Review Exercises. 12.8 Programming Problems. 13 Lists of Lists and Collision Detection. 13.1 Designing BlockDrop. 13.2 Software Engineering: Managing Complexity. 13.3 When It's Safe to Move: Collision Detection. 13.4 Finishing BlockDrop. 13.5 Summary. 13.6 Chapter Review Exercises. 13.7 Programming Problems. 14 String Processing: Interactive Fiction. 14.1 Back to the Future: Interactive Fiction. 14.2 Escape from T-Hall. 14.3 Reading the Data. 14.4 Attribute-Value Pairs. 14.5 Incremental Development. 14.6 Finding a Match. 14.7 Making It a Real Game. 14.8 Summary. 14.9 Chapter Review Exercises. 14.10 Programming Problems. A Java Language Keywords. B References. C Java Templates. D FANG Color Names. Index.

    7 in stock

    £145.76

  • F for Scientists

    John Wiley & Sons Inc F for Scientists

    Book SynopsisThis book covers introductory material in the areas of functional programming,. NET and scientific computing. It covers the basic syntax and main aspects of the language without in depth computer science, making the information as accessible as possible and providing practically-important and enlightening examples.Trade Review"The hardbound book is a really solid treatment." (Computing Reviews, February 5, 2009)Table of ContentsForeword. Preface. Acknowledgments. List of Figures. List of Tables. Acronyms. 1. Introduction. 1.1 Programming guidelines. 1.2 A brief history of F#. 1.3 Benefits of F#. 1.4 Introducing F#. 1.5 Imperative programming. 1.6 Functional programming. 2. Program Structure. 2.1 Nesting. 2.2 Factoring. 2.3 Modules. 2.4 Objects. 2.5 Functional design patterns. 2.6 F# development. 3. Data Structures. 3.1 Algorithmic complexity. 3.2 Arrays. 3.3 Lists. 3.4 Sets. 3.5 Hash tables. 3.6 Maps. 3.7 Choosing a data structure. 3.8 Sequences. 3.9 Heterogeneous containers. 3.10 Trees. 4. Numerical Analysis. 4.1 Number representation. 4.2 Algebra. 4.3 Interpolation. 4.4 Quadratic solutions. 4.5 Mean and variance. 4.6 Other forms of arithmetic. 5. Input and Output. 5.1 Printing. 5.2 Generic printing. 5.3 Reading from and writing to files. 5.4 Serialization. 5.5 Lexing and parsing. 6. Simple Examples. 6.1 Functional. 6.2 Numerical. 6.3 String related. 6.4 List related. 6.5 Array related. 6.6 Higher-order functions. 7. Visualization. 7.1 Windows Forms. 7.2 Managed DirectX. 7.3 Tesselating objects into triangles. 8. Optimization. 8.1 Timing. 8.2 Profiling. 8.3 Algorithmic optimizations. 8.4 Lower-level optimizations. 9. Libraries. 9.1 Loading .NET libraries. 9.2 Charting and graphing. 9.3 Threads. 9.4 Random numbers. 9.5 Regular expressions. 9.6 Vectors and matrices. 9.7 Downloading from the Web. 9.8 Compression. 9.9 Handling XML. 9.10 Calling native libraries. 9.11 Fourier transform. 9.12 Mataprogramming. 10. Databases. 10.1 Protein data bank. 10.2 Web services. 10.3 Relational databases. 11. Interoperability. 11.1 Excel. 11.2 MATLAB. 11.3 Mathematica. 12. Complete Examples. 12.1 Fast Fourier transform. 12.2 Semi-circle law. 12.3 Finding n th.-nearest neighbors. 12.4 Logistic map. 12.5 Real-time particle dynamics. Appendix A: Troubleshooting. A.1 Value restriction. A.2 Mutable array contents. A.3 Negative literals. A.4 Accidental capture. A.5 Local and non-local variable definitions. A.6 Merging lines. A.7 Applications that do not die. A.8 Beware of "it". Glossary. Bibliography. Index.

    £79.16

  • The Comsoc Guide to Managing Telecommunications

    John Wiley & Sons Inc The Comsoc Guide to Managing Telecommunications

    Book SynopsisThis pocket guide provides an overview of the telecommunications environment as it has evolved over the past few years, illustrating the need for project management, the significance of project success to the companies, and the application of key project management processes within the telecom environment. Topics covered include: scope management, time management, cost management, procurement management, risk management, communications, quality, human resources, and Integration. It offers professionals a brief and accessible guide to managing telecommunication projects in the 21st century.Trade Review "This book is for those involved in line and staff functions at telecommunications companies who manage projects of any size. It will also be of interest to manufacturers and suppliers who serve the telecommunications industry, Internet providers, and companies that make products for the datacom industry. The book begins with an overview of the role of project management in the telecommunications industry, then gives advice on how to define the project scope. It outlines the procurement cycle, reviews issues of project risk, and addresses core aspects of project management such as building a schedule and budgeting." (Reference and Research Book News, February 2011) Table of ContentsPreface ix Acronyms xiii Chapter 1 Evolution of The Telecommunications Industry 1 Monopoly Status 1 Competition for Long Distance Services 3 Competition for Local Services 4 Competition Starts to Spread 5 Internet and Multimedia Disrupt the Basic Networks 6 A New Telecom Environment 7 What About the Future? 10 Chapter 2 Why is PM Important, Especially in Telecommunications? 11 Team Diversity 11 Resource Limitations 12 Time Constraints and Limitations 12 Risk Management 12 Ensuring Quality 12 Scope Definition 13 Project Objectives 15 What About Telecom Projects? 17 Tehnologies 17 Services 18 Companies in the Business 18 Regulatory Environment 18 Successful Business Model 19 Internal Corporate Structures 19 Customers 19 The Best Way to Market 20 Service Models 20 Network Architecture 20 Conclusion 21 Chapter 3 Project Management Basics 25 Integration 31 Project Scope Management 32 Time Management 32 Cost Management 32 Procurement Management 33 Risk Management 33 Communications Management 33 Human Resources Management 34 Quality Management 34 Chapter 4 Getting Started on Your Project 37 Why Do Projects? 37 The Requirements 41 What Happens Before the Team Arrives? 42 Setting Project Objectives 44 General Description, Skills Analysis, and Stakeholders, and Risk Analysis 44 Chapter 5 Who Is Involved? 45 Project Sponsor 45 Stakeholders 46 Management 48 Functional Managers 48 The Type of Company Hosting the Project 49 Chapter 6 Setting Business and Project Objectives 51 SMART Objectives 52 Specific 53 Measurable 53 Achievable 53 Realistic 54 Time-Bound 54 Chapter 7 What Is to be Included? 55 Building the Charter 55 Scope Description 56 Scope Management Plan 64 Where Will the Resources Come From? 70 The Work Breakdown Structure 71 Chapter 8 Going Outside the Company for Products and Services 77 Definition of Requirements 78 Solicitation 78 RFI 78 RFP 80 RFQ 83 Vendor Selection 83 Contract Management 83 Chapter 9 Managing Risk in Telecom Projects 85 Risk Management 85 Contingency is Expected to be Spent 94 Chapter 10 Who Tells What to Whom? 97 Communications Management 97 General Communications 98 Chapter 11 Creating the Timelines 103 Task Duration 103 Dependencies 104 Finish–Start Dependency 105 Start–Start Dependency 105 Finish–Finish Dependency 105 Start–Finish Dependency 105 Mandatory and Discretionary Dependencies 108 Lags and Leads 108 Project Logic Diagram 109 Critical Path 112 Forward Pass 114 Backward Pass 116 Float 117 Showing the Schedule 118 Including Contingency 118 Collapsing the Schedule 121 Effort-Driven and Duration-Driven Tasks 122 And then . . . 123 Chapter 12 Managing the Costs 125 Types of Costs 127 Profitability Measures 128 Estimating the Costs 130 Project Budgets and Planning the Project Cost 132 Managing the Costs 139 Project Communications Planning and the Communications Matrix 139 Status Reporting 141 Meetings 142 Preparing the Agenda 143 Inviting the Right People 144 Informing the People of Their Roles at the Meeting 146 Using the Meeting Time Effectively 147 Motivating People to Communicate Properly 150 Electronic Tools for Communications 150 Monitor and Control 151 Some Suggestions 152 Chapter 13 Managing the Developments 155 Chapter 14 Managing the People 163 Organization Structures for Projects 164 Management Styles 167 Autocratic 168 Paternalistic 169 Democratic 169 Laissez-faire 169 Leadership 170 Team Building 172 Motivation 174 Conflict 175 Learning Organization 177 Managing the Workloads of the Team Members 178 Some Suggestions for Good Participation and Good Management 178 Chapter 15 What Is the Gain? 181 Good People 181 Understanding the Value of the Product 182 Clear Project Objectives 182 Clearly Defined Scope 182 Good Planning 183 Strong Change Control 183 Well-Connected Team 184 Effective Communication 184 References 185 Index 187

    £53.96

  • Windows Powershell 2 for Dummies

    John Wiley & Sons Inc Windows Powershell 2 for Dummies

    1 in stock

    Book SynopsisPrepare for the future of Microsoft automation with this no-nonsense guide Windows PowerShell 2 is the scripting language that enables automation within the Windows operating system.Table of ContentsIntroduction 1 Part I: Getting a Bird’s-Eye View of PowerShell 2 9 Chapter 1: The Windows PowerShell Rap Sheet 11 Chapter 2: Customizing and Shortcutting the Environment 21 Chapter 3: A Pinch of Shell, a Pound of Power 37 Part II: PowerShell’s Basic Structure and Syntax 47 Chapter 4: Shelling Out Commands and Scripts 49 Chapter 5: When Dollars Turn into Variables 61 Chapter 6: A Bit of Logic to Save the Day 77 Chapter 7: Working on a Pipeline 89 Part III: Complex Data Description and Sharing 97 Chapter 8: Working with Windows Management Instrumentation 99 Chapter 9: Bringing Strings into the Limelight 117 Chapter 10: I’ll Take Numbers for $100, Please 137 Chapter 11: Grouping Data Using Arrays and Hash Tables 147 Chapter 12: Readin’ and Writin’ Files 159 Chapter 13: Going On a Date with PowerShell 175 Part IV: Controlling Where and How You Operate PowerShell 185 Chapter 14: Using Functions to Divide and Conquer 187 Chapter 15: PowerShell Ninjas: Running Jobs Remotely or in the Background 209 Chapter 16: Making Your Script Speak Different Languages 223 Chapter 17: Smashing Those Bugs 231 Part V: Real-World Windows Administration Using PowerShell 245 Chapter 18: Mission Control: All Systems Go 247 Chapter 19: Taming the Windows Registry 261 Chapter 20: Reaching Out to Active Directory 273 Chapter 21: PowerShell Lockdown 287 Chapter 22: Converting Your Old Scripts: Out with the Old, In with the New 301 Part VI: Configuring and Reporting Via PowerShell 317 Chapter 23: Controlling Your Network Configuration 319 Chapter 24: Managing Your Hardware 331 Chapter 25: Making Reporting Easy 345 Part VII: The Part of Tens 357 Chapter 26: The Ten Most Important Cmdlets 359 Chapter 27: Ten Common PowerShell Mistakes 365 Bonus Chapter 1: Handling Exceptions 1 Index 375

    1 in stock

    £20.39

  • UML 2 Semantics and Applications

    John Wiley & Sons Inc UML 2 Semantics and Applications

    Book SynopsisWith an up-to-date view of the results of UML semantics and the practical applications of semantics development, this book presents the only coherent and integrated account of the leading UML 2 semantics work and its applications.Table of ContentsCONTRIBUTORS. PREFACE. 1 INTRODUCTION TOTHE UNIFIED MODELING LANGUAGE ( Kevin Lano). 1.1 Introduction. 1.2 Class Diagrams. 1.3 Object Diagrams. 1.4 Use Cases. 1.5 State Machines. 1.6 Object Constraint Language. 1.7 Interaction Diagrams. 1.8 Activity Diagrams. 1.9 Deployment Diagrams. 1.10 Relationships Between UML Models. 1.11 Summary. 2 THE ROLE OF SEMANTICS ( Kevin Lano). 2.1 Introduction. 2.2 Different Semantic Approaches. 2.3 Applications of Semantics. 2.4 UML Semantics. 2.5 Applications of Semantics to UML. 2.6 Application of Semantics to the Use of UML. 2.7 Summary. 3 CONSIDERATIONS AND RATIONALE FOR A UML SYSTEM MODEL ( Manfred Broy, Maria Victoria Cengarle, Hans Gronniger, and Bernhard Rumpe). 3.1 Introduction. 3.2 General Approach to Semantics. 3.3 Structuring the Semantics of UML. 3.4 The Math Behind the System Model. 3.5 What Is the System Model? 3.6 Usage Scenarios. 3.7 Concluding Remarks. 4 DEFINITION OF THE SYSTEM MODEL ( Manfred Broy, Maria Victoria Cengarle, Hans Gronniger, and Bernhard Rumpe). 4.1 Introduction. 4.2 Notational Conventions. 4.3 Static Part of the System Model. 4.4 Control Part of the System Model. 4.5 Messages and Events in the System Model. 4.6 Object State. 4.7 Event-Based Object Behavior. 4.8 Timed Object Behavior. 4.9 The System Model Definition. Appendix A.1 State Transition Systems. Appendix A.2 Timed State Transition Systems. 5 FORMAL DESCRIPTIVE SEMANTICS OF UML AND ITS APPLICATIONS ( Hong Zhu, Lijun Shan, Ian Bayley, and Richard Amphlett). 5.1 Introduction. 5.2 Definition of Descriptive Semantics in FOPL. 5.3 The LAMBDES Tool. 5.4 Applications Using Model and Metamodel Analysis. 5.5 Conclusions. 6 AXIOMATIC SEMANTICS OF UML CLASS DIAGRAMS ( Kevin Lano). 6.1 Introduction. 6.2 Real-Time Action Logic. 6.3 Semantics of Class Diagrams. 6.4 Application of the Semantics. 6.5 Related Work. 6.6 Conclusions. 7 OBJECT CONSTRAINT LANGUAGE: METAMODELING SEMANTICS ( Anneke Kleppe). 7.1 Introduction. 7.2 Metamodeling Semantics. 7.3 OCL Semantics: Types and Values. 7.4 OCL Semantics: Expressions and Evaluations. 7.5 Summary and Conclusions. 8 AXIOMATIC SEMANTICS OF STATE MACHINES ( Kevin Lano and David Clark). 8.1 Introduction. 8.2 State Machine Semantics. 8.3 Extended State Machines. 8.4 Semantics for Extended State Machines. 8.5 Solutions for Semantic Problems. 8.6 Structured Behavior State Machines. 8.7 Related Work. 8.8 Summary. 9 INTERACTIONS ( Maria Victoria Cengarle, Alexander Knapp, and Heribert Muhlberger). 9.1 Introduction. 9.2 Trace-Based Semantics. 9.3 Alternative Semantics. 9.4 Implementation and Refinement. 9.5 Verification and Validation. 10 CO-ALGEBRAIC SEMANTIC FRAMEWORK FOR REASONING ABOUT INTERACTION DESIGNS ( Sun Meng and Luis S. Barbosa). 10.1 Introduction. 10.2 Why Co-algebras? 10.3 A Semantics for UML Sequence Diagrams. 10.4 New Sequence Diagrams from Old. 10.5 Coercions and Designs. 10.6 A Calculus for Interactions. 10.7 Concluding Remarks. 11 SEMANTICS OF ACTIVITY DIAGRAMS ( Kevin Lano). 11.1 Introduction. 11.2 Semantics of Structured Activities. 11.3 Semantics of Intermediate Activities. 11.4 Data Flow Semantics. 11.5 Semantic Analysis. 11.6 Related Work. 11.7 Summary. 12 VERIFICATION OF UML MODELS ( Kevin Lano). 12.1 Introduction. 12.2 Class Diagrams. 12.3 State Machine Diagrams. 12.4 Sequence Diagrams. 12.5 Summary. 13 DESIGN VERIFICATION WITH STATE INVARIANTS ( Emil Sekerinski). 13.1 Introduction. 13.2 Preliminaries. 13.3 Statechart Structure. 13.4 Configurations and Operations. 13.5 State Invariant Verification. 13.6 Accumulated Invariants. 13.7 Verification Condition Generation. 13.8 Priority Among Transitions. 13.9 Conclusions. 14 MODELTRANSFORMATION SPECIFICATION AND VERIFICATION ( Kevin Lano). 14.1 Introduction. 14.2 Categories of Model Transformation. 14.3 Specification of Model Transformations. 14.4 Refinement Transformations. 14.5 Quality Improvement Transformations. 14.6 Design Patterns. 14.7 Enhancement Transformations. 14.8 Implementation of Model Transformations. 14.9 Summary. INDEX .

    £109.76

  • Beginning Python

    John Wiley & Sons Inc Beginning Python

    Book SynopsisBeginning Python: Using Python 2.6 and Python 3.1 introduces this open source, portable, interpreted, object-oriented programming language that combines remarkable power with clear syntax. This book enables you to quickly create robust, reliable, and reusable Python applications by teaching the basics so you can quickly develop Web and scientific applications, incorporate databases, and master systems tasks on various operating systems, including Linux, MAC OS, and Windows. You''ll get a comprehensive tutorial that guides you from writing simple, basic Python scripts all the way through complex concepts, and also features a reference of the standard modules with examples illustrating how to implement features in the various modules. Plus, the book covers using Python in specific program development domains, such as XML, databases, scientific applications, network programming, and Web development.Table of ContentsIntroduction xxvii Part I: Dipping Your Toe into Python 1 Chapter 1: Programming Basics and Strings 3 How Programming is Different from Using a Computer 3 The First Steps 5 Beginning to Use Python — Strings 7 Putting Two Strings Together 11 Putting Strings Together in Different Ways 12 Summary 13 Exercises 14 Chapter 2: Numbers and Operators 15 Different Kinds of Numbers 15 Program Files 18 Using Numbers 24 Summary 28 Exercises 29 Chapter 3: Variables — Names for Values 31 Referring to Data — Using Names for Data 31 Using More Built-in Types 34 Other Common Sequence Properties 43 Summary 47 Exercises 48 Part II: Python Language and the Standard Library 49 Chapter 4: Making Decisions 51 Comparing Values — Are They the Same? 51 Doing the Opposite — Not Equal 53 Comparing Values — Which One Is More? 54 Reversing True and False 56 Looking for the Results of More Than One Comparison 56 Repetition 60 Handling Errors 65 Summary 67 Exercises 69 Chapter 5: Functions 71 Putting Your Program into Its Own File 71 Functions: Grouping Code under a Name 73 Layers of Functions 88 Summary 89 Exercises 90 Chapter 6: Classes and Objects 93 Thinking About Programming 93 Defining a Class 96 Summary 107 Exercises 108 Chapter 7: Organizing Programs 111 Modules 112 Packages 118 Modules and Packages 120 Basics of Testing Your Modules and Packages 124 Summary 124 Exercises 125 Chapter 8: Files and Directories 127 File Objects 127 Paths and Directories 131 Exceptions in os 132 Summary 142 Exercises 142 Chapter 9: Other Features of the Language 143 Lambda and Filter: Short Anonymous Functions 143 Map: Short-Circuiting Loops 144 Decisions within Lists — List Comprehension 145 Generating Iterators for Loops 146 Special String Substitution Using Dictionaries 148 Featured Modules 149 Summary 156 Exercises 156 Chapter 10: Building a Module 157 Exploring Modules 157 Creating Modules and Packages 162 Working with Classes 163 Finishing Your Modules 166 Creating a Whole Module 179 Installing Your Modules 183 Summary 187 Exercises 188 Chapter 11: Text Processing 189 Why Text Processing Is So Useful 189 Navigating the File System with the os Module 192 Working with Regular Expressions and the re Module 199 Summary 203 Exercises 204 Part III: Putting Python to Work 205 Chapter 12: Testing 207 Assertions 208 Test Cases and Test Suites 209 Test Fixtures 213 Putting It All Together with Extreme Programming 216 Formal Testing in the Software Life Cycle 224 Summary 225 Chapter 13: Writing a GUI with Python 227 GUI Programming Toolkits for Python 228 Tkinter Introduction 229 Creating GUI Widgets with Tkinter 229 Summary 238 Exercises 238 Chapter 14: Accessing Databases 239 Working with DBM Persistent Dictionaries 240 Working with Relational Databases 245 Using the Python Database APIs 252 Summary 262 Exercises 263 Chapter 15: Using Python for XML 265 What Is XML? 265 What Is a Schema/DTD? 268 Document Type Definitions 268 Schemas 270 XPath 272 HTML as a Subset of XML 272 XML Libraries Available for Python 274 What Is SAX? 274 Why Use SAX or DOM 275 SAX and DOM Parsers Available for Python 276 Intro to XSLT 280 What Is lxml? 280 Element Classes 281 Parsing with lxml 283 Summary 285 Exercises 285 Chapter 16: Network Programming 287 Understanding Protocols 289 Sending Internet E-mail 293 Retrieving Internet E-mail 305 Socket Programming 314 Introduction to Sockets 314 Binding to an External Hostname 316 Other Topics 332 Summary 334 Exercises 335 Chapter 17: Extension Programming with C 337 Extension Module Outline 338 Building and Installing Extension Modules 340 Passing Parameters from Python to C 342 Returning Values from C to Python 345 The LAME Project 346 The LAME Extension Module 350 Using Python Objects from C Code 363 Summary 366 Exercises 366 Chapter 18: Numerical Programming 367 Numbers in Python 368 Mathematics 374 Complex Numbers 378 Arrays 380 Summary 384 Exercises 384 Chapter 19: An Introduction to Django 387 What Are Frameworks and Why Would I Use One? 388 Other Features of Web Frameworks 388 Django — How It All Began 389 Understanding Django’s Architecture 390 Working with Templates 396 Using Templates and Views 398 Creating a Model: Creating an Application 403 Working with Models: Installation 404 Summary 405 Exercises 406 Chapter 20: Web Applications and Web Services 407 REST: The Architecture of the Web 408 HTTP: Real-World REST 411 CGI: Turning Scripts into Web Applications 417 HTML Forms’ Limited Vocabulary 422 Safety When Accessing Form Values 423 Building a Wiki 428 Web Services 441 REST Web Services 442 XML-RPC 456 SOAP 465 Documenting Your Web Service API 472 Choosing a Web Service Standard 478 Web Service Etiquette 479 Summary 480 Exercises 480 Chapter 21: Integrating Java with Python 481 Scripting within Java Applications 482 Comparing Python Implementations 483 Installing Jython 483 Running Jython 484 Running Jython on Your Own 488 Packaging Jython-Based Applications 488 Integrating Java and Jython 489 Testing from Jython 506 Embedding the Jython Interpreter 507 Handling Differences between C-Python and Jython 510 Summary 511 Exercises 512 Part IV: Appendices 513 Appendix A: Answers to the Exercises 515 Appendix B: Online Resources 549 Appendix C: What’s New in Python 3.1 553 Appendix D: Glossary 559 Index 569

    £27.20

  • Software Performance and Scalability A

    John Wiley and Sons Ltd Software Performance and Scalability A

    Book SynopsisGives the reader the ability to set up a proper test environment and conduct software performance and scalability tests. Uses many examples showing software performance problems and applicable solutions. Contains a number of case studies to assist the reader with comprehending all aspects of software performance and scalability.Table of ContentsPREFACE xv ACKNOWLEDGMENTS xxi Introduction 1 Performance versus Scalability 1 PART 1 THE BASICS 3 1. Hardware Platform 5 1.1 Turing Machine 6 1.2 von Neumann Machine 7 1.3 Zuse Machine 8 1.4 Intel Machine 9 1.5 Sun Machine 17 1.6 System Under Test 18 1.7 Odds Against Turing 30 1.8 Sizing Hardware 35 1.9 Summary 37 2. Software Platform 41 2.1 Software Stack 42 2.2 APIs 44 2.3 Multithreading 47 2.4 Categorizing Software 535 2.5 Enterprise Computing 55 2.6 Summary 63 3. Testing Software Performance and Scalability 65 3.1 Scope of Software Performance and Scalability Testing 67 3.2 Software Development Process 83 3.3 Defining Software Performance 86 3.4 Stochastic Nature of Software Performance Measurements 95 3.5 Amdahl’s Law 97 3.6 Software Performance and Scalability Factors 99 3.7 System Performance Counters 111 3.8 Software Performance Data Principles 129 3.9 Summary 131 PART 2 APPLYING QUEUING THEORY 135 4. Introduction to Queuing Theory 137 4.1 Queuing Concepts and Metrics 139 4.2 Introduction to Probability Theory 143 4.3 Applying Probability Theory to Queuing Systems 145 4.4 Queuing Models for Networked Queuing Systems 153 4.5 Summary 172 5. Case Study I: Queuing Theory Applied to SOA 177 5.1 Introduction to SOA 178 5.2 XML Web Services 179 5.3 The Analytical Model 181 5.4 Service Demand 183 5.5 MedRec Application 188 5.6 MedRec Deployment and Test Scenario 189 5.7 Test Results 191 5.8 Comparing the Model with the Measurements 198 5.9 Validity of the SOA Performance Model 200 5.10 Summary 200 6. Case Study II: Queuing Theory Applied to Optimizing and Tuning Software Performance and Scalability 205 6.1 Analyzing Software Performance and Scalability 207 6.2 Effective Optimization and Tuning Techniques 220 6.3 Balanced Queuing System 240 6.4 Summary 244 PART 3 APPLYING API PROFILING 249 7. Defining API Profiling Framework 251 7.1 Defense Lines Against Software Performance and Scalability Defects 252 7.2 Software Program Execution Stack 253 7.3 The PerfBasic API Profiling Framework 254 7.4 Summary 260 8. Enabling API Profiling Framework 263 8.1 Overall Structure 264 8.2 Global Parameters 265 8.3 Main Logic 266 8.4 Processing Files 266 8.5 Enabling Profiling 267 8.6 Processing Inner Classes 270 8.7 Processing Comments 271 8.8 Processing Method Begin 272 8.9 Processing Return Statements 274 8.10 Processing Method End 275 8.11 Processing Main Method 276 8.12 Test Program 277 8.13 Summary 279 9. Implementing API Profiling Framework 281 9.1 Graphics Tool—dot 281 9.2 Graphics Tool—ILOG 284 9.3 Graphics Resolution 286 9.4 Implementation 287 9.5 Summary 300 10. Case Study: Applying API Profiling to Solving Software Performance and Scalability Challenges 303 10.1 Enabling API Profiling 304 10.2 API Profiling with Standard Logs 313 10.3 API Profiling with Custom Logs 320 10.4 API Profiling with Combo Logs 325 10.5 Applying API Profiling to Solving Performance and Scalability Problems 333 10.6 Summary 337 APPENDIX A STOCHASTIC EQUILIBRIUM AND ERGODICITY 339 A.1 Basic Concepts 339 A.2 Classification of Random Processes 343 A.3 Discrete-Time Markov Chains 345 A.4 Continuous-Time Markov Chains 349 A.5 Stochastic Equilibrium and Ergodicity 351 A.6 Birth–Death Chains 357 APPENDIX B MEMORYLESS PROPERTY OF THE EXPONENTIAL DISTRIBUTION 361 APPENDIX C M/M/1 QUEUES AT STEADY STATE 363 C.1 Review of Birth–Death Chains 363 C.2 Utilization and Throughput 364 C.3 Average Queue Length in the System 365 C.4 Average System Time 365 C.5 Average Wait Time 366 INDEX 367

    £87.26

  • Professional XMPP Programming with JavaScript and

    John Wiley & Sons Inc Professional XMPP Programming with JavaScript and

    Book SynopsisCreate real-time, highly interactive apps quickly with the powerful XMPP protocol XMPP is a robust protocol used for a wide range of applications, including instant messaging, multi-user chat, voice and video conferencing, collaborative spaces, real-time gaming, data synchronization, and search.Table of ContentsIntroduction. Part I: XMPP Protocol and Architecture. Chapter 1: Getting to Know XMPP. Chapter 2: Designing XMPP Applications. Part II: The Applications. Chapter 3: Saying Hello: The First Application. Chapter 4: Exploring the XMPP Protocol: A Debugging Console. Chapter 5: Microblogging in Real Time: An Identica Client. Chapter 6: Talking with Friends: One‑on‑One Chat. Chapter 7: Exploring Services: Service Discovery and Browsing. Chapter 8: Group Chatting: A Multi‑User Chat Client. Chapter 9: Publishing and Subscribing: A Shared Sketch Pad Introduction. Chapter 10: Writing with Friends: A Collaborative Text Editor. Chapter 11: Playing Games: Head to Head Tic-Tac-Toe. Part III: Advanced Topics. Chapter 12: Getting Attached: Bootstrapping BOSH. Chapter 13: Deploying XMPP Applications. Chapter 14: Writing Strophe Plug-ins. Appendix A: Getting Started with jQuery. Appendix B: Setting Up a BOSH Connection Manager. Index.

    £40.38

  • Enterprise Software Architecture and Design

    John Wiley & Sons Inc Enterprise Software Architecture and Design

    Book SynopsisThis book fills a gap between high-level overview texts that are often too general and low-level detail oriented technical handbooks that lose sight the big picture.This book discusses SOA from the low-level perspective of middleware, various XML-based technologies, and basic service design.It also examines broader implications of SOA, particularly where it intersects with business process management and process modeling.Concrete overviews will be provided of the methodologies in those fields, so that students will have a hands-on grasp of how they may be used in the context of SOA.Table of ContentsList of Figures xv Acknowledgements xxiii 1. Introduction 1 References / 6 2. Middleware 7 2.1 Enterprise Information Systems / 7 2.2 Communication / 12 2.3 System and Failure Models / 21 2.4 Remote Procedure Call / 34 2.5 Message-Oriented Middleware / 42 2.6 Web Services and Service-Oriented Architecture (SOA) / 46 2.7 Cloud Computing / 52 2.8 Naming and Discovery / 55 2.9 Further Reading / 56 References / 57 3. Data Modeling 59 3.1 Entities and Relationships / 60 3.1.1 Concepts and Entities / 60 3.1.2 Attributes and Relationships / 61 3.1.3 Properties of Relationship Types / 65 3.1.4 Special Relationship Types / 69 3.2 XML Schemas / 74 3.3 Defining New Types / 79 3.3.1 Defining Simple Types / 79 3.3.2 Defining Complex Types / 82 3.4 Derived Types / 85 3.4.1 Derived Simple Types / 86 3.4.2 Derived Complex Types / 87 3.5 Document Hierarchies / 94 3.6 Relationship Types in XML Schemas / 98 3.7 Metaschemas and Metamodels / 100 3.8 Further Reading / 102 References / 102 4. Data Processing 104 4.1 Processing XML Data / 104 4.1.1 Tree Processing / 105 4.1.2 Schema Binding / 109 4.1.3 Stream Processing / 114 4.1.4 External Processing / 119 4.2 Query Languages and XQuery / 122 4.3 XML Databases / 134 4.3.1 Storage as Relational Tables / 135 4.3.2 Storage as Large Strings / 137 4.3.3 Native XML Storage / 137 4.4 Web Services / 138 4.4.1 SOAP: (not so) Simple Object Access Protocol / 139 4.4.2 WSDL: Web Services Description Language / 145 4.4.3 Web Service Policy / 155 4.5 Presentation Layer: JSON and JQUERY / 159 References / 166 5. Domain-Driven Architecture 167 5.1 Software Architecture / 167 5.2 Domain-Driven Design / 168 5.3 Application Frameworks / 175 5.4 Domain-Specific Languages (DSLs) / 180 5.5 An Example API for Persistent Domain Objects / 188 5.6 Domain-Driven Architecture / 197 5.7 Further Reading / 205 References / 205 6. Service-Oriented Architecture 207 6.1 Services and Procedures / 207 6.2 Service-Oriented Architecture (SOA) / 211 6.3 Service Design Principles / 216 6.4 Service-Oriented Architecture (SOA) Governance / 218 6.5 Standardized Service Contract / 221 6.5.1 Operations Contract / 222 6.5.2 Data Contract / 223 6.5.3 Policy Contract / 224 6.5.4 Binding Contract / 226 6.5.5 Contract Versioning / 231 6.6 Service Loose Coupling / 237 6.6.1 Motivation for Loose Coupling / 237 6.6.2 Contract Development / 239 6.6.3 Loose Coupling Patterns / 242 6.6.4 Cost of Loose Coupling / 246 6.7 Service Abstraction / 248 6.7.1 Platform Abstraction / 248 6.7.2 Protocol Abstraction / 249 6.7.3 Procedural Abstraction / 261 6.7.4 State Abstraction / 264 6.7.5 Data Abstraction / 269 6.7.6 Endpoint Abstraction / 278 6.8 Service Reusability / 278 6.8.1 Parameterization and Bounded Polymorphism / 279 6.8.2 Subtyping, Inheritance, and Contracts / 284 6.8.3 Does Service-Oriented Architecture Require Subtyping? / 289 6.8.4 Patterns for Service Reusability / 292 6.9 Service Autonomy / 299 6.9.1 Replicating Computation / 300 6.9.2 Replicating State / 303 6.9.3 Sources of Errors and Rejuvenation / 308 6.9.4 Caching / 313 6.10 Service Statelessness / 323 6.10.1 Contexts and Dependency Injection / 331 6.11 Service Discoverability / 336 6.11.1 Global Discovery / 336 6.11.2 Local Discovery / 337 6.11.3 Layered Naming / 347 6.12 Further Patterns / 351 6.13 Further Reading / 352 References / 352 7. Resource-Oriented Architecture 359 7.1 Representational State Transfer / 359 7.2 RESTful Web Services / 369 7.3 Resource-Oriented Architecture (ROA) / 379 7.4 Interface Description Languages / 387 7.4.1 Web Services Description Language (WSDL) / 387 7.4.2 Web Application Description Language (WADL) / 390 7.5 An Example Application Program Interface (API) for Resource-Oriented Web Services / 396 7.6 Hypermedia Control and Contract Conformance / 406 7.7 Concluding Remarks / 412 7.8 Further Reading / 414 References / 414 Appendix A: Introduction to Haskell 416 A.1 Types and Functions / 416 A.2 Type Classes and Functors / 425 A.3 Monads / 431 A.4 Further Reading / 436 References / 436 Appendix B: Time in Distributed Systems 437 B.1 What Time Is It? / 437 B.2 Time and Causality / 443 B.3 Applications of Logical and Vector Time / 450 B.3.1 Mutual Exclusion / 450 B.3.2 Quorum Consensus / 451 B.3.3 Distributed Logging / 456 B.3.4 Causal Message Delivery / 458 B.3.5 Distributed Snapshots / 463 B.4 Virtual Time / 468 B.5 Further Reading / 470 References / 470 Index 473

    £107.06

  • Music Navigation with Symbols and Layers

    John Wiley & Sons Inc Music Navigation with Symbols and Layers

    Book SynopsisMusic is much more than listening to audio encoded in some unreadable binary format. It is, instead, an adventure similar to reading a book and entering its world, complete with a story, plot, sound, images, texts, and plenty of related data with, for instance, historical, scientific, literary, and musicological contents. Navigation of this world, such as that of an opera, a jazz suite and jam session, a symphony, a piece from non-Western culture, is possible thanks to the specifications of new standard IEEE 1599, IEEE Recommended Practice for Defining a Commonly Acceptable Musical Application Using XML, which uses symbols in language XML and music layers to express all its multimedia characteristics. Because of its encompassing features, this standard allows the use of existing audio and video standards, as well as recuperation of material in some old format, the events of which are managed by a single XML file, which is human and machine readable - musical symbols have been reTable of ContentsPreface xi A Brief Introduction to the IEEE 1599 Standard xv Denis L. Baggi and Goffredo M. Haus List of Contributors xvii 1 THE IEEE 1599 STANDARD 1 Denis L. Baggi and Goffredo M. Haus 1.1 Introduction 1 Important Features of IEEE 1599 2 Examples of Applications of IEEE 1599 to Increase Music Enjoyment 3 Example I: A Score with Different Versions: “King Porter Stomp,” by Jelly Roll Morton 6 Example II: A Jazz Piece with No Score: “Crazy Rhythm” 6 Example III: An Opera Using the Composer’s Manuscript: Tosca, by Giacomo Puccini 9 Example IV: “Peaches en Regalia,” by Frank Zappa 9 Example V: “Il mio ben quando verrà,” by Giovanni Paisiello 12 Example VI: Brandenburg Concerto No. 3, by J.S. Bach 14 Example VII: Blues, a Didactical Tool to Learn Jazz Improvisation 14 Example VIII: “La caccia,” from Antonio Vivaldi’s Four Seasons (“Autumn”) 16 Example IX: A Musicological Fantasy: Tauhid, a Piece of Free Jazz 17 Conclusions 19 Acknowledgments 19 References 19 2 ENCODING MUSIC INFORMATION 21 Luca A. Ludovico 2.1 Introduction 21 2.2 Heterogeneous Descriptions of Music 22 2.3 Available File Formats 23 2.4 Key Features of IEEE 1599 24 2.5 Multi-Layer Structure 25 2.6 The Logic Layer 27 2.7 The Spine 29 2.7.1 Inter-layer and Intra-layer Synchronization 31 2.7.2 Virtual Timing and Position of Events 32 2.7.3 How to Build the Spine 33 References 36 3 STRUCTURING MUSIC INFORMATION 37 Adriano Baratè and Goffredo M. Haus 3.1 Introduction 37 3.2 Music Objects and Music Algorithms 38 3.2.1 Music Objects 38 3.2.2 Music Algorithms 38 3.2.3 Music Objects and Music Algorithms in IEEE 1599 39 3.3 Petri Nets 39 3.3.1 Petri Nets Extension: Hierarchy 40 3.3.2 Petri Nets Extension: Probabilistic Arc Weights 43 3.4 Music Petri Nets 44 3.4.1 Music Petri Nets in IEEE 1599 47 3.5 Music Analysis Using Music Petri Nets 47 3.6 Real-Time Interaction with Music Petri Nets 50 3.7 Conclusions 55 References 55 4 MODELING AND SEARCHING MUSIC COLLECTIONS 57 Alberto Pinto 4.1 Introduction 57 4.2 Describing Music Content 58 4.2.1 Music Search Engines 59 4.3 Music Description in IEEE 1599 60 4.3.1 Chord Grid Objects 64 4.3.2 Petri Net Objects 65 4.3.3 Analysis Objects 65 4.3.4 MIR Objects 66 4.4 The Theoretical Framework 66 4.4.1 The Model Perspective 66 4.4.2 Categories 67 4.5 Music Modeling and Retrieval in IEEE 1599 67 4.5.1 MIR Model 68 4.5.2 MIR Object 69 4.5.3 MIR Subobject 70 4.5.4 MIR Morphisms 70 4.5.5 MIR Features 70 4.5.6 GraphXML Encoding 71 4.6 Case Study: Graph-Categorial Modeling 72 4.6.1 Content Description 72 4.6.2 Content Retrieval 72 4.6.3 MIR Model 73 4.6.4 MIR Object and Subobject 74 4.6.5 MIR Morphism 75 References 75 5 FEATURE EXTRACTION AND SYNCHRONIZATION AMONG LAYERS 77 Antonello D’Aguanno, Goffredo M. Haus, and Davide A. Mauro 5.1 Introduction 77 5.2 Encoding Synchronization Information 78 5.2.1 Extraction of Synchronization Data 82 5.2.2 Case Study 84 5.3 Overview of Synchronization Algorithms 84 5.4 VarSi: An Automatic Score-to-Audio Synchronization Algorithm Based on the IEEE 1599 Format 88 5.4.1 Score Analysis 89 5.4.2 Audio Analysis 90 5.4.3 Decisional Phase 91 References 94 6 IEEE 1599 AND SOUND SYNTHESIS 97 Luca A. Ludovico 6.1 Introduction 97 6.2 From Music Symbols to Sound Synthesis 98 6.2.1 Translating Symbols into a Performance Language 99 6.2.2 Interpretative Models 105 6.2.3 Audio Rendering and Synchronization 106 6.3 From Sound Synthesis to Music Symbols 108 6.4 An Example of Encoding 110 6.5 Conclusions 113 References 114 7 IEEE 1599 APPLICATIONS FOR ENTERTAINMENT AND EDUCATION 115 Adriano Baratè and Luca A. Ludovico 7.1 Introduction 115 7.2 IEEE 1599 for Entertainment 116 7.3 IEEE 1599 for Music Education 117 7.4 IEEE 1599-Based Music Viewers 118 7.5 Case Studies 120 7.5.1 Navigating and Interacting with Music Notation and Audio 120 7.5.2 Musicological Analysis 121 7.5.3 Instrumental and Ear Training 126 7.5.4 IEEE 1599 Beyond Music 132 References 132 8 PAST PROJECTS USING SYMBOLS FOR MUSIC 133 Denis L. Baggi 8.1 Brief History 133 8.2 Bass Computerized Harmonization (BA-C-H) 134 8.3 Harmony Machine 135 8.4 NeurSwing, an Automatic Jazz Rhythm Section Built with Neural Nets 141 8.5 The Paul Glass System 145 8.6 A Program That Finds Notes and Type of a Chord and Plays It 147 8.7 Summary of Projects 149 8.8 Conclusions 150 References 150 Appendix A. Brief History of IEEE 1599 Standard, and Acknowledgments 151 Appendix B. IEEE Document-Type Defi nitions (DTDs) 153 Appendix C. IEEE 1599 Demonstration Videos 177 Index 179

    £75.56

  • Professional Test Driven Development with C

    John Wiley & Sons Inc Professional Test Driven Development with C

    Book SynopsisHands-on guidance to creating great test-driven development practice Test-driven development (TDD) practice helps developers recognize a well-designed application, and encourages writing a test before writing the functionality that needs to be implemented. This hands-on guide provides invaluable insight for creating successful test-driven development processes. With source code and examples featured in both C# and .NET, the book walks you through the TDD methodology and shows how it is applied to a real-world application. You'll witness the application built from scratch and details each step that is involved in the development, as well as any problems that were encountered and the solutions that were applied. Clarifies the motivation behind test-driven development (TDD), what it is, and how it works Reviews the various steps involved in developing an application and the testing that is involved prior to implementing the functionality DiscussesTable of ContentsINTRODUCTION xxv PART I: GETTING STARTED CHAPTER 1: THE ROAD TO TEST-DRIVEN DEVELOPMENT 3 The Classical Approach to Software Development 4 A Brief History of Software Engineering 4 From Waterfall to Iterative and Incremental 5 A Quick Introduction to Agile Methodologies 6 A Brief History of Agile Methodologies 6 The Principles and Practices of Test-Driven Development 7 The Concepts Behind TDD 8 TDD as a Design Methodology 8 TDD as a Development Practice 8 The Benefi ts of TDD 9 A Quick Example of the TDD Approach 10 Summary 17 CHAPTER 2: AN INTRODUCTION TO UNIT TESTING 19 What Is a Unit Test? 19 Unit Test Definition 20 What Is Not a Unit Test? 20 Other Types of Tests 22 A Brief Look at NUnit 24 What Is a Unit Test Framework? 24 The Basics of NUnit 25 Decoupling with Mock Objects 28 Why Mocking Is Important 28 Dummy, Fake, Stub, and Mock 29 Best and Worst Practices 35 A Brief Look at Moq 36 What Does a Mocking Framework Do? 36 A Bit About Moq 36 Moq Basics 36 Summary 40 CHAPTER 3: A QUICK REVIEW OF REFACTORING 41 Why Refactor? 42 A Project’s Lifecycle 42 Maintainability 43 Code Metrics 43 Clean Code Principles 45 OOP Principles 45 Encapsulation 45 Inheritance 46 Polymorphism 48 The SOLID Principles 49 The Single Responsibility Principle 50 The Open/Close Principle 50 The Liskov Substitution Principle 51 The Interface Segregation Principle 51 The Dependency Inversion Principle 52 Code Smells 52 What Is a Code Smell? 52 Duplicate Code and Similar Classes 53 Big Classes and Big Methods 54 Comments 55 Bad Names 56 Feature Envy 57 Too Much If/Switch 58 Try/Catch Bloat 59 Typical Refactoring 60 Extract Classes or Interfaces 60 Extract Methods 62 Rename Variables, Fields, Methods, and Classes 66 Encapsulate Fields 67 Replace Conditional with Polymorphism 68 Allow Type Inference 71 Summary 71 CHAPTER 4: TEST-DRIVEN DEVELOPMENT: LET THE TESTS BE YOUR GUIDE 73 It Starts with the Test 74 Red, Green, Refactor 76 The Three Phases of TDD 77 The Red Phase 77 The Green Phase 78 The Refactoring Phase 79 Starting Again 79 A Refactoring Example 79 The First Feature 80 Making the First Test Pass 83 The Second Feature 83 Refactoring the Unit Tests 85 The Third Feature 87 Refactoring the Business Code 88 Correcting Refactoring Defects 91 The Fourth Feature 93 Summary 94 CHAPTER 5: MOCKING EXTERNAL RESOURCES 97 The Dependency Injection Pattern 98 Working with a Dependency Injection Framework 99 Abstracting the Data Access Layer 108 Moving the Database Concerns Out of the Business Code 108 Isolating Data with the Repository Pattern 108 Injecting the Repository 109 Mocking the Repository 112 Summary 113 PART II: PUTTING BASICS INTO ACTION CHAPTER 6: STARTING THE SAMPLE APPLICATION 117 Defi ning the Project 118 Developing the Project Overview 118 Defi ning the Target Environment 119 Choosing the Application Technology 120 Defi ning the User Stories 120 Collecting the Stories 120 Defi ning the Product Backlog 122 The Agile Development Process 123 Estimating 124 Working in Iterations 124 Communication Within Your Team 126 Iteration Zero: Your First Iteration 127 Testing in Iteration Zero 127 Ending an Iteration 128 Creating the Project 129 Choosing the Frameworks 129 Defi ning the Project Structure 131 Organizing Project Folders 131 Creating the Visual Studio Solution 132 Summary 134 CHAPTER 7: IMPLEMENTING THE FIRST USER STORY 137 The First Test 138 Choosing the First Test 138 Naming the Test 139 Writing the Test 140 Implementing the Functionality 148 Writing the Simplest Thing That Could Possibly Work 148 Running the Passing Test 157 Writing the Next Test 158 Improving the Code by Refactoring 165 Triangulation of Tests 166 Summary 166 CHAPTER 8: INTEGRATION TESTING 169 Integrate Early; Integrate Often 170 Writing Integration Tests 171 How to Manage the Database 171 How to Write Integration Tests 172 Reviewing the ItemTypeRepository 173 Adding Ninject for Dependency Injection 174 Creating the Fluent NHibernate Confi guration 177 Creating the Fluent NHibernate Mapping 179 Creating the Integration Test 183 End-to-End Integration Tests 191 Keeping Various Types of Tests Apart 191 When and How to Run Integration Tests 191 Summary 192 PART III: TDD SCENARIOS CHAPTER 9: TDD ON THE WEB 197 ASP.NET Web Forms 197 Web Form Organization 198 ASPX Files 198 Code-Behind Files 198 Implementing Test-Driven Development with MVP and Web Forms 199 Working with the ASP.NET MVC 210 MVC 101 211 Microsoft ASP.NET MVC 3.0 212 Creating an ASP.NET MVC Project 212 Creating Your First Test 213 Making Your First Test Pass 215 Creating Your First View 216 Gluing Everything Together 217 Using the MVC Contrib Project 220 ASP.NET MVC Summarized 220 Working with JavaScript 220 JavaScript Testing Frameworks 221 Summary 226 CHAPTER 10: TESTING WINDOWS COMMUNICATION FOUNDATION SERVICES 227 WCF Services in Your Application 228 Services Are Code Too 228 Testing WCF Services 228 Refactoring for Testability 229 Introducing Dependency Injection to Your Service 231 Writing the Test 236 Stubbing the Dependencies 239 Verifying the Results 243 Trouble Spots to Watch 244 Summary 244 CHAPTER 11: TESTING WPF AND SILVERLIGHT APPLICATIONS 245 The Problem with Testing the User Interface 246 The MVVM Pattern 246 How MVVM Makes WPF/Silverlight Applications Testable 248 Bringing It All Together 261 Summary 263 PART IV: REQUIREMENTS AND TOOLS CHAPTER 12: DEALING WITH DEFECTS AND NEW REQUIREMENTS 267 Handling Change 268 Change Happens 268 Adding New Features 268 Addressing Defects 269 Starting with a Test 270 Changing the Code 272 Keeping the Tests Passing 276 Summary 276 CHAPTER 13: THE GREAT TOOL DEBATE 279 Test Runners 279 TestDriven.NET 280 Developer Express Test Runner 280 Gallio 281 Unit Testing Frameworks 282 MSTest 282 MbUnit 283 xUnit 284 Mocking Frameworks 285 Rhino Mocks 285 Type Mock 287 Dependency Injection Frameworks 289 Structure Map 289 Unity 291 Windsor 293 Autofac 294 Miscellaneous Useful Tools 295 nCover 295 PEX 295 How to Introduce TDD to Your Team 296 Working in Environments That Are Resistant to Change 297 Working in Environments That Are Accepting of Change 297 Summary 297 CHAPTER 14: CONCLUSIONS 299 What You Have Learned 299 You Are the Client of Your Code 300 Find the Solutions Step by Step 300 Use the Debugger as a Surgical Instrument 300 TDD Best Practices 301 Use Signifi cant Names 301 Write at Least One Test for One Unit of Functionality 301 Keep Your Mocks Simple 302 The Benefi ts of TDD 302 How to Introduce TDD in Your Team 303 Summary 304 APPENDIX: TDD KATAS 307 Working with TDD Katas 307 Share Your Work 308 OSIM User Stories 308 INDEX 311

    £27.99

© 2026 Book Curl

    • American Express
    • Apple Pay
    • Diners Club
    • Discover
    • Google Pay
    • Maestro
    • Mastercard
    • PayPal
    • Shop Pay
    • Union Pay
    • Visa

    Login

    Forgot your password?

    Don't have an account yet?
    Create account