redirect port 8080 to 80 by iptables in ubuntu


#command
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080

#save configration
sudo apt-get install iptables-persistent
sudo invoke-rc.d iptables-persistent save

#clear
sudo /etc/init.d/iptables-persistent flush

mac下读写ntfs支持

查找设备的uuid

diskutil info /Volumes/{DEVICE_NAME} | grep UUID

将设备uuid写入fstab


echo "UUID={DEVICE_UUID} none ntfs rw,auto,nobrowse" | sudo tee -a /etc/fstab

重连设备,不会在桌面或finder中直接显示,通过Command-Shift-G前往/Volumes卷宗目录浏览操作。

搞定

java web develop tips

最近赶鸭子上架做一个java web项目,基于spring/spring mvc/velocity/mybatis/mysql,突然想起多年前曾为一个做项目经理的童鞋拟了一个java web开发技术点的脑图,再翻出来看看。

为MAC打造舒适的Python开发环境

最近准备着手新的Django项目,想着建立新的virtualenv开发环境,再又考虑到尝试使用Python3+的可能,google了一些MAC上建立多版本Python开发环境的文章,尝试了一些新东东,和大家分享。

不要覆盖系统自带的Python版本!

MAC系统本身自带有Python库,且和系统集成度较高,为系统稳定考虑,无特殊需求不要覆盖系统自带的Python库。

若有疑问可google各种覆盖系统带来的奇葩问题。

配置栈

1. Xcode Command Line Tools

这是MAC开发上必备的工具库,提供gcc/llvm编译库及工具,没有这个是无法在MAC上编译相关程序的。如果MAC没做过开发机或新升级,请安装更新该工具库。

可在developer.apple.com登录后下载安装包安装,或在app store下载xcode安装,或运行下面命令行尝试安装

$ xcode-select --install

检查安装是否成功

$ xcode-select -p
/Applications/Xcode.app/Contents/Developer #显示此结果则说明已安装成功

或运行gcc查看工具版本

$ gcc -v
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 6.0 (clang-600.0.51) (based on LLVM 3.5svn)
Target: x86_64-apple-darwin14.1.0
Thread model: posix

特别声明,若你有靠谱VPN,下面请全程开启……

2. MAC下软件包安装管理工具brew(ruby)

MAC下软件包安装管理工具常用 MACports / brew,两者优劣如何选择请自行google判断,这里用的是brew。

由于brew是基于ruby开发,因此需要基本的ruby环境。如果你对ruby开发相关毫无兴趣,可通过Ruby官网下载包直接安装。若有可能使用ruby开发或尝试ruby环境下的各种程序请使用更规范的ruby环境配置程序——rvm

$ curl -sSL https://get.rvm.io | bash
$ source ~/.rvm/scripts/rvm

检查是否安装正确

$ rvm -v
rvm 1.26.11 (latest) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.io/]

安装最新的ruby版本

$ rvm install 2.2.1

设置默认版本

$ rvm 2.2.1 --default

检查下

$ ruby -v
ruby 2.2.1p85 (2015-02-26 revision 49769) [x86_64-darwin14]

安装brew

$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

3. 安装 pyenv

pyenv是管理Python版本安装管理工具

$ brew install pyenv

将下面代码加入shell启动脚本 .bash_profile / .zshrc

export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"

重启shell

$ exec $SHELL

安装管理多版本Python常用操作

$ pyenv install --list  # 查看可安装版本
$ pyenv install 2.6.9
$ pyenv install 2.7.9
$ pyenv install 3.4.3
$ pyenv versions 
* system (set by /Volumes/Home/linnchord/.pyenv/version)
  2.6.9
  2.7.9
  3.4.3
$ pyenv uninstall 2.6.9 # 移除
$ pyenv global 3.4.3    # 设置为全局,覆盖系统,慎用!
$ pyenv global system   # 恢复系统版本
$ pyenv local 3.4.3     # 设置当前目录生效Python版本
$ pyenv local --unset   # 取消
$ pyenv rehash          # 安装新版本或其他软件包后需运行
$ pyenv shell 3.4.3     # 设置当前脚本生效版本

4. 安装 pyenv-virtualenv

pyenv-virtualenv 是作为 pyenv 一个插件存在的虚拟环境管理工具,它统一将虚拟环境配置到 ~/.pyenv/versions。

$ brew install pyenv-virtualenv

将下面代码加入shell启动脚本 .bash_profile / .zshrc

eval "$(pyenv virtualenv-init -)"

重启shell

$ exec $SHELL

常用管理操作

$ pyenv virtualenv 3.4.3 env343
$ pyenv virtualenv 2.7.9 venv279
$ pyenv virtualenvs                 # 显示当前虚拟环境列表
env279 (created from $HOME/.pyenv/versions/2.7.9)
env343 (created from $HOME/.pyenv/versions/3.4.3)

$ ls ~/.pyenv/versions
2.7.9  3.4.3  env343 venv279

$ pyenv activate env343             # 激活指定虚拟环境
$ pyenv deactivate                  # 关闭当前虚拟环境
$ pyenv uninstall env343            # 删除

5. 开发流程

$ pyenv virtualenv 3.4.3 newproject
$ pyenv activate newproject
$ pip install -r reuirements.txt
$ mkdir newproject
$ cd newproject

Code lucky!