雪峰流云

专注于智能家居,流媒体,CDN,P2P,Web前端和后端,涉猎的开源项目: ffmpeg/VLC/Darwin/P2P/CrtmpServer/SRS/ATS/nginx/OpenResty/WebKit
私信 关注
雪峰流云
码龄13年

以技术为乐的程序猿!

  • 2,364,151
    被访问量
  • 421
    原创文章
  • 1,097
    作者排名
  • 377
    粉丝数量
  • 毕业院校 北京师范大学
  • 于 2008-06-24 加入CSDN
获得成就
  • 获得210次点赞
  • 内容获得184次评论
  • 获得497次收藏
荣誉勋章
兴趣领域
  • #算法
    #排序算法
TA的专栏
  • 大数据
    3篇
  • InfluxDB
    1篇
  • gcc
    1篇
  • Ubuntu
    70篇
  • C++
    25篇
  • PHP
    6篇
  • Python
    75篇
  • JavaScript&Ajax&jQuery
    22篇
  • 代理缓存服务器
    2篇
  • MySQL
  • Android
  • WebKit
    2篇
  • bash
    2篇
  • vim
    14篇
  • 搜索引擎
  • 算法
    11篇
  • 数据结构
    10篇
  • 面试求职
    8篇
  • Nginx
    30篇
  • go
    14篇
  • Apache Traffic Server
    79篇
  • OpenRTMFP
    12篇
  • 人生感悟
    3篇
  • 视频网站
  • 流媒体开发
    9篇
  • Linux
    55篇
  • 广告精准推广
    7篇
  • 其它
    8篇
  • 上学
    1篇
  • 机器学习
    3篇
  • Mac
    7篇
  • github
    1篇
  • upstream
    1篇
  • healthcheck
    1篇
  • 最近
  • 文章
  • 资源
  • 问答
  • 课程
  • 帖子
  • 收藏
  • 关注/订阅

在CentOS 7.5上升级SQLite3过程实录

在CentOS 7.5上升级SQLite3过程实录业务起因我在CentOS 7.5上安装python3.7+Django 3.1.7并创建项目时,发现启动demo例子出错了,出错信息如下:django.core.exceptions.ImproperlyConfigured: SQLite 3.8.3 or later is required (found 3.7.17).大致意思是,目前CentOS 7.5上发现的SQLite3的版本号是3.7.17,但是Django 3.1.17目前需要
原创
11阅读
0评论
0点赞
发布博客于 6 天前

go连接Kafka报错kafka: client has run out of available brokers to talk to

问题出现的场景:有个go写的项目,原来是用go vendor来管理依赖包的,现在改为是用go module方式了,转换之后,编译成功,发现了上面的错误。很显然连接kafka集群报错了。问题的原因:网上搜了下,很多说是防火墙啥的问题,其实不是。本质原因是,我项目使用的如下kafka客户端库github.com/Shopify/sarama版本升级到当前最新版,这个最新版无法连接kafka集群,换为原来的旧版本就没有问题。大家不要被报错内容迷惑,跟客户端多少没有关系的。特此记录一下,以作
原创
243阅读
0评论
0点赞
发布博客于 2 月前

在Mac上利用pip3安装pyecharts模块

安装pip3 install pyecharts -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
原创
343阅读
0评论
0点赞
发布博客于 7 月前

在Mac上使用pip3安装Jupyter Notebook并简单使用

简介Jupyter Notebook是基于网页的用于交互计算的应用程序。其可被应用于全过程计算:开发、文档编写、运行代码和展示结果。简而言之,Jupyter Notebook是以网页的形式打开,可以在网页页面中直接编写代码和运行代码,代码的运行结果也会直接在代码块下显示。如在编程过程中需要编写说明文档,可在同一个页面中直接编写,便于作及时的说明和解释。Jupyter Notebook的主要特点编程时具有语法高亮、缩进、tab补全的功能。可直接通过浏览器运行代码,同时在代码块下方展示运行结果。
原创
406阅读
0评论
1点赞
发布博客于 7 月前

在Mac上使用pip3安装交互式环境IPython实录

简介IPython 是一个 python 的交互式 shell,比默认的python shell 好用得多,支持变量自动补全,自动缩进,支持 bash shell 命令,内置了许多很有用的功能和函数。IPython从Python发展而来,更倾向于科学计算。互联网数据分析更喜欢用。那本经典的《利用python进行数据分析》中就是使用IPython来演示的示例代码。安装命令pip3 install ipython -i http://pypi.douban.com/simple --trusted-
原创
100阅读
0评论
0点赞
发布博客于 7 月前

在Mac上使用pip3安装python的数据统计模块实录

业务需求目前我需要快速搭建一套python的数据统计和科学计算环境,来处理我工作中遇到的大量业务数据,做模拟和验证结论。我需要避免安装过程中的任何失败或包依赖的繁琐,最好几行命令就完事大吉!下面是我经过调研之后的实操记录,以作备忘。软硬件环境说明MacBook Pro 2017款顶配,MacOS 10.13.6,python3版本3.8.5,pip3版本20.1.1下面是rMBP上的python环境说明python -Vpython3 -Vpip -Vpip3 -V快速
原创
91阅读
0评论
0点赞
发布博客于 7 月前

Python中的urllib.quote和Go中的url.QueryEscape关系探讨

工作中多次遇到Python版本的签名算法,需要用Go版本再实现一遍,这就需要牵扯到Python 2.7中的urllib中的quote,quote_plus和Go中net/url包中的url.QueryEscape的关系。下面直接给出它们的关系:urllib.quote_plus(str)等同于url.QueryEscape(str), urllib.quote_plus(str)和urllib.quote(str)的关系如下rllib.quote(string[, safe])将string中
原创
305阅读
0评论
0点赞
发布博客于 8 月前

CentOS 7.5 如何升级Git实录

CentOS7自带的git版本1.8.3.1,这个版本有点低了。于是决定折腾升级, 实操记录在此:1、确认你的当前git版本在终端输入:git --version2、使用root账号在终端终入:su root然后输入root账号的密码,注意linux下输密码时界面是没有变化的3、配置存储库启用Wandisco GIT存储库,在此之前我们先写入新yum存储库配置文件,在终端输入:vim /etc/yum.repos.d/wandisco-git.repo按i,进入插入..
原创
113阅读
0评论
0点赞
发布博客于 8 月前

在CentOS 7.7 x86_64上安装InfluxDB 1.8.0实录

在InfluxDB官网获取最新稳定版的下载和安装指导wget https://dl.influxdata.com/influxdb/releases/influxdb-1.8.0.x86_64.rpmsudo yum -y localinstall influxdb-1.8.0.x86_64.rpm编辑配置文件vim /etc/influxdb/influxdb.conf仔细研...
原创
1216阅读
1评论
0点赞
发布博客于 10 月前

在CentOS 7.7 x86_64上安装python3的selenium 3模块实录

安装selenium3模块pip3 install selenium如果上面的命令因为网络问题,重试多次仍失败,可以尝试下面的命令pip3 install selenium -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com配置selenium相关的环境下载并安装最新的Chrome版本wget https:...
原创
243阅读
0评论
0点赞
发布博客于 10 月前

在CentOS 7.7 x86_64上安装python3.7.7

由于Centos 7原本就安装了python2,而且这个python2不能被删除,因为有很多系统命令,比如yum都要用到。[root@VM_105_217_centos Python-3.6.2]# pythonPython 2.7.5 (default, Aug 4 2017, 00:39:18)[GCC 4.8.5 20150623 (Red Hat 4.8.5-16)] on lin...
原创
588阅读
0评论
0点赞
发布博客于 10 月前

安装vim-go插件之后遇到的gopls警告信息不消失的问题的解决方法

原由因为新冠肺炎疫情蔓延,2020年初宅在家里的这一个多月,我手头只有一台自己的retina MacBook Pro(后文简称rMBP),公司配发的笔记本过年放假没有带回家,年后公司远程办公,需要电脑及开发环境,没有办法,只能强制自己在rMBP上配置好需要的代码开发环境。软硬件环境macOS 10.13.6, vim 8.2, vim-go 1.22现象描述我安装好Vim之后,...
原创
2980阅读
1评论
0点赞
发布博客于 1 年前

使用govendor灵活管理Go程序中的依赖包

业务痛点使用Go开发程序的过程中,为了方便开发,往往会引用很多标准库或者第三方的依赖包,第三方依赖包往往比标准库功能更全面更强大更接地气,那么如何管理众多的第三方依赖包呢?如何更新其版本?在不需要时,如何删除掉呢?如果有工具能帮助解决这个问题就好了,好在Go中前辈们其实早就想到了这个痛点,有个第三方的库govendor就能完美解决这些问题,让我们更舒心地使用依赖库,只需要很少的几行命令就能搞定...
原创
338阅读
0评论
0点赞
发布博客于 1 年前

在Mac上设置环境变量并永久生效的方法

原由我使用Go来开发程序,安装govendor之后发现命令行中执行govendor无效,需要将govendor所在的路径添加到PATH环境变量中。Mac中的环境变量介绍Mac系统的环境变量,加载顺序为:/etc/profile /etc/paths ~/.bash_profile ~/.bash_login ~/.profile ~/.bashrc当然/etc/profile和...
原创
3109阅读
0评论
2点赞
发布博客于 1 年前

使用Go语言遇到的“坑”收集

1.今天在线上一台虚机CentOS 7上执行一个go test的命令,发现如下奇怪的报错:exec: "gcc": executable file not found in PATH解决方案:执行如下命令安装GCC,原来系统中的确之前没有安装过GCCsudo yum install gcc #安装GCCwhich gcc/usr/bin/gcc #验证安装完毕...
原创
139阅读
0评论
0点赞
发布博客于 1 年前

在macOS 10.13.6下安装Grafana实录

因为工作原因,需要尽快熟悉和掌握Grafana等工具的使用,所以我就临时在手上这台rMBP上安装了Grafana 6.6.2版本,下面是我的实录,以作备忘。下载和安装grafanamacOS下安装软件,一般都是首选brew的,在终端执行下面的命令brew updatebrew install grafana当出现如下信息代表安装成功:常用操作查询安装位置brew l...
原创
155阅读
0评论
0点赞
发布博客于 1 年前

在macOS 10.13.6上安装go 1.13.8实录!

因为一些原因,需要在rMBP上开发Go程序,下面记录一下在macOS 10.13.6上安装Go 1.13.8的过程。其实整个过程非常简单,使用HomeBrew来安装和升级软件非常方便。就一行命令搞定:brew install go安装完成之后,需要检查一下版本号和$GOROOT和$GOPATH基本安装信息我可以在$GOPATH/src下写代码并编译,对于程序中所依赖...
原创
1539阅读
0评论
0点赞
发布博客于 1 年前

CentOS 7.7 x86-64安装系统字体及美化实录

我在rMBP上用VMware Fushion 15.1安装了CentOS 7.7的虚拟机,带有gnome界面,打算用于日常的开发工作。但是发现界面实在是太丑陋了,决定趁周末折腾一下,网上研究了一些资料,下面是我有价值的记录,以作备忘。效果图如下安装系统字体安装字体需要将我们收集的喜欢的字体先复制到下面的指定目录,比如可以从Windows 10中的C:\Windows\Font...
原创
474阅读
0评论
0点赞
发布博客于 1 年前

在Mac上通过VMware Fushion 15.1配置静态IP虚拟机实录

一、业务场景在rMBP上的VMware Fushion 15.1安装虚拟机,采用一切默认的配置,经过简单几步,我们将得到一个dhcp协议的具有动态ip地址的虚拟机,可以满足绝大多数情况,也很方便很好用。但是有一种业务场景需要考虑到,比如我想创建一个虚拟机,只提供指定的网络服务(比如dns,http服务等),在家里和公司环境都不需要怎么配置,切换办公环境之后也好使,这样的话,一般要求虚拟机的IP...
原创
327阅读
0评论
0点赞
发布博客于 1 年前

在Ubuntu 16.04.6 LTS升级python 3.5.x到3.7.3之后导致gnome-ternimal无法打开的解决办法

在前一篇博文https://blog.csdn.net/tao_627/article/details/90901830中,我顺利将python 3.5.x升级到3.7.3,发现一切都正常,运行python3 -V 和 pip3 -V 都是正常的,但是当我重启Ubuntu之后,就悲催地发现,终端打不开了,点击图标显示正在打开但并不能打开,使用Ctrl+alt+T也打不开,而且系统右上角有...
原创
1409阅读
0评论
3点赞
发布博客于 2 年前

在Ubuntu 16.04.6 LTS上升级python 3.5到3.7.3实录

缘由我想安装一个python模块you-get,发现只能使用pip3安装,但是我发现我的Ubuntu 16.04.6 LTS上有python3.5,但是没有pip3,也无法成功安装,真是要了我的老命!网上调研一番后,发现直接从python的官网下载最新的python3.7的源码来升级python3这个思路是最可行的办法。因为python3只是一个python3.5中python3命令指向的符号...
原创
19107阅读
8评论
6点赞
发布博客于 2 年前

在Ubuntu 16.04.6 LTS上安装python3.7和pip3后出现Command '('lsb_release', '-a')' 出错问题的解决方法

在Ubuntu 16.04.6 LTS上安装python3.7和pip3后出现Command '('lsb_release', '-a')' returned non-zero exit status 1问题解决方法我在Ubuntu 16.04.6 LTS中将python3的版本由3.5升级到3.7.3,在安装任何模块时,比如执行下面的命令sudo pip3 install you-get...
原创
4067阅读
2评论
7点赞
发布博客于 2 年前

Go的日志模块glog调研笔记

glog简介glog是著名的google开源C++日志库glog(https://github.com/google/glog)的golang版本,glog是一个轻量级的日志库,上手简单不需要配置文件并且稳定高效,可以自定义控制的内容比较少。glog主要有以下几个特点:1. glog有四种日志等级INFO < WARING < ERROR < FATAL,不同等级的日志...
原创
802阅读
0评论
0点赞
发布博客于 2 年前

在Ubuntu 16.04.6 LTS上升级Go到最新版1.12.5实录

上一次我在Ubuntu 16.04.3 LTS上从源码安装了Go,当时最新的版本是1.10,参见我之前的博文https://blog.csdn.net/tao_627/article/details/79375950这里,我想将Go更新到现在的最新版本,下面是我的折腾过程,很简单,只需要替换Go语言的源码文件就可以了。从Go的官网上下载最新的源码包,我这里选择go1.12.5.linu...
原创
4070阅读
0评论
1点赞
发布博客于 2 年前

二分查找算法的一点改进

在计算机科学中,二分查找,是一种在有序数组中查找某一特定元素的搜索算法。这种搜索算法每一次比较都使搜索范围减半。第一篇二分查找的论文发表于1946年,然而第一个没有bug的二分查找算法却是在1962年才出现,中间用了16年时间。本文首先二分查找算法给出了官方标准写法,然后给出另两种改进。主要原因是,当low和high对应的数组元素比较大时,求平均值可能会造成溢出,所以针对此做了一些改进。...
原创
723阅读
0评论
1点赞
发布博客于 2 年前

在CentOS 6.3 64bit上安装ActiveMQ 5.15.9实录

1.下载安装ActiveMQActiveMQ 5的官网下载地址为http://activemq.apache.org/components/classic/download/我这里选择Unix版本下载下载完安装包,解压之后的目录:从它的目录来说,还是很简单的:bin存放的是脚本文件conf存放的是基本配置文件data存放的是日志文件docs存放的是说明文档ex...
原创
674阅读
1评论
0点赞
发布博客于 2 年前

在CentOS 6.9 64bit上安装jdk1.8

因为工作需要使用到ActiveMQ,它是Java语言实现的,所以需要事先安装Java集成环境,下面是我的实操过程,记录如下,参考了文末两篇链接。一、系统环境说明rMBP上的VMware Fushion Pro 10.1.1CentOS 6.9 64bitjdk-8u211-linux-x64.tar.gz二、安装步骤1.检查是否存在jdk旧版本,若有,需要事先卸载rpm -qa...
原创
824阅读
0评论
0点赞
发布博客于 2 年前

数据结构与算法常用名词术语整理

binary search 二分查找half-interval search 折半查找logarithmic search 对数搜索sentinel 哨兵pivot 基准数median 中位数,中值partition 分割percolate 过滤sentinel 哨兵linear time 线性时间logarithmic time 对数时间call st...
原创
378阅读
0评论
0点赞
发布博客于 2 年前

求无序数组的中位数(c语言版本)

在面试时,会经常被问道,如何求解一个无序数组的中位数?很多人往往都会第一感觉就是,先将该数组排序,然后找出最中间的那个数,但是这种思路通常的时间复杂度最好是O(nlogn),更糟的情况下会到O(n^2),并不是最优解,也就不能impressed面试官了。下面我们聊聊这个话题。何为中位数?中位数,就是数组排序后位于数组最中间位置的那个元素。当然,细分析的话,还要区分该数组的长度,如果该数组长...
原创
2974阅读
1评论
2点赞
发布博客于 2 年前

无序单链表排序算法(c语言版本)

这是一道非常经典的面试题。我们知道,快速排序的思想是,通过一个基准元素(pivot),一趟排序就将数据划分为两个部分:左边的部分小于该基准元素,右边的部分大于该基准元素。另外,实现快速排序的关键在于随机访问数据元素,所以快速排序通常都是基于数组来实现的,但是面试中往往会要求对无序单链表进行快排,这就明显不能使用快速排序的基本思想,因为从链表尾部无法向链表头部遍历。解决方法还是基于快速排序思想,...
原创
3980阅读
0评论
1点赞
发布博客于 2 年前

快速排序的两种实现方法(c语言版本)

经过调研发现,对任意无序整数数组,快速排序有两种实现方法,这里简单阐述下思路:思路一:随意选择一个基准元,一般选择数组的起始元或末尾元,Weiss这本书上特意搞了个算法来选择基准元,……,总之就是基准元的选择要尽量随机。选定基准元之后,比如选择数组起始元为基准元,从数组右边开始,向左边遍历,遇到比基准元大的跳过,直至遇到比基准元小的元素停下来;再从左边向右边遍历,跳过比基准元小的,直至遇到比基...
原创
1178阅读
0评论
1点赞
发布博客于 2 年前

删除单链表中的重复节点(c语言版本)

这是一道经典的面试题,下面是我的研究和举一反三,特整理如下:分为三种情形:(1)删除有序链表的重复节点,重复节点一个都不留(2)删除有序链表的重复节点,重复节点只留一个(3)删除无序链表的重复节点,重复节点只留一个下面是相关节点的定义:typedef struct ListNode { int val; struct ListNode *next; ...
原创
7098阅读
0评论
7点赞
发布博客于 2 年前

使用最小堆使用优先级队列(c语言版本)

下面的例子来自Weiss的《数据结构与算法分析:c语言描述》,自己亲自敲了一遍,跑了个demo,并将结果记录下来。binheap.h的头文件声明//description: 使最小堆实现优先级队列//date: 2019-03-15#ifndef __BINHEAP_H__#define __BINHEAP_H__typedef int ElementType;struc...
原创
445阅读
0评论
0点赞
发布博客于 2 年前

十种经典排序算法精粹(c语言版本)

下面给出这段时间我苦心研究验证过的十种经典排序算法的C语言版本,即下面的排序算法:插入排序,shell排序,冒泡排序,快速排序,选择排序,堆排序,归并排序,桶排序,基数排序和计数排序。整理出来以作备忘,不足之处,欢迎大家批评指正!其中计数排序分别给出了不稳定和稳定两种排序算法,测试时,使用随机生成大数组和随机手动输入的方法来测试。//description: 这里给出了c语言版本的10种...
原创
519阅读
0评论
0点赞
发布博客于 2 年前

在Ubuntu 16.04.5 LTS上安装pygame模块

简介Pygame是跨平台Python模块,专为电子游戏设计,包含图像、声音。建立在SDL基础上,允许实时电子游戏研发而无需被低级语言(如机器语言和汇编语言)束缚。 安装sudo pip install pygame验证在命令行上输入python,再import pygame, 如果没有报错,说明python安装成功。示例下面借用网上的例子展示一下效果,给出《...
原创
457阅读
0评论
1点赞
发布博客于 2 年前

在Ubuntu 16.0.4.5 LTS上安装python 2.7版本的cv2模块

简介OpenCV是一个C++库,用于实时处理计算机视觉方面的问题,涵盖了很多计算机视觉领域的模块。 OpenCV有两个Python接口,老版本的cv模块使用OpenCV内置的数据类型,新版本的cv2模块使用NumPy数组。对于新版本的模块,可以通过下面方式导入:import cv2而老版本的模块则通过下面方式导入:import cv2.cv安装cv2下面记录了在Ubunt...
原创
611阅读
0评论
0点赞
发布博客于 2 年前

在Ubuntu 14.04.5 LTS上安装python模块selenium 3实录

简介Selenium是python模块库中一组web自动化测试工具集,提供多种语言的API,例如java,python,ruby,.net等,支持Firefox,Chrome,IE,Safari 等多种浏览器,但是它驱动浏览器运行需要有专门的驱动程序。当驱动程序与浏览器的版本不匹配是就会报错。所以下载驱动一定要注意版本的匹配问题。Selenium2.0和selenium3.0的到底选择哪个...
原创
251阅读
0评论
0点赞
发布博客于 2 年前

在Ubuntu 16.04.5 LTS上利用python 2.7中的PIL模块智能等比例压缩过大的图片集实操

需求有时候自媒体创作写稿时难免遇到大规模压缩某个文件夹内的图片的情况,通常我们可以使用一些批量压缩的工具来处理,但我觉得,这是小白的做法,对于我们这些经验丰富的老司机来说,使用代码来处理,将是一件高效而且高逼格的事情。使用PIL中的Image模块,就能很快地完成这项工作。准备我的电脑图片文件夹中有一个壁纸文件夹"win8壁纸",都是分辨率超过1080P的大图,我将使用python代码将...
原创
247阅读
0评论
0点赞
发布博客于 3 年前

在Ubuntu 16.04.5 LTS上利用python中的PIL模块压缩一百多兆的单张图片实操

在前面的博文中,我将300多张电影海报拼接为了一张103MB的巨幅图片,我想拿它做电脑桌面(1080P),但是这么多的图片,存储和加载是个麻烦事儿,需要将它压缩到几MB大小。在Ubuntu 16.04.5 LTS上利用python 2.7版本的pillow库拼接近千张图片实录我尝试了市面上所有的压缩软件,发现处理时间冗长且压缩效果较差。下面是采用python的PIL中的Image模块,十几...
原创
223阅读
0评论
0点赞
发布博客于 3 年前

在Ubuntu 16.04.5 LTS上利用python 2.7版本的pillow库拼接近千张图片实录

缘由这两年网上出现了使用python中的PIL或是pillow库拼接图片和朋友圈图像的例子,让我非常感兴趣,比较典型的是这几个例子:《朋友圈的朋友们,你们终于可以互相看到了》《1000张图片如何拼接》我实操了一下,发现还是有些小问题,下面是我消化吸收和改进的过程。改进的地方:1.存放图片的文件夹是任意指定的,里面文件名没有要求,不需要按照序号1,2,……这样的命名,更实用;...
原创
454阅读
0评论
0点赞
发布博客于 3 年前

在ubuntu 16.04.5 LTS上使用Python 2.7生成带logo的二维码实战

安装依赖库详细的使用python模块qrcode库的博文,参见https://blog.csdn.net/tao_627/article/details/85053884下面的例子需要使用qrcode,pillow,matplotlib和python-tk库,安装如下sudo pip install qrcodesudo pip install pillowsudo pip i...
原创
148阅读
0评论
0点赞
发布博客于 3 年前

在Ubuntu 16.04.5 LTS上使用python第三方库QRCode 6.0生成二维码实录

简介二维码简称 QR Code(Quick Response Code),学名为快速响应矩阵码,是二维条码的一种,由日本的 Denso Wave 公司于 1994 年发明。现随着智能手机的普及,已广泛应用于平常生活中,例如商品信息查询、社交好友互动、网络地址访问等等。下面是我使用qrcode生成的自己博客的二维码,欢迎关注。可以使用python提供的qrcode库来快速生成二维码,...
原创
435阅读
0评论
0点赞
发布博客于 3 年前

在Ubuntu 16.04.5 LTS上升级python的pip版本实录

在ubuntu 16.04.5 LTS上使用Python安装模块时,比较顺手的方法是使用pip命令。这次,我在安装一个模块时,老是提示下面的问题,比较不爽。所以,我就照着提示做了一遍,记录下来,以作备忘。按照提示,执行下面的升级命令,要使用超级用户权限sudo pip install --upgrade pip在升级过程中,为了看到更多的详细信息,可以使用下面的选项sudo...
原创
827阅读
0评论
0点赞
发布博客于 3 年前

ats缓存对象过期不回源校验的处理日志.log

使用ATS 6.2.1时,发现一例文件过期但不回源校验的问题,这里是ATS对该请求的内部详细的处理日志细节,供对ATS内部处理机理感兴趣的同学参考,详见本人博文https://blog.csdn.net/tao_627/article/details/84973817
log
发布资源于 3 年前

ATS 6.2.1中缓存文件过期并不回源校验的“坑”

事先说明标题说是“坑”,并没有说是“bug”,也就是多半是玩的姿势不对。线上问题我司(lecloud)目前线上大小文件都是使用的ATS 6.2.1版本,昨天运维反馈有文件超过缓存时间并不回源刷新,截图如下:现象就是:age超过max-age了,过期了不更新!另外需要说的一点就是,源站是可以正常回源的。复现现象并打印调试日志我复现了上述现象,发现问题的确如此,而且...
原创
596阅读
1评论
1点赞
发布博客于 3 年前

lua中正则表达式的坑

我在使用OpenResty编写lua代码时,需要使用到lua的正则表达式,其中pattern是这样的,--热水器设置时间local s = '12:33'local pattern = "(20|21|22|23|[01][0-9]):([0-5][0-9])"local matched = string.match(s, "(20|21|22|23|[01][0-9]):([0-5][0-...
原创
2942阅读
0评论
0点赞
发布博客于 3 年前

在Ubuntu 16.04.04 LTS上调研QUIC开源项目minq笔记

minq项目的主旨是minimum quic(最小化实现的QUIC),指最简单的QUIC项目,目前只实现了IETF QUIC的draft 5部分功能,远不成熟,不能用于生产环境。它内部依赖LTS 1.3的go开源实现项目minthttps://github.com/bifurcation/mint下面开始安装cd ${GOPATH}/srcgo get github.com/ekr/minqcd ...
原创
582阅读
1评论
0点赞
发布博客于 3 年前

在CentOS 6.9 x86_64上从源码安装xz命令的方法

xz官网https://tukaani.org/xz/下载最新版本的源码包cd ~wget https://tukaani.org/xz/xz-5.2.3.tar.gztar zxvf xz-5.2.3.tar.gzcd xz-5.2.3./configuremakesudo make installcd ..安装完成之后,在命令行直接执行xz -h发现命令可以找到,默认安装在/usr/local...
原创
1352阅读
0评论
0点赞
发布博客于 3 年前

在CentOS 6.9上从源码安装Go 1.10

详见本博博文http://blog.csdn.net/tao_627/article/details/79375950这里只是简单记录一下实操步骤,假定用户为root:wget https://dl.google.com/go/go1.10.linux-amd64.tar.gztar zxvf go1.10.linux-amd64.tar.gz -C /usr/local创建项目目录cd /roo...
原创
1791阅读
1评论
0点赞
发布博客于 3 年前

在Ubuntu 16.04.4 LTS上调研开源QUIC项目ngtcp2

最近在研究QUIC协议,尝试了一些QUIC相关的开源项目,主要是c,c++,go等语言编写的。这里记录下我折腾ngtcp2的过程。基本思路就是参照github上该项目的README来进行就可以了。由于是Ubuntu 16.04,很多依赖基本上都满足了,比如gcc版本是5.4.0。QUIC依赖的TLS 1.3是安装在openssl的源码目录下面,没有安装到系统库中,这一点使用时比较方便。git cl...
原创
1687阅读
1评论
0点赞
发布博客于 3 年前

在Ubuntu 16.04.3 LTS上运行go+https+json示例

下面是我依据网上资料的实操过程,记录以作备忘。该示例给出了https通信并处理json文件的例子。平台:Ubuntu 16.04.3 LTSgo版本:1.101.生成自签名的服务器端的私钥KEY和公钥证书openssl genrsa -out server.key 2048openssl req -new -x509 -key server.key -out server.crt -days 36...
原创
402阅读
0评论
0点赞
发布博客于 3 年前

在Ubuntu 16.04.3 TLS上玩转tls协议的简单demo

目的熟悉openssl生成密钥和证书对,熟悉go中crypto/tls的用法名词解释PEM - Privacy Enhanced Mail,打开看文本格式,以”—–BEGIN…”开头, “—–END…”结尾,内容是BASE64编码. Apache和*NIX服务器偏向于使用这种编码格式.查看PEM格式证书的信息:openssl x509 -in certificate.pem -text -noou...
原创
1668阅读
0评论
0点赞
发布博客于 3 年前

在Ubuntu 16.04.3 LTS上玩转quic-go项目

说明quic-go是使用Go来重写chromium中的QUIC协议,将来计划过渡到IETF版本的QUIC协议。目前该协议还处于不断更新和活跃之中,目前IETF版本的QUIC协议草案版本号已经到draft 9下面是我对REAME的实操记录,以作备忘。项目主页https://github.com/lucas-clemente/quic-go特别要求必须能流畅翻墙去下载go相关源码包GO环境搭建目前Ub...
原创
4425阅读
0评论
1点赞
发布博客于 3 年前

在Ubuntu 16.04.3 LTS上玩转QUIC开源项目proto-quic

说明proto-quic项目是民间从chromium中抽取出的QUIC实现相关的代码。采用这个项目的代码,比从chromium源码编译,要更快速和简单。因为毕竟GFW限制,不是所有的人都可以翻墙去下载近10G的chromium项目源码。下面的实操过程完全遵照github上的该项目的提示进行https://github.com/google/proto-quic另外参照chromium项目的官网页面...
原创
2822阅读
2评论
3点赞
发布博客于 3 年前

在Ubuntu 16.04.3 LTS上搭建QUIC交互demo

目的本文依据参考文献中的资料,来利用chromium源码编译出quic_server和quic_client, 并依靠它们来发送QUIC协议请求,了解QUIC交互的细节。前提必须能够流畅地翻墙下载chromium等项目代码下面是实操记录项目目录存放在cd ~/program_develop/quic_dev最后的目录结构在这里提前说明一下下载chromium项目源码git clone https:...
原创
2581阅读
0评论
0点赞
发布博客于 3 年前

在Ubuntu 16.04.3 LTS上安装Go 1.10

升级Go新版本的原因目前Ubuntu 16.04.3上最新的二进制Go版本是1.6.2,运行github上的一个大的go项目,发现context包在go版本1.6以上和以下的import方式有差异在go1.7及以上版本context包被正式列入官方库中,所以我们只需要import "context"就可以了,而在go1.6及以下版本,我们要import "golang.org/x/net/cont...
原创
20194阅读
1评论
4点赞
发布博客于 3 年前

OpenResty中的upstream healthcheck功能沉思录

综述healthcheck功能本质上还是个定时器,去定期检查指定upstream组的状态,它发送指定的http请求并解析响应码,去探测upstream中每个peer的存活状态,再结合历史请求记录来判断并标记其状态,如果有状态改变,就在共享内存中更新版本记录,下次执行时,所有的worker进程都要更新到最新的peer状态。下面的表述都假定我们要监控的upstream组名是ats_node_backe...
原创
6047阅读
3评论
0点赞
发布博客于 3 年前

在MacBook Pro 2015上安装iTerm2笔记

目前的MacOS版本是10.13.3。昨天早上因为升级针对10.12.6的一个推送,把macOS搞崩了,进入不了系统。找运维兄弟重装了最新版本的系统。下面是我整理的iTerm2的安装笔记,以作备忘。1.安装Mac上的软件包管理工具HomebrewHomebrew是MAC下的包管理工具,类似centos的yum, ubuntu的apt-get, 可以当做debian下的apt-get,但
原创
2228阅读
0评论
0点赞
发布博客于 3 年前

在Ubuntu 16.4.3 LTS x86_64上安装PyCharm社区版笔记

在浏览器中从PyCharm官网下载最新社区版本,它时免费的https://www.jetbrains.com/pycharm/download/#section=linux默认存放地址是下载文件夹,然后解压到指定目录cd ~/下载sudo tar zxvf pycharm-community-2017.3.2.tar.gz -C /opt/cd /opt/pycharm
原创
1243阅读
0评论
0点赞
发布博客于 3 年前

在CentOS 6.9 x86_64的nginx 1.12.2上开启标准模块ngx_http_auth_request_module实录

ngx_http_auth_request_module是是nginx的一个验证模块,它允许您的nginx通过发送请求到后端服务器(一般是应用服务器,例如tomcat,或者php等)进行请求, 并且根据请求决定是验证通过或者不通过。后端返回200 验证通过, 后端返回401或者403验证不通过。该模块默认可以开启,可以在configure时使用--with-http_auth_reques
原创
3195阅读
0评论
0点赞
发布博客于 3 年前

在CentOS 6.9 x86_64的nginx 1.12.2上开启标准模块ngx_http_map_module实录

介绍默认情况下,nginx会加载标准模块ngx_http_map_module(或称ngx_map),除非人为的在configure时添加--without-http_map_module选项。ngx_http_map_module模块可以创建变量,这些变量的值与另外的变量值相关联。允许分类或者同时映射多个值到多个不同值并储存到一个变量中,map指令用来创建变量,但是仅在变量被读取的时候执
原创
847阅读
0评论
0点赞
发布博客于 3 年前

在CentOS 6.9 x86_64的nginx 1.12.2上安装第三方模块set-misc-nginx-module实录

set-misc-nginx-module模块是标准的HttpRewriteModule指令的扩展,提供更多的功能,如URI转义与非转义、JSON引述、Hexadecimal/MD5/SHA1/Base32/Base64编码与解码、随机数等等。在后面的应用中,都将会接触使用到这个模块的。该模块是由章亦春先生开发的,他开发的其他模块应用也会使用到这个模块的。充分使用nginx非阻塞模式,对性能上有极
原创
1447阅读
0评论
0点赞
发布博客于 3 年前

在CentOS 6.9 x86_64的nginx 1.12.2上开启ngx_http_geo_module模块实录

ngx_http_geo_module模块,默认情况下,nginx会加载,除非人为的 --without-http_geo_module。这个模块提供了一个非常好用的geo指令,可以用它来创建变量,诞生其值依赖于客户端IP地址。ngx_http_geo_module模块官网地址http://nginx.org/en/docs/http/ngx_http_geo_module.h
原创
403阅读
0评论
0点赞
发布博客于 3 年前

在CentOS 6.9 x86_64的nginx 1.12.2上开启echo-nginx-module模块实录

echo-nginx-module是一个第三方模块,在nginx源码中没有,但是OpenResty中有,它为nginx.conf带来了echo,sleep,time等多个类似bash的强大命令。目前最新版本是v0.61安装指南参见https://github.com/openresty/echo-nginx-module#installation配置 se
原创
557阅读
0评论
0点赞
发布博客于 3 年前

解决github push错误403 Forbidden while accessing

业务场景我原来在github上创建了一个repository,名称为github_test,我上传了一些文件。但是几年后,我想再次利用该repository,更新并上传文件。我在一台虚拟机上面git clone下该repository,修改并添加了一些文件,想更新到github上。下面是我的操作步骤我使用ssh-keygen创建了公钥和私钥,将公钥cat
原创
6501阅读
0评论
0点赞
发布博客于 3 年前

在CentOS 6.9 x86_64的nginx 1.12.2上开启ngx_http_empty_gif_module模块实录

ngx_http_empty_gif_module是nginx自带的标准模块,它只返回一个保存在内存中的透明像素的GIF图片(速度当然比硬盘上读取的速度快很多),多用于传递统计参数,用在location上下文中。该模块默认就是开启的。配置location ~ /test_[0-9].gif { empty_gif;}location ~* /3145/ {
原创
470阅读
0评论
0点赞
发布博客于 3 年前

在CentOS 6.9 x86_64的nginx 1.12.2上开启ngx_req_status模块实录

ngx_req_status是一个第三方模块,它用来展示nginx请求状态信息,类似于apache的status,ats的stats_over_http和channel_stats,nginx自带的模块只能显示连接数等等信息,我们并不能知道到底有哪些请求、以及各url域名所消耗的带宽是多少。ngx_req_status提供了这些功能:功能特性按域名、url、ip等等统计信息统计总流
原创
1730阅读
0评论
0点赞
发布博客于 3 年前

在CentOS 6.9 x86_64上开启nginx 1.12.2的proxy_cache缓存配置

本文研究nginx提供的缓存功能,下面是实操记录。这篇博文基于前面文章的基础上搭建,至始至终都是root用户操作http://blog.csdn.net/tao_627/article/details/78953800缓存清除功能需要借助第三方模块ngx_cache_purge,其链接如下https://github.com/FRiCKLE/ngx_cache_purge
原创
588阅读
0评论
0点赞
发布博客于 3 年前

在CentOS 6.9 x86_64上开启nginx 1.12.2的stub_status模块(ngx_http_stub_status_module)监控

Nginx中的stub_status模块主要用于查看Nginx的一些状态信息. 本模块默认是不会编译进Nginx的,如果你要使用该模块,则要在编译安装Nginx时指定:./configure --with-http_stub_status_module 基础的nginx搭建参见本博博文http://blog.csdn.net/tao_627/article/details/78
原创
712阅读
0评论
0点赞
发布博客于 3 年前

在CentOS 6.9 x86_64上安装nginx 1.12.2

比较详细的教程参见以前的博文http://blog.csdn.net/tao_627/article/details/60957521这里只给出简略步骤,没有截图,自始至终使用root操作目前最新的源码地址ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.41.tar.gzhttp://www.zlib
原创
1202阅读
0评论
0点赞
发布博客于 3 年前

OpenResty学习中的几个小例子汇总

1.测试lua或是LuaJIT的版本号如果使用的是标准 Lua,访问 /lua-version 应当返回响应体 Lua 5.1如果是 LuaJIT 则应当返回类似 LuaJIT 2.0.2 这样的输出。不要使用标准lua,应当使用luajit, 后者的效率比前者高多了。在nginx.conf中的server中添加一个location。location = /test {lo
原创
1407阅读
0评论
0点赞
发布博客于 4 年前

在CentOS 6.9 x86_64上安装redis 4.0.6

1.安装依赖yum install -y wget gcc make tcl2.下载源码并安装进入redis官网https://redis.io/download/下载最新版wget http://download.redis.io/releases/redis-4.0.6.tar.gztar xzf redis-4.0.6.tar.gzcd redis-4.0.6
原创
498阅读
0评论
0点赞
发布博客于 4 年前

在CentOS 6.9 x86_64的OpenResty 1.13.6.1上使用基于Redis实现动态路由示例

下面是我阅读春哥OpenResty官网主页中“Dynamic Routing Based On Redis”一节的实操记录,整理如下。https://openresty.org/cn/dynamic-routing-based-on-redis.html这个例子展示了利用Redis将进来的请求,依据User-Agent头的不同,路由到不同的后端HTTP服务器上面。这个demo将
原创
427阅读
0评论
0点赞
发布博客于 4 年前

在CentOS 6.9 x86_64的OpenResty 1.13.6.1上使用LuaRocks示例

下面是我阅读春哥OpenResty官网主页中“Using LuaRocks”一节的实操记录,整理如下。https://openresty.org/cn/using-luarocks.html1.在CentOS 6.9 x86_64搭建Lua开发环境详细过程参见本博博文http://blog.csdn.net/tao_627/article/details/7892521
原创
689阅读
0评论
0点赞
发布博客于 4 年前

在CentOS 6.9 x86_64搭建Lua开发环境

安装依赖库yum -y install readline-dev readline-devel下面源码编译lua时需要用到安装lua-5.1.5wget http://www.lua.org/ftp/lua-5.1.5.tar.tar zxvf lua-5.1.5.tar.gzcd lua-5.1.5make linux testmake install
原创
853阅读
0评论
0点赞
发布博客于 4 年前

在CentOS 6.9 x86_64上玩转OpenResty 1.13.6.1中的resty-cli模块

resty-cli是OpenResty中命令行工具的集合,其中resty工具是最有用的。安装好OpenResty之后,resty-cli就会默认安装,以我的安装为例,参见博文http://blog.csdn.net/tao_627/article/details/78912545它的位置在/opt/openresty/bin下面配置环境变量vim /etc/
原创
574阅读
0评论
0点赞
发布博客于 4 年前

OpenResty中遇到"Can't locate Time/HiRes.pm in @INC"问题的解决方法

今天在研究resty这个命令行工具时,执行resty -h出现下面的报错Can't locate Time/HiRes.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl
原创
1640阅读
0评论
0点赞
发布博客于 4 年前

在CentOS 6.9 x86_64上搭建全功能的OpenResty 1.13.6.1笔记

好久没有玩OpenResty,这段时间机会难得,赶紧实践一下。下面是我在rMBP的CentOS 6.9 x86_64虚拟机上安装目前最新版OpenResty 1.13.6.1的笔记。OpenResty的下载地址是https://openresty.org/cn/download.html下面按照步骤说明如下:1.安装依赖包yum -y install readlin
原创
1871阅读
0评论
0点赞
发布博客于 4 年前

在Ubuntu 16.04.3 LTS上搭建Go语言环境实录

1.安装sudo apt-get install golang-go目前go的最新版本是1.9.2,但是在Ubuntu 16.04上采用预编译好的包安装的话,只能是go 1.6.x版本。安装完成之后,查看go的版本号2.配置环境变量假定我的go脚本存放在~/program_develop/go_demo下面,按照go的workspace设计,在下面依
原创
14860阅读
0评论
2点赞
发布博客于 4 年前

在Ubuntu 16.04.3 LTS上运行go install出错的问题

1.我在.go文件的当前目录下面运行go install出现下面的错误:go install hello.gogo install: no install location for .go files listed on command line (GOBIN not set)此时设置了GOPATH宏,但是没有GOBIN解决方法:将project的bin目录设置为G
原创
1443阅读
0评论
3点赞
发布博客于 4 年前

SimpleHTTPServer中出错信息:SocketServer doesn't handle client disconnects properly

今天在使用SimpleHTTPServer时遇到这个问题:----------------------------------------localhost.localdomain - - [16/Nov/2017 16:50:42] "GET /health.txt HTTP/1.0" 200 -----------------------------------------Excep
原创
531阅读
0评论
0点赞
发布博客于 4 年前

bcache状态和配置文件详细介绍(翻译自官网)

参考文献http://www.cnblogs.com/zimufeng/p/6640439.htmlhttps://www.kernel.org/doc/Documentation/bcache.txt声明:文中 斜体带下划线  的段落为翻译不够准确的段落原文:https://www.kernel.org/doc/Documentation/bcache.txt
原创
8354阅读
0评论
3点赞
发布博客于 4 年前

在Ubuntu 16.04.1 LTS上测试Linux AIO功能实录

我们知道nginx中有libaio这项功能,为了研究AIO的一些常用接口用法,在网上找到一个例子,异步IO读取本地文件,亲自实践了一把,记录如下:安装依赖库在Ubuntu 16.04上需要事先安装apt-cache search aiosudo apt-get install libaio1 libaio-dev如果是CentOS,需要执行下面的命令
原创
681阅读
0评论
0点赞
发布博客于 4 年前

在CentOS 6.8 x86_64的nginx 1.10.3上开启http2功能

在原有基础上修改编译选项回见http://blog.csdn.net/tao_627/article/details/60957521在nginx源码目录下的configure选项中加入--with-http_v2_module,由于HTTP2需要SSL的支持,因此如缺少--with-http_ssl_module选项,还需要加入--with-http_ssl_module。如下:
原创
731阅读
0评论
0点赞
发布博客于 4 年前

在CentOS 6.8 x86_64上安装nghttp2最新版及让curl具有http2特性

nghttp2是什么?nghttp2是一个实现IETF官方HTTP/2和HPACK头压缩算法的C库,但不限如此,在C库基础上,还实现了http2的客户端,服务器,代理服务器,以及压测工具。参见官网链接http://www.nghttp2.org/目前最新版本是1.24.0https://github.com/nghttp2/nghttp2/releases网上基本上都是在U
原创
6964阅读
0评论
2点赞
发布博客于 4 年前

在CentOS 6.8 x86_64上利用devtoolset搭建GCC 4.9.2和5.3.1开发环境

下面是在CentOS 6.8 Mac虚拟机上亲自实践的结果:因为国内防火墙的问题,原有源无法成功安装,需要在下面的文件中更换为国内的源vim /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo# CentOS-SCLo-rh.repo## Please see http://wiki.centos.org/SpecialInterestGroup/SC
原创
7851阅读
0评论
1点赞
发布博客于 4 年前

centos 6.8 x86_64下autoconf版本升级到2.69

安装软件时提示说需要Autoconf 2.64或更高的版本首先查看当前版本rpm -qf /usr/bin/autoconfautoconf-2.63-5.1.el6.noarch卸载当前版本rpm -e --nodeps autoconf-2.63 官网下载新版本wget http://ftp.gnu.org/gnu/autoconf/auto
原创
1465阅读
0评论
0点赞
发布博客于 4 年前

ATS 6.2.1打release版本rpm包时插件中出现undefined symbol的问题追踪

问题场景我基于ATS 6.2.1社区版整合进一些插件,发现debug版本一直运行好好的,后来改为release版本(就是configure时不加--enable_debug)时,安装后显示下面的出错信息[May 11 11:33:18.659] Server {0x2ab7cd116700} ERROR: [ReverseProxy] failed to add remap rule
原创
1141阅读
0评论
0点赞
发布博客于 4 年前

在rMBP上利用Python的onetimepass库实现Google Authenticator Application的效果

安装onetimepass库在Mac上最简单的安装方法是sudo pip install onetimepass这里我遇到一个问题,参见http://blog.csdn.net/tao_627/article/details/69499639解决方法是pip install --trusted-host pypi.python.org onetimepass编写
原创
1237阅读
0评论
0点赞
发布博客于 4 年前

There was a problem confirming the ssl certificate ……

在安装一个Python库onetimepass时发生下面的问题:pip install onetimepassCould not fetch URL https://pypi.python.org/simple/six/: There was a problem confirming the ssl certificate: [SSL: CERTIFICATE_VERIFY_FAILE
原创
15643阅读
3评论
2点赞
发布博客于 4 年前

ubuntu 16.04下搜狗输入法不能输入中文解决

之前一段时间正常使用的搜狗输入法突然无法输出中文(具体现象是,可以呼出搜狗输入法界面,但是候选词列表无显示),解决之后记录下来,希望能为同样遇到这个问题的人提供参考。同时附linux下常见软件崩溃问题解决方案。 我的系统是:ubuntu 16.04 LTS搜狗版本:sogoupinyin_2.1.0.0082_amd64fcitx版本:1:4.2.9.1-1ubuntu1.16.0
转载
1663阅读
0评论
0点赞
发布博客于 4 年前

实现第一个自定义nginx模块

实现第一个自定义nginx模块下面的过程详细记录了如何实现第一个自定义的nginx模块,对nginx入门者包括我很有参考价值,特记录如下。前提假定以root身份已经在CentOS 6.8 x86上创建第三方子模块所在目录mkdir -p /usr/local/src/nginx_modules_demo/ngx_http_mytest_module在里面放入如下
原创
3038阅读
0评论
0点赞
发布博客于 4 年前

在CentOS 6.8 x86_64上安装nginx 1.10.3

本文档记录了完全使用最新源码来编译安装nginx最新版1.10.3,所有的依赖也是最新的,便于第三方nginx模块开发假定使用root身份安装目前最新的源码地址汇总ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.40.tar.gzhttp://www.zlib.net/zlib-1.2.11.tar.gz
原创
1882阅读
0评论
0点赞
发布博客于 4 年前

在Ubuntu 16.04.1 LTS上安装ATS 6.2.1 LTS实录

这篇文档基本上与前一篇CentOS 6.8上面的相同,因为我所有的开发环境都是在Ubuntu上面的http://blog.csdn.net/tao_627/article/details/56842905下面我只是简单记录步骤和截图。1.安装依赖包由于官网文档没有Ubuntu 16.x的安装指导,下面是我的摸索,总体上ATS 4.x, 5.x版本区别不太大sudo ap
原创
897阅读
0评论
0点赞
发布博客于 4 年前

在CentOS 6.8 x86_64上安装ATS 6.2.1实录

我的博客上已经有很多这样的ats安装实录了,这次的笔记有些不一样,因为它是ATS目前最新的LTS版本6.2.1的安装,写出来更多的是整理自己的思路,因为很多东西搞过不整理,过一段时间就完全忘记掉了。安装环境:在rMBP 15.4上上面安装了VMware Fushion 专业版8.5.1,操作系统是MacOS Sierra 10.12.3, 在VMware上安装的是CentOS 6.8 x8
原创
1461阅读
0评论
0点赞
发布博客于 4 年前

在macOS Sierria 10.12.2上升级默认的vim

在macOS安装软件,首选工具当然是HomeBrew,怎么安装请自行百度。vim在macOS Sierra(10.12.2)上的默认版本是7.4,但是我希望尽可能升级到最新的vim版本,并且尽量具有最多的功能和对更多编程语言的支持。而这一切使用HomeBrew安装vim可以轻松搞定。下面是我实践之后总结出来的结果,以作备忘。1.更改系统默认的vim为我们将要安装的vim系统默认的vim
原创
1799阅读
0评论
0点赞
发布博客于 5 年前

C++中的string::compare的使用

在C++中使用std::string编写字符串相关操作时,我经常使用find方法,其实在有些场景下需要判断字符串是否相同,因而需要使用compare方法。下面是我的测试样例://description: 演示String::compare函数的用法,比较两个字符串是否相等?//compile: g++ -g compare_string.cc -o compare_string #inc
原创
81634阅读
2评论
5点赞
发布博客于 5 年前

Ubuntu 16.04.1 LTS上安装电源管理系统TLP

主页:http://linrunner.de/en/tlp/docs/tlp-linux-advanced-power-management.htmlhttps://github.com/linrunner/TLP/安装参考http://linrunner.de/en/tlp/docs/tlp-linux-advanced-power-management.htmlsu
原创
13360阅读
1评论
0点赞
发布博客于 5 年前

在Ubuntu 16.04.1 LTS上安装ats 5.3.2

1.安装依赖包sudo apt-get install g++ make pkg-config libssl-dev tcl-dev libexpat1-dev libpcre3-dev libmodule-install-perlsudo apt-get install bison flexsudo apt-get install bison flex2.配置编译和安装.
原创
1061阅读
0评论
0点赞
发布博客于 5 年前

ThinkPad T420更换SSD实录

缘起ThinkPad T420是联想2011年的产品,我买的是港行近似顶配版,500G的希捷硬盘使用了5年多,明显老迈了,另外Ubuntu 14.04也显老了,这个周末,趁着有时间折腾,准备自己手动更换为三星EVO 500GB的SSD,是去年6.18之前剁手买的,闲置一直没用,这次彻底强迫自己换新了。更换SSD详细过程发现ThinkPad T420做工还是很赞的,零件很考究,打开后
原创
34194阅读
0评论
0点赞
发布博客于 5 年前