跨主机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...

Using uwsgi the right way

Using uwsgi to deply django site on ubuntu server is quite easy, but there are still something you need to know before making mistakes.

install

You have 2 ways to install uwsgi on ubuntu: apt-get or pip

apt-get

if you use apt-get, you need to ins......

Keep reading...

OS X 下 vim 无法复制到系统剪切板的问题

问题背景

我的电脑是2013年的Macbook Air, 香港购买后, 升级到 Marvricks 10.9.1

我尝试将 vim 中选中的内容复制到系统剪切板, 始终不成功. 包括:

使用寄存器 + 以及 * 来复制内容: "+y

在 vimrc 中设置 set clipboard=unnamed

这个问题困扰了我好久,各种尝试未果.

在 v2ex 提了一个问题, 经过大家的讨论, 理清了问题, 并最终解决.

问题原因

我的系统里其实有三个 vim:

系统自带的......

Keep reading...

Celery的多站点支持

Celery是Django网站用于实现后台任务的利器. 但是阅读其文档就会发现,其配置文件仅支持单个app.

它无法像nginx, uwsgi或者supervisor那样,提供一个文件夹, 里面为每个app提供单独的配置文件.

如果你只有一台服务器,而上面有多个Django站点,都需要使用Celery,你要怎么办呢?

目前知道的办法似乎是继续使用django-celery这个django app.

然后, 在supervisor中创建多个配置文件,启动对应app的celery进程.

cd ......

Keep reading...