自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Liu-Cheng Xu

温故知新

  • 博客(118)
  • 资源 (8)
  • 收藏
  • 关注

翻译 Scala 最佳实践:纯函数

我们所处的是一个命令式编程(imperative programming)的时代,这也是我们为何更喜欢用命令式风格写代码的原因。在我们周围的一切都是可变的。虽然可变性并没有那么差劲,但是共享可变性就有点麻烦了。当我们引入共享可变性时,各种问题就会随之而来。函数式风格是应对这类问题的一个很好的方法。函数式编程指的是仅通过使用纯函数(pure function)和不可变值来完成软件应用的编写。在本文,我

2017-07-26 17:06:21 1141

原创 Shell 中的中括号用法总结

Shell 里面的中括号(包括单中括号与双中括号)可用于一些条件的测试:算术比较, 比如一个变量是否为0, [ $var -eq 0 ]。文件属性测试,比如一个文件是否存在,[ -e $var ], 是否是目录,[ -d $var ]。字符串比较, 比如两个字符串是否相同, [[ $var1 = $var2 ]]。[] 常常可以使用 test 命令来代替,后面有介绍。算术比较对变量或值进

2017-07-23 16:15:05 9621 1

原创 Vim 文本对象指南 (2)

接 Vim 文本对象指南 (1), 关于插件使用, 可以查看完整配置 space-vim.编程语言的文本对象Vim 基于常见编程语言结构提供了几个常见的文本对象. 其实都是一对儿符号,主要可以分为:成对的标点符号,比如单引号,双引号,反引号。成对的括号,比如小括号,中括号,大括号。标记语言标签,它们也是成对的,比如 HTML 的标签,<div></div>。模式为 操作 + a/i + 符号

2017-07-22 19:57:14 386

翻译 50 行 Python 代码构建一个区块链

尽管有人认为区块链 (blockchain) 是一个方案先于问题的技术,但毫无疑问, 这项新的技术已然是一个计算的奇迹。不过,到底区块链是什么呢区块链 一个随时间增长,记录比特币或其他加密货币的交易的公开数字账本。简单来说,区块链是一个公开的数据库,新的数据会被存储到一个叫做区块 (block) 的数据结构中,而区块会被添加到一个不可更改的链 (chain) 上 (也就是区块链),该链上存储着

2017-07-19 20:15:02 8958 2

原创 Spark History Server 没有生效

Spark 提供了 Web UI 来对 Spark 应用进行监控。每个 SparkContext 会启动一个 web UI,默认是在 4040 端口。它显示了应用相关的有用的信息,包括:一系列的 scheduler stage 和 taskRDD 大小和内存占用的概要环境信息正在运行的 executor 的一些信息只要打开 http://:4040 就可以看到该页面。如果有多个 Spark

2017-07-19 18:30:36 3792

原创 详解 MNIST 数据集

MNIST 数据集已经是一个被”嚼烂”了的数据集, 很多教程都会对它”下手”, 几乎成为一个 “典范”. 不过有些人可能对它还不是很了解, 下面来介绍一下.MNIST 数据集可在 http://yann.lecun.com/exdb/mnist/ 获取, 它包含了四个部分:Training set images: train-images-idx3-ubyte.gz (9.9 MB, 解压后 47

2017-07-17 20:41:35 320172 50

翻译 实用的函数式编程

函数式编程 (functional programming) 正式开始有长足的发展始于 10 年前, 从那时起, 我开始看到 Scala, Clojure 和 F# 这样的语言得到关注. 这种关注并非只是像 “哇, 一个新语言, 酷!” 这样短暂的热度, 而是确实有某些实在的原因在推动着它 – 或者至少我们是这么认为的.摩尔定律告诉我们每隔 18 个月, 计算机的速度就会翻倍. 这个定律一直从 1

2017-07-16 17:37:49 477

原创 区块链跨链社区: chainx.org 文章归档

chainx.orgchainx 文章归档:PolkadotPolkadot(波卡链):畅想一种异构的多链架构(第1,2,3章)Polkadot(波卡链):畅想一种异构的多链架构(第4,5章)Polkadot(波卡链):畅想一种异构的多链架构(第6.1~6.5章)Polkadot(波卡链):畅想一种异构的多链架构(第6.6~6.8章)Polkadot(波卡链):畅想一种异构的多链架构(第7

2017-07-16 11:38:24 1632

原创 Spark GraphX 对图进行可视化

Spark 和 GraphX 对并不提供对数据可视化的支持, 它们所关注的是数据处理. 但是, 一图胜千言, 尤其是在数据分析时. 接下来, 我们构建一个可视化分析图的 Spark 应用. 需要用到的第三方库有:GraphStream: 用于画出网络图BreezeViz: 用户绘制图的结构化信息, 比如度的分布.这些第三方库尽管并不完美, 而且有些限制, 但是相对稳定和易于使用. 安装 Gra

2017-07-14 10:14:38 5565 1

原创 crontab 定时重启 Apache 服务

通过 crontab 命令,我们可以在固定的间隔时间执行指定的系统指令或 shell script脚本。时间间隔的单位可以是分钟、小时、日、月、周及以上的任意组合。这个命令非常适合周期性的日志分析或数据备份等工作。首先在 $HOME/.profile 中设置 crontab 使用的编辑器:EDITOR=vi; export EDITOR新建一个 crontab 文件, 比如 root 用户的话就

2017-07-12 19:17:22 3262

原创 Spark GraphX: 改变图的结构

Spark GraphX 提供了 4 个十分有用的方法来改变图的结构, 方法签名如下: class Graph[VD, ED] { def reverse: Graph[VD, ED] def subgraph(epred: EdgeTriplet[VD,ED] => Boolean, vpred: (VertexId, VD) => Bo

2017-07-11 19:34:16 2163

原创 并行图计算: GraphX 的 pregel 接口

pregel, 是一个计算模型, 由 Google 最先提出, 后来 Spark 采用它作为迭代图计算的一个通用编程接口.pregel 计算模型一个 pregel 程序由一系列叫做 超步(superstep) 的迭代构成, 在每个迭代中, 每个顶点会接收到它的邻居们在上一轮迭代发送的消息, 然后改变它的顶点和边. 此外, 在每个超步结束的时候, 每个顶点也会给它的邻居们发送消息. 通过将其看作顶点,

2017-07-10 15:06:13 2610

原创 Vim 插件管理器概览

什么是 Vim 插件见 :h plugin : Vim’s functionality can be extended by adding plugins. A plugin is nothing more than a Vim script file that is loaded automatically when Vim starts. You can add a plug

2017-07-05 19:12:04 1196

原创 conda 环境管理

本文来自: Managing environments只是摘取了一些常用的操作, 更高级的用法可以查看原文档.创建一个环境为了管理多个环境, 那么我们至少要有两个环境, 以便能够进行移除或者切换.为了创建一个新的环境, 需要使用 create 命令, 后面跟上你想要创建环境的名字:conda create --name snowflakes biopython当 conda 问你是否继续时:pro

2017-07-04 18:30:22 4551

翻译 Kafka 与消息队列的快速比较

本文译自: A super quick comparison between kafka and Message Queues本文旨在对 Kafka 与消息队列之间进行一个快速比较, 以及为何应该使用 Kafka.Kafka 起初是由 Linkedin 发展而来. 总的看来, 它有点像一个消息队列系统, 并做了一些调整使其能够支持发布/订阅, 在多个服务器上进行扩展, 对消息进行重放 (或者说, “

2017-07-03 13:17:34 4729

翻译 10 分钟理解 PyTorch 代码

本文译自: Understand PyTorch code in 10 minutesPyTorch 是一个新的深度学习框架. 本文的内容基于 Justin Johnson 的 教程, 如果想要有更多了解或有更多时间的话建议仔细研究一下.PyTorch 主要包含 4 个包 (package):torch: 一个通用性的数组库, 与 Numpy 类似, 当 tensor 类型被转化(torch.cu

2017-07-01 15:25:12 4001

原创 Vim "小知识点"

:set 将会显示所有默认值被修改过的选项 (option):在一个选项后面加上 ? 来查看当前的选项值, 比如, :set undodir? .在一个选项后面加上 & 恢复其默认值, 比如, :set number? . 在使用 AsyncRun 时就曾经遇到过一个问题, #37 .:scriptenames, 按 source 的先后顺序列出所有 source 的文件, source 其实就是

2017-06-28 13:39:17 344

原创 Vim 文本对象指南 (1)

本文还是介绍一些基本内容, 关于插件使用, 可以查看完整配置 space-vim.如果想要在 Vim 里拥有高效编辑的能力, 必然要掌握超过单个字符编辑的能力, 不然就可能出现像之前看到过的一个笑话 : 在你刚开始使用 Vim 的时候做过什么令你 “难忘” 的事情? 答: 使用 j 跳转到 5000 行 :). 也就是说, 要掌握词 (word), 句子 (sentense), 段落

2017-06-25 08:08:02 1715

翻译 代码健康: 减少嵌套, 降低复杂性

原文: Code Health: Reduce Nesting, Reduce Complexity多层嵌套的代码不仅影响可读性,同时很容易导致错误。试着在下面同一份代码的两个版本中找出 bug:答案: “wrong encoding” 和 “unauthorized” 错误被交换了. 在重构后的版本中,很容易发现这个错误, 因为在重构版本的检查中,被认为是错误的情况都被处理了。上面所展示出的重构技

2017-06-11 10:53:50 3059

原创 Spark Basic RDD 操作示例

Transformation基本 RDD 的 transformation假设有一个 RDD ,其中的元素有 {1, 2, 3, 3}: 函数 目的 示例 结果 map() 将函数应用到 RDD 中的每一个元素并以 RDD 的形式返回结果 rdd.map(x => x+1) {2, 3, 4, 4} flatMap() 将函数应用到 RDD 中的每一个元素,并以

2017-06-01 12:17:41 688

原创 如何使用 Vim 的 help

实际上,无论是 Vim 的基础知识还是进阶知识,大都可以从 help 中找到指引。但是我想很多人并没有意识到这一点,或者并没有重视这一点。RTFM (read the fucking manual) 是学习的一个很好的途径,至少对于 Vim 而言,help 是一个绝佳的资源。Vim 的 help 在哪里Vim 在 GitHub 托管的仓库下 vim/runtime/doc在本地 Vim 目录下,比如

2017-05-31 15:27:32 6687

翻译 用 Python 写一个 NoSQL 数据库

本文译自 What is a NoSQL Database? Learn By Writing One In Python.完整的示例代码已经放到了 GitHub 上, 请 点击这里, 这仅是一个极简的 demo, 旨在动手了解概念.如果对译文有任何的意见或建议,欢迎 提 issue 讨论, 批评指正. 后续如有更新,可见 博客 .NoSQL 这个词在近些年正变得随处可见. 但是到底 “NoS

2017-05-16 14:00:08 5356 3

原创 Spark action 操作列表

以下内容来自 Spark 官方文档 Actions 小节, 更多内容可查看官方文档. 如有不当之处, 欢迎指正. 行动 涵义 reduce(func) 使用传入的函数参数 func 对数据集中的元素进行汇聚操作 (两两合并). 该函数应该具有可交换与可结合的性质, 以便于能够正确地进行并行计算. collect() 在 driver program 上将数据集中的元素作为一个数

2017-05-09 10:47:56 3867

原创 理解机器学习中的偏差与方差

学习算法的预测误差, 或者说泛化误差(generalization error)可以分解为三个部分: 偏差(bias), 方差(variance) 和噪声(noise). 在估计学习算法性能的过程中, 我们主要关注偏差与方差. 因为噪声属于不可约减的误差 (irreducible error).首先抛开机器学习的范畴, 从字面上来看待这两个词:偏差.这里的偏指的是 偏离 , 那么它偏离了什么到导致

2017-05-04 13:02:32 43685 14

原创 Spark 基本术语表

以下内容来自 http://spark.apache.org/docs/2.1.0/cluster-overview.html#glossary , 需要对 spark 的整个运行过程有所了解才能真正理解这些术语的涵义. 术语 涵义 application (应用) 基于 Spark 构建的用户程序. 一般包括了集群上的一个 driver 程序与多个 executor applic

2017-04-27 10:31:46 1544

原创 Spark Streaming: checkpointing 小节

以下内容主要来自 http://spark.apache.org/docs/2.1.0/streaming-programming-guide.html#checkpointing 的翻译, 其中有些名词做了保留, 翻译有些粗糙, 有时间的人还是看原官方文档来的清楚明白. 有空的话, 我会自己的一些理解补充到里面. 有些基本的名词还是一定要懂的, 比如 job, task, application

2017-04-27 09:59:51 535

原创 Spark 与 Kafka 集成出错: Apache Spark: java.lang.NoSuchMethodError

按照 spark 与 kafka 的教程一步一步进行操作, 在运行 KafkaWordCount 的示例时,却始终没有预期的输出. 如果正确的hua话,大概是这样:......-------------------------------------------Time: 1488156500000 ms-------------------------------------------(

2017-04-26 13:49:16 3786

原创 用 Vim 写 Python 的最佳实践

先来晒个图:对于一些 Python 的小项目,使用 vim 是一个不错的选择。本文内容整理自我在知乎的回答 用用 Vim 写 Python 的最佳实践是什么?,下面的内容是对知乎旧有回答的一个补充,尤其有一些主要针对 vim8. 如果想要更多内容,可以查看知乎对于该问题的一些回答。语法检查如果用 vim8, 那么可以用异步检测的 w0rp/ale 代替 syntastic 了,再也不用羡慕 flyc

2017-01-27 07:33:24 9893

原创 Python Machine Learning - 感知器算法

感知器 (perceptron) 算法的历史就不介绍了,大意就是想法来自生物学的神经元的一些工作方式,多个生物信号 (input singals) 到达树突 (dentrites)并进入细胞核 (cell nucleus),如果这些信号的效果累加达到一个阈值,那么通过轴突 (axon) 产生一个输出信号 (output signals)。在有监督学习与分类的背景下,这样的算法可被用来预测一个样本是否

2017-01-19 21:13:46 5424

原创 制作一个漂亮的 vim 状态栏

首先看一下最后的效果:知己知彼,百战不殆。先来分析一下使用 airline 与 lightline 有什么好处?漂亮,酷炫,这毋庸置疑。airline 与很多插件集成的非常好,真是省心又省力。那有什么不足之处呢?airline 可能会导致 100 ms 的启动延迟。具体可以看这里 https://github.com/liuchengxu/space-vim/issues/24定制性依旧不

2016-12-28 10:53:04 6654 1

原创 LaTeX 实战经验:参考文献注意点

留意 title 中有特定含义的大写字母若某文献标题中含有特定含义大写字母(“SVM” “EM”等),应特别用第二重{}将其括起来才可使其正常表示。如,Title = {{BPR}: Bayesian personalized ranking from implicit feedback}. 有时候您可能修改了bib文件但是重新编译后,并没有看到预期的效果,这时您可能需要删除相关辅助文件,重新编译等

2016-11-30 12:11:01 11756

原创 github pages gh-pages 分支图片链接失效

症状我从 github 上 clone 了一个项目 : cs231n.github.io, 并改名为 cs231n-cn. 不过直接 clone 后访问 liuchengxu.github.io/cs231n-cn 却发生图片链接丢失的问题。原因因为原来 cs231n.github.io 属于 username.github.io ,直接访问即可。而 clone 后访问的话属于 userna

2016-11-30 07:56:52 2349 1

原创 程序员 git commit 时 emoji 使用指南

CSDN 无法显示 emoji, 可点击这里转至GitHub 查看效果。执行 git commit 时使用 emoji 为本次提交打上一个 “标签”, 使得此次 commit 的主要工作得以凸现,也能够使得其在整个提交历史中易于区分与查找。截取的 gitmoji 快照:commit 格式git commit 时,提交信息遵循以下格式::emoji1: :emoji2: 主题提交信息主体Ref <##

2016-11-24 14:50:01 10968 1

原创 终端录屏工具: ttygif

github 地址: https://github.com/icholy/ttygifttygif 是一个终端录屏工具,使用十分方便,目前支持 Linux 与 macOS.安装macOS 下使用 brew 十分方便:brew install ttygifLinux下安装详情请查看 https://github.com/icholy/ttygif。使用使用 ttyrec 开始录制, 按 CTRl-d

2016-11-18 22:06:20 3113

原创 定制 Jetbrains vim 插件:ideavim

Jetbrains 的很多产品还是非常好用的,IntelliJ IDEA, PyCharm, Clion 等等都非常受欢迎。 因为我比较喜欢 vim, 因此在使用这些 IDE 时都会装上 vim 的插件:ideavim. 不过因为我对 vim 的默认配置更改了很多,定制了很多快捷键等等,在使用默认配置下的 ideavim 时还是有些不太顺手,因此针对 ideavim 定制一些 vim 的配置便十分有

2016-11-11 20:42:03 17234 4

原创 新手必备,让默认 vim 更加人性化: vim-better-default

我的第一个 vim 插件:vim-better-default, 说是 “插件”, 有点投机取巧的意思,其实一点技术含量也没有,只不过是为了简化我的 .vimrc 文件将一些比较通用的部分包装起来而已。为什么会想到这么做呢?因为看到了这个插件: vim-sensible, 作者将一些几乎通用的设置包装成一个插件。那如果我也将一些常用的设置包装成一个插件进行加载,这样可以精简很多 .vimrc 的设

2016-10-31 19:59:05 2858

原创 超漂亮 vim 配置:space-vim

Guideline首先关于 vim , emacs 与 IDE 之间的争论这里并不讨论,也不想评论。 因为我不排斥这其中的任何一个,这些工具我也都在使用,各有所长,自己用着方便就好。对 vim 稍微有点了解以后,你会发现配置 vim 在思路上其实很简单,无非是一个 .vimrc 文件外加安装各种 vim 插件.不过从一个新手开始的话还是挺折腾的.毕竟,默认情况下连 .vimrc 这个文件都没有,需要

2016-10-30 10:21:24 24474

翻译 27个Jupyter Notebook小提示与技巧

Jupyter NotebookJupyter notebook, 前身是IPython notebook, 它是一个非常灵活的工具,有助于帮助你构建很多可读的分析,你可以在里面同时保留代码,图片,评论,公式和绘制的图像。Jupyter具有非常强的可扩展性,支持很多编程语言,并且易于部署到你的个人电脑和几乎所有的服务器上 – 你只需要使用ssh或http接入即可。最重要的是,它完全免费。Jupyte

2016-10-15 08:38:00 87093 3

翻译 使用pelican搭建一个Jupyter Notebook数据科学博客

写博客是一个证明你的技能,进一步加深学习和积累受众的一个非常好的方式。已经有非常多的数据科学和编程博客帮助它们的作者找到工作,或是建立了非常重要的联系。撰写博客是任何一个有想法的programmer或数据科学家在日常基础之上非常重要的一件事情。不幸的是,写博客一个不可忽视的障碍便是首先如何搭建一个博客。在本文,我们将会涉及到如何使用Python创建博客,如何使用Jupyter notebook写博客

2016-10-15 08:31:39 8599 4

原创 LaTeX实战经验:标点符号注意点

括号在行文过程中若使用括号,括号前一定要有空格与前文内容分开。这也是中文作者很容易忽略的一点。例如,“the boosting algorithm (AdaBoost)” “the clustering algorithm (k-means)”;小括号,中括号使用left与right会自动适应来调整括号的大小,\left( foo \right), \left[ foo \right], 直接写(

2016-10-06 08:46:28 23018

机器学习实战.mobi

mobi版本,使用kindle软件看效果很好,之前电子书打折的时候买的,看得很清晰。

2016-01-26

统计学习方法-李航

统计学习方法-李航,是一本不错的入门的机器学习或者是统计相关的书,非常适合经验没那么丰富的人。

2015-11-10

Kali渗透测试技术实战

Kali渗透测试技术实战,对于有兴趣的人来说是个不错的选择。

2015-11-10

LaTex入门与提高 第二版

对于一些专业人士来说,LaTeX是不可或缺的工具。这本书是LaTeX的入门与提高不错的教程。

2015-09-25

深度优先搜索

数据结构,深度优先搜索,有关键注释,使用cpp编程实现。

2015-06-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除