在Debina VPS上安装3proxy,支持HTTP、HTTPS、SOCKS代理

3proxy是俄罗斯人写的代理软件。

首先在debian上安装,推荐安装脚本

1
2
3
4
wget --no-check-certificate https://raw.github.com/benjamin74/3proxy/master/3proxyinstaller.sh
chmod +x 3proxyinstaller.sh
./3proxyinstaller.sh
  

然后编辑设置:

1
vim /etc/3proxy/3proxy.cfg

修改登录帐号密码,将users行改为如下内容,后面即可使用用户名user1/密码passwd1,或用户名user2/密码passwd2登录:

1
2
users user1:CL:passwd1
users user2:CL:passwd2

修改代理端口,在3128端口开启HTTP和HTTPS代理,1080端口开启SOCKS代理:

1
2
proxy -a -p3128
socks -a -p1080

启动3proxy:

1
/etc/3proxy/3proxy /etc/3proxy/3proxy.cfg &

另外安装脚本已经自带开机启动设置了。

更多设置参考3proxy manual

Over

在Debian VPS上安装dnsmasq解决DNS污染

warning: 我的有台DNS因为装了dnsmasq没做加密,被服务商提示有被DDoS攻击风险,强制断线了。

1. 安装

首先连上VPS,安装dnsmasq:

1
sudo apt-get install dnsmasq

我的VPS连接debian的APT服务器IPv6地址连不上,如果同样卡在连接 http://http.debian.net 不动的话,建议关掉IPv6再重试安装。

2. 配置

打开配置文件:

1
vim /etc/dnsmasq.conf

填入以下设置,将google的服务器作为上级DNS:

1
2
server 8.8.8.8
server 8.8.4.4

较新版本dnsmasq只破DNS污染,无需特殊服务的话,没必要更改其他设置,直接重启即可:

1
service dnsmasq restart
Read on →

10.11 EI Capitan兼容老使用习惯的一些设置

Terminal在非视网膜屏幕的字体平滑

Preferences -> Profiles -> Text -> Antialias text 打开(视网膜屏安装10.11时默认关闭了)

Safari command+数字键开启书签栏页面

Preferences -> Tabs -> Use command-1 through command-9 to switch tabs 关闭(10.11默认改为切换tab了)

Over

Xcode插件

1. Alcatraz

其他插件的 package manager, 可以从此插件中搜索、安装、删除其他插件。
Github地址

2. VVDocumenter-Xcode

///生成 Javadoc-Style 注释,可被 Xcode 识别,可生成文档。
Github地址

3. MCLog

Log 的 filter,支持正则,响应式交互,尚有崩溃,不过值得一用。
Github地址

4. Clang-Format

一键格式化脏乱差代码。还支持自动按段落排序#import “headers”。
安装后在工程中建立 .clang-format 文件,在其中配置代码格式,再使用此插件格式化代码。
前几天发pr修复了和 oh-my-zsh 同时使用的一处 crash,作者刚刚merge了,建议更新到最新。
推荐格式:

1
2
3
4
5
BasedOnStyle: WebKit
BreakBeforeBraces: Allman
PointerAlignment: Right
IndentCaseLabels: true
AlignAfterOpenBracket: true

Github地址

5. FuzzyAutocomplete

代码自动补全的增强工具,输入反应稍微减慢,不装其他输入增强工具时卡顿尚可接受,值得一用。
Github地址

Over

Architectures 与 Valid Architectures 在 Xcode 中的设置

关于这几个设置项,先看官方说明:

  1. Architecture:
    Space-separated list of identifiers. Specifies the architectures (ABIs, processor models) to which the binary is targeted. When this build setting specifies more than one architecture, the generated binary may contain object code for each of the specified architectures.

  2. Vaild Architecture:
    Space-separated list of identifiers. Specifies the architectures for which the binary may be built. During the build, this list is intersected with the value of ARCHS build setting; the resulting list specifies the architectures the binary can run on. If the resulting architecture list is empty, the target generates no binary.

  3. Build Active Architecture Only:
    Boolean value. Specifies whether the product includes only object code for the native architecture.

Read on →

在OpenWRT上搭建ssh代理

首先为何要用ssh代理,而不是ShadowSocks或VPN:GFW会针对ShadowSocks或各种VPN协议做解析,却不一定有勇气禁止全部ssh连接(国家曾经有次物理断开到国外的全部网络连接造成了巨大经济损失)。

前段时间开发了SSHMole,用作OS X上的ssh代理客户端。然而MAC给iPhone开ssh代理,或在iPhone上直接开ssh代理还是很麻烦的。所以在家里路由器上开了个ssh -D。

0. 首先要有一台VPS

没有的话到vpsadd买一台。

1. OpenWRT上安装ssh-client, openssh-keygen

登录到OpenWRT,移除ssh到dropbear的软连接

1
2
mv ssh dropbear-ssh
mv scp dropbear-scp
Read on →

安装指定版本的CocoaPods

在同事机器上,pod 工作的很正常,到了我的机器上,就 link error,原因是他的 pod 自动生成的.a 和我的 pod 自动生成的 .a 带的前缀不一样。

Read on →

WWDC 2015 带来的新玩法

WWDC 2015 更新了五大产品线:OS X EI,iOS 9,watchOS 2,Xcode 7,Swift 2.

1. OS X EI

Metal APIs

Metal是一个开销极低的一种访问 GPU 的框架。
Metal framework 提供了 GPU 加速的先进的3D渲染和数据并行计算能力。
Metal 提供了流水线式的 API(streamlined API),预编译着色器(precompiled shaders),以及高性能的多线程支持。这些 features 可以帮助你把你的游戏或 app 的性能提升一个档次。
Metal 最主要的目标是把一部分的CPU 工作交给 GPU 做。

相关资源:
Metal Home Page
Metal Programming Guide
Metal Shading Language Guide
Metal Framework Reference

Read on →

OSX各种实现毛玻璃效果窗口的方式与比较

毛玻璃窗体是10.10中新增的效果. 比如Finder的左边栏.
本文只对10.8, 10.9, 10.10三个版本进行讨论. 我的App未对10.6和10.7做任何支持, 此处也不予讨论.

第一种方式: NSVisualEffectView

这是10.10中新开放的API, 只能在10.10的runtime上使用.
如果需要上架App Store, 这也是在10.10上完成毛玻璃效果的唯一方式.
首先为NSView增加扩展:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
@interface NSView (Vibrancy)

//Returns NSVisualEffectView
- (instancetype)insertVibrancyViewBlendingMode:(NSVisualEffectBlendingMode)mode;

@end

@implementation NSView (Vibrancy)

- (instancetype)insertVibrancyViewBlendingMode:(NSVisualEffectBlendingMode)mode
{
    Class vibrantClass=NSClassFromString(@"NSVisualEffectView");
    if (vibrantClass)
    {
        NSVisualEffectView *vibrant=[[vibrantClass alloc] initWithFrame:self.bounds];
        [vibrant setAutoresizingMask:NSViewWidthSizable|NSViewHeightSizable];
        [vibrant setBlendingMode:mode];
        [self addSubview:vibrant positioned:NSWindowBelow relativeTo:nil];

        return vibrant;
    }
    return nil;
}

@end
Read on →

如何优雅的使用60%键盘—-在所有App中使用Control+P、N、B、F代替上下左右

最近新宠是各种GH60,都没有独立方向键,按FN组合键是非常远的,刷固件修改按键也颇为不便,用软件修改就方便多了。
经常有软件不支持Control+P、N、B、F做上下左右操作,于是想到直接把Control+P、N、B、F改为上下左右。

OSX上可以用Karabiner自定义按键,可定制程度非常高,其前身是Keymap4MacBook,已开源在https://github.com/tekezo/Karabiner

首先从官网下载一个最新版并安装好。我需要将将control+P、N、B、F修改为上下左右,在预置中找不到相应设置。直接在Misc & Uninstall页面点击Open private.xml,修改这个配置文件可以完成各种高度可定制化改键。

Read on →