> 一份2020年2月23日的信息流提炼 ### 类似 zerotier 的自部署方案 原文:https://www.v2ex.com/t/755157#reply5 - **n2n tinc** - [**peervpn**](https://peervpn.net/) - **[vpncloud](https://github.com/dswd/vpncloud)** - **wireguard** - [**nebula**](https://github.com/slackhq/nebula) #### 关于zerotier - A smart p2p VPN 其实最近试用了下zerotier,很早就有听过这个p2p VPN的服务 比起工作上接触到的其他VPN服务,学习成本很低。 免费plan可接入50个设备,个人用也完全够用了。 ### 4个Linux开源日志监视/管理工具 原文:https://www.tecmint.com/best-linux-log-monitoring-and-management-tools/ - **Graylog 2**: [centralized logging management tool](https://www.tecmint.com/open-source-centralized-linux-log-management-tools/) - **Logcheck**: **[Logcheck](https://logcheck.org/)** 是另一个以cron作业方式运行的开源日志监控工具。它对成千上万的日志文件进行筛选,以检测被触发的违规行为或系统事件。然后,Logcheck会将警报的详细摘要发送到一个配置的电子邮件地址,以提醒运营团队注意一个问题,如未经授权的违规行为或系统故障。 - **Logwatch**: [**Logwatch**](https://sourceforge.net/projects/logwatch/) 是一个开源的、高度可定制的日志收集和分析应用程序。它可以解析系统和应用程序的日志,并生成一份关于应用程序运行情况的报告。报告可以通过命令行或通过专用的电子邮件地址发 - **Logstash**: **[Logstash](https://www.elastic.co/logstash)** 是一个开源的服务器端数据处理管道,它接受来自多种来源的数据,包括本地文件或分布式系统,如**S3**。然后,它对日志进行处理,并将其输送到**Elasticsearch**等平台,在那里对其进行分析,并在以后进行存档。它是一个相当强大的工具,因为它可以从多个应用程序中摄取大量的日志,并随后将它们同时输出到不同的数据库或引擎。. ### 破解密码 原文:https://www.go350.com/posts/cracking-passwords-with-cheap-hardware-at-defcon/ - John the Ripper - Hashcat ### 阅读 1.About golang 2.永远不要低估易用性有多重要 - [Go is not an easy language](https://news.ycombinator.com/item?id=26220693) - [Best practices for REST API design (2020) | Hacker News](https://news.ycombinator.com/item?id=26225373) 精华评论: 进入壁垒是无形的。内部的人看不到,而参与制造这些障碍的人最常看不到。 我曾经和一位创始人聊过他们的注册流程。这位创始人有志于成为全球玩家。他们说,他们流程的第二步包括输入信用卡号码。我不得不阻止他们。"那不使用信用卡的人怎么办?" 他们不以为然。"你知道,中国,非洲大部分地区...... "他们其实从来没有想过人们是否有信用卡,因为与他们交流的每个人都有信用卡。 回到语言。如果你从来没有为普通听众讲授过计算机编程的入门课程,你就会对一门语言的重要性和不重要性视而不见。你看到像`foo.bar()`这样的东西就会想:"是啊,这是一个简单的方法调用",你不知道你刚刚失去了多少人。 **永远不要低估易用性有多重要**。作为一个社区,我们几十年来一直在选择*反对*那些关心语言人体工程学的人,因为他们被一堵充满标点符号的文字墙打脸,然后转身离开。我们在争论括号的归属时,却没有意识到我们已经排除了多少成千上万的人。 易用性是一种语言最重要的部分。只是进入门槛是无形的,所以那些碰巧很适合vim和emacs辩论的人就可以说话了,而绝大多数潜在的程序员却被留在了门外。 **我们意外地制造了进入壁垒,因为我们是为我们这样的人设计的。对我们来说,这些障碍是看不见的。 > Barriers to entry are invisible. They are invisible to people on the inside and most frequently invisible to people who have a hand in creating those barriers. > > I once had a conversation with a founder about their signup flow. This founder had aspirations to be a global player. They said that step 2 of their flow included entering a credit card number. I had to stop them. "What about people who don't use credit cards?" They were nonplussed. "You know, China, much of Africa ..." they had never actually thought about whether people had credit cards because every single person they interacted with had one. > > Back to languages. If you've never taught an introduction to computer programming for a general audience you are blind to what does and does not matter about a language. You look at things like `foo.bar()` and think "Yeah that's a simple method invocation" and have no idea how many people you just lost. > > Never underestimate how much ease of use matters. We, as a community, have selected for decades *against* people who care about language ergonomics because they get hit in the face with a wall of punctuation filled text and turn away. We fight over where braces belong while not realizing how many hundreds of thousands of people we've excluded. > > Ease of use is *the* most important part of a language. It's just that the barriers to entry are invisible and so the people who happen to be well suited to vim vs emacs debates get to talk while the vast majority of potential programmers are left on the outside. > > **We create barriers to entry accidentally because we design for people like us. To us the barriers are invisible.** ### Golang 后台系统方案 - [GoAdminGroup/go-admin](GoAdminGroup/go-admin) - [flipped-aurora/gin-vue-admin](https://github.com/flipped-aurora/gin-vue-admin) ### 有趣的相遇 - [Changelog](https://changelog.com/):开发者的news与podcasts - [Paper.js](http://paperjs.org/) : 矢量图形脚本的瑞士军刀 ### 一些收获 - 所有好的解决方案,包括语言与框架一定都是domain specific的。 - 编程语言的浅层了解(语法/数据类型)与深层学习(理解其设计哲学与思考方式)