计算机科学
Distributed Tracing in Practice 豆瓣
作者: Ben Sigelman / Jonathan Mace O'Reilly Media, Inc. 2020 - 6
Most applications today are distributed in some fashion. Monitoring the health and performance of these distributed architectures requires a new approach. Enter distributed tracing, a method of profiling and monitoring applications—especially those that use microservice architectures. There’s just one problem: distributed tracing can be hard. But it doesn’t have to be.
With this practical guide, you’ll learn what distributed tracing is and how to use it to understand the performance and operation of your software. Key players at LightStep walk you through instrumenting your code for tracing, collecting the data that your instrumentation produces, and turning it into useful, operational insights. If you want to start implementing distributed tracing, this book tells you what you need to know.
You’ll learn:
The pieces of a distributed tracing deployment: Instrumentation, data collection, and delivering value
Best practices for instrumentation (the methods for generating trace data from your service)
How to deal with or avoid overhead, costs, and sampling
How to work with spans (the building blocks of request-based distributed traces) and choose span characteristics that lead to valuable traces
Where distributed tracing is headed in the future
Mastering Blockchain 豆瓣
作者: Daniel Cawrey / Lorne Lantz O'Reilly Media, Inc. 2020 - 10
The future will be increasingly decentralized. As the publicity surrounding bitcoin and blockchain has shown, decentralized technology and distributed business models are already popular. Yet the disruptive potential of this technology is obscured by hype and misconceptions in equal measure. In this detailed guide, Lorne Lantz and Daniel Cawrey distill the complex ideas behind blockchain into an easily digestible reference that shows what is really going on under the hood.
Finance and technology professionals will learn how a blockchain works as they explore the evolution and current state of cryptocurrencies, and the function of smart contracts. If you’re evaluating whether to invest your time in the cryptocurrency and blockchain industry, this book is for you. Get beyond the buzzwords and discover what the technology has to offer.
Learn why Bitcoin was fundamentally important to the birth of blockchain
Explore altcoin and altchain successes and failures, to see what can be done with blockchains and cryptocurrencies
Understand the challenges of scaling a blockchain and forking a blockchain project
See what Ethereum offers beyond Bitcoin
Examine how the money flows in crypto markets
Discover why, how, and where governments are intervening in the cryptocurrency and blockchain industry
Understand the perspectives of real-world practitioners in the space
Architecting for Scale, 2nd Edition 豆瓣
作者: Lee Atchison O'Reilly Media, Inc. 2020 - 3
Every day, companies struggle to scale critical applications. As traffic volume and data demands increase, these applications become more complicated and brittle, exposing risks and compromising availability. And with the popularity of software as a service, scaling has never been more important. Updated with an expanded focus on modern architecture paradigms such as microservices and cloud computing, this practical guide provides techniques for building systems that can handle huge quantities of traffic, data, and demand without affecting the quality your customers expect.
Author Lee Atchison shows architects, managers, and directors in both engineering andoperations organizations how to build applications at scale that run more smoothly and reliably and meet the needs of your customers.
See how scaling affects the availability of your services, why that matters, and how to improve it
Dive into a modern service-based application architecture that ensures high availability and reduces the effects of service failures
Explore the Single Team Owned Service Architecture paradigm (STOSA)—a model for scaling your development organization as your application scales
Understand, measure, and mitigate risk in your systems
Use the cloud to build highly scalable applications
Learn Prolog Now! 豆瓣
作者: Patrick Blackburn / Johan Bos College Publications 2006 - 6
Prolog is a programming language, but a rather unusual one. ``Prolog'' is short for ``Programming with Logic'', and the link with logic gives Prolog its special character. At the heart of Prolog lies a surprising idea: don't tell the computer what to do. Instead, describe situations of interest, and compute by asking questions. Prolog will logically deduce new facts about the situations and give its deductions back to us as answers. Why learn Prolog? For a start, its ``say what the problem is, rather than how to solve it'' stance, means that it is a very high level language, good for knowledge rich applications such as artificial intelligence, natural language processing, and the semantic web. So by studying Prolog, you gain insight into how sophisticated tasks can be handled computationally. Moreover, Prolog requires a different mindset. You have to learn to see problems from a new perspective, declaratively rather than procedurally. Acquiring this mindset, and learning to appreciate the links between logic and programming, makes the study of Prolog both challenging and rewarding. Learn Prolog Now! is a practical introduction to this fascinating language. Freely available as a web-book since 2002 (see www.learnprolognow.org) Learn Prolog Now! has became one of the most popular introductions to the Prolog programming language, an introduction prized for its clarity and down-to-earth approach. It is widely used as a textbook at university departments around the world, and even more widely used for self study. College Publications is proud to present here the first hard-copy version of this online classic. Carefully revised in the light of reader's feedback, and now with answers to all the exercises, here you will find the essential material required to help you learn Prolog now.
SQL基础教程(第2版) 豆瓣
SQL 第2版 ゼロからはじめるデータベース操作
9.0 (14 个评分) 作者: [日] MICK 译者: 孙 淼 / 罗 勇 人民邮电出版社 2017 - 6
本书是畅销书《SQL基础教程》第2版,介绍了关系数据库以及用来操作关系数据库的SQL语言的使用方法。书中通过丰富的图示、大量示例程序和详实的操作步骤说明,让读者循序渐进地掌握SQL的基础知识和使用技巧,切实提高编程能力。每章结尾设置有练习题,帮助读者检验对各章内容的理解程度。另外,本书还将重要知识点总结为“法则”,方便读者随时查阅。第2版除了将示例程序更新为对应新版本的DB的SQL之外,还新增了一章,介绍如何从应用程序执行SQL。
Cassandra: The Definitive Guide, 3rd Edition 豆瓣
作者: Eben Hewitt / Jeff Carpenter O'Reilly Media, Inc. 2020 - 7
Imagine what you could do if scalability wasn't a problem. With this hands-on guide, you’ll learn how the Cassandra database management system handles hundreds of terabytes of data while remaining highly available across multiple data centers. This third edition—updated for Cassandra 4.0—provides the technical details and practical examples you need to put this database to work in a production environment.
Authors Jeff Carpenter and Eben Hewitt demonstrate the advantages of Cassandra’s nonrelational design, with special attention to data modeling. If you’re a developer, DBA, or application architect looking to solve a database scaling issue or future-proof your application, this guide helps you harness Cassandra’s speed and flexibility.
Understand Cassandra’s distributed and decentralized structure
Use the Cassandra Query Language (CQL) and cqlsh—the CQL shell
Create a working data model and compare it with an equivalent relational model
Develop sample applications using client drivers for languages including Java, Python, and Node.js
Explore cluster topology and learn how nodes exchange data
Analytic Combinatorics 豆瓣
作者: Philippe Flajolet / Robert Sedgewick Cambridge University Press 2009 - 1
Analytic combinatorics aims to enable precise quantitative predictions of the properties of large combinatorial structures. The theory has emerged over recent decades as essential both for the analysis of algorithms and for the study of scientific models in many disciplines, including probability theory, statistical physics, computational biology, and information theory. With a careful combination of symbolic enumeration methods and complex analysis, drawing heavily on generating functions, results of sweeping generality emerge that can be applied in particular to fundamental structures such as permutations, sequences, strings, walks, paths, trees, graphs and maps. This account is the definitive treatment of the topic. The authors give full coverage of the underlying mathematics and a thorough treatment of both classical and modern applications of the theory. The text is complemented with exercises, examples, appendices and notes to aid understanding. The book can be used for an advanced undergraduate or a graduate course, or for self-study.
2019年10月5日 在读
昨天听了yuandong tian的talk 非常精彩 对于unnatural input data 如何把human heuristic reduction成能用Deep learning. 形成了方法论的工具:NeuRewriter. 讲了4篇2019的nips来应用这个武器:job schedule, routing, decompilation, learn architecture. 想去🇨🇦的nips了
计算机科学 算法
Bandit Algorithms for Website Optimization 豆瓣
作者: John Myles White O'Reilly Media 2013 - 1
This book shows you how to run experiments on your website using A/B testing - and then takes you a huge step further by introducing you to bandit algorithms for website optimization. Author John Myles White shows you how this family of algorithms can help you boost website traffic, convert visitors to customers, and increase many other measures of success. This is the first developer-focused book on bandit algorithms, which have previously only been described in research papers. You'll learn about several simple algorithms you can deploy on your own websites to improve your business including the epsilon-greedy algorithm, the UCB algorithm and a contextual bandit algorithm. All of these algorithms are implemented in easy-to-follow Python code and be quickly adapted to your business's specific needs. You'll also learn about a framework for testing and debugging bandit algorithms using Monte Carlo simulations, a technique originally developed by nuclear physicists during World War II. Monte Carlo techniques allow you to decide whether A/B testing will work for your business needs or whether you need to deploy a more sophisticated bandits algorithm.
I Heart Logs 豆瓣
作者: Jay Kreps O'Reilly Media 2014 - 10
Why a book about logs? That’s easy: the humble log is an abstraction that lies at the heart of many systems, from NoSQL databases to cryptocurrencies. Even though most engineers don’t think much about them, this short book shows you why logs are worthy of your attention.
Based on his popular blog posts, LinkedIn principal engineer Jay Kreps shows you how logs work in distributed systems, and then delivers practical applications of these concepts in a variety of common uses—data integration, enterprise architecture, real-time stream processing, data system design, and abstract computing models.
2019年10月4日 已读
如何把LinkedIn遇到的distsys的painpoint拆解成log+serving layer 并独立成一个component 以及各种思路(比较了lambda arch)
软件工程 计算机科学 分布式
Cloud Native Transformation 豆瓣
作者: Michelle Gienow / Jamie Dobson O'Reilly Media 2019
In the past few years, going cloud native has been a big advantage for many companies. But it’s a tough technique to get right, especially for enterprises with critical legacy systems. This practical hands-on guide examines effective architecture, design, and cultural patterns to help you transform your organization into a cloud native enterprise—whether you’re moving from older architectures or creating new systems from scratch.
By following Wealth Grid, a fictional company, you’ll understand the challenges, dilemmas, and considerations that accompany a move to the cloud. Technical managers and architects will learn best practices for taking on a successful company-wide transformation.
Cloud migration consultants Pini Reznik, Jamie Dobson, and Michelle Gienow draw patterns from the growing community of expert practitioners and enterprises that have successfully built cloud native systems. You’ll learn what works and what doesn’t when adopting cloud native—including how this transition affects not just your technology but also your organizational structure and processes.
You’ll learn:
What cloud native means and why enterprises are so interested in it
Common barriers and pitfalls that have affected other companies (and how to avoid them)
Context-specific patterns for a successful cloud native transformation
How to implement a safe, evolutionary cloud native approach
How companies addressed root causes and misunderstandings that hindered their progress
Case studies from real-world companies that have succeeded with cloud native transformations
Seeking SRE 豆瓣
作者: David Blank-edelman O′Reilly 2018 - 9
Organizations big and small have started to realize just how crucial system and application reliability is to their business. They’ve also learned just how difficult it is to maintain that reliability while iterating at the speed demanded by the marketplace. Site Reliability Engineering (SRE) is a proven approach to this challenge.
SRE is a large and rich topic to discuss. Google led the way with Site Reliability Engineering, the wildly successful O’Reilly book that described Google’s creation of the discipline and the implementation that’s allowed them to operate at a planetary scale. Inspired by that earlier work, this book explores a very different part of the SRE space. The more than two dozen chapters in Seeking SRE bring you into some of the important conversations going on in the SRE world right now.
Listen as engineers and other leaders in the field discuss:
Different ways of implementing SRE and SRE principles in a wide variety of settings
How SRE relates to other approaches such as DevOps
Specialties on the cutting edge that will soon be commonplace in SRE
Best practices and technologies that make practicing SRE easier
The important but rarely explored human side of SRE
David N. Blank-Edelman is the book’s curator and editor.
Cloud Native Patterns 豆瓣
作者: Cornelia Davis Manning Publication 2019 - 7
We are amid a radical change in how we design and build applications. With cloud platforms like AWS, Azure, and Google Cloud, even small teams can take full advantage of web-scale distributed application patterns and practice. Users and customers have higher expectations for reliability, availability, and performance. Cloud-native software promises near-zero downtime, shortened feedback cycles, multi-device support, and improved cost control. All this means developers need to learn new skills and techniques, along with a new way of thinking about application design.
Python for DevOps 豆瓣
作者: Grig Gheorghiu / Alfredo Deza O'Reilly Media 2019
Much has changed in technology over the past decade. Data is hot, the cloud is ubiquitous, and many organizations need some form of automation. Throughout all these transformations, Python has become one of the most popular languages in the world. This practical guide shows you how to use Python for everyday Linux systems administration tasks with today’s most useful DevOps tools, including Docker, Kubernetes, and Terraform.
Learning how to interact and automate with Linux is an essential skill for millions of professionals. Python makes it much easier. With this book, you’ll learn how to develop software and solve problems using containers, as well as how to monitor, instrument, load-test, and operationalize your software. If you’re looking for effective ways to "get stuff done" in Python, this is your guide.
Automate several tasks using Python
Work more efficiently by using a smaller subset of the language
Use continuous integration systems to increase software quality
Mix shell and Python commands to solve problems
2019年10月2日 在读
'Pulumi up' in pending operations state, while AWS resource was created. It was a classic case of EVENTUAL CONSISTENCY that needed to be RESOLVED.
实例挺好, 没做过SRE很难理解分布式系统的painpoint, 也就没法认识到WHY.
软件工程 计算机科学 分布式
Software Estimation Without Guessing 豆瓣
作者: George Dinwiddie Pragmatic Bookshelf 2019
Estimating software development often produces more angst than value, but it doesn't have to. Identify the needs behind estimate requests and determine how to meet those needs simply and easily. Choose estimation techniques based on current needs and available information, gaining benefit while reducing cost and effort. Detect bad assumptions that might sink your project if you don't adjust your plans. Discover what to do when an estimate is wrong, how to recover, and how to use that knowledge for future planning. Learn to communicate about estimates in a healthy and productive way, maximizing advantage to the organization and minimizing damage to the people.
In a world where most developers hate estimation and most managers fear disappointment with the results, there is hope for both. It requires giving up some widely held misconceptions. Let go of the notion that "an estimate is an estimate" and estimate for the particular need you, and your organization, have. Realize that estimates have a limited shelf-life, and reestimate frequently if it's important. When reality differs from your estimate, don't lament; mine that disappointment for the gold that can be the longer-term jackpot.
Estimate in comparison to past experience, by modeling the work mathematically, or a hybrid of both. Learn strategies for effective decomposition of work and aspects of the work that likely affect your estimates. Hedge your bets by comparing the results of different approaches. Find out what to do when an estimate proves wrong. And they will. They're estimates, after all. You'll discover that you can use estimates to warn you of danger so you can take appropriate action in time. Learn some crucial techniques to understand and communicate with those who need to understand.
Address both the technical and sociological aspects of estimation, and you'll help your organization achieve its desired goals with less drama and more benefit.
Designing Web APIs 豆瓣
作者: Brenda Jin / Saurabh Sahni O′Reilly 2018 - 9
Using a web API to provide services to application developers is one of the more satisfying endeavors that software engineers undertake. But building a popular API with a thriving developer ecosystem is also one of the most challenging. With this practical guide, developers, architects, and tech leads will learn how to navigate complex decisions for designing, scaling, marketing, and evolving interoperable APIs.
Authors Brenda Jin, Saurabh Sahni, and Amir Shevat explain API design theory and provide hands-on exercises for building your web API and managing its operation in production. You’ll also learn how to build and maintain a following of app developers. This book includes expert advice, worksheets, checklists, and case studies from companies including Slack, Stripe, Facebook, Microsoft, Cloudinary, Oracle, and GitHub.
Get an overview of request-response and event-driven API design paradigms
Learn best practices for designing an API that meets the needs of your users
Use a template to create an API design process
Scale your web API to support a growing number of API calls and use cases
Regularly adapt the API to reflect changes to your product or business
Provide developer resources that include API documentation, samples, and tools
Design and Build Great Web APIs 豆瓣
作者: Mike Amundsen Pragmatic Bookshelf 2020 - 6
APIs are transforming the business world at an increasing pace. Gain the essential skills needed to quickly design, build, and deploy quality web APIs that are robust, reliable, and resilient. Go from initial design through prototyping and implementation to deployment of mission-critical APIs for your organization. Test, secure, and deploy your API with confidence and avoid the "release into production" panic. Tackle just about any API challenge with more than a dozen open-source utilities and common programming patterns you can apply right away.
Good API design means starting with the API-First principle - understanding who is using the API and what they want to do with it - and applying basic design skills to match customers' needs while solving business-critical problems. Use the Sketch-Design-Build method to create reliable and scalable web APIs quickly and easily without a lot of risk to the day-to-day business operations. Create clear sequence diagrams, accurate specifications, and machine-readable API descriptions all reviewed, tested, and ready to turn into fully-functional NodeJS code.
Create reliable test collections with Postman and implement proper identity and access control security with AuthO-without added cost or risk to the company. Deploy all of this to Heroku using a continuous delivery approach that pushes secure, well-tested code to your public servers ready for use by both internal and external developers.
From design to code to test to deployment, unlock hidden business value and release stable and scalable web APIs that meet customer needs and solve important business problems in a consistent and reliable manner.
Clean Agile: Back to Basics Goodreads 豆瓣
作者: Robert C. Martin Prentice Hall 2019 - 10
Twenty years after the Agile Manifesto was first presented, the legendary Robert C. Martin (“Uncle Bob”) reintroduces agile values and principles for a new generation of software developers. In this eagerly-awaited book, the best-selling author of The Clean Coder shows how to bring unprecedented levels of professionalism and discipline to agile development — and thereby write far more effective, successful software.
As with his other books, Martin's Clean Agile: Back to Basics doesn't merely present multiple choices and options, and say "use your best judgment": it tells you what choices to make, and why those choices are critical to your success. Writing in the agile context, Martin offers direct, no-nonsense answers to crucial questions like:
How and why did Agile begin?
What are the costs and benefits of Agile?
What are the most effective practices of Agile Development?
How should an Agile team be organized?
What roles do programmers, testers, and managers play in an Agile team?
What is the role of the Agile Coach?
What about Agile for large projects?
What kinds of projects benefit from Agile?
Clean Agile: Back to Basics is essential reading for programmers, managers, testers, project managers and every software professional called upon to lead or participate in an agile project.
Data Pipelines with Apache Airflow 豆瓣
作者: Bas Harenslak / Julian de Ruiter Manning Publications 2020 - 6
Data Pipelines with Apache Airflow is your essential guide to working with the powerful Apache Airflow pipeline manager. Expert data engineers Bas Harenslak and Julian de Ruiter take you through best practices for creating pipelines for multiple tasks, including data lakes, cloud deployments, and data science. Part desktop reference, part hands-on tutorial, this book teaches you the ins-and-outs of the Directed Acyclic Graphs (DAGs) that power Airflow, and how to write your own DAGs to meet the needs of your projects. You’ll learn how to automate moving and transforming data, managing pipelines by backfilling historical tasks, developing custom components for your specific systems, and setting up Airflow in production environments. With complete coverage of both foundational and lesser-known features, when you’re done you’ll be set to start using Airflow for seamless data pipeline development and management.
what's inside
Framework foundation and best practices
Airflow's execution and dependency system
Testing Airflow DAGs
Running Airflow in production
The Effective Engineer 豆瓣 Goodreads
9.4 (7 个评分) 作者: Edmond Lau The Effective Bookshelf, Palo Alto, CA. 2015 - 3
The most effective engineers — the ones who have risen to become distinguished engineers and leaders at their companies — can produce 10 times the impact of other engineers, but they're not working 10 times the hours.
They've internalized a mindset that took me years of trial and error to figure out. I'm going to share that mindset with you — along with hundreds of actionable techniques and proven habits — so you can shortcut those years.
Introducing The Effective Engineer — the only book designed specifically for today's software engineers, based on extensive interviews with engineering leaders at top tech companies, and packed with hundreds of techniques to accelerate your career.
For two years, I embarked on a quest seeking an answer to one question:
How do the most effective engineers make their efforts, their teams, and their careers more successful?
I interviewed and collected stories from engineering VPs, directors, managers, and other leaders at today's top software companies: established, household names like Google, Facebook, Twitter, and LinkedIn; rapidly growing mid-sized companies like Dropbox, Square, Box, Airbnb, and Etsy; and startups like Reddit, Stripe, Instagram, and Lyft.
These leaders shared stories about the most valuable insights they've learned and the most common and costly mistakes that they've seen engineers — sometimes themselves — make.
This is just a small sampling of the hard questions I posed to them:
What engineering qualities correlate with future success?
What have you done that has paid off the highest returns?
What separates the most effective engineers you've worked with from everyone else?
What's the most valuable lesson your team has learned in the past year?
What advice do you give to new engineers on your team?
Everyone's story is different, but many of the lessons share common themes.
You'll get to hear stories like:
How did Instagram's team of 5 engineers build and support a service that grew to over 40 million users by the time the company was acquired?
How and why did Quora deploy code to production 40 to 50 times per day?
How did the team behind Google Docs become the fastest acquisition to rewrite its software to run on Google's infrastructure?
How does Etsy use continuous experimentation to design features that are guaranteed to increase revenue at launch?
How did Facebook's small infrastructure team effectively operate thousands of database servers?
How did Dropbox go from barely hiring any new engineers to nearly tripling its team size year-over-year?
What's more, I've distilled their stories into actionable habits and lessons that you can follow step-by-step to make your career and your team more successful.
The skills used by effective engineers are all learnable.
And I'll teach them to you. With The Effective Engineer, I'll teach you a unifying framework called leverage — the value produced per unit of time invested — that you can use to identify the activities that produce disproportionate results.
Here's a sneak peek at some of the lessons you'll learn. You'll learn how to:
Prioritize the right projects and tasks to increase your impact.
Earn more leeway from your peers and managers on your projects.
Spend less time maintaining and fixing software and more time building and shipping new features.
Produce more accurate software estimates.
Validate your ideas cheaply to reduce wasted work.
Navigate organizational and people-related bottlenecks.
Find the appropriate level of code reviews, testing, abstraction, and technical debt to balance speed and quality.
Shorten your debugging workflow to increase your iteration speed.
Use metrics to quantify your impact and consistently make progress.
SQL Antipatterns 豆瓣
作者: Bill Karwin Pragmatic Bookshelf 2010 - 7
Each chapter in this book helps you identify, explain, and correct a unique and dangerous antipattern. The four parts of the book group the antipatterns in terms of logical database design, physical database design, queries, and application development.
The chances are good that your application's database layer already contains problems such as Index Shotgun , Keyless Entry , Fear of the Unknown , and Spaghetti Query . This book will help you and your team find them. Even better, it will also show you how to fix them, and how to avoid these and other problems in the future.
SQL Antipatterns gives you a rare glimpse into an SQL expert's playbook. Now you can stamp out these common database errors once and for all.
Whatever platform or programming language you use, whether you're a junior programmer or a Ph.D., SQL Antipatterns will show you how to design and build databases, how to write better database queries, and how to integrate SQL programming with your application like an expert. You'll also learn the best and most current technology for full-text search, how to design code that is resistant to SQL injection attacks, and other techniques for success.