好资源和短想法
Stephen Holiday
Spaced Repetition: My Learning Secret
That First Co-op Job
My Backup Strategy
How Project Rhino leverages Hadoop to build a graph of the music world
SMTP Email Relay for GMail (TLS) with Oozie Using Postfix
Automate Your iPod/iPhone/iPad's Media
Monitor Your Python App With FnordMetric and pyfnordmetric
Stack Overflow Word Trends by Day
Gender Prediction with Python
FidoFetch Architecture
Spaced Repetition: My Learning Secret
That First Co-op Job
My Backup Strategy
How Project Rhino leverages Hadoop to build a graph of the music world
SMTP Email Relay for GMail (TLS) with Oozie Using Postfix
Automate Your iPod/iPhone/iPad's Media
Monitor Your Python App With FnordMetric and pyfnordmetric
Stack Overflow Word Trends by Day
Gender Prediction with Python
FidoFetch Architecture
Philipp Hauer's Blog
Package by Feature
The Wall of Coding Wisdoms in Our Office
Improving Feedback Flows in Organizations with 'Complete Peer Feedback'
Effective Staff Appraisals with Employee Journey Maps
Don't Put Fat Jars in Docker Images
Slides and Recording of my Talks 'How to Mess up Code Reviews' at the JUG Saxony Day 2019 and the JCON 2019
Modern Best Practices for Testing in Java
MongoDB: Useful Development Tools and Snippets
Vaadin 10+: SASS Integration and CSS Refresh during Development
Focus on Integration Tests Instead of Mock-Based Tests
Package by Feature
The Wall of Coding Wisdoms in Our Office
Improving Feedback Flows in Organizations with 'Complete Peer Feedback'
Effective Staff Appraisals with Employee Journey Maps
Don't Put Fat Jars in Docker Images
Slides and Recording of my Talks 'How to Mess up Code Reviews' at the JUG Saxony Day 2019 and the JCON 2019
Modern Best Practices for Testing in Java
MongoDB: Useful Development Tools and Snippets
Vaadin 10+: SASS Integration and CSS Refresh during Development
Focus on Integration Tests Instead of Mock-Based Tests
真正的思考技术:来自德国社会学 Niklas Luhmann 的 Zettelkasten 方法
https://mp.weixin.qq.com/s/XveXTT8GDjFv2rt9iMU2RQ
https://mp.weixin.qq.com/s/XveXTT8GDjFv2rt9iMU2RQ
发现一个介绍 PyTorch 的playlist,动画效果属实不错,缺点是废话有点多。。建议1.25或1.5倍速 https://www.youtube.com/playlist?list=PLZbbT5o_s2xrfNyHZsM6ufI0iZENK9xgG
阿朱=行业趋势+开发管理+架构
[原]Salesforce生态和SAP生态有什么不同
[原]Salesforce生态和SAP生态有什么不同
http://dubbo.apache.org/zh-cn/docs/dev/principals/robustness.html
这一篇中的日志规则可以有效的借鉴:
日志
日志是发现问题、查看问题一个最常用的手段。日志质量往往被忽视,没有日志使用上的明确约定。重视 Log 的使用,提高 Log 的信息浓度。日志过多、过于混乱,会导致有用的信息被淹没。
要有效利用这个工具要注意:
严格约定WARN、ERROR级别记录的内容
WARN 表示可以恢复的问题,无需人工介入。
ERROR 表示需要人工介入问题。
有了这样的约定,监管系统发现日志文件的中出现 ERROR 字串就报警,又尽量减少了发生。过多的报警会让人疲倦,使人对报警失去警惕性,使 ERROR 日志失去意义。再辅以人工定期查看 WARN 级别信息,以评估系统的“亚健康”程度。
日志中,尽量多的收集关键信息
哪些是关键信息呢?
出问题时的现场信息,即排查问题要用到的信息。如服务调用失败时,要给出使用 Dubbo 的版本、服务提供者的 IP、使用的是哪个注册中心;调用的是哪个服务、哪个方法等等。这些信息如果不给出,那么事后人工收集的,问题过后现场可能已经不能复原,加大排查问题的难度。
如果可能,给出问题的原因和解决方法。这让维护和问题解决变得简单,而不是寻求精通者(往往是实现者)的帮助。
同一个或是一类问题不要重复记录多次
同一个或是一类异常日志连续出现几十遍的情况,还是常常能看到的。人眼很容易漏掉淹没在其中不一样的重要日志信息。要尽量避免这种情况。在可以预见会出现的情况,有必要加一些逻辑来避免。
如为一个问题准备一个标志,出问题后打日志后设置标志,避免重复打日志。问题恢复后清除标志。
虽然有点麻烦,但是这样做保证日志信息浓度,让监控更有效。
这一篇中的日志规则可以有效的借鉴:
日志
日志是发现问题、查看问题一个最常用的手段。日志质量往往被忽视,没有日志使用上的明确约定。重视 Log 的使用,提高 Log 的信息浓度。日志过多、过于混乱,会导致有用的信息被淹没。
要有效利用这个工具要注意:
严格约定WARN、ERROR级别记录的内容
WARN 表示可以恢复的问题,无需人工介入。
ERROR 表示需要人工介入问题。
有了这样的约定,监管系统发现日志文件的中出现 ERROR 字串就报警,又尽量减少了发生。过多的报警会让人疲倦,使人对报警失去警惕性,使 ERROR 日志失去意义。再辅以人工定期查看 WARN 级别信息,以评估系统的“亚健康”程度。
日志中,尽量多的收集关键信息
哪些是关键信息呢?
出问题时的现场信息,即排查问题要用到的信息。如服务调用失败时,要给出使用 Dubbo 的版本、服务提供者的 IP、使用的是哪个注册中心;调用的是哪个服务、哪个方法等等。这些信息如果不给出,那么事后人工收集的,问题过后现场可能已经不能复原,加大排查问题的难度。
如果可能,给出问题的原因和解决方法。这让维护和问题解决变得简单,而不是寻求精通者(往往是实现者)的帮助。
同一个或是一类问题不要重复记录多次
同一个或是一类异常日志连续出现几十遍的情况,还是常常能看到的。人眼很容易漏掉淹没在其中不一样的重要日志信息。要尽量避免这种情况。在可以预见会出现的情况,有必要加一些逻辑来避免。
如为一个问题准备一个标志,出问题后打日志后设置标志,避免重复打日志。问题恢复后清除标志。
虽然有点麻烦,但是这样做保证日志信息浓度,让监控更有效。
A List Apart: The Full Feed
Color Craft & Counterpoint: A Designer’s Life with Color Vision Deficiency
Building the Woke Web: Web Accessibility, Inclusion & Social Justice
Figure It Out
Jobs To Be Done
Usability Testing for Voice Content
Cross-Cultural Design
Standards for Writing Accessibly
Making Room for Variation
Request with Intent: Caching Strategies in the Age of PWAs
Responsible JavaScript: Part III
Color Craft & Counterpoint: A Designer’s Life with Color Vision Deficiency
Building the Woke Web: Web Accessibility, Inclusion & Social Justice
Figure It Out
Jobs To Be Done
Usability Testing for Voice Content
Cross-Cultural Design
Standards for Writing Accessibly
Making Room for Variation
Request with Intent: Caching Strategies in the Age of PWAs
Responsible JavaScript: Part III
Google Developers Blog
Join 24 Hours of Google Cloud Talks by DevRel
Unwrapping the Android 11 Beta, plus more developer updates
Discontinuing support for JSON-RPC and global HTTP batch endpoints
3 ways local developer communities are staying connected virtually
Sip a cup of Java 11 for your Cloud Functions
Strengthen your cloud skills with Google Cloud training
Building a more resilient world together
Android 11: Beta Plans
Google for Startups Accelerator: Meet the first (and fully-remote) Brazilian class of 2020
MediaPipe KNIFT: Template-based feature matching
Join 24 Hours of Google Cloud Talks by DevRel
Unwrapping the Android 11 Beta, plus more developer updates
Discontinuing support for JSON-RPC and global HTTP batch endpoints
3 ways local developer communities are staying connected virtually
Sip a cup of Java 11 for your Cloud Functions
Strengthen your cloud skills with Google Cloud training
Building a more resilient world together
Android 11: Beta Plans
Google for Startups Accelerator: Meet the first (and fully-remote) Brazilian class of 2020
MediaPipe KNIFT: Template-based feature matching
Eli Bendersky's website
You don't need virtualenv in Go
Optional JSON fields in Go
Representing JSON structures in Go
Faking stdin and stdout in Go
Testing flag parsing in Go programs
Summary of reading: January - March 2020
Implementing Raft: Part 3 - Persistence and Optimizations
Implementing Raft: Part 2 - Commands and Log Replication
Implementing Raft: Part 1 - Elections
Implementing Raft: Part 0 - Introduction
You don't need virtualenv in Go
Optional JSON fields in Go
Representing JSON structures in Go
Faking stdin and stdout in Go
Testing flag parsing in Go programs
Summary of reading: January - March 2020
Implementing Raft: Part 3 - Persistence and Optimizations
Implementing Raft: Part 2 - Commands and Log Replication
Implementing Raft: Part 1 - Elections
Implementing Raft: Part 0 - Introduction
The Cloudflare Blog
Introducing Cache Analytics
Using data science and machine learning for improved customer support
Health Check Analytics and how you can use it
Project Galileo’s 6th year Anniversary: The Impact of COVID-19 on the most vulnerable groups on the Internet
High Availability Load Balancers with Maglev
UtahFS: Encrypted File Storage
Ladies and Gentlemen…Cloudflare TV!
How we use HashiCorp Nomad
Cyberattacks since the murder of George Floyd
Export logs from Cloudflare Gateway with Logpush
Introducing Cache Analytics
Using data science and machine learning for improved customer support
Health Check Analytics and how you can use it
Project Galileo’s 6th year Anniversary: The Impact of COVID-19 on the most vulnerable groups on the Internet
High Availability Load Balancers with Maglev
UtahFS: Encrypted File Storage
Ladies and Gentlemen…Cloudflare TV!
How we use HashiCorp Nomad
Cyberattacks since the murder of George Floyd
Export logs from Cloudflare Gateway with Logpush