Hsz's Blog

现代魔法及其影响与应用

使用Sphinx写项目文档

使用sphinx写项目文档 Sphinx是一个开源的python文档生成器,这里有一个中文的使用手册,它采用reStructuredText作为默认的源文件格式,也可以配置使用markdown作为源文件,可以输出为html文件或者pdf文件(需要latex)等多种格式. 由于它自带解析python docstring的功能,因此非常适合用于给python项目做接口文档.通过其他第三方插...

使用docsify写文档

使用docsify写文档写文档 在前面我们已经介绍了jekyll和sphinx,他们都是非常优秀的静态页面生成工具,但他们有一个共同的缺陷–需要先编译才能使用. docsify走在了他们前面.它本质上就是一个可以渲染markdown资源的单页应用,我们只需要写markdown然后挂在http服务器上就可以了.它的主要优势是: 不用编译 前端渲染,只占用阅读者机器的资源 ...

使用Jekyll构建博客

使用Jekyll构建博客 jekyll是Github Pages默认支持的静态网站生成器,它支持类似jinjia2的模板格式Liquid,而且支持markdown格式. 使用它你在第一次配置好后就可以专注于写文档了. jekyll安装与配置 jekyll是一个ruby写的静态网站渲染器,它本质上是一个ruby程序.因此我们首先需要有ruby环境. 安装ruby环境 ...

外网连接内部局域网的方法

外网连接内部局域网的方法 在实践中我们通常会在组织内构建一个局域网用于部署开发环境和一些日常工作所需的服务,比如nas,比如代码仓库.我们会希望内网足够安全的同时,外网也可以有一些途径可以访问到内网.归纳起来有如下几种方式: 静态外网ip端口映射 外网ip动态映射 静态外网ip端口映射 原理很简单,每个用户都会有一个外网ip,这个ip可以在...

在Github上托管项目代码

在Github上托管项目代码 Github是一个相当成熟的代码托管平台,我们除了可以在上面找开源项目外,更重要的是可以借助它自己构建自己的开源项目. 不要认为只有大型开源项目才是开源项目. 开源项目本身并不一定是直接可用的软件,也可以是一个包,一个简单的命令行工具等;为开源项目贡献代码也不一定要真的参与编程,为它写文档,提工单也是在为开源项目做贡献. 这些都可以在Github上实现....

使用Git管理你的代码

使用Git管理你的代码 Git是当前最流行的一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. 它是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件. Git最大的特点是分布式.它与以往集中式的版本控制工具最大的不同就是Git的仓库是相互独立的,每个人电脑中都有完整的版本库,所以某人的机器挂了并不影响其它人.这一特性天生对...

开源运动与开源协议

开源运动 门户之见. 从古至今都有,古时候师傅教徒弟都要留一手怕徒弟抢了自己的饭碗,现今多数行业也都会视自己的技能,工具为商业机密生怕让别人知道. 但在计算机相关领域却是相反,当今的主流框架主流工具几乎都是免费的,而且文档丰富毫无保留.如果你不是软件开发行业你恐怕很难理解为什么.这就得益于开源的力量. 开源即开放源代码 开源运动源于自由软件运动是指那些源代码公开的软件项目. 开源与...

使用Github开始你的开源生涯

使用Github开始你的开源生涯 Github是全球最流行的代码托管平台,也是全球最大的IT领域同性交友平台(😁).虽然它本身并不是开源的,但现如今它已经在开源生态中稳稳占据了一席之地,如今活跃的开源软件几乎都托管在上面. 本人作为2014年注册的老休闲玩家将在接下来的一系列文章中利用Github介绍如何开始你的开源生涯,并给出各种功能可能的开源替代品. 本文先介绍如何在Github上寻...

vscode配置

Vscode 我现在的主力编辑器是Vscode,这个编辑器没有atom那么花哨,但快太多了,安装插件的方式也相当友好.本文将介绍我是如何配置Vscode的. 我主要使用的是Python和golang,偶尔使用下js,scala,c,rust,因此除了同用的配置外还会介绍这两种语言的配置方式. 本文初稿在2018年2月发布,在2019年2月更新过一次,现在已经又过去将近一年,vscod...

使用Fabric做远程批量部署

使用Fabric做批量远程部署 fabric是上古python开发的三神器之一.它是远程配置工具,重度依赖ssh. 目前fabric已经到了大版本2,其接口已经和之前有很大不同,本文基于fabric 2 fabric有两种使用方式: 命令行调用方式. 我们可以先定义好远程任务要执行的操作,然后通过命令行传入要执行的远程主机,要调用的任务等参数. 这种方式...