PROFESSIONAL SCALA. INTRODUCTION... xv

Size: px
Start display at page:

Download "PROFESSIONAL SCALA. INTRODUCTION... xv"

Transcription

1

2

3 PROFESSIONAL SCALA INTRODUCTION xv CHAPTER 1 Language Features CHAPTER 2 Functional Programming CHAPTER 3 Java Compatibility CHAPTER 4 Simple Build Tool CHAPTER 5 Maven CHAPTER 6 Scala Style/Lint CHAPTER 7 Testing CHAPTER 8 Documenting Your Code with Scaladoc CHAPTER 9 Type System CHAPTER 10 Advanced Functional Programming CHAPTER 11 Concurrency CHAPTER 12 Scala.js INDEX

4

5 PROFESSIONAL Scala Aliaksandr Bedrytski Janek Bogucki Alessandro Lacava Matthew de Detrich Benjamin Neil

6 Professional Scala Published by John Wiley & Sons, Inc Crosspoint Boulevard Indianapolis, IN Copyright 2016 by John Wiley & Sons, Inc., Indianapolis, Indiana Published by John Wiley & Sons, Inc., Indianapolis, Indiana Published simultaneously in Canada ISBN: ISBN: (ebk) ISBN: (ebk) Manufactured in the United States of America No part of this publication may be reproduced, stored in a retrieval system or transmitted in any form or by any means, electronic, mechanical, photocopying, recording, scanning or otherwise, except as permitted under Sections 107 or 108 of the 1976 United States Copyright Act, without either the prior written permission of the Publisher, or authorization through payment of the appropriate per-copy fee to the Copyright Clearance Center, 222 Rosewood Drive, Danvers, MA 01923, (978) , fax (978) Requests to the Publisher for permission should be addressed to the Permissions Department, John Wiley & Sons, Inc., 111 River Street, Hoboken, NJ 07030, (201) , fax (201) , or online at Limit of Liability/Disclaimer of Warranty: The publisher and the author make no representations or warranties with respect to the accuracy or completeness of the contents of this work and specifically disclaim all warranties, including without limitation warranties of fitness for a particular purpose. No warranty may be created or extended by sales or promotional materials. The advice and strategies contained herein may not be suitable for every situation. This work is sold with the understanding that the publisher is not engaged in rendering legal, accounting, or other professional services. If professional assistance is required, the services of a competent professional person should be sought. Neither the publisher nor the author shall be liable for damages arising herefrom. The fact that an organization or Web site is referred to in this work as a citation and/or a potential source of further information does not mean that the author or the publisher endorses the information the organization or Web site may provide or recommendations it may make. Further, readers should be aware that Internet Web sites listed in this work may have changed or disappeared between when this work was written and when it is read. For general information on our other products and services please contact our Customer Care Department within the United States at (877) , outside the United States at (317) or fax (317) Wiley publishes in a variety of print and electronic formats and by print-on-demand. Some material included with standard print versions of this book may not be included in e-books or in print-on-demand. If this book refers to media such as a CD or DVD that is not included in the version you purchased, you may download this material at For more information about Wiley products, visit Library of Congress Control Number: Trademarks: Wiley, the Wiley logo, Wrox, the Wrox logo, Programmer to Programmer, and related trade dress are trademarks or registered trademarks of John Wiley & Sons, Inc. and/or its affiliates, in the United States and other countries, and may not be used without written permission. All other trademarks are the property of their respective owners. John Wiley & Sons, Inc., is not associated with any product or vendor mentioned in this book.

7 ABOUT THE AUTHORS ALIAKSANDR BEDRYTSKI is a passionate software engineer at Worldline Lyon, France. Even though it s been more than four years since he discovered Scala, he s still in love with the language and is trying to push its boundaries every day. In his spare time he s learning something new about space, physics, and bleeding edge technologies. He is currently working as a lead developer on a dataanalysis project featuring Hadoop, Spark-Scala, Hive, and other Big Data tools. JANEK BOGUCKI is a co-founder at Inferess Inc. and principal consultant (Machine Learning and Scala) at Combination One. He has a background in mathematics with an ongoing interest in computer science, data science, machine learning, graph theory, and development methodologies. He lives in Kent, UK with his wife Rebecca, son Theo, two cats, one dog, and a variable number of chickens. ALESSANDRO LACAVA holds a degree in telecommunications engineering. He s had extensive experience with OOP before becoming very passionate about functional programming. He is currently working as a lead designer and developer on different types of applications using mainly, but not only, Scala. He s also a contributor of pretty famous open source projects, such as shapeless and cats. MATTHEW DE DETRICH is a tech lead for Monetise Pty Ltd, where he primarily works on full stack applications with backends written in Scala. Matthew has a passion for designing, building, and integrating complex multi-domain systems from the ground up. In his spare time he is exploring new developments in the Scala space, such as Scala.js. BENJAMIN NEIL is a full stack engineer at AppThis LLC. He is a polyglot engineer who has had the privilege of working the past eight years making websites, services, and tools for amazing companies. He is obsessed with Scala, Vim, DevOps, and making services scale smoothly.

8 ABOUT THE TECHNICAL EDITORS JACOB PARK is a Scala and Typesafe enthusiast; he embraces Akka, Play, and Spark, all with Scala, to solve various problems regarding distributed systems with additional technologies such as Cassandra and Kafka. As a believer in open-source software, he contributes to various projects on GitHub related to Akka and Cassandra: When he s not working, Jacob can be found at various Scala and Typesafe conferences and meetups, either as an attendee or a presenter. ARIEL SCARPINELLI is a senior Java developer at VirtualMind and is a passionate developer with more than 15 years of professional experience. He currently leads four agile teams for a U.S.-based enterprise SaaS company. He has experience in a lot of languages but is currently focused on Java and JavaScript with some PHP and Python. RADU GANCEA is a software engineer and consultant at Eloquentix with a Java background (also C/ C++). He is involved in projects in the energy and advertising sectors. His current focus is on Scala and other JVM languages and frameworks.

9 CREDITS PROJECT EDITOR Charlotte Kughen TECHNICAL EDITORS Jacob Park Ariel Scarpinelli Radu Gancea PRODUCTION EDITOR Barath Kumar Rajasekaran COPY EDITOR Troy Mott MANAGER OF CONTENT DEVELOPMENT AND ASSEMBLY Mary Beth Wakefield PRODUCTION MANAGER Kathleen Wisor MARKETING MANAGER David Mayhew PROFESSIONAL TECHNOLOGY & STRATEGY DIRECTOR Barry Pruett BUSINESS MANAGER Amy Knies EXECUTIVE EDITOR Jim Minatel PROJECT COORDINATOR, COVER Brent Savage PROOFREADER Nancy Bell INDEXER Nancy Guenther COVER DESIGNER Wiley COVER IMAGE Sergey Nivens/Shutterstock

10

11 CONTENTS INTRODUCTION xv CHAPTER 1: LANGUAGE FEATURES 1 Static Types and Type Inference 2 Implicit Parameters, Conversions, and Their Resolution 3 Case Class, Tuples, and Case Object 5 Abstract Class, Traits, and Sealed 6 Pattern Matching 8 Statements Are Expressions 9 String Interpolation 9 Scala Collections, immutable and mutable 10 For Comprehension 12 Packages, Companion Objects, Package Objects, and Scoping 13 AnyVal, AnyRef, Any, and the Type Hierarchy 16 Summary 17 CHAPTER 2: FUNCTIONAL PROGRAMMING 19 Immutability 20 Pure Functions 22 Recursion 23 Higher-Order Functions 26 Core Collection Methods 27 Methods Returning a Collection 29 Methods Returning a Value 31 Currying and Partially Applied Functions 32 Null Handling (Option) 34 Strict versus Non-Strict Initialization 35 Summary 36 CHAPTER 3: JAVA COMPATIBILITY 37 Scala and Java Collections 37 Interfaces and Traits 40 Scala/Java Enumerations 42 Summary 43

12 CONTENTS CHAPTER 4: SIMPLE BUILD TOOL 45 Basic Usage 46 Project Structure 47 Single Project 47 Scopes 49 Custom Tasks 50 Dependencies 50 Resolvers 51 Advanced Usage 52 Advanced Dependencies 53 Testing in the Console 55 Release Management 56 Deploying to Sonatype 56 Packaging with SBT-Native-Packager 58 Creating a Docker Image 59 Common SBT Commands 60 Useful Plugins 61 Summary 62 CHAPTER 5: MAVEN 63 Getting Started with Maven and Scala 64 Introducing scala-maven-plugin 67 Adding Library Dependencies 70 Using the REPL 71 Getting Help 72 Running Tests 72 Joint Compilation with Java 74 Accelerating Compilation with Zinc 76 Summary 77 CHAPTER 6: SCALA STYLE/LINT 79 Scala with Style 79 Scaliform 81 Scapegoat 82 WartRemover 82 Scoverage 84 Summary 84 x

13 CONTENTS CHAPTER 7: TESTING 85 ScalaTest 86 Unit Tests 87 Integration Testing 87 Data-Driven Tests 88 Performance Testing 89 Acceptance Testing 90 Mocks 92 Load Testing 93 Summary 94 CHAPTER 8: DOCUMENTING YOUR CODE WITH SCALADOC 95 Why Document Your Code? 96 Revealing the Benefits 96 Bookending the Continuum 96 Choosing What to Document 96 Scaladoc Structure 97 Overall Layout 97 Index Pane 98 Content Pane 100 Invoking the Scaladoc Tool 106 Wiki Syntax 108 Formatting with Inline Wiki Syntax 108 Structuring with Block Elements 110 Linking 113 Locating Scaladoc 117 Tagging 117 Everyday Tagging 117 Tagging for Groups 123 Advanced Tagging 125 Invoking scaladoc: Additional Options 132 Integrating Scaladoc Creation with Your Project 133 Configuring Maven 133 Configuring SBT 134 Publishing Scaladoc 134 Tables and CSS 136 Summary 138 xi

14 CONTENTS CHAPTER 9: TYPE SYSTEM 139 What Is a Type System? 140 Static versus Dynamic Typing 140 What Static Type Systems Are Good For 141 What Dynamic Type Systems Are Good For 141 Scala s Unified Type System 141 Value Classes 143 Polymorphism 145 Subtype Polymorphism 145 Parametric Polymorphism 146 Ad Hoc Polymorphism 146 Bounds 149 Context Bounds 149 Upper and Lower Bounds 150 Variance 151 Other Niceties 155 Self-Type Annotations 155 Self-Recursive Types 158 Abstract Type Members 159 Dynamic Programming 161 Structural Types 161 Dynamic Trait 162 Summary 164 CHAPTER 10: ADVANCED FUNCTIONAL PROGRAMMING 165 Higher-Kinded Types 165 Functional Design Patterns 167 Functor 167 Applicative Functor 170 Monad 172 Semigroup 173 Monoid 174 Summary 176 CHAPTER 11: CONCURRENCY 179 Synchronize/Atomic Variables 181 Future Composition 184 Parallel Collections 187 Reactive Streams 192 STM 195 xii

15 CONTENTS Actors (Akka) 198 Spark 200 Summary 202 CHAPTER 12: SCALA.JS 205 Scala.js and Its Design 205 Getting Started: Scala.js with SBT 206 Scala.js Peculiarities 210 Webjars and Dealing with the Frontend Ecosytem 211 Summary 213 INDEX 215 xiii

Linux Command Line and Shell Scripting Bible. Third Edtion

Linux Command Line and Shell Scripting Bible. Third Edtion Linux Command Line and Shell Scripting Bible Third Edtion Linux Command Line and Shell Scripting BIBLE Third Edition Richard Blum Christine Bresnahan Linux Command Line and Shell Scripting Bible, Third

More information

7 Windows Tweaks. A Comprehensive Guide to Customizing, Increasing Performance, and Securing Microsoft Windows 7. Steve Sinchak

7 Windows Tweaks. A Comprehensive Guide to Customizing, Increasing Performance, and Securing Microsoft Windows 7. Steve Sinchak Take control of Windows 7 Unlock hidden settings Rev up your network Disable features you hate, for good Fine-tune User Account control Turbocharge online speed Master the taskbar and start button Customize

More information

Study Guide. Robert Schmidt Dane Charlton

Study Guide. Robert Schmidt Dane Charlton Study Guide Study Guide Robert Schmidt Dane Charlton Senior Acquisitions Editor: Kenyon Brown Development Editor: Candace English Technical Editors: Eric Biller and Brian Atkinson Production Editor: Christine

More information

Join the p2p.wrox.com. Wrox Programmer to Programmer. Beginning PHP 5.3. Matt Doyle

Join the p2p.wrox.com. Wrox Programmer to Programmer. Beginning PHP 5.3. Matt Doyle Join the discussion @ p2p.wrox.com Wrox Programmer to Programmer Beginning PHP 5.3 Matt Doyle Programmer to Programmer Get more out of WROX.com Interact Take an active role online by participating in our

More information

Professional ASP.NET 2.0 Databases. Thiru Thangarathinam

Professional ASP.NET 2.0 Databases. Thiru Thangarathinam Professional ASP.NET 2.0 Databases Thiru Thangarathinam Professional ASP.NET 2.0 Databases Professional ASP.NET 2.0 Databases Thiru Thangarathinam Professional ASP.NET 2.0 Databases Published by Wiley

More information

Mastering UNIX Shell Scripting

Mastering UNIX Shell Scripting Mastering UNIX Shell Scripting Bash, Bourne, and Korn Shell Scripting for Programmers, System Administrators, and UNIX Gurus Second Edition Randal K. Michael Wiley Publishing, Inc. Mastering UNIX Shell

More information

Beginning Web Programming with HTML, XHTML, and CSS. Second Edition. Jon Duckett

Beginning Web Programming with HTML, XHTML, and CSS. Second Edition. Jon Duckett Beginning Web Programming with HTML, XHTML, and CSS Second Edition Jon Duckett Beginning Web Programming with HTML, XHTML, and CSS Introduction............................................... xxiii Chapter

More information

Linux Command Line and Shell Scripting Bible

Linux Command Line and Shell Scripting Bible Linux Command Line and Shell Scripting Bible Richard Blum Wiley Publishing, Inc. Linux Command Line and Shell Scripting Bible Linux Command Line and Shell Scripting Bible Richard Blum Wiley Publishing,

More information

Beginning Transact-SQL with SQL Server 2000 and Paul Turley with Dan Wood

Beginning Transact-SQL with SQL Server 2000 and Paul Turley with Dan Wood Beginning Transact-SQL with SQL Server 2000 and 2005 Paul Turley with Dan Wood Beginning Transact-SQL with SQL Server 2000 and 2005 Beginning Transact-SQL with SQL Server 2000 and 2005 Paul Turley with

More information

Linux. The book you need to succeed! Boot up to Ubuntu, Fedora, KNOPPIX, Debian, opensuse, and 13 Other Distributions Edition.

Linux. The book you need to succeed! Boot up to Ubuntu, Fedora, KNOPPIX, Debian, opensuse, and 13 Other Distributions Edition. DVD and CD-ROM Included Run or install 18 different Linux distributions from the multi-boot DVD and CD-ROM! Christopher Negus Linux 2009 Edition Boot up to Ubuntu, Fedora, KNOPPIX, Debian, opensuse, and

More information

Implementing Security and Tokens: Current Standards, Tools, and Practices

Implementing  Security and Tokens: Current Standards, Tools, and Practices Implementing Email Security and Tokens: Current Standards, Tools, and Practices Sean Turner Russ Housley Wiley Publishing, Inc. Implementing Email Security and Tokens: Current Standards, Tools, and Practices

More information

Oracle PL/SQL. DUMmIES. by Michael Rosenblum and Dr. Paul Dorsey FOR

Oracle PL/SQL. DUMmIES. by Michael Rosenblum and Dr. Paul Dorsey FOR Oracle PL/SQL FOR DUMmIES by Michael Rosenblum and Dr. Paul Dorsey Oracle PL/SQL For Dummies Published by Wiley Publishing, Inc. 111 River Street Hoboken, NJ 07030-5774 www.wiley.com Copyright 2006 by

More information

Real-Time Optimization by Extremum-Seeking Control

Real-Time Optimization by Extremum-Seeking Control Real-Time Optimization by Extremum-Seeking Control Real-Time Optimization by Extremum-Seeking Control KARTIK B. ARIYUR MIROSLAV KRSTIĆ A JOHN WILEY & SONS, INC., PUBLICATION Copyright 2003 by John Wiley

More information

MCITP Windows Server 2008 Server Administrator Study Guide

MCITP Windows Server 2008 Server Administrator Study Guide MCITP Windows Server 2008 Server Administrator Study Guide Darril Gibson MCITP Windows Server 2008 Server Administrator Study Guide MCITP Windows Server 2008 Server Administrator Study Guide Darril Gibson

More information

Hands-On Oracle Application Express Security

Hands-On Oracle Application Express Security Hands-On Oracle Application Express Security BUILDING SECURE APEX APPLICATIONS Recx Hands-On Oracle Application Express Security: Building Secure Apex Applications Published by John Wiley & Sons, Inc.

More information

Agile Database Techniques Effective Strategies for the Agile Software Developer. Scott W. Ambler

Agile Database Techniques Effective Strategies for the Agile Software Developer. Scott W. Ambler Agile Database Techniques Effective Strategies for the Agile Software Developer Scott W. Ambler Agile Database Techniques Effective Strategies for the Agile Software Developer Agile Database Techniques

More information

Cloud Phone Systems. Andrew Moore. Making Everything Easier! Nextiva Special Edition. Learn:

Cloud Phone Systems. Andrew Moore. Making Everything Easier! Nextiva Special Edition. Learn: Making Everything Easier! Nextiva Special Edition Cloud Phone Systems Learn: What cloud phone systems are and how they can benefit your company About the many advantages a cloud phone system offers Features

More information

Beginning Visual Basic 2015

Beginning Visual Basic 2015 Beginning Visual Basic 2015 Introduction................................................... xxvii Chapter 1 Welcome to Visual Basic 2015................................ 1 Chapter 2 The Microsoft.NET Framework..............................

More information

Securing SCADA Systems. Ronald L. Krutz

Securing SCADA Systems. Ronald L. Krutz Securing SCADA Systems Ronald L. Krutz Securing SCADA Systems Securing SCADA Systems Ronald L. Krutz Securing SCADA Systems Published by Wiley Publishing, Inc. 10475 Crosspoint Boulevard Indianapolis,

More information

iwork DUMmIES 2ND EDITION FOR

iwork DUMmIES 2ND EDITION FOR iwork FOR DUMmIES 2ND EDITION iwork FOR DUMmIES 2ND EDITION by Jesse Feiler iwork For Dummies, 2nd Edition Published by John Wiley & Sons, Inc. 111 River Street Hoboken, NJ 07030-5774 www.wiley.com Copyright

More information

PHP & MySQL. Learn to: Janet Valade. Making Everything Easier! 4th Edition. Create well-formed PHP code that s compliant with PHP 4, 5, and 6

PHP & MySQL. Learn to: Janet Valade. Making Everything Easier! 4th Edition. Create well-formed PHP code that s compliant with PHP 4, 5, and 6 Making Everything Easier! 4th Edition PHP & MySQL Learn to: Create well-formed PHP code that s compliant with PHP 4, 5, and 6 Easily install and set up PHP and MySQL using XAMPP Choose a Web host and secure

More information

XSLT 2.0 and XPath 2.0

XSLT 2.0 and XPath 2.0 Wrox Programmer to Programmer TM Michael Kay Michael Kay has been working in the XML field since 1997. He became a member of the XSL Working Group soon after the publication of XSLT 1.0 and took over as

More information

COSO Enterprise Risk Management

COSO Enterprise Risk Management COSO Enterprise Risk Management COSO Enterprise Risk Management Establishing Effective Governance, Risk, and Compliance Processes Second Edition ROBERT R. MOELLER John Wiley & Sons, Inc. Copyright # 2007,

More information

OpenStack Cloud Application Development. Scott Adkins John Belamaric Vincent Giersch Denys Makogon Jason Robinson

OpenStack Cloud Application Development. Scott Adkins John Belamaric Vincent Giersch Denys Makogon Jason Robinson OpenStack Cloud Application Development Scott Adkins John Belamaric Vincent Giersch Denys Makogon Jason Robinson OpenStack Cloud Application Development Published by John Wiley & Sons, Inc. 10475 Crosspoint

More information

HASHING IN COMPUTER SCIENCE FIFTY YEARS OF SLICING AND DICING

HASHING IN COMPUTER SCIENCE FIFTY YEARS OF SLICING AND DICING HASHING IN COMPUTER SCIENCE FIFTY YEARS OF SLICING AND DICING Alan G. Konheim JOHN WILEY & SONS, INC., PUBLICATION HASHING IN COMPUTER SCIENCE HASHING IN COMPUTER SCIENCE FIFTY YEARS OF SLICING AND DICING

More information

COPYRIGHTED MATERIAL INDEX. Symbols

COPYRIGHTED MATERIAL INDEX. Symbols INDEX Symbols $ for printing variable value, 9 10 in Scaladoc query, 99... (wildcard operator), 8 @ (at sign), for tags, 117 -> syntax, 11 A abstract type members, 159 161 abstract value members, 105 Acceptance

More information

Ruby on Rails. Bible

Ruby on Rails. Bible Ruby on Rails Bible Ruby on Rails Bible Timothy Fisher Ruby on Rails Bible Published by Wiley Publishing, Inc. 10475 Crosspoint Boulevard Indianapolis, IN 46256 www.wiley.com Copyright 2008 by Wiley Publishing,

More information

Flash Lite. Mobile Development. Professional. Build Flash Applications for Mobile Devices. Jermaine G. Anderson. Join the p2p.wrox.

Flash Lite. Mobile Development. Professional. Build Flash Applications for Mobile Devices. Jermaine G. Anderson. Join the p2p.wrox. Join the discussion @ p2p.wrox.com Wrox Programmer to Programmer Professional Flash Lite Mobile Development Build Flash Applications for Mobile Devices Jermaine G. Anderson Programmer to Programmer Get

More information

DIFFERENTIAL EQUATION ANALYSIS IN BIOMEDICAL SCIENCE AND ENGINEERING

DIFFERENTIAL EQUATION ANALYSIS IN BIOMEDICAL SCIENCE AND ENGINEERING DIFFERENTIAL EQUATION ANALYSIS IN BIOMEDICAL SCIENCE AND ENGINEERING DIFFERENTIAL EQUATION ANALYSIS IN BIOMEDICAL SCIENCE AND ENGINEERING ORDINARY DIFFERENTIAL EQUATION APPLICATIONS WITH R William E. Schiesser

More information

Creating Web Pages. Learn to: Bud E. Smith. Making Everything Easier! 9th Edition. Design, build, and post a Web page

Creating Web Pages. Learn to: Bud E. Smith. Making Everything Easier! 9th Edition. Design, build, and post a Web page Making Everything Easier! 9th Edition Creating Web Pages Learn to: Design, build, and post a Web page Build pages using HTML, Web design software, and online tools Optimize photos, video, and audio for

More information

LEGITIMATE APPLICATIONS OF PEER-TO-PEER NETWORKS DINESH C. VERMA IBM T. J. Watson Research Center A JOHN WILEY & SONS, INC., PUBLICATION

LEGITIMATE APPLICATIONS OF PEER-TO-PEER NETWORKS DINESH C. VERMA IBM T. J. Watson Research Center A JOHN WILEY & SONS, INC., PUBLICATION LEGITIMATE APPLICATIONS OF PEER-TO-PEER NETWORKS DINESH C. VERMA IBM T. J. Watson Research Center A JOHN WILEY & SONS, INC., PUBLICATION LEGITIMATE APPLICATIONS OF PEER-TO-PEER NETWORKS LEGITIMATE APPLICATIONS

More information

COMPONENT-ORIENTED PROGRAMMING

COMPONENT-ORIENTED PROGRAMMING COMPONENT-ORIENTED PROGRAMMING COMPONENT-ORIENTED PROGRAMMING ANDY JU AN WANG KAI QIAN Southern Polytechnic State University Marietta, Georgia A JOHN WILEY & SONS, INC., PUBLICATION Copyright 2005 by John

More information

FileMaker. Pro 10. The book you need to succeed! Companion Web Site. Ray Cologon. Go from basics to full-scale development

FileMaker. Pro 10. The book you need to succeed! Companion Web Site. Ray Cologon. Go from basics to full-scale development Companion Web Site Example FileMaker Pro 10 application Demos, tips, and additional resources Ray Cologon FileMaker Pro 10 Go from basics to full-scale development Write your own FileMaker applications

More information

LEGITIMATE APPLICATIONS OF PEER-TO-PEER NETWORKS

LEGITIMATE APPLICATIONS OF PEER-TO-PEER NETWORKS LEGITIMATE APPLICATIONS OF PEER-TO-PEER NETWORKS DINESH C. VERMA IBM T. J. Watson Research Center A JOHN WILEY & SONS, INC., PUBLICATION LEGITIMATE APPLICATIONS OF PEER-TO-PEER NETWORKS LEGITIMATE APPLICATIONS

More information

WINDOWS 10. by Paul McFedries

WINDOWS 10. by Paul McFedries WINDOWS 10 by Paul McFedries WINDOWS 10 SIMPLIFIED Published by John Wiley & Sons, Inc. 10475 Crosspoint Boulevard Indianapolis, IN 46256 www.wiley.com Published simultaneously in Canada Copyright 2015

More information

Join the p2p.wrox.com. Wrox Programmer to Programmer. Professional ASP.NET 4. in C# and VB. Bill Evjen, Scott Hanselman, Devin Rader

Join the p2p.wrox.com. Wrox Programmer to Programmer. Professional ASP.NET 4. in C# and VB. Bill Evjen, Scott Hanselman, Devin Rader Join the discussion @ p2p.wrox.com Wrox Programmer to Programmer Professional ASP.NET 4 in C# and VB Bill Evjen, Scott Hanselman, Devin Rader Programmer to Programmer Get more out of wrox.com Interact

More information

MacBook Air PORTABLE GENIUS

MacBook Air PORTABLE GENIUS MacBook Air PORTABLE GENIUS MacBook Air PORTABLE GENIUS MacBook Air PORTABLE GENIUS by Paul McFedries MacBook Air Portable Genius Published by Wiley Publishing, Inc. 10475 Crosspoint Blvd. Indianapolis,

More information

TASK SCHEDULING FOR PARALLEL SYSTEMS

TASK SCHEDULING FOR PARALLEL SYSTEMS TASK SCHEDULING FOR PARALLEL SYSTEMS Oliver Sinnen Department of Electrical and Computer Engineering The University of Aukland New Zealand TASK SCHEDULING FOR PARALLEL SYSTEMS TASK SCHEDULING FOR PARALLEL

More information

Algorithms and Parallel Computing

Algorithms and Parallel Computing Algorithms and Parallel Computing Algorithms and Parallel Computing Fayez Gebali University of Victoria, Victoria, BC A John Wiley & Sons, Inc., Publication Copyright 2011 by John Wiley & Sons, Inc. All

More information

Microsoft SQL Server 2008 Integration Services

Microsoft SQL Server 2008 Integration Services Microsoft SQL Server 2008 Integration Services Problem Design Solution Erik Veerman Jessica M. Moss Brian Knight Jay Hackney Wiley Publishing, Inc. Microsoft SQL Server 2008 Integration Services Problem

More information

Windows. 7 Desktop Support and Administration. Real World Skills for MCITP Certification and Beyond. Darril Gibson

Windows. 7 Desktop Support and Administration. Real World Skills for MCITP Certification and Beyond. Darril Gibson Windows 7 Desktop Support and Administration Real World Skills for MCITP Certification and Beyond Darril Gibson Acquisitions Editor: Jeff Kellum Development Editor: Gary Schwartz Technical Editors: Troy

More information

SQL Server Administration. Beginning Microsoft. Chris Leiter, Dan Wood, Michael Cierkowski, Albert Boettger

SQL Server Administration. Beginning Microsoft. Chris Leiter, Dan Wood, Michael Cierkowski, Albert Boettger Beginning Microsoft SQL Server 2008 Administration Chris Leiter, Dan Wood, Michael Cierkowski, Albert Boettger Updates, source code, and Wrox technical support at www.wrox.com Programmer to Programmer

More information

OpenSolaris. The book you need to succeed! Nicholas A. Solter, Gerald Jelinek, and David Miner. Explore the OpenSolaris operating environment

OpenSolaris. The book you need to succeed! Nicholas A. Solter, Gerald Jelinek, and David Miner. Explore the OpenSolaris operating environment Nicholas A. Solter, Gerald Jelinek, and David Miner OpenSolaris Explore the OpenSolaris operating environment Master networking and systems administration Deploy web services using open source applications

More information

Relational Database Index Design and the Optimizers

Relational Database Index Design and the Optimizers Relational Database Index Design and the Optimizers DB2, Oracle, SQL Server, et al. Tapio Lahdenmäki Michael Leach A JOHN WILEY & SONS, INC., PUBLICATION Relational Database Index Design and the Optimizers

More information

Google Voice. Learn to: Bud E. Smith Chris Dannen. Making Everything Easier! Set up and use Google Voice

Google Voice. Learn to: Bud E. Smith Chris Dannen. Making Everything Easier! Set up and use Google Voice Making Everything Easier! Google Voice Learn to: Set up and use Google Voice Integrate Google Voice with other Google services such as Gmail and Google Chat Combine Google Voice with your existing phone

More information

BEGINNING SWIFT PROGRAMMING

BEGINNING SWIFT PROGRAMMING BEGINNING SWIFT PROGRAMMING INTRODUCTION................................................... xxiii CHAPTER 1 Introduction to Swift...................................... 1 CHAPTER 2 Data Types.............................................

More information

Modern Experimental Design

Modern Experimental Design Modern Experimental Design THOMAS P. RYAN Acworth, GA Modern Experimental Design Modern Experimental Design THOMAS P. RYAN Acworth, GA Copyright C 2007 by John Wiley & Sons, Inc. All rights reserved.

More information

Microprocessor Theory

Microprocessor Theory Microprocessor Theory and Applications with 68000/68020 and Pentium M. RAFIQUZZAMAN, Ph.D. Professor California State Polytechnic University Pomona, California and President Rafi Systems, Inc. WILEY A

More information

Windows 10 Anniversary Update. Paul McFedries

Windows 10 Anniversary Update. Paul McFedries Windows 10 Anniversary Update Paul McFedries Teach Yourself VISUALLY Windows 10 Anniversary Update Published by John Wiley & Sons, Inc. 10475 Crosspoint Boulevard Indianapolis, IN 46256 www.wiley.com Published

More information

Practical Database Programming with Visual Basic.NET

Practical Database Programming with Visual Basic.NET Practical Database Programming with Visual Basic.NET IEEE Press 445 Hoes Lane Piscataway, NJ 08854 IEEE Press Editorial Board Lajos Hanzo, Editor in Chief R. Abari M. El-Hawary S. Nahavandi J. Anderson

More information

Richard Wentk. Cocoa. Developer Reference.

Richard Wentk. Cocoa. Developer Reference. Richard Wentk Cocoa Developer Reference www.wileydevreference.com Cocoa Richard Wentk Cocoa Published by Wiley Publishing, Inc. 10475 Crosspoint Boulevard Indianapolis, IN 46256 www.wiley.com Copyright

More information

ffi rs.indd 10/07/2015 Page i Access 2016 Bible

ffi rs.indd 10/07/2015 Page i Access 2016 Bible Access 2016 Bible Access 2016 BIBLE Michael Alexander Dick Kusleika Access 2016 Bible Published by John Wiley & Sons, Inc. 10475 Crosspoint Boulevard Indianapolis, IN 46256 www.wiley.com Copyright 2016

More information

IC Internet and Computing Core Certification Living Online. Study Guide

IC Internet and Computing Core Certification Living Online. Study Guide IC Internet and Computing 3 Core Certification Living Online Study Guide IC Internet and Computing 3 Core Certification Living Online Study Guide Ciprian Adrian Rusen Senior Acquisitions Editor: Ken Brown

More information

Microsoft Office Simply the Easiest Way to Learn. Kate Shoup

Microsoft Office Simply the Easiest Way to Learn. Kate Shoup Microsoft Office 200 Simply the Easiest Way to Learn Kate Shoup OFFICE 200 by Kate Shoup OFFICE 200 SIMPLIFIED Published by Wiley Publishing, Inc. 0475 Crosspoint Boulevard Indianapolis, IN 46256 www.wiley.com

More information

WIRELESS SENSOR NETWORKS A Networking Perspective Edited by Jun Zheng Abbas Jamalipour A JOHN WILEY & SONS, INC., PUBLICATION WIRELESS SENSOR NETWORKS IEEE Press 445 Hoes Lane Piscataway, NJ 08854 IEEE

More information

ASP.NET 3.5 SP1. In C# and VB. Professional. Covers. Service Pack 1. Bill Evjen, Scott Hanselman, Devin Rader

ASP.NET 3.5 SP1. In C# and VB. Professional. Covers. Service Pack 1. Bill Evjen, Scott Hanselman, Devin Rader Wrox Programmer to Programmer TM Professional ASP.NET 3.5 SP1 In C# and VB Covers Service Pack 1 Bill Evjen, Scott Hanselman, Devin Rader CD-ROM includes the full book in PDF format Programmer to Programmer

More information

MODERN MULTITHREADING

MODERN MULTITHREADING MODERN MULTITHREADING Implementing, Testing, and Debugging Multithreaded Java and C++/Pthreads/Win32 Programs RICHARD H. CARVER KUO-CHUNG TAI A JOHN WILEY & SONS, INC., PUBLICATION MODERN MULTITHREADING

More information

Excel 2016 Formulas. Michael Alexander Dick Kusleika

Excel 2016 Formulas. Michael Alexander Dick Kusleika Excel 2016 Formulas Excel 2016 Formulas Michael Alexander Dick Kusleika Excel 2016 Formulas Published by John Wiley & Sons, Inc. 10475 Crosspoint Boulevard Indianapolis, IN 46256 www.wiley.com Copyright

More information

MCTS. Microsoft Windows 7 Configuration STUDY GUIDE. William Panek. Covers All Objectives for Exam Exam

MCTS. Microsoft Windows 7 Configuration STUDY GUIDE. William Panek. Covers All Objectives for Exam Exam Covers All Objectives for Exam 70-680 Includes Real-World Scenarios, Hands-On Exercises, and Leading-Edge Exam Prep Software Featuring: Custom Test Engine Hundreds of Sample Questions Electronic Flashcards

More information

OS X El CapitanTM. Paul McFedries

OS X El CapitanTM. Paul McFedries OS X El CapitanTM Paul McFedries Teach Yourself VISUALLY OS X El Capitan Published by John Wiley & Sons, Inc. 10475 Crosspoint Boulevard Indianapolis, IN 46256 www.wiley.com Published simultaneously in

More information

Professional Visual Studio 2013

Professional Visual Studio 2013 Professional Visual Studio 2013 Introduction.... xliii Part I Integrated Development Environment Chapter 1 A Quick Tour....3 Chapter 2 The Solution Explorer, Toolbox, and Properties.... 15 Chapter 3 Options

More information

Functional Programming in R

Functional Programming in R Functional Programming in R Advanced Statistical Programming for Data Science, Analysis and Finance Thomas Mailund Functional Programming in R: Advanced Statistical Programming for Data Science, Analysis

More information

Dreamweaver CS4. A Complete Training Package! Adobe. Full-color, step-by-step instructional book Video training from Adobe Certified Experts

Dreamweaver CS4. A Complete Training Package! Adobe. Full-color, step-by-step instructional book Video training from Adobe Certified Experts Adobe Dreamweaver CS4 A Complete Training Package! Full-color, step-by-step instructional book Video training from Adobe Certified Experts Tutorials and lesson files on companion DVD Jeremy Osborn & Aquent

More information

ASP.NET MVC 1.0. Website Programming. Nick Berardi, Al Katawazi, Marco Bellinaso. Wrox Programmer to Programmer TM

ASP.NET MVC 1.0. Website Programming. Nick Berardi, Al Katawazi, Marco Bellinaso. Wrox Programmer to Programmer TM Wrox Programmer to Programmer TM ASP.NET MVC 1.0 Website Programming Nick Berardi, Al Katawazi, Marco Bellinaso Updates, source code, and Wrox technical support at www.wrox.com Programmer to Programmer

More information

Professional C# 6 and.net Core 1.0

Professional C# 6 and.net Core 1.0 Professional C# 6 and.net Core 1.0 Introduction..................................................... li Part I The C# Language Chapter 1.NET Application Architectures.............................. 3 Chapter

More information

Microsoft Virtualization SECRETS

Microsoft Virtualization SECRETS Microsoft Virtualization SECRETS Microsoft Virtualization SECRETS DO WHAT YOU NEVER THOUGHT POSSIBLE WITH MICROSOFT VIRTUALIZATION John Savill Executive Editor: Carol Long Project Editor: Katherine Burt

More information

IP MULTICAST WITH APPLICATIONS TO IPTV AND MOBILE DVB-H

IP MULTICAST WITH APPLICATIONS TO IPTV AND MOBILE DVB-H IP MULTICAST WITH APPLICATIONS TO IPTV AND MOBILE DVB-H Daniel Minoli A JOHN WILEY & SONS, INC., PUBLICATION IP MULTICAST WITH APPLICATIONS TO IPTV AND MOBILE DVB-H IP MULTICAST WITH APPLICATIONS TO

More information

Designing Security Architecture Solutions Jay Ramachandran Wiley Computer Publishing John Wiley & Sons, Inc. Designing Security Architecture Solutions Designing Security Architecture Solutions Jay Ramachandran

More information

IC Internet and Computing Core Certification Computing Fundamentals. Study Guide

IC Internet and Computing Core Certification Computing Fundamentals. Study Guide IC Internet and Computing 3 Core Certification Computing Fundamentals Study Guide IC Internet and Computing 3 Core Certification Computing Fundamentals Study Guide Ciprian Adrian Rusen Senior Acquisitions

More information

Microsoft. Access by Paul McFedries

Microsoft. Access by Paul McFedries Microsoft Access 2013 by Paul McFedries Teach Yourself VISUALLY Access 2013 Published by John Wiley & Sons, Inc. 10475 Crosspoint Boulevard Indianapolis, IN 46256 www.wiley.com Published simultaneously

More information

Wrox Programmer to Programmer TM. Professional. Design Patterns. Aaron Saray PHP. Updates, source code, and Wrox technical support at

Wrox Programmer to Programmer TM. Professional. Design Patterns. Aaron Saray PHP. Updates, source code, and Wrox technical support at Wrox Programmer to Programmer TM Professional PHP Design Patterns Aaron Saray Updates, source code, and Wrox technical support at www.wrox.com Professional PHP Design Patterns Introduction... xxi Part

More information

CISSP. DUMmIES 4TH EDITION FOR

CISSP. DUMmIES 4TH EDITION FOR CISSP FOR DUMmIES 4TH EDITION CISSP FOR DUMmIES 4TH EDITION by Lawrence Miller and Peter H. Gregory CISSP For Dummies, 4th Edition Published by John Wiley & Sons, Inc. 111 River Street Hoboken, NJ 07030-5774

More information

macos Sierra Paul McFedries

macos Sierra Paul McFedries macos Sierra Paul McFedries Teach Yourself VISUALLY macos Sierra Published by John Wiley & Sons, Inc. 10475 Crosspoint Boulevard Indianapolis, IN 46256 www.wiley.com Published simultaneously in Canada

More information

HTML5 Programming with JavaScript. by John Paul Mueller

HTML5 Programming with JavaScript. by John Paul Mueller HTML5 Programming with JavaScript by John Paul Mueller HTML5 Programming with JavaScript For Dummies Published by John Wiley & Sons, Inc. 111 River Street Hoboken, NJ 07030-5774 www.wiley.com Copyright

More information

Java Quick Syntax Reference. Second Edition. Mikael Olsson

Java Quick Syntax Reference. Second Edition. Mikael Olsson Java Quick Syntax Reference Second Edition Mikael Olsson Java Quick Syntax Reference Second Edition Mikael Olsson Java Quick Syntax Reference Mikael Olsson Hammarland, Länsi-Suomi, Finland ISBN-13 (pbk):

More information

Mastering BEA WebLogic Server Best Practices for Building and Deploying J2EE Applications

Mastering BEA WebLogic Server Best Practices for Building and Deploying J2EE Applications Mastering BEA WebLogic Server Best Practices for Building and Deploying J2EE Applications Gregory Nyberg Robert Patrick Paul Bauerschmidt Jeffrey McDaniel Raja Mukherjee Mastering BEA WebLogic Server

More information

Excel 2016 Power Programming with VBA

Excel 2016 Power Programming with VBA Excel 2016 Power Programming with VBA Excel 2016 Power Programming with VBA Michael Alexander Dick Kusleika Excel 2016 Power Programming with VBA Published by John Wiley & Sons, Inc. 10475 Crosspoint

More information

Essential Angular for ASP.NET Core MVC

Essential Angular for ASP.NET Core MVC Essential Angular for ASP.NET Core MVC Adam Freeman Essential Angular for ASP.NET Core MVC Adam Freeman London, UK ISBN-13 (pbk): 978-1-4842-2915-6 ISBN-13 (electronic): 978-1-4842-2916-3 DOI 10.1007/978-1-4842-2916-3

More information

Networking. 11th Edition. by Doug Lowe

Networking. 11th Edition. by Doug Lowe Networking 11th Edition by Doug Lowe Networking For Dummies, 11th Edition Published by: John Wiley & Sons, Inc., 111 River Street, Hoboken, NJ 07030-5774, www.wiley.com Copyright 2016 by John Wiley & Sons,

More information

Blade Servers and Virtualization. Barb Goldworm Anne Skamarock. Transforming Enterprise Computing While Cutting Costs. Wiley Publishing, Inc.

Blade Servers and Virtualization. Barb Goldworm Anne Skamarock. Transforming Enterprise Computing While Cutting Costs. Wiley Publishing, Inc. Blade Servers and Virtualization Transforming Enterprise Computing While Cutting Costs Barb Goldworm Anne Skamarock Wiley Publishing, Inc. Blade Servers and Virtualization Blade Servers and Virtualization

More information

OVER 750 QUESTIONS AND 55 TASK-BASED SIMULATIONS! CPA EXAM REVIEW. Auditing and Attestation. O. Ray Whittington, CPA, PhD Patrick R.

OVER 750 QUESTIONS AND 55 TASK-BASED SIMULATIONS! CPA EXAM REVIEW. Auditing and Attestation. O. Ray Whittington, CPA, PhD Patrick R. OVER 750 QUESTIONS AND 55 TASK-BASED SIMULATIONS! 2012 CPA EXAM REVIEW Auditing and Attestation O. Ray Whittington, CPA, PhD Patrick R. Delaney, CPA, PhD WILEY CPA EXAM REVIEW WILEY EXAM REVIEW Auditing

More information

Scala Where It Came From Where It is Going

Scala Where It Came From Where It is Going Scala Where It Came From Where It is Going Scala Days San Francisco Martin Odersky Scala Where It Came From Scala Days San Francisco Martin Odersky Scala is going nowhere Scala is a gateway drug to Haskell

More information

Customizing and Upgrading Linux Second Edition Linda McKinnon Al McKinnon Gearhead Press Wiley Computer Publishing John Wiley & Sons, Inc. Customizing and Upgrading Linux Customizing and Upgrading Linux

More information

Backlink To. Fast track your traffic with Simple Strategies

Backlink To. Fast track your traffic with Simple Strategies Backlink To Profit Fast track your traffic with Simple Strategies You cannot sell. You cannot share for free. You cannot add to any membership site or offer as bonus. You cannot edit or change any part

More information

Office 2016 For Seniors. by Faithe Wempen

Office 2016 For Seniors. by Faithe Wempen Office 2016 For Seniors by Faithe Wempen Office 2016 For Seniors For Dummies Published by: John Wiley & Sons, Inc., 111 River Street, Hoboken, NJ 07030-5774, www.wiley.com Copyright 2016 by John Wiley

More information

CliffsStudySolver Geometry. By David Alan Herzog

CliffsStudySolver Geometry. By David Alan Herzog CliffsStudySolver Geometry By David Alan Herzog CliffsStudySolver Geometry CliffsStudySolver Geometry By David Alan Herzog Published by: Wiley Publishing, Inc. 111 River Street Hoboken, NJ 07030-5774

More information

J2EE TM Best Practices Java TM Design Patterns, Automation, and Performance

J2EE TM Best Practices Java TM Design Patterns, Automation, and Performance J2EE TM Best Practices Java TM Design Patterns, Automation, and Performance Darren Broemmer Wiley Publishing, Inc. Dear Valued Customer, The WILEY advantage We realize you re a busy professional with

More information

Object-Oriented Programming and Data Structures

Object-Oriented Programming and Data Structures Java Methods A & AB Object-Oriented Programming and Data Structures Maria Litvin Phillips Academy, Andover, Massachusetts Gary Litvin Skylight Software, Inc. Skylight Publishing Andover, Massachusetts

More information

PROFESSIONAL C# 7 AND.NET CORE 2.0

PROFESSIONAL C# 7 AND.NET CORE 2.0 PROFESSIONAL C# 7 AND.NET CORE 2.0 INTRODUCTION... liii PART I THE C# LANGUAGE Chapter 1.NET Applications and Tools...3 Chapter 2 Core C#...37 Chapter 3 Objects and Types...75 Chapter 4 Object-Oriented

More information

MacBook Pro. PORTABLE GENIUS 5th EDITION

MacBook Pro. PORTABLE GENIUS 5th EDITION MacBook Pro PORTABLE GENIUS 5th EDITION MacBook Pro PORTABLE GENIUS 5th EDITION by Galen Gruman MacBook Pro Portable Genius, 5th Edition Published by John Wiley & Sons, Inc. 10475 Crosspoint Blvd. Indianapolis,

More information

Office 2010 For Seniors

Office 2010 For Seniors Making Everything Easier! Microsoft Office 2010 For Seniors Learn to: Use Word, Excel, Outlook, and PowerPoint Dress up your letters, invitations, and other documents Manage your finances with Excel Use

More information

PowerShell, VBScript, JScript

PowerShell, VBScript, JScript Companion Web Site Examples, script code, and more Microsoft William R. Stanek, James O Neill, and Jeffrey Rosen PowerShell, VBScript, JScript and Tap the power of automation with scripts Master three

More information

Excel 2016 Power Programming with VBA

Excel 2016 Power Programming with VBA Excel 2016 Power Programming with VBA Excel 2016 Power Programming with VBA Michael Alexander Dick Kusleika Excel 2016 Power Programming with VBA Published by John Wiley & Sons, Inc. 10475 Crosspoint Boulevard

More information

Exploiting Distributed Resources in Wireless, Mobile and Social Networks Frank H. P. Fitzek and Marcos D. Katz

Exploiting Distributed Resources in Wireless, Mobile and Social Networks Frank H. P. Fitzek and Marcos D. Katz MOBILE CLOUDS Exploiting Distributed Resources in Wireless, Mobile and Social Networks Frank H. P. Fitzek and Marcos D. Katz MOBILE CLOUDS MOBILE CLOUDS EXPLOITING DISTRIBUTED RESOURCES IN WIRELESS,

More information

Professional Windows PowerShell Programming

Professional Windows PowerShell Programming Professional Windows PowerShell Programming Snap-ins, Cmdlets, Hosts, and Providers Arul Kumaravel Jon White Michael Naixin Li Scott Happell Guohui Xie Krishna C. Vutukuri Wiley Publishing, Inc. Professional

More information

Hacking Gmail. Ben Hammersley

Hacking Gmail. Ben Hammersley Hacking Gmail Ben Hammersley Hacking Gmail Hacking Gmail Ben Hammersley Hacking Gmail Published by Wiley Publishing, Inc. 10475 Crosspoint Boulevard Indianapolis, IN 46256 www.wiley.com Copyright 2006

More information

Professional Java Native Interfaces with SWT/JFace. Jackwind Li Guojie

Professional Java Native Interfaces with SWT/JFace. Jackwind Li Guojie Professional Java Native Interfaces with SWT/JFace Jackwind Li Guojie Professional Java Native Interfaces with SWT/JFace Jackwind Li Guojie Professional Java Native Interfaces with SWT/JFace Copyright

More information

Making Everything Easier! Windows 7. Pick the task, Find it fast, Get it DONE! Nancy Muir

Making Everything Easier! Windows 7. Pick the task, Find it fast, Get it DONE! Nancy Muir Making Everything Easier! Windows 7 Pick the task, Find it fast, Get it DONE! Nancy Muir Hundreds of tasks including: What Do You Want to Do? Try This Task Find It Here Work in Windows 7 Work with the

More information

Windows 10 Revealed. The Universal Windows Operating System for PC, Tablets, and Windows Phone. Kinnary Jangla

Windows 10 Revealed. The Universal Windows Operating System for PC, Tablets, and Windows Phone. Kinnary Jangla Windows 10 Revealed The Universal Windows Operating System for PC, Tablets, and Windows Phone Kinnary Jangla Windows 10 Revealed Kinnary Jangla Bing Maps San Francisco, California, USA ISBN-13 (pbk): 978-1-4842-0687-4

More information

Scala, Your Next Programming Language

Scala, Your Next Programming Language Scala, Your Next Programming Language (or if it is good enough for Twitter, it is good enough for me) WORLDCOMP 2011 By Dr. Mark C. Lewis Trinity University Disclaimer I am writing a Scala textbook that

More information