Data compression is one of the most important fields and tools in modern computing. From archiving data, to CD-ROMs, and from coding theory to image analysis, many facets of modern computing rely upon data compression. This book provides a comprehensive reference for the many different types and methods of compression. Included are a detailed and helpful taxonomy, analysis of most common methods, and discussions on the use and comparative benefits of methods and description of ´´how to´´ use them. Detailed descriptions and explanations of the most well-known and frequently used compression methods are covered in a self-contained fashion, with an accessible style and technical level for specialists and non-specialists.
Learn a use-case approach for developing Java enterprise applications in a continuously test-driven fashion. With this hands-on guide, authors and JBoss project leaders Andrew Lee Rubinger and Aslak Knutsen show you how to build high-level components, from persistent storage to the user interface, using the Arquillian testing platform and several other JBoss projects and tools. Through the course of the book, you?ll build a production-ready software conference tracker called GeekSeek, using source code from GitHub. Rubinger and Knutsen demonstrate why testing is the very foundation of development?essential for ensuring that code is consumable, complete, and correct. * Bootstrap an elementary Java EE project from start to finish before diving into the full-example application, GeekSeek * Use both relational and NoSQL storage models to build and test GeekSeek?s data persistence layers * Tackle testable business logic development and asynchronous messaging with an SMTP service * Expose enterprise services as a RESTful interface, using Java EE?s JAX-RS framework * Implement OAuth authentication with JBoss?s PicketLink identity management service * Validate the UI by automating interaction in the browser and reading the rendered page * Perform full-scale integration testing on the final deployable archive
This two-volume handbook presents a collection of novel methodologies with applications and illustrative examples in the areas of data-driven computational social sciences. Throughout this handbook, the focus is kept specifically on business and consumer-oriented applications with interesting sections ranging from clustering and network analysis, meta-analytics, memetic algorithms, machine learning, recommender systems methodologies, parallel pattern mining and data mining to specific applications in market segmentation, travel, fashion or entertainment analytics. A must-read for anyone in data-analytics, marketing, behavior modelling and computational social science, interested in the latest applications of new computer science methodologies. The chapters are contributed by leading experts in the associated fields.The chapters cover technical aspects at different levels, some of which are introductory and could be used for teaching. Some chapters aim at building a common understanding of the methodologies and recent application areas including the introduction of new theoretical results in the complexity of core problems. Business and marketing professionals may use the book to familiarize themselves with some important foundations of data science. The work is a good starting point to establish an open dialogue of communication between professionals and researchers from different fields. Together, the two volumes present a number of different new directions in Business and Customer Analytics with an emphasis in personalization of services, the development of new mathematical models and new algorithms, heuristics and metaheuristics applied to the challenging problems in the field. Sections of the book have introductory material to more specific and advanced themes in some of the chapters, allowing the volumes to be used as an advanced textbook. Clustering, Proximity Graphs, Pattern Mining, Frequent Itemset Mining, Feature Engineering, Network and Community Detection, Network-based Recommending Systems and Visualization, are some of the topics in the first volume. Techniques on Memetic Algorithms and their applications to Business Analytics and Data Science are surveyed in the second volume; applications in Team Orienteering, Competitive Facility-location, and Visualization of Products and Consumers are also discussed. The second volume also includes an introduction to Meta-Analytics, and to the application areas of Fashion and Travel Analytics. Overall, the two-volume set helps to describe some fundamentals, acts as a bridge between different disciplines, and presents important results in a rapidly moving field combining powerful optimization techniques allied to new mathematical models critical for personalization of services. Academics and professionals working in the area of business anyalytics, data science, operations research and marketing will find this handbook valuable as a reference. Students studying these fields will find this handbook useful and helpful as a secondary textbook.
The main aim of this book is to teach D to readers who are new to computer programming. Although having experience in other programming languages is certainly helpful, this book starts from the basics. D is a multi-paradigm system programming language that combines a wide range of powerful programming concepts from the lowest to the highest levels. It has C-like syntax and static typing. It pragmatically combines efficiency, control, and modeling power, with safety and programmer productivity in mind. Each chapter is based on the contents of the previous ones, introducing as few new concepts as possible. It is recommended that the book is read in linear fashion, without skipping chapters if possible. Although this book was written with beginners in mind, it covers almost all features of D. More experienced programmers can use the book as a D language reference by starting from the index section. Blurbs from the back cover: ´´D is pristine, clean, immensely powerful, and arguably the actual state-of-the-art programming language. Ali´s book is a gem. Clear, concise, and complete.´´ - Olivier Henley ´´I have been using Ali´s online D book to teach D at the university level. It is up-to-date, complete, and most importantly, extremely readable. Having a print version is even better! This is now the ´go-to´ book for learning D programming.´´ - Chuck Allison, Professor and Chair, Computer Science Department, Utah Valley University ´´Ali´s explanations are succinct and on target. I like that he provides rationale for why D was designed in a particular way and how I can use it most effectively. This is the best computer language book I´ve read.´´ - Robbin Carlson, Luthier and Enterprise Architect ´´I taught a CS2 Data Structures class in D with more success and student appreciation than when using either C++ or Java as it´s an ideal language to express the relevant concepts at all scales, from detailed to big picture, without needless complexity. Ali Çehreli´s tutorial played a central role supporting students especially during the first half of the course - without it the course simply would not have worked, so ´´many thanks Ali´´ - and an important part of that is its linearity - it can be read with only backward dependencies. This meant that with hard work even students of little experience and only moderate current abilities could get up to speed, and we saw just that. It is hard to overstate this factor. I unreservedly recommend this book to all.´´ - Dr. Carl Sturtivant, University of Minnesota Department of Computer Science & Engineering ´´This book is one of the best guides through the language that I´ve seen.´´ - Andrew Wray, D Enthusiast ´´I encourage anyone considering D to read this book. Not exactly ´D for Dummies´ but it´s easy to follow even if you don´t have much experience with compiled languages.´´ - bachmeier, Reddit user ´´Having worked through the book, I have to say this is one of the easiest to follow and distraction free read there is and the fact that it made learning a new language a total breeze really impressed me.´´ - Imran Khan, Student
´´Eric Evans has written a fantastic book on how you can make the design of your software match your mental model of the problem domain you are addressing. ´´His book is very compatible with XP. It is not about drawing pictures of a domain; it is about how you think of it, the language you use to talk about it, and how you organize your software to reflect your improving understanding of it. Eric thinks that learning about your problem domain is as likely to happen at the end of your project as at the beginning, and so refactoring is a big part of his technique. ´´The book is a fun read. Eric has lots of interesting stories, and he has a way with words. I see this book as essential reading for software developers-it is a future classic.´´ - Ralph Johnson , author of Design Patterns ´´If you don´t think you are getting value from your investment in object-oriented programming, this book will tell you what you´ve forgotten to do. ´´Eric Evans convincingly argues for the importance of domain modeling as the central focus of development and provides a solid framework and set of techniques for accomplishing it. This is timeless wisdom, and will hold up long after the methodologies du jour have gone out of fashion.´´ - Dave Collins , author of Designing Object-Oriented User Interfaces ´´Eric weaves real-world experience modeling-and building-business applications into a practical, useful book. Written from the perspective of a trusted practitioner, Eric´s descriptions of ubiquitous language, the benefits of sharing models with users, object life-cycle management, logical and physical application structuring, and the process and results of deep refactoring are major contributions to our field.´´ - Luke Hohmann , author of Beyond Software Architecture This book belongs on the shelf of every thoughtful software developer. --Kent Beck What Eric has managed to capture is a part of the design process that experienced object designers have always used, but that we have been singularly unsuccessful as a group in conveying to the rest of the industry. We´ve given away bits and pieces of this knowledge...but we´ve never organized and systematized the principles of building domain logic. This book is important. --Kyle Brown, author of Enterprise Java(TM) Programming with IBM® WebSphere® The software development community widely acknowledges that domain modeling is central to software design. Through domain models, software developers are able to express rich functionality and translate it into a software implementation that truly serves the needs of its users. But despite its obvious importance, there are few practical resources that explain how to incorporate effective domain modeling into the software development process. Domain-Driven Design fills that need. This is not a book about specific technologies. It offers readers a systematic approach to domain-driven design, presenting an extensive set of design best practices, experience-based techniques, and fundamental principles that facilitate the development of software projects facing complex domains. Intertwining design and development practice, this book incorporates numerous examples based on actual projects to illustrate the application of domain-driven design to real-world software development. Readers learn how to use a domain model to make a complex development effort more focused and dynamic. A core of best practices and standard patterns provides a common language for the development team. A shift in emphasis--refactoring not just the code but the model underlying the code--in combination with the frequent iterations of Agile development leads to deeper insight into domains and enhanced communication between domain expert and programmer. Domain-Dr