计算机科学
Engineering a Compiler, Second Edition 豆瓣 Goodreads
作者: Keith Cooper / Linda Torczon Morgan Kaufmann 2011 - 2
This entirely revised second edition of Engineering a Compiler is full of technical updates and new material covering the latest developments in compiler technology. In this comprehensive text you will learn important techniques for constructing a modern compiler. Leading educators and researchers Keith Cooper and Linda Torczon combine basic principles with pragmatic insights from their experience building state-of-the-art compilers. They will help you fully understand important techniques such as compilation of imperative and object-oriented languages, construction of static single assignment forms, instruction scheduling, and graph-coloring register allocation.
In-depth treatment of algorithms and techniques used in the front end of a modern compiler
Focus on code optimization and code generation, the primary areas of recent research and development
Improvements in presentation including conceptual overviews for each chapter, summaries and review questions for sections, and prominent placement of definitions for new terms
Examples drawn from several different programming languages
BPF Performance Tools 豆瓣 Goodreads
作者: Brendan Gregg Addison Wesley 2019 - 11
BPF (eBPF) tracing is the superpower that can analyze everything, helping you find performance wins, troubleshoot software, and more. This book covers over one hundred and fifty BPF observability tools for the analysis of CPUs, memory, disks, file systems, networking, languages, applications, containers, hypervisors, security, and the
Linux kernel. These tools range from basic to advanced, producing new metrics, stack traces, and custom latency histograms.
This is a book for everyone: sysadmins, developers, SREs, performance engineers, database engineers, researchers, and students. While prior knowledge is helpful, this book summarizes performance engineering and
kernel internals to help even relative beginners understand the included BPF tools. No programming is necessary, either, unless you want to. These easy-to-use tools can be run as-is, and this book also teaches you how to customize and develop your own BPF observability tools using different interfaces, with a focus on the high-level
bpftrace front-end.
The Pragmatic Programmer 豆瓣
8.9 (8 个评分) 作者: David Thomas / Andrew Hunt Addison-Wesley Professional 2019 - 9
“One of the most significant books in my life.” —Obie Fernandez, Author, The Rails Way
“Twenty years ago, the first edition of The Pragmatic Programmer completely changed the trajectory of my career. This new edition could do the same for yours.” —Mike Cohn, Author of Succeeding with Agile, Agile Estimating and Planning, and User Stories Applied
“. . . filled with practical advice, both technical and professional, that will serve you and your projects well for years to come.” —Andrea Goulet, CEO, Corgibytes, Founder, LegacyCode.Rocks
“. . . lightning does strike twice, and this book is proof.” —VM (Vicky) Brasseur, Director of Open Source Strategy, Juniper Networks
The Pragmatic Programmer is one of those rare tech books you’ll read, re-read, and read again over the years. Whether you’re new to the field or an experienced practitioner, you’ll come away with fresh insights each and every time.
Dave Thomas and Andy Hunt wrote the first edition of this influential book in 1999 to help their clients create better software and rediscover the joy of coding. These lessons have helped a generation of programmers examine the very essence of software development, independent of any particular language, framework, or methodology, and the Pragmatic philosophy has spawned hundreds of books, screencasts, and audio books, as well as thousands of careers and success stories.
Now, twenty years later, this new edition re-examines what it means to be a modern programmer. Topics range from personal responsibility and career development to architectural techniques for keeping your code flexible and easy to adapt and reuse. Read this book, and you’ll learn how to:
Fight software rot
Learn continuously
Avoid the trap of duplicating knowledge
Write flexible, dynamic, and adaptable code
Harness the power of basic tools
Avoid programming by coincidence
Learn real requirements
Solve the underlying problems of concurrent code
Guard against security vulnerabilities
Build teams of Pragmatic Programmers
Take responsibility for your work and career
Test ruthlessly and effectively, including property-based testing
Implement the Pragmatic Starter Kit
Delight your users
Written as a series of self-contained sections and filled with classic and fresh anecdotes, thoughtful examples, and interesting analogies, The Pragmatic Programmer illustrates the best approaches and major pitfalls of many different aspects of software development. Whether you’re a new coder, an experienced programmer, or a manager responsible for software projects, use these lessons daily, and you’ll quickly see improvements in personal productivity, accuracy, and job satisfaction. You’ll learn skills and develop habits and attitudes that form the foundation for long-term success in your career.
You’ll become a Pragmatic Programmer.
Register your book for convenient access to downloads, updates, and/or corrections as they become available. See inside book for details.
Inside Java SE 9 (Developer's Library) 豆瓣
作者: Monica Beckwith Addison-Wesley Professional 2019 - 8
Inside Java SE 9 shows experienced programmers exactly how to take full advantage of the highly anticipated new features in Java SE 9. Featuring sample code that reflects real-world use cases, this practical book by JavaOne Rockstar Monica Beckwith explains the key features and functions of Java SE 9 and demonstrates the benefits of utilizing them.
Beckwith shows how Java’s new module system (“Project Jigsaw”) enables working developers to build scalable solutions that are more secure and maintainable; and deliver exceptional performance. She reviews Java SE 9 changes in areas ranging from data types to performance optimizations; showing how to make the most of Java’s new tools and facilities. For example, you’ll learn how to:
Create microbenchmarks using the microbenchmarking harness
Create a modular jar
Take advantage of Java’s new logging interface
Take full advantage of the new default GC (garbage collection)
Use sjavac, segmented code caches, and contended object monitors
Create, compile and profile simple applications using the Netbeans IDE, and Oracle Developer Studio Performance Analyzer And much more
If you’re moving to Java SE 9 -- or want to know why you should -- Inside Java SE 9 is the book you’ve been waiting for.
Modern C 豆瓣 Goodreads
作者: Jens Gustedt Manning Publications 2019 - 10
If you think "Modern" and "C" don't belong in the same sentence, think again. The C standards committee actively reviews and extends the language, with updated published C standards as recently as 2018. In Modern C, author Jens Gustedt teaches you the skills and features you need to write relevant programs in this tried-and-true language, including Linux and Windows, device drivers, web servers and browsers, smartphones, and much more!
Modern C teaches you to take your C programming skills to new heights, whether you're just starting out with C or have more extensive experience. Organized by level, this comprehensive guide lets you jump in where it suits you best while still reaping the maximum benefits.
AWS System Administration 豆瓣
作者: Mike Ryan / Federico Lucifredi O'Reilly Media 2018 - 8
With platforms designed for rapid adaptation and failure recovery such as Amazon Web Services, cloud computing is more like programming than traditional system administration. Tools for automatic scaling and instance replacement allow even small DevOps teams to manage massively scalable application infrastructures—if team members drop their old views of development and operations and start mastering automation.
This comprehensive guide shows developers and system administrators how to configure and manage AWS services including EC2, CloudFormation, Elastic Load Balancing, S3, and Route 53. Sysadms will learn will learn to automate their favorite tools and processes; developers will pick up enough ops knowledge to build a robust and resilient AWS application infrastructure.
Launch instances with EC2 or CloudFormation
Securely deploy and manage your applications with AWS tools
Learn to automate AWS configuration management with Python and Puppet
Deploy applications with Auto Scaling and Elastic Load Balancing
Explore approaches for deploying application and infrastructure updates
Save time on development and operations with reusable components
Learn strategies for managing log files in AWS environments
Configure a cloud-aware DNS service with Route 53
Use AWS CloudWatch to monitor your infrastructure and applications
Scalability Rules 豆瓣
作者: Martin L. Abbott / Michael T. Fisher Addison-Wesley Professional 2016 - 9
Scalability Rules, Second Edition, is the easy-to-use scalability primer and reference for every architect, developer, network/software engineer, web professional, and manager. Authors Martin L. Abbott and Michael T. Fisher have helped scale hundreds of high-growth companies and thousands of systems. Drawing on their immense experience, they present 50 up-to-the-minute technical best practices for supporting hyper growth practically anywhere.
Fully updated to reflect new technical trends and experiences, this edition is even easier to read, understand, and apply. Abbott and Fisher have also added powerful “stories behind the rules”: actual experiences and case studies from CTOs and technology executives at Etsy, NASDAQ, Salesforce, Shutterfly, Chegg, Warby Parker, Twitter, and other scalability pioneers.
Architects will find powerful technology-agnostic insights for creating and evaluating designs. Developers will discover specific techniques for handling everything from databases to state. Managers will get invaluable help in setting goals, making decisions, and interacting with technical teams. Whatever your role, you’ll find practical risk/benefit guidance for setting priorities, translating plans into action, and gaining maximum scalability at minimum cost.
You’ll learn how to
Simplify architectures and avoid “over-engineering”
Design scale into your solution, so you can scale on a just-in-time basis
Make the most of cloning and replication
Separate functionality and split data sets
Scale out, not up
Get more out of databases without compromising scalability
Eliminate unnecessary redirects and redundant double-checking
Use caches and CDNs more aggressively, without unacceptable complexity
Design for fault tolerance, graceful failure, and easy rollback
Emphasize statelessness, and efficiently handle state when you must
Effectively utilize asynchronous communication
Learn from your own mistakes and others’ high-profile failures
Prioritize your actions to get the biggest “bang for the buck”
Modern Java in Action 豆瓣
作者: Raoul-Gabriel Urma / Mario Fusco Manning Publications 2018 - 11
Manning's bestselling Java 8 book has been revised for Java 9! In Java 8 and 9 in Action, you'll build on your existing Java language skills with the newest features and techniques. After a practical introduction to lambdas using real-world Java code, you'll dive into the Streams API. Next, you'll discover event-driven reactive programming and see how the Java Module System (aka Jigsaw) will help change how you structure your code. This book also explains functional programming in Java, working with collections, and more.
"This is an excellent introduction to the newest features in Java 8 and 9. It provides clear and concise examples to help clarify how to use Java's newest features such as streams, lambda functions, and reactive streams."
~ Meredith Godar
"Hands on Java 8 and 9, simple and elegantly explained."
~ Deepak Bhaskaran
Technology Strategy Patterns 豆瓣
作者: Eben Hewitt O′Reilly 2018 - 10
Technologists who want their ideas heard, understood, and funded are often told to speak the language of business—without really knowing what that is. This book’s toolkit provides architects, product managers, technology managers, and executives with a shared language—in the form of repeatable, practical patterns and templates—to produce great technology strategies.
Author Eben Hewitt developed 39 patterns over the course of a decade in his work as CTO, CIO, and chief architect for several global tech companies. With these proven tools, you can define, create, elaborate, refine, and communicate your architecture goals, plans, and approach in a way that executives can readily understand, approve, and execute.
This book covers:
Architecture and strategy: Adopt a strategic architectural mindset to make a meaningful material impact
Creating your strategy: Define the components of your technology strategy using proven patterns
Communicating the strategy: Convey your technology strategy in a compelling way to a variety of audiences
Bringing it all together: Employ patterns individually or in clusters for specific problems; use the complete framework for a comprehensive strategy
Semantic Software Design 豆瓣
作者: Eben Hewitt O'Reilly Media 2019 - 11
With this practical book, architects, CTOs, and CIOs will learn a set of patterns for the practice of architecture, including analysis, documentation, and communication. Author Eben Hewitt shows you how to create holistic and thoughtful technology plans, communicate them clearly, lead people toward the vision, and become a great architect or Chief Architect.
This book covers each key aspect of architecture comprehensively, including how to incorporate business architecture, information architecture, data architecture, application (software) architecture together to have the best chance for the system’s success.
Get a practical set of proven architecture practices focused on shipping great products using architecture
Learn how architecture works effectively with development teams, management, and product management teams through the value chain
Find updated special coverage on machine learning architecture
Get usable templates to start incorporating into your teams immediately
Incorporate business architecture, information architecture, data architecture, and application (software) architecture together
Lagom: The Definitive Guide 豆瓣
作者: Lutz Huehnken / Markus Jura O'Reilly Media 2019 - 10
The Lagom Framework is a modern approach to microservices on the JVM, built according to the principles of the Reactive Manifesto, allowing you to write resilient microservices that scale. This book takes Java and Scala developers step-by-step through the development of your first microservice-based system with Lagom, from setting up your development environment to running Lagom services in production.
You’ll be introduced to the Lagom persistence API, which offers a guide-railed approach to Event Sourcing and CQRS. Furthermore, you’ll learn about asynchronous communication between microservices, some common design patterns for asynchronous systems, and how to solve common problems like versioning and schema evolution in Lagom.
MongoDB: The Definitive Guide, 3rd Edition 豆瓣
作者: Shannon Bradshaw / Kristina Chodorow O'Reilly Media 2019 - 9
Manage your data in a database system designed to support modern application development. The updated edition of this authoritative and accessible guide shows you the many advantages of using document-oriented databases, including how this secure, high-performance system enables flexible data models, high availability, and horizontal scalability.
Written by current and former members of the MongoDB team, the third edition is updated for MongoDB 4.0. You’ll find substantial updates on querying, indexing, aggregation, replica sets, ops manager, sharding administration, data administration, durability, monitoring, and security.
Authors Shannon Bradshaw (MongoDB) and Kristina Chodorow (Google) provide guidance for database developers, advanced configuration for system administrators, and use cases for a variety of projects. Ideal for NoSQL newcomers and experienced MongoDB users alike, this book also includes many real-world schema design examples.
Small Worlds 豆瓣
作者: Duncan J. Watts Princeton University Press 2003 - 11
Everyone knows the small-world phenomenon: soon after meeting a stranger, we are surprised to discover that we have a mutual friend, or we are connected through a short chain of acquaintances. In his book, Duncan Watts uses this intriguing phenomenon - colloquially called 'six degrees of separation' - as a prelude to a more general exploration: under what conditions can a small world arise in any kind of network? The networks of this story are everywhere: the brain is a network of neurons; organisations are people networks; the global economy is a network of national economies, which are networks of markets, which are in turn networks of interacting producers and consumers. Food webs, ecosystems, and the Internet can all be represented as networks, as can strategies for solving a problem, topics in a conversation, and even words in a language. Many of these networks, the author claims, will turn out to be small worlds. How do such networks matter? Simply put, local actions can have global consequences, and the relationship between local and global dynamics depends critically on the network's structure. Watts illustrates the subtleties of this relationship using a variety of simple models - the spread of infectious disease through a structured population; the evolution of cooperation in game theory; the computational capacity of cellular automata; and, the synchronisation of coupled phase-oscillators. Watts' novel approach is relevant to many problems that deal with network connectivity and complex systems' behaviour in general: How do diseases (or rumours) spread through social networks? How does cooperation evolve in large groups? How do cascading failures propagate through large power grids, or financial systems? What is the most efficient architecture for an organisation, or for a communications network? This fascinating exploration will be fruitful in a remarkable variety of fields, including physics and mathematics, as well as sociology, economics, and biology.
Analysis of Boolean Functions 豆瓣
作者: Ryan O'Donnell Cambridge University Press 2014 - 5
Boolean functions are perhaps the most basic objects of study in theoretical computer science. They also arise in other areas of mathematics, including combinatorics, statistical physics, and mathematical social choice. The field of analysis of Boolean functions seeks to understand them via their Fourier transform and other analytic methods. This text gives a thorough overview of the field, beginning with the most basic definitions and proceeding to advanced topics such as hypercontractivity and isoperimetry. Each chapter includes a "highlight application" such as Arrow's theorem from economics, the Goldreich-Levin algorithm from cryptography/learning theory, Håstad's NP-hardness of approximation results, and "sharp threshold" theorems for random graph properties. The book includes roughly 450 exercises and can be used as the basis of a one-semester graduate course. It should appeal to advanced undergraduates, graduate students, and researchers in computer science theory and related mathematical fields.
2019年7月2日 想读 Hao Huang@Emory:

Ex.1: ∃edge-signing of n-cube with 2^{n-1} eigs each of +/-sqrt(n)

Interlacing=>Any induced subgraph with >2^{n-1} vtcs has max eig >= sqrt(n)

Ex.2: In subgraph, max eig <= max valency, even with signs

Hence [GL92] the Sensitivity Conj, s(f) >= sqrt(deg(f))
计算机科学
An Invitation to Applied Category Theory 豆瓣
作者: Brendan Fong / David I. Spivak Cambridge University Press 2019 - 8
Category theory is unmatched in its ability to organize and layer abstractions and to find commonalities between structures of all sorts. No longer the exclusive preserve of pure mathematicians, it is now proving itself to be a powerful tool in science, informatics, and industry. By facilitating communication between communities and building rigorous bridges between disparate worlds, applied category theory has the potential to be a major organizing force. This book offers a self-contained tour of applied category theory. Each chapter follows a single thread motivated by a real-world application and discussed with category-theoretic tools. We see data migration as an adjoint functor, electrical circuits in terms of monoidal categories and operads, and collaborative design via enriched profunctors. All the relevant category theory, from simple to sophisticated, is introduced in an accessible way with many examples and exercises, making this an ideal guide even for those without experience of university-level mathematics.
Clojure 豆瓣
作者: Renzo Borgatti Manning Publications 2020 - 6
The Clojure standard library is a treasure trove of functions and macros that have been battle-tested over the years to solve the most challenging programming problems. Knowing what's available in the standard library not only liberates programmers from mundane tasks like connecting to data sources, parsing XML, dealing with numbers but also more advanced problems like handling concurrency and parallelism. Having a deep knowledge of the Clojure standard library helps you solve problems quickly and more efficiently.
Clojure: The Essential Reference is an extensive reference to the standard library but it doesn't read as a dull list of functions. In addition to providing clear explanations for each topic, this guide is full of real-world examples, links, and background information. The book approaches difficult topics by illustrating them in a readable and pleasant way, using visual structure to emphasize the essential information. The book is designed to be used as a reference, but each function provides an interesting reading on its own, offering insight into functional and general programming. By using this reference, you will be able to make the most idiomatic and efficient choice while developing a Clojure application.
Event Streams in Action 豆瓣
作者: Alexander Dean / Valentin Crettaz Manning Publications 2019 - 5
About the Technology
Many high-profile applications, like LinkedIn and Netflix, deliver nimble, responsive performance by reacting to user and system events as they occur. In large-scale systems, this requires efficiently monitoring, managing, and reacting to multiple event streams. Tools like Kafka, along with innovative patterns like unified log processing, help create a coherent data processing architecture for event-based applications.
About the Book
Event Streams in Action teaches you techniques for aggregating, storing, and processing event streams using the unified log processing pattern. In this hands-on guide, you'll discover important application designs like the lambda architecture, stream aggregation, and event reprocessing. You'll also explore scaling, resiliency, advanced stream patterns, and much more! By the time you're finished, you'll be designing large-scale data-driven applications that are easier to build, deploy, and maintain.
What's inside
Validating and monitoring event streams
Event analytics
Methods for event modeling
Examples using Apache Kafka and Amazon Kinesis
Compilers 豆瓣 Goodreads
8.4 (5 个评分) 作者: Alfred V. Aho / Monica S. Lam Addison Wesley 2006 - 9
This book provides the foundation for understanding the theory and pracitce of compilers. Revised and updated, it reflects the current state of compilation. Every chapter has been completely revised to reflect developments in software engineering, programming languages, and computer architecture that have occurred since 1986, when the last edition published. The authors, recognizing that few readers will ever go on to construct a compiler, retain their focus on the broader set of problems faced in software design and software development. Computer scientists, developers, and aspiring students that want to learn how to build, maintain, and execute a compiler for a major programming language.
Spark in Action, Second Edition 豆瓣
作者: Jean-Georges Perrin Manning Publications 2020 - 4
Spark in Action, Second Edition is an entirely new book that teaches you everything you need to create end-to-end analytics pipelines in Spark. Rewritten from the ground up with lots of helpful graphics, you’ll learn the roles of DAGs and dataframes, the advantages of “lazy evaluation”, and ingestion from files, databases, and streams.
By working through carefully-designed Java-based examples, you’ll delve into Spark SQL, interface with Python, and cache and checkpoint your data. Along the way, you’ll learn to interact with common enterprise data technologies like HDFS and file formats like Parquet, ORC, and Avro.
You’ll also discover interesting Spark use cases, like interactive reporting, machine learning pipelines, and even monitoring players in online games. You’ll even get a quick look at machine learning techniques you can apply without a PhD in mathematics! All examples are available in GitHub for you to explore and adapt as you learn. The demand for Spark-savvy developers is so steep, they’re among the highest paid in the industry today!
what's inside
Lots of examples based in the Spark Java APIs using real-life dataset and scenarios
Examples based on Spark v2.3 Ingestion through files, databases, and streaming
Building custom ingestion process
Querying distributed datasets with Spark SQL
Deploying Spark applications
Caching and checkpointing your data
Interfacing with data scientists using Python
Applied machine learning
Spark use cases including Lumeris, CERN, and IBM