Posts List

Creating your personal static blog with jekyll

By the end of this tutorial, you will have your own personal blog :tada: Created by static site generator Hosted for free on netlify Custom domain like yourdomain.com Secured by HTTPS by Let’s Encrypt Tools used in this tutorial jekyll rbenv (for managing ruby environment) a text editor (Sublime Text or vscode) (optional) a domain of your own, purchased separately from sites like GoDaddy Environment setup Since the static site generator used here jekyll is written in Ruby, we will need install a Ruby development.

管理多Python环境之Virtualenv与Virtualenvwrapper

在《Django 最佳实践与部署》一文中我曾提到过用 virtualenv 创建虚拟环境的好处。今天将结合 virtualenvwrapper—virtualenv 的*终极伴侣*,来具体谈一谈如何利用虚拟环境提高开发效率。 为什么要使用 virtualenv 和 virtualenvwrapper 作为一个完美主义者,不喜欢看到系统site-packages放着各种各样 Python 包。很多包只是因为某个项目需要,而根本没有必要放在全局。我喜欢 virtualenv 这种相互独立环境的概念,就好像有很多房间,每个房间可以有不同装饰,拥有自己个性。 virtualenv 安装 $ pip install virtualenv 创建环境 $ virtualenv ENV # 创建名为‘ENV‘的虚拟环境 $ New python executable in ENV/bin/python $ Installing setuptools, pip...done. 这样就成功创建好一个 python 的虚拟环境,实际上他为你建立了三个目录: bin include lib 这里面包含一个 Python 环境(默认为系统 Python 的版本),一些基本工具(如 easy_install 和 pip)以及一些 symbolic link。而以后的 package 都会装到lib/pythonX.X/site-packages里面。 激活环境 使用虚拟环境之前必须激活,不然 package 还是会装到系统的site-packages里面。 $ source bin/activate 激活成功后,prompt 左边会出现一个括号,里面对应就虚拟环境的名字。这个时候就代表激活成功了,而此时用 pip 安装任何包都会装到虚拟环境的site-packages,对其他项目和系统 Python 环境都完全不影响。

如何使用Sublime Text编辑远程文件

对于我这个Vim使用起来还不太顺手的人来说,能用Sublime Text来编辑远程服务器上的文件简直就是福音。 很惊奇还有很多小伙伴不知道这个技巧。今天来分享一下: 用Sublime Text的Package Control安装一个叫rsub的插件 修改本地的ssh config(如果没有就创建这个文件) $ vim ~/.ssh/config * 加入下面两行 Host your_remote_server.com # 这里填服务器的IP地址 RemoteForward 52698 127.0.0.1:52698 SSH到服务器 $ sudo wget -O /usr/local/bin/rsub https://raw.github.com/aurora/rmate/master/rmate $ sudo chmod +x /usr/local/bin/rsub 大功告成。试试编辑任何文件,是不是在Sublime Text打开了? $ rsub ~/webapps/myproject/some_file 如果有权限问题导致不能编辑可以加sudo或者-f 注:Textmate也用这个功能,命令是rmate,其实准确说rsub是从rmatefork来的 参考文章 Sublime Tunnel of Love: How to Edit Remote Files With Sublime Text via an SSH Tunnel

Django最佳实践与部署:Nginx + Gunicorn + Supervisor(Ubuntu和CentOS)

题头 头图是我一个Django项目–Santa的代码片段,放出来给大家欣赏一下。 第一篇很技术的文章。Mrxu同学强烈要求我出个教程,基于Django的部署实在有太多坑,为后人铺条路。以下文字是我摸爬滚打无数小时换来的一个可行方案。希望对大家有所帮助。 Django最佳实践 项目结构 相信很多朋友在使用Django的时候都会遇到这个问题,项目到底如何组织?只有一个app的时候不要紧,有两个、三个甚至多个app的时候,*模板*(templates)要放在那里,*静态文件*(static files)放在哪里?由于Django社区(不像Rails)一直没有统一说法,所以此处说的只不过是仁者见仁,智者见智。希望Django早日出台官方的最佳实践。这里仅给大家一个参考。 下面我用一个myproject项目为大家阐述。这个项目由两个app组成: 每个app有自己的*static*目录 每个app有自己的*templates*目录 根目录下与项目同名的文件夹(比如这里的*myproject*)为项目设置,包含settings.py 根目录下有requirements.txt 为什么要这么做?这个在后面生产境部署的时候优势就会显现出来。 $ django-admin.py startproject myproject $ cd myproject $ python manage.py startapp myapp1 $ python manage.py startapp myapp2 $ touch requirements.txt # 新建requirement.txt $ mkdir myapp1/{static,templates} # 新建两个空文件夹 $ mkdir myapp2/{static,templates} $ tree . # 非常有用的一个命令, 图形化显示文件目录结构 . ├── manage.py ├── myapp1 │ ├── __init__.py │ ├── admin.py │ ├── models.py │ ├── static │ ├── templates │ ├── tests.

我的Fitbit Flex评测

Fitbit Flex 最近好多人问我手上带的这个手环是什么高科技玩意,索性写个评测当个介绍好了。 第一次接触Flex是通过hzlzh的介绍。看了第一眼就下决心要买个玩玩。(Geek内心没办法)趁新加坡Apple Store Red Friday促销入了一个。(奇怪的是中国Apple Store的Red Friday只有Up 2卖,比Flex贵了快一倍啊) 到现在带了一个多月,几乎没有取下来过,吃饭、洗澡、睡觉、打球、弹琴、敲代码。(是谁说不能带Flex洗澡?我带了这么久都没问题。游泳还没试过。)感觉良好,除了每天默默帮我记录运动情况,振动闹钟是个不错的功能。 这个时候不得不感叹Flex的魅力,回国过年的时候给两个表弟带了Zip。我潮爸也在我三番诱惑下决定买一个,还带动一群同事加入他运动的行列。It’s nice to think one’s words can make so much difference。Flex的存在让运动变成一种乐趣。这个我会在后面讲。 什么是Fitbit Flex Flex其实是Fitbit的产品之一。简单的说,Flex就是一个用来记步,公里数,消耗卡路里的运动手环。还有一个很酷很实用的功能,振动闹钟和睡眠记录。 Fitbit的其他产品还有*Force*,*Zip*,*One*,*Aria*。功能都差不多,Force是就是Flex加个LCD屏,需要手表功能的朋友可以考虑买这款,价格比Flex贵30美刀。Zip不能带手上,更像是一个玩具,可以放在口袋,或夹在书包、裤子上,没有睡眠记录功能。One有LCD显示屏,可以记录登高,这个是Flex没有的(Force有)。Aria是Wifi同步电子体重秤,这个当然就是题外话了。 为什么选Flex 同类的产品 Jawbone Up 2(149.99美元) Nike+ Fuelband(169美元) … Flex的性价比较高(99美元),更重要的是Flex拥有更好的社区。这就是我说到的乐趣。在Fitbit网页版或者手机App可以加好友,加入小组,与4其他人互动,较量每天甚至每周的运动情况。有了这种比较的动力,我每天都会争取多运动,能走路的就不坐车,坚持跑步。那么好友中排名就上升了。如果跟朋友一起玩更是可以互相调侃(tuant),小样,你今天怎么才走这么一点。(YY中。。) Flex的颜色选择非常丰富(5种),设计也很年轻化,最近还刚出一款为女性设计的粉红色版。(Up2只有黑色和红色,No Offense,其实你的设计很不错的) Fitbit产品内部比较,Flex虽没有Force的LCD屏,但是便宜30刀;Zip,One不能带着手上。综上Flex是最佳选择。当然如果你有米的话,买什么都可以。。。 功能 & App简介 基本的记录功能 步数 公里数 卡路里 活动时间 … 只要手上带着Flex,保证有电的情况(通常续航可以达到5天以上),它就会自动帮你记录。打开手机App通过蓝牙/NFC,或者电脑上通过usb dongle,就可以把最新统计同步到服务器。Flex上有个5个迷你的显示灯,每亮一个代表完成目标的20%。当然你也随着自己的进度修改目标。最初的任务是一天1w步,我记得刚开始每天只能完成4格,偶然才能到5格。现在改到每天1.2w步都可以完成啦。 值得一提的是*睡眠记录*和*振动闹钟*。个人觉得振动效果比声音有用的多,只要在手机上设置好手机,你就等着被振醒吧。用来设提醒效果也不错(比如提醒我晚上9点去跑步,振一下),在嘈杂的环境里,手上的振动非常有效。 睡眠记录会帮你分析每天睡觉时间和质量。如果需要记录睡觉时间,需要使劲敲(至今也没发现不那么暴力的方法。。)Flex使它进入*睡眠模式*。此时它会像眨眼睛一下闪烁,如果到这里就可以了。起床的时候再使劲敲,让它回到正常模式。那么中间这段时间就被记录成睡觉时间。 Flex会自动帮你分析睡眠质量。App里用时间轴上不同颜色告诉你,哪些时间不安(restless),哪些时间醒了(Awake)。这个功能很实用,如果你睡觉属于辗转反侧的类型,或者你以前不知道的话,就要注意了。 这里说的都是IOS版App,因为没用过Android版,没有发言权。需要一提的是,如果你发现搜不到Fitbit这个app的话,是因为这个app在你地区的App Store没有上架(原因嘛。。你懂的),换到美国商店就有了。 购买 因为Fitbit是美国产品,所以大陆不好直接购买。官网亚洲地区有香港,日本,新加坡,韩国等,所以有朋友在这些地方的话,直接从那边带一个。当然或者从美国买也行。不推荐在T宝,那些自称洗澡带用坏的估计就出自T宝吧。Flex还是买原装比较放心。 支持的平台 目前支持的手机平台只有苹果IOS和安卓Android。加上需要蓝牙和Wifi同步,所以不是每一款手机都支持。具体请看这个list。 如果手机不支持还能不能使用Flex呢?可以的。原包装里包括一个usb dongle,插进电脑即可与网页版同步。 Q&A 这个在hzlzh那篇博文里说的很清楚。这里不赘述。 任何其他问题,欢迎给我留言。 最后 欢迎加好友PK,我的页面