Sublime Text 3 上手日志

作为一名 Python/Django Web 开发人员, 使用 Vim 有4年多了, 花了很多时间在配置上. 但是依然有很多地方不尽如人意. 因此最近打算尝试下 Sublime Text. 把一些基本的配置记录在这里.

配置文件

ST 的默认配置在 Preference -> Settings - Default, 格式是 JSON. 不过这个文件是只读的, 你需要参考这个文件, 然后在 Settings - User 里面覆盖对应选项, 来达到自定义配置的目的.

开启 Vim 模式......

Keep reading...

iOS 8 体验

今天把我的古董4s 升级到 iOS 8 了. 把玩了半天, 比预期的要好. 流畅度和 iOS 7 相当, 也没发现重要的 bug.

iOS8的OTA升级需要多达4.7G的空余空间, 对于很多人可能要删除大量 app 才行. 不过你也可以自己下载固件后, 在电脑上通过 iTunes 来升级.

一些还不错的新功能记录如下:

支持第三方输入法了, 不过目前百度和搜狗都只能在中国区下载.

支持农历了.

陌生号码来电归属地

双击 home, 顶部显示最近联系人

相机可以定时拍照了

通知栏......

Keep reading...

在 Django 中实现用 email 登录

问题描述

Django 默认是通过 username 登录. 而在实际的项目中, 往往通过 email 登录更合理.

Django 1.5 以后, 提供了自定义 AUTH_USER_MODEL 的方法. 理论上, 你可以自定义 User 来实现 email 登录. 不过, 在实际使用中我发现, User 是 Django 框架中最核心的 Model, 一旦自定义, 会带来一系列问题.

例如在 Admin 里管理 User 时, 密码居然是直接显示的, 新建 User 也是明文密码. ......

Keep reading...

跨主机mysql自动备份

以下内容基于ubuntu.

问题

假设你的mysql服务运行在 192.168.1.2(下称A), 你想自动备份到 192.168.1.3(下称B).

创建账号

登录到A,进入mysql的shell,然后执行:

grant usage, select, lock tables, show view, event on *.* to 'backup'@'192.168.1.3' identified by '1234';

这个命令会在A主机上创建一个mysql用户backup, 密码1......

Keep reading...

技术移民到新西兰的三个途径

我2012年底决定移民新西兰时, 做了三个计划, 打算依次尝试. 没想到第一个就成功了.

这里简单介绍一下这三个途径, 给有心移民NZ的同学们一个大致的攻略.

银蕨签证(SFV)

银蕨是新西兰的常见植物, 国徽就是银蕨. 它代表友好, 和平, 类似于橄榄枝的意思.

银蕨签证可以认为是新西兰技术移民的快捷方式. 每年面向全球只有300个名额, 抢到后可以拿到一个9个月有效期的签证, 直接入境求职. 如果找到跟自己专业对口的技术类工作, 就可以在线EOI申请绿卡(PR).

这个方法最大的困难就......

Keep reading...

Ubuntu 上"unable to resolve host"问题解决办法

通常,在linux上, 你可以使用hostname命令来修改主机名. 假如你期望的主机名是xxx:

hostname xxx

在ubuntu上,执行完这条命令之后,终端上显示的主机名确实变了.

但是,很不幸,每次你试图使用sudo执行命令时,就会遇到如下错误:

sudo: unable to resolve host xxx

解决方案是:

编辑/etc/hosts文件, 把这一行

127.0.0.1 localhost

修改为:

127.0.0.1 localhost xxx

......

Keep reading...

电子书阅读以及推送知识扫盲

常见文件格式

mobi/azw/azw3

mobi是亚马逊早期使用的私有的电子书格式,Kindle阅读器早期的标准格式,随着亚马逊电子书平台的壮大而十分普及. 由于这种历史原因,网络上流传的大量电子书都是mobi格式,包括本站.

亚马逊在mobi的基础上又开发出azw以及azw3格式,用以取代mobi. 主要的改变是加强了数字版权保护(DRM). 现在在亚马逊购买的电子书通常是azw或azw3. 当使用亚马逊的推送服务时,亚马逊也会尝试将其它格式(主要是mobi)转换为azw/azw3再推......

Keep reading...

Javascript中的Date真是坑爹啊!

最近在用Phonegap开发一款app,需要用到JS中的Date对象. 发现了几个坑.

通过字符串初始化Date

假如你有一个日期字符串s, 你可以使用parse函数来得到日期:

var d = Date.parse(s);

或者,直接使用构造函数:

var d = new Date(s);

它其实使用的也是parse函数.

到目前为止一切似乎正常, 但是等等, 为何我没有地方传入s的format信息?

日期格式那么多, 我要怎么写呢?

或许js足够聪明, 能够自动识别常见的日期格......

Keep reading...

在线生成Homebrew Cask脚本给Mac一键装机

借助Homebrew Cask, 我们可以通过命令行来给OS X安装App, 还可以把常用的App安装命令写成脚本,实现一键装机.

这个工具美则美矣,但使用时有一些小问题:

我不是很确定它是否支持我喜欢的App

我不是很确定我想要的App在这个工具里精确的名字

诚然你可以通过brew cask search & info命令来检查, 但是一个一个尝试终究是不方便.

于是蛋疼的我花了几个小时做了这个工具:

http://osx-app.com/

你现在可以:

在网页上一......

Keep reading...

使用Vagrant开发Django应用

需求何在

Django应用一般会部署在Linux例如Ubuntu上.使用OS X开发Django应用虽然可行,但终究是有一些适配的问题. 例如Nginx,uWSGI,Celery的配置都不一样,导致没法在本地模拟部署.此外更烦的是由于OS X的编译器环境不一样,很多安装时需要编译的包会出错.

尽管这些问题都可以解决, 但是相当于你要花额外的精力去解决本机上的问题.

一个常见的解决办法是在Mac上通过VirtualBox安装Ubuntu虚拟机来开发. 但是这种做法只是看起来很美. 实际使用......

Keep reading...