不多说,这事儿很痛苦,做了个Gist,方便大家。使用步骤如下: 到这里下载Cayley的Release包 unzip之 cd cayley_xxx_yyy_zzz curl -sSL 'https://gist.githubusercontent.com/fanweixiao/6ebfdb4da8a3420c8cbf/raw/4362c971874aad59928484e4f9cf5909b792f9df/cayley_antigfw' |bash -s 检验成果:./cayley http --dbpath=testdata.nq 妥了。 「广告」对GraphDB领域感兴趣的童鞋…

为了优化节操精选的弹幕系统,打算更换到Facebook的RocksDB测试,为了支持多台Web Server的场景,打算直接上ssdb-rocks来完成目的,如果有这个需求的朋友还遇到过坑,可以参考一下步骤: RocksDB需要的依赖 yum install zlib zlib-devel bzip2 bzip2-devel gflags gflags-devel snappy snappy-devel RocksDB需要的gcc47-c++ cd /etc/yum.repos.d/ wget http://people.centos.org/tru/devtools-1.1/devtools-1.1.repo…

比如想要安装gflags,但是一些众所周知的问题,brew install gflags却不是一件容易的事儿。虽然可以通过Socks5代理等方式可以让homebrew和curl搞定大多数问题,但偶尔也有别扭的时候,这时候就可以手工下载formula的包,手工安装。 步骤: 确保存在~/Library/Caches/Homebrew这个目录,不存在就mkdir一下 将下载好的gflags-2.0.tar.gz放在这里 执行brew install gflags DONE …

Tengine的nginx_stub_status输出在Nginx官方的newrelic plug-in上是无法使用的,于是基于原库做了点修改,直接git clone下来,剩下的按照官方plug-in的安装步骤就OK了。…

节操精选最早开始策划移动设备上基于图文内容实现弹幕功能的时候,就锁定了两种实现方式,SSE和WebSocket,最终还是选择了ws的方式,而android平台的WebView是米有WebSocket支持的,所以很自然就选择socket.io作为POC阶段的技术方案了,只是没想到一直用到现在。 socket.io 0.9可谓是不怎么样,看过Engine.io之后,也就敢用了,即使Socket.io仍然有问题,那我们再自己封装就好了。 坑1:Socket.io眼里的分布式 这么说有点太mean了。。但事实确实如此,Socket.io的对此的理解是Adapter,也就是说,除非自己动手,否则配来配去,都是只有一台机器抗链接。 但是Adapter也不是完美的,最常用的是redis-adapter,但是这东西吧,同时在线人数一超过4000,High CPU妥妥的…

如果在使用chsh的時候,遇到下面這種提示: fanweixiao@localhost:~3.2*0$chsh -s /usr/local/bin/zsh Changing shell for fanweixiao. Password for fanweixiao: chsh: /usr/local/bin/zsh: non-standard shell 需要做的是: echo "chsh -s /usr/local/bin/zsh…

  • osx , shell , mac , zsh

说一起下我以前的做法: 前提:不是金融领域产品;在高峰期服务器要求高性能和快速响应 用户注册,创建自己的passwd 使用CSPRNG来生成salt,当时我们基于.net,是有RNGCryptoServiceProvider可以使用的,后来使用Linux平台后,直接读取/dev/urandom了,为的是非阻塞。 保存salt到DB 采用SHA256(passwd+salt)的散列值passwd_hash保存到DB 用户登录时客户端传输username和passwd的值到服务器端,也就是说salt从来不会传递给客户端。在客户端到服务器端的网络传输过程中是存在风险的,但这是网络传输安全的问题,在对系统安全的整体考虑上,被脱库的危害大于被中间人的危害。 …

  • encryption

Koa中yield next vs yield* next delegate generator的一个作用就是解决yield (function*(){yield 1;})这样的问题,使用yield *后上面的例子就等价于yield 1了。而在Koa里co是灵魂,尽可能的使用yield *会避免overhead的co包装。 参考: harmony proposal…

  • node , koajs

在执行grep -ir 'keywords' .的时候如果发现比较慢,那不妨尝试一下LC_ALL=C grep ...…

  • grep , linux

ssh超时导致terminal不响应 不提如何设置ssh来保持会话神马的,我们只关注当遇到了这种情况怎么解决。 当termina不响应的时候,在terminal界面上,依次按出下面三个字符,需要注意的是在按的时候是没有输入回显的,所以闷头按就是啦: Enter ~ . * 要注意IME的状态! *…

  • linux , ssh , terminal

在ArchLinux上,我使用Ubuntu Mono字体,但是效果不好,字体发虚,要解决这个其实很简单: 创建~/.fonts.conf,内容如下: <?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> <fontconfig> <match target="font"> <edit name="hinting…

  • archlinux , sublime , font

這兩天Github貌似被功夫牆了,所以導致brew update這樣的命令會失效,如果homebrew不能用,那可損失大了。 通過brew update -v能看到是卡在了git pull的操作上,好在git現在的版本支持proxy了,操作方式也很簡單: cd /usr/local && git config http.proxy 'socks5://127.0.0.1:7070' 然後執行brew update,順利通過。…

  • socks5 , github , homebrew

按照官方安装指导 $ wget http://download.redis.io/releases/redis-2.6.16.tar.gz $ tar xzf redis-2.6.16.tar.gz $ cd redis-2.6.16 $ make 执行会遇到错误 [cc@ntdev2 redis-2.6.16]$ make -j8 cd src &…

  • linux , redis , centos

{% include JB/setup %} 問題 Firefox對HTML5 Audio不支持mpeg編碼,一般的做法是選擇Ogg格式。而如果server端要支持Ogg格式的內容,需要注意一個地方:Ogg格式本身是不包含media文件的duration信息的,所以當firefox加載Ogg文件的時候,如果response裏沒有X-Content-Duration,那firefox需要多次訪問文件(當然前提是支持Range Request)來determine這個media文件的duration內容,如下圖所示: X-Content-Duration Response headers裏如果有了它之後,請求狀況如下圖所示: firefox的整個步驟在這裏有一個詳細的解釋: Bug 502894 - HTTP byte range requests for Ogg/Theora video streams make…

  • ogg , x-content-duration , html5

習慣了使用鍵盤進行光標控制,使用emacs的keybindings。在osx的Terminal.app裏,是直接可以在Preferences裏強制將osx的alt/optionmapping成meta,這樣就可以享受m-f和m-b等快捷鍵了。 但是在osx的其他地方,這兩個binding就不一定好用了,對於已經習慣了的我來講很痛苦。剛好上週Runo告訴我了一個辦法: 分三步: mkdir ~/Library/KeyBindings touch ~/Library/KeyBindings/DefaultKeyBinding.dict 編輯該文件,內容如下: { "~b" = moveWordBackward:; "~f" = moveWordForward:; } 當然,您也可以繼續mapping像m-v、c-v等快捷鍵的。…

  • keybinding , osx

{% include JB/setup %} 問題 看到一個Git Repository裏的部分代碼,想clone到本地慢慢學習,可是整個Repo很大,要執行git clone repo的時間卻很長 Sparse checkout 我們以只獲取Github的Awesome-Themes-3.5中的arch目錄下的titlebar和tasklist兩個子目錄裏的內容爲例: git init awesome-themes-3.5.git cd awesome-themes-3.5.git git remote add -f origin git@github.com:Morley93/awesome-themes-3.5…

  • git

sudo rm -rf /var/log/asl/* Terminal and iTerm use login -pfq $USER /bin/bash -l or login -pfq $USER /bin/zsh -l instead of default login shell option quit and restart ENJOY! …

  • terminal , osx , tricky

週末在家裏的VirtualBox裏裝了一下,感覺還行,今天來公司直接把Ubuntu也替換成ArchLinux了。 Apple的售後、三里屯Apple店的服務態度,我是忍不了了。 Say goodbye to Mac and Ubuntu。…

  • archlinux

首先得吐槽一下!我的MBP才用28個月,電池竟然就報廢掉了!!我這神碼人品。。。 言歸正題 git cherry 日常生活中用的機會可能不太多,但是寫一些git自動化腳本的時候還是挺方便的,主要是它是少數在git裏比較changeset而不是commit sha1的方法。當然,這個命令很簡單,git help cherry一下吧:)…

  • git