Apr
17
前两天还在和sandy讨论怎么整一个免费的山寨版邮件推送,
今天一时兴起,想看看gmail有没有山寨版的已经实现的邮件推送,
于是搜了一下“gmail 新邮件 到达通知”,
没想到我们可亲可敬di中国移动早就提供了条件:
中国移动139免费邮箱,提供免费的短信到达通知
——这不就是告诉我们,有邮件就发到139邮箱吧,我来告诉你!
以前注册的139邮箱居然不知道有这回事,真是浪费阿。
于是赶紧把gmail的邮件转发开起来。。。。
测试了一下,反应还是够快的,1min以内就收到短信了,超赞。
于是felix用上了平民山寨手机邮箱推送服务,再也不用时不时去翻邮箱了
今天一时兴起,想看看gmail有没有山寨版的已经实现的邮件推送,
于是搜了一下“gmail 新邮件 到达通知”,
没想到我们可亲可敬di中国移动早就提供了条件:
中国移动139免费邮箱,提供免费的短信到达通知
——这不就是告诉我们,有邮件就发到139邮箱吧,我来告诉你!
以前注册的139邮箱居然不知道有这回事,真是浪费阿。
于是赶紧把gmail的邮件转发开起来。。。。
测试了一下,反应还是够快的,1min以内就收到短信了,超赞。
于是felix用上了平民山寨手机邮箱推送服务,再也不用时不时去翻邮箱了

Apr
14
看了一天的lshort,终于对LaTeX的使用有了大致的了解,不过还是有些不够熟悉。
决定写个东西练手,但是写着写着遇到一个难以逾越的问题:
使用\label{ooxx}定义一个标签(或者叫做书签?),然后用\ref{ooxx}引用的时候,就出现两个问号"??"
网上的说法是,需要一个gbk2uni.exe把编码转换一下
因为很多人是在win下面编写的TeX文档,默认是GBK编码,而生成书签的需要用UTF-8编码才能被识别
可是我是在Ubuntu Linux下面的,默认的文本编码就是UTF8,没有必要转换了阿
网上查到有人用了hyperref包,但是加上下面这一句之后仍然是俩问号
又因为一直是直接用pdflatex b.tex编译的文档,以为是需要按照正常的方式,于是
可是在第一步提示
生成的pdf文件中仍然是不能正常显示,非常囧。
折腾了好久,网上一直没找到解释,却在无意中发现了解决方案:
如果我先用latex编译一次b.tex以后,然后再用pdflatex,就能够解决问题!
然后又突然就明白过来了,运行latex b.tex两次,第二次就没有那个warning了!
Orz... 怎么工作得像MASM似的,先扫一遍找Symbol,然后才生成目标代码。。。
如果要生成的pdf中,书签作为超级链接存在,则要加入前面的那个hyperref的package
注意里面的第一个参数dvipdfm(也可以是ps2pdf,这取决于最后你用什么命令生成pdf)
然后
然后生成的b.pdf,就是理想的状态了^_^
经过测试:
如果是dvipdfm,就必须用dvipdfm来生成pdf;
如果是ps2pdf,就必须用ps2pdf生成;
如果不填写,就必须用pdflatex。
--
至于另一个很诡异的问题:
如果在\section{}里面给的是中文,那么加入\tableofcontents以后,就会出现如下错误
! Package inputenc Error: Unicode char \u 8:解 not set up for use with LaTeX.
在 http://www2.informatik.hu-berlin.de/~xu/LaTeX.html 找到了博主在 http://i.thuda.org/ir77/?p=60 找到的诡异解决方法:
在文档的末尾加上\newpage
而且居然有效。
太TMD诡异了。
决定写个东西练手,但是写着写着遇到一个难以逾越的问题:
使用\label{ooxx}定义一个标签(或者叫做书签?),然后用\ref{ooxx}引用的时候,就出现两个问号"??"
网上的说法是,需要一个gbk2uni.exe把编码转换一下
因为很多人是在win下面编写的TeX文档,默认是GBK编码,而生成书签的需要用UTF-8编码才能被识别
可是我是在Ubuntu Linux下面的,默认的文本编码就是UTF8,没有必要转换了阿
网上查到有人用了hyperref包,但是加上下面这一句之后仍然是俩问号
引用
\usepackage[dvipdfm,
pdfstartview=FitH,
CJKbookmarks=true,
bookmarksnumbered=true,
bookmarksopen=true,
colorlinks=true, %注释掉此项则交叉引用为彩色边框(将colorlinks和pdfborder同时注释掉)
%pdfborder=001, %注释掉此项则交叉引用为彩色边框
citecolor=magenta,% magenta , cyan
linkcolor=blue,
linktocpage=true,
]{hyperref} % hyperref 宏包通常要求放在导言区的最后!!!
pdfstartview=FitH,
CJKbookmarks=true,
bookmarksnumbered=true,
bookmarksopen=true,
colorlinks=true, %注释掉此项则交叉引用为彩色边框(将colorlinks和pdfborder同时注释掉)
%pdfborder=001, %注释掉此项则交叉引用为彩色边框
citecolor=magenta,% magenta , cyan
linkcolor=blue,
linktocpage=true,
]{hyperref} % hyperref 宏包通常要求放在导言区的最后!!!
又因为一直是直接用pdflatex b.tex编译的文档,以为是需要按照正常的方式,于是
引用
$ latex b.tex
$ dvips b.div
$ ps2pdf b.ps
$ dvips b.div
$ ps2pdf b.ps
可是在第一步提示
引用
LaTeX Warning: Reference `def' on page 1 undefined on input line 31.
LaTeX Warning: There were undefined references.
LaTeX Warning: There were undefined references.
生成的pdf文件中仍然是不能正常显示,非常囧。
折腾了好久,网上一直没找到解释,却在无意中发现了解决方案:
如果我先用latex编译一次b.tex以后,然后再用pdflatex,就能够解决问题!
然后又突然就明白过来了,运行latex b.tex两次,第二次就没有那个warning了!
Orz... 怎么工作得像MASM似的,先扫一遍找Symbol,然后才生成目标代码。。。
如果要生成的pdf中,书签作为超级链接存在,则要加入前面的那个hyperref的package
注意里面的第一个参数dvipdfm(也可以是ps2pdf,这取决于最后你用什么命令生成pdf)
然后
引用
$ latex b.tex
$ latex b.tex
$ dvipdfm b.dvi
$ latex b.tex
$ dvipdfm b.dvi
然后生成的b.pdf,就是理想的状态了^_^
经过测试:
如果是dvipdfm,就必须用dvipdfm来生成pdf;
如果是ps2pdf,就必须用ps2pdf生成;
如果不填写,就必须用pdflatex。
--
至于另一个很诡异的问题:
如果在\section{}里面给的是中文,那么加入\tableofcontents以后,就会出现如下错误
! Package inputenc Error: Unicode char \u 8:解 not set up for use with LaTeX.
在 http://www2.informatik.hu-berlin.de/~xu/LaTeX.html 找到了博主在 http://i.thuda.org/ir77/?p=60 找到的诡异解决方法:
在文档的末尾加上\newpage
而且居然有效。
太TMD诡异了。
Apr
13
因为网络程序设计课程要求做一个扩展型的作业,其中一个选项是ftp client。于是我就选了这个。
做完以后发现其实不难,而最难的地方,在于了解FTP协议的工作过程。
下面随便闲扯一点东西吧。
在网络上,经常遇到的应用层协议包括HTTP,FTP,SMTP,POP3,都使用TCP协议连接,感觉挺像的。
HTTP协议显然是最常见的,在客户端和服务器之间只有一条连接,既传输控制命令(HTTP头),也传输数据(HTTP实体)
因此在编写动态网页脚本的时候,一定要先输出header,然后才输出HTML代码。
FTP协议则采用两条连接,一条控制连接,一条数据连接。
控制连接用于传输控制命令,始终保持连接,直到客户端发出QUIT命令结束连接;
数据连接在需要传输数据的时候打开(发起端可以是客户端也可以是服务器),传输完毕后就断开。
FTP的数据连接有两种模式,一种是主动模式,一种是被动模式(PASV, Passive Mode)。
采用主动模式时,客户端监听一个本地端口,由服务器发起连接传输数据;
而采用被动模式时,则是由服务器打开一个端口,客户端发起连接接收数据。
下面我用telnet来模拟一个FTP客户端连接、登陆、使用被动模式传输文件并退出的完整过程:
做完以后发现其实不难,而最难的地方,在于了解FTP协议的工作过程。
下面随便闲扯一点东西吧。
在网络上,经常遇到的应用层协议包括HTTP,FTP,SMTP,POP3,都使用TCP协议连接,感觉挺像的。
HTTP协议显然是最常见的,在客户端和服务器之间只有一条连接,既传输控制命令(HTTP头),也传输数据(HTTP实体)
因此在编写动态网页脚本的时候,一定要先输出header,然后才输出HTML代码。
FTP协议则采用两条连接,一条控制连接,一条数据连接。
控制连接用于传输控制命令,始终保持连接,直到客户端发出QUIT命令结束连接;
数据连接在需要传输数据的时候打开(发起端可以是客户端也可以是服务器),传输完毕后就断开。
FTP的数据连接有两种模式,一种是主动模式,一种是被动模式(PASV, Passive Mode)。
采用主动模式时,客户端监听一个本地端口,由服务器发起连接传输数据;
而采用被动模式时,则是由服务器打开一个端口,客户端发起连接接收数据。
下面我用telnet来模拟一个FTP客户端连接、登陆、使用被动模式传输文件并退出的完整过程:
Apr
11
两个东西。
http://niu.bi 牛逼一下,你就知道
-----
N.B. 或者 NB
notabene的缩写,
http://niu.bi 牛逼一下,你就知道
-----
N.B. 或者 NB
notabene的缩写,
引用
Used to direct attention to something particularly important.
N.B. n : a Latin phrase (or its abbreviation) used to indicate that special attention should be paid to something; "the margins of his book were generously supplied with pencilled NBs" [syn: notabene, NB, N.B.]
N.B. n : a Latin phrase (or its abbreviation) used to indicate that special attention should be paid to something; "the margins of his book were generously supplied with pencilled NBs" [syn: notabene, NB, N.B.]
Apr
11
题外话:推荐felix的vimrc, http://www.felix021.com/blog/read.php?1092
标题很清晰了:就是把你的vimrc放在代码里。
对于你写的代码,可能你习惯一些特殊的风格,比如缩进2格或者什么的。在你自己的机器上自然简单,直接写进vimrc就好了,可是如果copy到其他机器上的时候呢,就比较麻烦了,修改vimrc多麻烦阿,直接把这些格式放到vimrc里头岂不最好?
vimrc提供两
标题很清晰了:就是把你的vimrc放在代码里。
对于你写的代码,可能你习惯一些特殊的风格,比如缩进2格或者什么的。在你自己的机器上自然简单,直接写进vimrc就好了,可是如果copy到其他机器上的时候呢,就比较麻烦了,修改vimrc多麻烦阿,直接把这些格式放到vimrc里头岂不最好?
vimrc提供两
Apr
11
1. vimtutor乱码
这个简单,因为默认的是gb18030的编码(莫名其妙嘛),
$ sudo gedit /usr/share/vim/vim71/tutor/tutor.zh.euc
令存为UTF-8编码的就OK了
2. vim打开文件乱码
在linux下面,默认编码是utf-8,在windows下面,默认是cp936,纠结。
不过还好vim提供了3个和编码有关的选项:
encoding: vim显示的任何内容(包括文件正文以及提示)就是用这个了,所以非特殊情况就保持默认吧。
fileencodings: 是一个用逗号分隔的编码列表,当vim打开文件时,会按顺序检测是否是对应编码
fileencoding: vim检测到编码后,就将其存入fileencoding选项,以便在存取的时候进行对应的编码转换。
于是解决方案就是,在vimrc里面加上这样一句:
按照 http://blog.chinaunix.net/u2/87718/showart_1685218.html 页面的说法
ucs-bom和utf-8是最不容易被误判的,就放在最前面拉
gb18030和cp936(貌似就是gbk), 以及big5,euc-jp,有一定误判几率,把最经常遇到的放在前面。
那篇文章是把cp936放在gb18030前面,于是有些gb18030的文件(比如前面的vimtutor)就被当成cp936了
所以我觉得应该把gb18030放在前面:D
至于最后的latin1,貌似可有可无吧。
这个简单,因为默认的是gb18030的编码(莫名其妙嘛),
$ sudo gedit /usr/share/vim/vim71/tutor/tutor.zh.euc
令存为UTF-8编码的就OK了
2. vim打开文件乱码
在linux下面,默认编码是utf-8,在windows下面,默认是cp936,纠结。
不过还好vim提供了3个和编码有关的选项:
encoding: vim显示的任何内容(包括文件正文以及提示)就是用这个了,所以非特殊情况就保持默认吧。
fileencodings: 是一个用逗号分隔的编码列表,当vim打开文件时,会按顺序检测是否是对应编码
fileencoding: vim检测到编码后,就将其存入fileencoding选项,以便在存取的时候进行对应的编码转换。
于是解决方案就是,在vimrc里面加上这样一句:
引用
set fileencodings=ucs-bom,utf-8,gb18030,cp936,big5,euc-jp,latin1
按照 http://blog.chinaunix.net/u2/87718/showart_1685218.html 页面的说法
ucs-bom和utf-8是最不容易被误判的,就放在最前面拉
gb18030和cp936(貌似就是gbk), 以及big5,euc-jp,有一定误判几率,把最经常遇到的放在前面。
那篇文章是把cp936放在gb18030前面,于是有些gb18030的文件(比如前面的vimtutor)就被当成cp936了
所以我觉得应该把gb18030放在前面:D
至于最后的latin1,貌似可有可无吧。
Apr
10
安装bo-blog的时候还不太懂编码的问题,于是数据库的编码就选择了按照服务器的设置存取。
于是在phpmyadmin里面看到的数据,只要遇到中文,全部都是乱码,郁闷。
花了一点时间,转换了一下:
1。用我的那个后台管理程序,它有数据库备份功能,备份出来的就是UTF-8编码的了。
2。修改数据库编码。直接在phpmyadmin里面修改,或者运行
3。导入第一步备份出来的数据库文件。
4。对于bo-blog,还需要修改data/config.php里面的$db_410,把后面的"0"改成"1"
哦也,问题解决拉~
于是在phpmyadmin里面看到的数据,只要遇到中文,全部都是乱码,郁闷。
花了一点时间,转换了一下:
1。用我的那个后台管理程序,它有数据库备份功能,备份出来的就是UTF-8编码的了。
2。修改数据库编码。直接在phpmyadmin里面修改,或者运行
ALTER DATABASE `dbname` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
3。导入第一步备份出来的数据库文件。
4。对于bo-blog,还需要修改data/config.php里面的$db_410,把后面的"0"改成"1"
哦也,问题解决拉~