软件折腾笔记之Shadowsocks

服务器配置

安装环境

1
2
sudo apt install python3-pip
sudo -H pip3 install setuptools shadowsocks

优化系统配置

开启TCP BBR拥塞控制算法

  1. 且服务器虚拟化方式为xen或kvm,TCP BBR不支持OpenVZ,检测方式:

    1
    sudo apt install virt-what && sudo virt-what
  2. 检查内核是否为4.9以上,否则自行升级内核至4.9以上或更换较新的系统

  3. 开启BBR

    1
    2
    3
    echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
    echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
    sysctl -p

    输入sysctl net.ipv4.tcp_available_congestion_control检查是否开启成功
    输入lsmod | grep bbr检查是否加载成功

软件折腾笔记之hexo

hexo是一个基于nodejs、轻量、原生支持markdown写作的的博客系统。在看了一位同事的博客之后,我坚定地转向了hexo。但在安装配置和使用的过程中摸索了较长时间,也遇到了较多的坑点。 如果是初次接触hexo,推荐去阅读一下hexo的官方文档,会让我们对hexo的使用有一个基本的了解。 在搭建自己的hexo博客的过程中,我较多的参考了这位同事对hexo介绍的一篇文章及他托管在Github上的hexo博客

踩坑记---命名空间污染

踩坑

今天运行如下代码时:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <cctype>
#include <algorithm>
using namespace std;
int main()
{
/*other code*/
istream_iterator in_iter(fin), eof;
while(in_iter != eof)
{
string s = *in_iter++;
string word;
remove_copy_if(s.begin(), s.end(),
back_inserter(word), ispunct);
}
/*other code*/
}

在mingw492_32下编译提示如下错误:

no matching function for call to ‘remove_copy_if(std::basic_string::iterator, std::basic_string::iterator, std::back_insert_iterator<std::basic_string >, < unresolved overloaded function type>)’ std::back_inserter(word), ispunct);

软件折腾笔记之WordPress

WordPress是一个优秀的个人博客框架,用起来相当简单,功能强大。但世上没有完美无缺的东西,任何事物总存在或多或少的瑕疵。在折腾WordPress的过程中,我遇到了一些问题,有WordPress自身的BUG,也有其功能上的不足。但由于WordPress本身开源,而且提供了数量丰富的插件供我们使用,因此所有的问题也都不是问题了。以下是本人对WordPress的配置及优化过程。

算法---质数筛选法

通过循环判断数n是否不能被所有不大于其平方根的数整除来判断一个数是否为质数或者输出一个小范围内(10000以内)的质数个数的算法相信大家都接触过,这种方法十分直接简单,但一旦在解决输出一个很大范围(大于10万)内所有质数或质数个数这类问题时就会因效率低下而导致时间复杂度很高。在此介绍一种通过筛除法查找质数的方法。

质数筛选法,顾名思义就是通过筛选的方式,将数字中的合数筛除,剩下的即质数。算法流程很简单,假设求2-N中的所有质数,将范围分为两部分,一部分为已筛除部分,由于2为质数,设定该部分初始范围为1-1;另一部分为待筛除部分,初始范围为2-N,计数量为cnt。算法流程如下:

|