- Table View
- List View
With more than 150 detailed recipes, this cookbook shows experienced Clojure developers how to solve a variety of programming tasks with this JVM language. The solutions cover everything from building dynamic websites and working with databases to network communication, cloud computing, and advanced testing strategies. And more than 60 of the world's best Clojurians contributed recipes. Each recipe includes code that you can use right away, along with a discussion on how and why the solution works, so you can adapt these patterns, approaches, and techniques to situations not specifically covered in this cookbook. Master built-in primitive and composite data structures Create, develop and publish libraries, using the Leiningen tool Interact with the local computer that's running your application Manage network communication protocols and libraries Use techniques for connecting to and using a variety of databases Build and maintain dynamic websites, using the Ring HTTP server library Tackle application tasks such as packaging, distributing, profiling, and logging Take on cloud computing and heavyweight distributed data crunching Dive into unit, integration, simulation, and property-based testing Clojure Cookbook is a collaborative project with contributions from some of the world's best Clojurians, whose backgrounds range from aerospace to social media, banking to robotics, AI research to e-commerce.
Full of practical tips, the "Clojure Data Analysis Cookbook" will help you fully utilize your data through a series of step-by-step, real world recipes covering every aspect of data analysis.Prior experience with Clojure and data analysis techniques and workflows will be beneficial, but not essential.
This book is for those with a basic knowledge of Clojure, who are looking to push the language to excel with data analysis.
25 recipes to deeply understand and implement advanced algorithms in Clojure About This Book * Explore various advanced algorithms and learn how they are used to address many real-world computing challenges * Construct elegant solutions using impressive techniques including zippers, parsing, and pattern matching * Solve complex problems by adopting innovative approaches such as logic or asynchronous programming In Detail Data-structures and algorithms often cross your path when you compress files, compile programs, access databases, or simply use your favourite text editor. Understanding and implementing them can be daunting. Curious learners and industrial developers can find these complex, especially if they focus on the detailed implementation of these data structures. Clojure is a highly pragmatic and expressive language with efficient and easy data manipulation capabilities. As such, it is great for implementing these algorithms. By abstracting away a great share of the unnecessary complexity resulting from implementation, Clojure and its contrib libraries will help you address various algorithmic challenges, making your data exploration both profitable and enjoyable. Through 25 recipes, you'll explore advanced algorithms and data-structures, well served by a sound Clojure implementation. This book opens with an exploration of alternative uses of the array data-structure, covering LZ77 compression, drawing fractals using Pascal's triangles, simulating a multi-threaded program execution, and implementing a call-stack winding and un-winding operations. The book elaborates on linked lists, showing you how to construct doubly linked ones, speed up search times over the elements of such structures, use a linked-list as the foundation of a shift-reduce parser, and implement an immutable linked-list using skew binary numbers representation. After that, the tree data-structure is explored, focusing on building self-balancing Splay Trees, designing a B-Tree backing-up an efficient key-value data-store, constructing an undo capable Rope, and showing how Tries can make for an auto-completing facility. Next, some optimization and machine learning techniques are discussed, namely for building a co-occurrence-based recommendation engine, using branch-and-bound to optimize integral cost and profit problems, using Dijkstra's algorithm to determine optimal paths and summarizing texts using the LexRank algorithm. Particular attention is given to logic programming, you will learn to use this to discover interesting relations between social website data, by designing a simple type inferencer for a mini Java-like language, and by building a simple checkers game engine. Asynchronous programming will be addressed and you will design a concurrent web-crawler, an interactive HTML5 game, and an online taxi booking platform. Finally, you'll explore advanced cases for higher order functions in Clojure while implementing a recursive descent parser using efficient mutual resucrsion, devising a mini resusable firewall simulator thanks to Clojure 1.7 new tansducers feature or building a simple unification engine with the help of Continuation Passing Style. What You Will Learn * Explore alternative uses of classical data-structures like arrays and linked-lists * Discover advanced types of tree data-structures * Explore advanced machine learning and optimization techniques * Utilise powerful Clojure libraries, such as Instaparse for parsing, core.match for pattern matching, clojure.zip for zippers, and clojure.matrix for matrix operations * Learn logic programming through the usage of the library core.logic * Master asynchronous programming using the core.async library * See the transducers in action while resolving real-world use-cases Who This Book Is For If you are an experienced Clojure developer, longing to take your knowledge to the next level by discovering and using advanced algorithms and seeing how they can be applied to real-world problems, then this book is for you.
Statistics, big data, and machine learning for Clojure programmers About This Book * Write code using Clojure to harness the power of your data * Discover the libraries and frameworks that will help you succeed * A practical guide to understanding how the Clojure programming language can be used to derive insights from data Who This Book Is For This book is aimed at developers who are already productive in Clojure but who are overwhelmed by the breadth and depth of understanding required to be effective in the field of data science. Whether you're tasked with delivering a specific analytics project or simply suspect that you could be deriving more value from your data, this book will inspire you with the opportunities-and inform you of the risks-that exist in data of all shapes and sizes. What You Will Learn * Perform hypothesis testing and understand feature selection and statistical significance to interpret your results with confidence * Implement the core machine learning techniques of regression, classification, clustering and recommendation * Understand the importance of the value of simple statistics and distributions in exploratory data analysis * Scale algorithms to web-sized datasets efficiently using distributed programming models on Hadoop and Spark * Apply suitable analytic approaches for text, graph, and time series data * Interpret the terminology that you will encounter in technical papers * Import libraries from other JVM languages such as Java and Scala * Communicate your findings clearly and convincingly to nontechnical colleagues In Detail The term "data science" has been widely used to define this new profession that is expected to interpret vast datasets and translate them to improved decision-making and performance. Clojure is a powerful language that combines the interactivity of a scripting language with the speed of a compiled language. Together with its rich ecosystem of native libraries and an extremely simple and consistent functional approach to data manipulation, which maps closely to mathematical formula, it is an ideal, practical, and flexible language to meet a data scientist's diverse needs. Taking you on a journey from simple summary statistics to sophisticated machine learning algorithms, this book shows how the Clojure programming language can be used to derive insights from data. Data scientists often forge a novel path, and you'll see how to make use of Clojure's Java interoperability capabilities to access libraries such as Mahout and Mllib for which Clojure wrappers don't yet exist. Even seasoned Clojure developers will develop a deeper appreciation for their language's flexibility! You'll learn how to apply statistical thinking to your own data and use Clojure to explore, analyze, and visualize it in a technically and statistically robust way. You can also use Incanter for local data processing and ClojureScript to present interactive visualisations and understand how distributed platforms such as Hadoop sand Spark's MapReduce and GraphX's BSP solve the challenges of data analysis at scale, and how to explain algorithms using those programming models. Above all, by following the explanations in this book, you'll learn not just how to be effective using the current state-of-the-art methods in data science, but why such methods work so that you can continue to be productive as the field evolves into the future. Style and approach This is a practical guide to data science that teaches theory by example through the libraries and frameworks accessible from the Clojure programming language.
An example-oriented approach to develop custom domain-specific languages. If you've already developed a few Clojure applications and wish to expand your knowledge on Clojure or domain-specific languages in general, then this book is for you. If you're an absolute Clojure beginner, then you may only find the detailed examples of the core Clojure components of value. If you've developed DSLs in other languages, this Lisp and Java-based book might surprise you with the power of Clojure.
If you're a finance professional who is currently using VBA (Excel) to perform financial calculations and quantitative analysis, and would like to use Clojure instead to improve their efficiency, then this book is for you. Basic knowledge of financial concepts is essential. Basic programming knowledge would also be an added advantage.
A book that brings out the strengths of Clojure programming that have to facilitate machine learning. Each topic is described in substantial detail, and examples and libraries in Clojure are also demonstrated. This book is intended for Clojure developers who want to explore the area of machine learning. Basic understanding of the Clojure programming language is required, but thorough acquaintance with the standard Clojure library or any libraries are not required. Familiarity with theoretical concepts and notation of mathematics and statistics would be an added advantage.
This is a short, practical guide that will teach you everything you need to know to start writing high performance Clojure code.This book is ideal for intermediate Clojure developers who are looking to get a good grip on how to achieve optimum performance. You should already have some experience with Clojure and it would help if you already know a little bit of Java. Knowledge of performance analysis and engineering is not required. For hands-on practice, you should have access to Clojure REPL with Leiningen.
Become an expert at writing fast and high performant code in Clojure 1.7.0 About This Book * Enhance code performance by using appropriate Clojure features * Improve the efficiency of applications and plan their deployment * A hands-on guide to designing Clojure programs to get the best performance Who This Book Is For This book is intended for intermediate Clojure developers who are looking to get a good grip on achieving optimum performance. Having a basic knowledge of Java would be helpful. What You Will Learn * Identify performance issues in Clojure programs using different profiling tools * Master techniques to achieve numerical performance in Clojure * Use Criterium library to measure latency of Clojure expressions * Exploit Java features in Clojure code to enhance performance * Avoid reflection and boxing with type hints * Understand Clojure's concurrency and state-management primitives in depth * Measure and monitor performance, and understand optimization techniques In Detail Clojure treats code as data and has a macro system. It focuses on programming with immutable values and explicit progression-of-time constructs, which are intended to facilitate the development of more robust programs, particularly multithreaded ones. It is built with performance, pragmatism, and simplicity in mind. Like most general purpose languages, various Clojure features have different performance characteristics that one should know in order to write high performance code. This book shows you how to evaluate the performance implications of various Clojure abstractions, discover their underpinnings, and apply the right approach for optimum performance in real-world programs. It starts by helping you classify various use cases and the need for them with respect to performance and analysis of various performance aspects. You will also learn the performance vocabulary that experts use throughout the world and discover various Clojure data structures, abstractions, and their performance characteristics. Further, the book will guide you through enhancing performance by using Java interoperability and JVM-specific features from Clojure. It also highlights the importance of using the right concurrent data structure and Java concurrency abstractions. This book also sheds light on performance metrics for measuring, how to measure, and how to visualize and monitor the collected data. At the end of the book, you will learn to run a performance profiler, identify bottlenecks, tune performance, and refactor code to get a better performance. Style and approach An easy-to-follow guide full of real-world examples and self-sufficient code snippets that will help you get your hands dirty with high performance programming with Clojure.
<p>The Clojure language is a practical alternative for everyday programming that offers expressivity rivaling other dynamic languages like Ruby and Python, but allows one to seamlessly take advantage of Java libraries, services, and all of the resources of the JVM ecosystem. This book helps you learn the fundamentals of Clojure with examples relating it to the languages you know already—whether you're focused on data modeling, concurrency and parallelism, web programming, statistics and data analysis, and more.</p>
If you are a Clojure developer who is interested in using Reactive Programming to build asynchronous and concurrent applications, this book is for you. Knowledge of Clojure and Leiningen is required. Basic understanding of ClojureScript will be helpful for the web chapters, although it is not strictly necessary.
This book is for anyone who's worked with Clojure and wants to use it to start developing applications for the Web. Experience or familiarity with basic Clojure syntax is a must, and exposure to Leiningen (or other similar build tools such as Maven) would be helpful.
This is a hands-on book with plenty of well-explained code. Each chapter has a standalone project in which a complete web application with specific features of a social networking site is emphasized. The final chapter of the book is a project that has a complete and fully developed social networking site. Each chapter begins with a brief description of the features of the Internet service and the market it is within. After extracting the main features of the service, the chapter goes into explaining how a clone of the service can be designed, followed by a short description of the technologies and platforms being used. The bulk of the chapter goes into describing how the clone is built, with step-by-step explanations and code examples. Finally, the chapter shows how the finished clone can be deployed on the Internet. This book is written for web application programmers with an intermediate knowledge of Ruby. You should also know how web applications work and you have used at least some of the cloned Internet services before. If you are a trying to find out exactly how can you make your very own customized applications such as TinyURL, Twitter, Flickr, or Facebook, this book is for you. Programmers who want to include features of these Internet services into their own web applications will also find this book interesting.
A candid account of the life of a software engineer who runs her own computer consulting business in San Francisco. What is it about the numerical, seemingly inhuman world of computing that holds such powerful, wholly human allure?
In Closer, Susan Kozel draws on live performance practice, digital technologies, and the philosophical approach of phenomenology. Trained in dance and philosophy, Kozel places the human body at the center of explorations of interactive interfaces, responsive systems, and affective computing, asking what can be discovered as we become closer to our computers--as they become extensions of our ways of thinking, moving, and touching. Performance, Kozel argues, can act as a catalyst for understanding wider social and cultural uses of digital technology. Taking this one step further, performative acts of sharing the body through our digital devices foster a collaborative construction of new physical states, levels of conscious awareness, and even ethics. We re-encounter ourselves and others through our interactive computer systems. What we need now are conceptual and methodological frameworks to reflect this. Kozel offers a timely reworking of the phenomenology of French philosopher Maurice Merleau-Ponty. This method, based on a respect for lived experience, begins by listening to the senses and noting insights that arrive in the midst of dance, or quite simply in the midst of life. The combination of performance and phenomenology offered by Closer yields entwinements between experience and reflection that shed light on, problematize, or restructure scholarly approaches to human bodies using digital technologies. After outlining her approach and methodology and clarifying the key concepts of performance, technologies, and virtuality, Kozel applies phenomenological method to the experience of designing and performing in a range of computational systems: telematics, motion capture, responsive architectures, and wearable computing. The transformative potential of the alchemy between bodies and technologies is the foundation of Closer. With careful design, future generations of responsive systems and mobile devices can expand our social, physical, and emotional exchanges.
Zoey always tries to keep an open mind about clothes. Can she do the same for people, too? Includes "Sew Zoey" blog posts and fashion illustrations.In the eleventh book in the Sew Zoey series, Zoey Webber thinks she's helping when she gives advice to a boy who has a crush on her best friend Kate. Zoey tells him to wear a soccer jersey from Kate's favorite team, assuming that Kate will like him better if he's into sports. Kate finds out and feels betrayed that Zoey thinks she is so closed-minded. Meanwhile, Zoey helps her new friend Sean start a fashion club at school, promising to allow anyone to join. But when someone unexpected shows up to the first club meeting, Zoey struggles to stay true to her ideals and keep her focus on the clothes. Could Zoey be the one who is closed-minded, after all?
This report discusses how policy-makers might address the challenges and risks in respect of the security, privacy and trust aspects of cloud computing that could undermine the attainment of broader economic and societal objectives across Europe.
If you're involved in planning IT infrastructure as a network or system architect, system administrator, or developer, this book will help you adapt your skills to work with these highly scalable, highly redundant infrastructure services. While analysts hotly debate the advantages and risks of cloud computing, IT staff and programmers are left to determine whether and how to put their applications into these virtualized services. Cloud Application Architectures provides answers -- and critical guidance -- on issues of cost, availability, performance, scaling, privacy, and security. With Cloud Application Architectures, you will: Understand the differences between traditional deployment and cloud computing Determine whether moving existing applications to the cloud makes technical and business sense Analyze and compare the long-term costs of cloud services, traditional hosting, and owning dedicated servers Learn how to build a transactional web application for the cloud or migrate one to it Understand how the cloud helps you better prepare for disaster recovery Change your perspective on application scaling To provide realistic examples of the book's principles in action, the author delves into some of the choices and operations available on Amazon Web Services, and includes high-level summaries of several of the other services available on the market today. Cloud Application Architectures provides best practices that apply to every available cloud service. Learn how to make the transition to the cloud and prepare your web applications to succeed.
If your team is investigating ways to design applications for the cloud, this concise book introduces 11 architecture patterns that can help you take advantage of cloud-platform services. You'll learn how each of these platform-agnostic patterns work, when they might be useful in the cloud, and what impact they'll have on your application architecture. You'll also see an example of each pattern applied to an application built with Windows Azure. The patterns are organized into four major topics, such as scalability and handling failure, and primer chapters provide background on each topic. With the information in this book, you'll be able to make informed decisions for designing effective cloud-native applications that maximize the value of cloud services, while also paying attention to user experience and operational efficiency. Learn about architectural patterns for: Scalability. Discover the advantages of horizontal scaling. Patterns covered include Horizontally Scaling Compute, Queue-Centric Workflow, and Auto-Scaling. Big data. Learn how to handle large amounts of data across a distributed system. Eventual consistency is explained, along with the MapReduce and Database Sharding patterns. Handling failure. Understand how multitenant cloud services and commodity hardware influence your applications. Patterns covered include Busy Signal and Node Failure. Distributed users. Learn how to overcome delays due to network latency when building applications for a geographically distributed user base. Patterns covered include Colocation, Valet Key, CDN, and Multi-Site Deployment.
One of the greatest changes in the computing world has been the move to using common, distributed hardware and software to support services, coined cloud computing. We have chosen a selection of the most useful books in cloud computing within this bibliography. First we look at the basics and some of the key concepts and issues that arise in Cloud computing in general. Then we examine how the 'as a service' (aaS) has helped to drive and expand the reach of the cloud deployment environment. Next, the role of different cloud services, both internal to support cloud operations, and externally provided as a part of the web of cloud operational support are covered. Virtualization, the effective division of computing to more essential computing units has helped to make broad-spectrum web services effective and distributed, and is another key driver behind understanding the cloud. Combining both cloud services and existing datacenters is the role of the Hybrid cloud, aiming to take advantage of the best of both worlds. An array of cloud deployment and development platforms are described, covering both public and private cloud services. Throughout the cloud environment security is a major concern, especially when sharing and distributing user and customer data. Finally, the role of development tools and environments are examined, covering both key tools and entire development stacks. So, be sure to take advantage of the books and videos on cloud computing that you will find in the Safari Books Online library.
Cloud computing continues to emerge as a subject of substantial industrial and academic interest. Although the meaning and scope of "cloud computing" continues to be debated, the current notion of clouds blurs the distinctions between grid services, web services, and data centers, among other areas. Clouds also bring considerations of lowering the cost for relatively bursty applications to the fore. Cloud Computing: Principles, Systems and Applications is an essential reference/guide that provides thorough and timely examination of the services, interfaces and types of applications that can be executed on cloud-based systems. The book identifies and highlights state-of-the-art techniques and methods for designing cloud systems, presents mechanisms and schemes for linking clouds to economic activities, and offers balanced coverage of all related technologies that collectively contribute towards the realization of cloud computing. With an emphasis on the conceptual and systemic links between cloud computing and other distributed computing approaches, this text also addresses the practical importance of efficiency, scalability, robustness and security as the four cornerstones of quality of service. Topics and features: explores the relationship of cloud computing to other distributed computing paradigms, namely peer-to-peer, grids, high performance computing and web services; presents the principles, techniques, protocols and algorithms that can be adapted from other distributed computing paradigms to the development of successful clouds; includes a Foreword by Professor Mark Baker of the University of Reading, UK; examines current cloud-practical applications and highlights early deployment experiences; elaborates the economic schemes needed for clouds to become viable business models. This book will serve as a comprehensive reference for researchers and students engaged in cloud computing. Professional system architects, technical managers, and IT consultants will also find this unique text a practical guide to the application and delivery of commercial cloud services. Prof. Nick Antonopoulos is Head of the School of Computing, University of Derby, UK. Dr. Lee Gillam is a Lecturer in the Department of Computing at the University of Surrey, UK.
Do you trust the Cloud? Should you trust the Cloud? 'Cloud Computing' are the words on everyone's lips - it's the latest technology, the way forward. But how safe is the Cloud? Is it reliable? How secure will your information be? Cloud Computing: Assessing the risks looks at these challenges from a real-world perspective, with industry experts . . . . . .
Select your format based upon: 1) how you want to read your book, and 2) compatibility with your reading tool. To learn more about using Bookshare with your device, visit the "Using Bookshare" page in the Help Center.
Here is an overview of the specialized formats that Bookshare offers its members with links that go to the Help Center for more information.
- Bookshare Web Reader - a customized reading tool for Bookshare members offering all the features of DAISY with a single click of the "Read Now" link.
- DAISY (Digital Accessible Information System) - a digital book file format. DAISY books from Bookshare are DAISY 3.0 text files that work with just about every type of access technology that reads text. Books that contain images will have the download option of ‘DAISY Text with Images’.
- BRF (Braille Refreshable Format) - digital Braille for use with refreshable Braille devices and Braille embossers.
- MP3 (Mpeg audio layer 3) - Provides audio only with no text. These books are created with a text-to-speech engine and spoken by Kendra, a high quality synthetic voice from Ivona. Any device that supports MP3 playback is compatible.
- DAISY Audio - Similar to the Daisy 3.0 option above; however, this option uses MP3 files created with our text-to-speech engine that utilizes Ivona's Kendra voice. This format will work with Daisy Audio compatible players such as Victor Reader Stream and Read2Go.