如何学习Vue2源码 (rapheal.sinaapp.com)
近期我们把微信公众平台管理端的前端框架切成 MVVM 架构,框架层面最终我们选择了 Vue,为了更了解 Vue,阅读Vue源码是必要的。

我参考的 Vue 版本是 2.2.0,整个项目的代码1万2千行,如果不搞清楚原理,直接每一行看下来肯定会漏掉不少细节,或者对作者为什么这样写代码感到莫名其妙。

如此庞大的项目要啃下来并非易事,里边涉及到非常多的概念:Virtual Dom; 条件/列表渲染; 自定义组件; 双向绑定; 指令等等。

按照经验,编写这么庞大的系统,我们总是从第1行代码开始写起,慢慢写到第1万行,逐步构造出整个系统/框架。

所以我也会按照这个思路,从零开始构造出一个完整的Vue框架。
by @技术头条 2020-02-02 11:24 分享 查看详情
朴素贝叶斯python代码实现 (www.cnblogs.com)
朴素贝叶斯也是机器学习中一种非常常见的分类方法,对于二分类问题,并且数据集特征为离散型属性的时候,
使用起来非常的方便。原理简单,训练效率高,拟合效果好。
by @技术头条 2020-02-01 17:00 分享 查看详情
CentOS7下解决SSH自动断开办法 (www.bizeway.net)
vim /etc/ssh/sshd_config
找到下面两行

ClientAliveInterval 0
ClientAliveCountMax 3
去掉注释,改成

ClientAliveInterval 30
ClientAliveCountMax 86400

这两行的意思分别是

1、客户端每隔多少秒向服务发送一个心跳数据

2、客户端多少秒没有相应,服务器自动断掉连接

重启sshd服务

service sshd restart
by @技术头条 2020-02-01 16:59 分享 查看详情
场景层次结构的管理 (blog.codingnow.com)
今年上半年的时候,就想把我们游戏引擎中场景层次结构管理模块的设计记录一下。每次想写的时候都在做小调整。直到最近,算法和数据结构才稳定下来。今天做一个记录。

游戏里的场景对象,通常以树结构保存。这是因为,每个对象的空间状态,通常都受上一级的某个对象影响。

从管理角度讲,每个对象最好都能知道它可以影响其它哪些对象;且必须知道它被哪个对象影响。所以,这会用到一个典型的树结构。尤其在做编辑器时,树结构还会直接呈现在编辑界面上。不过,我认为在运行时,从父对象遍历到子对象的需求并不是必要的,需要时可以额外记录。从数据上考虑,父亲记住孩子和孩子记住父亲,是重复了同一种关系信息。如果不需要记住孩子的兄弟次序,那么在核心数据结构中,我们只需要让孩子记住父亲就足够了。
by @技术头条 2020-02-01 16:58 分享 查看详情
VSCode原理解析 - 断点调试 (fed.taobao.org)
今年年初,有辛参与了IDE 共建项目组, 打造阿里生态体系内的公共IDE底层,而作为一款面向开发者的IDE,调试能力的支持一定程度上决定着一款IDE的开发体验;VSCode作为微软体系下一款当前最热的IDE开发工具,在调试领域上的探索实践是很好的学习案例,有道是:借他山之石,逐已身之玉,...
by @技术头条 2020-02-01 16:58 分享 查看详情
Ubuntu 中的 root 用户:你应该知道的重要事情 (linux.cn)
当你刚开始使用 Linux 时,你将发现与 Windows 的很多不同。其中一个“不同的东西”是 root 用户的概念。
在这个初学者系列中,我将解释几个关于 Ubuntu 的 root 用户的重要的东西。
请记住,尽管我正在从 Ubuntu 用户的角度编写这篇文章,它应该对大多数的 Linux 发行版也是有效的。
你将在这篇文章中学到下面的内容:

为什么在 Ubuntu 中禁用 root 用户
像 root 用户一样使用命
切换为 root 用户
解锁 root 用户

什么是 root 用户?为什么它在 Ubuntu 中被锁定?
在 Linux 中,有一个称为 root 的超级用户。这是超级管理员账号,它可以做任何事以及使用系统的一切东西。它可以在你的 Linux 系统上访问任何文件和运行任何命令。
能力越大,责任越大。root 用户给予你完全控制系统的能力
by @技术头条 2020-02-01 16:56 分享 查看详情
Ubuntu 中的 root 用户:你应该知道的重要事情 (linux.cn)
当你刚开始使用 Linux 时,你将发现与 Windows 的很多不同。其中一个“不同的东西”是 root 用户的概念。
在这个初学者系列中,我将解释几个关于 Ubuntu 的 root 用户的重要的东西。
请记住,尽管我正在从 Ubuntu 用户的角度编写这篇文章,它应该对大多数的 Linux 发行版也是有效的。
你将在这篇文章中学到下面的内容:

为什么在 Ubuntu 中禁用 root 用户
像 root 用户一样使用命
切换为 root 用户
解锁 root 用户

什么是 root 用户?为什么它在 Ubuntu 中被锁定?
在 Linux 中,有一个称为 root 的超级用户。这是超级管理员账号,它可以做任何事以及使用系统的一切东西。它可以在你的 Linux 系统上访问任何文件和运行任何命令。
能力越大,责任越大。root 用户给予你完全控制系统的能力
by @技术头条 2020-02-01 16:56 分享 查看详情
Ubuntu 中的 root 用户:你应该知道的重要事情 (linux.cn)
当你刚开始使用 Linux 时,你将发现与 Windows 的很多不同。其中一个“不同的东西”是 root 用户的概念。
在这个初学者系列中,我将解释几个关于 Ubuntu 的 root 用户的重要的东西。
请记住,尽管我正在从 Ubuntu 用户的角度编写这篇文章,它应该对大多数的 Linux 发行版也是有效的。
你将在这篇文章中学到下面的内容:

为什么在 Ubuntu 中禁用 root 用户
像 root 用户一样使用命
切换为 root 用户
解锁 root 用户

什么是 root 用户?为什么它在 Ubuntu 中被锁定?
在 Linux 中,有一个称为 root 的超级用户。这是超级管理员账号,它可以做任何事以及使用系统的一切东西。它可以在你的 Linux 系统上访问任何文件和运行任何命令。
能力越大,责任越大。root 用户给予你完全控制系统的能力
by @技术头条 2020-02-01 16:56 分享 查看详情
Ubuntu 中的 root 用户:你应该知道的重要事情 (linux.cn)
当你刚开始使用 Linux 时,你将发现与 Windows 的很多不同。其中一个“不同的东西”是 root 用户的概念。
在这个初学者系列中,我将解释几个关于 Ubuntu 的 root 用户的重要的东西。
请记住,尽管我正在从 Ubuntu 用户的角度编写这篇文章,它应该对大多数的 Linux 发行版也是有效的。
你将在这篇文章中学到下面的内容:

为什么在 Ubuntu 中禁用 root 用户
像 root 用户一样使用命
切换为 root 用户
解锁 root 用户

什么是 root 用户?为什么它在 Ubuntu 中被锁定?
在 Linux 中,有一个称为 root 的超级用户。这是超级管理员账号,它可以做任何事以及使用系统的一切东西。它可以在你的 Linux 系统上访问任何文件和运行任何命令。
能力越大,责任越大。root 用户给予你完全控制系统的能力
by @技术头条 2020-02-01 16:56 分享 查看详情
如何在 Ubuntu Linux 中设置或更改时区 (linux.cn)
你安装 Ubuntu 时,它会要求你设置时区。如果你选择一个错误的时区,或者你移动到世界的一些其它地方,你可以很容易地在以后更改它。
如何在 Ubuntu 和其它 Linux 发行版中更改时区
这里有两种方法来更改 Ubuntu 中的时区。你可以使用图形化设置或在终端中使用 timedatectl 命令。你也可以直接更改 /etc/timezone 文件,但是我不建议这样做。
在这篇初学者教程中,我将向你展示图形化和终端两种方法:

通过 GUI 更改 Ubuntu 中的时区 (适合桌面用户)
通过命令行更改 Ubuntu 中的时区 (桌面和服务器都工作)


方法 1: 通过终端更改 Ubuntu 时区
Ubuntu 或一些使用 systemd 的其它发行版可以在 Linux 终端中使用 timedatectl 命令来设置时区。
你可以使用没有任何参数的 timedatectl 命令来检
by @技术头条 2020-02-01 16:55 分享 查看详情
通过 MicroK8s 搭建你的 K8s 环境 (soulteary.com)
去年的时候,我曾经写过如何[简单搭建 Kubernetes 集群],当时使用的是官方的工具箱:Kubeadm,这个方案对于只是想试试的同学来说,还是过于复杂。这里介绍一款简单的工具:MicroK8s。官方给这款工具的人设是“无需运维的 Kubernetes ,服务于工作站、物联网。”最大的价值在于可以快速搭建单节点的容器编排系统,用于生产试验。[官方网站]里的文档有简单介绍如何安装使用,但是却未曾考虑安装过程存在网络问题的神州大陆的同学们,本文将结合这种情况聊聊。
by @技术头条 2020-02-01 13:43 分享 查看详情
基于Yarn的分布式应用调度器Slider (codemacro.com)
Apache Hadoop Map-Reduce框架为了解决规模增长问题,发展出了yarn。而yarn不仅解决Map-Reduce调度问题,还成为了一个通用的分布式应用调度服务。yarn中的一个创新是把各种不同应用的调度逻辑拆分到了一个称为ApplicationManager(以下简称AM)的角色中,从而让yarn自己变得更通用,同时解决调度性能问题。ApacheSlider就是这其中的一个AM具体实现。但Slider进一步做了通用化,可以用于调度长运行(long-running)的分布式应用。

为了更好地理解Slider/Yarn,需要思考这样一个问题:在不用Slider/Yarn这种自动部署并管理应用的软件时,我们如何在一个网络环境中部署一个分布式应用?
by @技术头条 2019-08-10 22:38 分享 查看详情
Python协程greenlet实现原理 (codemacro.com)
实现协程主要是在协程切换时,将协程当前的执行上下文保存到协程关联的context中。在c/c++这种native程序中实现协程,需要将栈内容和CPU各个寄存器的内容保存起来。在Python这种VM中则有些不同。
by @技术头条 2019-08-10 22:37 分享 查看详情
kubernetes网络相关总结 (codemacro.com)
要理解kubernetes的网络模型涉及到的技术点比较多,网络上各个知识点讲得细的有很多,这里我就大概梳理下整个架构,方便顺着这个脉络深入。本文主要假设kubernetes使用docker+flannel实现。

整体上,了解kubernetes的网络模型,涉及到以下知识:
1、linux网络及网络基础
2、docker网络模型
3、kubernetes网络需求,及flannel网络实现

最后大家就可以结合实例对照着学习。
by @技术头条 2019-08-10 22:35 分享 查看详情
结合场景谈一谈微服务配置 (jm.taobao.org)
除了文中三个场景,其实还有更多更大胆的应用场景,如“大数据实时计算算法调整”、“异地容灾多活”、“应用业务场景动态推送”等等,可以参看 Nacos 的阿里云产品 ACM 的使用场景 。Nacos 配置管理模块,将敏感配置收拢管控起来,极大降低数据泄露等风险,并且提供如“动态推送”、“版本控制”、“快速回滚”等功能,保障了敏感配置的变更安全平稳的执行。

在限流与降级的场景,通过一个示例,为大家演示了如何通过 Nacos + Sentinel 实现流量的动态控制,这也是 Nacos 配置管理的一个十分典型的应用场景。降级也一样,大促高峰期间将某个非关键的系统组件进行关闭,在过了高峰期后再开启,这个也是可以通过 Nacos 的“动态推送”的功能来实现。

总之,只要系统涉及到了“敏感的配置”、“动态的配置”,都应该考虑将配置放入到 Nacos 中,让 Nacos 管控起来。
by @技术头条 2019-08-10 22:30 分享 查看详情
如何在优雅地Spring 中实现消息的发送和消费 (jm.taobao.org)
本文将对rocktmq-spring-boot的设计实现做一个简单的介绍,读者可以通过本文了解将RocketMQ Client端集成为spring-boot-starter框架的开发细节,然后通过一个简单的示例来一步一步的讲解如何使用这个spring-boot-starter工具包来配置,发送和消费RocketMQ消息。
by @技术头条 2019-08-10 22:29 分享 查看详情
基于servlet实现一个web框架 (codemacro.com)
servlet作为一个web规范,其本身就算做一个web开发框架,但是其web action (响应某个URI的实现)的实现都是基于类的,不是很方便,并且3.0之前的版本还必须通过web.xml配置来增加新的action。servlet中有一个filter的功能,可以配置所有URI的功能都经过filter。我们可以基于filter的功能来实现一个简单的web框架。
by @技术头条 2019-08-10 22:28 分享 查看详情
一次逆向网页内容加密 (codemacro.com)
最近写一个爬虫要从这个网页爬取内容。以往爬取网页内容复杂点的,一般就是处理下页面内容动态载入,动态载入的内容可能会要求复杂奇怪的参数,或者找到这个动态载入的HTTP接口在哪里麻烦点。但是这个网页不同。
by @技术头条 2019-08-10 22:27 分享 查看详情
使用 Ngrox 实现内网穿透 (www.kymjs.com)
最近在做 Server 开发,需要将一个内网的服务暴露出去,使其在家也能访问到。

ngrok 是一个反向代理工具,官方有免费的可以使用,但是由于海外原因速度非常慢。好在这套服务都开源了,我们可以用开源代码搭建一个服务,自己使用。
by @技术头条 2019-08-06 22:28 分享 查看详情
KNN算法实战:验证码的识别 (www.biaodianfu.com)
识别验证码的方式很多,如tesseract、SVM等。前面的几篇文章介绍了KNN算法,今天主要学习的是如何使用KNN进行验证码的识别。
by @技术头条 2019-08-06 22:28 分享 查看详情