Practical Vim: Edit Text at the Speed of Thought


Drew Neil - 2012
    It's available on almost every OS--if you master the techniques in this book, you'll never need another text editor. Practical Vim shows you 120 vim recipes so you can quickly learn the editor's core functionality and tackle your trickiest editing and writing tasks. Vim, like its classic ancestor vi, is a serious tool for programmers, web developers, and sysadmins. No other text editor comes close to Vim for speed and efficiency; it runs on almost every system imaginable and supports most coding and markup languages. Learn how to edit text the "Vim way:" complete a series of repetitive changes with The Dot Formula, using one keystroke to strike the target, followed by one keystroke to execute the change. Automate complex tasks by recording your keystrokes as a macro. Run the same command on a selection of lines, or a set of files. Discover the "very magic" switch, which makes Vim's regular expression syntax more like Perl's. Build complex patterns by iterating on your search history. Search inside multiple files, then run Vim's substitute command on the result set for a project-wide search and replace. All without installing a single plugin! You'll learn how to navigate text documents as fast as the eye moves--with only a few keystrokes. Jump from a method call to its definition with a single command. Use Vim's jumplist, so that you can always follow the breadcrumb trail back to the file you were working on before. Discover a multilingual spell-checker that does what it's told.Practical Vim will show you new ways to work with Vim more efficiently, whether you're a beginner or an intermediate Vim user. All this, without having to touch the mouse.What You Need: Vim version 7

Elegant Objects


Yegor Bugayenko - 2016
    Most of them are completely against everything you've read in other books. For example, static methods, NULL references, getters, setters, and mutable classes are called evil.

Hidden In Plain Sight 10: How To Program A Quantum Computer


Andrew H. Thomas - 2018
     This book contains an introduction to quantum mechanics, with complete instructions and videos showing you how to program a real quantum computer, provided by IBM.

Understanding Distributed Systems: What every developer should know about large distributed applications


Roberto Vitillo - 2021
    It's not that there is a lack of information out there. You can find academic papers, engineering blogs, and even books on the subject. The problem is that the available information is spread out all over the place, and if you were to put it on a spectrum from theory to practice, you would find a lot of material at the two ends, but not much in the middle.That is why I decided to write a book to teach the fundamentals of distributed systems so that you don’t have to spend countless hours scratching your head to understand how everything fits together. This is the guide I wished existed when I first started out, and it's based on my experience building large distributed systems that scale to millions of requests per second and billions of devices.If you develop the back-end of web or mobile applications (or would like to!), this book is for you. When building distributed systems, you need to be familiar with the network stack, data consistency models, scalability and reliability patterns, and much more. Although you can build applications without knowing any of that, you will end up spending hours debugging and re-designing their architecture, learning lessons that you could have acquired in a much faster and less painful way.

Advanced Scala with Cats


Noel Welsh - 2017
    This means designing systems as small composable units, expressing constraints and interactions via the type system, and using composition to guide the construction of large systems in a way that maintains the original architectural vision.The book also serves as an introduction to the Cats library. We use abstractions from Cats, and we explain the structure of Cats so you can use it without fear in your own code base. The broad ideas are not specific to Cats, but Cats provides an excellent implementation that is beneficial to learn in its own right.

Reactive Design Patterns


Roland Kuhn - 2014
    The Reactive Application model addresses these demands through new patterns designed to "react" effectively to user and system events, changes in load, competition for shared system resources, and unanticipated failures. Although reactive design patterns can be implemented using standard enterprise development tools, you best realize the benefits when you pair them with a functional programming language like Scala and an Actor-based concurrency system like Akka.Reactive Design Patterns is a clearly-written guide for building event-driven distributed systems that are resilient, responsive, and scalable. Written by the authors of the Reactive Manifesto, this book teaches you to apply reactive design principles to the real problems of distributed application development. You'll discover technologies and paradigms that can be used to build reactive applications including Akka and other actor-based systems, functional programming, replication and distribution, and implementation techniques such as futures, iteratees, and reactive streams. While the book presents concrete examples in Scala, Java, JavaScript, and Erlang, the primary goal is to introduce patterns and best practices that you can use to apply reactive principles to common problems you'll face when building distributed systems.WHAT'S INSIDE* Discover best practices and patterns for building responsive applications* Build applications that can withstand hardware or software failure at any level* Patterns for fault tolerance, scalability, and responsiveness* Maximize multicore hardware using asynchronous and event-driven solutions* Scale applications under tremendous loadReaders should be familiar with a standard programming language like Java, C++ or C# and be comfortable with the basics of distributed systems. Software engineers and architects will learn how to avoid common pitfalls and apply patterns for solving day-to-day problems in a fault-tolerant and scalable way to maximize their application's responsiveness to users and clients. Project leaders and CTOs will gain a deeper understanding of the philosophy behind resilience and scalability in distributed systems, as well as their limitations, challenges and benefits.

Scala for the Impatient


Cay S. Horstmann - 2012
    Using Scala, you can write programs more concisely than in Java, as well as leverage the full power of concurrency. Since Scala runs on the JVM, it can access any Java library and is interoperable with Java frameworks. Scala for the Impatient concisely shows developers what Scala can do and how to do it. In this book, Cay Horstmann, the principal author of the international best-selling Core Java(TM), offers a rapid, code-based introduction that's completely practical. Horstmann introduces Scala concepts and techniques in "blog-sized" chunks that you can quickly master and apply. Hands-on activities guide you through well-defined stages of competency, from basic to expert. Coverage includes Getting started quickly with Scala's interpreter, syntax, tools, and unique idioms Mastering core language features: functions, arrays, maps, tuples, packages, imports, exception handling, and more Becoming familiar with object-oriented programming in Scala: classes, inheritance, and traits Using Scala for real-world programming tasks: working with files, regular expressions, and XML Working with higher-order functions and the powerful Scala collections library Leveraging Scala's powerful pattern matching and case classes Creating concurrent programs with Scala actors Implementing domain-specific languages Understanding the Scala type system Applying advanced "power tools" such as annotations, implicits, and delimited continuations Scala is rapidly reaching a tipping point that will reshape the experience of programming. This book will help object-oriented programmers build on their existing skills, allowing them to immediately construct useful applications as they gradually master advanced programming techniques.

Systems Performance: Enterprise and the Cloud


Brendan Gregg - 2013
    Now, internationally renowned performance expert Brendan Gregg has brought together proven methodologies, tools, and metrics for analyzing and tuning even the most complex environments. Systems Performance: Enterprise and the Cloud focuses on Linux(R) and Unix(R) performance, while illuminating performance issues that are relevant to all operating systems. You'll gain deep insight into how systems work and perform, and learn methodologies for analyzing and improving system and application performance. Gregg presents examples from bare-metal systems and virtualized cloud tenants running Linux-based Ubuntu(R), Fedora(R), CentOS, and the illumos-based Joyent(R) SmartOS(TM) and OmniTI OmniOS(R). He systematically covers modern systems performance, including the "traditional" analysis of CPUs, memory, disks, and networks, and new areas including cloud computing and dynamic tracing. This book also helps you identify and fix the "unknown unknowns" of complex performance: bottlenecks that emerge from elements and interactions you were not aware of. The text concludes with a detailed case study, showing how a real cloud customer issue was analyzed from start to finish. Coverage includes - Modern performance analysis and tuning: terminology, concepts, models, methods, and techniques - Dynamic tracing techniques and tools, including examples of DTrace, SystemTap, and perf - Kernel internals: uncovering what the OS is doing - Using system observability tools, interfaces, and frameworks - Understanding and monitoring application performance - Optimizing CPUs: processors, cores, hardware threads, caches, interconnects, and kernel scheduling - Memory optimization: virtual memory, paging, swapping, memory architectures, busses, address spaces, and allocators - File system I/O, including caching - Storage devices/controllers, disk I/O workloads, RAID, and kernel I/O - Network-related performance issues: protocols, sockets, interfaces, and physical connections - Performance implications of OS and hardware-based virtualization, and new issues encountered with cloud computing - Benchmarking: getting accurate results and avoiding common mistakes This guide is indispensable for anyone who operates enterprise or cloud environments: system, network, database, and web admins; developers; and other professionals. For students and others new to optimization, it also provides exercises reflecting Gregg's extensive instructional experience.

Mastering Digital Cameras: An Illustrated Guidebook (Digital Photography 1)


Al Judge - 2013
    "I like how the author builds quite high expectations in the introduction of the book, and manages to fulfill them fully throughout the book.""I am amazed at his ability to focus on teaching people, like me, who have done basically nothing with cameras other than point and shoot. There is a wealth of useful and understandable information in this book,...""I've been photographing for years since first SLR in 1960s and yet I found much of interest and some I was unfamiliar with. I especially appreciated the clear, concise presentation."" Even us 'know-it-alls' are surprised by the information that cleared-up some uncertain items that had existed too long.""As a former photography student who learned almost nothing over a two year period, I can now say that I fully understand the terminology and possess the technical skill to take better photographs and possibly revisit my dream of becoming a sports photographer." Whether You are New to Photography,making the transition from Film to Digital Photography, or just want to improve your skills, this book will save you TIME and MONEY! No more intimidation! If you understand how Digital Cameras work, every photo becomes a learning experience. Many people are walking around with expensive cameras that they barely know how to use and others are missing great photo opportunities because they have been misinformed by well-meaning friends. This book is based on the premise that a solid understanding of photographic equipment results in a faster learning curve and better photos. The technology is actually quite simple when it is broken down and clearly explained.Without an understanding of cameras, you are at the mercy of others in all your buying decisions. You will only scratch the surface of your camera's capabilities until you take on its manual settings. You need to read this book because: It will take the confusion out of Photographic terminology by clearly defining every important term used. Your learning will be enhanced by 120 charts and photos that will simplify discussions and help you to remember what you learned. You will learn why buying a camera based on Megapixels alone is a bad idea. You will learn how sensor size and lens selection affect image quality more than any other factors. Strange photographic terms will loose their mystique once you learn how they were carried over from film photography. ˃˃˃ You will also learn: How digital images are created and stored.Which file format to use when editing photos.Which file format to use when sharing photos.How to select a lens for your DSLR camera.How to properly adjust exposure.Why a zoom lens can be a very good investment.Why you should care about focal length, aperture, shutter speed, and ISO as well as what these terms mean. ˃˃˃ About the author: Al Judge is a professional photographer living in Sedona, Arizona. His works are displayed in several locations around town. He is a best selling author with more than a dozen photography books. Don’t waste any more time! Scroll up and grab a copy today for little more than the cost of a cup of coffee!

Call The Midwife!: Your Backstage Pass to the Era and the Making of the PBS TV Series


Jessica Long - 2014
     Full of drama, sadness, grief, joy and gritty story lines, this series takes a close look at what life was like in the post-war, East End of London. Poverty, squalid living conditions and hard times all jostle for space, but the overriding feeling is one of strong women, facing their hardships head on. Find out more about this intriguing time, in our look behind the scenes, and also discover how the East End had been shaped over the centuries.

Bitcoin for Beginners: Illustrated Guide To Understanding Bitcoin and Cryptocurrencies


EvergreenPress Hub - 2017
     In fact, it may even be bigger than the Internet. It is such a profound paradigm shift in the technology of money that even experts on the topic are still trying to wrap their heads around it. Pandora's box has been opened and there is no going back. Bitcoin will forever transform society and its implications are beyond what we can even currently imagine. Bitcoin can be hard to grasp at first – and if someone has tried to explain it to you and you feel like you still don't get it, don't worry. This book will take you by the hand and explain to you in the simplest terms, using analogies, metaphors and illustrations what the essence of Bitcoin is and why you must pay attention to the revolution that is about to take place. In Bitcoin for Beginners you will find out: How the Bitcoin Technology works The difference between Bitcoin and Blockchain How mining works How to make money with Bitcoin The top myths about Bitcoin How Bitcoin will take over the world How to buy and sell Bitcoin What forks are And much more! DON'T HESITATE. TO START ON A JOURNEY THAT COULD DEEPLY TRANSFORM HOW YOU RELATE TO THE CONCEPT OF MONEY, SCROLL UP AND CLICK THE "BUY" BUTTON NOW!

Distributed Systems For Fun and Profit


Mikito Takada - 2013
    

Unit Testing: Principles, Practices, and Patterns


Vladimir Khorikov - 2019
    You’ll learn to spot which tests are performing, which need refactoring, and which need to be deleted entirely! Upgrade your testing suite with new testing styles, good patterns, and reliable automated testing.

Building Mobile Apps at Scale: 39 Engineering Challenges


Gergely Orosz - 2021
    By scale, we mean having numbers of users in the millions and being built by large engineering teams.For mobile engineers, this book is a blueprint for modern app engineering approaches. For non-mobile engineers and managers, it is a resource with which to build empathy and appreciation for the complexity of world-class mobile engineering.

Computer Science Distilled: Learn the Art of Solving Computational Problems


Wladston Ferreira Filho - 2017
    Designed for readers who don't need the academic formality, it's a fast and easy computer science guide. It teaches essential concepts for people who want to program computers effectively. First, it introduces discrete mathematics, then it exposes the most common algorithms and data structures. It also shows the principles that make computers and programming languages work.