安固途径

知识来源于感觉和经验

ssh tunnel socket proxy

2015-06-30, 星期二|
网络设置

想访问 https://www.youtube.com 和 https://zh-cn.facebook.com,奈何被墙。好吧,只有拿出 google 武器来了,世界那么大, google岂能无方,嘿嘿。

于是,google keywords:free japan ssh account,查找过去一年的所有结果。返回如下: google

好吧,那就到 highssh.com 注册一个账号试试看吧,诶?怎么就成了呢?果然没有骗朕。 ssh register

先看看能不能 ping 通再说吧,

ping -c 4 japan-1.highssh.com

返回 "0% packet loss, time 4008ms",表示能用。

好吧,能登录吗?

ssh -N -D 7070 highssh.com-xxx@104.238.151.11

可以啊,它说。

那就设置全局代理吧, socket 全局代理

好吧,可以就可以吧。百度下ip,表示ip是美国的。 那就访问 youtube试试看嘛, proxy youtube

整个还行吧,哇噻,真复杂。

...
阅读全文

django 获得 object相邻的 object

2015-06-28, 星期日|
python开发

在 django的 DetailView页面想要做到下一篇文章的链接,我的思路是获取当前 object的先一个object或后一个object。查了一下 django documentation,找到如下信息。

For every DateField and DateTimeField that does not have null=True, the object will have get_next_by_FOO() and get_previous_by_FOO() methods, where FOO is the name of the field. This returns the next and previous object with respect to the date field, raising a DoesNotExist exception when appropriate.

也就是说,当某 field为 DateField或 DateTimeField时,就可以查询其相邻的 object,假设这个 field的命名为foo, 那么查询下一个 obje

...
阅读全文

sqlite3 数据库dump到mysql

2015-06-28, 星期日|
数据库软件

在本地建了一个博客,用的是 sqlite3,而 sina app engine 只支持mysql数据库,要想在sae上面部署这个博客就要想办法将sqlite3的数据库转到mysql上来。

一般的思路就是先将 sqlite3的本地文件app_sql.db 导出成sql语句,再导入进 mysql中。

先导出到app.sql中:

sqlite3 app_sql.db .dump > app.sql

再导入mysql的blog数据库中:

mysql -uroot -p blog < app.sql

结果却提示语法错误,看来不能直接将sqlite3的sql文件直接导入到mysql的数据库中,必须先转化。幸好网上有高人已经有解决方案,要用过工具sqlite3-to-mysql.py

于是,

先删掉blog数据库再重新建立blog数据库

$ mysql -uroot -p
mysql> drop database blog;
mysql> create database blog;
mysql> exit

然后用 sqlite3-to-mysql.py 处理ap

...
阅读全文

sae 上部署django 1.8

2015-06-27, 星期六|
python

原先在sina app engine部署django=1.8,真不是一件容易的事,主要是因为sae不直接支持最新版的django。要想使用django 1.8,只有使用 site-packages。而sae通常使用 svn 部署代码,而如果加上一个25M的 site-packages ,其代码部署速度可想而知。幸好部署代码的方式不只一种,sae 还为我们提供网页上传代码压缩包的方式。

上传代码压缩包的网页是 sae 应用的控制面板

1. 先压缩

cd feat/2
tar -czf 2.tar.gz *

2.再上传

通过操作按钮上传对应版本的代码压缩包。需要注意的是压缩包中的内容须为本地版本号文件夹中的所有内容,不要将版本号根文件夹也上传了,否则上传后服务器中的代码将会多出一个版本号文件夹,文件结构就不对了。尽管上传完成后,sae 总是会提示上传失败,但是不用丧气,其实sae上面已经上传成功了,只需要稍等片刻上传的代码就会生效。

当然,sae 提供了工具 saecloud 部署代码(saecloud deploy)和安装第三方库(saecloud install package),但

...
阅读全文

svn checkout 指定目录

2015-06-27, 星期六|
软件

svn有时只想检出指定目录,对于其他的大文件目录则不想检出,如不想检出python代码中的site-packages。可以用以下的方法。

1.检出feat/2中的所有文件(但不包括文件夹)到本地feat/2中,并在feat/2中建立.svn目录等相关配置。

svn checkout --depth files http://svn.sinaapp.com/feat/2 feat/2

2.检出需要的文件夹及其迭代的所有子文件夹及文件,如feat/2下的feat和blog,及其子文件夹和文件等。

svn update --depth infinity feat
svn update --depth infinity blog

3.检出不想包括文件的空目录,如site-packages

svn update --depth empty site-packages
...
阅读全文