2016年5月4日星期三

反代Blogger解决国内无法访问以及开启SSL

需求:
  • Blogger博客(blog.ohrz.net/renzhn.blogspot.com)被墙,国内无法访问
  • blog.ohrz.net原本是CNAME到ghs.google.com,相当于renzhn.blogspot.com的别名
  • Blogger后台可以自定义域名,但是自定义域名还不支持https
解决:
  • 在自已的VPS上架设反向代理(Reverse Proxy),然后把域名指向VPS
  • 访问过程:用户->VPS->ghs.google.com(blog.ohrz.net/renzhn.blogspot.com)->VPS->用户
  • 使用Nginx作为反向代理
效果:
  • 国内可以访问
  • 可以“开启”SSL支持
Nginx配置文件:

server {
        listen 80;
        server_name blog.ohrz.net;
        location / {
                proxy_pass http://ghs.google.com:80;
                proxy_set_header X-Real-IP  $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header Host $host;
        }
}

server {
        listen 443 ssl;
        server_name blog.ohrz.net;
        ssl_certificate /etc/nginx/ssl/nginx.crt;
        ssl_certificate_key /etc/nginx/ssl/nginx.key;
        location / {
                proxy_pass http://ghs.google.com:80;
                proxy_set_header X-Real-IP  $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto https;
                proxy_set_header X-Forwarded-Port 443;
                proxy_set_header Host $host;
        }
}

2016年5月3日星期二

PHP检查是否为汉字

http://stackoverflow.com/questions/4923319/php-check-if-the-string-has-chinese-chars
You could use a unicode character class http://www.regular-expressions.info/unicode.html
preg_match("/\p{Han}+/u", $utf8_str);

安卓模拟器评测对比

近来买了一台Intel NUC作为NAS+HTPC,突发奇想可以用安卓模拟器来当电视盒子用,所以尝试了各种安卓模拟器软件,评测时主要考虑的有:支持全屏、干净(没有广告等)、支持快捷键(有的APP需要菜单键)

夜神模拟器:(编辑推荐)
  • 夜神是一个人名吗?
  • 快捷键:Home:主页键;Right Menu:菜单键;可以修改返回键键位以解决Esc退出全屏问题
  • 安卓系统:4.4
  • 干净指数:4/5
  • 可自由更换桌面
  • 可开启强制横屏
  • 兼容性最好,熊猫、斗鱼、虎牙均正常
  • 可以自由关闭不需要的功能
  • 可彻底全屏
DuOS:
  • 美国的American Megatrends出品,不知道高到哪里去了
  • 干净指数:5/5
  • 系统版本:5.1.1
  • 快捷键支持:旋转,缩放;Right Menu:菜单键;
  • 系统整合质量最高,很多独一无二的功能,比如开启adb调试后无需手动连接ip可以出现在宿主上adb devices列表里,也可以手动连接adb ip和端口
  • 可彻底全屏
  • 熊猫、斗鱼可正常观看;虎牙闪退
逍遥模拟器:
  • 没有菜单键快捷键,不过可以在少数需要按菜单键时点击工具栏的菜单按钮
  • 安卓系统版本:4.2
  • 干净指数:5/5
  • 虎牙、熊猫正常;斗鱼卡死
  • 可以彻底全屏,并且不会按Esc退出,通过鼠标移动到屏幕右侧激活工具栏取消全屏
  • 可自由更换桌面
Droid4x:
  • 快捷键:Home:主页键;Right Menu:菜单键;
  • 系统版本:4.2.2
  • 干净指数:3/5(中文)4/5(英文)
  • 兼容性好,虎牙、斗鱼正常使用,熊猫可启动但无法观看
  • 社区支持好
  • 不能忍的全屏了后,本来想用Esc键作为后退键时,结果退出全屏了...这个只好通过AutoHotKey+adb shell input keyevent解决
  • adb connect 127.0.0.1:26944
  • 可彻底全屏
  • 默认不能换桌面,可通过LuckyPatcher破解签名验证后开启
  • 奇葩的是,如果更换桌面壁纸会马上换回默认壁纸
iTools模拟器:
  • 干净指数:5/5
  • 没啥快捷键
  • 可彻底全屏
  • 系统版本:4.4
  • adb connect 127.0.0.1:54001
  • 内置Nova Laucher作为默认桌面,可自由更换其他桌面,好良心啊~
  • 可以自由关闭不需要的功能
  • 虎牙正常、斗鱼闪退...又试了熊猫TV:可以启动、观看闪退;别的还好,就是直播软件多数都没法用
Bluestacks:
  • 干净指数:3/5
  • 在NUC上没有启动成功,卡在加载中,重装重启也没用。后来在另一台电脑启动成功
  • 社区支持比Droid4x还好
  • 快捷键:Right Menu:菜单键;
  • 定制的有点过头,新启动一个APP就会在标题栏新开一个标签,对于HTPC来说多余,并且标题栏不能隐藏
  • 不能彻底全屏
天天模拟器:
  • 支持快捷键:Home:主页键 Esc:返回键 F1:菜单键 F4:睡眠键(熄灭屏幕) F11:全屏/退出全屏
  • 界面干净指数:4/5
  • 安卓系统版本:4.4.4
  • 虎牙斗鱼都闪退
  • 不能忍的是虚拟键是外置的并且不能隐藏,不能彻底全屏
新浪手游助手:
  • 干净指数:1/5
  • 系统版本:4.4
  • 支持代理
  • 感觉界面在哪见过

注:
  • 以上测试的视频客户端主要来自沙发管家的TV版
  • 以上都有ROOT功能
  • 以上均在Windows系统测试

附AutoHotKey脚本:
^!h::Run, adb shell input keyevent 3,,hide
^!b::Run, adb shell input keyevent 4,,hide
^!m::Run, adb shell input keyevent 82,,hide
^!r::Run, adb connect 127.0.0.1:26944,,hide

说明:
Ctrl+Alt+H:Home键
Ctrl+Alt+B:Back键
Ctrl+Alt+M:Menu键
Ctrl+Alt+R:连接adb

2015年5月19日星期二

Project Songs

每次写项目写到“高潮”时期都会有单曲循环某一歌曲的经历,甚至不知不觉得写到凌晨3点还无睡意,把代码部署到VPS后才入睡(说的是cnbeta1),更是可能会有梦中修bug的奇妙经历。
于是称这些歌为Project Songs,顾名思义,就是写某个项目时听的歌。每当听到这些歌都会想到当时写代码时的情境,想起当时的人和事,令人回味悠长。

按时间顺序:

  • cnbeta1.com (14年暑假)
    • 林宥嘉 - 突然想起你
  • MEOW (14年末)
    • 忘了(真的忘了)
  • paper parser (15年初)
    • 雪桜草 - 夏影~あの飞行机云を超えた、その先へ~
    • Ken Arai - NEXT TO YOU
  • Cold Launcher (15年春)
    • mizuki - aLIEz
    • Sean Household - The Warrior Song

2015年2月25日星期三

Cold Launcher - making Android simple

一个新的启动器,让安卓更简单
  • 基于AOSP源代码,原生的味道
  • 一个简洁的启动器,没有令人眼花瞭乱的设置
  • 所有应用都在桌面上,没有快捷方式这个东西
  • 把不用也不想让后台运行的应用冻结起来,需要启动时像平常一样一键启动。再也不用担心被后台应用占用流量/消耗电量/窃取隐私

2015年1月23日星期五

解决ocserv的证书问题

主要参考的贴子: http://bao3.blogspot.jp/2014/10/ocserv-085.html

服务器用的是ArchLinux系统,AUR中有ocserv软件包,安装起来非常方便。

贴上配置文件:

2015年1月11日星期日

两个设想中的服务

  • The Blog Archieve 博客归档服务
Blogger用户十年前的发布的一篇贴子可以完好地保存到现在而不用费任何力气。如果不出什么意外(如Google关闭了blogger),再保存十年也没问题。在2025年看到一篇2005年的贴子会是怎样的感觉?

自建博客听起来很酷,但要做得长久并不是那么简单。域名、空间、博客程序,想在国内安家备案等着你,想搞个满意的主题也要费力气。把一切折腾完后,终于能安心写篇blog。只是日后本来就不多的blog时间被用来维护blog,时间长了感累不爱然后就没有然后了。

(设想中的)The Blog Archieve 博客归档服务可以自动抓取互联网的独立博客,支持WordPress、Jekyll、Octopress、Hexo等,并将贴子内容整理保存。抓取的目标是当前形形色色的个人博客。N年后看到自已当年写下的文字,多少会有点感动吧。

PS: 为什么用blogger而不是独立博客?

  • Messenger 消息服务
收验证码时想到的,用来取代原有通过短信收取验证码的方式。Messenger 是一个跨平台的服务,其他App或网站可以通过 Messenger 服务向用户发送或者广播消息,并且支持"验证码"这种特殊类型的消息,省去了开发者向用户发短信的费用。
作为一个消息服务,Messenger 具有类似 Whatsapp 的功能。不同于 Whatsapp,Messenger 的用户ID不是基于手机号而是独立于手机号的。手机号可以换,但 Messenger ID 应当是唯一的。
进一步的想法,"验证码"这一产物应当被自动验证取代。Messenger 客户端收到验证请求后,可将请求发送到其他App,完成验证请求。