StudyGolang
中文:在线入门指引 http://go-tour-zh.appspot.com/basics/1 中文:文档首页 https://go-zh.org/doc/ 中文首页 https://go-zh.org/ 英文首页 https://golang.org/ Go 中文主页 先把这个教程看完 - Go 指南 然后就去写代码 完毕 go 语言常用的一些代码 (刷题 自定义排序 [【Go语言】基本类型排序和 slice 排序](https://itimetraveler.github.io/2016/09/07/【Go语言】基本类型排序和 slice 排序/) 123456789101112131415161718192021222324252627282930313233343536373839404142package mainimport ( "fmt" "sort")type Person struct { Name string Age int}// 按照 Person.Age 从大到小排序t ...
终于用上MBP了
[toc] MacOS 真香! 公司给发了个 MacBook Pro 然后就基本告别 Manjaro 了, 这里介绍下使用 osx 的一些体验 安装包管理器 homebrew mac 的软件包管理器, 一般好用吧, 用过 pacman 感觉其他的都不太行 1/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 123456# 换清华源 https://mirrors.tuna.tsinghua.edu.cn/help/homebrew/export HOMEBREW_CORE_GIT_REMOTE="https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git"for tap in core cask{,-fonts,-drivers,-versions} command-not-found; do brew ...
python import
未完待续 python import研究 `python`用了好久了, 对它的`import`规则一直都很懵,借此机会梳理下. 首先是导包. 导入同目录下的包, 或者安装好的第三方模块, 或者python自带的模块 1import module_name 导入当前目录中某一文件夹里面的python模块 1from dir import module_name
travis-ci 自动化部署hexo静态博客
travis-ci 自动化部署hexo静态博客 使用github pages的用户应该都有一个痛点, 就是要本地写好博文后再执行hexo c,hexo g,hexo d等命令, 特别是当博文数量多了的时候hexo g就要等待几分钟甚至更长时间,然后在hexo d 甚是烦恼. 查了资料, 有了travis-ci这个GitHub 的亲兄弟,就容易的多了, 只需3步配置,就可以享受持续集成自动部署博客的. 用户只需要在markdown原文上修改,然后push到github上去就可以了, Step 1 GitHub 上配置 安装github app https://github.com/settings/installations 申请Personal access tokens 转送门 -> https://github.com/settings/tokens 在这里主要是设置github-token,让travis有权限读写github项目文件 去github上申请一个就好 点生产新的token的按钮.申请好后就会出现下面的那个. 我勾选的设置,可以参考 St ...
csdn博文迁移至hexo心路历程
某天我之前的hexo主题被自己玩坏了, 决定换一个主题, 同时突然想把之前CSDN博文迁移进来,CSDN这个网站是越来越傻逼了. 最终选择了hexo-theme-matery主题, 但最艰难的博文迁移过程算是完成了,但仍然有很大瑕疵… 之前迁移的版本瑕疵很大,挑了个时间重新爬了一遍, 这次的思路是登录后爬取CSDN的Markdown原文。 HEXO更换主题,并配置 有了easyHexo这个项目做起来还是很容易的,里面很详细的介绍了hexo博客的构建部署及主题使用以及配置. 我这里就不在赘述了,只说几个坑吧. 代码高亮问题 我采用的 hexo-prism-plugin 是一个代码高亮的插件,但是对c++代码的编写是必须为cpp 不能为 c++. 渲染问题 之前的文件中存在} }这样的字符,hexo渲染的时候就会出现报错 123FATAL Something's wrong. Maybe you can find the solution here: http://hexo.io/docs/troubleshooting.htmlTemplate re ...
主流应用换源or镜像加速
国内换源加速. Arch or manjaro : pacman 启用中国源 1sudo pacman-mirrors -c China 添加archlinuxcn源 archlinuxcn源至您的 /etc/pacman.conf 1234[archlinuxcn]#The Chinese Arch Linux communities packages.SigLevel = Optional TrustAllServer = https://mirrors.ustc.edu.cn/archlinuxcn/$arch ubuntu 1.备份原来的源 1sudo cp /etc/apt/sources.list /etc/apt/sources_init.list 将以前的源备份一下,以防以后可以用的。 2.更换源 1sudo gedit /etc/apt/sources.list 使用gedit打开文档,将下边的阿里源复制进去,然后点击保存关闭。 阿里源 123456789101112131415deb http://mirrors.aliyun.com/ubuntu/ xeni ...
StudyDocker
操作环境: Arch & manjaro docker命令行管理工具使用的dockly 但仍然有缺陷,以后再找找 有没有其他更好用的命令行工具. 教程先看了一遍 B站的尚硅谷教程 有些av号的顺序不对. 看这个就行了. tabris’s 阿里云镜像加速器: https://oj7znbfj.mirror.aliyuncs.com 安装篇 命令安装docker本体 1sudo pacman -S docker 同时建议安装dockly作为docker的命令行管理软件. https://www.npmjs.com/package/dockly 非root用户运行docker是执行如下命令 1sudo usermod -aG docker $USER #your usrname 执行如下命令启动docker服务 12systemctl enable dockersystemctl start docker 镜像加速 鉴于国内网络问题,后续拉取 Docker 镜像十分缓慢,我们可以需要配置加速器来解决,我使用的是阿里云的镜像加速器: https://oj7znbfj.mirro ...
vim使用心得
vim简介 Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。 所有的 Unix Like 系统都会内建 vi 文本编辑器,其他的文本编辑器则不一定会存在。 但是目前我们使用比较多的是 vim 编辑器。 vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计。 vim主要有以下几个优点. 可以不使用鼠标,完全用键盘操作。 系统资源占用小,打开大文件毫无压力。 键盘命令变成肌肉记忆以后,操作速度极快。 同时现今很多开源软件(ranger,lazygit)采用的快捷键都与vim类似.学习vim变得很有必要. 但我这里采用的是neovim NeoVim 旨在成为Vim的升级版,有不少对它的介绍,我就不赘述了。NeoVim官网强调了它的四大特点: Powerful plugins(强大的插件) Better out-of-the-box(更好的开箱即用) First-class embedding(高度支持嵌入模式) Drop-in replacement for Vim(直接替换Vim)。 v ...
设计模式
学习下设计模式 参考菜鸟教程 但其实菜鸟教程介绍的比较简略,还是要参考下其他 设计模式 设计模式的六大原则 1、开闭原则(Open Close Principle) 开闭原则的意思是:对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。简言之,是为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类,后面的具体设计中我们会提到这点。 2、里氏代换原则(Liskov Substitution Principle) 里氏代换原则是面向对象设计的基本原则之一。 里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现。LSP 是继承复用的基石,只有当派生类可以替换掉基类,且软件单位的功能不受到影响时,基类才能真正被复用,而派生类也能够在基类的基础上增加新的行为。里氏代换原则是对开闭原则的补充。实现开闭原则的关键步骤就是抽象化,而基类与子类的继承关系就是抽象化的具体实现,所以里氏代换原则是对实现抽象化的具体步骤的规范。 3、依赖倒转原则(Dependence Inversion Principle) 这个原则是开闭原 ...
工厂模式.
http://www.runoob.com/design-pattern/abstract-factory-pattern.html 下面例子中鼠标,键盘,耳麦为产品,惠普,戴尔为工厂。 简单工厂模式 简单工厂模式不是 23 种里的一种,简而言之,就是有一个专门生产某个产品的类。 比如下图中的鼠标工厂,专业生产鼠标,给参数 0,生产戴尔鼠标,给参数 1,生产惠普鼠标。 工厂模式 工厂模式也就是鼠标工厂是个父类,有生产鼠标这个接口。 戴尔鼠标工厂,惠普鼠标工厂继承它,可以分别生产戴尔鼠标,惠普鼠标。 生产哪种鼠标不再由参数决定,而是创建鼠标工厂时,由戴尔鼠标工厂创建。 后续直接调用鼠标工厂.生产鼠标()即可 抽象工厂模式 抽象工厂模式也就是不仅生产鼠标,同时生产键盘。 也就是 PC 厂商是个父类,有生产鼠标,生产键盘两个接口。 戴尔工厂,惠普工厂继承它,可以分别生产戴尔鼠标+戴尔键盘,和惠普鼠标+惠普键盘。 创建工厂时,由戴尔工厂创建。 后续工厂.生产鼠标()则生产戴尔鼠标,工厂.生产键盘()则生产戴尔键盘。 在抽象工厂模式中,假设我们需要增加一个工厂 假设我们增加华硕工厂,则我们 ...