如果在使用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

Draft ECMAScript 6 Specification最近新增了對Proxies節點的定義,在之前的specification drafts裏這一節是空的。而這次改版也替換了之前的API。 使用方式 var proxy = Proxy(target, handler); 要注意這裏的聲明方式,不再是Proxy.create了 舉個簡單的小例子 var obj = { name: 'WoW' }; var hdl = { set: function (receiver, property, value) { console.log(property, '->', value…

  • ecmascript

产生原因 两个branch,一个是master,一个叫fea-xx,在fea-xx上完成了功能后,想整理一下commits然后再merge到master上,结果master上有些问题,执行git checkout fea-xx的时候并没有成功,正好当时同事喊我,自己也大意了忘了这错误的事儿了,直接一个git rebase HEAD~5,就悲剧了。 解决方法 超级简单:执行git reflog,找到master之前在的内个commit的标识,比如HEAD@{15}这样,然后直接git reset --hard HEAD@{15},就ok了。…

  • git

服務器時間不準確的處理步驟 先檢查是否有ntpd服務和ntpdate,如果米有,就yum -y install ntp ntpdate 設置成正確的timezone,比如我的服務器ln -s /usr/share/zoneinfo/Asia/Taipei /etc/localtime ntpdate ntp.tuna.tsinghua.edu.cn矯正時間 運行date檢查一下時間是否正確 chkconfig ntpd on開啓ntpd服務在系統啓動時自動加載 /etc/init.d/ntpd start立刻啓動該服務 hwclock --systohc寫到硬件時鐘里…

  • linux , centos , date

我的鍵盤佈局怪癖(使用的系統是OSX和Archlinux,支持HHKB Pro 2和普通通用鍵盤): 沒有Caps Lock 鍵,它的這個位置是Left Control 在OSX系統下,這個位置的Left Control單擊是Esc,這樣在vim等程序下很舒服 左下角如果是fn,換成Left Control,也就是說我的MacBook Pro其實有3個Left Control 如果是OSX,左側Command雙擊運行Alfred(花錢了... 不用可惜...加上可以自定義Workflow...不錯) 如果是OSX,右側Right Option單擊是更換輸入法 如果是Archlinux,右側Right Control單擊是更換輸入法 …

  • coding , env

Why git pull sometimes bad 在更新本地的Git repository的時候,使用git-pull方式,比如:git pull origin master,那麼如果不是fast-forword的,那一定會自動創建一個類似下面的commit: * f15ee07 - Merge remote-tracking branch 'origin/master' 這樣的commit還是挺不好的,把Branch搞的很難看,而且還有很多負面作用(比如git-blame) git pull --rebase也不是很好。這裏推薦下面這種方式: A better way 分三步: ## 1…

  • git