近期研究VPN的一些记录(OpenVPN,pptp,l2tp)

近期研究VPN的一些记录(OpenVPN,pptp,l2tp)

近期由于一些需要(特别是上Google),研究了下在VPS上搭建VPN服务器的方法。其中遇到一些坑,顺带记下来以备下次使用。

其实在有VPS的情况下,还有另外一种替代方案。那就是在路由器上直接ssh隧道+sock5代理+使用autossh自动重连+使用polipo作HTTP代理+PAC文件自动代理切换。实现,最终我在家里就是这么搞[……]

Read more

LLVM + Clang + Libcxx + Libcxxabi 工具链编译

今天抽空研究了下llvm+clang系编译器工具链的编译,在需要写跨平台代码的时候clang还是很有用的,而且clang-check的代码静态检查挺有意思。

单纯地编译clang和llvm问题不大,但是它还有一系列的底层库和工具。而且特别重要的是,虽然clang可以使用gcc的stl库,但是如果没有libc++libc++abi的话,是没法开启c++11甚至c++14的。

今天干脆集[……]

Read more

关于BUS通信系统的一些思考(一)

目录

概述

如何保证一个进程或线程能安全稳定地把一段消息发送到另一个进程和线程,甚至是另一台机器的进程或线程,再或是要通过代理转发到另一个[……]

Read more

基于Chrome插件的开发工具链

        在项目开发过程中,时不时会碰上需要使用一些工具来做一些自动操作或者附加功能。特别是有一些外部组件只会提供Web工具,或者如果产品会发布在Web上的时候,在线上的产品中加调试指令显然是不安全的(前段时间刚好有携程线上服务器暴露的调试接口,导致用户信息泄露的事故)。这时候我们就可以借助Chrome来制作一些特别[……]

Read more

[ACM] HDU 1006 解题报告

偶尔写写ACM水题还是挺好玩的。(好吧其实是老婆求助我才看滴)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1006
一开始看到这题的时候,感觉一天24小时*60分钟*60秒。把每一秒的最小指针角度记下来再搞个排序。
每个case二分搜一下就好啦。
结果发现最后一个case的结果始终是错的。
后来才发现,原来这不是没秒动一[……]

Read more

Linux 编译安装 GCC 4.9

详情及变更请参照: Linux 编译安装 GCC 4.9

GCC4.9发布啦,本脚本在之前4.8的基础上做了稍许改进,更新
PS:4.9.0 开始支持C++1y特性
GCC 4.9 的大致变更如下,因为我只用C/C++所以更关注通用性高的C和C++的部分啦:

  1. 标记过时系统
  2. 移除mudflag功能
  3. 在ARM架构中引入内存错误检查器AddressSanitizer
  4. 增加运[……]

Read more

简单C++单元测试框架(支持一键切到GTest或Boost.Test)

简介

众所周知,单元测试对于持续集成和变更的检测是十分重要的。
这个单元测试框架本是用于之前规划的C++协程框架使用的。
虽然已经有比较成熟的单元测试框架GTest、Boost.Test等等,但是要引入它们都会倒入很多文件。而且他们的兼容性也不是很好
GTest在ARM架构下需要额外作一些适配
Boost.Test的话,按Boost的尿性,一旦引入就会涉及上千[……]

Read more

C++11动态模板参数和type_traits

C++11标准里有动态模板参数已经是众所周知的事儿了。但是当时还有个主流编译器还不支持。
但是现在,主要的编译器。VC(Windows),GCC(Windows,Linux),Clang(Mac,IOS)都已经支持了。所以就可以准备用于生产环境了。
type_traits没啥好说的。主要是一些静态检测。主要还是要看动态模板参数和他们两的结合使用上。
动态模版参数标准文档见:
[……]

Read more

C++又一坑:动态链接库中的全局变量

前几天我们项目的日志系统出现了一点问题,但是一直没有时间去深究。
昨天在同事的帮助下,无意中猜了一种可能性,结果还真被我猜中了,于是今天就特别研究了一下,记录下来。

其实主要问题是三个模块。

  • 模块 a, 静态库 a
  • 模块 b, 二进制 b, 静态引用a, 动态加载c
  • 模块 c, 动态链接库c, 静态引用a
  • [……]

Read more

更新新的Blog主题

原来的blog主题挺多人说简单粗暴难看,所以就打算重做一个。
网上搜了一下,找到个名字叫distinction的主题,还比较有意思,是瀑布流的风格,就打算基于它重写一个。
这样还能用上以前写得瀑布流组件的代码。于是就这么愉快地决定了。

由于原来的distinction的css部分是GPL v2的,也由于还没把原来的CSS删光光,所以暂时我这个也已GPL v2发布。
[……]

Read more