微信网页悬浮窗交互效果的web实现 (www.zhangxinxu.com)
微信更新后,发现多了个悬浮窗功能。公众号阅读,网页浏览回退后默认会出现。再点击,可以回到刚才阅读的地方。于是,再也不会遇到回复老婆的信息,再切换回来重新找刚才阅读东西的麻烦了。我个人觉得是很有用的一个功能。

其交互效果,也被不少人称赞。例如,窗口会收缩到悬浮按钮中,悬浮按钮可以拖到右下角取消浮窗。这些交互效果呢,使用web前端技术也是可以实现,有demo,有截图,有必要的源代码展示,希望本文的内容能够对您的学习有所帮助。
by @技术头条 2018-07-04 23:50 查看详情
使用 Buildah 创建小体积的容器 (linux.cn)
我最近加入了 Red Hat,在这之前我在另外一家科技公司工作了很多年。在我的上一份工作岗位上,我开发了不少不同类型的软件产品,这些产品是成功的,但都有版权保护。不仅法规限制了我们不能在公司外将软件共享,而且我们在公司内部也基本不进行共享。在那时,我觉得这很有道理:公司花费了时间、精力和预算用于开发软件,理应保护并要求软件涉及的利益。

时间如梭,去年我加入 Red Hat 并培养出一种完全不同的理念。Buildah 项目是我最早加入的项目之一,该项目用于构建 OCI (Open Container Initiative) 标准的镜像,特别擅长让你精简创建好的镜像的体积。那时 Buildah 还处于非常早期的阶段,包含一些瑕疵,不适合用于生产环境。
by @技术头条 2018-07-04 23:47 查看详情
解读Raft(四 成员变更) (ifeve.com)
将成员变更纳入到算法中是Raft易于应用到实践中的关键,相对于Paxos,它给出了明确的变更过程(实践的基础,任何现实的系统中都会遇到因为硬件故障等原因引起的节点变更的操作)。

显然,我们可以通过shutdown集群,然后变更配置后重启集群的方式达到成员变更的目的。但是这种操作会损失系统的可用性,同时会带来操作失误引起的风险。支持自动化配置,即配置可以在集群运行期间进行动态的变更(不影响可用性)显示是一个非常重要的特性。
by @技术头条 2018-07-04 23:43 查看详情
解读Raft(三 安全性) (ifeve.com)
之前的两篇文章更多的是在描述Raft算法的正常流程,没有过多的去讨论异常场景。

而实际在分布式系统中,我们更多的都是在应对网络不可用、机器故障等异常场景,所以本篇来讨论一下Raft协议的安全性,即在异常场景下是否会导致数据丢失、数据不一致等情况。
by @技术头条 2018-07-04 23:43 查看详情
解读Raft(二 选举和日志复制) (ifeve.com)
Raft采用心跳机制来触发Leader选举。Leader周期性的发送心跳(如果有正常的RPC的请求情况下可以不发心跳)包保持自己Leader的角色(避免集群中其他节点认为没有Leader而开始选举)。

Follower在收到Leader或者Candidate的RPC请求的情况下一直保持Follower状态。而当一段时间内(election timeout)没有收到请求则认为没有Leader节点而出发选举流程。
by @技术头条 2018-07-04 23:42 查看详情
解读Raft协议(一 算法基础) (ifeve.com)
分布式系统除了提升整个体统的性能外还有一个重要特征就是提高系统的可靠性。

提供可靠性可以理解为系统中一台或多台的机器故障不会使系统不可用(或者丢失数据)。

保证系统可靠性的关键就是多副本(即数据需要有备份),一旦有多副本,那么久面临多副本之间的一致性问题。

一致性算法正是用于解决分布式环境下多副本之间数据一致性的问题的。


业界最著名的一致性算法就是大名鼎鼎的Paxos(Chubby的作者曾说过:世上只有一种一致性算法,就是Paxos)。但Paxos是出了名的难懂,而Raft正是为了探索一种更易于理解的一致性算法而产生的。
by @技术头条 2018-07-04 23:42 查看详情
怎样理解numpy中的axis? (www.biaodianfu.com)
在使用numpy的过程中,会遇到一个“axis”的概念,“axis”通常被称为“轴”,由于比较抽象,所以一直会搞混。平时处理的都是二维的数据,所以大多数场景下使用的时死记硬背。把axis=1记作行,把axis=0记作列。(在pandas中,针对二维数据可以将axis=1写成axis=’columns’,将axis=0写成axis=’rows’。)
by @技术头条 2018-07-04 23:42 查看详情
如何暂时禁用 iptables 防火墙 (linux.cn)
了解如何在 Linux 中暂时禁用 iptables 防火墙来进行故障排除。还要学习如何保存策略以及如何在启用防火墙时恢复它们。

有时你需要关闭 iptables 防火墙来做一些连接故障排除,然后你需要重新打开它。在执行此操作时,你还需要保存所有防火墙策略。在本文中,我们将引导你了解如何保存防火墙策略以及如何禁用/启用 iptables 防火墙。有关 iptables 防火墙和策略的更多详细信息请阅读我们的文章。
by @技术头条 2018-07-03 14:26 查看详情
小tips: 点击页面出现富强、民主这类文字动画效果 (www.zhangxinxu.com)
如何实现点击页面出现富强、民主这类文字动画效果?很简单,复制本文提供的源代码,效果立即就出现了。快进来看看怎么实现的吧?
by @技术头条 2018-06-28 12:42 查看详情
如何在无响应的 Linux 系统中杀掉内存消耗最大的进程 (linux.cn)
有时候,我在浏览器中开启了非常多的标签页,导致操作系统会无响应好几分钟。我不能移动我的鼠标,也不能杀掉一个进程或关闭任何开启的标签页。

在这种情况下,我别无选择,只能强制重启系统。当然我也用了 OneTab (LCTT 译注:OneTab 是一个 Chrome 的 Extension,可以将标签页转化成一个列表保存。)和 Greate Suspender (LCTT 译注:Great Suspender 是一个 Chrome 的 Extension, 可以自动冻结标签页)这样浏览器拓展,但它们在这里也起不到太大的作用。 我经常耗尽我的内存。

而这就是 Early OOM 起作用的时候了。在情况严重时,它会杀掉一个未响应系统中的内存消耗最大的进程。
by @技术头条 2018-06-28 12:42 查看详情
如何在 Linux 系统中结束结束进程或是中止程序 (linux.cn)
在 Linux 中有几种使用命令行或图形界面终止一个程序的方式。

进程出错的时候,您可能会想要中止或是杀掉这个进程。在本文中,我们将探索在命令行和图形界面中终止进程或是应用程序,这里我们使用 gedit 作为样例程序。
by @技术头条 2018-06-28 12:40 查看详情
Apache Kafka专题一、Kafka概念和原理 (www.ipcpu.com)
Kafka是最初由Linkedin公司开发,是一个分布式、分区的、多副本的、多订阅者,基于zookeeper协调的分布式日志系统(也可以当做MQ系统),常见可以用于web/nginx日志、访问日志,消息服务等等,Linkedin于2010年贡献给了Apache基金会并成为顶级开源项目。
by @技术头条 2018-06-28 12:39 查看详情
如何在MQ中实现支持任意延迟的消息? (ifeve.com)
什么是定时消息和延迟消息?

定时消息:Producer 将消息发送到 MQ 服务端,但并不期望这条消息立马投递,而是推迟到在当前时间点之后的某一个时间投递到 Consumer 进行消费,该消息即定时消息。

延迟消息:Producer 将消息发送到 MQ 服务端,但并不期望这条消息立马投递,而是延迟一定时间后才投递到 Consumer 进行消费,该消息即延时消息。 定时消息与延迟消息在代码配置上存在一些差异,但是最终达到的效果相同:消息在发送到 MQ 服务端后并不会立马投递,而是根据消息中的属性延迟固定时间后才投递给消费者。
by @技术头条 2018-06-28 12:39 查看详情
JavaScript中科学计数法转化为数值字符串形式 (www.css88.com)
JavaScript 中经常会碰到数值计算问题,偶尔会在不经意间报一个不是bug的bug。今天来说说一个特殊的例子。我以0.0011BTC 价格买入 0.0002CZR 计算出了的金额是 0.00000022BTC,而 JavaScript 计算出来的金额是 2.2e-7 。值是对的,只是用了科学计数法,也是数值类型。但是问题来了,一般用户用户看不懂 2.2e-7,那么就把它转换成 0.00000022 吧。然而问题了,我用尽办法,怎么样都无法将 2.2e-7 转换成直观的 0.00000022。或许你会嘲笑我,告诉我直接用 .toFixed() 方法。但是新问题又来了, .toFixed() 会保留足够的小数位,比如:2e-7.toFixed(8) 得到的值是 0.00000020,2e2.toFixed(8)得到的值是 200.00000000。最后的 0 让我感到多余…
by @技术头条 2018-06-28 12:36 查看详情
使用 GNU Parallel 提高 Linux 命令行执行效率 (linux.cn)
将您的计算机变成一个多任务的动力室。

你是否有过这种感觉,你的主机运行速度没有预期的那么快?我也曾经有过这种感觉,直到我发现了 GNU Parallel。

GNU Parallel 是一个 shell 工具,可以并行执行任务。它可以解析多种输入,让你可以同时在多份数据上运行脚本或命令。你终于可以使用全部的 CPU 了!
如果你用过 xargs,上手 Parallel 几乎没有难度。如果没有用过,这篇教程会告诉你如何使用,同时给出一些其它的用例。
by @技术头条 2018-06-28 12:36 查看详情
一些常见的并发编程错误 (linux.cn)
Go 是一个内置支持并发编程的语言。借助使用go关键字去创建协程goroutine(轻量级线程)和在 Go 中提供的使用信道和其它的并发同步方法,使得并发编程变得很容易、很灵活和很有趣。

另一方面,Go 并不会阻止一些因 Go 程序员粗心大意或者缺乏经验而造成的并发编程错误。在本文的下面部分将展示一些在 Go 编程中常见的并发编程错误,以帮助 Go 程序员们避免再犯类似的错误。
by @技术头条 2018-06-28 12:35 查看详情
基于 FUSE 的 Bittorrent 文件系统 (linux.cn)
Bittorrent 已经存在了很长时间,它可以从互联网上共享和下载数据。市场上有大量的 GUI 和 CLI 的 Bittorrent 客户端。有时,你不能坐下来等待你的下载完成。你可能想要立即观看内容。这就是 BTFS 这个不起眼的文件系统派上用场的地方。

使用 BTFS,你可以将种子文件或磁力链接挂载为目录,然后在文件树中作为只读目录。这些文件的内容将在程序读取时按需下载。由于 BTFS 在 FUSE 之上运行,因此不需要干预 Linux 内核。
by @技术头条 2018-06-28 12:35 查看详情
如何在 Arch Linux 中降级软件包 (linux.cn)
正如你了解的,Arch Linux 是一个滚动版本和 DIY(自己动手)发行版。因此,在经常更新时必须小心,特别是从 AUR 等第三方存储库安装或更新软件包。如果你不知道自己在做什么,那么最终很可能会破坏系统。

你有责任使 Arch Linux 更加稳定。但是,我们都会犯错误,要时刻小心是很难的。有时候,你想更新到最新的版本,但你可能会被破损的包卡住。不要惊慌!在这种情况下,你可以简单地回滚到旧的稳定包。

这个简短的教程描述了如何在 Arch Linux 中以及它的变体,如 Antergos,Manjaro Linux 中降级一个包。
by @技术头条 2018-06-28 12:34 查看详情
面向数据科学的 Anaconda Python 入门 (linux.cn)
Anaconda 是一个完备的、开源的数据科学软件包,拥有超过 600 万社区用户。

像很多人一样,我一直努力加入到快速发展的数据科学领域。我上过 Udemy 的 R 及 Python 语言编程课,那时我分别下载并安装了应用程序。当我试图解决各种依赖关系,安装类似 Numpy 和 Matplotlib 这样的数据科学扩展包时,我了解了 Anaconda Python 发行版。

Anaconda 是一个完备的、开源的数据科学包,拥有超过 600 万社区用户。下载和安装 Anaconda 都很容易,支持的操作系统包括 Linux, MacOS 及 Windows。

我感谢 Anaconda 降低了初学者的学习门槛。发行版自带 1000 多个数据科学包以及 Conda 包和虚拟环境管理器,让你无需单独学习每个库的安装方法。
by @技术头条 2018-06-28 12:33 查看详情