• 数据科学领域,你该选 Python 还是 R ?

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

    根据需求,为了那些希望知道在数据科学方面选择 Python 还是 R 编程语言的人,我发布了这篇指导文章。你可能在数据科学方面是个新手,或者你需要在一个项目中选出一个语言,这篇文章可能会帮助到你。 非免责声明:在最大的数据科学家雇主之一(Deloitte)中,我是一个数据科学家的管理者。我也对 R 和 Python 有几十年的了解。我是个语言不可知论者,但是参与到 Python 社区已经有15年左右了。 还会有第三种选择 Hadley Wickham, R

    阅读全文...

  • 什么情况下不应该使用 Windows Linux 子系统

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

    在我上个月的专栏文章中,我讨论了应该使用Windows Linux子系统(Windows Subsystem for Linux,WSL)的原因,该系统允许你在Windows 10和Windows 2016上运行Linux发行版。不过,仅仅因为你能够做什么并不意味这你应该这么做。相比于先前的文章着眼于勾勒WSL的好处,在此我会站在相反的角度讲述五个不应运行WSL的原因。 原因1 微软并未基于生产环境负载设计或构建WSL。如果你的应用或作业流程需要达到特定服

    阅读全文...

  • 数据压缩算法:LZ77 算法的分析与实现

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

    LZ77简介 Ziv和Lempel于1977年发表题为“顺序数据压缩的一个通用算法(A Universal Algorithm for Sequential Data Compression )”的论文,论文中描述的算法被后人称为LZ77算法。值得说的是,LZ77严格意义上来说不是一种算法,而是一种编码理论。同Huffman编码一样,只定义了原理,并没有定义如何实现。基于这种理论来实现的算法才称为LZ77算法,或者人们更愿意称为LZ77变种。实际上这类算法

    阅读全文...

  • 在 Linux 上如何得到一个段错误的核心转储

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

    本周工作中,我花了整整一周的时间来尝试调试一个段错误。我以前从来没有这样做过,我花了很长时间才弄清楚其中涉及的一些基本事情(获得核心转储、找到导致段错误的行号)。于是便有了这篇博客来解释如何做那些事情! 在看完这篇博客后,你应该知道如何从“哦,我的程序出现段错误,但我不知道正在发生什么”到“我知道它出现段错误时的堆栈、行号了! ”。 什么是段错误? “段错误segmentation fault”是指你的程序尝试访问不允许访问的内存地址的情况。这可能是由于:

    阅读全文...

  • Linus 定义 Linux

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

    LINUX介绍 LINUX是什么? LINUX是一个免费类unix内核,适用于386-AT计算机,附带完整源代码。主要让黑客、计算机科学学生使用,学习和享受。它大部分用C编写,但是一小部分是用gnu格式汇编,而且引导序列用的是因特尔086汇编语言。C代码是相对ANSI的,使用一些GNU增强特性(大多为 __asm__ 和 inline)。 然而有很多可用于386电脑的unices,他们大部分要花很多钱,而且不附带源码。因此他们是使用计算机的理想选择,但是如

    阅读全文...

  • GitHub 的 MySQL 高可用性实践分享

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

    GitHub 使用 MySQL 作为所有非 git 仓库数据的主要存储, 它的可用性对 GitHub 的访问操作至关重要。GitHub 站点本身、GitHub 的 API、身份验证等等都需要进行数据库访问。我们运行着多个 MySQL 集群来为不同的服务和任务提供支持。我们的集群使用经典的主从配置, 主集群中的某个节点能够接受写入。其余的从集群节点异步同步来自主服务器的更改, 并提供数据的读取服务。 主节点的可用性尤为重要。没有主服务器, 集群无法接受写入:

    阅读全文...

  • 关于 Feed 流的几个热门问题

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

    0x00 前言 本篇聊一下 Feed 流技术,由于这个话题在业界有丰富的实践经验,所以我特意选了个小的切入点,从相对微观的角度说几个具体的问题,避免一些无意义的重复。希望提炼实践中的具体问题来做讨论,使事情变得更有实际意义。 0x01 先行资料 什么是 Feed 流 如何设计 Twitter 这样的系统架构 如何打造千万级Feed流系统 0x02 关于模型 当要做一个 Feed 流,摆在我们眼前的第一个问题就是到底选推模型还是选拉模型,因为这个选择将影响接

    阅读全文...

  • 谈谈微信支付曝出的漏洞

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

    一、背景 昨天(2018-07-04)微信支付的SDK曝出重大漏洞(XXE漏洞),通过该漏洞,攻击者可以获取服务器中目录结构、文件内容,如代码、各种私钥等。获取这些信息以后,攻击者便可以为所欲为,其中就包括众多媒体所宣传的“0元也能买买买”。 漏洞报告地址;http://seclists.org/fulldisclosure/2018/Jul/3 二、漏洞原理 1.  XXE漏洞 此次曝出的漏洞属于XXE漏洞,即XML外部实体注入(XML External

    阅读全文...

  • 深入学习 Redis(3):主从复制

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

    前言 在前面的两篇文章中,分别介绍了Redis的内存模型和Redis的持久化。 在Redis的持久化中曾提到,Redis高可用的方案包括持久化、主从复制(及读写分离)、哨兵和集群。其中持久化侧重解决的是Redis数据的单机备份问题(从内存到硬盘的备份);而主从复制则侧重解决数据的多机热备。此外,主从复制还可以实现负载均衡和故障恢复。 这篇文章中,将详细介绍Redis主从复制的方方面面,包括:如何使用主从复制、主从复制的原理(重点是全量复制和部分复制、以及心

    阅读全文...

  • Linux 文件系统详解

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

    这篇教程将帮你快速了解 Linux 文件系统。 早在 1996 年,在真正理解文件系统的结构之前,我就学会了如何在我崭新的 Linux 上安装软件。这是一个问题,但对程序来说不是大问题,因为即使我不知道实际的可执行文件在哪里,它们也会神奇地工作。问题在于文档。 你知道,那时候,Linux 不是像今天这样直观、用户友好的系统。你必须读很多东西。你必须知道你的 CRT 显示器的扫描频率以及拨号调制解调器的噪音来龙去脉,以及其他数以百计的事情。 我很快就意识到我

    阅读全文...