• 4 款酷炫的终端应用

    Posted by : lon.y@qq.com on 2018年8月12日

    许多 Linux 用户认为在终端中工作太复杂、无聊,并试图逃避它。但这里有个改善方法 —— 四款终端下很棒的开源程序。它们既有趣又易于使用,甚至可以在你需要在命令行中工作时照亮你的生活。 No More Secrets 这是一个简单的命令行工具,可以重现 1992 年电影 Sneakers 中所见的著名数据解密效果。该项目让你编译个 nms 命令,该命令与管道数据一起使用并以混乱字符的形式打印输出。开始后,你可以按任意键,并能在输出中看到很酷的好莱坞效果的

    阅读全文...

  • 回归树的原理及其 Python 实现

    Posted by : lon.y@qq.com on 2018年8月10日

    提到回归树,相信大家应该都不会觉得陌生(不陌生你点进来干嘛[捂脸]),大名鼎鼎的 GBDT 算法就是用回归树组合而成的。本文就回归树的基本原理进行讲解,并手把手、肩并肩地带您实现这一算法。 完整实现代码请参考 github: https://github.com/tushushu/Imylu/blob/master/regression_tree.py 1. 原理篇 我们用人话而不是大段的数学公式,来讲讲回归树是怎么一回事。 1.1 最简单的模型 如果预测

    阅读全文...

  • Linux 内核 Git 历史记录中,最大最奇怪的提交信息是这样的

    Posted by : lon.y@qq.com on 2018年8月9日

    我们通常认为 git merges 有两个父节点。例如,由我写的最新的 Linux 内核合并操作是提交2c5d955,这是 4.10-rc6 版本发行前准备工作的一部分。它有两个父节点: 2c5d955 Merge branch 'parisc-4.10-3' of ... | *- 2ad5d52 parisc: Don't use BITS_PER_LONG in use ... *- 53cd1ad Merge branch 'i2c/for-cur

    阅读全文...

  • 三款 Linux 下的 Git 图形客户端

    Posted by : lon.y@qq.com on 2018年8月7日

    了解这三个 Git 图形客户端工具如何增强你的开发流程。 在 Linux 下工作的人们对 Git 非常熟悉。一个理所当然的原因是,Git 是我们这个星球上最广为人知也是使用最广泛的版本控制工具。不过大多数情况下,Git 需要学习繁杂的终端命令。毕竟,我们的大多数开发工作可能是基于命令行的,那么没理由不以同样的方式与 Git 交互。 但在某些情况下,使用带图形界面的工具可能使你的工作更高效一点(起码对那些更倾向于使用图形界面的人们来说)。那么,有哪些 Git

    阅读全文...

  • Linux 下 cut 命令的 4 个基础实用的示例

    Posted by : lon.y@qq.com on 2018年8月6日

    cut 命令是用来从文本文件中移除“某些列”的经典工具。在本文中的“一列”可以被定义为按照一行中位置区分的一系列字符串或者字节,或者是以某个分隔符为间隔的某些域。 先前我已经介绍了如何使用 AWK 命令。在本文中,我将解释 linux 下 cut 命令的 4 个本质且实用的例子,有时这些例子将帮你节省很多时间。 Linux 下 cut 命令的 4 个实用示例 假如你想,你可以观看下面的视频,视频中解释了本文中我列举的 cut 命令的使用例子。 https:

    阅读全文...

  • 推荐系统概述

    Posted by : lon.y@qq.com on 2018年7月31日

    “聆忠言者众,惟智者受益。” — 哈珀·李 许多人把推荐系统视为一种神秘的存在,他们觉得推荐系统似乎知道我们的想法是什么。Netflix 向我们推荐电影,还有亚马逊向我们推荐该买什么样的商品。推荐系统从早期发展到现在,已经得到了很大的改进和完善,以不断地提高用户体验。尽管推荐系统中许多都是非常复杂的系统,但其背后的基本思想依然十分简单。 推荐系统是什么? 推荐系统是信息过滤系统的一个子类,它根据用户的偏好和行为,来向用户呈现他(或她)可能感兴趣的物品。推荐

    阅读全文...

  • MySQL 事务隔离级别

    Posted by : lon.y@qq.com on 2018年7月30日

    本文会根据实际工作中碰到的例子,梳理清楚数据库事务的隔离级别。内容很简单,如果你能静下心来看完,一定会对你理解隔离级别有很大的帮助。 想象一个场景。抽奖,如果用户中奖了,一般有如下几个流程: 扣减奖品数量; 记录用户中奖信息; 试想如果扣减奖品数量了,结果记录用户中奖数据的时候失败了,那么数据就会出现不一致的问题。这种场景,就可以使用事务。因为事务的一个特性,就是原子性:要么不做,要么全做。 上述问题解决了。再想一下这样的场景:在抽奖前,先查询奖品剩余数量

    阅读全文...

  • 数据科学家的命令行技巧

    Posted by : lon.y@qq.com on 2018年7月28日

    对于许多数据科学家来说,数据操作起始于Pandas或Tidyverse。从理论上看,这个概念没有错。毕竟,这是为什么这些工具首先存在的原因。然而,对于分隔符转换等简单任务来说,这些选项通常可能是过于重量级了。 有意掌握命令行应该在每个开发人员的技能链上,特别是数据科学家。学习shell中的来龙去脉无可否认地会让你更高效。除此之外,命令行还在计算方面有一次伟大的历史记录。例如,awk – 一种数据驱动的脚本语言。Awk首次出现于1977年,它是在传奇的K&a

    阅读全文...

  • 10 个你不知道的 PostgreSQL 功能:创建统计信息

    Posted by : lon.y@qq.com on 2018年7月27日

    如果你曾使用 Postgres 做过一些性能优化,你或许已经使用过 EXPLAIN 。EXPLAIN 向你展示了 PostgreSQL planner 为提供的语句生成的执行计划。它说明了语句涉及到的表将会使用顺序扫描、索引扫描等方式进行扫描,在使用多表的情况下将会使用连接算法。但是, Postgres 是如何产生这些规划的? 决定使用哪种规划的一个非常重要的输入是 planner 收集到的数据统计。这些统计的数据能够使 planner 评估执行规划的某一

    阅读全文...

  • Linux 的内存分页管理

    Posted by : lon.y@qq.com on 2018年7月25日

    内存是计算机的主存储器。内存为进程开辟出进程空间,让进程在其中保存数据。我将从内存的物理特性出发,深入到内存管理的细节,特别是了解虚拟内存和内存分页的概念。 内存 简单地说,内存就是一个数据货架。内存有一个最小的存储单位,大多数都是一个字节。内存用内存地址(memory address)来为每个字节的数据顺序编号。因此,内存地址说明了数据在内存中的位置。内存地址从0开始,每次增加1。这种线性增加的存储器地址称为线性地址(linear address)。为了

    阅读全文...