The following articles were authored by Bill JaJa

Amazon Kindle 3 随谈

入手Kindle 3 有一段时间了,轻薄的身段,柔和的墨水屏,超长的待机时间,确实是理想的阅读利器。综合这段时间的体验,闲聊几句:

OTA 推送功能

在Kindle开机初始化注册完成之后,amazon会为你的设备分配一个形如 yourid@amazon.com 的邮箱帐号,既然是邮箱当然可以接收普通邮件了,特殊的是这个邮箱是用来接收电子书的,也就是你可以将指定格式的电子书以附件的形式发送到这个邮箱,然后电子书就被推送至你手上的Kindle上,这样很方便吧,至少摆脱了不停插拔USB线缆的困扰。该吐槽了,但使用后发发现这功能也存在着不少缺陷,表现在:

白名单机制,为防止你手上的Kindle被SPAM推送困扰,amazon使用了邮箱白名单机制,也就是需要事先将发送方的邮箱地址加入白名单,所发的电子书才会被推送至Kindle。但目前添加白名单的唯一方式是使用电脑登陆到amazon的管理页面进行操作,必须用电脑才行!如果发送邮箱未在白名单之列,你的Kindle上甚至不会有任何提示!个人认为更好做法为:Kindle上面设置菜单里面添加了一个白名单设置项,并且在陌生邮箱首次推送电子书时,Kindle给跳出提示,用户此时可以发起操作:单次接收/添加至白名单/永久拒绝。

还有,给Kindle 推送多份相同文件时,Kindle会傻呼呼的照单全收。我试验过用邮箱先后发送两本一模一样(md5值相同)的书,结果Kindle上还真收到同样的两本书。个人认为更好的做法为:对文件和md5值进行比对,短时间内相同的推送可以忽略。

皮套

Kindle 3 身材纤薄,便携性好,但同时这是一根软肋,尤其是屏幕,怕挤压,所以如果是经常外带或是需要放在包包里面,最好给Kindle 戴个套,而且是有加硬隔层的那种套,安全第一!

WIFI版 or 3G版

关于是买WIFI版还是3G版的问题,这个完全视乎个人所处的环境了,如果像我一样家里有非常方便的无线网络,而且待在家里的时间也算多,那你选择WIFI版本就足够了;如果你所周围没有便捷的无线网络,那就入3G版吧。

另外值得一提的是,Kindle 3 3G版使用的是全球漫游无限流量的AT&T网络,同时也是无墙网络。关于为什么是无墙网络,这是由无线信令网络决定的,你的接入IP会在美国,期间不会通过中国的任何TCP/IP网络设备和GFW。

不久前还有一则好消息,amazon表示会让Kindle支持epub格式的电子书,问题是即使消息无误也可能要等到下一版本的固件才会加上此功能吧。最后还要提醒,Kindle非常适合阅读,Kindle只是一部电子书,这玩意真不适合用来上网游戏mp3啥的,虽然系统确实有这功能。

点此跳转观看Amazon Kindle 3写真集。

music beta by Google使用体验

Google于 I/O 2011发布的云端音乐服务music beta终于收到邀请了,迫不及待一窥究竟。这个服务总体有三个部分:位于云端的music beta网页版,PC上面需要安装一个Music Manager用来管理和上传电脑上的音乐,手机上则是新版的Music APP

Google构建的愿景非常美好,把用户所有的音乐全部存放于云端,在不用考虑带宽的情况下,可以在多个设备上随时播放,包括但不限于WEB,Android手机等终端(还记得I/O 2011上演示的智能家庭吗?),目前来看在这两者上的使用已经相当完美,使用我家2MB带宽的小水管或者中国联通的WCDMA网络均能流畅播放存放于云端的音乐。

最新释出的手机端Music APP,不得不说非常赞!全新的UI,和流畅的体验直接把Android提升了一个档次,说一下这个APP的新功能:

  • 本地音乐库时刻和云端保持同步,这也使得我手机上的音乐列表迅速增加
  • 流畅的在线播放
  • 可以以单曲或专辑为单位选择“离线可行”(下载到手机),担心手机流量不够或是被偷走,可以设置只在“WIFI ONLY”时“在线播放”、“离线下载”
  • 前所未有的新功能“Instant Mix”,相当于iTunes中的Genius Mix,根据你选择的当前歌曲的节奏和曲风给你生成一个相关的playlist,这个功能要在音乐库较多的时候才会管用,当总共也只有几首歌时要mix 真的有难度
  • 没有网络时怎么办?会不会点到一首无法加载,到下一首时还是无法加载,当然Google也是考虑到的,这个时候你只需要将Library切换成离线,也就是只显示本地音乐

使用的时候发现这个新玩意的一个小bug:手机上的应用从云端同步音乐库的时候会完全忽略本地已有的音乐(初始化之前),我的手机上就重复出现了已经存在的专辑。

完整的截图 观赏请移步:http://flic.kr/s/aHsjuUUMsC

用于网站监控的shell脚本

分享一个用于监控网站运行情况的shell脚本,功能和结构都很简单,但很大程度上能够让监控自动化。此脚本的作用是按固定频率不停访问给出的URL,当网站不可访问时自动给设定邮箱发送告警邮件以通知用户。

脚本的完整内容如下:

#!/bin/sh
# Author:       Bill JaJa
# Purpose:      Moniter the web status, send a alert mail when it's not available.
export LANG=C

EMAIL=”xxx@xxxmail.com”
LOG_FILE="/var/monitor/log/web_status_`date '+%Y%m'`.log"
TMP_EMAIL="/var/monitor/.tmp.mail.`date '+%s'`"
URL="$1" # DO NOT CHANGE IT.

if [ $2 ]
then
        sleep $2
fi

# Define function "ECHO", append the timestamp at the head of every record.
ECHO () {
printf "%s " `date '+%Y-%m-%d %H:%M:%S'`
echo $1
}

# Define function HTTP_CODE, obtain the status of web service.
HTTP_CODE () {
http_code=`curl -m 20 -o /dev/null -s -w %{http_code} $URL`
}

# Define function MAIL.
MAIL () {
echo "$URL is not available now, pls pay attention." > $TMP_EMAIL
echo "And the Server 's time is: " >> $TMP_EMAIL
date >> $TMP_EMAIL
echo >> $TMP_EMAIL
echo "------" >> $TMP_EMAIL
echo "BR" >> $TMP_EMAIL
echo "Shell Robot." >> $TMP_EMAIL
mail -s "Server Alert: $URL" $EMAIL < $TMP_EMAIL
rm $TMP_EMAIL
}

n=0
HTTP_CODE
if [ $http_code -eq 200 ]
then
        ECHO "|http_code:200|+$n|webpage visit success.|$URL" >> $LOG_FILE
else
        while [ $http_code -ne 200 ]
        do
                n=`expr $n + 1 `
                ECHO "|http_code:$http_code|+$n|webpage visit failed. |$URL" >> $LOG_FILE
                if [ $n -eq 5 ]; then
                        MAIL $1; exit 0
                fi
                sleep 10
                HTTP_CODE
        done
fi
# THE END.

这段脚本的核心其实只有如下一行:

http_code=`curl -m 20 -o /dev/null -s -w %{http_code} $URL`

也就是使用Linux自带的curl工具访问给出网址,并返回http_code,当http_code不等于200时即可认为网站存在访问故障,但考虑到实际的不稳定因素,当第一次返回http_code不等200时,脚本休眠10秒钟,然后继续访问,累计连续不可访问次数达到5次后触发告警邮件。

可配置字段,脚本第二段中有如下三个可配置字段:

EMAIL:接收告警信息的email地址。
LOG_FILE:日志文件,建议使用绝对路径;最后的web_status_`date ‘+%Y%m’`.log代表以月为单位分割日志,如web_status_201105.log
TMP_EMAIL:临时邮件文件,同样建议使用绝对路径,保持所在目录有写权限即可。

使用方法:

脚本后面需跟两个参数:第一个参数为监控网站的URL,第二个参数为延时时间(可选,以秒为单位,建议在对多个网站进行监控时添加),将此脚本添加到操作系统的crontab里面,按需求设定运行频率,建议2分钟一次。若有多个网站需监控,在crontab里面添加多行即可,每个URL一行,如下为同时对三个网站进行监控:

*/2 * * * * sh /var/monitor/web_monitor.sh http://www.qq.com
*/2 * * * * sh /var/monitor/web_monitor.sh http://www.qqq.com 5
*/2 * * * * sh /var/monitor/web_monitor.sh http://www.qqqq.com 10

同时此脚本会将所有访问结果记录至日志文件,日志片段如下:

[bill@JAJA log]$ tail -f web_status_201105.log
2011-05-23 19:28:01 |http_code:200|+0|webpage visit success.|http://www.qq.com
2011-05-23 19:28:05 |http_code:200|+0|webpage visit success.|http://www.qqq.com
2011-05-23 19:28:11 |http_code:200|+0|webpage visit success.|http://www.qqqq.com
2011-05-23 19:28:20 |http_code:200|+0|webpage visit success.|http://www.qq.com
2011-05-23 19:28:20 |http_code:200|+0|webpage visit success.|http://www.qqq.com
2011-05-23 19:30:01 |http_code:200|+0|webpage visit success.|http://www.qqqq.com

补充:使用此脚本前请确保系统的邮件服务可行,Linux 邮件服务为sendmail
查看邮件服务运行状态的命令:service sendmail status
启用邮件服务:service sendmail start

在Github上查看源代码:https://github.com/bostoneboy/shell-scripts/blob/master/web-monitor.sh